数据块级别存储虚拟化是为用户的应用程序提供逻辑存储的一种存储服务,数据块级别的存储虚拟化对用户抽象了存储的真实物理地址。在软件层面,它解析逻辑IO请求,将其映射成正确的物理地址。如此一来,存储虚拟化使得管理员可以提供自由可伸缩的存储容量,与此同时,最终用户感知不到其存储背后所包含的存储扩展、数据保护和系统维护等各种琐碎的细节。
在众多虚拟化技术中,数据块级别的存储虚拟化技术的存在有些年头了,虽然不像服务器虚拟化那样在数据中心大行其道,但它也在被使用。在Storage杂志进行的“2011年存储采购意向”的调查(北美地区)中,433个参与调查的用户中, 32%表示在他们的存储中已经部署了存储虚拟化,23%的用户正打算评估这种技术。而在那些已经部署了存储虚拟化的用户中,14%的用户表示他们所有的存储都已经被虚拟化了,72%的用户只有部分存储设备被虚拟化。
数据块级别的存储虚拟化技术可以应用到直连在虚拟化引擎上的内部存储,也可以应用到网络上的外部存储。这些外部存储可以是来自同一厂商的同构存储,也可以是来自不同厂商的异构存储。存储虚拟化技术最常见的形式是部署在主机端或者阵列端,也有一部分部署网络存储设备端。也有部分的存储虚拟化部署在虚拟机环境中,为虚拟机提供共享存储,以实现虚拟机相互迁移、虚拟机集群和虚拟机的动态分配。
存储整合是SAN崛起最原始的驱动力,数据块级别存储虚拟化用物理存储创建一个共享存储池的做法, 与当年服务器连接到SAN架构取代服务器直连存储的DAS架构的那段历史如出一辙。除了给多台服务器提供存储空间,磁盘阵列提供一系列其他的功能,比如快照、远程复制,和后来的精简分配和重复数据删除。
新的scale-out存储架构依赖于存储虚拟化技术从物理上分开的的多个存储中创建一个存储池。但即使是在更早的传统scale-up架构中,存储虚拟化或多或少已经成为企业级高端存储或中端存储的一个标准功能。尤其是在大量主机需要访问存储或者系统稳定性和业务连续性要求很高的环境中,存储虚拟化能高效管理共享存储系统。
实施虚拟化存储的理由
为什么IT部门想要虚拟化他们的存储资源呢?在很多场景下存储虚拟化都大有用武之地,下面让我们逐一阐明。
支持服务器虚拟化和高可用。存储虚拟化提供的共享存储,让虚拟机之间做迁移和负载均衡时不需要在存储系统之间迁移数据,同时也简化了动态虚拟化环境下存储资源的优化。共享存储池支持虚拟机集群技术以实现虚拟机的高可用,也就是在检测到错误时自动切换并能快速重启虚拟机。同样的,共享存储池也支持物理服务器上关键应用程序的高可用,也就是手动切换存储系统并能支持应用程序的集群技术。
简化管理。从管理的角度来看,与管理服务器直连存储相比,一个大的共享存储意味着更少的管理工作。当需要扩展现有存储或者在存储系统之间迁移数据的时候,存储虚拟化能够提供无干扰的存储空间扩容。越大的磁盘阵列越发拥有更好的管理工具,从而能更简化给服务器分配存储这类日常工作,减少管理员的工作量。
存储资源整合和分级存储。尤其是在NAS设备上,存储虚拟化可以被用来整合存储和对存储资源进行重复利用。举个例子,越来越多的对性能要求很高的数据会被迁移到更新的磁盘阵列上,而老的磁盘阵列作为二级存储则被用来存放备份数据。很多存储设备和虚拟化设备也有存储分级功能,能够实现这样的数据分层存储。
简化数据保护和灾难恢复。存储虚拟化技术能够帮助数据在本地和异地直接的拷贝以实现灾难恢复,很多存储虚拟化解决方案自带了远程异步复制功能。
易于部署。数据块级别虚拟化通常的实现方式有三种。它可以是运行在操作系统管理程序上的软件,也可以是和DAS直连的虚拟机或者应用程序服务器,也可以是运行在磁盘阵列的存储控制器上的软件。存储虚拟化功可以嵌入在存储设备中,要么作为一个自带存储的整体硬件设备,要么作为运行在服务器硬件上的软件解决方案。我们会在接下来的系列中逐一讨论这些实现方式。