性能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分布式存储开源的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!


原文地址:https://blog.csdn.net/wangyiyungw/article/details/107489412
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.chinasem.cn/article/401334

相关文章

JVisualVM之Java性能监控与调优利器详解

《JVisualVM之Java性能监控与调优利器详解》本文将详细介绍JVisualVM的使用方法,并结合实际案例展示如何利用它进行性能调优,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全... 目录1. JVisualVM简介2. JVisualVM的安装与启动2.1 启动JVisualVM2

Java使用MethodHandle来替代反射,提高性能问题

《Java使用MethodHandle来替代反射,提高性能问题》:本文主要介绍Java使用MethodHandle来替代反射,提高性能问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑... 目录一、认识MethodHandle1、简介2、使用方式3、与反射的区别二、示例1、基本使用2、(重要)

MySQL 存储引擎 MyISAM详解(最新推荐)

《MySQL存储引擎MyISAM详解(最新推荐)》使用MyISAM存储引擎的表占用空间很小,但是由于使用表级锁定,所以限制了读/写操作的性能,通常用于中小型的Web应用和数据仓库配置中的只读或主要... 目录mysql 5.5 之前默认的存储引擎️‍一、MyISAM 存储引擎的特性️‍二、MyISAM 的主

Linux lvm实例之如何创建一个专用于MySQL数据存储的LVM卷组

《Linuxlvm实例之如何创建一个专用于MySQL数据存储的LVM卷组》:本文主要介绍使用Linux创建一个专用于MySQL数据存储的LVM卷组的实例,具有很好的参考价值,希望对大家有所帮助,... 目录在Centos 7上创建卷China编程组并配置mysql数据目录1. 检查现有磁盘2. 创建物理卷3. 创

Golang实现Redis分布式锁(Lua脚本+可重入+自动续期)

《Golang实现Redis分布式锁(Lua脚本+可重入+自动续期)》本文主要介绍了Golang分布式锁实现,采用Redis+Lua脚本确保原子性,持可重入和自动续期,用于防止超卖及重复下单,具有一定... 目录1 概念应用场景分布式锁必备特性2 思路分析宕机与过期防止误删keyLua保证原子性可重入锁自动

使用Python实现调用API获取图片存储到本地的方法

《使用Python实现调用API获取图片存储到本地的方法》开发一个自动化工具,用于从JSON数据源中提取图像ID,通过调用指定API获取未经压缩的原始图像文件,并确保下载结果与Postman等工具直接... 目录使用python实现调用API获取图片存储到本地1、项目概述2、核心功能3、环境准备4、代码实现

SpringBoot项目中Redis存储Session对象序列化处理

《SpringBoot项目中Redis存储Session对象序列化处理》在SpringBoot项目中使用Redis存储Session时,对象的序列化和反序列化是关键步骤,下面我们就来讲讲如何在Spri... 目录一、为什么需要序列化处理二、Spring Boot 集成 Redis 存储 Session2.1

基于MongoDB实现文件的分布式存储

《基于MongoDB实现文件的分布式存储》分布式文件存储的方案有很多,今天分享一个基于mongodb数据库来实现文件的存储,mongodb支持分布式部署,以此来实现文件的分布式存储,需要的朋友可以参考... 目录一、引言二、GridFS 原理剖析三、Spring Boot 集成 GridFS3.1 添加依赖

PyTorch高级特性与性能优化方式

《PyTorch高级特性与性能优化方式》:本文主要介绍PyTorch高级特性与性能优化方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、自动化机制1.自动微分机制2.动态计算图二、性能优化1.内存管理2.GPU加速3.多GPU训练三、分布式训练1.分布式数据

java变量内存中存储的使用方式

《java变量内存中存储的使用方式》:本文主要介绍java变量内存中存储的使用方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1、介绍2、变量的定义3、 变量的类型4、 变量的作用域5、 内存中的存储方式总结1、介绍在 Java 中,变量是用于存储程序中数据