抽象其实就是软硬件逐步解耦的过程。
早先的存储,如2000年以前,大多数是集中存储(以外置磁盘阵列为主流),逻辑卷一旦创建,就不能更改(更改RAID、增加大小),除非允许数据全部丢失,删除这个逻辑卷再创建一个新的逻辑卷。那时候的逻辑卷与存储的前端端口、后端端口、物理磁盘都紧密地绑定在一起,耦合度非常高。在这种情况下,即使是为多个业务应用提供存储资源的集中存储,也在内部形成了一个个孤岛,孤岛的存储资源不能相互共享,数据不能自由流动。在这种环境下,存储首要解决的问题就是解耦,将逻辑卷与硬件解耦,打破孤岛之间的疆界,让存储资源能够共享,数据能在各个存储的硬件组件间自由流动。
例如,假设某用户单位的网管在最初给FC SAN光纤存储划分ZONE时,是按照物理WWWN的方式。这样,每当FC SAN存储控制器的前端卡因故障需要替换时,就还得进入SAN光纤交换机管理界面内,重新调整FC SAN的Zone分区,这个运维操作往往需要业务停机。如果存储支持虚拟WWWN的方式,就简单多了,只需要进入存储管理界面,SAN光纤交换机不受影响。如图2-1所示,以DELL存储SC系列(原Compellent)为例,可以看到位于Connected Controller Ports这列的WWEN,如5000D310000FB306,就是虚拟的WWN。
图2-1 DELL Compellent的虚拟WWN也是一种抽象
再如,以往逻辑卷在创建之初,先必须挑选几块盘来创建RAID Group,在此基础上,再创建新的逻辑卷。这意味着逻辑卷被绑定在几块盘里,一旦业务增长规模扩大,所需容量和性能不够时,旧存储可能需要停机去做数据迁移。如果存储支持逻辑卷与盘之间的解耦,将盘的部分空间抽象成块或RAID子集(如RAID Set、Chunk、Sun Lun、Extent等),再由若干RAID子集构成逻辑卷,这样在线增加容量并增加性能就比较容易了。如图2-2所示。
图2-2 图左到右,意味着存储逻辑卷开始与磁盘的解耦
另外,还有一种大家熟知的解耦,就是将存储阵列与硬件剥离开来。例如HP StoreVirtual,NetApp的Data Ontap Edge,EMC vVNX,Zadara等这种面向虚拟化或云计算平台,提供虚拟存储阵列。以EMC vVNX为例:现在EMC提供免费下载的,开放虚拟化设备OVA/OVF方式的vVNX。例如,下载的vVNX OVA可在VMware上通过虚拟存储阵列(VSA)的方式部署,VSA通过OVA转化部署后的虚拟机,可以提供专业的存储服务,同时支持NAS和SAN协议、支持FAST VP动态存储分级、重删和压缩、精简配置、快照和远程复制等与EMC VNX类似的功能。图2-3是EMC vVNX在执行Create Storage Pools的步骤中Select Virtual Disk的设置。
可以把这个100GB的Virtual Disk看成构建虚拟存储阵列vVNX之Storage Pools的若干盘之一。Storage Pools创建完成后,就可以为虚拟存储阵列vVNX添加SAN(iSCSI)或NAS(NFS或CIFS)协议了。如图2-4所示。
图2-3 为EMC vVNX添加存储资源
图2-4 为EMC vVNX添加NFS协议
NetApp、EMC、Zadara这种虚拟阵列的方式,为云计算平台的业务虚机提供了可靠、丰富的存储服务。本书将有专门的章节详细介绍Zadara。
这个软硬件逐渐解耦的过程,其实就是将同类硬件的不同细节的部分隐藏起来,并与上层隔离开来。我们现在看到的,将原本绑定在物理控制器的存储控制器操作系统解耦出来,运行在虚机或者云主机上,形成虚拟存储阵列,这其实也是一种解耦,或称为抽象形式。
这样,上层就不必因为下层硬件的不同而修改。因此,增加了可移植性和灵活性。
不过需要注意的是,软硬件解耦也是一个循环往复的过程。有时,硬件的某些内容解耦了,继而软件完成了这些内容的抽象池化和自动化;过段时间之后,客户的需求又可能推动再去解耦硬件的其他部分,这样,又需要再去完成其他部分的抽象池化和自动化。因为不同时代的用户会对所需抽象的内容有不同的关注和需求,而且硬件本身也在不停地发展。当硬件的发展日新月异,其速度和容量能够远远地超前于当下软件对其资源的要求时,硬件就有更多的机会在不同的层面、不同的角度,不断地解耦,让更多的部件被抽象,被软件定义,直到最后,剩下该硬件的最核心最本质的部分。
解耦硬件的哪一部分(换句话说,用软件去定义哪一部分),必须结合用户主流的需求,以及当时的客观条件(主要是硬件的能力)。以空调为例,当智能家居的周边条件远未具备时,例如手机应用、Wi-Fi尚未普及之时,空调遥控器开放几个简单的接口,如温度、风速、风向,就足够了。如果有公司过早地投入人力物力去做智能空调,研究移动设备或PC机如何通过互联网来远程控制空调的接口,很有可能只有极少的用户才有这个需求。这个公司就可能变成“先烈”,而不是先进了。