Hyper-V 2016の環境で外部ストレージを使用しない環境では、容量可変で構成したゲストOSが削除したデータがホスト側で認識されず、仮想ディスクが増加し続けるケースがあります。
そこで、Hyper-Vでは「最適化」という機能があり、Hyper-Vマネージャーから仮想ディスクの最適化が行えます。
ただし、注意点としては仮想サーバーが停止した状態でなければ選択ができません。そして、この最適化を行っても仮想ディスクが圧縮されないケースがあります。
そこで、PowerShellのコマンドで削除する方法があります。
①仮想サーバーを停止します。
②Hyper-V上で管理者権限でPowerShellを起動します。
③以下のコマンドを入力します。
> $targetvhd = "VHD(X)のフルパス"
> Mount-VHD $targetvhd -Readonly
> Optimize-VHD $targetvhd -Mode Quick
> Optimize-VHD $targetvhd -Mode Quick
> Dismount-VHD $targetvhd
「Optimize-VHD $targetvhd -Mode Quick」は2度やるといいそうです。
私の環境では、Hyper-Vマネージャーの最適化できれいに圧縮がされました。それでもダメな場合は、コマンドで対応ですね。