性能1.84倍于Ceph!网易数帆Curve分布式存储开源

2023-11-21 09:10

本文主要是介绍性能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获取更多信息啦。

这篇关于性能1.84倍于Ceph!网易数帆Curve分布式存储开源的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/401334

相关文章

Nginx分布式部署流程分析

《Nginx分布式部署流程分析》文章介绍Nginx在分布式部署中的反向代理和负载均衡作用,用于分发请求、减轻服务器压力及解决session共享问题,涵盖配置方法、策略及Java项目应用,并提及分布式事... 目录分布式部署NginxJava中的代理代理分为正向代理和反向代理正向代理反向代理Nginx应用场景

Java 线程池+分布式实现代码

《Java线程池+分布式实现代码》在Java开发中,池通过预先创建并管理一定数量的资源,避免频繁创建和销毁资源带来的性能开销,从而提高系统效率,:本文主要介绍Java线程池+分布式实现代码,需要... 目录1. 线程池1.1 自定义线程池实现1.1.1 线程池核心1.1.2 代码示例1.2 总结流程2. J

MyBatis/MyBatis-Plus同事务循环调用存储过程获取主键重复问题分析及解决

《MyBatis/MyBatis-Plus同事务循环调用存储过程获取主键重复问题分析及解决》MyBatis默认开启一级缓存,同一事务中循环调用查询方法时会重复使用缓存数据,导致获取的序列主键值均为1,... 目录问题原因解决办法如果是存储过程总结问题myBATis有如下代码获取序列作为主键IdMappe

k8s搭建nfs共享存储实践

《k8s搭建nfs共享存储实践》本文介绍NFS服务端搭建与客户端配置,涵盖安装工具、目录设置及服务启动,随后讲解K8S中NFS动态存储部署,包括创建命名空间、ServiceAccount、RBAC权限... 目录1. NFS搭建1.1 部署NFS服务端1.1.1 下载nfs-utils和rpcbind1.1

Redis高性能Key-Value存储与缓存利器常见解决方案

《Redis高性能Key-Value存储与缓存利器常见解决方案》Redis是高性能内存Key-Value存储系统,支持丰富数据类型与持久化方案(RDB/AOF),本文给大家介绍Redis高性能Key-... 目录Redis:高性能Key-Value存储与缓存利器什么是Redis?为什么选择Redis?Red

Docker多阶段镜像构建与缓存利用性能优化实践指南

《Docker多阶段镜像构建与缓存利用性能优化实践指南》这篇文章将从原理层面深入解析Docker多阶段构建与缓存机制,结合实际项目示例,说明如何有效利用构建缓存,组织镜像层次,最大化提升构建速度并减少... 目录一、技术背景与应用场景二、核心原理深入分析三、关键 dockerfile 解读3.1 Docke

MyBatis-plus处理存储json数据过程

《MyBatis-plus处理存储json数据过程》文章介绍MyBatis-Plus3.4.21处理对象与集合的差异:对象可用内置Handler配合autoResultMap,集合需自定义处理器继承F... 目录1、如果是对象2、如果需要转换的是List集合总结对象和集合分两种情况处理,目前我用的MP的版本

从原理到实战解析Java Stream 的并行流性能优化

《从原理到实战解析JavaStream的并行流性能优化》本文给大家介绍JavaStream的并行流性能优化:从原理到实战的全攻略,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的... 目录一、并行流的核心原理与适用场景二、性能优化的核心策略1. 合理设置并行度:打破默认阈值2. 避免装箱

深度剖析SpringBoot日志性能提升的原因与解决

《深度剖析SpringBoot日志性能提升的原因与解决》日志记录本该是辅助工具,却为何成了性能瓶颈,SpringBoot如何用代码彻底破解日志导致的高延迟问题,感兴趣的小伙伴可以跟随小编一起学习一下... 目录前言第一章:日志性能陷阱的底层原理1.1 日志级别的“双刃剑”效应1.2 同步日志的“吞吐量杀手”

Redis实现分布式锁全过程

《Redis实现分布式锁全过程》文章介绍Redis实现分布式锁的方法,包括使用SETNX和EXPIRE命令确保互斥性与防死锁,Redisson客户端提供的便捷接口,以及Redlock算法通过多节点共识... 目录Redis实现分布式锁1. 分布式锁的基本原理2. 使用 Redis 实现分布式锁2.1 获取锁