软件定义存储的概念很大。我们所熟知的,存储虚拟化、Server SAN、超融合架构(HCI)都是SDS的一部分。下面笔者不揣浅陋,尝试着对纷繁复杂的SDS进行分类,用来帮助大家对SDS进行深入理解。
1. Control Plane(控制平面)
在SDS Control Plane这一层,比较著名的有:
- VMware SPBM (Storage Policy Base Management, 基于存储策略的管理);
- OpenStack Cinder 。Cinder是OpenStack云平台的一个组件,用来提供块存储服务;
- EMC ViPR。目标是实现EMC存储、异构存储、商用硬件本地存储资源的存储虚拟化(包括互操作性);
- ProphetStor (希智)的Federator;
- FalconStor(飞康)的 Freestor;
2. Data Plane (数据平面)
在SDS Data Plane这一层,比较复杂,组成部分较多。
- Based on Commodity Hardware (基于商用的硬件)
其实,这一部分是最难分类的,种类繁多,命名还不容易。首先,笔者认为超融合架构(HCI)是Server SAN的一个子集。
另外想说明的是,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一体机,差别仅在于是否与硬件捆绑,共同点在于都是基于商用的硬件,将分布式存储资源池化,且基于Hypervisor。所以,VSAN, EVO:RAIL, Nutanix都属于Server SAN的分类里,而且由于它们都不仅提供存储资源,还提供计算资源,所以还属于超融合架构这个子类里。
超融合架构里,比较著名的有: VMware VSAN或EVO:RAIL、EMC ScaleIO、Nutanix、Maxta、SimpliVity、Scale Computing、Pivot3;国内有:华为FusionStorage、志凌海纳SmartX、青云HCI、深信服HCI等;开源的有Open vStorage(类似Nutanix架构);
在Server SAN里,非超融合架构(也即不提供计算资源)的有DELL Fluid Cache、HP StorVirtual、RedHat Inktank Ceph、Microsoft Storage Spaces等,以及达沃时代、StorWind、大道运行SSAN等;还包括分布式文件系统,如GPFS、Lustre、Panasas等;
笔者认为Server SAN在它的原始定义里,应该是一个横向扩展的分布式存储,它至少需要支持3个以上节点。这样,对于那些仅支持两个控制器做为集群的存储,就不在Server SAN这个分类里了。不过,它们依然属于软件定义存储这个大的分类里。这类存储有:DataCore、Nexenta、国内的InfoCore(信核),还有其他支持Solaris ZFS的存储,如开源的FreeNAS、NAS4Free。
- Traditional SAN/NAS(External Storage)
指的是传统的外置磁盘阵列,包括SAN存储或者NAS存储。例如:EMC VNX,NetApp FAS系列,HDS HUS, DELL SC系列和PS系列,HP 3PAR,IBM V系列和DS系列,华为OceanStor系列等。这些存储劲旅,不甘人后,也纷纷加入到SDS浪潮里,采取的方式有:
一是与Control Plane更多的API对接,例如,支持VMware SPBM之下的Virtual Volumes,再如,支持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基因。相信随着SDS的浪潮,会有越来越多的传统大牌存储厂商推出类似的方案。
- Cloud/Object Storage
它作为Data Plane的组成部分,实际上是以后端存储的身份为VM/App提供存储资源。
VM/App可以通过RESTful API等接口与对象存储进行数据的输入输出,目前有三种RESTful API:亚马逊S3、SNIA CDMI和OpenStack SWIFT。
从云存储来看,随着混合云的逐渐深入,用户自然会期待在自己的私有云和公有云之间,能够实现除了在VM/App级别,在存储级别,也能实现如同本地数据中心之间的同构存储之间的高级功能,例如备份、归档和容灾。此时,运行在公有云之上的VSA,也即虚拟存储控制器(其实与在Hypervisor之上的VSA相类似),即可与本地存储建立数据连接。
以NetApp的Cloud ONTAP为例。它是在AWS EC2的实例中运行Data ONTAP(FAS存储的操作系统)软件,充当虚拟存储控制器,对下接管AWS EBS作为自己的存储空间,对上给运行业务应用的EC2实例提供存储服务,包括块(iSCSI)和文件(NFS、CIFS)。
我们知道,把NetApp的FAS存储直接放到AWS或Microsoft Azure里去,是不太现实的。NetApp通过软件定义的方法,把存储控制器做成虚机,后端磁盘柜换成块存储服务(AWS EBS),为业务虚机提供专业的、高级的存储服务。
类似的还有SoftNAS,也是以虚机方式运行在AWS EC2实例上,可以为运行业务应用的EC2实例提供包括块(iSCSI)和文件(NFS、CIFS)的存储服务。
其实,谈到软件定义,无论SDN、SDS,都离不开控制平面Control Plane,数据平面Data Plane的提法。控制平面负责数据调度,实现自动化;而数据平面负责数据处理和数据优化,负责抽象和虚池化。最近两年流行的概念 - Server SAN目前还只是围绕着数据平面做些工作,是当前阶段SDS的主要形态,离理想的SDS尚有一些距离。不过,我们也注意到,已经有一些Server SAN在控制平面做些工作了,例如尝试与VMware SPBM(主要指Virtual Volume),或者OpenStack Cinder对接。
可以肯定的是,在最近几年内,Server SAN仍然是充满着创业生机的沃土,与之相关的初创公司(包括HCI,也即超融合架构)会如同雨后春笋般冒出来。但是,需要注意的是,在数据中心三大基础架构中,存储相对于服务器和网络,是最难被替换的,因为它是数据的命脉。初创公司存储的安全性(数据不丢失)、稳定性是首要需要保证的。