通过路径磁盘解决Hyper-V磁盘IO性能问题
固定的和动态的虚拟硬盘(VHD:Virtual Hard Disk)在Microsoft 的Hyper-V工作环境中应用非常广泛,但是也有一些VHD不能达到管理员所要求的性能。
幸运的是Hyper-V也支持稳定挂载在虚拟机主机上的
pass-through磁盘(注:根据微软的官方文档解释,pass-through 磁盘是指直接分配给虚拟机的物理磁盘,由虚拟机操作)。该存储配置和所有虚拟机存储盘一样,有其自身的优点和缺点。
那么为什么还要在虚拟机存储中使用pass-through磁盘呢?这些存储磁盘是如何适应所有的虚拟工作环境和策略的?本文对这些问题加以简单说明,同时还会介绍虚拟工作环境中pass-through磁盘的最佳实践。
使用pass-through磁盘的原因
IT管理员鉴于性能的原因选择使用该存储方法。因为虚拟机可以不通过抽象层就能够访问RAW磁盘,磁盘I/O能力可以通过
pass-through磁盘得到很大的提升。
pass-through磁盘也能够比固定类型的VHD节省更多的磁盘空间,这是因为可以使用存储文件的磁盘空间。该配置和动态VHD的空间使用情况相似,但是没有空间损失。
要注意的是pass-through磁盘的增强速度依赖于磁盘子系统类型。不要使用便宜的、速度慢的存储磁盘,却又同时期待会带来较高的性能水平。
如何设置pass-through磁盘?
pass-through磁盘能够使用任何类型稳定挂载在主机上的存储设备,通过USB、Firewire或者外界端口连接的存储设备不能作为pass-through磁盘使用。但是iSCSI和光纤通道以及直接挂载的存储设备都能够设置为pass-through磁盘。
可以在Microsoft核心项目组的博客上可以看到更多关于如何配置pass-through磁盘的信息。
主机硬件规划
在使用pass-through磁盘之前,需要检查一下主机硬件。在预定硬件或者架构存储设备时,根据预算规划最佳的可能磁盘子系统。可以严格地使用本地存储磁盘,但是很多连接在pass-through磁盘上的虚拟机都能够占满本地磁盘控制器和转心的磁盘I/O能力。
这种场景的理想情况下,我将会推荐iSCSI或者光纤通道存储。这是因为这两种方法更加灵活。然而该配置要求拥有一定数量的存储区域网络基础架构,以及更重要的是其它可以提供的快速存储磁盘。最后,更多的磁盘主轴将会恰当地提供更好的磁盘I/O性能。
备份基础架构规划
使用基于主机的Hyper-V虚拟镜像拷贝服务器写备份(Virtual Shadow Copy Service Writer),诸如Diskshadow,对于pass-through 磁盘是不可能的。但是也有可靠的方式完成诸如此类的备份。由于主机上虚拟机的数量通常都会减少,使用更加传统的备份策略,诸如在虚拟机内安装本地备份代理,就可以使用。随着主机上虚拟机数量的减少,在虚拟机备份过程中主机资源饱和就不太可能了。
在SAN基础架构中,基于SAN的快照(该技术在UNIX服务器中已经使用多年)是另外一种经常被忽略的备份方案。另外一个备选方案就是在SAN基本针对pass-through磁盘基于SAN的快照写脚本程序,然后挂载在可以备份到磁带的其它任何服务器。
基于工作负载的不同,可能不得不对每一个工作负载做快照以实现有效的备份(例如,SQL备份工作可以确保数据库的一致性不受到破坏)。
动态迁移和pass-through磁盘
无缝的动态迁移对于pass-through磁盘都是不可能的。但是这些存储磁盘可以用作连接Hyper-V集群基础以及和其它位于同一个集群共享卷内的硬盘驱动选择配对(固定的或者动态存储磁盘)。最终的配置要比快速迁移快,但是会比动态迁移慢一些,并且可能会带来轻微的中断影响。
因为pass-through磁盘是Hyper-V集群中虚拟机配置的一部分,在迁移过程中这些Hyper-V集群需要卸载并且重新挂载到另外一个节点上。这需要花费一定的时间,通常情况下是三到四秒,此时虚拟机处于切换状态并且不可访问。
在虚拟主机中提高磁盘I/O性能
在诸多应用场景中,管理员试图最大化pass-through磁盘中的磁盘I/O资源,这些pass-through磁盘的工作负载比传统虚拟机工作负载的系统需求更高。然而该设置能够影响到虚拟化策略,最终会带来主机上负载更少的、更强大的虚拟机。
常规的明智之举都是在最大化虚拟机与主机之间的比率。但是越来越多的虚拟化架构都负载要求更多主机资源的工作负载。该转变策略重在强调管理上受益要大于提高整合率。
例如,在pass-through磁盘上运行四个虚拟机SQL服务器以获得足够的磁盘I/O同时运行四个物理服务器相比,是一个更好的、性价比更高的方法。该方法会带来更好的主机资源利用率,更简单的管理和快速的虚拟机恢复。
说服管理层采用该方案可能会遇到一定的难度,因为该方法会降低硬件费用方面的结余,该结余传统方式下和较高的虚拟机主机比率有关。但是最大化主机的资源以及覆盖通常没有运行在同一虚拟平台上的多虚拟机工作负载仍然是值得关注的原因。在这些场景中,通常有必要使用pass-through磁盘负载这些类型的工作负载。
pass-through磁盘在虚拟服务器基础架构中并不常用,但是对于需要特定磁盘I/O资源以保证可靠性的税务工作负载中会非常有用。但是为每一台主机提供更少的、功能更加强大的虚拟机可能是一个非常难以克服的意识中的障碍。