IBM Systrem Storage DS3000系列入门级SAN阵列、DS4000/5000系列中端存储系统,在市场中经过长期考验,架构比较成熟而稳定,性能和容量等方面能够满足对应用户群中大多数的需要,因此受到广泛的认可。由于该产品家族OEM自 NetApp的E系列(原LSI Engenio,去年被NetApp收购),IBM DS3500的原形产品——E2600也以同样的形式或者有一定变化地出现在戴尔PowerVault MD3200/3600系列、SGI InfiniteStorage 5000等产品上。这些系统几乎可以说在整个低端SAN阵列市场中占有最大的份额,每一次新品发布/规格提升都被企业存储行业所关注。
IBM DS3524(24个2.5英寸驱动器)。DS3500系列另有一款12个3.5英寸驱动器的DS3512,以及同样为2U高度的EXP3512和EXP3524 12/24盘位6Gb/s SAS JBOD扩展柜
回顾:架构设计、初始性能及Turbo选项
我们曾列出过下图:
“IBM DS3500在2011年上半年就已经增加支持到192块盘。3.5英寸3TB 7,200rpm近线SAS驱动器、2.5英寸900GB 10,000rpm和1TB 7,200rpm都是随着去年10月IBM磁盘存储新品发布时的多款型号一同加入。而200GB和400GB的SSD(固态驱动器)则是原来没有的,考虑到戴尔MD3200/3600系列从发布至今只支持一款149GB SSD以及机械硬盘列表中的细微差别,可以看出IBM对DS3500的定位还是要稍微高一些(或者说覆盖的用户群更广),而Dell则更偏重于SMB市场。
IBM还对此进行了限制说明,每个系统(包括DS3500控制器和所有连接的EXP3524扩展单元)最大支持20个SSD。限于其控制器处理能力和SSD相对高昂的价格,这个数量对于用户来说已经足够了。”
在《SPC-1:闪存 vs.磁盘新旧势力的战场》一文中,我们还提到过:
“来自NetApp E2600原型系统的High Performance Tier,戴尔PowerVault MD3200/3600系列产品和SGI称其为高性能层级,在IBM DS3500上则叫做Turbo Performance。它是一个可以在控制器Firmware层级激活的选项,需要单独购买。根据笔者的经验,High Performance Tier应该是允许将不同LUN选择分配给A/B控制器(注意:不是同一个LUN在2个控制器间自动负载均衡),以实现Active/Active(双活动)配置最大发挥性能。而默认情况下只能分配给第一个控制器,在它出现故障时才能由另一个接管上面的LUN…
…可以从侧面看出,该产品家族(包括DS3500、MD3200/3600和SGI 5000-SP)单个控制器的IOPS处理能力在48个高转速SAS硬盘的情况下还不会成为瓶颈;对于曾经的满配——96个驱动器(目前增加到支持192 个),加上High Performance Tier才能比较充分地发挥其性能。”
关于DS3500以及上面提到的相关产品,笔者曾经陆续写过不少东西。上图是在2年前IBM的发布会上列出的性能指标,这里我们再来回顾一下包含有红字的两列——即Base(基本)和Turbo(激活Turbo选项)状态的DS3500。
戴尔PowerVault MD3200/3200i的控制器结构图,左边是iSCSI主机接口的MD3200i,而右边为6Gbps SAS主机接口的MD3200(相当于SAS主机接口的NetApp E2600和IBM DS3500)
由于IBM没有公布DS3500如此详细的控制器结构图,在这里我们引用一下戴尔PowerVault MD3200系列的资料作为参考:
“戴尔隐去了右侧MD3200控制器中的2颗主要芯片,它们分别是和左边一样的包含了800MHz PowerPC处理核心的6Gbps SAS RoC(RAID on Chip)、以及36端口SAS扩展器。整个方案中还有2个比较重要的芯片,即总共支持32个lane的8端口PCI-E交换芯片和位于它上方的主机接口扩展子卡,在这里左右两边就不同了:MD3200i使用的是一颗提供4×1Gb iSCSI端口的以太网控制器(有可能是MAC+PHY),而MD3200则是一个IOC(8端口SAS控制器芯片)。
我们清楚的看出右侧戴尔MD3200的结构图与IBM DS3500中的SAS主机接口配置完全相同,DS3500使用了16端口的SAS RoC,因此标配2个SAS主机连接,而iSCSI和FC的配置只是将IOC换成了以太网(带有TOE)或者光纤通道接口子卡。
我们还发现整个控制器设计中的I/O带宽瓶颈在于RoC和SAS扩展器之间的x4 SAS连接,它的最大接口速度是600×4=2400MB/s,限制了后端连接磁盘的带宽。不过根据同样使用800MHz PowerPC的LSI MegaRAID系列6Gbps SAS RAID卡的最高性能指标(读:2800MB/s、写:1800MB/s以上)来看,目前这一代RoC的处理能力基本也处于同一范围,而且由于外置控制器的磁盘阵列连接主机需要经过比RAID卡更多的协议转换,其单控制器性能低于RAID卡也是可以理解的。”
混合主机接口价值、IOPS上限由控制器决定?
笔者参加LSI亚太存储论坛2010时,现场展示的一台Engenio 2600存储系统控制器和电源
对于IBM DS3500控制器在主机接口方面采取标配6Gb SAS加上可选8Gb FC或者1/10Gb iSCSI接口子卡的混合式设计,我们觉得比戴尔PowerVault MD3200/3600系列单纯提供一种主机接口更有特点。同时也给用户提供了更多的价值和灵活性,可以在初始SAS连接DAS部署的基础上升级加入光纤通道和IP SAN阵列功能。
96个3.5英寸驱动器(或者192个2.5英寸驱动器)的IBM DS3500满配连接示意图,一共8个盘柜,最上面的是控制器所在的主盘柜,其余7个是通过SAS级连的JBOD扩展柜。
在去年9月对IBM STG(系统与科技事业部)磁盘存储产品首席技术官Vincent Hsu(许育诚)先生的采访中,笔者提出这样一个问题:“DS3500支持的驱动器数量增加到192个,如果是3.5英寸驱动器就需要级联15个SAS JBOD扩展柜,您认为可能带来的延迟增加,会对性能有不利影响吗?”
Vincent Hsu:“我觉得现在这种(DS3500的产品),只要不加固态盘的话,延迟都是差不多的。因为机械硬盘的速度(平均I/O访问时间,笔者注)太慢,特别 是我知道DS3500用的是基于硬件的RAID,相对于CPU和内存而言,理论上硬盘(的延迟)会差太多。如果数据非常随机的话,缓存的命中率就会低,一 旦访问硬磁盘速度就会慢下来。
首先它的吞吐量是一样的,本身的瓶颈不在于驱动器,而是由控制器决定。”
NetApp网站上的E系列产品线规格对比(部分),其中E2600(原LSI Engenio 2600)和E7900分别是IBM DS3500和DS5300的原形产品。我们看到E2600使用SSD的持续IOPS性能由硬盘时的40,000提高到70,000,不过要是用户在2U 24个2.5英寸驱动器位的机箱中装满(或者只装一半)SSD的话,这个数字早就成为瓶颈了吧?
“也就是说如果不用SSD的话,这方面不会有多大的影响。Vincent Hsu对此表示认同。
我们估计实际使用的人不会在里面装很多个SSD(上文中提到该产品现在最大支持20个SSD),因为DS3500定位的关系。Vincent Hsu还说:一般来讲,用SSD的人太少了,因为1、2个SSD的价格可能就比DS3500(控制器机箱)要高了。”
以上汇总了这么多的回顾,该转向本文的主题了。要想充分发挥IBM DS3500的IOPS性能大致有3个因素:Turbo选项、增加驱动器数量,还有使用SSD。那么我们将在本文下一页讨论两部分内容:
1.DS3500在96块硬盘的测试中,最大随机读磁盘IOPS(这里不讨论缓存性能)为40,000;而SSD配置下可达70,000。那么如果使用192个传统机械硬盘的情况如何呢?
2.对于Turbo选项,看上去它仅仅是一个在固件层面激活的Key。然而根据我们的了解,通过Turbo选项提高性能也许需要建立在一定的硬件配 置基础上,或着说有些“最佳实践”或者约定俗成的规则?笔者所知有限,写的内容可能不够严谨,只是希望能够给读者带来有用的参考。
192硬盘IOPS接近SSD、HIC子卡助性能提升?
IBM DS3500随机读写IOPS性能与硬盘数量、Turbo选项之间的关系
上面来自IBM的这张图表可以说“一图抵千言”:首先不看Turbo模式对缓存IOPS的帮助;在96个高转速SAS硬盘的情况下(应该是10.70版本固件),未激活Turbo模式时随机读/写IOPS分别为30,000和7,500,而打开Turbo模式之后达到了40,000和12,500;而在192块硬盘(10.75版本)Turbo模式下,随机读/写IOPS进一步上升到65,000和15,000,其中前者已经接近使用SSD获得的性能水平。
也就是说,尽管我们没有看到在IBM的测试配置中使用了2.5还是3.5英寸驱动器,不过事实证明Vincent Hsu先生所说,“DS3500在192个硬盘配置下无法发挥其最大性能”这种担心基本上是多余的。另外,根据我们看到的一些相关测试数据,这里的随机写性能应该是在RAID 5/6设置下实现的。
上图来自SPC-1基准测试结果文档,一台DS3524双控制器阵列级连3个EXP3524扩展柜,一共96个300GB 10K RPM SAS硬盘驱动器。主机访问通过服务器上安装的2块IBM 6Gb SAS HBA来实现。这里我们还看到在每个控制器上添加了一块HIC SAS接口子卡,是为了增加主机连接数量吗?
IBM DS3500运行SPC-1 Benchmark的存储配置表
根据这个表格,上面那张连接图所显示的配置除了启用“Turbo Performance”之外,每控制器2个板载的6Gb SAS主机接口(miniSAS x4连接器,双控一共4个)都没有使用,而是将服务器全部连接在了HIC子卡提供的SAS端口上面,这是为什么呢?
联想到上一页中的MD3200/DS3500控制器结构图(右边那张SAS主机接口的),我们这样猜测:LSI SAS2116 CPU中包含800MHz的PowerPC 440处理器,而HIC子卡上代号为“Falcon”的LSI SAS2008控制器也带有533MHz的PowerPC。那么IBM DS3500运行SPC-1基准测试时,应该是为了让SAS控制器专注于前端主机I/O,而核心RoC则可以解放出这部分资源来处理RAID和后端磁盘I/O等。
对于FC和iSCSI主机接口的DS3500,如果不同时使用SAS连接的话,可以不用注意这个问题。这款阵列在6Gb/s SAS(x4 link理论带宽2.4GB/s)访问的情况下可以达到最高性能,8Gb/s光纤通道基本与之相仿,10Gb/s(万兆以太网)iSCSI略有差距,而千兆iSCSI主要针对非带宽类型和性能要求不高的应用。
IBM DS3500运行SPC-1 Benchmark的组件价格表
最后再来看一下DS3500 Turbo Performance选件的参考价格——6850美金,这个与带有双控制器的DS3524存储系统相比不算便宜。但在满配96个300GB 10,000rpm 2.5英寸SAS驱动器等组件之后,只占总价格95,384美元的不到10%,我们认为在应用性能有需要的前提下还是可以接受的。