硬盘损坏是早晚的时,CEHP数据盘坏了,使用CEPH的基本都轻车熟路了,如果系统盘坏了呢?不知道的可能会采取整个系统盘全做的方式
前提条件:使用cephadm搭建集群
如果换服务器,请确保CEPH数据盘放到其它服务器上后还能看到LVM分区
如果IP/主机名变了请先设置
ceph config set global osd_crush_update_on_start false
禁止自动更新视图
不禁止osd会跑到新主机上,触发迁移
前面都可有可无
最终情况是:
系统盘数据被清除,
ceph相关的数据也没了,
但ceph数据盘仍在
目标:将仍在的数据盘恢复到集群中,避免出现大量回填/迁移情况
方法:重新生成对应的系统文件即可
启蒙方法(看看就好)
文件都在/var/lib/ceph/{fsid}/osd.x目录
里面的东西大都差不多
可以随便考一个出来
注意那些时间不会更新的文件基本,剩下的会自动刷出来
文件虽然都一样,但里面的osdid及对应的osduuid不一样
sed -i "s/osdid/${osdid}/g" unit.*
sed -i "s/osduuid/${osduuid}/g" unit.*
systemctl start ceph-${fsid}@osd.${osdid}.service
systemctl enable ceph-${fsid}@osd.${osdid}.service
自己会改的话 就能启动成功了
看看就行
优雅的操作:(主要看这个 )
上面的文件也是基于一套模块生成出来的
cephadm deploy --name osd.x --config /etc/ceph/ceph.conf --fsid {fsid} --osd-fsid {osdfsid}
必要参数说明
osd.x:要恢复的osd
文件/etc/ceph/ceph.conf从其它服务器上拿就行了[keying也要,如果不幸挂的是admin服务器见CEPH client.admin key获取]
fsid:ceph -s 中的fasid
osdfsid:通过ceph-volume lvm list osd.id 命令获取,注意osd fsid这行
旧版不支持指定osdid获取,只能指定硬盘或全部获取,那只有全部获取后再找出来
即使系统盘没挂,也可以用此方法将osd迁移到其它服务器上
视图问题要注意