IBM XIV SSD缓存揭秘,将支持纵向扩展?

EMC于本月6日重点推出了VFCache服务器闪存缓存产品,相比之下IBM XIV Gen3按原计划加入的SSD缓存支持显得比较低调。在《EMC VFCache对决IBM XIV Gen3 SSD缓存》一文中,我们编译了来自IBM的对比资料。尽管笔者曾经分析过IBM第三代XIV网格磁盘存储系统的改进之处,但新加入的SSD缓存也算是比较大的变化,有一些值得与读者分享的地方。

VFCache和XIV Gen3 SSD Caching都是将闪存用于读缓存来加速阵列,VFCache的容量为300GB,由美光提供的PCIe闪存卡与Fusion-io在硬件上属于同一种形式;而IBM XIV Gen3加入的应该是400GB SATA接口SSD驱动器,单个模块的性能(特别是IOPS)无法与EMC VFCache相比,但XIV的SSD缓存却是分布式的,在每个数据/接口模块上都有一个(最多15个节点一共6TB)。理论上说VFCache位于服务器PCIe插槽上具备更低的访问延迟,但却无法扩展或者被多个物理主机共享;XIV Gen3 SSD缓存可以随着系统的“Scale-out”而同步扩展,并且能够被连接到存储阵列的所有服务器共享。

除了以上两者,我们还想起了较早开始在阵列中配置固态DRAM/闪存缓存的NetApp,其通过Data ONTAP 8.1集群模式也加入了横向扩展的特性。那么NetApp Flash Cache(PAM II PCIe闪存卡)与IBM XIV Gen3 SSD Caching又各有什么特点呢?

此外,笔者还想对XIV SSD缓存的性能,为什么不使用PCIe闪存卡?以及XIV的未来发展做一些讨论。

SSD驱动器用于缓存、后端SAS接口暗藏玄机

首先,我们还是从XIV Gen3单个节点的硬件谈起,之后再从整个系统和功能的角度进行分析。

IBM XIV SSD缓存揭秘,将支持纵向扩展?

IBM XIV Gen3接口模块:基于一款针对存储优化的Intel服务器平台

如上图,根据箭头和文字的示意,可以看到在这个2U机架式双路至强5500服务器平台中,安装了一颗Xeon E5620四核CPU;左侧由它控制的内存槽中插有3条8GB DDR3内存(一共24GB);电源和散热风扇都是冗余配置;7个PCI扩展槽位看上去都被占用了,从左边第二块卡开始分别是20GB/s InfiniBand HCA、千兆iSCSI网卡和两块8Gb/s Fiber Channel(光纤通道)HBA,其中iSCSI和FC HBA是XIV的接口模块具备而数据模块没有的。那么剩下的3个插槽中都是什么设备呢?SSD缓存又在哪里?

我们将前面一张图放大看:

用红色箭头①指出的就是SSD插槽(请结合下文中的图片),不过似乎有从主板连过来的SATA线缆,因此这里应该是一块安装SSD的转接板卡,而不是我们之前猜测过像Fusion-io和NetApp PAM II那样的PCIe闪存卡。

箭头②所在位置除了SATA线缆之外似乎还有供电连接,也就是应该没有从下面的PCIe插槽取电,此处是为了安装存放XIV操作系统软件的CF闪存卡。

注:CF卡使用的协议属于并行ATA,实现与SATA之间的转接相对比较简单。

箭头③左边指向的应该是6Gb/s SAS HBA卡,由它接出来的两条线缆中的一条估计是通向了机箱前端的SAS硬盘背板,而另外一条引向了右边,并从主板另一侧连接到上图右上角的转接板。这个的用途又是什么呢?

为什么说XIV使用的是SAS HBA卡而不是RAID卡呢?这个要从它的架构原理谈起。IBM XIV底层使用的数据保护技术不是传统的RAID,而是以宽条带化的形式,通过伪随机算法将全部磁盘空间打散为1MB大小的数据块。每一个数据块都在另外 一个节点的某一块硬盘上保持一份镜像,因此来自主机的访问能够被平均分布在每个模块和硬盘上,理论上不存在数据“热点”。同时在重建损坏的硬盘时,其数据 几乎来源于其它模块中的每一个硬盘,2TB硬盘重建甚至只需要几十分钟,大大短于传统RAID,并且Rebulid过程对性能的影响较小。

IBM XIV SSD缓存揭秘,将支持纵向扩展?

带有FC和iSCSI接口的XIV Model 114(即第三代XIV)接口模块,数据模块上3个主机接口扩展卡的位置是空着的。

在2U接口模块的背面,从右往左看:首先是20GB/s InfiniBand HCA上的2个端口,分别连接到2个互为高可用的IB交换机;接着是一块4端口1Gb/s iSCSI以太网卡、2块双端口8Gb/s光纤通道HBA;“SSD Slot”的位置,应该可以插入一个2.5英寸SSD驱动器;而“Memory Flash Card”在金属档板上就是一个CF存储卡的插槽。靠近中间的位置有用于管理的USB和RS-232串口,这里的2个主板集成千兆网口也可以用于iSCSI;在它们左上方红圈里的2个接口,就是我们刚提到的SAS连接?再放大一些看看:

现在看SSD和“Memory”闪存卡的插槽就更清楚了,IBM之所以要将它们设在这个位置,一方面因为服务器机箱前面板已经被12个3.5英寸SAS驱动器(上一代XIV是SATA)占满了,另一方面就是可以方便的插拔更换,SSD驱动器甚至支持热插拔——XIV Gen3应该可以在联机状态下启用或者禁用SSD Caching。

我们认为,引出这2个SFF-8088样式的miniSAS x4接口的意图很明显,就是未来可能会加入Scale-up(纵向扩展)能力,通过在每一个XIV接口/数据模块的后端级联JBOD,增加驱动器的数量,从而获得更大的容量和磁盘性能。其意义我们将在本文的下一页进行更多分析。

IBM XIV Gen3运行的系统软件就保存在这样一个4GB CF卡上

记得笔者去年9月电话采访IBM科技与系统事业部磁盘存储产品首席技术总监Vincent Hsu(许育诚)先生时,曾经问到:“XIV除了增加横向扩展节点的数量,还可以采用Scale-out + Scale-up的组合,即在每个控制器节点(数据模块)后端连接JBOD或者使用高密度盘柜。XIV会采用哪一种?”

Vincent Hsu的回答是:“由于控制器CPU和缓存能力的提高,速度变快了,我们也在研究将来XIV做高密度的机箱(驱动器柜),使每一个模块内的磁盘数量增加。但这不是今年或者明年的事情,属于未来的发展方向。”而上面提到的发现,则进一步证实了之前的推断。

IBM XIV SSD缓存揭秘,将支持纵向扩展?

戴尔EqualLogic PS4100控制器上空焊的SAS扩展端口

无独有偶,笔者曾经在拆解戴尔EqualLogic PS6100/4100 iSCSI阵列的控制器时,也看到了电路板上预留空焊的SAS扩展端口(当前同样不支持驱动器扩展柜),Scale-out + Scale-up是否会成为将来流行的趋势呢?

XIV Gen3架构及性能对比分析、未来展望

IBM XIV SSD缓存揭秘,将支持纵向扩展?

IBM XIV Storage System架构图

我们以前介绍过,除了节点间互连由千兆以太网改为InfiniBand之外,XIV Gen3的整体架构在IBM上一代XIV的基础上变化不大。尽管现在每个节点的CPU和内存配置都一样了,但仍然不是完全对称式的架构,最多6个“接口模块”提供主机访问,而另外最多9个“数据模块”只有存储和内部互连功能。这样应该还是考虑到合理的性能发挥与成本上的平衡。

不过,根据前面谈到未来的Scale-out + Scale-up可能性,如果每个接口/数据模块后端都通过连接JBOD来增加驱动器数量(这个应该是要对等的)的话,现有的前端I/O能力是否也需要增加?将更多的“数据模块”变为“接口模块”似乎是合理的。

IBM XIV SSD缓存揭秘,将支持纵向扩展?

XIV Storage System Gen3——组件和连接示意图

上图中的变化,相对于去年刚发布XIV Gen3时只有增加了可选的400GB SSD,使用驱动器形式能够比PCIe闪存卡节约成本,比如NetApp PAM II 512GB性能加速模块的报价就达到了49,000美金。IBM最早公布的SSD容量为512GB,后来变成了500GB,满配15个模块时一共7.5TB闪存缓存。如今的容量“减小”,或许就像EMC VFCache那样——350GB的物理闪存空间,可用逻辑容量为300GB。

IBM XIV SSD缓存揭秘,将支持纵向扩展?

这个表格最右边一列为不同XIV模块数量时对应的SSD缓存容量,目前每个SSD只缓存12块7200转SAS硬盘中的数据。EMC VFCache和NetApp Flash Cache虽然使用了性能更高的PCIe闪存卡,但这两种缓存后端对应的驱动器数量可能会远超过XIV。比如NetApp FAS6280最多支持1440个驱动器,PAM II可以配置16块一共8TB(双控制器,标配只附送单个512GB);而EMC VFCache无论为VNX还是VMAX加速,每台服务器上都只能安装一块闪存卡。

按照IBM的说法,XIV的每一个模块为包含CPU、DRAM内存和驱动器等的紧密耦合方式(但节点之间的互连为松耦合,笔者注),增加的SSD作 为DRAM之外的下一级缓存,能够显著提高读Cache的命中率。因此IBM表示“最多可以使活动负载的应用程序性能提升3倍,削减随机读取I/O延迟高 达90%”。

IBM XIV SSD缓存揭秘,将支持纵向扩展?

XIV Gen3通过了微软ESRP(Exchange Solution Reviewed Program)120,000个邮箱的测试,平均磁盘延时不超过20ms。

上表为XIV Gen3 Storage System Model 2810/114在没有SSD缓存的情况下运行ESRP的测试结果,我们看到平均数据库写延时只有2ms,而读延时达到了17ms。这是因为所有写入存储 系统的数据都会先经过缓存,而读访问能够被DRAM命中的通常只有一小部分,那么我们预计大容量SSD读缓存能够改善这种情况,缩短XIV的读延时从而提 高服务质量(QoS)。

XIV Gen3支持180个驱动器的数量限制,使它在配置3TB近线(7200rpm)SAS驱动器的情况下也只有243TB的最大可用容量,其物理磁盘空间利用率与RAID 10相近(还有一定数量硬盘用于热备),单看这个数字也许只相当于竞争对手的中端阵列产品。但其CPU和内存处理资源却相当丰富,而且还有进一步升级的潜力。

我们来做一个假设,在XIV现有平台的情况(下一代很可能会更换新平台),CPU可以增加到两颗4/6核Xeon 5600系列,主频也可以提高;内存按照现在的8GB插满12条就是96GB。别忘了可是15个节点啊,这些已经超过EMC Symmetrix VMAX等高端存储系统了吧?

因此我们觉得未来XIV针对需要大容量的应用,增加纵向扩展能力是比较有意义的。另一方面,IBM磁盘存储CTO Vincent Hsu在去年还曾表示过:“我们正在研发多机架的技术,在实验室里可以把最多4个XIV机架连接为一个系统的。”

IBM XIV SSD缓存揭秘,将支持纵向扩展?

XIV Gen3使用的2个36端口40Gb/s(注意,不是20Gb/s)InfiniBand交换机,可以说这已经为下一代XIV模块上的IB HCA卡升级到40Gb/s做好了准备。当然,最好还是在支持PCIe 3.0的Intel Xeon E5平台上才能充分发挥其带宽性能。

如果XIV的节点数量真的增加到30或者60个的话,现有的20Gb/s InfiniBand互连可能会影响到效率,不过还好,40Gb/s的QDR InfiniBand早已成熟,而56Gb/s的FDR也已经推出。相比之下,同样为Scale-out扩展方式,EMC Symmetrix VMAX使用的Rapid IO交换技术和惠普3PAR的背板连接当前在总带宽上还有一定的优势,特别是3PAR V800——其每个控制器节点都具备单独通向另外7个控制器的PCIe连接,而且这两款产品的节点数量最多只有8个。

我们在本文开头处还曾提到NetApp的Data ONTAP 8.1集群模式,在《2011存储Benchmark盘点,意义何在?》一文中,24节点横向扩展的NetApp FAS6240曾经以1,512,784 IOPS的成绩创造过SPECsfs2008文件系统性能测试的纪录。不过我们也应注意到,NetApp FAS统一存储仍然属于传统的双控制器阵列,并不是专门为Scale-out架构而设计的,因此其节点间互连只能占用原本为主机接口准备的万兆以太网。可能是因为这个原因,Data ONTAP 8.1集群模式当前在SAN块访问的情况下好像最多支持到4个节点,更多的节点只能是集群NAS的方式。

当然,IBM XIV的定位与这些产品不完全相同,这个从大容量高性价比的7200转SAS驱动器就可以看出。不过,随着IOPS性能优异的闪存对高转速(10K、15K)机械硬盘市场的不断侵蚀,就像Vincent Hsu先生在接受笔者采访时所说的:“现在的确有用户提出需求,我们在考虑做15,000转的驱动器支持。但是我觉得将来的走向还是使用SSD + Nearline(近线)的组合比较理想。市场的大趋势还是在Hybird(混合存储)——SSD加上转速比较低的磁盘。”

还有一点值得期待的——“SSD在第一阶段会做读缓存;第二阶段,大约6个月之后会做读/写缓存。”

注:本文带有一定前瞻性,我们不对推测的部分负责。