收到Peter Ye(叶毓睿)为本书写序的邀请时,惊喜压倒了其他感受。大约一年多以来,我们时常就软件定义存储这个话题进行交流,而Peter从开通公众号着重讨论软件定义存储,到一本书的内容就绪,只用了不到一年的时间,其中体现出的专注与效率,令我深感敬佩。
喜的是,本书生逢其时。软件定义存储从作为一个概念被提出,到业内(不仅仅是存储行业)蔚然成风,只有短短的几年时间。但是,类似“存储早就是个软件行业了”的不屑,和“难道还有硬件定义存储?”的不解,仍然没有消失。
实际上,一个适合软件定义存储的产业环境,是逐渐演变形成的。
回过头来看,从20世纪90年代中期到2010年之前,是(传统)存储行业的黄金时代。80年代兴起的硬盘驱动器(HDD)小型化浪潮,与RAID技术合力,让伴生于主机的大尺寸硬盘驱动器成为了历史。存储系统作为一个独立的产品,与服务器有着明显的区别:
1)形态。存储系统要把数十乃至上百(后来上千)的硬盘驱动器连接在一起,通过RAID聚合,提供更高的性能和容量。
2)计算。RAID是主要需求,并不适合(当时性能还不是很强的)通用CPU处理。
3)网络。为了满足数据持续稳定传输的需求,开发了专用的存储网络Fibre Channel(FC)。
计算的能力和软件的功能都很有限,也可以说是硬件限制了软件的发展。
“9·11”事件客观上促进了存储行业的大发展,容灾和备份得到了更多企业的重视。同时,互联网兴起带动的各种新型应用(如电子商务),也促进了数据量的暴涨。利用软件功能(如自动精简配置、重复数据删除)提高存储效率成为行业的突破口,2001年前后涌现出一大批优秀的存储初创公司,如3PAR和LeftHand(后被HP收购)、EqualLogic和Compellent(后被Dell收购)、Data Domain和Isilon(后被EMC收购)及XIV(后被IBM收购),绝非偶然。
也就是在这个时期,存储开始真正成为一个软件(主导)的行业。但是,存储软件仍然受到硬件技术和商业模式的限制,还不够自由,更无法“定义”。
在新的一个十年到来前后,固态盘(SSD)和x86架构在存储行业的逐渐普及促成了局面的转变。SSD的性能(IOPS和延迟)上百倍于硬盘,意味着要达到与以往类似或相当的性能,不再需要把数百个驱动器连为一体,降低了硬件系统构建的门槛。同时,存储介质I/O性能的飞速提升,也对存储系统的计算能力提出了更高的要求。
x86架构成为主流,不仅带来了相对廉价的计算资源,还带来了无与伦比的软件生态环境。x86处理器加上Linux内核,构成了一个非常稳定成熟的平台,且非常适用于功能丰富的产品,可以缩短软件产品的开发周期,市场上的人才也比较容易找到。
计算和存储之后就是网络了。尽管还存在一些不足,但以太网终于凭借十倍速为主的发展速率追及并超越了走倍速路线的FC,生态系统上的优势则更为明显。在硬件平台上,存储系统(的控制器)与x86服务器的区别主要体现在HA等设计上,硬件主导的纵向扩展(Scale-up)架构逐渐让位于软件主导的横向扩展(Scale-out),整个系统的功能也主要由软件定义了。
换言之,在硬件平台主要通过差异化体现价值的时候,软件处于受限状态;在硬件平台实现标准化之后,软件定义的时代才真正到来。
软件定义存储为存储行业带来了更多的可能,而我个人更关心规模在下一阶段所能发挥的作用,包括但不限于:
·首先,仍然需要存储子网以构建一定规模的硬件资源池,连接更多的硬盘用SAS Switch,闪存可能是NVMe over Fabric,并通过软件灵活地分配这些存储资源。
·其次,就单个节点而言,软件定义存储的数据平面(Data Plane)功能应该在操作系统或Hypervisor层面实现,效率会好过通过专用虚拟机处理。VMware和微软在各自的平台上占有先天优势,而具备Linux/KVM内核级开发能力的厂商也可以达到类似的效果。容器技术可能是另一个值得关注的方向。
·最后,困扰存储行业多年的互操作性和统一管理问题有望在数据中心操作系统(DCOS)层面解决。存储的互操作性和统一管理本身不是个技术问题,之前的症结是存储厂商主导的标准制定与各自利益相冲突,SNIA推进的各项标准进展缓慢。如今在数据中心级别的规模下,由VMware、OpenStack等DCOS管理,其控制平面(Control Plane)接口将成为存储产品必须支持的标准。
很高兴从Peter列出的目录里看到上述问题将得到深入的讨论,这让我更加期待早日看到本书的出版。感谢Peter和众作者的付出!
张广彬
企事录技术服务公司创始人
2016年4月