この疑問に回答します。
一度大きくなったディスクは、ずっと大きいままです。縮小するには手動で操作する必要があります。
- シンプロビジョニングされた仮想ディスクを縮小する
- 仮想ディスクの空き領域を「0」で埋める
- ゲストOSがWindowsの場合
シンプロビジョニングされた仮想ディスクを縮小する
ESXi ホスト上で動作する仮想マシンの仮想ディスクがシンプロビジョニング(Thin Provisioning)で作成されているとき、使用していないディスク領域を縮小する方法について説明します。
仮想ディスクの空き領域を「0」で埋める
ESXi ホストに未使用領域と認識させるには、仮想ディスクの空き領域を「0」で埋めることです。Windows、Linux共に対応が可能です。
- ゲストOSでツールかコマンドを実行し、空き領域ディスクに対してゼロ埋めを行う
- ESXiホストからコマンドを実行しゼロ領域が圧縮する
ゲストOSがWindowsの場合
マイクロソフトが空き領域を「0」で上書きする sdeleteツール を無料で提供しています。このツールを利用するだけでゼロ埋めが出来るようになります。
ダウンロードすると 32bit と 64bit 用のEXEファイルが2つあります。環境に合わせて実行ファイルを選択してください。
コマンドプロンプトから sdelete を実行します。
-zオプションを与えて、Cドライブの空き領域にゼロ埋めします。
sdelete -z C:
実行時の画面
コマンドの処理が完了したら、空き領域の「ゼロ埋め」が完了です。
これでESXi ホストに未使用領域と認識させるにことができました。後は仮想ディスクを圧縮させるます。
関連記事
補足
SDelete は、たくさんのオプションを使用できるコマンド ライン ユーティリティです。SDelete を使用すると、1 つまたは複数のファイルやディレクトリを削除したり、論理ディスク上の空き領域から不要なものを除去したりできます。また、ディレクトリやファイルを指定するときにワイルド カード文字を使用できます。
使用法: sdelete [-p <回数>] [-s] [-q] <ファイルまたはディレクトリ> sdelete [-p <回数>] [-z|-c] [<ドライブ文字>] オプション: -a 読み取り専用の属性を削除します。 -c 空き領域から不要なものを除去します。 -p <回数> 上書きの回数を指定します (既定値は 1 です)。 -q エラーを出力しないようにします (Quiet モードで実行します)。 -s または -r サブディレクトリを再起処理します。 -z 空き領域に 0 を設定します (仮想ディスクの最適化に適しています)。
以上、「【実践】VMwareの仮想ディスクを縮小する(Windows編)」という記事でした。