引言
由于机房搬迁,我的Ceph集群也要迁走。按照关闭rgw, osd, mon的顺序依次关闭ceph进程后关机即可。但是在恢复的过程中确实花费了一些精力,主要有如下问题。
- 机器重启后硬盘没有自动挂载,需要将硬盘挂载到对应目录;
- 整个集群IP修改,如果让集群适应新IP
本文主要以解决这两个问题为主,并说明集群恢复的完整过程。
恢复过程
修改各主机中集群IP信息
由于集群IP发生了修改,所以/etc/hosts中的配置文件中集群的IP地址信息也要更新。集群中的每台主机都应该更新。
1*0.57.148.*6 ceph0
1*0.57.148.*7 ceph1
1*0.57.148.*8 ceph2
1*0.57.148.*9 ceph3
1*0.57.148.*0 ceph4
mon恢复
整个集群的恢复的首要条件是恢复MON, 也是解决IP改变的需要,OSD本身并没有跟IP相关,这个问题的解决可以查看我以前的博客 Ceph由于更换IP地址导致MON异常
此处需要注意的是要更新ceph.conf文件中mon_host信息以及public network / cluster network的网段信息。
mon_initial_members = ceph0,ceph1,ceph2
mon_host = your mon ip addrs
osd恢复
由于我的硬盘并没有自动挂载的功能,所以此处有一个体力活,就是如何将硬盘挂载到对应的挂载目录上。
我在起初挂载的时候按照顺序依次挂载,即
/dev/sdb1 --> /var/lib/ceph/osd/ceph-0
/dev/sdc1 --> /var/lib/ceph/osd/ceph-1
/dev/sdd1 --> /var/lib/ceph/osd/ceph-2
/dev/sde1 --> /var/lib/ceph/osd/ceph-3
......
盘符和挂载点都是依次递增的,所以在恢复的时候也是依次挂载即可。如果不确定,可以采用如下办法:先将硬盘进行挂载,检查whoami中的编号,即可知道该硬盘对应哪个挂载点。
挂载好后用/etc/init.d/ceph start命令启动各台主机上的osd进程。
rgw恢复
IP地址的修改对RGW的影响很小,只需要修改下配置文件中的host选项,改为实际IP地址即可。
[client.rgw.ceph4]
host = your ip addr
rgw frontends=civetweb port=80
修改后直接启动rgw进程即可。
如此即可恢复整个集群。
附
在恢复的过程中发现集群的状态特别不稳定,总是有不同的osd节点被标记为down.也没有找到原因。后来考虑到是不是防火墙中的策略没有将新IP添加进去的原因。检查后果然如此。修改策略后一会状态即变为active + clean. 至此集群恢复成功。
移除mon的方法:
monmap e1: 5 mons at {a=101.71.4.11:6789/0,b=101.71.4.12:6789/0,c=101.71.4.13:6789/0,d=101.71.4.14:6789/0,e=101.71.4.15:6789/0}
[root@aaa ~]# ceph mon remove d
removed mon.d at 101.71.4.14:6789/0, there are now 4 monitors
[root@aaa ~]# ceph mon remove e
removed mon.e at 101.71.4.15:6789/0, there are now 3 monitors