漫谈虚拟化08-三种类型存储虚拟化

今天,咱们接着来聊存储虚拟化。

1 存储虚拟化

存储虚拟化,技术本质就是 I/O 重定向和存储单元块地址重新编排而已。如果把存储虚拟化功能看作应用和存储设备之间欺上瞒下的逻辑层,那么这层的主要任务就是,对上层 I/O 统一重新处理,对下层存储空间统一编址。其它所有高级功能,都是基于这一基本机制衍生的。

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

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

根据虚拟化实现位置的不同,可分为:

1.1 基于网络的存储虚拟化+文件系统(网络级)

目前,网络级存储虚拟化可采用两大架构实施:

(1)一是对称法,即将不同设备嵌在存储网络基础架构的数据路径中

处于数据路径内的对称虚拟化通常要求设备安装在存储用户和存储资源之间,至少要在数据流中发挥作用。对称虚拟化的主要缺点在于,它会形成 SAN 瓶颈,从而限制 SAN 的性能和可扩展性,并使大规模高度可用配置的设计工作大为复杂化。

对称虚拟化方法要求所有应用服务器的数据都经过统一的计算机。为了避免严重影响性能,该计算平台要确保整个 SAN 的吞吐能力不受影响,因此,往往要购买昂贵的硬件配置。即便采用高性能硬件,可扩展性仍然成问题,因为对称设备的最大带宽是固定的。

(2)是非对称法,就是将不同设备独立于存储网络基础架构的数据路径之外

处于数据路径之外的非对称虚拟化通过结合采用设备和代理来创建并管理虚拟卷,同时确保数据能在服务器和存储子系统之间直接传输。通过让多个存储子系统与多个服务器并行工作,整体性能得以提高,达到乃至超过 FC 结构的最大带宽。

在非对称虚拟化中,元数据在数据路径外进行处理。设备作为元数据中心工作,检查物理存储空间并分配虚拟卷,而 SAN 中每个服务器上的代理则负责实际的虚拟卷映射。代理从设备处检索卷配置,并向操作系统呈现虚拟卷,使操作系统像使用磁盘一样使用。操作系统向虚拟卷发送 I/O 时,代理截住 I/O,将卷的逻辑地址转换为物理地址,并直接向存储设备发送 I/O。

这样的架构具有对称虚拟化的灵活性,同时又不会影响性能,而且还避免了高昂的硬件成本。设备无须处理实际的数据传输工作,因此可以采用小型的低成本设备。

这种模式下,主机挂载存储设备(SAN、本地磁盘等),主机在存储设备上创建文件系统,所有的 VM 磁盘均以文件的形式存放在文件系统上。架构示意如下:

当多个主机服务器需要访问多个异构存储设备时,可以使用基于网络的存储虚拟化技术。该技术通过在 SAN(Storage Area Network)中添加虚拟化引擎实现。功能示意如下:

主机 1~4 可以使用磁盘阵列 1~4 上的存储空间,该技术常用于异构存储系统的整合和统一数据管理,在实际使用中较为常见。

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

缺点:I/O 路径长,性能有损耗,部分产品数据管理功能弱,难以达到虚拟化统一数据管理的目的,部分产品成熟度低,仍然存在和不同存储、主机兼容的问题。

1.2 基于存储设备的存储虚拟化(存储子系统级)

当有多个主机服务器需要访问同一个磁盘阵列时,可以使用基于存储设备的存储虚拟化技术。在这种模式下,存储设备支持通过接口创建和管理存储单元的能力,主机通过通过在存储控制器上添加虚拟机,将挂载的存储设备容量划分为多个存储单元,供不同的主机系统访问,以此来实现业务。架构示意如下:

这种方法最初用在上世纪 90 年代的大型机中,是目前最常用的存储虚拟化方法之一。具体操作是在特定存储子系统的存储空间上创建虚拟卷,以实现虚拟化功能。

将所有 SAN 存储资源集中到一个存储池中并同时管理多个存储子系统上的虚拟卷,这就要求用其他方法来补充和完善该方法,通常只有连接单一类型的 RAID 子系统的同质 SAN 才采用的方法。该技术常用于在同一存储设备内部,进行数据保护和数据迁移。该技术常见于中高端存储设备。功能示意如下:

磁盘阵列 1 的存储空间可以提供给主机 1 和 2 使用,磁盘阵列 2 的存储空间可以提供给主机 2~4 使用。

在存储系统级创建虚拟卷可以独立于服务器,但通常需要采用统一的管理结构,只适用于设备一致的环境,灵活性有限。

优点:数据管理功能丰富,不占用主机资源,还可以提供一些存储高级业务,例如精简配置、快照和链接克隆等;

缺点:依赖存储设备的能力,一般只能对本设备内的磁盘进行虚拟化,而且不支持不同厂商数据管理功能之间的互操作,多套存储设备需配置多套数据管理软件,成本较高。

1.3 基于裸设备+逻辑卷的存储虚拟化(主机级)

当仅需要单个主机服务器(或单个集群)访问多个磁盘阵列时,可以使用基于主机的存储虚拟化技术。该技术又称为逻辑卷管理,通常由主机操作系统下的逻辑卷管理软件实现。逻辑卷管理软件把多个不同的磁盘阵列映射成一个虚拟的逻辑块空间。当存储需求增加时,逻辑管理软件能把部分逻辑空间映射到新增的磁盘阵列,因此可以在不中断运行的情况下增加或减少物理存储设备。

在这种模式下,主机挂载存储设备(SAN、本地磁盘等),在通用块层创建物理卷,再使用逻辑卷进行划分管理。架构示意如下:

裸设备+逻辑卷的方式是最直接的存储控制方式,直接在通用块层之上划分成以 1G 为单元的存储块,通过管理这些单元,实现卷的维护操作。功能示意如下:

主机 1 可以使用磁盘阵列 1 和 2 上的存储空间,主机 2 可以使用磁盘阵列2上的存储空间,主机 3 和 4 均可使用磁盘阵列 3 和 4 上的存储空间。该技术使主机经过虚拟化的存储空间可以跨越多个异构的磁盘阵列,因此常用于在不同磁盘阵列之间做数据镜像保护。

主机级存储虚拟化通过运行在服务器级的存储管理软件进行,这种方法的主要优势在于,它能让多个存储子系统与多个服务器并行工作。

这种方法的主要难点在于,它要求整个 SAN 资源预先在多个服务器上分区。虚拟化只能在预先分配的存储空间上执行,这就丧失了 SAN 的主要优势之一,而且也影响了卷相对于服务器的独立性。

通常说来,所有 LUN(逻辑单元)要分配给特定的服务器,这就限制了单个存储子系统上的服务器数量。而它与虚拟卷最大的区别就在于,虚拟卷包括不同存储子系统上的具有不同特性的存储空间,而且还能展开成任何可用存储空间。

再打个比方说,要是虚拟卷创建在两个 LUN 的存储空间上,那么,该虚拟卷就很难从一个服务器轻松转移到另一个服务器上,尤其是在同一个 LUN 上还创建了其他卷的情况下更是如此。

主机级虚拟化通常也需要通过一定的分区并行机制和 LUN 掩码技术来扩大管理功能。此外,还要依靠 LAN 连接实现服务器间的同步,这就会影响整个 SAN 的可靠性。

优点:支持异构存储和异构服务器,且不依赖于硬件设备;

缺点:I/O 路径简单,读写性能最好,但存在操作系统和应用的兼容性问题,而且会导致主机升级、维护、扩展复杂,容易造成系统不稳定。

今天就聊到这里。

图片授权基于:CC0协议

  • 发表于:
  • 原文链接:http://kuaibao.qq.com/s/20180315A0MD3P00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。

扫码关注云+社区

领取腾讯云代金券