Ceph Monitor挂了之后对集群的影响

Ceph Monitor挂了之后对集群的影响

2016-01-13 22:34:14 瞧见风 阅读数 3860更多

分类专栏: Ceph

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

本文链接:https://blog.csdn.net/scaleqiao/article/details/50513655

目前,Ceph作为统一存储的解决方案,已经得到了许多互联网公司的广泛应用,而大家搭建的Ceph环境也大多参照了国内最早研究CephOpenStack公司UnitedStack(有云)分享出来的方案:即数据3副本、3monitor做高可用等。

Monitor相当于是Ceph集群的大脑,使用了3个做高可用防止单点故障的发生。经常有同事或者客户会问到一个问题:就是monitor最多能挂几个,集群就不能工作了?

答案是只能挂一个,原因是Monitor采用了Paxos的选举机制来实现多个之间的协调同步,而这中选举机制要求必须要有半数以上的成员存活的时候,整体才能对外提供服务。到底是这样吗?我通过以下测试得到了最终结论。

测试环境:
一个18osd3mon的集群

测试目的:
1)确认挂掉一个mon对集群的影响
2)确认挂两个/三个mon之后,集群能否工作,进行读写
3)确认当mon恢复之后,集群能够恢复正常

测试过程:
1 确认挂一个mon对集群的影响
1)确认对IO的影响
在其中一台机器上通过$ fio -ioengine=rbd -rw=randwrite -name=ebs -thread -pool=metadata -direct=1 -bs=4k -rbdname=test1 -iodepth=64 -runtime=600 --time_based进行压力测试,然后将其中一个mon down 掉观察对IO的影响。

2)观察对命令执行的影响
down掉一个mon之后,执行命令会碰到如下连接失败的log
$ ceph -s
2016-01-13 04:21:31.729827 7f7db55f8700 0 – 10.0.3.68:0/1052520 >> 10.0.3.62:6789/0 pipe(0x7f7da80008c0 sd=8 :0 s=1 pgs=0 cs=0 l=1 c=0x7f7da8004bb0).fault

并且这个重连会持续三秒钟,原因是因为‘mon_client_hunt_interval 3’这个配置导致的,但最终命令是能执行成功的。

结论:当一个mon down了之后,对I/O没有影响,会影响命令的执行时间,但可以通过调整mon_client_hunt_interval这个配置,解决这个问题。

2 确认挂两个mon down对集群的影响
1)对I/O的影响
两个mon down了之后,在Cluster map没有发生变化的情况下,对已有的I/O业务没有影响,但不能接收新的client连接和处理它的I/O,应用程序会卡在那里,不结束。
当这时Cluster map发生变化时,比如说手动down掉一个osd,此时原有的I/O也会变成零。
当恢复其中一个mon之后,集群恢复正常,I/O恢复正常。

2)对命令的影响
两个mon down了之后,任何ceph的命令都不能执行。

结论:当两个mon down了之后,任何ceph的命令都不能得到执行,正在进行的I/OCluster map不变的情况下不受影响,一旦Cluster map发生变化,则I/O会阻塞。任何新的client连接请求以及它发起的I/O都不会得到执行。当其中一个mon恢复之后,集群业务恢复。

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值