ceph monitor部署若干注意事项
关于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