Scale-Out 的分布式系统为何离不开 SSD / 全闪存?如果没有闪存,Scale-Out 为什么就让人感觉火候不太够?而 Scale-Out 的出现,除了得益于闪存助力,还有什么其他因素么?本文冬瓜哥就来分析分析。
本文组织
① Dell EMC XtremIO X2 简介
② 说说 Scale-Out 架构与全闪存
Dell EMC XtremIO X2 简介
2018 年 5 月 1 日,Dell EMC 在 Dell Technologies World 宣布了最新的计算和存储产品。
戴尔在 5 月 8 日宣布了对 XtremIO X2 的一些重要改变,XtremIO X2 在其软件中添加了新功能(提供了将变化数据复制到目标系统的复制方式),这将减少在进行本地复制时传输的数据量。戴尔还宣布,未来版本的 XtremIO X2 将支持 NVMe SCM。
Dell EMC 的 XtremIO X2 为一款具备横向扩展能力的全闪存阵列。其相比上一代 XtremIO 的提升如下图所示:
每个阵列单元称之为 X-Brick。每个 X-Brick 单元可配置 18~72 个 SSD。
上图为 XtremIO X2 全闪存阵列 X-Brick 模块外观图。每个 X-Brick 高度为 1U,分别由 Storage Controller、DAE(SSD 扩展柜)、UPS 电源组成,每个控制器为 1U 双路服务器,每个 X-Brick 配置了 4 个 16Gb 光纤通道端口、4~8 个 10GbiSCSI 端口、4 个 56Gb Infiniband 端口(每 Controller 配置 2 个)以及 2 个 1Gb 的管理端口。
下图所示为 XtremIO X2 的 X-Brick 架构。每个控制器运行了一个定制化的轻量级的 Linux 内核——XIOS。为了获取最高的性能,I/O 处理模块直接运行在用户态,直接操作底层硬件。节点间互联采用基于 Infiniband 网络的 RDMA 方式。
XtremIO X2 已经在实验室环境中实现了 8 个 X-Brick(16 个节点)甚至更大的集群,Dell EMC 估计也会很快提供 8 个 X-Brick 配置的阵列。从理论上看,8 个、16 个 X-Brick 和 32 个 X-Brick 并没有区别,但是涉及到很多测试和实际应用场景,即客户当前是否需要这么大的容量和性能。
X-Brick 具有非破坏性 XIOS 软件及硬件升级、拥有高可靠性的热插拔升级,且不存在着单点故障。集群化的 XtremIO X2 阵列中各个 X-Brick 可以拥有不同存储容量;集成了 VMware VAAI、VMware 多通道 I/O 支持,数据分卷能够夸整个系统;拥有丰富的数据保护功能。
XtremIO X2 全闪存阵列将数据分为 4KB 的散列块,这些 4KB 的散列块完全打散,不按照逻辑地址进行排列存储,而是根据物理位置进行安置。如下图所示:
数据天然带有指纹 hash,这也是 XtremIO X2 实现重复数据消除的基础。
其他一些产品也使用了类似策略,但是其数据存储方式一般都是基于逻辑地址,时间久了之后不可避免的就会产生磁盘碎片化,从而对性能产生影响。XtremIO 全闪存阵列的策略则是将数据彻底的打乱完全碎片化,基于 4KB 的数据块通过指纹来识别、存储、管理等。一方面可以实现全局磨损均衡,另一方面可以让重复数据消除变得非常容易。
XtremIO 的数据保护机制 XDP,通过双阶数据引擎避免了 RAID5、RAID6 的写放大外,达到了 RAID6 的保护效果。
说说 Scale-Out 架构与全闪存
分布式系统的发展有三个技术条件,分别为:高速网络、大容量硬盘、固态介质。这三者彻底解放了分布式系统的生产力。通俗一点说也就是:网络快了、盘容量大了、盘速度快了。
高速网络
高速网络是分布式系统赖以生存的根本,分布式存储系统早在上世纪中后期就已经形成了理论基础,但是一直到近几年,网络的时延和带宽才足以支撑分布式系统架构。
大容量硬盘
为了降低成本,业界兴起所谓软件定义,也就是利用廉价白牌机或者标准的机架服务器,加上分布式存储软件管理层,搭建出软件定义分布式存储系统,与传统的 SAN 存储系统瓜分市场。
固态介质
而分布式系统的大行其道,极大的促进了固态存储的需求量,因为为了成本考量,分布式系统中每个节点往往不会连接多级 JBOD 从而靠大量的硬盘形成高并发性能,而是只靠每个服务器自带的少量盘位,加上固态盘来抵消跨网络通信带来的时延增加,形成让传统机械盘系统望尘莫及的 IOPS 和时延性能。
所以,Scale-Out 与固态盘可以说是天然的一对儿,固态存储系统用于 Scale-Out 分布式系统是非常自然的一种需求。