关于monitor的部署,有下面几个需要注意的地方:

1. monitor节点的数量。

一般来说,在实际运行中,ceph monitor的个数是奇数个。初始最好至少配置3个。然后增加的时候,2个2个的增加。

2. monitor的容错机制

2n+1(n>=0)个,只要正常的节点数>=n+1,ceph的paxos算法能保证系统的正常运行。所以,对于3个节点,同时只能挂掉一个。5个节点,最多挂掉两个。其实看到这里,也就解释了,为什么monitor最好奇数个。因为5个节点和6个节点,效果是相同的,都是只能最多挂掉两个。所以偶数个,其实也是浪费一个。

3.挂掉节点超过半数的影响

如果monitor节点超过半数挂掉,paxos算法就无法正常进行仲裁(quorum),此时,ceph集群会阻塞对集群的操作,直到超过半数的monitor节点恢复。

4. monitor恢复的方法

1) 如果挂掉的节点可以恢复,也就是monitor的元数据还是OK的,那么只需要重启ceph-mon进程即可。所以,对于monitor,最好运行在RAID的机器上。这样,即使机器出现故障,恢复也比较容易。但是,tahow目前的系统盘,单U只有1块,所以无法raid…

2) 只能想办法将故障的节点恢复,但元数据已经损坏。可以通过正常工作的monitor节点恢复它。可以通过将正常工作节点的monmap导出,所以,只要得到monmap,就可以恢复monitor了。但是这种方法,需要保证socket可以正常导出monmap。因为这时候通信可能已经被阻塞。

3)  遇到通过socket不能进行monmap的导出。不过,幸好有monmaptool工具,通过它,我们可以手动生成。

4) 还有个命令,可以强行踢出挂掉的monitor,使得monitor总数减少。但是不推荐这种做法,最好还是找到出错原因,尽早解决。
ceph mon remove <name>                    remove monitor named <name>
ceph mon rm <name>                            remove monitor named <name>
参考文章:

http://www.cnblogs.com/hustcat/p/3925971.html

http://docs.ceph.com/docs/master/rados/operations/add-or-rm-mons/

转载于:https://my.oschina.net/u/3011935/blog/792117

发表评论

邮箱地址不会被公开。 必填项已用*标注