数据存储产业服务平台

FlashSystem A9000系列解析:不只是XIV替换了SVC

今天看到IBM推出了新一代全闪存阵列FlashSystem A9000和A9000R,曾经听说它使用了XIV的技术,而看到具体资料才发现不止是把XIV换成闪存那么简单……

1、分布式,还是共享后端的Scale-out

2、数据服务带来的性能影响有多大?

3、为什么觉得A9000R与Pillar Axiom 架构神似

4、模式删除(Patten removal)是什么,为啥有2个重删技术?

5、闪存阵列设计权衡、现阶段市场分析

围绕以上几点写写学习心得,希望能有助大家了解这个东东。个人水平有限,文中如有错误和不足欢迎批评指正。

FlashSystemA9000:把SVC网关换成了XIV

如果有对IBM XIV不熟悉的朋友可以在网上搜一下我几年前写过的东西《IBM XIV Gen3剖析:InfiniBand、SSD缓存》,其最大特点是分布式(或者说Scale-out)和跨节点的条带化镜像。而看到上面这张A9000的图我才发现是3个Grid Controller共享后端的Flash Enclosure(其实就是FlashSystem 900),我还曾经猜测每个GridController上也会有SSD,与Flash Enclosure之间形成一个类似分层的机制,但实际情况不是这样,见下图。

注:对于已有的FlashSystem900及其FlashCore技术,由于不算新东西,本文受限于时间和篇幅就略过了。

在A9000系列每个Grid Controller上有一对HDD做启动盘、一对Vaulting Module SSD做缓存(在服务器内存中)的掉电保护,右边的硬盘位上安装有2个电池模块。

再来看看后背的PCIe扩展卡。上图中插了2块双端口FC HBA、1个双端口万兆iSCSI网卡(如果不要FC可以增加一块);2个InfiniBand HCA槽位,FlashSystem A9000会插2块而A9000R只需要一块,这个我们稍后解释原因。另有2块压缩加速卡,使用了Intel Quick Assist Acceleration technology技术,这个估计与SVC和V7000 Gen2上的RTC压缩差不多。

IBM FlashSystem A9000 Grid Controller上的压缩加速卡,基于Intel Coleto Creek Communications Chipset 8950芯片

现在业内有两个方向,一种是像EMC XtremIO等的重复数据删除和压缩都用CPU来处理,毕竟Intel Xeon性能越来越强大,Intel又搞了AVX2、ISA-L等各种指令集和库来加速。当然ASIC/FPGA的拥护者也会有他们的理由。只是按照软件定义存储、通用化硬件的思路,比如SolidFire、VSAN和ScaleIO等都选择了CPU。

上面的FlashSystem A9000 InfiniBand互连示意图,解释了插两块HCA卡4个端口的意义——不需要IB交换机了。后端的FlashSystem 900上的Canister 1和2里面包含冗余的I/O模块,其控制器也是2个。

那么A9000在定位上应该就是要替代之前的FlashSystem V9000。后者出现的背景是FlashSystem900等收购自TMS的全闪存阵列只有基本的RAID保护,像Thin-Provisioning、复制和压缩这些数据服务都不支持,所以在其前端添加一对SVC存储虚拟化网关,性能上也会有一定损失。

根据IBM的资料,FlashSystem 900的4KB随机读IOPS可达110万,随机写60万,随机读取/写入(70%/30%)IOPS 80万;256KB顺序读写带宽分别为10GB/s和6.5GB/s。

V9000公布的4KB随机读IOPS 63万,128KB顺序读带宽9.5GB/s。虽然SVC支持集群模式横向扩展,但其节点间互连仅使用FC,个人认为更多的意义在于容灾。

新推出的A9000公布性能数字为读取/写入(70%/30%)IOPS 50万,带宽4.5GB/s。

这里需要说明一点,FlashSystem A9000的数据服务比XIV要丰富一些,毕竟是针对全闪存设计的,有(全局)重复数据删除。

如果觉得性能和容量不够,FlashSystem A9000R就是一个规模更大的扩展版本。

FlashSystemA9000R:性能与Grid Controller呈线性关系

如上图,FlashSystem A9000R满配是一个机柜,其中支持2-6套“grid elements”,每套grid elements中包含2个GridController和1个Flash Enclosure。从后面看线缆不少,也许换个人能走得更漂亮些:)

由于要支持更大的规模,FlashSystem A9000R内部互连需要2个InfiniBand交换机,这时每个GridController只用1块双口HCA卡就可以了。上图只是一个起步配置,满配有12个Grid Controller和6个Flash Enclosure。

上图截自FlashSystem A9000R数据表,它的Grid Controller的配置为2颗Xeon E5 v3 10核心2.3GHz、384GB内存;相比之下A9000的配置要低一些——每节点2颗Xeon E5 v3 8核心2.4GHz、192GB内存。我们知道压缩和重删的性能都是比较依赖内存的。

容量描述部分,单看这个表格有点容易搞不清楚。比如每台FlashSystem 900按照12个2.9TB闪存模块,一共2个Flash Enclosure计算出是69.6TB的裸容量,而这里写的却是105.6TB。我只想到一点——应该是闪存模块上NAND颗粒的物理容量。如此来看,使用通用SAS SSD的闪存阵列是否可以把OP冗余空间也都加上给出个“裸容量”呢?

至于有效容量和最大容量,都是按典型数据缩减比率来计算出的。

接下来也有性能,A9000R满配的读取/写入(70%/30%)IOPS可达200万,带宽18GB/s。12个GridController正好是3个Grid Controller A9000的4倍,由于最上层的读/写缓存以及数据缩减等服务都跑在这里面,所以与后端的Flash Enclosure反而不是线性关系。而这个延时按道理也是可以到Cache就返回了。

单看A9000R的IOPS,介于2-3套FlashSystem 900之间,数据服务肯定是有性能损失的。以前听EMC方面的人说过,假使不做数据服务(重删等)也能跑得更快。根据XtremIO的资料,其每个X-Brick硬件是双控共享JBOD中的SSD,所以性能是对等线性扩展的,目前最大支持8个X-Brick。

在数据服务部分,除了快照和精简配置有3项数据缩减方面的:模式删除(Patten removal)、全局线内重删和线内压缩。Pattenremoval这词咋没听说过呢?后面我会讲讲。

这里可以清楚地看出,“裸容量”和“可用物理容量”是两个概念,58TB是在Flash Enclosure中RAID保护之后的,所以达不到我之前计算的69.6TB。

为了把剩下的问题搞清楚,需要看看A9000/A9000R的软件架构。

3副本缓存保护、与Pillar Axiom 架构神似?

如上图,每个Grid Controller从上到下都包含有5个模块:接口、缓存、数据缩减、分布和复制。其中Distribution是将数据以16MB大小的分区打散均衡分布到后端的FlashEnclosure上。

这个是主机写入的数据流,其实数据缩减是进入Cache后异步完成的。

如上图,Interface Node不一定写本地,也可以通过InfiniBand网络写入到其它Grid Controller的Cache Node上。为了保证Cache数据可靠性,A9000系列设计为保存3份(镜像写入到另外两个Grid Controller)的强一致性。因此A9000R的gridelements不能只配置一套,至少2套grid elements以确保Grid Controller不少于3个。

而在数据向Flash Enclosure落盘时,只需写入一份到闪存即可,因为FlashSystem900有双控和RAID保护了。这种Scale-out方式,让我想起了几年前写过的Oracle Pillar Axiom 600。

Pillar Axiom 600的架构当初也被有些人称为Scale-out,后来发展不太顺利。如上图中左边,前端“双控的Cache节点”支持扩展到4台,后端“双控RAID磁盘箱”最多可以扩展到64个。

除了Pillar没有重删和压缩之外,前后端的扩展规模限制也可以看出闪存与磁盘时代最大的区别——Pillar Axiom 600的瓶颈在后端磁盘箱,而FlashSystem A9000R主要在前端的Grid Controller。

模式删除(Pattenremoval):2步比对的原因所在

当主机写入进入A9000的Cache,数据先按照8KB分块(与XtremIO相同)、计算Hash,并与指纹库(Knowen patterns)做第一轮样本匹配(Pattern Matching),与以前重复(Match found)的数据只保留指针,达到“Removal”状态。按道理这已经是全局重复数据删除了。

下一步干啥呢?在这一批8KB中也有重复的块可以比对出来(Duplicatefound),同样保留数据指针达到“Dedupe”状态,最后再对每个块做压缩。

为什么2步重删不能合并合并到1步?我理解是新写入这一批8KB块的Hash值还没有进入全局指纹库,所以需要局部再单做一次重删。这里我们不必太纠结于概念,看看下面的流程图会更清楚一些。

图中我用蓝色方框标出的就是重删的2个步骤,可以看到Hash DB和元数据都是要在流程的最后才写入闪存。之前我也听到专业人士评论过XtremIO的2次Hash开销,可以发现真正到各家设计自己产品时,出于各方面考虑、历史原因等等,都会有各种权衡而做不到十全十美。

总结与展望

由于V9000多少有点临时“赶鸭子上架”的感觉,FlashSystem A9000系列超越自家前辈应该不成问题。至于IBM能否打出全闪存阵列的翻身仗,要看其实际市场表现了。

本文中反复提到XtremIO是因为它们定位类似,EMC和IBM两家高端面对的也是同一批用户群。我曾经听业内人士讲到XtremIO赢得用户的一大价值点是易用性,IBM A9000系列从硬件节点上没有做到真正对等和融合(后端FlashSystem 900相当于一个黑盒),其统一管理的体验值得关注。

在IBM的资料中,我没有看到重删和压缩可以关闭的描述,这一点上可以说与XtremIO等一脉相承,反映出专门设计的全闪存阵列一种趋势。如果不想牺牲性能,FlashSystem 900这样连快照和复制都没有的许多企业级环境也不达标;要不是被IBM收购,TMS发展下去可能也会是Violin Memory类似的局面。

基于传统阵列改良的全闪存阵列,现阶段还是比较折中的一种选择。如EMCVNX/VMAX部分型号、HP 3PAR、Dell SC(Compellent)等,数据服务一应俱全,压缩/重删可以手动开关,甚至平均每个SSD贡献的IOPS也不见得处于下风。

(文章转自唐僧  企业存储技术)

未经允许不得转载:存储在线-存储专业媒体 » FlashSystem A9000系列解析:不只是XIV替换了SVC