四大开源分布式存储_性能 1.84 倍于 Ceph!网易数帆开源分布式存储系统 Curve

本文主要是介绍四大开源分布式存储_性能 1.84 倍于 Ceph!网易数帆开源分布式存储系统 Curve,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

e387eba737b35f159770550f33e35af3.png

作者 | 陈利鑫

头图 | CSDN 下载自东方 IC

出品 | CSDN(ID:CSDNnews)

也许是厂家+“云”的后缀会让人产生这些厂商都是竞争关系的错觉,网易云最近宣布品牌全面升级为网易数帆。当然背后的真正原因,正如网易副总裁、网易杭州研究院执行院长兼网易数帆总经理汪源所说,还是在这个时刻,网易数帆积攒的基础软件能力,需要一次汇聚式的释放。

他介绍到,品牌升级后,网易数帆下包含了四大模块:第一,云原生软件生产力平台网易轻舟;第二,全链路数据生产力平台网易易数;第三,多媒体智能开放平台网易易智;第四,全维度质量效能平台网易易测,旨在数字化转型基础软件领域,做到业界领先的提供商。

从4条产品线来看,网易数帆走向了一条被汪源反复提及的基础软件的路线,也就是提供开发工具、操作系统、数据库和中间件。在4个模块下,网易均有多款新产品和服务能力发布。

首先,我们来从网易数帆新发布的产品,来一窥其现在拥有能力的实力水平。

3f9211282764dc6c7cbb398e72dcec94.png

开源分布式存储系统Curve,性能是Ceph的1.84倍!

鉴于目前开源领域还没有足够高性能和低延迟的分布式存储系统,汪源宣布开源一款名为Curve的新一代高性能分布式存储系统。

目前,该项目已在GitHub开源,地址为:opencurve.github.io

Curve的定位,是提供一个高性能、低延迟的存储底座,基于这个存储底座,企业可以打造适用于不同应用场景的存储系统,如块存储、对象存储、云原生数据库等。目前,网易数帆已经实现了高性能块存储系统。

汪源介绍到,Curve主要具有三大设计特点:高性能、高可用和自治。

他坦承,Curve未必比现在所有的商业存储系统好,但是这个市场确实需要开源的操作系统。之前大家能用的基本上就是Ceph,包括网易数帆早期因为没有自己的很好的存储系统,也是用了很多Ceph。但是,在使用Ceph的过程中,他们发现这个系统存在几个核心问题。

第一个就是Ceph的IO处理路径很长,导致性能和延迟都不是太理想。对于写操作来说,Ceph需要复制组里面所有的节点都返回成功请求才返回成功,Curve只需要大多数节点返回成功就可以返回IO成功,相对来说Curve降低了写请求的延迟提升了性能。同时,Curve在磁盘IO方面通过更细粒度的地址空间的hash减少IO碰撞,增加IO并发度,并采用chunkfilepool减小IO放大倍数,从而最大限度地发挥硬件的性能。

第二个是Ceph存储系统没有一个单独的存储元数据的管理,而Curve有,这也是两者在架构上最大的区别。基于这样的不同设计,就带来了这两个系统的不同表现:一方面是Ceph的可用性较差,因为它没有单独的元数据管理,存储集群中某些节点发生故障时,数据就要进行大规模迁移,这显然会影响到整个集群的性能和吞吐率;另一方面,这样的做法使得Ceph无论是在处理故障,还是系统扩缩容时,大规模的数据迁移导致系统的运维成本很高。因此,Curve的核心架构上的一个重点,就是有独立的元数据管理来解决系统的可用性、可运维性等问题。另外,针对性能问题,Curve采用brpc保证网络数据流的高性能和低延迟,基于braft实现多副本一致性下的低延迟,并对braft的快照实现进行了进一步的优化。

Curve和Ceph L版本的测试数据对比显示,在单卷的场景下,核心的4K随机读/写的IOPS性能,Curve分别是Ceph的1.84倍和1.58倍,同时延迟相比Ceph分别降低48.39%和37.50%。

0cea4994ae80b2a33c18d87e972077f4.png

图:Curve与Ceph性能测试对比

他在采访中透露,Curve还有一些创新的性能优化工作尚未完成,如细粒度哈希、io_uring落盘方案,预计完成优化之后下个版本还会有30%的性能提升。换句话说,Curve单卷性能将会达到Ceph的2倍以上。

高可用方面,Curve被设计为核心组件都能容忍部分实例失败而不影响整个集群的可用性。汪源介绍,无论是单台存储故障,还是系统扩容,Curve的客户端IO都不会受到丝毫的影响,插拔硬盘、服务进程中断这些常见异常,IO抖动也很小。当然,故障恢复过程对上层IO也不会造成明显影响。

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

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

4071baa02443bed268e6cb7887aa6f43.png

6大云原生相关产品,构建云原生生态

在云原生方面,网易数帆旗下网易轻舟还全新发布了云原生软件生产力平台,该平台由轻舟微服务和新发布的轻舟中间件、轻舟混合云及轻舟低代码等四大产品体系组成,能够帮助企业提升软件全生命周期的端到端能力。

此外,网易还发布了一款云原生操作系统产品。有人认为,云操作系统厂商之间未来的竞争重点将是比拼生态构建能力。网易这次发布的云原生操作系统超级产品,对于网易构建自己的生态能力来说,具有重要的意义。

汪源认为,操作系统是一个超级产品,在这个领域如果能够做成功,将会是一个巨大的市场,比如微软、Google,就是都是靠操作系统获得巨大成功。但是要想成功,一定要有好的生态布局。操作系统生态布局包括两方面,一是应用,二是中间件。也就是说,打造操作系统生态,不仅需要最底层的基础设施生态强,上面的中间件和应用生态也需要很强。经过沉淀,网易数帆在基础设施处和应用层都构建了比较好的生态。

比如此次网易数帆推出的Curve存储系统,实际上与实现云原生操作系统是紧密相关的。因为云原生操作系统的概念主要是计算资源的统一调度,为了实现计算资源的统一调度,所有的应用软件、中间件,包括数据库等,都应该做到计算和存储分离,这就需要有一个高性能的存储系统来支撑,使得计算存储分离了之后还能保持高性能。所以,网易推出Curve这个开源的高性能分布式存储系统,对于网易数帆云原生操作系统,也是一个非常关键的步骤。

03ef31a9a1e4072c8a41973dd9052270.png

云原生将从软件研发、DevOps、微服务,逐步走向操作系统、中间件

汪源认为,云原生是构建生态最好的基点之一,云原生是社区推进的一条技术路线,要创造好的生态,至少目前,网易一定要围绕云原生的这套生态去做。而网易数帆今后将要的坚持、完善的三个主要方向,其中之一就是云原生方向。

在他看来,云原生具有强大的生产力,这个方向不单是在软件定义组织的解决方案里提供能力,同时也在软件定义基础设施层面提供核心能力,因此,云原生在网易数帆解决方案中处于最核心的地位。同时,汪源表示,基于其现在的技术环境,现在最好的选择是CNCF这样的云原生开源和开放社区,围绕云原生技术栈,不断地提升和迭代能力。

汪源认为,从本质上来讲,云原生聚焦于基础软件层面,其实与具体行业和具体业务问题不直接相关,所以还是比较适合在软件技术层面或软件工程层面做。对于所有企业来说,诉求无非是效率、成本和质量三个方面,那么,能够在这个范畴内提高研发效率,可快速迭代是所有企业的追求。云原生体系里,微服务架构能够支持软件研发的效能、质量,云原生操作系统则能够控制成本。

谈到云原生将来会向哪些趋势发展,汪源指出,云原生技术早期主要是围绕Netflix提出的云原生应用十二要素,关注的是应用层面的架构问题,包括微服务、DevOps技术,以及下一代的微服务——服务网格(Service Mesh)等,这些是云原生技术过去的主要关注点。

而在当下,我们可以发现,其实大部分企业还未真正地把主要的业务放到云原生架构下,因此很多企业还没遇到基础设施层面的痛点。等到大家把业务都放到云原生架构中,这时就会遇到很多基础层次的问题,很多就是云原生操作系统要解决的问题,比如如何统一管理多任务、降低成本等。云原生操作系统就是一个符合云原生社区愿景的发展方向,当一家企业把所有业务云原生化就会发现云操作系统这个概念的价值。

“但从企业的角度看,他们考虑的是云原生体系能够立竿见影地提高迭代速度。所以,云原生的第一步是拓展云原生价值,之后是考虑降低成本、提高弹性等问题。因此,云原生的趋势,将从软件研发、DevOps、微服务,逐步走到云原生操作系统、云原生中间件范畴,”汪源预测道。

汪源:会再为基础软件贡献19年!

68c104a579bf946f0283c20e76626eae.png

汪源这位自毕业之后就加入网易的“老炮儿”,在分享中反复提到了基础软件这个话题,他认为,中国当前在基础软件方面还比较薄弱。中国基础软件发展的一个关键点是2003年,一个关键事件是工信部设立核高基专项,其中的“基”表示支持国内厂商开发国产数据库、国产中间件等基础软件产品。在北京闭关了9个月,汪源参与开发了“神舟OSCAR”这款国产数据库,从那天起,他便与基础软件结下了不解之缘。

现在,汪源已经是网易杭州研究院执行院长,全面负责网易集团基础设施/云原生/中间件/大数据/人工智能/信息安全/中台等核心技术平台建设、项目管理/用户体验与设计/运维保障/质量保障/创新服务等创新平台建设和网易数帆政企业务。在他简洁明了的简介中,可以看到从2003年到现在,他已做了17年的基础软件研发。

在他看来,国产基础软件现在发展到了什么阶段?他说到,比如数据库领域,中国也有几家典型的数据库厂商,但他们和网易提供的数据库有一定的差异性,网易主要是提供云原生的数据库,面向互联网场景,而那些厂商因为历史比较长,做的是类似于Oracle这样的数据库。其实,中国目前并没有在基础软件方面做得很大的公司,这与一直以来,中国在技术软件上长期都是以国外厂商为主有关,比如依赖Oracle提供的数据库,IBM的中间件、SAP的ERP。他认为,接下来的3年~5年可能是国产基础软件厂商发展的好时期,网易集团今年也非常重视企业市场,成立了一个全新的事业部叫数字产业事业部。

在2019年的一篇文章中,汪源曾经回忆了自己人生中的几次不后悔的重要抉择,其中就包括2006年从浙江大学计算机专业毕业时,靠着丁磊给杭州研究院画的一张“大饼”,毅然加入网易这个允许他折腾新东西的地方。在这里,汪源和他的团队为中国的基础软件已经奋斗了14年,未来,他表示希望还要再为中国基础软件奋斗19年,做到60岁!可以说,这句话是饱含着希望的,我们也期待着,19年后的中国基础软件领域,将会呈现出另一番风貌。

99654760a2b16186b4cc1f7ce080ffc8.png 6b5a07fea005d3273fb88eaed501b99f.png

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



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

相关文章

Springboot中分析SQL性能的两种方式详解

《Springboot中分析SQL性能的两种方式详解》文章介绍了SQL性能分析的两种方式:MyBatis-Plus性能分析插件和p6spy框架,MyBatis-Plus插件配置简单,适用于开发和测试环... 目录SQL性能分析的两种方式:功能介绍实现方式:实现步骤:SQL性能分析的两种方式:功能介绍记录

Tomcat高效部署与性能优化方式

《Tomcat高效部署与性能优化方式》本文介绍了如何高效部署Tomcat并进行性能优化,以确保Web应用的稳定运行和高效响应,高效部署包括环境准备、安装Tomcat、配置Tomcat、部署应用和启动T... 目录Tomcat高效部署与性能优化一、引言二、Tomcat高效部署三、Tomcat性能优化总结Tom

Redis存储的列表分页和检索的实现方法

《Redis存储的列表分页和检索的实现方法》在Redis中,列表(List)是一种有序的数据结构,通常用于存储一系列元素,由于列表是有序的,可以通过索引来访问元素,因此可以很方便地实现分页和检索功能,... 目录一、Redis 列表的基本操作二、分页实现三、检索实现3.1 方法 1:客户端过滤3.2 方法

C++中使用vector存储并遍历数据的基本步骤

《C++中使用vector存储并遍历数据的基本步骤》C++标准模板库(STL)提供了多种容器类型,包括顺序容器、关联容器、无序关联容器和容器适配器,每种容器都有其特定的用途和特性,:本文主要介绍C... 目录(1)容器及简要描述‌php顺序容器‌‌关联容器‌‌无序关联容器‌(基于哈希表):‌容器适配器‌:(

使用MongoDB进行数据存储的操作流程

《使用MongoDB进行数据存储的操作流程》在现代应用开发中,数据存储是一个至关重要的部分,随着数据量的增大和复杂性的增加,传统的关系型数据库有时难以应对高并发和大数据量的处理需求,MongoDB作为... 目录什么是MongoDB?MongoDB的优势使用MongoDB进行数据存储1. 安装MongoDB

C#使用yield关键字实现提升迭代性能与效率

《C#使用yield关键字实现提升迭代性能与效率》yield关键字在C#中简化了数据迭代的方式,实现了按需生成数据,自动维护迭代状态,本文主要来聊聊如何使用yield关键字实现提升迭代性能与效率,感兴... 目录前言传统迭代和yield迭代方式对比yield延迟加载按需获取数据yield break显式示迭

Java实现任务管理器性能网络监控数据的方法详解

《Java实现任务管理器性能网络监控数据的方法详解》在现代操作系统中,任务管理器是一个非常重要的工具,用于监控和管理计算机的运行状态,包括CPU使用率、内存占用等,对于开发者和系统管理员来说,了解这些... 目录引言一、背景知识二、准备工作1. Maven依赖2. Gradle依赖三、代码实现四、代码详解五

java如何分布式锁实现和选型

《java如何分布式锁实现和选型》文章介绍了分布式锁的重要性以及在分布式系统中常见的问题和需求,它详细阐述了如何使用分布式锁来确保数据的一致性和系统的高可用性,文章还提供了基于数据库、Redis和Zo... 目录引言:分布式锁的重要性与分布式系统中的常见问题和需求分布式锁的重要性分布式系统中常见的问题和需求

Golang使用etcd构建分布式锁的示例分享

《Golang使用etcd构建分布式锁的示例分享》在本教程中,我们将学习如何使用Go和etcd构建分布式锁系统,分布式锁系统对于管理对分布式系统中共享资源的并发访问至关重要,它有助于维护一致性,防止竞... 目录引言环境准备新建Go项目实现加锁和解锁功能测试分布式锁重构实现失败重试总结引言我们将使用Go作

Redis分布式锁使用及说明

《Redis分布式锁使用及说明》本文总结了Redis和Zookeeper在高可用性和高一致性场景下的应用,并详细介绍了Redis的分布式锁实现方式,包括使用Lua脚本和续期机制,最后,提到了RedLo... 目录Redis分布式锁加锁方式怎么会解错锁?举个小案例吧解锁方式续期总结Redis分布式锁如果追求