PureFlash 分布式存储系统开源项目

我要开发同款
匿名用户2023年02月21日
68阅读
开发技术C/C++
所属分类大数据、数据存储
授权协议GPL

作品详情

PureFlash是一个开源的分布式存储系统,项目起始于2016年。

一、PureFlash整体介绍PureFlash是一个开源的ServerSAN实现,也就是通过大量的通用服务器,加上PureFlash的软件系统,构造出一套能满足企业各种业务需求的分布式SAN存储。

PureFlash是为全闪存时代而设计的存储系统。当前SSD盘的应用越来越广泛,大有全面取代HDD的趋势。SSD与HDD的显著区别就是性能差异,这也是用户体验最直接的差异,而且随着NVMe接口的普及,二者差异越来大,这种近百倍的量变差异足以带来架构设计上的质变。举个例子,原来HDD的性能很低,远远低于CPU、网络的性能能力,因此系统设计的准则是追求HDD的性能最大化,为达到这个目标可以以消耗CPU等资源为代价。而到了NVMe时代,性能关系已经完全颠倒了,盘不再是瓶颈,反而CPU、网络成为系统的瓶颈。那种消耗CPU以优化IO的方法只能适得其反。

因此我们需要一套全新的存储系统架构,以充分发挥SSD的能力,提高系统的效率。PureFlash的设计思想以简化IOstack,数据通路与控制通路分离,快速路径优先为基本原则,确保高性能与高可靠性,提供云计算时代块存储核心能力。

PureFlash的思想来自于全硬件加速闪存阵列S5,因此虽然PureFlash本身是纯软件实现,但其存储协议对硬件加速是高度友好的。可以认为PureFlash的协议就是NVMe协议加上云存储特性增强,包括快照、副本、shard、集群热升级等能力。

二、功能特性1.单副本与多副本任意选择,允许每个volume使用不同的副本数,提供不同的可靠性等级。

2.精简置备,即thinprovision。能够实现云计算时代需要的存储虚拟化,存储超卖等关键特性。而且可以提供超过单节点容量能力的超大容量Volume。

3.瞬时快照能力,PureFlash采用inplace快照技术,能够瞬时完成快照且不占用额外的存储空间。

4.Scaleout能力,可以随时通过增加节点的方式扩展系统的总体容量,即便是运行期间也可以进行扩容。

5.强一致性,使用强一致性,确保企业数据正确性、确保核心业务正确运行。

6.允许共享访问,同一个Volume允许从多个Client同时访问,可以用于支撑OracleRAC类共享盘业务。

7.故障冗余,容忍各种单点故障,包括网络故障,网卡故障,SSD故障,节点整机故障。

8.可控数据恢复,当硬件故障恢复后,可以对数据进行恢复,并且可以控制恢复的时间与资源占用情况。

9.可控数据均衡,系统长时间使用后可能数据分布不均衡,可控均衡功能可以在节点间均衡数据分布。并且均衡的时间与资源占用率都可以控制,以减少对正常业务的冲击。

10.多网卡与多路径支持,每个节点可以有多个网卡,这些网卡都处于活动状态以提供更高的IO吞吐能力,并且在一个网卡故障时可以自动把IO迁移到其他网卡而不影响客户端访问。

11.简化的iostack,PureFlash以提供块存储为目标,为将SSD性能毫无损失的发挥出来,避免使用任何多余的中间IO层级,因此既没有使用本地文件系统,也没有使用K-V系统进行本地数据管理。使用本地文件系统或者KV做本地数据管理在分布式存储系统中很常见,但同时也带来了性能损失,系统复杂度上升,bug概率增加。PureFlash则完全避免了这一点。

12.扩容稳定性,PureFlash系统使用非hash设计,新节点加入集群后,不需要均衡就可以立即开始承载业务,保证既有业务稳定运行,避免均衡带来的冲击。

13.最小资源消耗,适合超融合部署。PureFlash设计中没有使用SPDK这样的IO接口。SPDK虽然能带来一些IO性能收益,但是付出的代价是CPU资源的大量浪费,在没有IO时候也要处于忙等待状态中。这对超融合系统是致命的,存储任务一直占用CPU资源,而不能出让给计算任务使用,背离超融合的基本理念。PureFlash只消耗与IO能力成比例的CPU、内存、网络资源,并且可以通过参数配置最大资源消耗量,因而十分适合超融合系统。

声明:本文仅代表作者观点,不代表本站立场。如果侵犯到您的合法权益,请联系我们删除侵权资源!如果遇到资源链接失效,请您通过评论或工单的方式通知管理员。未经允许,不得转载,本站所有资源文章禁止商业使用运营!
下载安装【程序员客栈】APP
实时对接需求、及时收发消息、丰富的开放项目需求、随时随地查看项目状态

评论