【 Optimize-VHD 】コマンドレット――容量固定仮想ディスク以外の仮想ディスクを最適化する:Windows PowerShell基本Tips(113)
本連載は、PowerShellコマンドレットについて、基本書式からオプション、具体的な実行例までを紹介していきます。今回は「Optimize-VHD」コマンドレットを解説します。
本連載では、Windows PowerShellの基本的なコマンドレットについて、基本的な書式からオプション、具体的な実行例までを分かりやすく紹介していきます。今回は、容量固定仮想ディスク以外の仮想ディスクに対して最適化を実施する「Optimize-VHD」コマンドレットです。
Optimize-VHDコマンドレットとは?
仮想ディスクには「容量固定」「容量可変」「差分」の3種類があることは紹介済みですが、容量可変ディスクや差分ディスクは追加の書き込みが発生するたびに実体のファイルサイズが増えていきます。
これは仮想ディスク作成時に、最初から設定された容量と同じサイズのファイルを物理ディスク上に作成する容量固定仮想ディスクとは異なり、容量可変ディスクや差分ディスクは作成時に最小サイズの物理ファイルを作成し、追記のたびに物理ファイルのサイズが大きくなっていくためです。
例えば、1GBのファイルを容量可変仮想ディスクに追記した場合、仮想ディスクサイズは1GB増えることになります。
では、この状態で1GBのファイルを削除するとどうなるでしょうか? 答えは物理ファイルのサイズが小さくなることはなく、合計1GB以上の追記が発生しない限り、物理サイズは増えない(空き領域として使用される)という挙動になります。
以下の例では仮想ディスクをマウントして容量を確認していますが、仮想ディスク内では32.9GBの使用量であるのに対し、物理ファイルは50.9GBで差し引き18GB分が空き容量として確保されています(画面1)。
この例では微々たる量ですが、100GBのテンポラリファイルを追記して削除すると物理サイズは100GBまで拡張され、削除後も100GBを維持することになると、使われていない部分がある意味無駄に拡張されてしまっている形になります。
Optimize-VHDは仮想ディスクを最適化するコマンドレットであり、拡張されているものの空き領域となってしまっている領域を削除し、容量可変仮想ディスクを最適化してくれます。
なお、容量固定仮想ディスクに対しては、Optimize-VHDコマンドレットの最適化効果はないので注意してください。
【注】Optimize-VHDは「Windows PowerShell用Hyper-Vモジュール」に含まれるコマンドレットです。GUIの「Windowsの機能の有効化」や「役割と機能の追加」から「Hyper-V」を有効にするか、Windows PowerShellで「Enable-WindowsOptionalFeature」コマンドレットを実行して有効にすることで使用できます。
Optimize-VHDコマンドレットの主なオプション
オプション | 意味 |
---|---|
-Path | 最適化したい仮想ディスクのパスを指定する |
-Mode | 最適化のモード(Full、Pretrimmed、Prezeroed、Quick、Retrim)を指定する |
-Passthru | オブジェクトをパイプ(|)で渡す場合に使用する。省略可能 |
仮想ディスクを最適化する
仮想ディスクの最適化で最も効果が期待されるモードは「Full」になります。ただし、Fullモード実行時には、対象となる仮想ディスクを「読み取り専用」でマウントする必要があります。読み取り専用でのマウントに関しては、本連載第110回の「Mount-VHD」コマンドレットを参照してください。
読み取り専用で仮想ディスクをマウントしたら、Optimize-VHDコマンドレットを実行します(画面2)。なお、Optimize-VHDコマンドレットは管理者権限で実行する必要があります。
Copyright © ITmedia, Inc. All Rights Reserved.