
3.4.2 数据平面
在SDS数据平面这一层,不管老牌存储厂商还是初创存储厂商,它们的类型和数量都非常多,构成也比较复杂。如同一千个读者就有一千种红楼梦一样,相信不同的读者对SDS也会有各自不同的看法。笔者也只是一家之言,欢迎大家指正。数据平面分为以下几种。
1.基于商用的硬件
基于商用的硬件(Based on Commodity Hardware)是最难分类的,种类繁多,命名还不容易。首先,笔者想说明的是,它包括了IDC分类中Virtual Storage Appliance(VSA,存储控制器运行在虚机上)和Physical Storage Appliance两类。笔者认为,控制平面与数据平面的分离之意义大于硬件与软件的分离,部署方式的不同,并没有带来本质的差异。举例来说,分布式文件系VSAN FS(VSAN File System)之于EVO:RAIL,或NDFS(Nutanix Distributed File System)之于Nutanix一体机,差别仅在于是否与硬件捆绑。
Server SAN属于这个子类。Server SAN在它的原始定义里,是一个Hyperscal(e横向扩展)的分布式存储,因此笔者认为,它至少需要支持3个节点。这样,对于那些仅支持两个控制器作为集群的存储,就不在Server SAN这个分类里了。需要注意的是,有些Server SAN支持融合模式和分离模式两种部署方式,例如EMC ScaleIO和华为FusionStorage。后面提到的超融合架构仅指该存储在融合模式下。下面以EMC ScaleIO为例,简要介绍下融合模式和分离模式。
(1)分离模式,计算资源和存储资源分开,存储服务器不运行应用程序。
图3-9中的EMC ScaleIO选择单独的存储服务器作为存储集群,运行ScaleIO分布式块存储软件。

图3-9 EMC ScaleIO分离模式
(2)融合模式,计算资源和存储资源在一起,存储服务器同时运行应用程序。
图3-10中的EMC ScaleIO集群里,服务器运行应用程序,同时运行ScaleIO分布式块存储软件。

图3-10 EMC ScaleIO融合模式
HCI(超融合架构)属于Server SAN的一部分,它不仅提供存储资源,还提供计算资源。HCI比较著名的国外产品有:Nutanix、VMware VSAN或EVO:RAIL、融合模式下的EMC ScaleIO、HP StoreVirtual、SimpliVity、Scale Computing、Pivot3、Maxta;国内产品有:融合模式下的华为FusionStorage、青云HCI一体机、联想ThinkCloud AIO、志凌海纳SmartX;开源的有Open vStorage(类似Nutanix架构)。不过,坦率说,由于HCI(以及本书后面提到的应用一体机)还提供了计算资源,把它归类为存储这个大类,并不十分贴切,但为了容易理解,本书在分类时,暂且只考虑它的存储属性。
而属于Server SAN,但不属于HCI的,指的就是节点只提供存储资源,不提供计算资源。这里还包括利用商用的标准硬件实现存储虚拟化的产品。这类产品有Ceph、DELL Fluid Cache、Microsoft Storage Spaces、飞康FreeStor、DataCore、达沃时代YeeStor、华云网际FusionStor等;也有分布式文件系统,如GlusterFS、GPFS、Lustre、Panasas等。
仅支持两个控制器作为集群的存储,虽然不在Server SAN这个分类里,但只要它支持商用的硬件,依然属于软件定义存储这个大的分类里。这类存储有:Nexenta,以及其他由Solaris ZFS衍生出来的存储,如开源的FreeNAS。
注意:在这个分类里,不包括传统的外置磁盘阵列。另外,商用的硬件,并不只有X86服务器,也包括ARM等其他架构的服务器。
本书设专门章节详细介绍VMware VSAN、EMC ScaleIO、HP StoreVirtual、青云HCI一体机、联想ThinkCloud AIO、Ceph、DELL Fluid Cache、飞康FreeStor、达沃时代YeeStor、华云网际FusionStor。
2.传统外置磁盘阵列
传统的外置磁盘阵列(Traditional External Storage),包括SAN存储或者NAS存储。例如:EMC VNX, NetApp FAS系列,HDS HUS, DELL SC系列和PS系列,HP 3PAR, IBM V系列和DS系列,华为OceanStor系列等。这些存储劲旅,不甘人后,也纷纷加入到SDS浪潮里,采取的方式有以下两种。
一是与控制平面对接,例如,支持VMware SPBM之下的Virtual Volume,再如,支持OpenStack Cinder等。
二是通过收购或自己研发,去逐步实现SDS抽象、池化、自动化,典型的就有HP将LeftHand与原有硬件解耦,形成VSA版StorVirtual; NetApp推出Data ONTAP的VSA版ONTAP Edge VSA; IBM推出XIV的软件版Spectrum Accelerate; EMC推出VNX的虚拟化版本vVNX;等等。另外,DELL的Fluid Cache(流动缓存)脱胎于之前收购的内存虚拟化软件RNA,具备部分SDS基因。
3.云存储/对象存储
在本书中所讨论的云存储或对象存储(Cloud/Object Storage),只涵盖作为数据平面的形态,也即以后端存储的身份为云平台上的VM/App提供存储资源。笔者相信,这些存储未来也会逐渐与控制平面对接。
VM/App可以通过RESTful API与对象存储进行数据的输入输出,目前有三种RESTful API:亚马逊S3、SNIA CDMI和OpenStack SWIFT。
(1)作为市场领导者的AWS和其S3(简单存储服务)已经让S3 RESTful API成为一种事实标准。绝大部分的对象存储提供商都提供与S3兼容的RESTful API。
(2)全球网络存储工业协会(SNIA)创建和管理的实际定义标准,标准本身称为云数据管理界面(CDMI)。CDMI是一个完整的RESTful API,远远超过了应用可以在对象存储中创建、回收、升级和删除资源的能力。它也可以让这个应用发现对象存储容量,管理那些资源存放的容器,以及管理资源本身。此外,它允许元数据同资源容器和所包含的资源进行连接。这些加强的功能允许管理程序去管理对象存储、其容器、账户、多租户、安全、访问、账单、计费等。CDMI是一种非常有用的综合RESTful API。不过,只有4个对象存储产品(DDN Web Object Scaler、Mezeo Cloud Storage Platform、NetApp StorageGRID和Scality Ring)目前提供CDMI认证和兼容的API。
(3)另一个新出现的事实RESTful API标准是开源对象存储OpenStack Swift RESTful API。尽管OpenStack Swift的安装和生产环境受限,但是很多对象存储厂商都开始增加Swift RESTful API。
从云存储来看,随着混合云的逐渐深入,用户自然会期待在自己的私有云和公有云之间,不在VM/App级别,而且在存储级别,都能实现如同本地数据中心之间的同构存储的高级功能,例如备份、归档和容灾。此时,运行在公有云之上的VSA,即虚拟存储控制器(其实与在Hypervisor之上的VSA相类似,如HP StoreVirtual),也可与本地存储建立数据连接。
以NetApp的Cloud ONTAP为例。它是在AWS EC2的实例中运行Data ONTAP(FAS存储的操作系统)软件,充当虚拟存储控制器,对下接管AWS EBS作为自己的存储空间,对上给运行业务应用的EC2实例提供专业的存储服务,包括块(iSCSI)和文件(NFS、CIFS)。
我们知道,把NetApp的FAS存储直接放到AWS或Microsoft Azure里去,是不太现实的。NetApp通过软件定义的方法,把存储控制器做成虚机,后端磁盘柜换成块存储服务(AWS EBS),为业务虚机提供专业的、高级的虚拟块存储或NAS。
与NetApp类似的还有Zadara,该存储拥有独特的形式,可以利用云上的资源构建成一个虚拟的双控存储阵列,提供和外置磁盘阵列几乎一样的存储功能,也保持了用户的使用习惯。
本书有专门的章节详细介绍Zadara。
类似的还有SoftNAS,也是以虚机方式运行在AWS EC2实例上,可以为运行业务应用的EC2实例提供包括块(iSCSI)和文件(NFS、CIFS)的存储服务。
4.其他
软件定义存储是一个不断发展的概念,其构成部分数据平面所涉及的存储也将不断发展。例如,前面我们曾提到基于商用的硬件,除了包括X86服务器之外,还包括ARM等架构的服务器。在国内,初创公司北京优立方就推出了基于ARM的服务器,并基于ARM服务器研制出功耗低、灵活高效的冷存储,OpenStack的子项目之一Swift(对象存储)就能运行在其冷存储之上,国内已经有些客户了。冷存储的出现,也是源于数据迅猛增长,据统计,冷数据一般占数据总量的80%以上。冷存储适用于包含备份、存档、灾难恢复和图片、文档、音频、视频及社交媒体等,这些场景有着类似的特征:较低的数据访问频率,而且需要最大限度地降低每一GB存储数据的成本。
PMC(2015年11月被Microsemi收购)的SAS Expander、希捷的对象存储Kinetic和Marvell的FLC(终极高速缓存),以及Docker对SDS的影响,SSD对SDS的影响,高速网络对SDS的影响,生物存储技术和量子存储技术,还有未来无处不在的可穿戴设备、传感器,里面的存储空间如何使用和管理,也许是未来软件定义存储在数据平面,乃至控制平面都需要考虑的事情。
另外,在本章“图3-1本书对SDS的分类”的图形的颜色处理上,笔者特意选择了从黄色经过绿色,再到蓝色的渐进效果图。因为,正如本书“第2章SDS之发展”中提到的, SDS是一个过程,而不是一个目标。其实数据平面与控制平面之间的界限也并非泾渭分明,处于数据平面的部分存储厂商注定会通过自己的不断努力,增强互操作性,增加策略驱动异构存储,并扩展其被Hypervisor或业务应用灵活调用的能力,使其部分的型号或者部分的模块逐渐上升到控制层面。