2012年12月23日日曜日

Powershell 3.0でHyper-VのVHDファイルを最適化する

  • このエントリーをはてなブックマークに追加


Hyper-Vの仮想環境で多くの仮想マシンを動かしていたり、スナップショットをいっぱい取ったりしていませんか。そんなときによくネックになるのはハードディスクの容量ですね。仕方なく、スナップショットを削除したり、仮想ディスク(VHD)の最適化をしたりする必要があります。しかし、仮想ディスク(VHD)ファイルがいっぱいあって、1つずつ手で最適化するのが面倒です。Windows Server 2012になってPowershell 3.0で一括で簡単にVHDファイルを最適化することが可能です。

Powershell 3.0ではOptimize-VHDというコマンドがあります。以下の例では、C:\VMs下のすべての.vhd(.vhdx)ファイルを最適化することを実現します。

$vmsRoot = "C:\VMs"

Get-ChildItem –File –Path $vmsRoot –Filter *.vhd* –Recurse | Optimize-VHD  -Mode quick

ここで最適化モード(Mode)について、ちょっと説明します。

モード 詳細
Retrim ブロックの整理のみを行う。
0バイトブロックのスキャン、未使用のブロックの回収はしない。
ディスクが読み取り専用でマウントされている場合のみ。
Full 0バイトブロックのスキャン、未使用のブロックの回収を行う。
ディスクが読み取り専用でマウントされている場合のみ。
VHDファイルの既定モード
Quick 未使用のブロックの回収はするが、0バイトブロックのスキャンはしない。
ディスクが読み取り専用でマウントされている場合のみ。
VHDXファイルの既定モード
Pretrimmed Quickモードのように動作する。読み取り専用でマウントされる必要がない。
未使用のブロックの探索はQuickモードより遅い。
Windows 8または以降のOSに使われているVHDXファイル、あるいはVHDXがすでにコマンドのRetrimモードで最適化された場合に使う。
Prezeroed Quickモードのように動作する。読み取り専用でマウントされる必要がない。
未使用のブロックの探索はQuickモードより遅い。
特定のツールでディスク上のFree spaceを0にした場合に使う。

この記事がお役にたちましたらシェアをお願いします:)

  • このエントリーをはてなブックマークに追加

0 件のコメント:

コメントを投稿