有时重启某个Ceph节点时,出现一种异常情况,就是该节点下所有osd都无法启动,且挂载目录(/var/lib/ceph/osd/ceph-x/)下所有文件也均消失;有时误删除也可能导致此现象。本文提供一种手动修复的方法。
这种情况下,先找正常的节点,查看该目录下本来应有的文件:
首先从其他正常节点的/var/lib/ceph/osd/ceph-x/下拷贝如下文件到故障节点的/var/lib/ceph/osd/ceph-x/下:
scp activate.monmap bluefs ceph_fsid fsid keyring kv_backend magic mkfs_done osd_key ready require_osd_release type whoami 10.1.172.XX:/var/lib/ceph/osd/ceph-x/
然后执行查看ceph逻辑卷信息:
ceph-volume lvm list
再查看auth list信息:
ceph auth list
然后在故障节点的/var/lib/ceph/osd/ceph-x/下,修改:
vim fsid
将fsid内容修改为ceph-volume中该osd下的osd fsid号。
vim keyring
将keyring内容修改为auth list中对应osd的keyring值。
vim osd_key
同keyring修改。
vim whoami
修改为本osd的id。
然后通过ceph-volume中的块设备[block]路径建立软链接:
ln –s /dev/XXXXXXXXXXXX block
ls -l查看下用户和权限,如果是root,修改为:
chown –R ceph:ceph /var/lib/ceph/osd/ceph-x
再修改ceph-volume中块设备[block]的权限:
chown ceph:ceph /dev/XXXXXXXXXXXXX
最后,启动ceph-osd:
systemctl start ceph-osd@X.service