“存储虚拟化”技术与市场分析

虚拟化存储技术 —-“老歌新唱”

本文首发于《计算机世界》,文章版权与复制权属于《计算机世界》

    尽管“存储虚拟化”是一个伴随存储区域网络(SAN)的出现而流行起来的名词,可是它实质上却不是一个崭新的概念,是一个典型的 “老歌新唱”。早在 二三十年前,一些主机(MainFrame) 操作系统(例如IBM的MVS)中就有关于存储虚拟化的原型。当初是为了将内存空间或者一串直连的物理磁盘组织成一个逻辑存储实体,以便于管理和访问。而且,多年来Unix系统中常用的逻辑卷管理(Logical Volume Manager)也是典型的存储虚拟化工具,只是长期没有引起业界的重视而已。

    一方面,随着存储技术的发展,人们对于SAN的逐渐认可,是当前存储虚拟化热潮的主要推动力。SAN 通过网络存储技术巨大地改变了传统的存储模式,但是它也相应带来了新的挑战:

    ● 大量的异构服务器和存储系统

    ● 多重冗余的光纤交换机连结

    ● 相互交织在一起的应用系统

    ● 以上情形都需要全面的存储管理

    另一方面,IT领域应用的飞速发展,也对存储提出了新的要求:

    ● 某些公司爆炸式的数据增长导致对存储容量的需求增长极快,即使在经济不景气的情况下,仍然以每年50% 到100%的速度增长,然而,管理这些存储环境的成本远远高于硬件的采购成本。在这个角度上,数据管理人员需要更好的工具来管理增长的数据量。

    ● 一些独立的研究报告披露,磁盘存储系统的平均利用率仅有35%到50%,某些情况下,磁带系统的利用率就更低。由于很多存储设备是被固定连结在某个主机服务器上,它的多余空间无法被其它主机利用,并且,也会形成很多存储系统的孤岛。

    ● 在电子商务盛行的今天,对业务的持续性有着更高的要求。由于存储扩容或者改变配置而造成的计划内或计划外的停机,将被越来越无法接受。

    人们发现,存储虚拟化技术正是解决这些问题的理想方案。因而,虚拟存储便成为了各个厂家和用户的新宠。

    用户通常并不会从物理角度关注存储设备如何服务于应用,他们并不关心什么平均寻道时间或者硬盘旋转的机械延迟等参数,也不会关心连结了多少块硬盘和每块磁盘平均无故障时间。他们所关心的是:应用对请求的反应时间和吞吐能力,满足数据飞速增长的足够空间,以及应用系统可以容忍的宕机时间。

    简而言之,他们是从应用的角度去看待数据,而不是从物理角度去看待存储设备。虚拟化机制能够提供一个机会,将物理存储设备和虚拟存储实体结合在一起,来满足应用的需求。

    一个虚拟化的存储设备再也不会受到任何物理设备在容量、速度、可靠性方面的限制,而且,当把智能存储的软件加载到这个虚拟层后,存储虚拟化就可以更好地解决常规存储设备面临的存储服务功能上的挑战。

存储虚拟化解析

在讨论存储虚拟化的方法置前,我们参考如下定义,取自 SNIA (国际存储网络工业协会)的存储网络术语字典:

    虚拟化 — 通过将一个(或多个)目标(Target)服务或功能与其它附加的功能集成,统一提供有用的全面功能服务。 典型的虚拟化包括如下一些情况:屏蔽系统的复杂性,增加或集成新的功能,仿真、整合或分解现有的服务功能等。虚拟化是作用在一个或者多个实体上的,而这些实体则是用来提供存储资源或/及服务的。

    这是一个抽象的定义,它并不能够明确地指导用户去比较产品及其功能。同样,这个定义只能用来描述一类广义的技术和产品。

    虚拟化其实是一个抽象的技术,几乎可以应用在存储的所有层面:文件系统、文件、块、主机、网络、存储设备等等。

    SNIA认为存储的虚拟化并不局限于某项特别的产品功能,需要从不同的角度和不同的层面进行完整、详尽的描述。SNIA提供的存储虚拟化模型,主要从以下三个角度来讨论:

    1. 虚拟化什么,针对不同的存储设备和数据形态,有多种形式的虚拟化资源:

    ● 虚拟数据块,例如建立在文件系统或内存上的块设备;

    ● 虚拟磁盘或者SCSI的LUN,在内存、磁带机/库、硬盘上建立虚拟磁盘设备

    ● 虚拟磁带或磁带库,利用磁盘、磁带机/库或者内存建立虚拟的磁带设备。在主机系统(Mainfame)中已经利用磁盘或内存来做虚拟磁带,或者作为磁带库的前置缓冲,以提高备份速度。

    ● 虚拟文件系统,跨越多个文件系统建立一个虚拟文件系统,或者在现有文件系统上增加文件系统的功能(例如不同文件系统的访问协议,NFS、CIFS)。

    2. 在哪里虚拟化,存储虚拟化可以在不同的层面上进行:

    ● 主机/服务器

    ● 存储网络(交换机或存储专用设备)

    ● 存储子系统上—- 智能阵列控制器

    3. 如何进行虚拟化,根据数据流与虚拟化引擎的相对关系,可以分为以下两种:

    ● In-Band ,也称作对称模式,是目前使用最多的方式,它可以在存储系统、网络、主机、文件系统上实现。

    ● Out-of-Band ,也称作非对称模式,需要在存储网络(SAN)上实现。

存储虚拟化的主要方法之虚拟化平台

下面我们将主要讨论磁盘系统的虚拟化方法。

    虚拟化平台

    存储的虚拟化可以在三个不同的层面上实现:基于专用卷管理软件在主机服务器上实现,或者利用阵列控制器的固件(Firmware)在磁盘阵列上实现,或者利用专用的虚拟化引擎在存储网络上实现。而具体使用哪种方法来做,应根据实际需求来决定。

    ● 基于主机的虚拟化

    如果仅仅需要单个主机服务器(或单个集群)访问多个磁盘阵列,就可以使用基于主机的存储虚拟化技术。此时虚拟化的工作通过特定的软件在主机服务器上完成,而经过虚拟化的存储空间可以跨越多个异构的磁盘阵列。如下图所示:


这种类型的虚拟化通常由主机操作系统下的逻辑卷管理软件(logical volume manager)来实现,在主机系统和Unix服务器上已经有多年的广泛应用,目前在Windows操作系统上也提供类似的卷管理器。

    与基于存储的虚拟化相比,逻辑卷管理器不一定需要SAN结构。但是由于历史原因以及目前占统治地位的直连式存储模式,这种基于主机的虚拟化仍然是最流行的方式。逻辑卷管理器既可能是操作系统的一部分,也可能是某个独立的软件,它在主机上建立一个虚拟层,通过这个虚拟层,物理磁盘或者LUN被组织成逻辑磁盘组和逻辑卷。

    基于主机进行虚拟化的最大优点是其久经考验的稳定性,以及对异构存储系统的开放性。它与文件系统共同存在于主机上,便于二者的紧密结合以实现有效的存储容量管理。卷和文件系统可以在不停机的情况下动态扩展或缩小。

    ● 基于存储设备的虚拟化

    当有多个主机服务器需要访问同一个磁盘阵列的时候,可以采用基于阵列控制器的虚拟化技术。此时虚拟化的工作是在阵列控制器上完成, 将一个阵列上的存储容量划分多个存储空间(LUN),供不同的主机系统访问。如下图所示:


智能的阵列控制器提供数据块级别的整合,同时还提供一些附加的功能,例如:LUN Masking,缓存,即时快照、数据复制等。配合使用不同的存储系统,这种基于存储设备的虚拟化模式可以实现性能的优化。

    由于这种虚拟化不依赖于某个特定主机,能够支持异构的主机系统。但是对于每个存储子系统而言,它又是个专用私有的方案,不能够跨越各个存储设备间的限制,无法打破设备间的不兼容性。

    ● 基于存储网络的虚拟化

    以上都是一对多的访问模式,而在现实的应用环境中,很多情况下是需要多对多的访问模式的,也就是说,多个主机服务器需要访问多个异构存储设备,目的是为了优化资源利用率—–多个用户使用相同的资源,或者多个资源对多个进程提供服务,等等。在这种情形下,存储虚拟化的的工作就一定要在存储网络上完成了。这也是构造公共存储服务设施的前提条件。

    如下图所示:


而以上描述的两种虚拟化方法的优点都可以在存储网络虚拟化上同时体现,它支持数据中心级的存储管理以及异构的主机系统和存储系统。

    

如何进行存储网络虚拟化

在存储网络层面进行虚拟化的方法已经成为虚拟化的明确方向,这种虚拟化工作需要使用相应的专用虚拟化引擎来实现。所谓的虚拟化引擎,是一种被称作SAN Appliance 的专用存储管理服务器,用来完成虚拟化工作。它们将多个物理磁盘系统组合成大的存储空间或者把它们分割成小的存储单元,并根据主机对容量、速度和可用性的要求,将这些存储单元分配给主机使用。

    目前市场上的SAN appliances 专用存储服务器,或是建立在某种专用的平台上,或是在标准的Windows, Unix和 Linux 服务器上配合相应的虚拟化软件而构成。在这种模式下,因为所有的数据访问操作都与SAN Appliance相关,所以必须避免它的单点故障。所以在实际应用当中,SAN Appliance 通常都是冗余配置的。

    SAN appliances 可以两种形式来控制存储的虚拟化:直接位于主机服务器和存储设备的数据通道中间 (In-Band);或者,位于数据通道之外(Out-of-Band),仅仅向主机服务器传送一些控制信息(Metadata),来完成物理设备和逻辑卷之间的地址映射。

    通常也会用名词”对称” 和 “非对称” 来对应In-Band 和Out-of-Band ,但是存储网络工业协会(SNIA) 建议的统一术语是In-Band 和Out-of-Band。

    In-Band 虚拟化引擎

    In-Band虚拟化引擎位于主机和存储系统的数据通道中间,控制信息和用户数据都会通过它 ,而它会将逻辑卷分配给主机,就象一个标准的存储子系统一样。

    如下图所示:


因为所有的数据访问都会通过这个引擎,它就可以实现很高的安全性。就象一个存储系统的防火墙,只有它允许的访问才能够通行,否则就会被拒绝。

    这种方式的虚拟化,不需要在主机上安装特别的虚拟化驱动程序,比Out-of-Band的方式易于实施。并且支持广泛的异构存储系统,具有很好的互连性。.

    In-Band 虚拟化引擎是一个数据访问必须经过的设备,通常利用Caching技术来优化性能。

    Out-of-Band 虚拟化引擎

    Out-of -Band虚拟化引擎物理上不位于主机和存储系统的数据通道中间,而是通过其它的网络连接方式与主机系统通讯。于是,在每个主机服务器上,都需要安装客户端软件,或者特殊的主机适配卡驱动,这些客户端软件接收从虚拟化引擎 传来的逻辑卷结构和属性信息,以及逻辑卷和物理块之间的映射信息,在SAN上实现地址寻址。存储的配置和控制信息有虚拟化引擎负责提供。如下图所示:


这种方式的实施难度大于In-Band模式,因为每个主机都必须有一个客户端程序。也许就是这个原因,目前大多数的SAN Appliance 都是采用In-Band的方式。

虚拟存储突破设备虚拟化

从传统的观点来看存储虚拟化,它是一个提高存储系统的可扩展性、存储空间利用率、存储可用性和性能的最好方法。除此之外,人们发现存储虚拟化的好处不仅这些,虚拟化技术提供了一个集中管理的存储平台,大大提高了存储管理的效率;更重要的是,这个存储平台可以被充分地智能化,对于用户的存储整合、数据保护甚至容灾保护都提供了优秀的服务能力。所以,虚拟存储平台,是开放的智能化存储的理想平台。

    按照SNIA对存储虚拟化的解释,它不仅仅是存储设备的虚拟化,而且是需要加入更多的数据服务内容:

    ● 存储虚拟化能够屏蔽诸多物理存储设备的复杂性,而简化逻辑卷的提供。但是,这不是虚拟化仅有的目标。它更加应该是一个存储管理员的工具箱,使得数据服务和存储管理更加容易。这些面向存储的应用包括:备份和恢复、集群、数据复制、即时数据保护、拷贝/快照、镜像、迁移、缓存、安全和存储服务质量保证等等。

    ● 虚拟化的存储使得集群更加容易。当应用从一台服务器切换到另一台服务器时,由物理磁盘组构成的逻辑卷被同时导入到该服务器,而集群中的服务器并不知道这些逻辑卷的复杂物理结构。这就大大简化了所有的导入操作。存储虚拟化能够很容易地实现集群中卷共享和文件共享,并且使得多个主机系统能够在可控的前提下同时访问共享卷。

    ● 数据复制的功能将完整地传送逻辑卷,而不必关心其复杂的物理结构。数据复制的目标卷可以是任意结构的物理存储设备,而不必与原始卷的物理设备相同。所有复制的工作都可以通过虚拟化引擎来实现。

    ● 存储虚拟化可以让存储管理员定制不同的存储服务质量,例如,应用性能,按需求获取存储容量,减少故障恢复时间等。同时,它也能够方便地建立存储池,并且让使用者以事件驱动的形式来分配存储资源。

    随着时间的推移,存储虚拟化不会再被看作是一个专门的产品,而是一个支撑存储容量和存储服务的基础平台:在各个层次的不同功能将协助管理工具更好地完成管理工作。

虚拟存储方兴未艾

遵循新的虚拟存储概念,美国飞康公司的 IPStor 智能网络存储软件充分体现了虚拟存储的精髓—从设备的整合到存储服务的整合, 是目前能够针对异构的混合存储平台成功进行虚拟化的的产品。最近,IBM也宣布了其自己的虚拟化引擎 —- TotalStorage SAN Volume Controller 和 SANIntegration Server。同时,惠普公司也在积极推进类似的存储虚拟化产品。

    不久的将来,按照市场的需要,将会有更多的生产厂商加入到这个行列。例如,一些交换机的生产厂商,正在把智能存储的功能加载到交换机上,使得交换机能够实现 LUN masking, 卷管理和数据复制。

    我们相信,全面的存储虚拟化技术—包括设备虚拟化和服务整合,将是继存储区域网络(SAN) 后的又一次革命。我们也期待着更多、更好的存储虚拟化产品问世,改善我们的存储世界。