1.1 场景描述
ceph journal 分区损坏会导致 OSD 进程故障或者,无法启动
1.2 影响
修复操作,OSD 启动成功时会伴随数据的 recovery,占用部分磁盘 IO,小规模操作业务无 感知
1.3 实施过程
${OSDID} 使用实际 osdid 替换
1.3.1 设置运维标识
发现集群故障即设置,有运维操作即设置
# 设置 noout 标识
ceph osd set noout
1.3.2 记录原来的 OSD DATA 与 Journal 对应关系
ls -l /var/lib/ceph/osd/ceph-${OSDID}/journal
# 输出如下,journal 为后面分区的软连接
/var/lib/ceph/osd/ceph-2/journal -> /dev/disk/by-partuuid/5062e503-dcef-4061-b35d- 96be1 816b8aa
# 找到软链接的分区对应的盘符
ls -l /dev/disk/by-partuuid/5062e503-dcef-4061-b35d-96be1816b8aa
# 输出如下 则表示 sdf2 为 OSD2 的 journal 磁盘
/dev/disk/by-partuuid/5062e503-dcef-4061-b35d-96be1816b8aa -> ../../sdf2
替换后 journal 也建议使用分区 uuid 格式,盘符在操作系统重启后可能会改变
1.3.3 停止 OSD 进程,将原来的 journal 刷入 Data 磁盘
如果 OSD 本来是异常挂掉的则无须进行该步操作
systemctl stop ceph-osd@${OSDID}
ceph-osd -i ${OSDID} –flush-journal
1.3.4 更换 Jouranl
如果 jouranl 磁盘需要更换,则需要重新替换该 OSD 上所有的 Journal 如果只是某一 OSD 的 jouranl 文件系统损坏,则仅对该 OSD 的 jouranl 进行重新部署即可
删除原来的 journal
rm -f /var/lib/ceph/osd/ceph-${OSDID}/journal
重建 journal 分区
journal 磁盘需要替换需要重新分区,每个 journal 分区以 25G 为宜
# 为新的 journal 磁盘创建分区表,例如盘符为 sdf
parted -s /dev/sdf mklabel gpt
# 为 journal 进行分区,每个分区 25G
# parted -s <磁盘设备> mkpart <文件系统格式> <分区起点> <分区终点>
parted -s /dev/sdf mkpart xfs 0 25G
parted -s /dev/sdf mkpart xfs 25G 50G
parted -s /dev/sdf mkpart xfs 50G 75G
parted -s /dev/sdf mkpart xfs 75G 100G
重新创建
# 找到 journal 分区的 uuid 例如该 journal 分区为 sdf2
ls -l /dev/disk/by-partuuid/|grep sdf2
# 使用 uuid 链接到 journal 文件
ln -s /dev/disk/by-partuuid/${UUID} /var/lib/ceph/osd/ceph-${OSDID}/journal
# 修改属主数组为 ceph
chown ceph:ceph /dev/sdf2
# 创建 journal
ceph-osd -i ${OSDID} –mkjournal
1.4 验证
# 查看 journal 是否链接到了刚刚创建分区的 uuid
ll /var/lib/ceph/osd/ceph-${OSDID}/journal
# 输出如下
/var/lib/ceph/osd/ceph-0/journal -> /dev/disk/by-partuuid/1622955b-8b73-42ff-8275- 6d87f 3f2786d
ll /dev/disk/by-partuuid/1622955b-8b73-42ff-8275-6d87f3f2786d
# 输出如下 与刚刚创建扥 journal 分区盘符对应一致即可
/dev/disk/by-partuuid/1622955b-8b73-42ff-8275-6d87f3f2786d -> ../../sdf2
启动 OSD 等待数据均衡完毕取消 noout 标识
# 启动 OSD
systemctl start ceph-osd@${OSDID}
# 等待一段时间 ceph -s 中 pg 状态都为 active+clean 去除标识
ceph osd unset noout
最新评论