探索中国CIO人才现状 | 第四季调研报告
Hyper-V存储的最佳实践:优化你的虚拟环境
2014-01-24  作者:TT中国 

  尽管内存经常被认为是虚拟数据中心最重要的硬件资源,但是对虚拟机性能影响最大的通常是存储。微软的Hyper-V对其可以使用的存储的类型极其灵活,但是管理员必须知道一些与功能相关的限制和对支持的要求。本文将为你详细地解读各种Hyper-V存储的最佳实践。


  尽量减少虚拟机蔓延


  虚拟化管理员日常必须处理的一个问题是虚拟机(VM)蔓延。微软的WindowsServer2012DatacenterEdition以及SystemCenterVirtualMachineManager之类的工具软件的许可政策导致创建VM非常容易。如果听之任之,VM将以触目惊心的速度扩散。


  处理虚拟机蔓延的问题的最常见的方式是限制VM的创建,或者设定策略自动终止到期的虚拟机。然而,考虑虚拟机蔓延对你的存储基础设施的影响也是同样重要的。


  当创建越来越多的VM的时候,存储的消耗会成为一个问题。然而,更常见的情况是,资源争用是一个更为棘手的问题。虚拟磁盘通常驻留在共用的卷或者存储池里面,这意味着虚拟磁盘必须争抢IOPS。


  尽管没有一个普遍适用、廉价且简单的方案来解决存储资源争用的问题,但是Hyper-V管理员可以运用很多不同的机制来处理该问题。


  用重复数据删除控制资源争用


  减少存储IOPS的其中一个最佳的工具是文件系统的重复数据删除。然而,有些重要的限制必须加以考虑。


  微软在WindowsServer2012中推出本机文件系统的重复数据删除。尽管这项功能乍看起来似乎前景广阔,但是它有两个主要的限制:本机重复数据删除与新的ReFS文件系统不兼容;不支持包含与运行中的虚拟机进行挂接的虚拟硬盘的卷。


  在WindowsServer2012R2的重复数据删除功能方面,微软确实做了一些工作,现在你可以对包含正在被使用的虚拟硬盘的卷进行重复数据删除。一个重要的提醒是:这种重复数据删除只支持虚拟桌面机,不支持虚拟服务器。


  重复数据删除可以减少IOPS,并且改善Hyper-V虚拟服务器的性能。但是,实现这些优势的唯一可取的方式是使用对Hyper-V主机以及任何客户机操作系统完全透明的硬件级别的重复数据删除。


  管理QoS以获得有效的存储I/O


  减少存储I/O争用问题的另外一个工具,是服务管理质量(QualityofServiceManagement),它是WindowsServer2012R2的一项新功能,以前叫StorageQoS。这项功能使你可以设定一个IOPS最小值,为虚拟硬盘预留存储IOPS。IOPS的增量为8KB。同样的,你可以设定一个可允许的IOPS的最大值,限制虚拟硬盘的I/O操作。


  服务管理质量的功能是按照每个虚拟硬盘而非每台VM进行设定的。这使你能够精确地应用服务管理质量的策略,从你可用的IOPS中获得尽可能好的性能。


  考虑使用WindowsStorageSpaces


  微软在WindowsServer2012中推出WindowsStorageSpaces,作为把物理存储提取到存储资源池的一种方法。你可以在存储池之上创建虚拟磁盘,不必担心物理存储的分配。


  微软推出三方镜像和存储分层之类的新功能,扩展了WindowsServer2012中WindowsStorageSpaces的功能。你可以按照每个虚拟硬盘来实施分层存储的功能,使“热块”(hotblocks)可以被动态地移动到基于SSD的存储层,这样它们就能够以尽可能高的效率被读取。


  分层存储的功能极大地改善了VM的性能,但是有一些限制。最不容忽视的限制是:存储分层只能被用于已做镜像的虚拟硬盘或者简单虚拟磁盘。存储分层不能被用于奇偶校验磁盘,尽管这在预览版是允许的。


  如果你打算把分层存储用于已做镜像的卷,Windows要求存储池中SSD的数量必须与已做镜像的磁盘的数量一致。例如,如果你创建一个三方镜像,那么你将需要三个SSD。


  当你创建使用存储层的虚拟硬盘的时候,你可以设定你希望分配给这个高速层的SSD空间的大小。最好预估将需要多少空间,再在这个预估数字上至少增加1GB。这样做的原因在于:如果有足够的空间,Windows将使用1GB的高速层作为回写式高速缓存。这个高速缓存从高速层获得1GB空间,有助于消除写操作(因此改善写的性能)。如果你预先考虑这个空间的损失,你可以分配足够的空间来同时容纳回写式高速缓存和热存储块。


  ReFS的限制


  微软在WindowsServer2012中推出弹性文件系统(ResilientFileSystem,ReFS),作为渐趋老化的NTFS文件系统(也存在于WindowsServer2012R2中)的下一代的替代产品。Hyper-V管理员必须考虑是想以ReFS卷和NTFS卷中的哪一个来配置VM。


  如果你在WindowsServer2012上运行Hyper-V,最好避免使用限制颇多的ReFS文件系统。这些限制中最值得注意的(至少对虚拟化管理员而言)可能是:ReFS不支持与集群共享卷同时使用。


  在WindowsServer2012R2中,微软支持在集群共享卷上使用ReFS,但是仍然需要考虑其限制。首先,选择文件系统是一个半永久性的操作。没有办法把卷从NTFS格式转换为ReFS格式,反之亦然。


  其次,NTFS中的很多功能在ReFS中并不存在。Microsoft表示,这类功能在将来可能会被添加进去,而目前缺少如下的功能:


  ·基于文件的压缩(重复数据删除)


  ·磁盘配额


  ·对象标识符


  ·加密文件系统


  ·命名流


  ·事务


  ·硬链接


  ·扩展属性


  缺少那么多功能,为什么还会有人使用ReFS?有两个原因:ReFS确实善于保持数据一致性并防止位衰减,当需要保存大量数据的时候,这是一个好的选择。这个文件系统理论上的容量限制是1YB(yottabyte)。


  如果你确实决定要在包含Hyper-VVHD或者VHDX文件的卷上使用ReFS文件系统,你必须禁用那些虚拟硬盘一致位(integritybit)。Hyper-V自动为任何新创建的虚拟硬盘禁用一致位,但是,如果虚拟硬盘先在NTFS卷上创建,然后再被移至ReFS卷上,那么这些虚拟硬盘的一致位需要被手动禁用。否则,当你试图启动这台VM的时候,Hyper-V将显示一系列的错误信息。


  你只能通过PowerShell禁用一致位。你可以使用下述命令行核实一致位的状态:


  Get-Item<虚拟硬盘名称>|Get-FileIntegrity


  如果你需要禁用一致位,使用下述命令行:


  Get-Item<虚拟硬盘名称>|Set-FileIntegrity–Enable$False


  存储连接的最佳实践


  Hyper-V对其可使用的存储的类型极其灵活。它支持直连式存储、iSCSI、光纤通道(FibreChannel,FC)、虚拟FC以及其它。然而,建立存储连接的方式可以影响存储的性能和备份数据的能力。


  古语云:“不为也,非不能也。”在Hyper-V的世界中,这尤其适用于直通磁盘(pass-throughdisks)的使用。直通磁盘使Hyper-VVM可以被配置成不使用虚拟硬盘而直接与物理磁盘连接。


  使用直通磁盘的问题在于它们对Hyper-VVSSWriter是不可见的。这意味着:不把VM强制进入保存状态,依赖于Hyper-VVSSWriter的备份应用程序就无法对驻留在直通磁盘的文件、目录或者卷的应用持续性进行备份。值得注意的是,这个限制不适用于虚拟FC连接。


  Hyper-V存储连接的另外一个最佳实践是:尽可能从主机操作系统而非在VM内部建立iSCSI连接。其原因在于:由于缺乏对巨型帧的支持,如果从VM内部发起iSCSI连接,存储性能会因为很多因素(例如Hyper-V的版本、客户机的操作系统和集成服务的使用率)而变差。