存储虚拟化概述

目录

1. 存储体系架构

2. 存储设备层虚拟化

3. 块聚合层虚拟化

3.1. 块聚合层虚拟化实现方式

3.2. 块聚合层虚拟化分类

3.3. 块聚合层虚拟化技术

4. 文件/记录层的存储虚拟化


      存储虚拟化是一种将存储系统的内部功能从应用主机或者网络资源中抽象、隐藏或者隔离的技术,其目的是进行与应用和网络无关的存储或数据管理。存储虚拟化可以在存储体系结构的多个层面实现,虚拟化为底层存储资源的复杂功能访问提供了简单、一致的接口,使用户不必关心底层系统的复杂实现。

1. 存储体系架构

      现代存储体系结构主要包含三个部分:应用(Application)、存储域(Storage domain)和服务子系统(Services),如图1所示。

图1. 存储体系结构(存储工业协会SNIA)

        存储域:存储域是存储体系结构的核心,它包含三个层次:文件/记录层块聚合层存储设备层,通过存储域可以建立上层主机的用户应用与部署在底层的存储资源之间的映射关系。

  • 文件/记录层:是上层应用与存储资源之间的接口,采用文件系统或者数据库等方式,能够屏蔽底层硬件信息并以文件或者结构化数据的形式为用户提供数据信息的存储访问能力。
  • 块聚合层:主要用于将多个底层存储设备的存储资源块聚合为能够被同一的存储资源,其实现可以在主机系统、存储网络或者存储设备等多个位置上实施,其目标是将数据块的物理位置与相应的逻辑位置关联起来。
  • 存储设备层:主要对数据块存储的物理位置进行识别,并将数据块从真实的底层物理存储设备中读出或者写入。存储设备层也可以直接为文件/记录层提供数据访问接口,能够独立完成逻辑描述和物理存储位置的映射,二无需经过聚合层。

       服务子系统:服务子系统是存储域的辅助系统,包含一系列与存储相关的功能,如管理、安全、备份、可维护性及容量规划等。

      对于存储系统而言,不同层次的虚拟化实现具有不同的目标。存储设备层的存储资源是最底层的物理设备,通过数据块存储地址的虚拟化,实现对存储内容的快速寻址;块聚合层虚拟化的目标是通过对存储设备层的物理存储设备进行合理组织,将其构建为能被统一访问的物理资源池;文件/记录层进一步对物理资源进行抽象,将其虚拟化为逻辑资源,并为上层应用使用

2. 存储设备层虚拟化

       存储设备层的存储资源是指各个独立的存储设备,其中,磁盘是最重要的存储设备,其虚拟化主要体现在数据块存储地址的虚拟化上。

       磁盘上的存储信息是用C-H-S(柱面号-磁头号-扇区号)来表示的,因为不同容量的磁盘拥有的柱面个数不同,所以需要针对不同的硬盘设计专门的寻址方式。然而,这对于需要进行磁盘访问的操作系统和应用来说是不可行的,因为这需要它们了解每种磁盘的物理特性,磁盘虚拟化正是解决这个问题。

       磁盘虚拟化就是将用C-H-S表示的地址信息转换为具有连续编号的逻辑块地址(Logical Block Address, LBA)供上层的操作系统、管理程序、应用程序等使用,这就是逻辑寻址。磁盘虚拟化是由磁盘自身的固件来完成的,使用者无需了解磁盘内部硬件细节,通过逻辑地址就可以访问磁盘。磁盘虚拟化如图2所示。

图2. 磁盘虚拟化示意图

3. 块聚合层虚拟化

       虽然存储设备层的磁盘虚拟化技术能否将单个物理磁盘设备虚拟成逻辑块地址供操作系统和上层应用使用,但是单块磁盘的存储容量有限,为了实现更多物理磁盘的聚合与统一访问,则需要应用块聚合层的虚拟化技术。

       块聚合层的目标是通过控制物理存储切并将它们聚合成一个足够容量、高性能和高可靠性的虚拟存储器,再将虚拟存储器划分为多个小的磁盘驱动器分配给用户。块聚合层的主要技术有独立磁盘冗余阵列(Redundant Array of Independent Disks, RAID)和逻辑卷管理(Logical Volume Manager, LVM)等,如图3所示。

图3. 块虚拟化示意图

3.1. 块聚合层虚拟化实现方式

       根据虚拟化过程中对数据管理信息(元数据)和存储数据的不同访问方式,块聚合层的存储虚拟化技术可分为:带内虚拟化(In-band virtualization)带外虚拟化(Out-of-brand virtualization)

       在传统的共享存储访问中,服务器和存储设备之间的访问路径如图4所示。服务器通过存储网络访问存储设备上的元数据和数据,如图4所示。

图4. 服务器和网络存储设备之间的访问路径

       当采用虚拟化技术时,虚拟化设备(也称为虚拟化引擎)需要同时抽象元数据视图和数据视图的位置。如果虚拟化引擎位于服务器和存储设备之间的传输路径上,如图5(a)所示,对数据的访问和对元数据的访问共同存在于一条传输路径中,即数据路径和控制路径共同存在于数据流中,则为带内虚拟化。但是,如果虚拟化引擎将对元数据的访问和数据的访问路径分开,如图5(b)所示,即数据路径和控制路径分离,则为带外虚拟化


图5. 带内虚拟化和带外虚拟化

       在带内虚拟化中,虚拟化引擎直接插入到数据传输路径中,所有的读写请求都通过这个虚拟化引擎进行。这种方式可以实时处理数据流,但可能会对性能产生影响,因为所有的数据访问都需要通过虚拟化层。在带外虚拟化中,控制路径通过一个独立的管理接口进行,不直接参与数据传输。在这种模式下,虚拟化引擎不直接处理数据流,而是通过发送命令给存储设备来间接控制数据流。这种方式可能对性能的影响较小,但需要存储设备支持相应的命令和配置。

       从服务器角度,带内虚拟化变动量最少,这是因为服务器不需要通过存储网络去发现和连接多个存储设备,而只看到由虚拟化设备提供的巨大的单个存储资源。但是,虚拟化引擎对元数据的控制是服务器与数据之间的必经之路,这使得元数据部分也成为提高性能和可靠性的瓶颈。带外虚拟化将对元数据的控制转移到了数据路径之外,避免了带内虚拟化存在的问题,但是要求每台服务器上必须安装虚拟化代理程序,将I/O请求转发给带外虚拟化引擎来处理。

3.2. 块聚合层虚拟化分类

       根据块聚合层存储虚拟化实现的位置,可以分为:基于主机的存储虚拟化基于网络的存储虚拟化基于存储设备的存储虚拟化

(1)基于主机的存储虚拟化

       当仅需单个服务器(或单个集群)访问多个磁盘阵列时,可以使用基于主机的存储虚拟化技术。基于主机的存储虚拟化可以通过在每台服务器上安装逻辑卷管理(Logical Volume manager, LVM)软件来实现,它隐藏了物理存储资源的复杂性,并向操作系统提供存储资源的逻辑视图。因为物理存储抽象发生在服务器本身,因此,就不存在分离控制和数据传输路径了,也就避免了带内虚拟化带来的瓶颈和性能问题。服务器可以通过多条路径到达共享存储,存储设备资源也可以任意组合。

        主机的存储虚拟化架构如图6所示,在本例中,服务器1可以使用磁盘阵列12上的存储空间,服务器2可以使用磁盘阵列23上的空间,服务器3可以使用磁盘阵列234上的空间。

图6. 基于主机的存储虚拟化示意图

       主机的存储虚拟化的优缺点如下:

  •        优点:支持异构存储系统,容易实现;不需要额外的特殊硬件。

       缺点:占用主机资源,降低性能;存在操作系统和应用的兼容性问题;导致主机升级、维护、扩展复杂,容易造成系统不稳定。

(2)基于网络的存储虚拟化

      当多个主机服务器需要访问多个异构存储设备时,可以使用基于网络的存储虚拟化技术。该技术通过在SANStorage Area Network)中添加虚拟化引擎实现。基于网络的存储虚拟化将虚拟化引擎转移到了存储网络的核心部分。因为存储网络已经在所有服务器和存储设备之间建立了连接,所以更容易透明地截获和处理存储请求,是一种带内虚拟化方法。这种方案不需要在服务器上安装任何代理程序,也支持各种物理存储资源的整合,它需要的仅仅是网络设备具有足够的处理能力。

      基于网络的存储虚拟化架构如图7所示,服务1-3可以访问次磁盘阵列1-4。

图7. 基于网络的存储虚拟化示意图

      基于网络的存储虚拟化的优缺点如下:

      优点:与主机无关,不占用主机资源;支持异构主机和异构存储设备;统一不同存储设备的数据管理功能;构建统一管理平台,可扩展性较好。

      缺点:部分厂商数据管理功能弱,难以达到虚拟化统一数据管理的目的;部分厂商产品成熟度较低,仍然存在和不同存储和主机兼容性问题。

(3)基于存储设备的存储虚拟化

       若多个服务器需要访问同一磁盘阵列时,可以采用基于存储设备的虚拟化。该技术是在物理存储设备层实现虚拟化,即通过在存储设备的存储控制器上添加虚拟化功能来实现,其可将一个阵列上的存储容量划分为多个存储空间(Logical Unit Number, LUN),供不同的主机系统访问。基于存储设备的虚拟化可以实现对服务器完全透明,用户无需在服务器上安装任何代理软件。同时,与网络虚拟化不同,它位于存储系统的后端而并不是中间,所以避免网络负担的增加,不会成为新的瓶颈。

       基于存储设备的虚拟化架构如图8所示,磁盘阵列1的存储空间可以提供给服务器1和2使用,磁盘阵列2的存储空间可以提供给服务器2和3使用。

图8. 基于存储设备的虚拟化示意图

      基于存储设备的虚拟化优缺点如下:

      优点:与主机无关,不占用主机资源;数据管理功能丰富。

      缺点一般只能实现对本设备内磁盘的虚拟化;不同厂商间的数据管理功能不能互操作;多套存储设备需要配置多套数据管理软件,成本较高。

3.3. 块聚合层虚拟化技术

      直接附加存储(Direct Attached Storage, DAS)存储区域网络(Storage Area Network, SAN)是块聚合层的两种主要虚拟化技术。

       DAS是指将存储设备通过总线(SCSI、PCI、IDE等)接口直接连接到一台服务器上使用的存储方式。DAS存储主要依赖于服务器主机操作系统进行数据的I/O读写和存储维护管理,数据备份和恢复要求占用服务器主机资源。DAS适合中小企业的数据应用,在中小企业中,许多的数据应用是必须安装在直连的DAS存储器上。

      SAN是一种高速的、专门用于存储操作的网络,一般是由磁盘阵列(RAID)连接光纤通道(Fibre Channel)组成。SAN将服务器和存储设备连接在一起,能够为其上的任意一台主机和任意一台存储设备提供专用的通信通道。SAN将存储设备从服务器中独立出来,实现了服务器层次上的存储资源共享。SAN适合大型企业环境或需要高可用性和可扩展性的数据应用。

      DAS和SAN可以在多个不同位置采用相关的虚拟化技术。在服务器层,DAS可以通过安装和部署LVM和RAID等存储资源管理软件,实现块聚合。在存储设备层,DAS可以通过在磁盘上安装RAID控制器等软/硬件设备实现块聚合,使得存储数据的条块化处理不必在服务器上完成。相较于DAS,SAN虚拟化技术具有更高的复杂性。在存储设备层,不同厂商生产的不同型号的设备在进行虚拟化时存在巨大差异,因此,SAN要想在存储设备层对这些设备进行整合,就需要充分考虑设备虚拟化的兼容性和易用性。SAN在服务器曾进行虚拟化的最大问题在于需要对分散安装在各台服务器上的负责对存储网络进行共享访问的代理程序进行管理和维护。

4. 文件/记录层的存储虚拟化

       文件/记录层的存储虚拟化的目标是使上层用户的应用能够更好地使用下层的存储资源,因此,文件系统和数据库系统的虚拟化是这一层的主要技术。特别是系统虚拟化,能够使用户程序透明、高效地访问存储在远程的文件。

      最简单的文件系统虚拟化形式是网络远程文件系统(Network File System, NFS)。在NFS中,文件系统提供了专门的文件服务器用于管理网络中对文件的共享访问。这样的文件系统可以由网络中的很多主机共享,而这些主机上可能运行着不同的操作系统,它们可以使用与访问本地文件系统相同的机制对在文件系统中共享的文件进行访问。因此,一个应用或用户可以使用完全透明的接口访问文件而无需关心文件的物理位置。

       在存储系统的实际应用中,网络附加存储(Network Attacted Storage, NAS)系统采用的是文件/记录层的存储虚拟化技术。NAS是一种文件级存储架构,它使用部署在专用文件服务器上的文件系统管理底层的硬件存储资源,并由文件服务器通过网络协议为用户提供文件级的存储访问。与SAN类似,NAS能够为用户提供共享的存储资源,另外,它还能够通过提供与用户本地文件处理的接口一致的文件访问和操作接口支持异构用户的使用。由于NAS系统需要采用网络协议进行文件传输,因此,在数据备份或存储过程中会占用网络的带宽,这必然会影响企业内部网络上的其他网络应用。但由于NAS系统在易用的同时具有一定的价格优势,所以在业界有着广泛的应用。

参考文献

1. 雷葆华等. 云计算解码.  电子工业出版社, 2011.4.

2. 存储虚拟化技术介绍 - 知乎 (zhihu.com).

  • 37
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值