网易开源分布式存储系统 Curve,性能彪悍!

简介: 易这回良心了:7月16日,网易公司旗下云服务商网易数帆宣布开源一款名为 Curve 的高性能分布式存储系统,官方称其性能可达 Ceph 的 1.84 倍。据官方介绍,Curve 的定位是提供一个高性能、低延迟的存储底座,基于这个存储底座,企业可以打造适用于不同应用场景的存储系统,如块存储、对象存储、云原生数据库等。

网易这回良心了:


7月16日,网易公司旗下云服务商网易数帆宣布开源一款名为 Curve 的高性能分布式存储系统,官方称其性能可达 Ceph 的 1.84 倍。


据官方介绍,Curve 的定位是提供一个高性能、低延迟的存储底座,基于这个存储底座,企业可以打造适用于不同应用场景的存储系统,如块存储、对象存储、云原生数据库等。


CURVE 的设计开发始终围绕三个理念:


一是顺应当前存储硬件设施发展趋势,做到软硬件结合打造顶级的存储产品;


二是秉持 “Simple Can be harder than complex”,了解问题本质情况下选择最简单的方案解决问题;


三是拥抱开源,在充分调研的前提下使用优秀的开源项目组件,避免造轮子。


当前网易基于 CURVE 已经实现了高性能块存储系统,支持快照克隆和恢复 ,支持 QEMU 虚拟机和物理机 NBD 设备两种挂载方式, 在网易内部作为高性能云盘使用。


image.png


目前,网易数帆已经实现了高性能块存储系统。根据项目文档介绍,Curve 主要具有三大特性:高性能、高可用和自治。


1、高性能

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%。


image.png


图:Curve与Ceph性能测试对比


2、高可用

Curve 被设计为核心组件都能容忍部分实例失败而不影响整个集群的可用性。


网易介绍,无论是单台存储故障,还是系统扩容,Curve 的客户端 IO 都不会受到影响,插拔硬盘、服务进程中断这些常见异常,IO 抖动也很小。


当然,故障恢复过程对上层 IO 也不会造成明显影响。


3、自治

Curve 可实现一键部署、一键升级,运维只要很少的人工干预,并基于 bvar、Promethues 和 Grafana 等开源项目打造了全面的度量标准和告警体系。


目前,基于 Curve 的高性能块存储系统已经应用在网易的一些核心业务中,支持快照克隆和恢复, 支持 QEMU 虚拟机和物理机 NBD 设备两种挂载方式。


网易介绍,系统上线至今 400 多天,尚未出现数据不一致和丢数据的情况,也没有发生过重大故障,具备相当的可靠性和成熟度。


网易透露,Curve 目前还有一些创新的性能优化工作尚未完成,如细粒度哈希、io_uring 落盘方案,项目团队下一阶段的主要任务就是解决这些问题,预计完成优化之后下个版本还会有 30% 的性能提升。


鉴于目前开源领域还没有足够高性能和低延迟的分布式存储系统,网易数帆方面表示希望把 Curve 开源出来,回馈社区,让业界一起来使用它,也希望大家一起参与把 Curve 打造得越来越好。


*开源地址: *


https://github.com/opencurve/curve


文章整理转载自 OSCHINA 社区 [http://www.oschina.net\] www.oschina.net/news/117237/netease-opensource-curve https://www.oschina.net/p/curve


相关实践学习
块存储快速入门
块存储是阿里云为云服务器ECS提供的块设备产品。通过体验挂载数据盘、分区格式化数据盘(Linux)、创建云盘快照、重新初始化数据盘、使用快照回滚云盘和卸载数据盘等功能,带您快速入门块存储。
相关文章
|
17天前
|
消息中间件 监控 数据可视化
Apache Airflow 开源最顶级的分布式工作流平台
Apache Airflow 是一个用于创作、调度和监控工作流的平台,通过将工作流定义为代码,实现更好的可维护性和协作性。Airflow 使用有向无环图(DAG)定义任务,支持动态生成、扩展和优雅的管道设计。其丰富的命令行工具和用户界面使得任务管理和监控更加便捷。适用于静态和缓慢变化的工作流,常用于数据处理。
Apache Airflow 开源最顶级的分布式工作流平台
|
22天前
|
存储 运维 负载均衡
构建高可用性GraphRAG系统:分布式部署与容错机制
【10月更文挑战第28天】作为一名数据科学家和系统架构师,我在构建和维护大规模分布式系统方面有着丰富的经验。最近,我负责了一个基于GraphRAG(Graph Retrieval-Augmented Generation)模型的项目,该模型用于构建一个高可用性的问答系统。在这个过程中,我深刻体会到分布式部署和容错机制的重要性。本文将详细介绍如何在生产环境中构建一个高可用性的GraphRAG系统,包括分布式部署方案、负载均衡、故障检测与恢复机制等方面的内容。
78 4
构建高可用性GraphRAG系统:分布式部署与容错机制
|
1月前
|
消息中间件 中间件 数据库
NServiceBus:打造企业级服务总线的利器——深度解析这一面向消息中间件如何革新分布式应用开发与提升系统可靠性
【10月更文挑战第9天】NServiceBus 是一个面向消息的中间件,专为构建分布式应用程序设计,特别适用于企业级服务总线(ESB)。它通过消息队列实现服务间的解耦,提高系统的可扩展性和容错性。在 .NET 生态中,NServiceBus 提供了强大的功能,支持多种传输方式如 RabbitMQ 和 Azure Service Bus。通过异步消息传递模式,各组件可以独立运作,即使某部分出现故障也不会影响整体系统。 示例代码展示了如何使用 NServiceBus 发送和接收消息,简化了系统的设计和维护。
48 3
|
1月前
|
消息中间件 存储 监控
消息队列系统中的确认机制在分布式系统中如何实现
消息队列系统中的确认机制在分布式系统中如何实现
|
1月前
|
消息中间件 存储 监控
【10月更文挑战第2天】消息队列系统中的确认机制在分布式系统中如何实现
【10月更文挑战第2天】消息队列系统中的确认机制在分布式系统中如何实现
|
1月前
|
存储 开发框架 .NET
C#语言如何搭建分布式文件存储系统
C#语言如何搭建分布式文件存储系统
72 2
|
1月前
|
消息中间件 存储 监控
消息队列系统中的确认机制在分布式系统中如何实现?
消息队列系统中的确认机制在分布式系统中如何实现?
|
1月前
|
存储 分布式计算 监控
C# 创建一个分布式文件存储系统需要怎么设计??
C# 创建一个分布式文件存储系统需要怎么设计??
37 0
|
1月前
|
NoSQL Java Redis
太惨痛: Redis 分布式锁 5个大坑,又大又深, 如何才能 避开 ?
Redis分布式锁在高并发场景下是重要的技术手段,但其实现过程中常遇到五大深坑:**原子性问题**、**连接耗尽问题**、**锁过期问题**、**锁失效问题**以及**锁分段问题**。这些问题不仅影响系统的稳定性和性能,还可能导致数据不一致。尼恩在实际项目中总结了这些坑,并提供了详细的解决方案,包括使用Lua脚本保证原子性、设置合理的锁过期时间和使用看门狗机制、以及通过锁分段提升性能。这些经验和技巧对面试和实际开发都有很大帮助,值得深入学习和实践。
太惨痛: Redis 分布式锁 5个大坑,又大又深, 如何才能 避开 ?
|
3月前
|
NoSQL Redis
基于Redis的高可用分布式锁——RedLock
这篇文章介绍了基于Redis的高可用分布式锁RedLock的概念、工作流程、获取和释放锁的方法,以及RedLock相比单机锁在高可用性上的优势,同时指出了其在某些特殊场景下的不足,并提到了ZooKeeper作为另一种实现分布式锁的方案。
114 2
基于Redis的高可用分布式锁——RedLock

热门文章

最新文章

下一篇
无影云桌面