性能1.84倍于Ceph!网易数帆Curve分布式存储开源
在上周刚结束的网易数字+大会上
网易数帆宣布:
开源一款名为Curve的高性能分布式存储系统,
性能可达Ceph的1.84倍!
网易副总裁、网易杭州研究院执行院长兼网易数帆总经理汪源:
基础软件的能力对于数字化转型非常关键,当前存储领域需要一款性能更高、可用性/可靠性更好、自治能力更强的分布式存储系统,Curve的开源不仅代表网易数帆在基础软件市场的坚持,也为软件定义基础设施生态的繁荣再添一把火。
采用先进架构设计 单卷性能1.84倍于Ceph
Curve的定位,是提供一个高性能、低延迟的存储底座,基于这个存储底座,企业可以打造适用于不同应用场景的存储系统,如块存储、对象存储、云原生数据库等。目前,网易数帆已经实现了高性能块存储系统。
汪源介绍,Curve主要具有三大设计特点:高性能、高可用和自治。
高性能源自先进架构。Curve参考了业界的存储系统,采用先进、高效的开源技术,设计了一个新架构实现高性能低延迟的核心能力,采用高性能的RPC框架来保障网络数据流的高性能和低延迟,基于Raft协议实现多副本一致性下的低延迟,并针对Raft协议的快照实现进一步优化。磁盘IO方面,Curve通过更细粒度的地址空间的hash减少IO碰撞,增加IO并发度,并采用chunkfilepool减小IO放大倍数,从而最大限度地发挥硬件的性能。
汪源公布了Curve和CephL版本的测试数据对比,在单卷的场景下,核心的4K随机读/写的IOPS性能,Curve分别是Ceph的1.84倍和1.58倍,同时延迟相比Ceph分别降低48.39%和37.50%。
他在采访中透露,Curve还有一些创新的性能优化工作尚未完成,如细粒度哈希、io_uring落盘方案,预计完成优化之后下个版本还会有30%的性能提升。换句话说,Curve单卷性能将会达到Ceph的2倍以上。性能差异来自架构设计的不同选择,分布式一致性Curve采用了Quorum机制,而Ceph实现强一致性,前者延迟优于后者,而且可以在不太影响IO性能的情况下能从故障中快速恢复。
Curve与Ceph性能测试对比
高可用方面,Curve被设计为核心组件都能容忍部分实例失败而不影响整个集群的可用性。汪源介绍,无论是单台存储故障,还是系统扩容,Curve的客户端IO都不会受到丝毫的影响,插拔硬盘、服务进程中断这些常见异常,IO抖动也很小。当然,故障恢复过程对上层IO也不会造成明显影响。
此外,在自治方面,Curve实现了一键部署、一键升级,运维只要很少的人工干预,并基于Promethues和Grafana等开源技术打造了全面的度量标准和告警体系。
回馈开源 强化软件定义基础设施短板
基于Curve的高性能块存储系统已经作为应用在网易的一些核心业务中,支持快照克隆和恢复, 支持QEMU虚拟机和物理机NBD设备两种挂载方式。
系统上线至今400多天,从未出现数据不一致和丢数据的情况,没有发生过重大故障,数据可靠性达到100%,服务可用率达到4个9以上。线上环境的异常演练,也证实了异常对业务的影响如上文所述。但对于网易数帆来说,这个成绩只是Curve征途的开始。
鉴于目前开源领域还没有足够高性能和低延迟的分布式存储系统,汪源宣布,网易数帆把Curve开源出来,回馈社区,让业界一起来使用它,也希望大家一起参与把Curve打造得越来越好。
Curve项目的最新稳定版本已经上传到Github,并提供了部署文档。作为生长于中国本土的项目,Curve首先提供中文文档,希望降低中文用户尝鲜的门槛。对Curve感兴趣的朋友,可以通过http://opencurve.github.io获取更多信息啦。