当前位置:网站首页>Curve 替换 Ceph 在网易云音乐的实践
Curve 替换 Ceph 在网易云音乐的实践
2022-06-28 16:23:00 【InfoQ】

- 性能差:由于单卷性能差(主要是 IO 时延高,IOPS 上不去,并且容易受到集群内其他高负载卷的影响),因此只能用于系统盘,或者作为云盘供应用打印日志,无法支撑中间件业务使用。
- IO 抖动:经过我们观察发现 IO 时延超出 2s 就可能会导致磁盘 util 100%,业务就会大面积告警,请求堆积,严重情况下会引发雪崩效应;根据前 2 年的观察,Ceph 云盘 IO 抖动的非常频繁(基本每月都有),抖动时长也达分钟级,因此有很多核心应用都切换到了本地存储来规避类似问题。
- 抖动:自从使用 Curve 云盘后,磁盘 IO util 监控再也没有出现过因分布式存储系统导致的 100% 告警,业务运行的稳定性得到极大提升,核心业务也逐步迁回了 Curve 云盘(毕竟云盘的高空间利用率、可靠性、可迁移性、快速恢复能力也是业务非常看重的)。
- 性能:同等硬件下,Curve 单卷性能是 Ceph 卷的 2 倍 +,时延也大大低于 Ceph,具体性能对比可以参考下图:

- 服务升级:常见的需要升级客户端的场景包括 bug 修复、新功能增强以及版本升级这几个方面,我们遇到过一个 Ceph 社区消息模块 32 位序号溢出的 bug,该 bug 会在长期运行的客户端出现,造成 IO hang,客户端和服务端都需要更新版本才能解决。更新客户端的时候有两种选择,一是重启云主机的 QEMU 进程,二是对云主机执行热迁移操作 live migration,这两个操作在少量云主机场景下可行性比较高,但如果对成百上千台云主机进行类似操作,显然可操作性非常低,业务显然无法接受。另外服务端升级在重启 OSD 进程时也会造成一定的 IO 抖动,需要在业务低峰期操作,并且需要业务临时关闭磁盘 util 告警。
- 性能:运维人员主要关注存储集群整体性能,若集群总容量和总性能不匹配,容易导致容量充足的情况下性能却不足的问题,要么少创建卷导致容量浪费,要么继续创建卷但是会影响单卷的 IO 时延和吞吐,另外 Ceph 集群卷数量到达一定规模后,随着卷数量的增加,其集群整体性能也是逐渐下降的,这就导致单卷的性能受到更大的影响。
- 算法:受限于 CRUSH 算法限制,Ceph 的 OSD 之间数据分布非常不均衡,空间浪费严重,据我们观察,最高和最低的 OSD 空间使用率差值可以达到 50%,经常需要进行数据均衡操作,但在数据均衡过程中会产生大量的数据迁移操作,导致 IO 抖动,另外数据均衡也不能完美的解决 OSD 容量使用不均衡问题。
- IO 抖动:坏盘换盘,节点宕机,高 IO 负载,扩容(不新增 pool,新增太多 pool 会导致 OpenStack 维护变复杂)数据均衡,网卡丢包,慢盘等等。
- 服务升级:客户端支持热升级,操作过程中 QEMU 进程不需要重启,也不需要迁移,毫秒级影响对云主机内业务几乎无感,热升级相关架构设计可以参考①。Curve 服务端升级时,得益于 quorum 机制的一致性协议 raft,只要做到按副本域升级,就可以保证对业务 IO 的影响在秒级,IO 时延不超过 2s 就不会导致 util 100%。
- 性能:Curve 集群可以在同等容量规模下,创建更多的卷,并且保持稳定的性能输出。
- 算法:Curve 数据分配由中心化的 MDS 服务进行,可以保证非常高的均衡性,最高和最低的 chunkserver 空间利用率偏差不超过 10%,也就不需要做数据均衡操作。
- IO 抖动:Ceph 云盘容易发生 IO 抖动的场景下,Curve 云盘表现更稳定,Curve VS Ceph 具体如下图:



- 探索基于 Curve 块存储的云原生中间件场景,例如将改造后的 Redis、Kafka、消息队列等服务运行在 Curve 块存储卷上,减少故障切换时间。
- 上线基于 CurveBS+PolarFS+MySQL 的云原生数据库。
- 其他存量使用 Ceph 云盘、本地存储的云主机切换到 Curve 块存储卷。
- GitHub:https://github.com/opencurve/curve
- 微信群:请搜索添加或搜索群助手微信号 OpenCurve_bot
边栏推荐
- Why MySQL table connection is faster than subquery
- 元宇宙中能接吻了!CMU推出VR头显外挂,复刻唇部逼真触觉
- Solve the problem that subcomponents will not be destroyed through setTimeout
- Have you ever encountered the error that the main key of this setting is consistent with the database?
- The future of platform as code is kubernetes extension
- 一次简单的反射型XSS操作及思路
- 昨日元宇宙| 沃尔玛成立探索元宇宙和Web3的创新部门,Dior发布元宇宙展览
- WPF video hard decoding, rendering and playing (no airspace) (support 4K, 8K and high frame rate video)
- Can SQL queries be used in the tablestore to find out all the data in the table?
- 10.hystrix circuit breaker
猜你喜欢

【尚硅谷与腾讯云官方合作】硅谷课堂项目视频发布
Super detailed steps for MySQL master-slave switching

Geoffrey Hinton: my 50 years of in-depth study and Research on mental skills
![[proteus simulation] L297 driving stepping motor](/img/12/7902cf31f19df5d2613de7f25dca5b.png)
[proteus simulation] L297 driving stepping motor

The future of platform as code is kubernetes extension

QQ出现大规模盗号,为什么会这样?就没有解决方法了吗?

#夏日挑战赛#OHOS构建自定义服务实战

FS2K人脸素描属性识别

【TcaplusDB】祝大家端午安康!

Traffic management and control of firewall Foundation
随机推荐
[laravel] about the composer installation of laravel8
【Hot100】3. 无重复字符的最长子串
【TcaplusDB知识库】修改业务修改集群cluster
云上竞技,360°见证速度与激情
CRM 全栈开发工具 WebClient UI Workbench 的设计细节介绍
2022年暑期及9月份CSP-J1 CSP-S1初赛 培训计划及学习要点
CODING DevOps 助力中化信息打造新一代研效平台,驱动“线上中化”新未来
Open source technology exchange - Introduction to Chengying, a one-stop fully automated operation and maintenance manager
ID card copy tutorial (use t5577 card to copy 4100 card)
The first WordPress plug-in you are taught to make step by step
Convolutional neural networks for machine learning -- an introduction to CNN
Hello, is it safe to open an account to buy stocks online?
How can the sports app keep the end-to-side background alive to make the sports record more complete?
AI落地的新范式,就“藏”在下一场软件基础设施的重大升级里
2019 CSP J2 entry group csp-s2 improvement group round 2 video and question solution
你好,现在网上炒股开户买股票安全吗?
Mysql自連接查詢「建議收藏」
You have a chance to collect wool. Click "earn" and you will have a chance to earn a high commission
Can SQL queries be used in the tablestore to find out all the data in the table?
A simple reflective XSS operation and idea