冬瓜头原创,转载请注明!
NetApp最近推出了FAS3200和FAS6200新一代产品。这一代产品相对上一代FAS3100以及FAS6000有什么区别?发生变化的形态背后有何隐情?NetApp为何迟迟不推出真正Scale-Out的集群或者分布式NAS?NetApp在固态存储方面的行为为何如此另类?本文将会解开一个个谜团。
怪诞之一:昙花一现
FAS3100系列才出来没多久,就被FAS3200替了。我记得那时候,其他厂商同档的存储系统基本都已经用了DDR2 667的内存以及PCI-E的总线,但是那时FAS3000系列依然使用PCI-X总线以及DDR2 400内存。终于在09年FAS3100升级到了DDR2 667以及PCI-E总线,同时硬件也做了改动,把NVRAM集成到主板,并且使用背板来连接两边NVRAM,消除了物理线缆。但是好像为时已晚,在NetApp从内存和总线方面追赶上别人之后,PCIE2.0、SAS2.0、8G FC时代都到来了,所以NetApp决定痛改前非,一次到位,推出FASx200,用新CPU、新总线、新接口、新硬件打造新一代硬件平台,FAS3100只能是昙花一现了。对此NetApp一定非常难受,阵痛隐隐。
怪诞之二:形态回退,接口转变
FAS3100是把NVRAM集成到了主板,并且双控各自的NVRAM之间的连线已经被固化到背板中去了,通过这种手段降低接触不良等造成的故障。但是FASx200系列好像又回来了,还是通过外置接口和连线来连接两边的NVRAM,不过这次不用Infiniband了,而就用最普通的10GbE,看来NetApp这次也随波逐流了。之前用10Gb的Infiniband来作为两边NVRAM同步的链路,看好的就是其低延迟,Infiniband我印象中应该是每Frame. 512Bytes,具体不记得了,总之比一般FC与以太网的帧要短,这样,在传输小message的时候可以获得更低的延迟,有利于NVRAM之间的纤细日志的同步,但是我一直也想不明白的一件事,帧短了,再传大数据块时候的开销也就增加了,被更多的EOF,SOF等占用带宽,这样岂不是降低了效率么?所以Infiniband有用40Gb版本的,比如Isilon等,用高速率来弥补大数据块时的低效率。那么对于FAS,是否有必要用Infiniband,从这次NetApp的策略来看,不管是从技术角度还是产品、商务角度,用个10Gb的Infiniband相比以太网来讲确实有点得不偿失。
但是为何他又回到外置连线形态了呢?我就很纳闷,怎么回事?一会东一会西的。但是仔细一看才知道个中辛酸啊。欲知详情,往下看。
怪诞之三:大胆创新——IO扩展模块的出现
IO扩展模块,这东西说实话,在中端存储里面还没有哪个厂商这么搞,基本上都是“IO扩展卡”的方式,而不是一整个模块。在高端存储里则屡见不鲜,比如IBM的DS8000里的IO扩展柜。而如今NetApp在中端里用了IO扩展模块,我就在想,是创新,还是迫不得已?但是仔细想来,确实没有什么迫不得已的地方,为什么呢?我们来看看这两张图。
大家可以发现,NetApp这次在硬件方面做了很大的创新,即可以在同一个柜子中插入两个控制器,或者插入一个控制器和一个IO扩展模块,两种模式任选一种。而且我估计,如果初始购置时选择了一柜双控制器的模式,后期如果想扩充,那么可以做到不停业务扩充,再上一个柜子,移出其中一个控制器,插入IO扩展模块,不过这个动作也是非常繁琐和复杂的了。这样做可以极大降低初始购置成本,不用预留任何空槽位。但是这样做也是有代价的,不言而喻,双控制器可能会不在同一个柜子中,那么NVRAM背板连接模式就不可能了。可灵活扩展的IO模块与NVRAM背板连接,要哪个?在FASx200这一代产品,NetApp不得不将双控的NVRAM再次用外接连线的方式来连接。不过这里澄清一下,如果采用一柜双控的模式,也就是NetApp所谓的“CC”模式,即两个Controller,那么可以不用在外面连线,背板上自动导通连线,而外面的接口自动被屏蔽,但是如果采用CI模式,即Controller-IO扩展模块模式,那么双控之间就必须从外置接口连接了。
这是不是又很难受呢?可以想象到NetApp的相关设计人员当初做出这个决定之后,他们的产品团队、市场团队、销售团队,是否一定也经历了阵痛去接受这个事实?如何向用户和市场去交代?不过说实话,可扩展的IO模块,这确实是个巨大创新了。在硬件方面创新,这对于一个软件公司来讲是很不容易的,不知道本次产品是否依然由Xyratex供货,硬件设计究竟是由NetApp主导还是Xyratex主导,这个我无从考证,但是不管怎么样,不容易!
怪诞之四:USB接口
包括IBM的Storwize V7000以及NetApp这次的FASx200系列,都留了USB口。理论上讲,所有厂商基本上都会留有后门来管理整个存储系统,这些特殊的接口和命令,用户不会知道。但是管理口也可以开后门,没必要用USB,我推测USB口被引入存储系统,可能与x86以及Linux Based操作系统在阵列系统中越来越普及有关,有一个USB,后续对OS的升级等会方便很多,根据资料显示,这次FASx200系列确实可以从外置USB驱动器来启动,用于紧急修复损坏的OS。其内部其实也是用一块USB接口的U盘来存放OS内核影像的。
怪诞之五:SSD和PAM卡,疯狂的Cache帝!
很早的时候NetApp就对SSD抱有疑虑,我记得当时其他厂商已经在着手开发动态数据分级了,而NetApp却犹豫的很,最终推出一块叫做Performance Acceleration Module(PAM)的PCI-E接口卡,专用于FAS3100系列。一开始其上是插DDR SDRAM内存条的。WAFL虽然是个很有特色的文件系统,但是其所存在的问题也是不可小视的,也就是经典的Sequential Read After Random Write的问题,也就是本来逻辑上连续的块,被WAFL处理之后底层却变得不连续了,这样在连续地址读IO的情况下,底层却表现为随机IO的行为,从而影响性能。PAM卡的推出可能也有这方面原因。
那么究竟为何NetApp不使用SSD来解决性能问题,或者自己也开发自动分级存储模块呢?我猜测,这与其WAFL的原理有很大关系。SSD这东西,所有人看到它的表现,一定都是竖起大拇指的,但是我估摸着唯独NetApp对SSD具有那么一点点排斥心理,为何呢?
首先,SSD的出现,让WAFL的那一套写加速算法颜面尽失,包括全重定向写、尽力整条写等针对机械磁盘所作的大量优化,随着SSD的出现,一切都解决了,那么WAFL这一套势必在SSD面前就显得白费了,这一定让NetApp很难受的,其实NetApp一直都难受,即便是使用机械盘,WAFL依然面临着Sequential Read After Random Write(SRARW)问题,早就在研究新架构的WAFL了,比如知否可以支持Raid5而不是Raid4,是否可以不再重定向写了等等。但是对于WAFL这样一个复杂而庞大的架构来讲,牵一发会动全身,不是那么好改革的了。
第二,WAFL的重定向写措施,会迅速耗尽SSD上的空余空间,懂点SSD的人都知道,SSD自己内部会去记录哪些page存有数据,哪些没有,这么做是为了损耗平衡算法,SSD内部也会有大量的重定向写操作,其做法与WAFL类似,但是WAFL这么做是为了方便的快照与整条写,SSD这么做纯粹是为了损耗平衡,不管怎么样,这两者是重复和部分冲突了,另外,WAFL不断的写到空余位置,那么SSD上的“曾经写过多少”这个高水位线就会迅速达到顶峰,SSD内部空余空间迅速降低到最低值,严重影响SSD的性能,而WAFL的作用原理又不可能实时的将SSD中的“垃圾”块回收回来,因为WAFL从本质上讲可以认为是无时无刻不在产生垃圾(重定向写之后,以前的块便是空闲块了,但是SSD却无法感知文件系统层面的空闲块,依然认为是有用块),它根本来不及回收的,况且WAFL内部的两层FS之间已经为了忙活着回收空间而做了大量复杂流程了。如果说SSD让WAFL的优化变得价值全无,这一点还可以容忍,但是如果WAFL想用SSD而眼看着效果不好,那么就真的没治了。
第三,我们退一步讲,就算WAFL会很快耗尽SSD的空余空间到最低值(也就是SSD厂商隐藏的那部分为了保证性能而预留的空余空间,比如100GB的SSD其实是有128GB物理空间的),效果再不好,但是也比机械硬盘要快的,所以NetApp只能退而求其次将就着上SSD了。还有最重要的一点,别忘了,SSD目前的容量还太小,如果上SSD,会有两种用法,一种就是直接将SSD当做普通盘来用,做Raid,做Aggregate,做WAFL,然后做Volume,做Lun或者目录的Exports。但是这种做法适用的场景很少,比如一部分小容量的数据却要求极高的访问速度,那么没有问题,这种做法可以满足。但是如果遇到短尾型应用的数据访问场景,大量的数据却只有一部分为热点,那么此时你将所有数据都放到SSD上,显然是得不偿失,此时自然就需要有一种动态的细粒度的热点数据分级解决方案了,这也是目前几乎所有存储厂商都在搞的技术,而且主流厂商也都推出了各自的产品了。而我们回来看NetApp,她何尝不想推出自己的动态分级方案?她很难受,为什么呢?WAFL如果是老虎,那么NetApp可以说已经骑虎难下了。想在WAFL上引入动态分级子模块,不是那么容易的。动态分级子模块包含至少两个亚模块,一个是热点数据监控、统计模块,另一个是数据迁移模块。监控和统计子模块,可以作为一个旁路模块存在,不会对现有的任何FS架构产生太大影响,这个WAFL做起来没有问题,但是数据迁移亚模块,这对WAFL来讲,又很难受了,WAFL不按常理出牌,与其他传统FS不同,总是去重定向写,改一改就动全身,所以从技术上讲,实现动态分级还是太费劲,风险也很大,需要测试很长时间,所以我推测这也是NetApp迟迟没有推出动态分级的可能原因之一吧。
所以我估计,NetApp一开始就定下了基调,SSD目前来讲就作为大缓存的角色而存在。可以看到本次FASx200系列,最高规格的FAS6280已经可以使用8TB FLASH的PAM卡了,当然,需要插多块PAM卡来堆叠成这么高的容量,而且两个控制器上的PAM卡规格必须对称,成双成对出现,而不能够只插一组卡让全局使用。
但是后续如果NetApp真的推出了动态分级功能,那么势必等于抽了自己一嘴巴。除非有很好的说辞,至于说辞,编造起来比技术要容易的多了,这个我们就不必担心了。但是总归还是很难受的。在今年年初,NetApp的Tom Georgens提出“分级存储终将走向死亡”的论断,我认为,这句话绝对是正确的,不过时间是个问题,当SSD成本不断降低,技术不断提高,容量逐渐变大之后,这种过渡的动态分层肯定走向死亡,所以这句话是有退路的,就得看你怎么理解了。但是短期来看,分层是有必要的。PAM卡只对读加速,而不对写加速。其实缓存本身就是一种动态分层,所以这个论断显然带有强烈的主观色彩了。
怪诞之六:FlexShare与FlexCache的推广
2年之前这两个技术还都处于潜伏期,如今被NetApp推到水面高调示人了。同样,还有Multistor,为了应对云时代,这些之前似乎无关紧要的功能,如今却变得很有噱头。FlexShare之前基本没人用,它属于一个QoS模块,可以设定特定的资源在访问的时候能获取多大的优先级,在大规模云基础架构中,QoS显得颇为重要。FlexCache则是一种类似CDN的远程访问加速解决方案,这在一些IPTV或者视频编辑领域颇有作用。而MultiStor,则属于一种存储虚拟化的范畴,这个虚拟化不是指虚拟化其他厂商的存储空间,而是将一台物理设备虚拟成多台逻辑设备,类似虚拟机,这在存储系统中比较少见,尤其是中端存储,就更少见了,据我了解NetApp是第一家在中端存储实现这种虚拟化功能的厂商。这个功能被包装为更被云所认可的名词,也就是“Secure multi-tenancy”,安全多租户。这种虚拟化正是云梭需要的,而且被加入了“安全”二字,也更能往“云安全”上靠,噱头十足!所以说,这一点并不算怪诞,应该是见怪不怪了,其他厂商也都在这么搞噱头。
怪诞之七:NetApp的集群NAS呢?
Ibrix、3PAR、Isilon、Compellent等这些Scale-out架构的存储系统,该收的都被收了。NetApp也收过,他很早就收购的Spinaker,是一家做Single Namespace的文件系统的厂商,基于Spinaker而搞出来的NetApp GX系列,一直不给力。究其原因,很大程度上是因为GX只是一个Single Path Image模式的架构,类似于微软的DFS,将多个独立文件系统,从路径上加一次虚拟,仅此而已,多个文件系统(控制器机头)之间依然采用松耦合方式。他没有从骨子里表现为一个Single Filesystem Image的集群或者分布式文件系统,市场认同度不高。就WAFL的目前的架构来看,想做成骨子里的集群或者分布式文件系统,不是不可能,NetApp的技术还是很强的,但是需要伤筋动骨,兴师动众,需要革掉旧东西,一定会有阵痛。目前来讲,NetApp可能尚未考虑好究竟要怎么做。新推出的Ontap8.0操作系统,我认为基本上没有太大的变动。这一切都显示了,NetApp正在荆棘中痛苦的挣扎着、创新着前进。
综述——
NetApp的软件很有特色,这次连硬件也能玩出个花色来。这一点NetApp确实很具有创新思想。作为NAS存储的开山鼻祖,经历了20年的NetApp,一直在引领NAS潮流,包括众多独特的细节功能以及它的基于WAFL之上的统一存储的概念。但是时代在变,潮流在变。就拿统一存储来说,这个潮流前几年确实一直被推崇,但是随着云的出现,统一不一定非要在存储控制器中实现了,云上层的资源管理完全可以统一,底层存储在云中能折腾起的浪花会越来越小,离用户越来越远,最后会变成一片平静的海面。而在硬件规格大换代的潮流中,NetApp前期没能跟得上,这次在FASx200中终于随波逐流了,但是可喜的一点是在硬件形态方面依然做了创新。而在固态存储与动态分级潮流面前,NetApp显然已经落后了至少2年了,其PAM卡这个大缓存还有多少生命力,不好预测。在这个变革的时代,WAFL这个存在了20年的文件系统,是否也应该思变了呢?现在不变,更待何时,否则就只能在不断的追赶当中逐渐退去。
就在不久前,NetApp决定大力拓展中国市场,欲将中国市场的销售额超过日本,成为亚太区第一。我对此也产生了一些联想,国内的经济发展导致国内存储市场逐年被挖掘,而NetApp假设就算已经无法引领潮流,那么至少在国内NAS市场还是能有很大作为的。后续NetApp对中国市场会有什么动作,会加大宣传力度么,会高调示人么?让我们拭目以待吧。
2
1