本文试图对当前多个存储子层里的多项技术做简要分析来获知它们对传统体系的影响。
存储介质—闪存和SMR磁盘
机械磁盘作为在线主存储介质的地位,可以说几十年来没有动摇,是各种存储技术里最稳定的一个了。然而闪存的出现,将要改变的不仅是存储介质本身,更将会颠覆整个的存储生态链。
闪存作为新一代存储介质,相比于机械磁盘的优点不必多说。一个更加值得思考的问题是,由于闪存并不像机械盘一样需要高精尖的技术,其入门门槛较低,尤其是闪存控制器的设计生产,目前可以说是遍地开花,国内已经有多家自主产权的闪存控制器及外围产品。
闪存对传统的下游存储厂商的影响也将会是巨大的。首先,基于机械磁盘介质所积累成熟的传统架构基础面临崩塌,包括硬件设计比如尺寸、散热、承重和空间布局等;也包括软件设计比如数据布局、IO性能优化和故障预测及恢复等。这也是为何仅仅把传统存储系统中的机械盘替换为SSD根本无法发挥出SSD性能的原因。其次,传统存储高大上的形象也会被闪存彻底摧毁,原本松耦合的各种大部件搭配起来的"巨型机器人"将变得非常小巧。最极端的情况甚至可以直接用一块PCIE Flash卡替代,连影子都消失在了服务器机箱外面。磁盘存储将退居二线,成为真正的备份用二线存储,使用步骤或许会是"开机备份关机"。磁盘存储将会成为下一代人眼里已彻底淘汰的产品,就像卡带机一样。再次,拖累传统磁盘存储的另一个包袱,就是那些华而不实的软件功能,包括自动精简配置、重删、快照、分层/缓存和复制等。这些软件功能除了其中几个较为常用之外,其他可以说是鸡肋,但为了市场竞争又不能没有,因而陷入恶性循环。上述软件功能中的每一项,毫不客气地说,都是影响性能的。分层和缓存实际上是增加了相对性能,而降低了绝对性能。除了快照、分层和远程复制之外,其他软件功能多数时候都不为人所用。
用户似乎越来越追求傻快的存储。这一点在面对"软件定义"概念时更有说服力了,硬的更硬,软的更软。这更进一步拉低了存储系统的门槛,抛开这些包袱,利用闪存,越来越多的全闪存存储厂商出现了,而这些全闪存存储为何基本都没有出自传统一线存储厂商,原因也显而易见了。
磁存储领域的一项新技术是SMR(叠瓦式磁记录),这项技术提升了存储密度,却不能保证随机写的性能,这一点从原理上讲更类似于固态介质的Page与Block之间的尴尬。希捷等磁存储厂商也正在研究是否要在SMR磁盘内实现类似Flash的管理方式。SMR磁盘面向一写多读场景,适用于大数据、备份等特定领域。下一步还有热辅助磁记录技术,但是迟迟未能商用。看来磁存储在性能瓶颈之后,可商用的容量瓶颈也即将到达,因此磁存储淡出舞台是大势所趋。
底层框架—芯片、底软和通道
闪存的出现,会影响生态链上所有事物,这其中也包括了最底层的芯片、底层软件和数据通道。
芯片要有足够强的处理能力来承载起闪存强悍的IOPS性能,包括Flash控制芯片、外围协议控制芯片(SAS、 FC、以太网),以及主机CPU。芯片的提速手段有三种,第一是提高内部数据带宽,增加器件之间的通道数量和带宽,第二是提升器件频率,第三是将各个子器件进行拆分,增加并行度,在相同电路周期内可并发执行更多的指令。然而,没有免费的午餐,上述任何一个动作,要么会增加芯片的功耗,要么会增加面积,这些都是弊端。目前一线厂商PMC的主流存储控制芯片实际功耗都控制在15W上下,即便是最新的SAS 12Gb 主控芯片,由于制造工艺的提升,功耗反而比6Gb产品有所降低。到目前为止,主流存储芯片都是基于MIPS核心+外围加速电路,MIPS是被公认的RISC通用处理器领域最经典的代表,然而ARM的猛攻也渗透到了存储芯片领域,在低端市场占据了席位,包括4端口SATA控制器、低端SoC等等,ARM和MIPS也会在存储芯片领域持久对峙下去。Intel则由于功耗问题,颇有绑死x86平台走到底的趋势,移动终端失策,卖掉电视部门,靠Atom在大型数据中心领域与ARM抗衡,不知道格局能维持多久。
底层软件方面也是制约存储性能提升的一大屏障。拿Linux为例,Block层、SCSI中间层这两大制约IO性能发挥的重量级软件层,在机械盘时代发挥了重要作用,然而在闪存时代,已变成了严重拖累性能的罪魁祸首。
繁冗的扫描机制、低效的互斥队列和捉襟见肘的队列数量、陈旧不堪的SCSI协议,这些对闪存来讲都是头疼的事情,目前闪存产品不得不选择越过SCSI层而直接注册到Block层,然而却丢失了SCSI层提供的兼容性优势,导致各家在Block下层的协议实现不统一,增加了开发成本和管理开销。
协议接口方面,基于SCSI体系衍生而来的势力有三股,一个是FC,另一个是SAS,还有一个是iSCSI纯软件方案。Linux开源社区最近也在研究如何优化SCSI层的问题,看来SCSI是去是留已经是个问题了。FC通道前端目前正在逐渐被万兆以太网残食,而后端则在几年前就已经被SAS全盘端掉。SAS之所以没有端掉FC前端有两个原因,其一是因为FC前端体系并非只存在于存储设备内部,还涉及到交换机,其存量市场并不是仅仅通过替代掉存储设备的前端通道卡就可以占领的;其二,SAS在光传输方面略显迟钝,究其原因在于SAS光协议对于链路协商方面的一项技术实现争议了良久,直到很晚才确定。FC也必将淡出舞台。然而,其接替者并非只有以太网或者SAS。还有另外一项更前瞻的通道技术,那就是PCIE。目前我们所熟知的以太网、FC、 SAS、Infiniband等通道协议,在主机层面无一不通过PCIE接入系统IO总线。之前的"远距离"传输概念,正在变得模糊,多"远"算是"远",如果PCIE能够"远"到一定距离,还要以太网作甚?这个问题问得好。然而,PCIE 并不是万能的,PCIE目前缺失很多交换网络特性,毕竟之前一直是在系统总线领域,出了总线,就得长距离交换和路由,这方面就得靠以太网和TCP/IP了。然而,同样的理论,在目前和将来的数据中心领域可不见得能套用。
目前的数据中心有苗头正在朝着紧耦合方向发展,也就是之前一个机架内的服务器之间是松耦合的,现在要变得以机架为单位,机架内部紧耦合,机架外部松耦合,此时PCIE就有用武之地了,机架内部完全基于PCIE矩阵。这个前沿方向目前Intel以及PMC-Sierra都有研究并且有了DEMO。当然,对SAS和SATA的兼容一定是要考虑的,SFF8639接口标准其实是一个三模式(Tri-mode)的接口,把SATA、SAS和PCIE打包到一起,后端则根据前端接入设备类型路由到SAS Expander/Controller或者PCIE Switch上去。目前看来这个接口已成定局。
数据结构—Raid2.0、ErasureCode、分布式及开源
硬件平台之上的软件,也在风起云涌的变化着。传统存储领域可炒作的概念已经没有了,然而创新又迟迟未见。Raid2.0被几家厂商在炒作,但终归也是RaidEE技术的升级翻版。另外, Raid2.0与现在多数技术一样,只是提升了相对性能,而没有提升绝对性能,也就是当磁盘达到一定数量的时候,这项技术才会显示出优势,但是依然赶不上相等数量的磁盘在传统模式下的绝对性能。Raid2.0对数据的处理,已经不亚于一个文件系统了,过多的数据碎片影响了绝对性能,但是大量的磁盘堆砌又可以掩盖这一事实。其所获得的唯一一个绝对好处是重构时间的大幅降低,然而却牺牲了平时的绝对性能。
Erasure Code技术也不是什么新鲜事。Raid6以及RaidDP技术很早就出现了,那时候人们已经发明了可以容忍更多磁盘同时损坏的技术,只不过受限于随机写性能而没有将其商用。但是时过境迁,大数据时代读多写少,再加上数据量大,RaidDP(DoubleParity)、RaidTP(TripleParity)甚至允许更多磁盘同时损坏的算法,就又冒出头来了。
Scale-Out是传统存储领域对"分布式"的一个包装词,然而传统存储理解的分布式和互联网及开源领域所认识的分布式骨子里还是不同的。传统存储厂商的分布式不是廉价的分布式,它们的分布式完全是为了解决Scale-Up模式的天花板;而互联网和开源的分布式骨子里为的就是廉价。表现形态也不同,前者虽然实质上也是x86服务器+分布式软件管理层,但是依然略显高大上。
开源的风潮体现在最近的一个新概念里,那就是所谓"软件定义"了。软件定义让二三线厂商师出有名,直接挑战传统一线大厂的权威地位,这一点从近期一些二三线厂商的直截了当的露骨演讲即可知道,矛头直指一线垄断大厂,似乎在当头棒喝"凭什么你们就是高大上"。
用户体验—接口、访问方式及展现
在对存储的访问接口方面,新的访问接口近几年在互联网的带动下也爆发式增长。传统领域一直在鼓吹所谓"统一存储"鼓吹了近十多年,早就炒烂了。对象、key-value、文件、块是目前来讲主流的4种访问形式,其中文件又包含多种子类型比如NFS、CIFS以及各种分布式文件系统访问协议,块又分为FC、SAS、iSCSI。不管访问形式如何,它们本质都是一样的,都是对一串字节的请求和回复,只不过这串字节在不同应用场景下的归类不同罢了。
在用户体验方面,传统存储做的较差。但是随着互联网风潮来袭,重视用户体验、应用感知、QoS等更加接近用户层面的功能越来越受到重视。笔者之前所设计的存储软件套件SmartX Insight就是从用户体验方面来入手,增强存储系统在整个系统内的"存在感",改变传统存储一副道貌岸然的样子。我想这样更有利于黏住用户,从而扩大及拓展存储系统的生存空间和时间。
闪存与数据中心—SATA/PCIE及应用场景
目前来看,数据中心对Flash的渴求主要集中在几个固定的应用场景,前端比如 CDN,ISP的带宽是非常贵的,必须充分利用,所以硬盘必须不是瓶颈。后端则是各级缓存场景,包括各类分布式数据库系统、分布式文件系统的前端基本上都是放了一级或者两级甚至更多级的缓存,RAM毕竟还是很贵而且容量有限,主要用于第一级缓存直接应对前端的压力,Flash则可趁机占领一部分后置缓存空间。
数据中心对SATA接口SSD的应用占据了总体形态的大概90%,剩下的10%主要是PCIE接口的Flash,前者基本上被Intel独占,后者则是花开几朵,其中也不乏国内厂商。
PCIE Flash是大势所趋,尤其是支持NVMe标准的设备。但是目前的形态却不被看好,别看当下多家在此领域角逐。当下形态存在的问题是维护困难、版型太大,这些均不符合数据中心对硬件资源的要求—一个是维护方便,另一个就是资源性能和容量粒度要尽可能低以便于灵活拼搭。而基于SFF8639接口标准的设备相信马上就会遍地开花。综上所述,各种新技术对存储系统的方方面面产生了很大影响,如今IT界概念频出,五色缤纷,众多的存储厂商们唯有分析历史、分析当前,才能看清未来。