尽管目前对于应该怎样准确定义存储虚拟化这个概念尚存在一些争议,但通常我们认为存储虚拟化是一项技术,通过对物理层资源进行抽象,展现给用户一个灵活的、逻辑的数据存储空间。存储虚拟化在软件层截取主机端对逻辑空间的I/O请求,并且把它们映射到相应的真实物理位置。
最基本的存储虚拟化实现是在主机层,通过操作系统的逻辑卷管理器能够方便的为应用和用户分配存储容量。此外,存储虚拟化也可以用在文件存储系统、块存储系统上。由于LUN管理起来比较复杂,却又需要灵活的进行空间分配(特别是在多用户环境中),因此块存储虚拟化更常见一些。下面,我们会概括地介绍网络层和存储设备层的虚拟化技术,但不包括主机层的部分。
有了存储虚拟化,我们可以对group、LUN和partition说再见了
过去,分配存储空间的过程必须经过创建RAID group,分配LUN和Partition卷等几个步骤,这个过程比较复杂,而且效率不高,特别是当我们需要在一个存储柜中平衡性能与物理磁盘的可用性时更是如此。举个简单的例子,如果希望扩展一个正在使用的主机卷,那么我们面对的则是一个非常耗时的过程,涉及到LUN的改动以及数据的拷贝。相反,存储虚拟化技术却能提供一种更好的方式,既可满足向应用程序和服务器供给存储资源的要求,又可以节约时间并减少资源的开销。其秘诀就在于利用存储系统的“智能性”去做更多的后台处理。与此同时,存储虚拟化还可以利用自动精简配置技术进行容量分配,它可以替代手工的操作并能够提升存储空间利用率。
最开始的时候,存储虚拟化只是操作系统层一个高效供给和管理存储资源的工具。通过隔离主机层与物理存储资源,存储虚拟化技术可以将来自于不同存储设备(即使是不同厂商的设备)的存储容量汇集到一个共享的逻辑资源池中,这样存储的管理就更容易了。任何单体存储阵列所创建的物理卷的容量都是有限制的,而多个异构的存储系统联合在一起就可以创建出一个更大的逻辑卷。在多数情况下,存储虚拟化都被视为一个共享的存储平台,尽管每个物理存储系统仍然需要单独进行维护,但利用存储虚拟化,我们可以对已有的存储系统重新进行规划部署,通过跨设备管理,总体运维成本会大幅降低。
存储虚拟化另一个好处是能够为性能提速,因为一个操作系统卷可以轻松地分布到更多的磁盘上,这也间接地影响到空间利用率。存储虚拟化还可以做到分层存储,并在不同的设备之间迁移数据。比如将旧数据转移到归档装置,或者将访问频繁的数据库索引转移到SSD固态盘。这些数据迁移的活动通常由主机层、应用层或文件系统层的策略引擎控制。此外,出于灾难恢复的目的,同样的迁移机制也常常用于站点之间的数据移动。
基于存储设备的存储虚拟化
对于传统的纵向扩展架构的存储来说,控制器和磁盘柜是各自独立的,因此存储设备层的虚拟化技术通常内嵌在控制器的操作系统中。新型的存储阵列通常能提供数十到数百TB的存储容量,这已经是最基本的特性。许多系统还包含有分层存储功能,分层既可以在一个虚拟化的系统内部,也可以在多个独立的系统之间进行。分层算法一般基于不同的存储介质类型(高性能低容量磁盘、大容量低速磁盘以及SSD固态盘)和不同的RAID级别。有些系统还具备专门的分层策略引擎,能够判断数据的活跃度、应用的类型或其他指标,并在不同的存储层之间移动数据文件或数据块。为了保证系统的高可用性或出于容灾的目的,大多数系统支持在两个机箱之间或本地到远程站点之间进行数据拷贝。但遗憾的是,目前大多数的存储系统,包括存储虚拟化产品,都无法支持跨不同厂商系统的异构环境。因此,对于一个跨平台的存储虚拟化解决方案来说,整合不同厂商的存储系统是其中关键。而这样的解决方案大多是基于网络层技术实现的。
基于网络的存储虚拟化
若干年前,存储行业普遍的看法是:像存储虚拟化这样提供特殊服务和扩展的存储控制功能,最终都 会在SAN网络层通过智能SAN交换机实现。的确有不少存储虚拟化产品正沿着这个方向发展,网络层的存储虚拟化技术通常以软、硬件装置的形式部署。这些装 置有些类似存储控制器,可以与经过认证的磁盘阵列或存储系统互连;另一些则完全是软件,直接安装在服务器或虚拟机VM上。存储虚拟化装置可以直连异构的磁 盘阵列,也可以通过光纤通道SAN或iSCSI SAN连接。多数产品自身还提供存储容量。大多数解决方案还包括一系列的高级功能,比如文件共享、快照、重复数据删除、自动精简配置、复制、持续数据保护 等等(CDP)。
带内虚拟化和带外虚拟化
在存储虚拟化技术发展的初期就同时存在两种主要的技术架构:带内虚拟化和带外虚拟化。带内 架构会在服务器与物理存储设备或SAN之间部署一个控制 器,所有的存储请求和数据流都要经过这个控制器处理。而带外模式的产品会在网络层部署一个元数据控制器,将所有的存储请求重定向到真实的物理位置,但其本 身并不负责数据处理。与带内模式相比,带外模式的处理流程更加复杂,但却可以减少CPU的负载。带外的存储虚拟化还可以避免潜在的系统崩溃风险,因为带内 模式下存储是经过重新映射的,一旦带内控制器失效,客户端主机与后端存储的连接也将丢失。今天,大多数基于网络的存储虚拟化解决方案采用的都是带内模式, 其中主要的原因可能是现在CPU的处理能力更强,与过去相比不在是架构的瓶颈。而带内虚拟化架构普及的另一个原因则是带内方案实现起来更容易,可以更快的 推向市场,问题也更少。
各类存储虚拟化产品
虚拟化似乎已经成为某些中端和大型存储系统中的必备功 能。不过,各种存储阵列所带的虚拟化技术却大相径庭,多数系统无法兼容其他厂商的存储设备。这 里,我们不会一一罗列所有的产品,而是聚焦在一些细分的产品类型上。下文中,我们会介绍一些最具代表性的存储虚拟化产品,它们来自于多家厂商,有硬件也有 软件。
DataCore Software公司的SANsymphony。SANsymphony是基于网络架构、带内模式的软件产品。它可以运行在x86服务器上。它的后端可以 连接各种异构的存储设备,包括FC、FCoE以及iSCSI,而前端则通过FC或iSCSI与主机连接。SANsymphony支持多节点集群模式,既可 以扩展容量,又能够提供高可用性。它还具备远程复制以及同步镜像、CDP、自动精简配置和分层存储等功能。
EMC公司的 Invista。Invista是一个带外模式的软件解决方案,它需要一对儿服务器(被称作Control Path Cluster或CPC)做平台,并且要和Brocade或Cisco的智能交换机配合使用。Invista可以支持多数主流厂商的磁盘阵列,对主机的前 端和到存储的后端都采用光纤通道连接。Invista可以在两个存储阵列之间做镜像、复制和基于时间点的克隆。
FalconStor Software公司的Network Storage Server (NSS)。NSS是一个基于网络的带内装置。支持通过iSCSI、FC或Infiniband与后端异构存储设备连接,前端采用光纤通道或iSCSI与 主机连接。NSS支持扩展到多个模块并实现高可用。除了著名的广域网优化远程复制功能之外,NSS还可以提供同步镜像、自动精简配置、快照和克隆。
Hitachi Data Systems公司的Universal Storage Platform (USP) 。USP是一个tier 1级别的高端产品,它可以通过带内的方式混合连接大多数主流存储厂商的磁盘阵列。USP具备Tier 1级别产品所必备的各种高级功能特性和服务能力,此外还包括内置自动精简配置以及增加外部附加存储的扩展能力。
IBM公司的SAN Volume Controller (SVC) 。IBM的SVC是一个基于网络架构的带内虚拟化控制器。一般部署在SAN环境,可以混合连接iSCSI或FC存储系统。成对的SVC控制器节点之间可以 实现高可用,一个SVC集群最大可以支持8个节点,带宽和可管理容量都可以扩展。利用SVC模块可以实现跨不同存储系统的数据复制,在本地和远程SVC节 点之间还能实现数据镜像功能。
NetApp公司的V-Series Open Storage Controller。V系列开放存储控制器是一种带内虚拟化解决方案,它与NetApp的filer控制器非常类似,区别在于V-Series还可以连 接更多的异构存储阵列。V-Series的后端通常与FC SAN连接,合并后端存储提供的LUN,将它们组成一个存储资源池,然后再从资源池中划出NetApp格式的LUN以便提供块级或文件存储服务,后面的部 分就像普通的NetApp filer控制器一样。
NetApp最近还收购了Engenio Storage Virtualization Manager (SVM),一个带外模式的网络架构存储虚拟化控制器,同样支持异构存储系统。至于SVM的市场定位等细节,NetApp尚未公布相关信息。
存储虚拟化需要注意的问题
大多数的存储虚拟化产品都是带内模式的,所以我们要注意一下虚拟化装置或集群的性能效率问题,因为它与容量扩展息息相关。此外,高级存储功能也会带来大量的CPU开销,会进一步影响有效性能。
存 储虚拟化可以说是一个非常有效的工具,它可以通过提高空间利用率和优化性能来达到消减固定资产投入目标。此外,更大的惊喜还在于存储虚拟化对于降 低运维成本的贡献。它可以简化存储管理、甚至是跨平台管理,管理成本明显减少。存储虚拟化很容易扩展,只需要简单的操作,通常存储系统不需要停机,客户端 主机也不需要修改配置。
相关链接1:什么是scale-out存储架构?
“Scale-out”横 向扩展存储通常是由多个节点组成的模块化系统,每个物理节点既包括处理器部分,也含有存储容量。虽然不一定能整合异构存 储,但在这种集群架构下,每增加一个节点,容量和处理能力也随之增加,可以说是一种渐进式的增长。在scale-out横向扩展架构中,虚拟化不只是一个 附加功能,而是必需具备的基础技术。虚拟化是scale-out系统能够无缝扩展,而客户端主机卷能够横跨多个存储节点的前提条件。
相关链接2:文件级存储虚拟化
常 见的存储产品中有些能够提供文件访问服务(NAS功能),但它们通常只能在块级实现数据的虚拟化。然而,现在还有一些网络附加产品可以整合不同的 NAS系统实现NAS虚拟化。这样的装置可以为前端用户提供统一命名空间,并将文件访问请求映射到后端真实的物理NAS设备上。它们还可以提供文件级别的 数据分层与迁移功能,有些甚至还提供云存储服务功能。下面我们就来介绍几个这样的产品:
AutoVirt AutoVirt公司发布了一款基于带外模式的文件存储虚拟化软件产品,它可以运行在一对儿Windows server服务器或虚拟机VM上。它能够提供统一命名空间,并且还有一个支持数据分层、迁移和归档的策略引擎。因为是带外架构,所以即使把它从网络环境 中撤走,数据的访问也不会受到影响。
Avere System公司的FXT FXT是一个scale-out集群 NAS装置,一个集群最大支持25台2U节点,而且每个节点都配置有固态存储介质(DRAM或SSD)。FXT集群使用一个支持全局命名和分层存储的文件 系统,可以连接其他厂商的NAS系统,它也支持跨平台的文件虚拟化。
F5 Network 公司的ARX ARX系列产品是一种带内模式的文件虚拟化装置,它可以把多种不同的NAS设备整合到一个统一命名空间,ARX支持CIFS和NFS协议。它也有一个策略 引擎,可以根据文件的属性、活跃程度或其他规则,自动将数据文件从一个NAS系统迁移到本地或远程云计算中心的另一个NAS系统上。