从一名普通 Cepher 到 Curver 的转变史
写在前面
首先说明,我一直认为 Ceph 是一款非常优秀的开源存储软件,我接触 Ceph 也有好些年了,Ceph 除了为我带来知识上的收获,还为我带来生活上的温饱,所以我对 Ceph 充满了感恩与 Respect。
其次,尽管已经涉猎存储领域好几年,但我依然只算得上存储新人,因为存储涉及到的领域是既宽广又深入。存储的数据对于任何一家公司来说都是无价的资产,所以作为一个存储人有必要永远保持一颗敬畏之心,敬畏自己敲下的每一行代码,敬畏自己敲下的每一个线上命令。
存储抑或云计算的圈子其实很小,所以非常荣幸借 Curve 这样一个开源项目,能与那些既陌生又熟悉的存储人一起交流与学习。
我在网易做 Ceph
好风凭借力,存储其实很难作为一款独立的产品提供给用户使用,也正因为如此,Ceph 先后借着 OpenStack 和 K8s 这两股东风获得了快速的发展,逐渐成为了开源领域的明星产品。
网易这边差不多是2015年开始关注 Ceph 的,基本上算是一个早期的阶段。最开始我们是基于 OpenStack 使用 Ceph 块存储提供虚拟机,2015年左右其实也是移动互联网蓬勃发展的好时机,那时候网易集团先后孵化了网易云音乐,网易严选,网易考拉等业务,借着这些业务的发展,我们使用 Ceph 的体量也得到了飞速的发展,比如2015年的时候我们可能整个也就几百个 OSD,2016年的时候已经有5000+个OSD,2017年有15000+个OSD,到了2018年已经有30000+个OSD,同时最大规模的单集群达到了4000+个OSD。
2017年左右,随着 K8s 的应用以及普及,公司内外的很多业务都开始拥抱容器化了,在当时的场景下,Ceph 文件存储便逐渐有超越 Ceph 块存储之势。我们也在这一阶段开始把 Ceph 的版本切换到 L 版本。
在从事 Ceph 这段时间里,我虽然做了一些事情,但坦率地讲,做的事情并不多,以前跟圈里从事 Ceph 的小伙伴们聊天,大家经常会开玩笑说我们其实不算是研发(懂的都懂,这里为了不招职业黑,原话就不贴了,哈哈)。
因为所做的事情确实并不多,所以几句话就足以总结我这几年做过的事情:维护了几个还算大的 Ceph 集群;分析并优化了几项 Ceph 的性能;优化了几项 Ceph 的抖动问题;完善了 Ceph 的运维体系;向社区提交了几个简单的 PR。奥,还有,拯救了几次线上集群,或许,这几年里,也只有少数的这几个时刻,让我觉得自己像是一个超级马里奥。
Curve:缘起
缘起1:来自业务的无数次diss
对于大规模线上集群来说的话,坏盘,慢盘,raid卡故障或者是服务器故障等异常场景是很频繁的。但是因为 Ceph 三副本的强一致性协议,那么需要三副本均写完了,才能返回给业务写成功。所以这时,但凡有一个点异常了,写IO便迟迟无法返回给客户端;更为要紧的是,Ceph 的池化概念导致了属于该池子的所有业务卷都会受影响。
所以往往就是 Ceph 线上但凡有一处异常,便会导致大面积的用户卷IO发生卡顿。由于像网易云音乐以及电商这些业务的用户对卡顿是非常敏感的,所以每到这时业务这个甲方爸爸便会找到我们,要求我们给出解决方案。
缘起2:降本增效
众所周知,Ceph 的均衡性现在还不是特别好(当然,现在有自动均衡,但是我理解线上应该不敢轻易上这功能;至于pg upmap的话运维就比较麻烦了)。
对于线上 Ceph 集群来说,不同硬盘使用率差别可能有百分之二三十。但是问题在于,Ceph 集群存在着短板效应,尤其是 Ceph 的老版本,一个OSD满了,整个集群就不可服务IO了;后续版本的话一个OSD满了,它对应的pool所属的所有卷便都不能服务IO了。
所以,线上的现实就是,Ceph 集群的平均使用率到了百分之七十多,大家就会赶紧想着扩容,要不然万一某个osd写满了,那可能就要full跑路了。
这个问题势必就带来了成本上的大幅上升,明明才使用百分之七十多,却要着急扩容。如果你要扩容,那势必会增加服务器,增加硬盘,增加网络以及机房托管费等层层费用开销。
缘起3:性能
当前来说的话,是希望我们的存储能够支撑数据库场景。
Ceph 的性能优化也一直是社区的一个方向,但是基于 Ceph 的架构和功能比较复杂,所以这个优化过程是一个长期的过程。
基于这几个主要方面的原因,我们开始了 Curve 的研发。Curve 在稳定性方面,线上大规模稳定运行了两年多,无任何 SLA 损失;在成本方面,由于 Curve 出色的均衡性,集群使用率可以接近百分之百;在性能方面,Curve 的性能在大多数场景下均是优于 Ceph 的,具体情况可以参见 Curve GitHub 主页:
https://github.com/opencurve/curve
Curve:现状,未来
Curve 项目2020年正式开源,今年6月份被正式接纳为 CNCF 沙箱(Sandbox)项目;网易基于开源 Curve 的商业化版本今年7月份通过信创认证。Curve 愿景:替代 Ceph 的国产开源项目。
Curve 的块存储已经在线上大规模稳定运行两三年,Curve 文件存储第一个正式稳定版本于今年发布,目前正在持续完善和场景落地中。
对于块存储,稳定性和可用性已经有比较好的保证,并且当前也有着不错的性能;而我们也有更高的目标,目前正在与云原生数据库团队合作,打造更加高性能的支撑数据库存算分离的块存储。
对于文件存储,我们期望打造性能与成本可兼得的云原生文件系统。
普用性:大家可以对接通用的的对象存储系统(比如AWS S3、网易 NOS、MinIO 等等);
高性能:数据后端可以直接使用 Curve 块存储(这一块,Curve也是完全开源的);
低成本:数据后端可以直接只用对象存储;另外,我们也可以把Curve块存储作为对象存储的缓存层。
对于EC,有不少社区同学关心这一块,当前 Curve EC 功能正由社区小伙伴驱动在完善这一块,不久后也会跟大家见面,也欢迎更多的社区同学来参与共建。
Curve 推荐词
如果要我给大家推荐 Curve 几个关键词的话,我想我会用上以下几个关键词:稳定性;低成本;高性能;国产开源,信创认证;残缺美。
Curve 作为一款年轻的开源存储系统,与 Ceph 相比肯定有很多不足之处。但是Curve 相比 Ceph,在某些方面也有着一定的优势,所以如果这些优势正好也是您所关注的,那么也非常荣幸,能有机会向您推荐 Curve。
稳定性
如前文所述,Ceph 在各种硬件异常导致的单副本产生故障时,会造成大面积的SLA损失,Curve 则不会有任何SLA损失。
成本
Curve 相较于Ceph更优的均衡性,可以降低扩容要求,减少大量硬件成本。
性能
Curve 之初,就是为了解决大多数场景下 Ceph 的性能缺陷。
国产开源,信创认证
Curve 社区的发起者和参与者目前主要都在国内,能形成更好的交流氛围与途径。当前国际形势下,建设国产自主可控体系、大力发展信创产业已成为“数字基建”的目标,Curve 获得国家工业信息安全发展研究中心的信创认证,验证了 Curve 与信创供应链中其他产品的高度兼容适配。
进步空间广阔
Ceph 是一款优秀的开源存储软件,发展了十几年,但 Ceph 的功能已经非常完善,想要参与社区或者精通 Ceph 是一件非常难的事情。而 Curve 才开源两年,尤其是 Curve 文件存储,正是因为 Curve 的不完善,Curve 社区接下来才有更多的事情要做,所以我们也更加渴望与期盼更多的社区朋友跟我们一起发展一起来玩,让我们都能成为国内开源存储的一份子。
写在最后
写这篇文章其实很惶恐,但若能藉此让朋友们知道我现在正在做什么,甚或能再增加三两志同道合的知己,一起做有趣且有价值的的事情,那便是我莫大的荣幸了。
<原创作者:Hongsong Wu,Curve Maintainer>

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
如何利用现代化数据栈高效处理地理信息数据
背景知识 什么是地理信息数据 地理信息数据的定义主要来自于我们熟知的星球——地球。我们知道地球表面是一个凸凹不平的表面,是一个近似的椭球体。以海平面为参照已知最高点和最低点之间有接近 2 万米的差距。 珠穆朗玛峰,8848.86米含冰层(人民日报:2020年12月8日) 马里亚纳海沟,相对海平面深10909米(人民日报:2020年11月30日) 即便是海平面也会在月球潮汐引力的作用下变化着,更不要提气候变化导致的海平面升高。因此要想找到一个确切的数学模型来表示地球还是挺困难的一件事。 于是人们以北极南极为两个定点,将地球按照这个轴线进行旋转。地球在这个旋转形态的下就会呈现一个椭球体的形态,这个就是理想的地球椭球体。这个椭球体就可以利用数学模型来进行表示。 正是基于这样一个共识,在 1975 年国际大地测量与地球物理联合会推荐下地球椭球体的模型数据被推荐为:半长径 6378140 米,半短径 6356755 米,扁率 1∶298.257,后续该数值有一些修正。 基于这些精准的测量数据,我们可以通过数学表示来定义地球上所有的点,从而利用现代化的定位技术我们可以精确定位地球上所有的位置。 定...
- 下一篇
一文读懂 DNS 解析的工作机制和优化挑战
数字时代,DNS(Domain Name System,域名系统)是最重要的战略资源之一。 就像我们访问好友需要知道他的地址一样,访问互联网也需要先获知“地址”。DNS 就是解析网址,将域名和 IP 地址相互映射的分布式数据库,能够使人更方便地访问互联网。所以,DNS 的运行效率和稳定性,极大影响我们的上网体验。 本文将详解 DNS 的工作流程,分析传统 DNS 解析面临的问题并分享 DoH 的破局实践。 详解 DNS DNS 的层级结构 DNS 的层级结构必须支持高可用、高并发以及分布式,呈树形,自上而下分为四层,分别是根DNS服务器、顶级域DNS 服务器、权威 DNS 服务器以及最贴近用户侧的本地 DNS服务器(LocalDNS)。另外,还有一类比较特殊的 LocalDNS,被称为公共 DNS。 根 DNS 服务器作用是返回顶级域 DNS 服务器的地址。 顶级域 DNS 服务器作用是返回权威 DNS 服务器地址。 权威 DNS 服务器作用是返回对应主机的域名所解析的 IP 地址。 本地 DNS 服务器虽然没有域名解析结果的决定权,但它代理了用户向权威 DNS 服务器获取域名解析结...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- Docker安装Oracle12C,快速搭建Oracle学习环境
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- CentOS7安装Docker,走上虚拟化容器引擎之路
- SpringBoot2全家桶,快速入门学习开发网站教程
- CentOS7设置SWAP分区,小内存服务器的救世主
- CentOS7,CentOS8安装Elasticsearch6.8.6
- Hadoop3单机部署,实现最简伪集群
- SpringBoot2更换Tomcat为Jetty,小型站点的福音
- SpringBoot2配置默认Tomcat设置,开启更多高级功能