大多数虚拟机都是由虚拟硬盘(VHD)组成,而虚拟硬盘是一些大型的二进制文件,必须对其进行存储、维护和备份。幸运的是,大多数虚拟平台都会根据具体的需要提供多种创建和管理虚拟存储的方法。
在Hyper-V中,你可以轻松地创建新虚拟硬盘,还可以方便地管理它们的设置,将其附属到虚拟机。Hyper-V管理控制台提供了所有必要的工具,以便执行一些基本任务。不过,理解这些工具以及它们的执行结果也是很重要的。在本文中,TecgTarget中国的特约虚拟化专家Anil Desai详细说明了创建和管理VHD的一些必要步骤,并提供了一些与执行相关的建议。
创建虚拟硬盘
利用Hyper-V管理控制台,有很多种创建新VHD的方法。在创建一台新的虚拟机时,最常见的方法可能是使用新虚拟机向导自动创建、附属一个VHD。你也可以利用Hyper-V管理控制台的新虚拟硬盘向导(见图1)手动创建新VHD。或者,直接用 WMI(Windows Management Instrumentation)API和Windows PowerShell执行必要步骤(在随后的指南中将会涉及到脚本和自动化)。
图1:利用新虚拟硬盘向导
在创建VHD的过程中,最重要的一步是选择创建VHD的类型。下面是与VHD类型选择相关的注意事项:
动态扩展磁盘(Dynamically expanding disks):默认类型的VHD初始状态是在物理磁盘上的,空间很小。随着数据的写入,文件会越来越大。在向导后面的步骤中会定义虚拟磁盘的大小,所以子操作系统能知道其总空间的最大值。这种类型的VHD对磁盘空间的利用最有效,但不提供最佳性能。主机文件系统碎片可能会导致非最优读取和写入操作,而且如果不对VHD文件的物理空间增长进行监测,还有可能用完主机服务器的物理空间。
固定大小磁盘(Fixed size disks):固定大小的硬盘在主机中占用的空间大小就是磁盘空间的最大值。因此,初始创建时需要的时间更长。不管子操作系统是否需要VHD所分配的那么大磁盘空间,固定大小VHD都已占用了主机空间,所以它们的性能会更好。因为,它们是存储在主机存储系统的一个共同区域的。
差分磁盘(Differencing disks):这种类型的VHD用于创建父子关系结构。最常见的用法是创建一个为多台虚拟机所共享的底层操作系统(base OS)VHD(必须是只读的),还有创建差分磁盘储存所有变更文件。创建这种类型VHD的主要规则是所有父盘都必须是只读的,否则从它衍生出来的子VHD 就会无效。这种等级关系有时候会很复杂,可能导致一些性能和管理方面的问题。不过,如果使用得当,它就是一个很强大的功能。
在确定好VHD类型之后,你需要提供VHD的物理文件系统位置。通常,主机上任何可以访问的存储空间都可以作为VHD的物理文件系统位置,包括直连存储和基于块的网络存储(iSCSI和光纤通道)。
新VHD的默认大小为127GB,不过你可以设置为1GB和2040GB(大约2TB)之间的任意大小。请记住,子操作系统必须支持你所设置的磁盘大小,以便可以利用其所有的空间。对现在的各种操作系统来说,磁盘大小倒不是一个问题。不过,如果你要是准备在MS-DOS VM中启动原来的Doom,这就是一个问题了。在磁盘配置一步中,还有一个选项可以复制主机服务器上的现有物理磁盘的全部内容。这个功能对手动P2V转换很有帮助,在使用与主机直连的SAN或iSCSI卷时也很有用。
维护编辑虚拟硬盘
和IT架构的其它大多数方面一样,VHD设置也可以更改。Hyper-V管理控制台提供了非常方便快捷的管理方法,你可以用虚拟硬盘向导编辑管理现有虚拟硬盘。第一步是找到需要操作的特定VHD文件。图2显示了可以对动态扩展虚拟硬盘进行的3个操作。
图2:使用虚拟硬盘向导编辑
压缩操作用于收回虚拟硬盘中的未使用空间。这个选项可用于动态扩展虚拟硬盘,当VHD中已添加了大量数据时,此功能最有用。压缩操作完成后,在主机中的文件物理大小会减小。子操作系统不会识别任何差别,因为此操作的所有动作都不会改变文件分配表。
转换操作可以让你将动态扩展VHD与固定大小VHD相互转换。出于性能考虑或是要回收主机服务器上可用磁盘空间时可以进行这个操作。请记住,有些操作会产生大量的磁盘输入或输出,所以不要在主机很忙的时候进行这些操作。
VHD扩展
虚拟硬盘向导编辑可以让你扩展现有VHD的大小。如果你设置VHD大小时低估了你在特定逻辑卷中所需数据的总大小,那么这个功能就非常方便。在扩展VHD大小时,子操作系统会把新添的空间作为未分配、未格式化的磁盘空间。根据子操作系统的能力,你可以扩展现有的逻辑卷,或者在空闲空间创建一个新的逻辑卷。在Windows中,你可以利用磁盘管理工具或Diskpart命令行实用程序执行这个操作。当然,如果可以在子操作系统下创建一个新卷,你也可以创建并附属一个新的VHD。
请记住,在扩展VHD时可能有几个陷阱需要注意。首先,VHD所附属的VM必须是关闭的(它不能处于备用状态)。还有,如果你为VM创建了快照,VHD扩展之后所有原来的快照将会失效。如果原有快照失效会有问题,那么可以考虑为VM附属新的VHD以获得更大存储空间。此外,还可以扩展固定大小VHD(但不能进行压缩操作)。
总结
总的来说,Hyper-V提供了一个灵活的虚拟存储架构,平衡了主机磁盘空间、性能和可操作性。