存储专栏:IBM高端存储的前世今生与市场表现

关注微信公众号“高端存储知识”,与作者西瓜哥微信互动。

存储在线专栏文章前几天我们发表了西瓜哥写的HDS和EMC高端存储分析,今天我们来谈谈IBM高端存储的情况。

高端存储原来是IBM一家独大,后来EMC采用RAID方式,把IBM赶下神坛,HDS也来抢生意。IBM终于忍无可忍,推出shark系列,来反击EMC和HDS,最终凭借DS8000,夺回高端存储的第二名交椅地位,和HDS并列。但由于IBM的综合解决方案太NB,因此,在中国区IBM是第一名,我们前面的帖子分析过中国区的情况,大家应该还记得。但全球的格局我以前没有分享过,这里采用Gartner的数据让大家有一个了解。

1999年7月,IBM正式发布代号为Shark“鲨鱼”的企业存储服务器(ESS)。当时没有采用FC技术,而是采用IBM自己研发的串行存储结构(Serial Storage Architecture,SSA)。第一代鲨鱼是E系列,然后是第二代F系列。

2002年7月15日,IBM推出第三代鲨鱼企业存储服务器ESS 800。新推出的产品代号“银鲨”。2004年4月8日,IBM发布了新一代企业级存储服务器ESS 750。ESS 750被称作“BabyShark”,属于ESS 800大型机存储系统的简化版本。这个时候Shark系列软件特性也比较丰富了,IBM也抛弃了SSA技术(虽然这个技术也成为了标准),采用了FC技术。

2004年底,IBM推出了第四代鲨鱼DS8000系列。同时还推出DS6000小鲨鱼侵占中端市场。DS8000经过了5代:DS8100、DS8300、DS8700、DS8800,最新的是去年年底推出的DS8870。

我印象中华为HVS在9月份的华为云计算大会推出后,IBM急忙在10月份发布第五代DS8000产品,DS8870,哈哈。

IBM发布DS8000后,以DS8000为代表的高端存储系统市场占有率始终保持中国市场No.1的位置,并持续高速增长。DS8000系统连续8年市场份额保持第一。据IBM统计,截止2011年前,DS8000存储系统在中国地区装机客户超过1300台,用户遍布各行各业,主要客户包括国有四大银行、三大运营商等,此外众多商业银行、中小银行的关键业务应用也都运行在DS8000存储系统上。

IBM DS8000为啥取得如此辉煌的成绩,特别是在中国,主要是中国的信息化不够发达,中国人又比较懒,喜欢把服务器和存储一块采购,甚至把业务咨询都交给IBM,造成中国和海外市场的巨大反差。

但IBM DS8000确实有两把刷子。我把我对DS8870印象比较深的几点和大家分享一下。

· 小机双控架构,采用最新的P7 CPU和PCIE技术。

IBM DS8000采用了两台小型机做双控的类中端架构。DS8870 采用Power7处理器,两个小机之间的连接也从RIO-G变为PCIE。后端的磁盘框连接没有采用SAS,而是采用FC-AL技术,但IBM没有采用传统的仲裁环技术,而是采用交换式的FC-AL技术(我前面的帖子分析有误,这里给IBM平个反)。至于双控的切换时间,前面我也和大家分享过,大约是8-15s。还是不错的。

至于逻辑图,大家可以参考这个。DS8870支持一个Base框和3个扩展框。

· 性能第一。IBM去年发布了SPC-1和SPC-2,性能非常高。SPC-1略微超过了原来的市场第一HP 3PAR V800,拿到了第一的位置。

大家可以看到,时延也控制在了10ms之内,和3PAR一样,但性能略超过了3PAR。在高端存储的SPC-1成绩里面,目前还是第一。看来只能寄希望于HW HVS去打破这个记录了。

至于SPC-2的成绩,IBM也公布了。

看来也不错。我们家上网是4Mbps,而DS8870达到15,423MBPS,大家可以想象一下多大的带宽吞吐量。

· 硬盘全部支持FDE(全盘加密)。不管你要不要这个功能,硬盘都采用FDE硬盘。FDE硬盘每个硬盘都可以采用一个独立的密钥进行加密,对系统的性能没有影响。但FDE硬盘的成本肯定很高,其实很多用户掏了不该掏的钱。
· 软件特性丰富。DS8870采用RAID 1.5技术(我前面帖子讲过)支持自动分层存储和自动精简配置功能。QoS、快照、复制、加密等高端存储有的功能都有了,甚至对Windows 2012和VAAI都有支持。
· 复杂的CACHE管理算法。IBM的研究人员发明了很多Cache管理的算法用来提高各种应用场景下的命中率。IBM把Cache按照4K的粒度进行精细化管理,粒度很小。
· 采用DC-UPS直流供电,能效高,获得能源之星认证;
· 支持IPV6,获得IPV6 REDAY认证和USGV6认证。

但DS8870我看了一遍,也没有什么出色的地方,相比原来的DS8800,最大的区别就是性能提升。DS8870在DS8800发布2年后发布的,由于更新不多吧,因此IBM没有叫它DS8900,可能也是这个原因吧。

说说我对DS8870不满的地方吧。

· 不支持ISCSI,主机接口只有FC/FICON。客户的组网不方便,特别是远程复制,需有购买FC/IP转换设备,增加客户投资和组网复杂度
· 方案限制太多。DIF只支持大机上的Linux系统;很多性能联动方案(可以对应用进行感知),只支持AIX+DB2。

总的来说,IBM DS8870是新瓶装旧酒,没啥新内容。架构和软件特性都没有什么大变化。

我看完DS8870资料的感觉就是,如果我采用IBM小机+DB2数据库,DS8870是不错的选择,因为他们简直就是一个整体,和一体机感觉差不多。如果采用ORACLE数据库,或者X86平台,DS8870就没有太多的亮点了。

根据IDC的数据,今天我们来仔细看一下DS8000在2012年到2013年Q1的在中国区的表现。

一共5个季度,DS8000在中国区一共销售了711台。可以看到,主体出货是DS8800,但DS8870没有看到(也可能IDC放在DS8800里面了)。

从端口分布可以看到,大机环境销售占了1/3,Open systems还是占大头,占了2/3的份额。

从行业的分布看,金融、电信和公安是IBM的产粮地。制造业、保险、电力、交通、石油和医疗也有不俗表现。个人感觉,Snowden事件出来后,公安、能源等估计有采购国产设备的趋势。金融和电信可能会缓慢一些,但前几天金融圈的一位朋友在微信朋友圈了分享了一条信息,银监会正在讨论去IOE方案(IBMORACLEEMC),不知道消息是否属实。但由于目前没有任何国产存储支持大机,因此针对大行困难很大,估计可以学电力D5000项目,做两套系统并行,一套外商的,一套国产的,当出现问题有替代方案。

在各省势力分布方面,我们看到北京占据半壁江山。这个主要是金融和电信的集采政策造成,当然,很多的数据中心也在北京。但我们也看到,内蒙、河北、东三省和安徽这些不算特别发达的省份,IBM居然销售了那么多,甚至超过了很多发达省份。这个也说明这些省份可能由于专业人才缺乏,反而倾向采用IBM的整体解决方案,带动了DS8000的销售。发达的省份其实和国外一样,更加喜欢采用专业的存储设备,如EMC、HDS等。

前面的的分析讲过,由于IBM DS8000针对自己的产品做了很多定制化的东西,大机环境就不说了,就是在p系列小机+DB2的环境下,DS8000有很多针对性的特性:

  • DS8000的Cache算法可以和DB2联动。DB2需要什么样的Cache配合,DB2可以通知DS8000去实现;
  • DS8000的QoS可以和DB2联动。DB2某一个I/O需要什么优先级,可以修改存储预设的应用优先级。
  • ……

这些针对应用的联动特性,我相信是其他存储厂商无法支持的。因此,如果用户选择了DB2数据库,DS8000确实是一个省事的选择。幸好,DB2目前份额还不太高。

我们从Gartener的数据可以看到,Oracle是数据库市场的老大,占领将近一半的市场份额。而DB2大约占了1/5的市场份额。这个是其他高端存储厂商的万幸,如果DB2的市场地位如ORACLE目前这样,要想和DS8000竞争将更加困难。

传统的RAID 1.0如果改良后,变身为RAID 1.5来实现Tier和Thin功能。下面就以我理解的DS8870的RAID 1.5切西瓜原理为例,来帮助大家再次理解我的西瓜刀法,哈哈。

首先,DS8870按照一定的原则选择8块一样的磁盘(由于DS8870后端采用FC-AL,因此选择盘的时候最少要跨两个环路才能保证比较好的性能)组织一个Array site。注意,必须是8块盘。DS8870购买的时候,都是以16块盘为单位进行购买的,SSD支持以8块为单位购买。

这8块盘选择RAID级别后就组成了一个Array。这些RAID级别只能从下面的几种6种类型里面选择:

但是,还有很多的限制。比如SATA盘,只能支持RAID 6,当然,你可以做成RAID 10,但需要向IBM特别申请,RAID 5绝对是不允许的。原因大家都懂的,就是害怕可靠性问题。

大家可以看到,Array是有RAID属性的。每一个RAID Array组成一个Rank,IBM然后拿出从西瓜哥购买的西瓜刀,切成1GB(严格来说,是1GiB)的切片Extent。每个Extent包含数据和元数据区域。然后选择多个Rank组成Extent Pool。

如果你需要做Tier,那么你需要选择不同类型硬盘的Rank来组成Extent Pool。比如,你需要做3层分层存储,你需要选择的Rank必须包含有SSD的Rank,SAS的Rank和NL-SAS的Rank。从上面分析可以看到,DS8870的Tier的粒度是1GB。

最后一步,你从Extent Pool选择你需要的空间来组成LUN,然后分配给主机使用。这些LUN其实都在整个Pool都条带化了(striping),因此,不管Pool是否是Tier的Pool,性能都会提高,克服了传统RAID 1.0只能8块硬盘同时读写的缺陷,一个LUN也可以跨越几十块硬盘了。不过这里再次强调,一个RANK数据丢失了,整个POOL都完了。

但大家都知道,LINUX和UNIX主机的LVM卷管理软件也会做Striping,包括IBM自己的SVC也可以做Striping,因此,有可能存储做了,主机(或者SVC)再做一次Striping。这种现象我们称为双重条带现象。Double Striping可能会造成性能下降,下面这个示意图就是,两次条带,正好相当于不做条带,性能就会出现问题。大家以后在实施的时候要注意。

如果需要支持Thin LUN,本来IBM应该再从西瓜哥购买的一把小刀,把Extent再切成更小的块的。但估计是IBM看不起西瓜哥的小刀吧,干脆不切了。直接按照1GB Extent的粒度来做分配(但好像IBM V7000就切成32K粒度,不知道DS8000以后是否要改?)这个谷粒 粒度,我感觉太大了,哈哈,一顿饭吃一几颗就饱了。这种支持Thin的卷IBM叫ESE(extent space efficient volumes)。

这个1GB的粒度,做Thin的时候虽然有点浪费,但IBM财大气粗,无所谓,每次多分一点空间,省事。但做快照是,这个粒度成问题了。你想象一下,数据库的I/O典型是8K,一个8K的I/O下来,快照你需要分配1GB的空间,空间浪费好办,但COW的原来大家都懂,整个1GB的数据块的数据你都需要COPY到快照资源池里。这个搬运的数据量太大了,对系统的性能影响太大。怎么办?IBM没有办法,只能再找西瓜哥购买一把小刀,把Extent切成64K的Track,这样的卷叫TSE(track space efficient volumes),专门给快照使用。前面我们讲到,TSE不能建立在SATA的RANK上,主要考虑性能问题吧。

好,最后我们再看一下DS8870的逻辑图,大家按照箭头再回顾一下IBM的西瓜刀法。

不过,别忘啦,RAID 1.5虽然解决了Tier和Thin的问题,但Extent Pool里面任何一个RAID Array坏了,这个Pool的数据都没有了。这也容易理解IBM让SATA盘必须用RAID 6的原因了。

好了,希望今天以后,很多人都说,哦,我也清楚什么是RAID 1.5,什么是LUN虚拟化了,我就觉得特别有成就感。

希望大家积极反馈你的意见和建议,微信扫描如下二维码,关注微信公众号“高端存储知识”,与作者微信互动。