从Windows Server 2012 R2 开始,可以在线调整虚拟硬盘的大小了,这意味着当虚拟硬盘不够用时,我们在虚拟机运行的情况下直接扩展虚拟硬盘容量了。有人说这个有什么用?当然,实验室情况下,我们完全可以停机,然后修改其大小,如果在生产环境呢?你能设想一组正在渲染3D图形的虚拟机,硬盘空间突然不够的情形么?
从Windows Server 2012 R2 开始,可以在线调整虚拟硬盘的大小了,这意味着当虚拟硬盘不够用时,我们在虚拟机运行的情况下直接扩展虚拟硬盘容量了。有人说这个有什么用?当然,实验室情况下,我们完全可以停机,然后修改其大小,如果在生产环境呢?你能设想一组正在渲染3D图形的虚拟机,硬盘空间突然不够的情形么?
要实现Hyper-V在线调整虚拟硬盘的大小这个功能,至少要符合两个条件:
1、虚拟硬盘的格式一定得是VHDX。2、这个VHDX虚拟硬盘一定得挂载到SCSI控制器上。挂载到IDE控制器上的VHDX虚拟硬盘无法在线调整大小:

挂载到SCSI控制器上的VHD虚拟硬盘也无法在线调整大小,只能进行压缩:

只有挂载在SCSI控制器上的VHDX虚拟硬盘才可以在线调整大小。

收缩虚拟硬盘:在什么情况下来收缩虚拟硬盘呢?一种情况是,在物理硬盘空间不够时,我们用收缩固定大小的虚拟硬盘空间来增大物理硬盘,另一种情况是,当我们第一次创建一个新的默认大小的动态虚拟硬盘,需要转换为固定虚拟硬盘时占用物理硬盘容量大,花费时间长,一般要进行收缩操作。
1、先在虚拟机里对虚拟硬盘进行压缩:

输入压缩空间量:是腾出来的空间,压缩后的总计大小:是虚拟硬盘剩余的容量。

腾出来的空间用来收缩:

2、进行收缩:


如果不做第一步,就不会有收缩按钮:

输入收缩的大小:

我发现,收缩只能以GB为单位,总能剩余一小部分空间:

我们可以用扩展卷的方式,重新分配给虚拟硬盘:

扩展虚拟硬盘:


输入扩展的大小:这个容量是虚拟硬盘的总容量。下图:32+48=80,也就是扩展的容量为48G。


用扩展卷向导进行扩展:

扩展后的容量:

当然,我们也可以用PowerShell来实现这个功能,这些命令在Server 2008的PowerShell里就有的,只不过不能在线调整,而在Server 2012 R2里,可以实现在线调整虚拟硬盘的大小了。
本文出自 “老丁的技术博客” 博客,转载请与作者联系!原文链接:http://dinghuqiang.blog.51cto.com/19871/1306258#559183-tsina-1-71533-ed0973a0c870156ed15f06a6573c8bf0