使用Bcache优化ceph iops性能详解攻略-CSDN博客

笔者环境,6台服务器,centos7系统,内核版本5.0,双万兆存储网络。

每台服务器配置 2 * NVME-SSD800G, 6 * HDD600G。

不废话,先上优化结果。可以看到,4k随机写IOPS能达到120K,已经很不错了。

 

开始之前先DISS一波cache tier,之前一直调研的这个,结果完成后发现了各种各样的问题,数据不自动回刷,iops不稳定,资源分配严重不均,存储系统复杂度太高,IO路径太长,笔者甚至因此丢过数据。除非特殊场景,否则真的不建议使用ceph cache tier,连社区自己都弃用了(真像扶不起的IE -_-||),详见:https://access.redhat.com/documentation/en-us/red_hat_ceph_storage/2.0/html/release_notes/deprecated_functionality#:~:text=Cache%20tiering%20is%20now%20deprecated,to%20the%20cluster%20when%20activated. 当然这不是本次讨论的重点,细节就不再详细说了。

下一个问题,既然cache tier 如此不靠谱,我们该如何利用SSD的高速随机读写性能来为HDD加速呢?目前比较成熟的技术有很多,flashcache,enhanceIO,dm-cache,bcache等。经过圈内权威大佬们的测试,Bcache是性能最好的块设备加速方式,也就是我们今天要讲的重点。

首先说安装,Bcache的安装和别的工具不太一样,他是并入内核模块的,也就说如果你的内核加载了Bcache模块就可以拿来直接用,下面是笔者亲身经历的各个版本Bcache排坑过程,都是泪啊:

关于内核版本对bcache的支持排坑:

3.10.0-693 没有开启bcache内核模块,重新编译,开启bcache

3.10.0-693.21.1 开启bcache内核模块后,安装成功,但是稳定性不好,重启后无法自动挂载,性能不稳定,IOPS浮动特别大,没办法,再次升级内核。

4.4.239 为了方便起见,直接升级到4.4(默认加载bcache)。但是发现一个很坑的问题,回刷速度无法自定义,达到阈值后,回刷流量抢占IO特别严重,IOPS直接下降百分之70。但是达到阈值之前就算硬盘很闲,也是固定0.5k回刷速度,非常浪费资源,没办法再次升级内核。

5.9.1-1 5.x版本自带了writeback_rate_minimum参数,可以很方便的调节阈值之前的回刷速度,而且闲时会开启最大回刷档,非常贴合业务高峰低谷的实际需求。但是问题又来了,不知道4.4 - 5.9之间内核改动了什么,导致SSD固态的性能损失特别严重,大约为百分之30-40,没办法,这次降级内核。

5.0.0-2 谢天谢地,终于没毛病了,结合了ceph一些配置优化以及系统参数优化,终于将随机写IOPS打到了稳定100k+。

所以,过来人的忠告,请直接用5.0 - 5.5内核,不能低了也不能高了。

开始安装
升级内核:
————————————————

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

原文链接:https://blog.csdn.net/u014706515/article/details/109173922

发表评论

邮箱地址不会被公开。 必填项已用*标注