当前位置:网站首页>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
边栏推荐
- Slim gain (sgain) introduction and code implementation -- missing data filling based on generated countermeasure network
- 【Hot100】1. 两数之和
- Convolutional neural networks for machine learning -- an introduction to CNN
- [high concurrency foundation] hidden dangers and solutions of MySQL concurrency under different transaction isolation levels
- Traffic management and control of firewall Foundation
- Solve the problem that subcomponents will not be destroyed through setTimeout
- Cross cluster deployment of helm applications using karmada
- [laravel] about the composer installation of laravel8
- Cardinality sorting - common sorting method (2/8)
- O & M - unified gateway is very necessary
猜你喜欢
7-用户输入和while循环
A 24-year-old bald programmer teaches you how to continuously integrate and deliver microservice delivery. You can't learn how to cut me off
O & M - unified gateway is very necessary
基数排序——【常见排序法(2/8)】
[golang] how to install iris
#夏日挑战赛#OHOS构建自定义服务实战
Cloud sports, 360 ° witnessing speed and passion
Csp-j1 csp-s1 preliminary training plan and learning points in summer and September 2022
The new paradigm of AI landing is "hidden" in the next major upgrade of software infrastructure
Summer Challenge ohos build custom service practice
随机推荐
Slim gain (sgain) introduction and code implementation -- missing data filling based on generated countermeasure network
NOIP1998-2018年普及组 CSP-J2 2019 2020 解题报告及视频
MySQL auto - Connect Query recommended favorites
机器学习之卷积神经网络Lenet5训练模型
【Hot100】4. Find the median of two positive arrays
Coding Devops helps Sinochem information to build a new generation of research efficiency platform and drive the new future of "online Sinochem"
【TcaplusDB知识库】修改业务修改集群cluster
The new paradigm of AI landing is "hidden" in the next major upgrade of software infrastructure
How to log in to your WordPress admin dashboard
【Hot100】3. 无重复字符的最长子串
C#/VB.NET 将PDF转为Excel
Interview with wangyuntao of China Academy of information technology: digital and real integration enables the prosperity and development of cultural industry
PID控制详解[通俗易懂]
访中国信通院王蕴韬:数实融合赋能文化产业繁荣发展
Internet of things cloud convergence Security Guide
如何在网站上安装 WordPress
【力扣】977. 有序数组的平方
Noip1998-2018 popularization group csp-j2 2019 2020 problem solving report and video
【Redis】2021/01/31 Redis的简单归纳 No.01
[MySQL] official website document learning query statement SQL precautions