7月16日,网易公司旗下云服务商网易数帆宣布开源一款名为 Curve 的高性能分布式存储系统,官方称其性能可达 Ceph 的 1.84 倍。
据官方介绍,Curve 的定位是提供一个高性能、低延迟的存储底座,基于这个存储底座,企业可以打造适用于不同应用场景的存储系统,如块存储、对象存储、云原生数据库等。目前,网易数帆已经实现了高性能块存储系统。根据项目文档介绍,Curve 主要具有三大特性:高性能、高可用和自治。
高性能:Curve 团队参考了业界一些高效的开源存储系统,设计了一个新架构以实现高性能低延迟的核心能力。采用 brpc 保证网络数据流的高性能和低延迟,基于 braft 实现多副本一致性下的低延迟,并对 braft 的快照实现进行了进一步的优化。磁盘 IO 方面,Curve 通过更细粒度的地址空间的 hash 减少 IO 碰撞,增加 IO 并发度,并采用 chunkfilepool 减小 IO 放大倍数,从而最大限度地发挥硬件的性能。
网易公布了 Curve 和 Ceph L 版本的测试数据对比,在单卷的场景下,核心的 4K 随机读/写的IOPS 性能,Curve 分别是 Ceph 的 1.84 倍和 1.58 倍,同时延迟相比 Ceph 分别降低 48.39%和 37.50%。
图:Curve与Ceph性能测试对比
高可用:Curve 被设计为核心组件都能容忍部分实例失败而不影响整个集群的可用性。网易介绍,无论是单台存储故障,还是系统扩容,Curve 的客户端 IO 都不会受到影响,插拔硬盘、服务进程中断这些常见异常,IO 抖动也很小。当然,故障恢复过程对上层 IO 也不会造成明显影响。
自治:Curve 可实现一键部署、一键升级,运维只要很少的人工干预,并基于 bvar、Promethues 和 Grafana 等开源项目打造了全面的度量标准和告警体系。
目前,基于 Curve 的高性能块存储系统已经应用在网易的一些核心业务中,支持快照克隆和恢复, 支持 QEMU 虚拟机和物理机 NBD 设备两种挂载方式。网易介绍,系统上线至今 400 多天,尚未出现数据不一致和丢数据的情况,也没有发生过重大故障,具备相当的可靠性和成熟度。
网易透露,Curve 目前还有一些创新的性能优化工作尚未完成,如细粒度哈希、io_uring 落盘方案,项目团队下一阶段的主要任务就是解决这些问题,预计完成优化之后下个版本还会有 30% 的性能提升。
鉴于目前开源领域还没有足够高性能和低延迟的分布式存储系统,网易数帆方面表示希望把 Curve 开源出来,回馈社区,让业界一起来使用它,也希望大家一起参与把 Curve 打造得越来越好。