当前单块NVMe SSD性能可以达到100万IOPS,SSD硬盘与HDD机械硬盘有了天壤之别。传统存储的软硬件架构,都已经不再适合承载高速闪存介质,它们从根本上制约了新型存储介质的生产力。全闪存阵列已经逐步向全NVMe硬件转移,然而其扩展性与灵活性,在云计算时代始终是最大的瓶颈。分布式全闪存储系统在全闪存介质配置的基础上,采用了标准的硬件平台、高效的新兴存储协议、极致的软件优化,可提供更简单经济、弹性高效的数据存储解决方案。

FASS是大道云行面向高IO密集型应用场景,完全自主研发的分布式全闪存存储系统。基于高效的分布式存储软件设计和高性能的全闪存硬件平台,FASS可将多个节点的SSD资源通过高速以太网或Infiniband网络组成一个高性能、高可用、易扩展块存储资源池,并通过iSCSI、iSER、NVMeoF存储接口,可广泛应用于如下各类高IO性能要求业务场景。

1、强大的性能。FASS采用主流的服务器硬件和全NVMe硬盘配置,通过软件层面先进的体系结构设计、微控制器并行流水线设计、多级元数据索引管理,实现了三节点千万级IOPS、100us级延迟的强大性能;

2、可靠的架构。FASS采用全对称分布式架构,可实现多节点的IO均衡与叠加,结合多副本、纠删码、快照等冗余与数据备份机制,消除了存储系统的单点故障,也保证了可靠的存储服务输出。

3、大规模扩展。FASS的分布式集群支持3-512 scale out扩展,单卷可达32PB容量。通过数据分布与元数据管理的自动负载均衡,实现存储与计算的按需扩展,满足业务动态发展的苛刻要求。

图-FASS产品概览

 

设计哲学

1)性能驱动

定位于下一代全闪存存储产品,FASS的核心理念即性能驱动一切。对于绝大多数全闪存储产品的用户而言,数据可靠性是基石,而强大的性能才是他们改善和加速业务的关键,有限的硬件发挥超高的性能,即FASS分布式全闪存储的核心价值。

由于标准的操作系统并非为高性能IO模式设计,其任务调度、内存管理、系统调用在高并发IO场景下非常低效,因此成为全闪存储性能的最大瓶颈,无法发挥硬件的真正能力。FASS团队很早就意识到了这个问题,并基于os_bypass原理做了大量的优化与改进,开发了独有的XPE加速引擎以取代OS的低效调度,结合高效的微控制器模型,全NVMe软硬件设计,使得在有限硬件条件下,FASS也能发挥出超高的IOPS和延时性能。

2)软件定义

在众多AFA厂商都在追求高速硬件,甚至采用定制化芯片来尝试改善全闪存储性能的同时。TaoCloud始终贯彻软件定义存储的理论,通过极致优化的存储软件,搭载配置合理的标准X86硬件,可以做到三节点千万级IOPS的惊人性能。当前主流的服务器硬件平台性能虽然不高,但存储软件还远未发挥出硬件性能的极限;同时软硬件解耦可以给各类数据中心带来更好的灵活性与经济性,有利于各类高性能云基础设施的建设。

3)分布式体系

FASS的数据与元数据管理都采用分布式模型设计,通过多个节点组建集群,每个节点可以同时处理数据存储,也可以承载相应的元数据服务,节点间通过高速网络实现相互协作与通信,可以实现极高的性能叠加与扩展能力。FASS分布式体系机制带来了极高的可靠性,从磁盘到物理节点到网络,都可以实现有效冗余,在各类故障情况下,保障数据以及元数据的完整性与高可用。

 

原理架构

FASS基于标准服务器硬件设计了高性能的分布式块存储体系。各个节点通过高速网络连接形成存储集群,FASS软件服务将各个节点上的高速SSD介质、CPU、内存等资源抽象整合,对外输出成单一块存储资源池,提供高速块存储服务。

 

逻辑架构

FASS可以部署在主流的Linux环境,如CentOS、Redhat、Ubuntu、SUSE等(推荐CentOS7_64bit),每个物理节点都需要安装FASS的suzaku软件服务以管理本节点资源并提供存储访问,suzaku包含Suzakud主进程、元数据服务、IO服务、管理工具等。

通过对各节点存储资源的管理与整合抽象,以逻辑存储卷的方式为对上层提供iSCSI/iSER、NVMeoF块存储服务和访问接口和统一管理控制。FASS软件运行于Linux用户空间,独立的用户态进程可以与其他系统部件隔离,避免故障的相互影响,可以实现更高的系统可靠性,也有利于未来实现更轻松的文件协议扩展。


FASS平台管理层支持提供命令行访问控制接口和REST API,并集成到 Web GUI对整个存储集群进行节点管理、用户管理 、访问管理、存储空间管理、缓存管理、快照管理、监控管理等。

图-FASS逻辑架构

 

FASS通过ETCD模块实现高可用集群管理,主要用于共享配置和服务发现,如保存集群配置信息、部分元数据信息(参考元数据服务相关章节)。ETCD会选举出Master节点,master节点负责分配磁盘空间,集群总体管理以及节点信息协调。从而实现在故障情况下的重新选举、自动切换等高可用特性。Master节点负载很小,不会形成性能瓶颈。

硬件上,FASS支持部署于X86服务器或国产CPU硬件平台,如飞腾、申威、海光等服务器平台,推荐采用全NVMe SSD硬盘配置,以发挥FASS的最佳性能。集群最低三节点起配,硬件拓扑上包含三层网络:存储网络、业务网络和管理网络。


集群所有节点通过高速网速(推荐100GbE/200GbE RoCE或Infiniband)互联,以实现节点间的协作与数据分布与转移。业务网络主要为应用提供存储访问,业务主机通过该网络可访问到FASS提供的存储资源。为保证前端业务的性能,该网络的带宽建议与存储网络带宽一致。管理网络主要负责管理监控、配置维护整个FASS系统,通信量相对较小,采用普通千兆网络即可满足要求。

图-FASS硬件组网参考(注:实际部署建议配置冗余网络)

 

数据布局

FASS作为一套分布式一闪存储系统,数据分散存放在多个物理节点上。集群是FASS实现统一管理的基本单位,FASS中多个服务器节点可以创建成一个集群,来实现分布在不同物理服务器上存储资源的打通与聚合,从而实现容量、性能的叠加、节点级的冗余保护。FASS单个集群支持3到512个节点规模的集群,同时统一管理平台可支持多个集群的监控与管理,满足EB级数据的存储管理需求。每个集群都会提供一个或多个虚拟IP地址(VIP)以支持存储业务访问,VIP会根据负载均衡机制,在不同节点上飘移,以保证部分节点网络故障时,业务仍可正常访问。

在集群基础上可以创建FASS存储池,可以选择集群里的任意多个节点,或不同节点上的不同数据硬盘创建成单一数据存储池,跨节点对物理上分布的存储资源进行抽象整合,实现更高效的资源利用。FASS支持按存储介质类型创建存储池,如按NVMe SSD或按SATA SSD创建不同性能的存储池,以满足不同用户的性能需求。

存储卷隶属于某个存储池,是应用主机直接挂载使用的最小单位。创建卷时从将存储池划分空间形成一个逻辑卷,进而可以通过iSCSI或NVMeoF协议以块设备的方式,通过IP或Infiniband网络映射给应用主机挂载。FASS支持精简配置卷,即可以创建大于存储池的物理空间的逻辑卷,以满足不易预测规划的业务应用场景。

为了提高单卷的扩展性,FASS每个卷分成多个子卷,每个子卷对应有子卷控制器(类似RAFT协议里的leader)。FASS在创建卷时会通过算法从集群中选择一个节点作为子卷控制器(RGctl),由该节点在内存中承载逻辑卷的元数据信息并管理其数据的物理分布。

FASS将物理磁盘分割成4MB的粒度,并通过Diskmap进行记录与分配。数据在写入FASS存储系统时,会被切分成4MB大小的分片(Slice),然后根据既定的数据分布策略,将Slice存储在多个节点的存储介质上,从而可以提供高性能的并发性能,而且为数据可靠性、快速恢复提供了良好的底层支持。数据的具体位置分布,主要由FASS元数据服务记录管理。

图-FASS存储卷与切片

 

元数据管理

大部分分布式存储系统的服务端都依赖于操作系统的本地文件系统,实现集群逻辑卷或统一命名空间管理主要在本地文件系统的基础之上做了一层逻辑整合与封装,如每个存储节点上都拥有完全一致的目录结构,但真实文件或数据块分别写入不同节点,通过分布式文件系统的逻辑合并最终实现单一命名空间。这类分布式存储实现相对简单,但因为在本地文件系统基础之上,又做了一层封装与索引管理,毫无疑问会加大了系统复杂度、降低系统的整体性能。如再进行块协议导出,则又多出一层块存储的映射索引,使整个系统运行效率低下,性能无法得到真正的发挥。

为发挥出硬件的最大性能,FASS摒弃了服务端的本地文件系统,构建了自有的高效的块级索引管理系统,通过对裸盘的直接管理,Slice分片与逻辑映射重组,实现远高于其他分布式存储的块级性能。

FASS数据的读写通过多层元数据索引进行高效定位与管理,主元数据服务主要管理数据到各个节点的映射关系,可以通过元数据访问与查询,迅速定位到目标数据节点;同时每个节点上都有自己的数据块索引表,通过K/V数据库记录着每节点的Slice信息。每个数据硬盘都由事端控制器(BActl)管理硬盘上数据块的具体分布,每块硬盘都对应一份Diskmap信息,记录着该硬盘上的Slice分配与可用空间情况,新建卷时,FASS的RGctl根据Diskmap与数据分布策略,为新卷申请分配相应的存储空间。

图-FASS元数据层次设计

 

FASS的Slice分为Meta Slice和RAW Slice,Meta Slice用于元数据的持久化保存,由MDctl服务直接管理,默认三副本保护 (不可调)。RAW Slice存放物理数据,副本位置由负载均衡策略决定。如无特殊说明,后文“Slice”都是指RAW Slice。

FASS在每写入一个新Slice时都会访问查询RGctl以获得目标节点位置进行存储,读取数据时RGctl会根据各副本节点的状态,优先选择延时最低的节点进行数据访问。

FASS元数据主要包含集群配置、目录结构、卷属性(含扩展属性)、卷引导信息、副本位置信息等内容。FASS的子卷控制器(RGctl)均匀分布在不同的节点上,从而实现卷性能和容量的scale out。每个Slice对应的元数据会缓存在其所属的RGctl,并通过BActl以三副本冗余持久化写入到硬盘。不同于基于分布式哈希表的存储系统的随机性与不可控,在内置元数据的协助下,FASS可以受控地进行数据恢复、平衡等后台任务,从而使系统表现更稳定,以最小化对前端业务的冲击和影响。

图-FASS的多层元数据模型

 

负载均衡

为了保证数据在各个节点上的均衡分布,同时均匀分摊整个集群的压力到每一个节点,分布式存储需要实现合理的负载均衡策略,才能保证可观的性能叠加输出。各个系统的均衡性体现在许多层面,如数据均衡、负载均衡。数据均衡有两个过程保证:首次分配过程和再平衡过程。

FASS卷可以通过任意Target控制器导出,卷进一步划分为子卷,每个子卷负责管理该卷的一部分数据,子卷通过hash过程均匀分布在不同存储节点的多个子卷控制器上。并通过智能分配算法,使数据和IO负载都能平衡地分布在存储池内的所有节点和磁盘,使每个SSD的磨损趋于一致。因新增节点或故障造成了数据不均衡时,FASS独立的后台任务调度器按预定策略执行数据再平衡任务,保证每个节点/磁盘的数据迅速恢复均匀。

RGctl服务会周期性检查系统中部分Slice的健康状态和分布情况,每检查一个Slice时,会检查该Slice相关的存储服务器,如果发现某个节点的容量使用比率大于用户设定的容量比率情况下,会触发Slice重新分布,也即触发容量均衡过程。Slice重新分布时,需要选择迁移数据块的源服务器和目标服务器。

当有新服务器加入到服务集群中时,首先向MDctl服务器发送加入消息,MDctl服务器会向该服务器返回当前工作中的集群结构,同时更新diskmap并将维持的服务器状态版本加1,并通知各服务器更新服务器版本,以获得加入的服务器列表和当前有效的服务器存活状态,随后进行少量的元数据或数据的迁移操作,最终将新服务器无缝地加入到服务集群中提供正常的服务。

新的存储服务加入系统之后,可以启动数据负载均衡机制,监控服务通过收集各存储服务上的磁盘空间占用比率并通知到各存储服务,RGctl服务从元数据中查询数据占用比率较少的节点,根据负载均衡策略进行相应数据迁移,使得系统在线增加容量和扩展性能。

删除节点时,首先需要待删除节点上存储服务停止,停止后对该节点在其他节点上开始重构。数据重构完成后,如果启用节点存储服务,集群中会出现多余副本,系统将启用副本扫描与垃圾回收机制,保留最新可用副本。关闭节点服务且完成数据重构,该节点才变成可删除状态,删除后系统将从删除该节点所有相关的配置信息,将节点从集群中完全删除。

 

数据一致性

对于分布式存储而言,由于数据读写分摊给多个节点处理,很可能由于各个节点的信息不一致而造成读写出错,因此数据的一致性是分布式存储最重注的问题之一。为保证数据可靠性,同时提高数据的恢复效率,FASS默认采用多副本机制保存数据。数据被切分成Slice后,会生成多份副本写入多个节点,避免数据单点故障,提升访问性能。FASS主要由FRctl(前端控制器)服务处理IO的读写,FRctl从RGctl控制器获取卷的分布信息,进而将数据写入到正确的位置。

FASS多个副本之间采用自主开发的SuRa一致性算法来保障数据一致性(类RAFT),内部根据集群拓扑的变更来计算数据的可用性.通过少数服从多数的选主原则,始终确认唯一的leader和完整可靠的数据版本。FASS中每个Slice都以多副本方式(即将支持纠删码)存放在存储系统中,对于每个写入操作,FASS确认所有数据副本都完成写入,才会返回给应用信号,如果写入操作无法到达指定的数据副本,则该数据副本会被置为无效副本。有别于同类产品的只能读取主副本的机制,FASS读取数据时,可以从任一有效副本上进行读取,即每个Slice数据副本都提供对外服务,以实现更好的并发吞吐能力。

在IO操作前,系统会检查各副本的逻辑时钟和状态,以判定副本是否有效,发现副本故障后,集群自动选择可用节点,在其上重建副本。对N个副本的系统(N=2/3/4),可以容忍N-1个副本发生故障。

多个副本可以按故障域策略分布在不同的区域(如节点、机械等),从而大幅提高系统可靠性,降低多副本同时损失概率。对于读操作,FASS可根据网络负载智能地选择合适的副本,保证最优性能输出。

图-FASS多副本分布

 

副本写入流程:

图-副本写操作流程图

1、应用主机向TGctl发起写入操作,TGctl将请求转发至FRctl

2、FRctl访问RGctl,获取所有副本的目标位置,然后同时向这些节点发起写操作

3、所有副本节点写入磁盘完成后,返回确认消息

4、FRctl收到所有副本节点确认消息后,向应用主机返回信息,完成写入,并更新相关Slice位置信息

 

副本读取流程:

图-副本读操作流程

1、应用主机向TGctl发起写入操作,TGctl将请求转发至FRctl

2、FRctl访问RGctl,获取Slice所有副本的目标位置,并根据位置信息,判断当前可用的路径最优的副本节点,发起读取请求

3、FRctl节点从被最优节点读取数据,并向应用主机返回信息

 

高可用

FASS多副本机制可使数据冗余分布在集群多个节点,从而确保硬盘故障或节点故障,不造成业务中断或数据丢失。FASS可通过虚拟IP智能切换技术在单节点出现故障时,多个iSCSI/iSER连接到来时,FASS自动将应用的请求通过重定向方式调度到后端实际提供服务IP的节点,以保证业务的连续性。FASS同时支持iSCSI的多路径模式(MPIO),实现链路的冗余和负载均衡。

应用主机(guest)通过集群虚拟IP(VIP)访问逻辑卷,FASS收到访问请求时会请求重定向至RGctl节点,因此,在guest无需知道RGctl IP的情况下,也能正常访问集群里中的逻辑卷。

guest正常情况登陆RGctl并发起IO读写,一旦该RGctl出现故障,备用RGctl节点就会生效,且获得相同的存储服务IP,从而保证discovery portal始终可用。这样逻辑卷的iSCSI target始终可用,有新的登陆请求时,集群会将访问重定向到健康的RGctl。

图-RGctl故障重定向登陆

 

当前连接的RGctl失效时,集群在启用新的RGctl后,会让guest重新登陆,从而定位到新的健康RGctl,以保证数据访问在短暂中断后可以继续进行。

FASS集群中Master的有效性是通过ETCD来监控的,一旦节点角色出现异常,系统将会重新选择产生替代角色,以确保存储系统高可用。通过该机制,guest多路径功能可以无需开启,也能保证链路和冗余和高可用.

 

块存储服务

在底层高效的数据布局、元数据管理、数据一致性的基础上,FASS支持标准的iSCSI、iSER、NVMeoF存储访问,可基于以太网环境,为多个应用场景提供高性能块存储服务。

iSCSI/iSER

FASS分布式全闪存储系统不仅提供标准iSCSI块存储访问,同时也支持基于RDMA的高性能iSER访问,可以将iSCSI协议通过RDMA的方式跑到例如Infiniband或高速以太网络上,从而实现远超普通以太网络的存储访问性能。目前FASS主要支持采用RoCE协议的以太网来实现iSER访问。

图-FASS iSCSI Structure

 

NVMeoF

NVMeoF(NVMe over Fabric)可以实现NVMe标准在服务器外部网络上的扩展,通过把NVMe映射到多个Fabrics链路,消除网络带来的性能瓶颈,实现NVMe存储系统性能的真正发挥。

FASS目前支持NVMeoF运行在RDMA transport(IB or RoCE v2)之上。分为host端和target端,host端采用工具nvme-cli,target端采用SPDK的NVMeoF target,完成协议解析后,对接到后端suzaku存储系统。一个卷可以通过任一NVMeoF target进行挂载,赋予全局唯一标识NQN。

图-FASS NVMeoF Structure

 

XPE加速引擎

FASS定位于下一代全闪存存储产品,性能是其核心生命力,因而也在提升性能这块做了很多的尝试与改进,如端到端NVMe协议的引进,DPDK技术的应用,但性能提升效果都相对有效,发现唯一彻底改进操作系统,才是加速分布式全闪存储的关键。

 

XPE模型

在全闪存时代背景下,传统存储软件如不充分考虑SSD的地址映射、多队列、垃圾回收等一系列特性,因而即使换上全闪存介质,也无法发挥出理想的性能;然而只有存储软件的优化是远远不够的,在us级延时的NVMe硬盘时代,操作系统逐渐暴露出低效的CPU核心调度、内存资源竞争、上下文切换带来的巨大延迟等问题。标准操作系统完全没有考虑到现代计算机的多核心、大内存以及高并发的运行模式,因而在高并发压力下如海量IO的高速处理,多核心CPU的资源竞争与不合理调试,成为系统最大的性能瓶颈。

在这一前提下,FASS高性能体系的核心,即通过OS_bypass设计,通过FASS独有的XPE加速引擎——通过私有CPU调度器与虚拟内存管理,基于微控制器实现高效的并发流水线设计,从而从根源上解决存储系统的性能瓶颈,实现基于标准硬件平台、软件定义的超性能的存储系统。

图-FASS XPE模型

为实现CPU多核心的高效分配与调度,解决NUMA体系内存低速访问带来的一系列性能问题,FASS绕开了操作系统的CPU调度器,设计了FASS专属的CPU调度系统,通过智能灵活的计算资源分配,消除互斥锁设计,保证IO性能的最大化输出。

 

分布式微控制器

FASS针对每一个IO,FASS将其分解为协议解析、IO处理、元数据访问、落盘等服务阶段,每个阶段分别对应着各个微控制器进程。FASS主要有两类微控制器进程:IO控制器和元数据控制器:IO控制器包括TGctl、FRctl、RGctl、BActl等服务,元数据管理包括MDctl服务。

每个FASS节点可以存在多个相同控制器,同时各微控制器服务按最优配比关系映射到CPU核上,同时通过系统的智能优化调整,可以灵活根据不同服务的负载为其分配所需的CPU核心资源。每类服务专注于特定的任务,同时分配独享的计算资源,充分规避了NUMA多核架构访存的局部性限制,各控制器的功能见下表:

TGctl

目标端控制器,转发IO请求到本节点内同一NUMA节点上的FRctl并进行下一步IO处理

FRctl

前端控制器,负责IO路径管理与选择,并将IO转发到BActl进行读写落盘

RGctl

子卷控制器,向MDctl查询并缓存子卷元数据信息,并负责子卷的数据分布管理,协调卷IO读写、修复、平衡等任务

BActl

后端控制器,负载管理本地磁盘的数据读写,提供数据的写入和读取服务。

MDctl

元数据控制器,运行KV数据库,提供元数据查询与持久化写入管理,其中一个MDctl充当master角色。

 

并行流水线

FASS不仅为IO不同阶段定义出各个微控制器进程,同时也根据全闪存特性与多种IO负载模型,为每个控制器分配了指定数量的CPU核心、专属的无竞争锁的内存资源。每个FASS节点,都会运行所有的微控制器服务,但根据不同节点角色与IO压力的不同,各个节点上相同控制器的数量也会自动智能调整而各不相同。

在这一前提下,每个节点都是完全对等的角色,IO从应用端流入后,被拆分成多个阶段,分别对应着各个微控制器进程。每个IO被转发到本节点内同一NUMA节点上内的其他控制器上进行下一步处理,一步一步流水线推进直到最终落盘。各个微控制器间由于相对固定的资源锁定,几乎不存在CPU核心资源竞争与跨内外部NUMA节点访问,也不存在因为上下文切换与分支预测错误带来的巨大延时开销,多个IO宏观上均匀分布在整个FASS集群,由各个节点的多个CPU核心进行高效并发的流水线处理,从而实现在分布式体系下,依然保持的us级的超高性能。

图-FASS并行流水线作业

 

在具体IO流动上,首先卷可以通过任一TGctl控制器导出,在应用发起IO访问时,Target控制器把相关请求分发到多个前端控制器上执行(FRctl)。随后每个FRctl会访问对应的RGctl,以获取该卷的元数据信息,找到对应的BActl,然后进一步下发请求到各个BActl,最终由BActl完成数据最后的落盘写后并返回信息。

MDctl负责管理所有元数据信息交对接BActl,实现元数据的持久化落盘处理。每个RGctl都需要从MDctl获取并加载对应子卷的元数据信息到内存,以实现高速存储访问。

由于每个TGctl、FRctl、RGctl、BActl、MDctl等服务都可以相同节点上并发启用,而且每个服务都可以指定专属的CPU核心及其数量,并支持智能动态调整,因而可以达到极高的并发吞吐,实现硬件资源的最大化利用。

图-微控制器工作流示意

 

虚拟内存管理

操作系统提供的内存分配器,存在CPU亲和性、碎片化、同步等关键问题,会带来极大的访存开销。FASS采用Hugepage虚拟内存管理机制,一次性从操作系统申请出所需内存,降低页表查询开销。同时将页面锁定到内存,不使之发生swap。

图-FASS自定义内存管理

 

FASS为每个CPU核心分配专属内存空间,实现真正的专核专用,避免内存锁带来的访问开销。同时针对每一个FASS存储服务,如FRctl、RGctl等,可自动根据IO负载情况,灵活为不同服务分配不同的CPU核心,确保每个服务的运行都可以获取到足够的计算资源,保证在海量IO吞吐下,每个服务都能高速应用。

为防止极端情况下内存资源不足的问题,FASS会预存足够的公共内存区,以避免在CPU核心专属内存不足时,从公共区申请使用。FASS的虚拟内存管理器可以维护不同尺寸的页表粒度,灵活保证高效的内存资源分配,并避免page swap的情况发生。

 

定位与对比

1、传统分布式存储

随着全闪存时代的逐渐来临,传统分布式存储产品也在逐渐转型,采用少量SSD来实现缓存加速成为当前主流。但由于受限于底层架构的设计,很多分布式存储无法实现对NVMe、RDMA等技术的有效支持,也未能针对闪存进了有效的软件优化,因而即使采用全闪存配置,也无法发挥硬件真正的性能。

2、全闪存阵列

与传统存储阵列与分布式存储相比,全闪存阵列仍然属于存储阵列范畴,采用控制器架构并集成存储管理软件,以scale up为主要扩展方式(中高端产品可以支持有限的scale out扩展)。全闪存阵列AFA针对全闪存设计,有效的优化了SSD的垃圾回收、颗粒寿命、协议支持等问题,可以实现远高于传统存储阵列的性能。

但云计算日益普及,软件定义数据中心的背景下,AFA仍然有其成本高昂、灵活性差、扩展性低的不足。随着闪存单盘性能突破100万IOPS,控制器是最大的性能瓶颈,scale up对于闪存性能是一种极大的浪费。

3、分布式全闪存储

闪存技术日益成熟,全闪存储将成为未来数据存储的主要形态,从存储架构的演变来看,软件定义的分布式存储代替传统控制器架构存储已成为行业共识。在云计算时代,软件定义的弹性基础设施才是数据中心的IT建设的主流趋势,因此定位于分布式全闪存储系统的FASS,无疑代表了下一代软件定义存储(SDS)的主要发向。

12颗NVMe SSD硬盘即可耗尽一颗Intel CPU的全部lane,控制器或存储节点的计算能力,成为了全闪存储的最大瓶颈,Scale out是全闪存储的必然选择。随着高速网络、RDMA技术的成熟应用,us级的外部网络的延时使得跨节点扩展已经不再是全闪存储的瓶颈。分布式全闪存储系统在标准硬件基础上,通过优秀的软件核心对硬件性能的极致压榨与叠加,可以更好实现高性能的SDS存储系统。

对比分析

 

传统分布式存储

全闪存阵列阵列(AFA)

FASS分布式全闪存储

SSD应用

SSD缓存加速为主

由全SATA SSD正在逐步在向全NVMe SSD过渡

全NVMe SSD

网络

10Gb以太网为主

光纤SAN为主

100Gb以太网、Infiniband

扩展性

强,海量扩展

弱,scale up为主

强,海量扩展

可靠性

强,节点级冗余

弱,主要依靠RAID保护

强,节点级冗余

成本

低,标准硬件,配置要求相对低

高,FC SAN,专用硬件

中,标准硬件,有一定的配置要求

性能

十万级IOPS

百万级IOPS

千万级IOPS

应用场景

海量文件存储

数据库、高性能企业级应用、科研测试

数据库、大规模实时交易,云计算基础设施、科研测试、4K/8K非编

 

总结展望

以软件定义、超融合、闪存为代表的创新存储领域呈现着明显高速增长的趋势。IDC预测,未来5年中国企业级存储市场仍将保持近10%的年复合增长率,中国企业级存储整体市场已经呈现出了良好的发展势头,从而也将带动国产创新存储厂商的长远发展。

中国的企业级应用市场十分巨大,而全闪存存储的应用却始终落后于北美等国外市场。究其原因,除了全闪存存储价格高昂之外,最大的应用瓶颈在于中国用户对于全闪存存储的分布式部署有着明显的需求。全闪存不只是SSD的堆叠,还需要从根本上去解决中国用户应用全闪存的痛点。高性能、高可用、高扩展、易管理,这些存储需求无法通过传统烟囱式模式以及简单的Scale-up纵向扩展来很好地解决。从全闪阵列到分布式,从分布式到全闪,这是殊途同归的,终极目标是分布式全闪系统,兼取闪存和分布式的长板,根本上解决云计算、大数据、人工智能等应用场景下面临的存储新挑战。

NVMe作为一种远超传统AHCI的高性能协议,可预见其会进扩大在存储行业的应用范围,并推动企业业务整合,帮助企业在整个IT 基础架构中支持更多的应用、工作负载和用例。2019年全闪存存储市场需求保持快速增长,重要企业工作负载都在全闪存转移。全闪存储也给大数据、人工智能、IoT等新工作负载提供了新的业务价值。软件定义一切的云计算时代,NVMe的超高性能表现注定要以类云的内部部署模型,就可以转变整个云和数据中心存储基础架构的资本支出和运营支出。

(TaoCloud团队原创)

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐