数据存储技术与实践
上QQ阅读APP看书,第一时间看更新

3.4 全Flash架构分析

随着摩尔定律的推进,Flash介质凭借高性能进入企业存储领域。Flash介质的特性和传统硬盘完全不同,需要全新的设计,以发挥闪存的全部性能潜力。不同的存储厂家推出不同的架构。

3.4.1 IBM FlashSystem软件架构

FlashSystem的Flash存储组件是一种专有硬件架构,I/O数据路径由FPGA完成处理,性能高但特性很少,对介质的寿命要求高。

在实际应用时,一般需要和IBM SVC存储虚拟化软件配合,提供完整的存储特性。SSD存储组件提供持久化存储能力,SVC虚拟化软件提供存储特性。此时虚拟化软件本身容易成为性能瓶颈。这种架构下难以支持在线重复数据删除特性(见图3-13、图3-14)。

图3-13 FlashSytem的Flash存储组件

图3-14 IBM FlashSystem软件架构

3.4.2 XtremI/O架构

XtremI/O采用基于服务器的Scale-out架构,最多支持8个X-Brick节点,节点间通过RDMA Fabric互连。在软件实现上为全闪存进行重新设计,支持在线重删、压缩、瘦分配等特性。节点间数据/元数据Hash打散分布,负载分担(图3-15)。

图3-15 XtremI/O架构

XtremI/O运行基于linux的XIOS软件系统,XIOS运行在用户态(图3-16)。

图3-16 XIOS的运行

系统分为数据面和管理面两大部分。

(1)数据面

R-Routing:负责前端I/O处理,包括I/O数据拆分,指纹计算;每一个节点运行一个R模块。

C-Control:负责LBA地址到Hash指纹映射表处理(A2H),以及高级数据服务,如快照、重删、Thin Provision。

D-Data:负责Hash指纹到物理地址映射表处理(H2P),以及所有下盘操作,包括XDP。

(2)控制面

P-Platform:负责系统硬件管理,每一个节点运行一个P模块。

M-Management:负责系统配置,接收来自XMS的配置命令,每个节点运行一个M模块,其中一个处于活动状态。

L-Clustering:负责集群管理,每个节点运行一个L模块。

读流程如图3-17所示。

图3-17 读流程

写流程如图3-18所示。

图3-18 写流程

XtremI/O软件上为闪存所做的主要优化为:基于双阶元数据引擎的在线重复数据删除,XDP数据布局,共享式全内存元数据。通过元数据全内存提供稳定的处理时延,同时也制约了每个控制器可以管理的介质容量,单节点容量不大,容量扩充通过扩展X-Brick来实现。

3.4.3 PureStorage架构

PureStorage采用Scale-up架构,软件为全闪存专门设计。其软件架构可以分为介质管理(Purity Core)、存储服务(Purity Services)、管理三层,如图3-19所示。

图3-19 PureStorage架构

介质管理:负责处理适配Flash块大小边界布局、全局磨损平衡、数据布局持久化、读优先处理、介质故障处理等,为服务层提供一个高性能的、可靠的虚拟化资源池。

存储服务:在存储池上提供的数据缩减(重删、压缩、瘦分配)、数据保护、数据恢复等服务,实际提供用户可用的存储特性。

管理:本地存储管理,应用生态对接,云支持。

PureStorage在软件上的主要特性为使用基于NVRAM的大日志式Cache来完成掉电保护、汇聚数据顺序写,减少写放大,从而可以使用较为廉价的cMLC介质,降低成本(见图3-20)。

图3-20 PureStorage在软件上的主要特性