问题描述:
在ceph维护过程中,误把/dev、/boot等目录删除,导致系统无法启动。基于这样一个问题,我们进行ceph恢复。
恢复过程如下:
第一步:ceph数据备份,备份 /var/lib/ceph 整个目录,具体备份方法如下(注意:如果系统盘根目录损坏无法读取,也可以不备份)
疑问目前启动无法启动,如何进行备份呢?
1)我们以Centos 6.7 为例,用U盘制作系统盘
2)通过Bios设置U盘启动
3)进入rescue模式
4)进入下面的页面,选择English
5)选完语言后会出现选择键盘的界面,选择US
6)进入网络设置,选择no
7)提示把原本的系统(根)挂载到了/mnt/sysimage下,选择Continue
8)直到出现再次提醒原本的系统(根)被挂载到/mnt/sysimage下,如果想操作原系统需要使用chroot /mnt/sysimage命令跳转。连续两个OK。
9)最后我们选择打开一个Shell,进入到救援模式
10)chroot /mnt/sysimage/ 跳转到原理的系统,就可以正常操作了
第二步,进入系统后,备份数据,需要备份的数据,/var/lib/ceph 目录,这个目录可以打包,然后压缩拷贝到osd磁盘中,在根目录随便建一个文件夹,把osd磁盘挂载上即可
例子:我在根目录建了一个test目录,随便找了一个磁盘/dev/sdm
mount /dev/sdm1 /test
挂载成功后,可以把备份的数据拷贝到这里
第三步:数据备份成功后,重装系统(过程省略),系统安装成功后,开始恢复工作
第四步:安装ceph的软件,把备份的数据拷贝(/var/lib/ceph)解压到原来的目录,/var/lib/ceph
第五步:很重要,看好了
1)确认所有osd的盘符
例如:/dev/sdp等等
2)挂载osd磁盘,读取journal执行的软连接
lsblk 读取磁盘列表,挂载磁盘的带1的分区
例如:我们要恢复磁盘/dev/sdp的osd信息先挂载/dev/sdp1到临时目录/test
mount /dev/sdp1 /test
cd /test 读取journal执行的软连接
cat whoai 确认这个磁盘的osd编号
保存journal指向的软连接
3)在/dev/disk/by-partuuid目录建立磁盘与uuid软连接
在/dev/disk/by-partuuid目录建立journal指向的软连接
需要使用磁盘的日志分区
例如:/dev/sdp ,使用/dev/sdp2,在目录/dev/disk/by-partuuid,建立下列软连接
到此完成恢复。
reboot服务器,osd可以正常使用,即可进行恢复集群的其他操作。