几乎所有的存储系统都在用户和物理设备之间提供某种形式的抽象化。即使逻辑卷管理器也提供一定水平的虚拟化。不过,大部分旧的存储系统要求你在创建卷或RAID(独立磁盘冗余阵列)组的时候选择好驱动器以及定义好有多少个驱动器将和每个组关联。
虽然这个流程中有一定的“虚拟成分”,你的应用程序现在面对的是组而不是单个驱动器,但是这并不会让存储更便于管理。我们使用存储虚拟化的目的之一就是让存储的管理流程--尤其是配置流程--更加简单,让存储的使用更加有效率。
例如,如果你不用虚拟化而希望定义一个高性能卷,你必须定义好哪些高速驱动器并入那个卷。你将必须知道系统里的每个驱动器都在哪里以及这些驱动器都在哪些驱动器架上以便进行合理的负载均衡和管理好可用性。这样的话,你就倾向于购买专门用途的存储系统,同时尽量使用同样类型的驱动器。
虚拟化存储系统通常会帮你做好这些工作,它可以按照类型或速度将驱动器进行编组。当你决定需要一个200GB的高性能卷的时候,系统会判断哪些驱动器应该用于这个卷以及应该用多少。在许多情况下,系统将利用给定类型中所有可用驱动器的一部分来提高性能。这使得多种驱动器类型的混合配置更加可行,也让速度更加可控,因为系统可以判断好应该将数据放在哪里。
许多这种虚拟化系统还可以随需地虚拟分配容量。这种技术我们称之为自动精简配置。就像我们在我们的自动精简配置白皮书上讨论过的那样,这种技术让你可以过量配置现有的存储,而实际上从物理上来说,大部分应用程序不会用到容量的最高上限。
一些存储虚拟化解决方案进一步提高抽象化程度,将存储软件从存储控制器那里抽象化出来。这样的话,任何有存储的服务器,或任何连接到这些服务器上的一个阵列,都显示为一个大的存储系统。这让管理员可以使用连接到一个或多个服务器等级系统的各种存储,把存储当应用程序来运行。实际上,现在有几种存储应用程序可以在虚拟化服务器环境内作为虚拟机来运行。
其他系统则采取更加常见的交钥匙方式,将存储虚拟化软件和物理硬件作为单个捆绑交给客户。这样的话,从理论上来说,厂商可以更好地提供支持和维护。在一些情况下,他们将硬件予以定制化以便作为虚拟存储软件的辅助,让它们可以提供更好的性能和可扩展性。从某种程度上来说,我们在虚拟服务器领域看到厂商开始用类似的方式来提供整合的服务器和网络堆栈以便支持交钥匙类型的虚拟服务器体验。
和服务器虚拟化一样,存储虚拟化也在发展中。我们将看到市场的更多演进。我相信两种部署风格--存储作为应用程序,整合的存储虚拟化--都将取得成功。尽管厂商极力推崇,但是存储虚拟化还是有自己的缺点的,我们将在未来的博文中予以讨论。