存储虚拟化技术普及贴

存储虚拟化技术名称很神秘,其实说穿了,技术上就是I/O重新定向和存储单元块地址重新编排而已。如果把存储虚拟化功能看作应用与存储设备之间“欺上瞒下”的逻辑层,那么这层的主要任务就是,对上面截获I/O自己重新处理,对下面所有存储空间重新统一编址。其他所有的高级功能,都是基于这一基本机制衍生的。​

这个功能看似很不厚道的邮递员,一边乱拆发件人的信,一边乱改收件人的地址。但是它的好处也是显而易见的。发件人省了很多心,永远不需要担心收件人是否已经搬家或者分家。收件人也不用担心误解了发件人的意思,因为有中间人在必要的时候会附加解释,甚至翻译成更简单直白的语言帮助理解。​

按照实现的位置分类,存储虚拟化技术大致可以分为三类:​

一、安装在主机内的纯软件。​

二、阵列控制器的扩展附加功能。​

三、独立的存储网关。​

纯软件的虚拟化功能比如Linux上的LVM,Symantec的Storage Foundation中的VxVM都属于这类。需要注意区别的是,这类软件都在文件系统下层,管理的是块设备,提供出来的还是块设备。​

这类软件在服务器数量不多,而且环境比较简单的场合还可以适用。毕竟只是服务器上安装个软件嘛,相对来说比较容易部署和维护。但是因为MetaData在服务器里,当遇到服务器集群环境,或者SAN中服务器数量很多,又或者各种操作系统混合的环境,MetaData在服务器之间的交换和同步就是一个非常麻烦的问题。​

由于这样一些限制和隐患,实际上现在纯软件的虚拟化产品已经慢慢萎缩简化了。相比较而言,倒是带虚拟化功能的磁盘阵列越来越多。最早拿虚拟化功能做卖点的盘阵是XIOTech和HP的EVA系列。现在XIOTech这家公司已经被希捷收购了,他的创始人又搞了第二个非常虚拟化的盘阵,就是前两年被Dell收购的Compellent。另外HP收购的3PAR、Dell收购的EqualLogic、华为的VIS6000、HDS的USP/VSP、IBM的V7000、EMC的VNX、NetApp的V3000/V6000……可以说现在谁家的盘阵要是不带虚拟化功能,都不好意思往中高端里靠。​

不过这些盘阵的虚拟化功能最大问题就是很难真正实现跨设备间的整合。虽然几乎所有厂商都声称可以支持第三方设备挂在后面,但是现实中还是会出现很多尴尬。曾经有用户想用HDS的USP管理EMC的CX系列磁盘阵列,结果EMC工程师跟用户讲磁盘阵列的兼容列表上没有HDS USP,拒绝提供服务。还有一次用户实测用NetApp的V3000管理IBM DS系统磁盘阵列,发现性能低的离谱。结果NetApp和IBM的工程师都说不是自己的问题,让对方改设置来兼容自己。​

这种事情搞多了,大家渐渐就明白了,磁盘阵列里带的虚拟化功能,基本就是虚拟自己用的。至于跨设备间的系统级整合,还是要依靠独立的存储网关,而且最好是不卖盘阵专门做虚拟化网关的厂商。所以在独立存储网关这个市场上,IBM SVC和EMC VPLEX所占的比例就明显低于他们在磁盘阵列市场上的比例,反倒是像飞康、信核这样不卖盘阵的厂商更有优势。​

说了半天,这存储虚拟化技术除了像根绳子一样捆起所有盘阵以外,还能干些什么呢?其实这里面还是有些重要意义的。比较容易想到的就是资源整合之后便于管理,还能利旧等等浅层的好处。另外I/O处理集中了,就可以在这个集中的地方附加一些高级功能,比如自动分层优化、数据同步、远程复制、CDP备份……​

更深层面的意义在于存储虚拟化技术会和主机虚拟化技术一样,颠覆传统的IT系统建设理念。以前用户搭系统都是以应用为出发点,先明确要做ERP,再选数据库,然后选操作系统和主机平台,最后选存储和网络。这种逻辑在云计算年代会遭遇严重的问题。​

首先,在云计算背景下,系统建设之初不一定明确应用需求,即便明确也不可能孤立建设。其次云计算数据中心的规模之大,不可能像传统系统那样整体规划,整体实施再整体验收。想想一个耗费几年才能建成的数据中心,其中的设备大部分都是一年换代,三年过保,怎么可能要等系统建完再验收!所以新的系统建设逻辑一定是纵向分层,逐层建设。每层的改动和更新与其他层无关。​

遵循这样的逻辑,存储虚拟化技术其实是在扮演一个粘合剂的角色,可以把各种磁盘阵列“砖块”整合成可以自由流动扩展,又与主机和应用无关的存储资源层。说的再严重一点,存储虚拟化就相当于存储系统中的操作系统。以前存储系统简单,不需要太多智能和自动的管理调度,现在规模越来越大,内部越来越复杂,对存储虚拟化的需求就越来越迫切。​

当然任何技术都有阴阳两面。存储虚拟化技术一个比较明显的问题就是给I/O处理增加了额外环节,会拖慢磁盘阵列原有性能。从IBM、EMC、飞康、信核这些厂家的白皮书中都会看到,在配合普通中端磁盘阵列时,虚拟化存储网关一般会给I/O造成大约0.2-0.5ms的延迟。如果是管理固态存储,额外延时会小一个数量级,但也没小到可以忽略。​

所以现在的主流存储网关,除了EMC VPLEX几乎都带有自动分层功能,通过系统层面的优化,来抵消虚拟化本身带来的性能影响。​

 ———————————————-​

点评:董老的文章还是很通俗易懂的,感谢。但里面一些内容,西瓜哥也有不同看法。​

1、华为的VIS是虚拟化网关,不能带盘阵的,因此不能算陈列形态;​

2、HDS的USP/VSP,可以带盘,也可以不带盘,因此也可以算阵列形态,也可以算虚拟网关形态;​

3、不管阵列形态还是虚拟化网关形态,都有一个兼容性问题。也就是支持的阵列数量都是有限的;​

4、其实还有一种形态,就是把虚拟化内置的SAN交换机里面,这个前面我们讲过,不过现在这种形态比较少见了;​

5、西瓜哥个人的观点,以后的磁盘阵列厂商的陈列都会内置虚拟化功能,类似现在的HDS VSP等。现在的高端存储很多都有虚拟化功能了。当阵列配自己家的磁盘框,就是一个普通的阵列,不配磁盘,就是一个独立的虚拟化网关。虚拟化网关和虚拟化阵列可能处于一个长期共存的状态。