在本系列的第一部分,我们讨论了存储虚拟化是如何实现不停机操作,并使用户能够通过改造存储架构而减少计划内停机时间这一重要问题的。
存储虚拟化提出了一个从物理到逻辑的存储设备概念。它为消耗资源的企业提供了一种简单的、统一的复合架构。虚拟化是企业存储阵列自有的能力,它把多个固定磁盘驱动聚集到一个单一的物理架构中,为主机通道提供逻辑卷。最近,出现了一种新的存储技术,它从整个SAN系统的多重、多种阵列中把空间虚拟化,并用一个物理点管理这一空间的逻辑卷。
然而,这一新的虚拟化技术涉及许多不同的方法和问题。在企业环境中,解决方案能否带来最大价值架构起着关键作用。
主机系统的存储虚拟化
一种集成、管理多个SAN系统设备空间的解决方案已在许多最终用户环境中得到应用,这就是主机逻辑卷管理器(LVM)。的确,LVM正成为最先进的服务器操作系统的标准部分。LVMs具有软件功效,管理从各种存储方式中产生的逻辑卷,配置适合某种应用所需的空间。举个例子,它们可以通过连接一组在阵列水平上配置的小规模空间来形成一个大空间;它们也可以把大的阵列卷分成几个易管理的小单位;或者在维护一个应用空间时,为了正常运行,他们可以在若干个阵列空间中提取数据。
LVMS提供了大容量、多方式虚拟化等优点,但也有一个内在缺陷,由于他们是在主机系统上工作的,因此必须对每一台主机单独设置配置和应用。如果主机数量不多,这不算个问题。但在一个企业的系统设置中,通常都有几百台甚至上千台主机通过SAN系统存储数据,控制分布空间很快就成为一个严峻的问题。如果系统环境改造变化很大,需要频繁修改配置,这个问题就愈加严重。如果在不同的操作系统上使用不同的LVMS,易操作性也是一个问题,要求操作员精通多种工具。使用主机系统方案时,互操作性(确认第三方的LVMS与修改过的操作系统、新的方案相兼容)和性能(密集的LVM运行会破坏主机处理周期)也是个问题。
网络系统的存储虚拟化
网络系统的存储虚拟化结构试图解决主机系统模式中的内在问题。在主机和子系统之间的一个层面插入虚拟化的功能,此功能主要是简化易操作性。有两种结构方式分别是,数据通道中和数据通道外。
·数据通道中方式
数据通道中结构是在主机和阵列之间的网络数据通道(或“通道中”)中插入虚拟化手段。这些设备通常提供空间管理和其它配套功能,如数据迁移和拷贝服务。他们行使存储管理器的作用,替代正在虚拟化的设备。存储虚拟设备本身可以是一个专用的服务器,运行装在标准操作系统上的虚拟化软件;也可以是一个专门的应用程序,运行嵌入的编码,甚至是一个带有能连接附加阵列框架后端的阵列管理器“前端”。这种设备的最大好处是简化——它是一种自有(全新)的方式,可以集中管理多种连接设备。
通道内方式最主要的缺点是在网络路径上增加了一个额外的“跳”,这样就增加了主机和物理存储设备之间的延时。一些通道中设备试图以在设备内部使用缓存的方法解决增等待时间的问题。和存储子系统一样,缓存的益处很大程度上取决于应用和缓存算法的效率。网络内部的缓存还会产生更多的复杂问题。对于需求冗余的高效环境,若要使一对通道中的缓存保持一致,就需要缓存镜像,这又增加了一些等待时间。它还要求具有强大的错误和故障处理逻辑,以确保经过缓存和确认的I/O 被安全地存储到后端。
通道中虚拟化结构的一个更为严重的缺点是限制了其扩展性。由于所有虚拟化区域中的I/O需要通过通道中方式,这样不是在带宽就是在处理能力方面会形成一个瓶颈。一旦任意一种资源耗尽,就必须采取数据扩展策略。如前面提到的由于对所有通道节点实行缓存镜像,使得“横向扩展(scale out)”策略(其中附加了n个节点用于扩展)变得不实际。取而代之的唯一可行的办法是“向上扩展(scale up)”策略,这要求通道中的节点越来越大,以实现通道中大规模的虚拟化。最新出现的大规模、高性能的通道中虚拟化设备的单片企业阵列就证明了这一点。在某种程度上,对于一个大的环境来说,甚至“向上扩展(scale up)”策略也不够,而需要采用一种新的通道中设备。每一个通道中设备对其各自的虚拟区域负责,管理独立的虚拟区域。然而,因管理分散独立的区域费用很大,因而通过虚拟化降低复杂性和简化管理的初衷就无法实现。
·数据通道外方式
通道外方式的设计是通过从数据流中分割管理信息,避免通道中结构所产生的内在运行问题。在通道外结构中,有一个叫做元数据服务器的单独硬件,它存有虚拟化存储的逻辑-物理关系信息,向每一个服务器传送信息,分配I/O指令。这种数据传送通过一个独立的网络完成,它与数据交流使用的光纤通道分开,这即是通道外模式。元数据服务器和主机之间的传输通常是通过装在主机上的接口程序来实现的,这台主机与修改后的、对指令重新分配的I/O驱动器共同工作。
由于主机直接将虚拟化存储指令分配到目的设备上,I/O运行不再受到增加等待时间或带宽的制约。这样,通道外方式理论上更适合于高性能应用。它还避免了通道内自有的数据完整性问题。任何“状态”或版本的数据都不会滞留在网络中。数据正确地存储入阵列之后,主机的任务才算完成。然而,这种通道外方式又引出了一些主机系统方式的易操作性问题,也就是说,需要加载、维护和修改主机系统软件。
一种解决易操作性问题的改进后通道外方式即将产生。这一方式利用智能SAN交换机作为平台,构建以网络为基础的存储虚拟化。这些交换机带有专门的端口级处理器(可能是被频繁优化的ASICs,但也可能是FPGAs或网络处理器)以最快速度检验并重新分配I/O指令(从逻辑地址转换到物理地址)。把这些处理器直接汇集到现有的SAN系统结构上,这就无需对另一层虚拟化方案进行管理。以前的操作由主机接口程序管理的主机元数据被加载到智能端口的闪存上,不再需要主机系统软件。元数据服务器不与主机交换信息,而是和智能端口交换信息,确保总能为通过这些端口存储信息的主机提供正确的映射信息。总而言之,改进后的通道外方式,其易操作性大大提高。
这种基于交换器的通道外方式更适应“横向扩展(scale out)”策略。由于大多数的I/O运算在智能交换机内由端口的处理器直接处理,如果需要增加规模(scale),只需要增加更多的处理器。可以在结构上再增加一个交换器,或在现有的交换器上增加一个处理叶片。增加的处理器仍由同一个元数据服务器进行管理,无需频繁增加规模(scale),因为它并不处理I/O通信,只是管理所有端口的元数据。简言之,这种结构理论上能够扩展大规模的配置,大到可以支持当前所有的大规模数据中心推广存储虚拟化的地步。
结语
存储虚拟化的方式多种多样,各具特色。如我们所介绍的,结构可对存储虚拟化解决方案的易操作性、规模,乃至为使用者带来的价值起决定性作用。对任何可能采用这种技术的用户来说,主要考虑的问题是要全面了解该解决方案的架构。