shrink vhdx磁盘

问题描述:

在非Hyper-V服务器上shrink vhdx磁盘。

建议方案:

不建议在物理磁盘上创建vhdx方式挂在使用,这中间多了一层虚拟化会影响性能。

解决方案:

两种方式释放vhdx文件大小:

Note:两种方案都需在Hyper-V宿主机上或者安装Hyper-V的管理器。两种方案都不会造成数据丢失。

  1. 使用PowerShell命令resize-vhd。
  2. 使用Hyper-V管理器中的edit disk。

Resize-vhd PowerShell命令:

  1. 首先对vhdx磁盘进行shrink。

image.png

image.png
  1. 运行命令,sizebyte指定vhdx大小为多大,不是压缩多大。以下图中是将disk压缩到1.5GB。

image.png

使用Hyper-V管理器edit disk


  1. 打开Hyper-V管理器,点击edit disk,并选择要压缩的磁盘:

image.png
  1. 点击下一步。选择shrink。

image.png
  1. 指定vhdx大小为多大。有最小值提示。

image.png
  1. 点击下一步就是summary。点击finish完成。

image.png
  1. 挂在带disk manager查看:

image.png

但是到此时为止, 我们能看到这块VHDX 文件的实际占用物理磁盘的数据量并没有变小。只是vhdx 的分配大小变小了,这个是因为vhdx dynamic 磁盘的属性决定的。


image.png

So 接下来还需要将这块磁盘的实际数据量收缩下来。
The Optimize-VHD cmdlet optimizes the allocation of space in one or more virtual hard disk files, except for fixed virtual hard disks. The Compact operation is used to optimize the files. This operation reclaims unused blocks as well as rearranges the blocks to be more efficiently packed, which reduces the size of a virtual hard disk file.

To use Optimize-VHD, the virtual hard disk must not be attached or must be attached in read-only mode.

The compact operation can succeed without reducing the file size, if no optimization is possible.

https://docs.microsoft.com/en-us/powershell/module/hyper-v/optimize-vhd?view=win10-ps

当前在使用Optimize-VHD reclaim unused blocks,需要点时间。


image.png

你可能感兴趣的:(shrink vhdx磁盘)