如果是在做ceph的配置,我们会经常遇到这几个问题

  1. 问:ceph需要配置几个mon

    答:配置一个可以,但是坏了一个就不行了,需要配置只是三个mon,并且需要是奇数个
  2. 问: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到底能坏几个的更多相关文章

  1. (转)CDN——到底用还是不用?

    用CDN的七个理由 浏览器从服务器上下载css.js和图片等文件时都要和服务器连接,而大部分浏览器对同一个域名用于下载文件的并发连接数限制在4个,这意味着如果要下载第五个文件就必须等前四个文件中有一个 ...

  2. CDN——到底用还是不用?

    最近在学bootstrap,在知乎上搜索bootstrap看到有人问bootstrap基础包体积较大,对性能影响会不会很大,看到两种方法来减少对性能的影响: 有选择地部分加载,bootstrap带有L ...

  3. 对Oracle数据库坏块的理解

    1.物理坏块和逻辑坏块 在数据库中有一个概念叫做数据块的一致性,Oracle的数据块的一致性包括了两个层次:物理一致性和逻辑一致性,如果一个数据块在这两个层次上存在不一致性,那就对应到了我们今天要要说 ...

  4. paip.编程语言到底有没有优劣之分优秀之分

    paip.编程语言到底有没有优劣之分优秀之分 人有没有优秀之分之分呢??狗有没有优秀之分呢?? 当然是有的,有好人坏人的说法,或者精英平民的区分..狗也有好狗狗,坏狗,疯狗嘛.. 所以,自然,编程语言 ...

  5. 你好,C++(18) 到底要不要买这个西瓜?4.1.6 操作符之间的优先顺序

    4.1.6 操作符之间的优先顺序 在表达一些比较复杂的条件判断时,在同一个表达式中,有时可能会存在多个操作符.比如,我们在判断要不要买某个西瓜时,不仅要判断它的总价(单价8.2元/斤,一共10.3斤) ...

  6. HttpClient参观记:.net core 2.2 对HttpClient到底做了什么?

    .net core 于 10月17日发布了 ASP.NET Core 2.2.0 -preview3,在这个版本中,我看到了一个很让我惊喜的新特性:HTTP Client Performance Im ...

  7. Python中的logger和handler到底是个什么鬼

    最近的任务经常涉及到日志的记录,特意去又学了一遍logging的记录方法.跟java一样,python的日志记录也是比较繁琐的一件事,在写一条记录之前,要写好多东西.典型的日志记录的步骤是这样的: 创 ...

  8. 硬盘坏道检测工具对比(DiskGenius/HdTunePro/MHDD等)

    说到硬盘检测软件,大家肯定会想到MHDD,但是MHDD真的好用?反正我觉得太难用了,只能在DOS下运行,不能在Win系统下运行:最重要的是只支持IDE硬盘模式,现在的主板几乎全部默认都是AHCI模式, ...

  9. 所以到底什么是 Growth Hacking?

    Growth hacking 在硅谷的确是有快被用坏的趋势,之所以在大陆的互联网创业圈里还没有普及开来,我想一个是由于这个词并没有对应的中文解释,没有一个能够找到一个相对完美的解释,就像 “hack” ...

随机推荐

  1. 震惊!OI居然还考天体运动

    看图说话 看这里: 标签: 标签竟然还是模拟,简直活到爆,物理老师狂喜

  2. spring-boot-route(十八)spring-boot-adtuator监控应用

    Spring Boot提供了良好的服务监控模块,只需要通过简单的配置便可以完成服务监控和管理.但是服务监控这块内容往往是最容易被忽略的一块内容,今天我们一起来学习一下使用spring-boot-act ...

  3. lumen-ioc容器测试 (2)

    lumen-ioc容器测试 (1) lumen-ioc容器测试 (2) lumen-ioc容器测试 (3) lumen-ioc容器测试 (4) lumen-ioc容器测试 (5) lumen-ioc容 ...

  4. 假如 Web 当初不支持动态化

    楔子 Web 生而具有极其灵活的动态化基础能力,诸如: 动态插入script标签执行任意脚本逻辑 动态插入style标签引入任何 CSS 样式规则 通过iframe标签嵌入整站 以上标签均可直接加载网 ...

  5. Spring Aop 详解二

    这是Spring Aop的第二篇,案例代码很详解,可以查看https://gitee.com/haimama/java-study/tree/master/spring-aop-demo. 阅读前,建 ...

  6. APP打开(一)—以亲身经历谈APP注册登录

    如果不是自己接手过这样的产品,我可能也很难相信,会有公司能够做出十四个注册页面的APP,将选站点.输账号.输密码.用户协议.用户权限等全部拆解成一个一个单独的页面来做,用户在注册的时候仿佛在攀登一座云 ...

  7. 【Azure Developer】使用.Net Core解析JSON的笔记

    在C#中解析JSON的一些历史代码记录,分别记录针对各种情况的解析方式. DLL的引用 using Newtonsoft.Json; using Newtonsoft.Json.Linq; 需要使用的 ...

  8. 循序渐进VUE+Element 前端应用开发(23)--- 基于ABP实现前后端的附件上传,图片或者附件展示管理

    在我们一般系统中,往往都会涉及到附件的处理,有时候附件是图片文件,有时候是Excel.Word等文件,一般也就是可以分为图片附件和其他附件了,图片附件可以进行裁剪管理.多个图片上传管理,及图片预览操作 ...

  9. linux系统软件启动sh脚本

    在系统维护中,编写脚本会帮助运维提高效率,现记录一个通用的软件启动脚本.脚本内容如下: #!/bin/bash # 软件启动程序包名称 APP_NAME=datadog-4.2.0.jar # 软件名 ...

  10. python开发基础(一)-if条件判断,while循环,break,continue,

    条件语句 (1)if 基本语句 if 条件 : 内部代码块 else: .... print() (2)if 嵌套 (3)if elif 语句 (4)if 1==1: pass # if不执行,pas ...