未培,庄彦
(1.安徽工商职业学院,安徽合肥230041;2.合肥工业大学,安徽合肥230002)
随着各行业网络化、数字化水平的不断提高,基于信息存储的业务呈现几何倍数的增加,同时产生的业务数据量也呈现惊人的爆炸式增长.这些海量数据的存储、管理和利用无疑给我们提出了亟待解决的难题.随着存储技术的不断发展和完善,存储系统网络平台已成为解决海量数据存储、管理和高效利用的主流平台.同时,各种应用对平台所能提供的存储容量、数据传输性能、数据访问性能、数据管理能力、存储扩展能力等诸多方面性能也提出了越来越高的要求,甚至应用系统的性能直接取决于存储网络平台的性能.为了提高存储环境,提高整体性能和可用性,存储虚拟化技术正越来越受到各行业的关注,采用存储虚拟化技术的产品也不断地被各行业所应用.
存储虚拟化就是指通过对存储系统或存储服务的内部功能进行抽象、隐藏或隔离,使对存储或数据的管理与对应用、服务器、网络资源的管理分离,从而实现应用和网络的独立管理[1].是通过某种技术将多个或多种存储设备统一起来,形成一个有机整体,使之相对于应用系统透明,并为应用系统提供大容量、高数据访问和高传输性能的存储系统,以协调的方式在其支持的应用之间实现更有效的共享.
存储虚拟化几乎可以部署在存储网络的任何位置,从操作系统设备文件,直至主机总线适配器、存储网络和存储阵列.目前有较为成熟产品的存储虚拟化技术大体上可归纳为3类,包括基于主机的存储虚拟化、基于存储设备的存储虚拟化以及基于网络的存储虚拟化[2].
基于主机的存储虚拟化是一种通过特定软件实现多个异构磁盘阵列的统一管理,并向操作系统呈现统一的逻辑虚拟存储空间的一种技术,其不需要借助特殊的硬件即可实现存储虚拟化的控制和管理.该种技术又被称为基于服务器的虚拟化[3].其代表产品为SymantecVeritas VolumeManager.
基于主机的存储虚拟化不需要任何附加硬件,通常由主机操作系统下的逻辑卷管理软件来实现,能够支持异构的存储设备,最容易实现,其设备成本最低.但是其缺点也是很明显的:其一,由于主机额外需要运行虚拟化软件,占用了主机大量的处理时间,导致其实际运行的性能受到较大的影响[4];其二,由于主机在整个系统中的重要地位,一旦主机出现故障可能会导致整个SAN(Storage Area Network)[5]系统中数据的完整性受到破坏;其三,由于不同存储厂商软硬件的差异还可能带来不必要的互操作性开销,使得这种方法的灵活性较差.用这种方式构建的虚拟存储系统,其主机端是一性能瓶颈,不大适合多媒体处理业务,在广电行业中已很少采用.
基于存储设备的虚拟化技术是用于解决多个异构主机访问同一个磁盘陈列的虚拟化技术.该虚拟化的工作是在磁盘阵列控制器上完成,通过内建虚拟化软件的磁盘阵列控制器技术,将一个阵列上的存储容量划分为多个存储空间(LUN),以便供不同的主机访问[1].这种在存储设备控制器中实现的虚拟化技术又被称为存储控制器的虚拟化.这类产品本身就是完整的磁盘阵列,但控制器兼有虚拟化功能,可管理异质存储设备[6].其代表产品为H3C IX/EX系列、HP EVA.
基于存储设备的虚拟化,虚拟化功能集成在存储设备上,不依赖于某个特定主机,能够支持异构的主机系统,使得存储对于用户和管理人员都是透明的,易于管理.但是该种方式需解决不同厂家的存储设备存在的不兼容性问题,如果无法很好地兼容各种厂商的存储设备,那么基于存储设备提供的存储虚拟化解决方案将是不完全的,有缺憾的[7].
基于网络的存储虚拟化能够解决当有多个异构主机需要访问多个异构存储设备的问题[8].作为当前主流的存储虚拟化技术[9],其虚拟化工作在网络设备上实现,虚拟化软件可以安装在SAN上的某些智能交换器上,也可以安装在SAN上专门连接的一台应用服务器上.该技术由智能交换器或专门的应用服务器提供存储虚拟化服务.还可由交换器或服务器监控并记录SAN的存储动作,并为SAN上的数据流与数据存储位置产生元数据[7].其代表产品为IBMSVC、HP SVS200.
存储虚拟化的实施既不在主机端,也不在存储设备端,可支持异构主机和异构存储设备,具有较高的开放性和可扩展性.虽然目前的产品成熟度不是很高,但是相对于前两种类型,这种类型具有更好的发展前景.
存储虚拟化实现的核心就是虚拟化引擎的设计,可通过软件或硬件的方式实现.为了保证通过存储虚拟化后,网络存储系统可以同时支持IP SAN、FC SAN、NAS等多种存储访问协议,虚拟化引擎内置了多协议数据转换引擎,将来自前端应用服务器的多种主机数据访问单元与后端存储阵列的存储数据访问单元进行解析和转换,保证数据的正确读写访问.
按照实现虚拟的过程是否与正常的数据读写过程同时进行,虚拟化又分为“带内”和“带外”两种机制.
带内虚拟技术虚拟和数据读写同时进行,其在数据读写的过程中,在主机到存储设备的路径上实现存储虚拟化,也被称为“同步虚拟”,其架构如图1所示.
图1 带内虚拟化
带内虚拟化引擎位于主机和存储节点之间的数据通道上,可部署在主机、存储网络或存储设备等位置上.因为位于数据读写的关键路径上,当数据访问量异常大时会成为瓶颈,虚拟化设备发生故障时,整个系统也将中断.
带外虚拟化技术的虚拟工作实现在数据读写之前,也就是说其实现虚拟的部分在主机到存储设备的访问路径之外,也被称为“异步虚拟”.其架构如图2所示.
图2 带外虚拟化
采用带外虚拟化存储时,存储的配置和控制信息由虚拟化引擎负责完成,数据存储管理功能对存储节点是透明的,其引擎位置处于主机和存储系统的数据通道之外,并通过某种网络连接方式与主机系统通信.该种方式要求获取数据的主机服务器都必须安装客户端软件或主机适配卡.当主机层需要访问存储时,首先由客户端软件向引擎发出请求,引擎根据请求返回相关存储列表信息,比如逻辑卷结构、属性、逻辑卷与物理块之间的映射等信息,然后,主机客户端软件根据相应信息实现SAN寻址,完成对存储数据的读取[8].
由于虚拟化模块位于主机和存储节点之间的数据通道之外,通过某种网络连接方式与主机系统通信,因此能够提供很好的访问性能,并且无需对现存的网络架构进行改变,相比带内方式,这种方式的系统可扩展性很强,但数据的安全性难以控制,此外,实施难度大于带内模式.
从带内虚拟和带外虚拟的实现方式可以看出,带内虚拟技术的类型可以是基于主机的存储虚拟化,也可能是基于存储设备的存储虚拟化;而带外虚拟技术的类型只能是基于存储网络实现的,这也是主流的存储虚拟化技术[9].
通过带内或者带外的存储虚拟化技术,目前已实现在主机端、存储设备或者网络中将诸如磁带、磁盘、数据块、文件、文件系统等存储资源虚拟成虚拟磁带、虚拟磁盘、虚拟数据块、虚拟文件、虚拟文件系统等.
从发展趋势看,基于主机和基于存储设备的存储虚拟化相对于基于网络的存储虚拟化来说,技术层面已经进入成熟期,且价格相对来说较低,因此,其仍然具有较大的市场应用范围.而基于网络的存储虚拟化由于其对异构主机和异构存储设备的支持,具有较高的开放性和可扩展性等特点,其未来的应用空间巨大.
存储虚拟化已经不再是一个概念,而是一项较为成熟的、可实施的技术.尽管虚拟存储技术在应用和推广中仍存在着一些问题,比如目前还没有一个行业标准,但是其作为共享存储管理的主流技术已在很多领域得到了大量的运用,可以预见,在不久的将来,它必将在海量数据处理行业中扮演更为重要的角色.
存储虚拟化技术因其为系统提供的可用性、可靠性、易于维护等优点,已在海量数据处理行业中得到大量应用,并正在成为存储领域的核心技术.同时,虚拟存储化技术仍然存在着一些不能忽视的问题,比如:①存储虚拟化的行业标准问题,只有尽快制定出业界公认的技术标准,解决各厂商及产品之间的互操作问题,才能推动该技术的发展和应用;②为适应不同用户、不同应用环境的多样化需求,存储虚拟化技术本身还应不断加强数据备份、恢复、容灾、多重镜像支持等方面的丰富和完善.
[1]秦蕊,秦薇,刘灵霞.浅谈存储虚拟化技术[J].中国科技纵横,2012(13):6.
[2]康琼.存储虚拟化技术探讨[J].长江大学学报:自然科学版,2010,7(3):594-595.
[3]谭生龙.存储虚拟化技术的研究[J].微计算机应用,2010,31(1):35.
[4]贺少领.存储虚拟化技术研究[J].电脑知识与技术:学术交流,2011,7(22):5443.
[5]汪海涛.NAS、SAN和iSCSI网络存储结构分析评价[J].微型机与应用,2012(7):52-53.
[6]李树全,吴跃,陈志飞.SAN存储虚拟化研究[J].微电子学与计算机,2009(1):39-40.
[7]吴文刚.存储虚拟化技术的应用分析[J].山西经济管理干部学院学报,2009(2):82-84.
[8]石山岭.存储虚拟化技术初探[J].中国传媒科技,2010(10):38-40.
[9]谢长生,刘朝斌.虚拟存储技术专题[J].计算机世界,2002(9):16.