LoginSignup
0
0

Disk2VHDで作成した可変VHDXを(比較的簡単に)固定サイズにする

Last updated at Posted at 2023-09-24

背景

Disk2VHDは物理ディスクを可変VHDXで作成してくれるので、バックアップ時には最低限の容量ですみ大変便利ですが、それを再利用する際に以下の問題がありました。

問題1:
作成時は最小限サイズだが、利用していくと肥大化していく。
(例)物理サイズ256GB・実利用量10GBのディスクを変換すると10GBのVHDXですむが、それをHyper-VでマウントしたりVHDブートで起動すると肥大化していき、最終的には256GBに到達してしまう。

理由として、VHDXファイルは物理ディスク時代のトータルサイズ(例では256GB)を保持しつづけることが原因です。数台のPCなら問題ありませんが、これが情シスの仕事として数十台以上となってくると、NASのサイズがいくらあっても足りません。

問題2:
VHDブートでは、ベースPCの容量を超えるサイズでブートができない。
(例)ベースOSが30GBほど消費するので、たとえば256GBのSSDはかならず226GB以下のVHDXファイルを作成する必要がある。

もしVHDXファイルがベースOSの物理ディスクサイズを超えると、ブルースクリーンになって起動できません。このためVHDXファイルが保持しているトータル物理サイズを縮小する必要(ややこしいですが)があります。サードパーティソフトやdiskpartコマンドが必要になるため、毎回となると結構大変という認識でした。

問題3:
可変VHDXでの運用はマイクロソフトも推奨していない。
https://learn.microsoft.com/ja-jp/windows-server/virtualization/hyper-v/best-practices-analyzer/vhd-format-dynamic-virtual-hard-disks-not-recommended-in-production

速度低下は10%程度であまり気にならないものの、Hyper-Vで動かすとたまにプチフリのような挙動になることがあります(Win7など古いOSで顕著)。固定サイズVHDXではこの問題は起きません。

結論

今回、Hyper-V(Windows Server版)の「仮想ハードディスクの新規作成ウィザード」のGUIで比較的簡単に変更する方法がわかりましたので共有いたします。

image.png

VHDX内の物理領域を縮小する

まず、Disk2VHDで作成した可変VHDXファイルから、未使用の部分をカットします。
Cドライブのサイズは30GBですが、内部では物理ディスクトータルの256GBを保持しているので、226GBをカットすることになります。
image.png

VHDXをダブルクリックでマウントし、Cドライブより後方のパーティションを削除します。
image.png
回復パーティションの削除はdiskpartで以下のコマンドを使います。

.ps1
diskpart
list disk #確認
select disk 1 #VHDXディスクを選択
list partition #確認
select partition 4 #回復パーティションを選択
delete partition override #削除

未割り当てになればOKです。
image.png

Hyper-Vマネージャの「ディスクの編集」を選択します。
image.png

Disk2VHDで作成したVHDXファイルを選択し、「縮小」を選択します。
image.png

上記でちゃんと後方データをカットできていれば、Cドライブのみの最小サイズが選択できるようになります。(この場合は30GB)
image.png

再度VHDXファイルをダブルクリックでマウントし、30GBの物理領域になっていれば成功です。
image.png

固定VHDXへの変換

VMの編集画面から仮想ハードディスクの「新規」を選択します。
image.png

容量固定を選択します。
image.png

変換先となる場所とファイル名を決定します。
image.png

「変換した仮想ハードディスクの内容をコピーします」を選択します。ここが今回、発見した箇所となります。
image.png

変換が開始されます。
image.png

完了後、以下のコマンドで正常に固定VHDXとして作成できたかを確認します。

.ps1
Get-VHD -Path <VHDXのパス> | ft vhdtype,size

image.png

まとめ

・Hyper-Vのディスクの編集ウィザードの一番下にあったのですが、長年気づきませんでした。。。
・Disk2VHDを業務用PCのバックアップやP2Vで利用している企業もあると思いますが、Hyper-VやVHDブートで再利用する場合は、この方法で固定サイズにすることをおすすめいたします。
・以前のエントリで書いたProxmoxでの"qemu-img convert"コマンドの利用時にもメリットがあるかもしれません。また確認してみたいと思います。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0