mon到底能坏几个
如果是在做ceph的配置,我们会经常遇到这几个问题
- 问:ceph需要配置几个mon
答:配置一个可以,但是坏了一个就不行了,需要配置只是三个mon,并且需要是奇数个 - 问:ceph的mon能跟osd放在一起么,需要配置很好么?
答:能跟放在一起,但是建议在环境允许的情况下一定独立机器,并且mon的配置能好尽量好,能上ssd就上ssd
这两个问题的答案不能说是错的,但是为什么这么说,这么说有没有问题,这篇文章将根据实际的数据来告诉你,到底mon的极限在哪里,为什么都说要奇数,偶数难道就不行么
前言
本篇将从真实的实践中,让你更能够理解mon的故障极限,本次测试的场景数据样本足够大,最大的一个测试使用了10个mon,我想目前就算PB基本的ceph集群里也没有人会超过10个mon,所以足够覆盖大部分的场景,先来一个数据图看下10个mon的集群长什么样
cluster ace3c18f-b4a5-4342-a598-8104a770d4a8
health HEALTH_OK
monmap e10: 10 mons at {10=192.168.8.107:6800/0,2=192.168.8.107:6792/0,3=192.168.8.107:6793/0,4=192.168.8.107:6794/0,5=192.168.8.107:6795/0,6=192.168.8.107:6796/0,7=192.168.8.107:6797/0,8=192.168.8.107:6798/0,9=192.168.8.107:6799/0,lab8107=192.168.8.107:6789/0}
election epoch 58, quorum 0,1,2,3,4,5,6,7,8,9 lab8107,2,3,4,5,6,7,8,9,10
osdmap e7: 1 osds: 1 up, 1 in
flags sortbitwise
pgmap v13: 64 pgs, 1 pools, 0 bytes data, 0 objects
34268 kB used, 274 GB / 274 GB avail
64 active+clean
mon的地方可以看到10个mon了
测试结论
ceph的mon能够正常情况需要保证,当前剩余的mon的个数需要大于总mon个数的一半,例如10个mon,mon个数一半就是5个,那么大于5个就是6个,也就是最少需要6个,上面的测试结论也符合这个规则,为什么不去偶数个,是因为当mon的个数为偶数个的时候,允许down的mon的个数与少一个mon的情况下的mon的个数允许的个数是一样的,所以要么多两个,多一个增加不了可靠性,并不是不允许
测试过程的数据
10个mon集群
10个mon的极限
cluster ace3c18f-b4a5-4342-a598-8104a770d4a8
health HEALTH_WARN
4 mons down, quorum 0,1,2,3,4,5 lab8107,2,3,4,5,6
monmap e10: 10 mons at {10=192.168.8.107:6800/0,2=192.168.8.107:6792/0,3=192.168.8.107:6793/0,4=192.168.8.107:6794/0,5=192.168.8.107:6795/0,6=192.168.8.107:6796/0,7=192.168.8.107:6797/0,8=192.168.8.107:6798/0,9=192.168.8.107:6799/0,lab8107=192.168.8.10
10个mon关闭4个没问题,关闭5个就卡死
9个mon集群
9个mon的极限
cluster ace3c18f-b4a5-4342-a598-8104a770d4a8
health HEALTH_WARN
4 mons down, quorum 0,1,2,3,4 lab8107,2,3,4,5
monmap e11: 9 mons at {2=192.168.8.107:6792/0,3=192.168.8.107:6793/0,4=192.168.8.107:6794/0,5=192.168.8.107:6795/0,6=192.168.8.107:6796/0,7=192.168.8.107:6797/0,8=192.168.8.107:6798/0,9=192.168.8.107:6799/0,lab8107=192.168.8.107:6789/0}
9个mon关闭4个没问题,关闭5个就卡死
8个mon集群
8个mon的极限
cluster ace3c18f-b4a5-4342-a598-8104a770d4a8
health HEALTH_WARN
3 mons down, quorum 0,1,2,3,4 lab8107,2,3,4,5
monmap e12: 8 mons at {2=192.168.8.107:6792/0,3=192.168.8.107:6793/0,4=192.168.8.107:6794/0,5=192.168.8.107:6795/0,6=192.168.8.107:6796/0,7=192.168.8.107:6797/0,8=192.168.8.107:6798/0,lab8107=192.168.8.107:6789/0}
8个mon关闭3个没问题,关闭4个就卡死
7个mon集群
7个mon的极限
cluster ace3c18f-b4a5-4342-a598-8104a770d4a8
health HEALTH_WARN
3 mons down, quorum 0,1,2,3 lab8107,2,3,4
monmap e13: 7 mons at {2=192.168.8.107:6792/0,3=192.168.8.107:6793/0,4=192.168.8.107:6794/0,5=192.168.8.107:6795/0,6=192.168.8.107:6796/0,7=192.168.8.107:6797/0,lab8107=192.168.8.107:6789/0}
7个mon关闭3个没问题,关闭4个就卡死
6个mon集群
6个mon的极限
cluster ace3c18f-b4a5-4342-a598-8104a770d4a8
health HEALTH_WARN
2 mons down, quorum 0,1,2,3 lab8107,2,3,4
monmap e14: 6 mons at {2=192.168.8.107:6792/0,3=192.168.8.107:6793/0,4=192.168.8.107:6794/0,5=192.168.8.107:6795/0,6=192.168.8.107:6796/0,lab8107=192.168.8.107:6789/0}
6个mon关闭2个没问题,关闭3个就卡死
5个mon集群
5个mon的极限
cluster ace3c18f-b4a5-4342-a598-8104a770d4a8
health HEALTH_WARN
2 mons down, quorum 0,1,2 lab8107,2,3
monmap e15: 5 mons at {2=192.168.8.107:6792/0,3=192.168.8.107:6793/0,4=192.168.8.107:6794/0,5=192.168.8.107:6795/0,lab8107=192.168.8.107:6789/0}
5个mon关闭2个没问题,关闭3个就卡死
4个mon集群
4个mon的极限
cluster ace3c18f-b4a5-4342-a598-8104a770d4a8
health HEALTH_WARN
1 mons down, quorum 0,1,2 lab8107,2,3
monmap e16: 4 mons at {2=192.168.8.107:6792/0,3=192.168.8.107:6793/0,4=192.168.8.107:6794/0,lab8107=192.168.8.107:6789/0}
4个mon关闭1个没问题,关闭2个就卡死
3个mon集群
3个mon的极限
cluster ace3c18f-b4a5-4342-a598-8104a770d4a8
health HEALTH_WARN
1 mons down, quorum 0,1 lab8107,2
monmap e17: 3 mons at {2=192.168.8.107:6792/0,3=192.168.8.107:6793/0,lab8107=192.168.8.107:6789/0}
3个mon关闭1个没问题,关闭2个就卡死
测试结束
下面为自己玩的一个动态图,10个mon正常,down 4个还是好的,down 5个就无法使用了
mon到底能坏几个的更多相关文章
- (转)CDN——到底用还是不用?
用CDN的七个理由 浏览器从服务器上下载css.js和图片等文件时都要和服务器连接,而大部分浏览器对同一个域名用于下载文件的并发连接数限制在4个,这意味着如果要下载第五个文件就必须等前四个文件中有一个 ...
- CDN——到底用还是不用?
最近在学bootstrap,在知乎上搜索bootstrap看到有人问bootstrap基础包体积较大,对性能影响会不会很大,看到两种方法来减少对性能的影响: 有选择地部分加载,bootstrap带有L ...
- 对Oracle数据库坏块的理解
1.物理坏块和逻辑坏块 在数据库中有一个概念叫做数据块的一致性,Oracle的数据块的一致性包括了两个层次:物理一致性和逻辑一致性,如果一个数据块在这两个层次上存在不一致性,那就对应到了我们今天要要说 ...
- paip.编程语言到底有没有优劣之分优秀之分
paip.编程语言到底有没有优劣之分优秀之分 人有没有优秀之分之分呢??狗有没有优秀之分呢?? 当然是有的,有好人坏人的说法,或者精英平民的区分..狗也有好狗狗,坏狗,疯狗嘛.. 所以,自然,编程语言 ...
- 你好,C++(18) 到底要不要买这个西瓜?4.1.6 操作符之间的优先顺序
4.1.6 操作符之间的优先顺序 在表达一些比较复杂的条件判断时,在同一个表达式中,有时可能会存在多个操作符.比如,我们在判断要不要买某个西瓜时,不仅要判断它的总价(单价8.2元/斤,一共10.3斤) ...
- HttpClient参观记:.net core 2.2 对HttpClient到底做了什么?
.net core 于 10月17日发布了 ASP.NET Core 2.2.0 -preview3,在这个版本中,我看到了一个很让我惊喜的新特性:HTTP Client Performance Im ...
- Python中的logger和handler到底是个什么鬼
最近的任务经常涉及到日志的记录,特意去又学了一遍logging的记录方法.跟java一样,python的日志记录也是比较繁琐的一件事,在写一条记录之前,要写好多东西.典型的日志记录的步骤是这样的: 创 ...
- 硬盘坏道检测工具对比(DiskGenius/HdTunePro/MHDD等)
说到硬盘检测软件,大家肯定会想到MHDD,但是MHDD真的好用?反正我觉得太难用了,只能在DOS下运行,不能在Win系统下运行:最重要的是只支持IDE硬盘模式,现在的主板几乎全部默认都是AHCI模式, ...
- 所以到底什么是 Growth Hacking?
Growth hacking 在硅谷的确是有快被用坏的趋势,之所以在大陆的互联网创业圈里还没有普及开来,我想一个是由于这个词并没有对应的中文解释,没有一个能够找到一个相对完美的解释,就像 “hack” ...
随机推荐
- C++中线程安全单例模式的正确实现方式
为什么说DCLP不是线程安全的 DCLP(Double Checked Locking Pattern),即双检锁模式: class Foo { public: static Foo* getInst ...
- python post与get请求的区别
post:请求的url不带参数 查询参数在WebForms保存 get:请求的url会附带查询参数 查询参数在QueryString保存
- pytest文档59-运行未提交git的用例(pytest-picked)
前言 我们每天写完自动化用例后都会提交到 git 仓库,随着用例的增多,为了保证仓库代码的干净,当有用例新增的时候,我们希望只运行新增的未提交 git 仓库的用例. pytest-picked 插件可 ...
- asp.net 获取网站根目录总结 Global.asax文件里获取获取网站根目录
1: 获取网站根目录的方法有几种如: Server.MapPath(Request.ServerVariables["PATH_INFO"])Server.MapPath(&qu ...
- 第二十章 nginx常见问题
一.Nginx常见问题 一.nginx多server优先级 在开始处理一个http请求时,nginx会取出header头中的Host变量,与nginx.conf中的每个server_name进行匹配, ...
- react渲染数据3种方式
直接渲染,()类似于模板字符串,包裹一个dom元素 ReactDOM.render( (<div> <h2>现在时间:{new Date().toLocaleTimeStrin ...
- python numpy输出排名
python numpy排序后输出排名 问题: 假设某班的成绩为: 姓名 成绩 名次 小红 95 小黑 67 小白 58 小绿 82 小蓝 76 小橙 79 小可爱 99 请根据表格,输出对应的名次 ...
- VS2010下python3的配置
最近突然又想学python,但用惯了vs2010后,十分希望能在vs2010中编译python的程序,于是,秉承着不作到死就不死心的原则就开始了我的配置之旅.但事实上并不难哦?.... 1.首先上场的 ...
- Jmeter入门(4)- 注意事项
一.中文乱码问题的解决方法 1. 将HTTP请求的内容编码改成UTF-8 2. 修改配置文件jmeter.properties 将jmeter安装目录的bin目录下的jmeter.properties ...
- js逻辑程序
JavaScript 是 Web 的编程语言. 所有现代的 HTML 页面都使用 JavaScript. JavaScript 非常容易学. 本教程将教你学习从初级到高级 JavaScript 知识. ...