2、存储下一个十年
书接上文。从存储产品形态变化可以看得出来,在硬件形态上,高端存储传统架构崩塌,转为开放式架构,那么存储与服务器架构已经没有本质区别,这一步的变化已经奠定了外置存储系统体系走向崩塌的基础。一个事物总是要向前发展,传统双控存储系统在大架构体系上已经没有可以拿得出手的搞头了,所以不得不向Scale-Out架构来发展,就像CPU多核化一样,上百核的CPU都已经可以商用了,那么对于存储系统来说,Scale-Out的下一步又会是什么呢?在没有革命性新技术出来之前,我认为外置存储也就只能这样了,无非就是硬件规格、接口速率的提升过程,激进一些可能直接以磁盘为单位来做Scale-Out,让控制器节点数达到系统内的硬盘数量级,而每个控制器节点规格可以降低,但是这始终还是Scale-Out。
那么我到底想说什么呢?凭什么我认为外置存储系统后续日子会越来越难过?这还得从最近的两个东西说起,一个是固态存储介质,另一个,则是炒得火热的云。
2.1 存储与服务器同质化
上一代存储产品在硬件上还是颇具特色的,尤其是以EMC Symmetrix和HDS USP为代表的高端平台,大背板上安插CPU板、内存板、IO板等。而且上一代高端普遍使用PowerPC处理器。上一代中端产品,到处可觅见ASIC的身影,比如IBM DS4000/DS5000,HDS AMS2000等。而到了这一代,Intel处理器x86硬件平台似乎已经统治了从高端到中端甚至中低端的存储阵列,内部架构与普通x86 PC服务器无异,只是外观以及其他一些专门为硬盘槽位以及维护性考虑的细节上略有不同。只有低端一些产品依然使用ASIC来降低成本。
外置存储发展到这个阶段,已经在硬件上失去了它独立发展的“借口”。其次,在软件上,外置存储的借口也越来越脆弱。随着各种卷管理软件,比如传统的LVM、CLVM甚至GLVM以及Windows平台下的动态卷越做越强,还有Symantec从Veritas继承下来的驰骋多年依然宝刀未老的VxVM以及Storage Foundation平台,再加上号称“The last word in filesystem”的ZFS以及其变种Btrfs,甚至原Sun公司的统一的存储软件ComStar等平台,这些角色的发展对于传统外置存储的软件层来讲,都是威胁。比如ZFS,容错保护、数据校验纠错、快照、Thin、Dedup、Clone、Replication等外置存储用来增值的特性,它也都已经集成了,只要将其架设到JBOD或者服务器自带存储介质上即可形成一个差不多的存储系统,既可以用作自身使用,也可以通过SCSI Target向外部提供存储空间成为一个独立的存储设备。
2.2 固态存储介质终将一统
固态存储介质的好处就不必多讲了,想必大家都很了解。固态存储介质迟早会取代机械磁盘,这也是大势所趋,虽然短期内不太可能,但是不排除若干年之后不会发生。固态存储介质的可靠性、容量、存储密度以及成本均会越来越变得让人容易接受。机械磁盘届时已经没有必要存在,而磁带可能相对于机械磁盘稍晚些一样会被固态存储介质所替代。Flash硅片也有不同的规格等级,使用低规格大容量的Flash阵列完全可以提供比传统物理带库或者VTL更划算的备份介质。这样,从RAM到归档设备一条路下来就不会有任何机械部件存在,而且性能和成本可以是平滑下降的。
我曾经在某客户机房看到过某公司高端存储产品,占用了整整一个机柜的空间,风扇呼呼的吹着,噪音让人头疼,结果上面只插了几十块甚至十几块磁盘。这其中其他原因暂且不提,你懂的。咱们抛开其他因素,从任何方面讲,这都属于投资浪费。这几十块机械硬盘在高端存储上所能提供的性能,可能只需要几块SSD就可以满足了。至于容量方面,目前很多场景容量都是过剩的,由于机械盘无法提供太高IOPS,不得不用几十块甚至上百或者数百上千块磁盘来堆出所需要的性能,然而磁盘容量的增长速度远比性能增长速度快,那么数百块600GB的磁盘,就可以达到上百TB 的空间,而这些空间绝大多数可能都被浪费了,只因为单个机械盘性能不够。机械盘拿数量来换性能,容量过剩。;而SSD则是性能过剩而容量稍小而且价格太高。但是容量和寿命问题可以随着技术发展不断得到解决,价格也会不断降低,而且如果从耗电、占地等个方面综合判断,SSD的$/IOPS显然是划算的。
2.2.1 历史车轮不可阻挡
外置存储控制器的前世形态其实是插在服务器里面的Raid卡,后来为何会扩充出去独立成为“存储系统”?多种因素,性能和空间问题为主要,另外一种因素是用于多主机共享存储,后面这个因素目前看来,有点鸡肋,到底有多少主机需要与其他主机共享空间?他们只是在“共享同一个设备”,真正需要共享空间的有两种情况,一种是特殊应用,比如视频领域、Web Server集群、HPC集群等等,而这些场景毕竟有限;其次则是最近几年Thin Provision炒作起来之后,确实可以做到全局空间动态分配回收,但是又有多少人真正用到?从这一点上看,这个因素确实是个鸡肋,不会阻止底层技术车轮发展导致的上层形态的变革。所以,共享同一个设备,或者共享同一个空间,只是为技术的发展所创造的一个噱头。而我相信当存储形态重新轮回回来之后,又会有新噱头被创造出来。
所谓“轮回回来”具体是指什么呢?由于固态存储介质成本的不断下降,性能和容量的不断提升,体积的不断降低,在一台服务器中集成高密度、大容量、超高性能的的Flash介质无疑还是最方便的存储形态。想想看,你不再需要购买什么FC HBA、SAS HBA、Infiniband HBA,也不需要理会什么iSCSI、FC、SAS协议,部署时也不需要连接一大批线缆,更不需要购置什么所谓“存储交换机”了。所以,导致当年Raid卡进化为外置控制器的第一个问题,也就是服务器空间、容量和性能的问题,就这么轻易被Flash固态介质解决了,非常彻底,决不拖泥带水。至于第二个问题,也就是数据共享访问的问题,上文也说了,场景有限,有点鸡肋。但是如果确实需要共享访问了怎么办呢?也好办,外部网路带宽是飞速发展的,多个独立服务器节点完全可以通过外部网络来将各自的存储介质通过某种分布式卷管理系统或者分布式文件系统联合起来形成一个大共享存储池,这些技术已经比较成熟,尤其是云架构炒作起来之后,这些在技术上根本不是问题。所谓轮回,就是指外置存储控制器最终在出来溜达了一圈之后,遇上了Flash挡道,最终又不得不乖乖投胎为其前世Raid卡,回服务器机箱里呆着,这就是历史的规律。
最近也遇到了几个企业IT管理员问了一些问题,大致是“我到底为什么要使用SAN”,如果换了几年前,我或许直接会这么回答:“SAN可以消除孤岛,数据共享”等等等等,但是现在,我不会再拿着这些当初被忽悠的词句去误导别人了,至少回答之前要问清楚他目前的业务类型、数据量以及后续需求等。其中有一个人我确实没有推荐其使用SAN,因为他的业务完全本地盘就已经满足需求,况且还是使用PC服务器,如果使用小机等扩展性更强的服务器,一台机器上完全可以扩充到几十甚至上百块硬盘,对于一般通常业务来讲,有什么理由去拉根线连到外面存储上取数据呢?
有人会问,数据如果不集中存放的话,备份怎么办呢?还可以集中备份和LAN-Free么?这个问题,如果熟知现在的备份数据流就根本无需担心。当前来讲,就算是所谓“LAN-Free”也一样需要数据先从SAN阵列中读出到主机,然后再从主机写到备份介质。笔者另一篇文章《乱七八糟的“Free”》中对这些名词有详细的解释。而对于DAS模式下的备份,数据只是从每个服务器本地盘读出来然后写到备份介质中,与SAN备份没有本质区别,甚至速度可以比SAN备份更快。至于所谓“集中备份”,除非使用NDMP设备到设备直接备份模式,那么这个“集中备份”也没有意义,现在数据先从主机读出再写到备份介质依然是主流的备份方式,这与DAS下的备份数据流没有区别。
在来看看DAS模式下的容灾。在SAN模式下,直接通过两地的阵列做集中的数据远程复制与接收,确实比DAS模式下每个节点单独做复制要方便的多,这一点确实算是一个劣势。但是回头想想,如果这些节点是处于云中的,由两个云之间来做容灾,那么又会被统一起来。而且目前来讲仍有非常大比例的系统采用的是基于应用层的数据复制,而不是底层存储层,比如Oracle DataGuard、DB2的HADR等等,这类复制能够保证数据一致性并且可回放,底层存储有时候并不能完全信任,10次有2次会产生应用无法启动的数据不一致。
另外,SAN的另一个噱头,即“集中管理”。如果整个数据中心只有少数几台集中存储设备,那管理起来确实比较方便,尤其是对一个尚没有完善的自动化运维体系的数据中心来讲。在配置存储空间的时候,如果有一套比较好的管理软件,那么在一个全DAS环境中配置起来也不见得要比配置集中存储来得复杂。但对于后期维护操作,全DAS存储环境确实会增加不少复杂度,这就需要一套完善的自动化运维工具和体系来应对这个问题。
至于各种外置存储所提供的快照、重删、Thin等数据管理特性,随着芯片性能不断提升,Raid卡上直接集成这些功能,也将不再是难事。
总之,上述的种种因素,最终都会将目前的传统外置存储系统逼上绝路。