backfill和recovery的最优值
ceph在增加osd的时候会触发backfill,让数据得到平均,触发数据的迁移
ceph在移除osd的时候需要在节点上进行数据的恢复,也有数据的迁移和生成
只要是集群里面有数据的变动就会有网卡流量,cpu,内存等资源的占用,并且最重要的是还有磁盘的占用,这个客户端也是需要对磁盘进行访问的,当请求出现碰撞的时候,肯定会比正常的情况下要慢很多,而且还有可能因为资源方面的原因而引起机器down机等异常状况的出现
主要引起的问题可能:
- 在peering的时候 block 了IO请求
- 在backfill的引起了slow requests
- 上面的两个情况会引起客户端的降速和出现soft lockup
这个在一般情况下会出现不同的需求:
- 慢点可以一定不能出问题,不能中断业务
- 越快迁移完越好,早点结束维护服务
- 需要又快又不能影响业务
这个需要根据自己可以掌控的程度来进行控制,首先环境的不同,影响不同,迁移数据量,网卡的带宽都是重要的影响因素,从整体上可以根据自己的环境按照上面的三个要求中的一个进行控制
上面的三种情况:
第一个慢点迁移不能出问题,这个处理方式比较简单,直接将相关参数控制到最低的值,这个能保证业务的影响最低,但是带来的影响就是迁移需要很久的时间,可能长达几十个小时
第二个越快越好就是用默认的参数或者加大参数,然后观察这个迁移过程中的资源的占用情况
第三个就是需要在自己的环境下进行多测试验证这个参数,本篇主要就是根据思科的测试出来的参数进行分析
下面的参数是思科测试出来的值:
osd recovery max active = 3 (default : 15)
osd recovery op priority = 3 (default : 10)
osd max backfills = 1 (default : 10)
测试过程的数据图

这个图开始的时候我也没太明白,后来多看下就理解了,实际上在很多情况下,一个因素的变化是会引起其他两个因素的变化,而这两个因素是一个正面的因素和一个负面的因素,而找到这个平衡值就是最优的情况,在这里的因素包括:
- max-backfill和max-recovery :迁移相关参数
- MTTR(mean time to recovery):失效恢复时间,也就是迁移完成
- Soft Lockup:前面虚拟机出现的soft lockup,也可以理解为对前端的影响
测试环境一致,都是 down 掉10%的osd进行恢复:
在迁移参数最低的时候,没有出现soft lockup ,也就是最低迁移参数的时候,影响最小,恢复使用了45分钟
随着迁移相关参数调大的时候,迁移的时间的曲线是先降低,在到达一定的值后又开始增加(这个地方可能是迁移过大出现了前端io锁住,然后影响了迁移速度)
随着迁移相关参数的调大,出现soft lockup的情况是增加的
从测试的曲线来看,在2-6之间是出现的最优值,也就是出现异常的情况概率最低,并且迁移速度最快,最终选择了一组最优的值 :
osd recovery max active = 3 (default : 15)
osd recovery op priority = 3 (default : 10)
osd max backfills = 1 (default : 10)
这个值是思科的测试出来的值,这个值可以根据自己的需要进行取用,大概的情况是这样
- 完全无法把控就把参数调整到最低
- 使用思科的推荐值
- 根据自己的环境测出自己环境的最优值
很多参数是别人根据自己的环境测试出来的,很多情况并不是通用的,得到别人测试的思路是最重要的,然后消化后自己根据自己的需要得出自己的值
说点自己最近的感想
根据自己的观察和自己的经验,所有的知识都是需要自己主动去获取主动的去消化,然后去实践的,在任何地方没有说通过传授知识,你就能学会了,公司的程序员的技术也是自己主动的去学习的,所谓的经验也只能是告诉你一些方法,而且你也没办法要求任何人与你一样的努力,一样的对你所做的东西感兴趣,认同你的观点,很多时候需要的是技术的碰撞,在一家公司需要的是员工能够完成你的事情,所以我们要尊重努力的员工,这类员工非常努力,但是可能无法达到你的要求,这个需要鼓励,还有一种是效率非常高的员工,这类员工能够轻松的完成任何事情,这类员工可以给与充分的自由,最终以时间以及结果双向评估员工对公司的贡献
最近tinyfool老师在进行ios开发的一个分享的时候,一堆想获取的干活的人去听,而tinyfool老师在这个分享会上通知了自己公司破产解散的事情,宣告再次的失败,而一些来想获取干货的人却开喷了,说没有获取到任何干货,这些人想获取的干货就是拿来直接干的货,而tinyfool老师分享的经验,包括在最后宣告解散的时候准备开源自己的东西,极力的推荐自己的员工是多么的优秀,还有其他的一些东西,这些其实都是干货,引用高春辉老师对这件事的看法的一段话:
很多人可能相比之下,觉得代码语言这些硬技能最重要。其实我和我周边的朋友基本都认为,软技能才最重要,其实人的智商都差不多,再笨也不会笨很多,但如何待人接物,如何对待同事和朋友,如何高效利用时间,内心对成功的渴望,还有是否有责任心和荣誉感还有成就感这些,包括个人兴趣以及性格,这些是很难在进入社会之后再改变的了,除非有重大事情发生,否则很难很难改变。所以多数情况下,十年后的你的境遇,其实是十年前就已经决定的了 --高春辉
任何公司任何员工都不可能十全十美,其实有时候换位思考一下,站在企业角度想一下,公司需要什么样的员工,站在员工的角度想一下,想要公司怎么的为自己保证最大利益,如果能够做到相互的价值观一致,就能处于一个和谐的状态了
backfill和recovery的最优值的更多相关文章
- ceph network introduce
网络结构 Ceph 使用以太网连接内部各存储节点以及连接 client 和集群.Ceph 推荐使用两个网络: 前端(北向)网络( a public (front-side) network):连接客户 ...
- Ceph源码解析:概念
Peering:一个PG内的所有副本通过PG日志来达成数据一致的过程.(某PG如果处于Peering将不能对外提供读写服务) Recovery:根据Peering的过程中产生的.依据PG日志推算出的不 ...
- BlueStore-先进的用户态文件系统《一》
https://zhuanlan.zhihu.com/p/45084771 分布式存储系统通过将数据分散到多台机器上来充分利用多台机器的资源提高系统的存储能力,每台机器上的数据存放都需要本地的单机存储 ...
- 分布式存储Ceph之PG状态详解
https://www.jianshu.com/p/36c2d5682d87 1. PG介绍 继上次分享的<Ceph介绍及原理架构分享>,这次主要来分享Ceph中的PG各种状态详解,PG是 ...
- CEPH-5:ceph集群基本概念与管理
ceph集群基本概念与管理 ceph集群基本概念 ceph集群整体结构图 名称 作用 osd 全称Object Storage Device,主要功能是存储数据.复制数据.平衡数据.恢复数据等.每个O ...
- 记录一次ceph recovery经历
一次ceph recovery经历 背景 这是一个測试环境. 该环境中是cephfs 一共12个节点, 2个client.2个mds.8个osd mds: 2颗CPU,每一个4核.一共是8核. 128 ...
- POJ 2255. Tree Recovery
Tree Recovery Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 11939 Accepted: 7493 De ...
- Android手机刷recovery
以前觉得android刷机是件很麻烦的事,现在倒不觉得了. 只要手机刷入第三方的recovery,一切都好办了,无论是root还是刷google play. recovery开源的有两大阵营,tw ...
- Change the Target Recovery Time of a Database (SQL Server) 间接-checkpoints flushcache flushcache-message
Change the Target Recovery Time of a Database (SQL Server) 间接checkpoints flushcache flushcache-mes ...
随机推荐
- 自定义常用input表单元素三:纯css实现自定义Switch开关按钮
自定义常用input表单元素的第三篇,自定义一个Switch开关,表面上看是和input没关系,其实这里采用的是checkbox的checked值的切换.同样,采用css伪类和"+" ...
- spring boot:用itextpdf处理pdf表格文件(spring boot 2.3.2)
一,什么是itextpdf? 1,itextpdf的用途 itextpdf是用来生成PDF文档的一个java类库, 通过iText可以生成PDF文档, 还可以把XML/Html文件转化为PDF文件 2 ...
- Gitlab 11.9.1 高可用教程
Gitlab 11.9.1 高可用教程 一. PostgreSQL数据迁移 由于默认Gitlab的安装会内置Postgres数据库,并且没有对外,所以我们需要通过设置对应的Gitlab的配置将其中的数 ...
- 第十章 nginx常用配置介绍
一.虚拟主机 1.配置方式 #虚拟主机配置方式:1.基于多IP的方式2.基于多端口的方式3.基于多域名的方式 2.方式一:基于多IP的方式 1.第一个配置文件[root@web02 /etc/ngin ...
- 【Azure 批处理 Azure Batch】在Azure Batch中如何通过开始任务自动安装第三方依赖的一些软件(Windows环境)
准备条件 Azure Batch账号 需要安装的软件包(zip)文件,里面包含该软件的msi安装文件, 此处使用python.msi 版本 3.3.3 作为例子(https://www.python. ...
- java中继承和多态
转自原文http://blog.csdn.net/xinxin19881112/article/details/2944760 若冒犯博主,请勿见怪! 1. 什么是继承,继承的特点? 子类继承父类的 ...
- svn右键菜单不显
问题1: 32位svn客户端安装到64位win7机器上,出现svn右键菜单不显. 网上有些说,,选择Mufwin7,关键下拉列表没有这项. 后来有人推荐64位系统安装64svn;32位系统安装32sv ...
- 2020-2021-1 20209306 《linux内核原理与分析》第一周作业
学习过程中遇到了如下的问题,通过探索找到了可以解决的方法 1.如何退回主目录或者编辑某个文件夹. 使用cd/home可以退回主目录,这里注意的是绝对路径和相对路径的区别,在学习时我试图切换到home目 ...
- localStorage.getItem得到的是[object Object] 的解决方案
设计背景: 购物车要实现本地存储,避免刷新页面数据丢失 实现方案: 1,本地储存,进入页面获取本地数据,在进行数据操作 2,每操作一次数据就将数据传给后台进行保存,(操作数据多,用户量大对服务器造成压 ...
- 18 . Go之操作Mysql和sqlx使用
安装mysql wget http://dev.mysql.com/get/mysql57-community-release-el7-8.noarch.rpm yum -y localinstall ...