ESXi 5.1 以前は、シン・プロビジョニングのvmdkをvmware tools で圧縮(shrink)ができた。
5.1からはできなくなってしまった。
手動でやる方法。
http://www.insomnihack.com/?p=387
ゲストマシンがLinux
未使用領域をゼロクリアする
ゲストマシンでの作業
dd if=/dev/zero of=/zero bs=20971520 sync rm /zero
ddコマンドで対象のディスクのマウントポイント内に対して、ディスクがいっぱいになるまでゼロを書く。
ディスクがいっぱいになったら、作成したファイルを削除する。
これで、未使用領域にゼロが書き込まれる。
of=/zero rm /zero
の「/zero」はゼロクリアしたい仮想ディスクがマウントされているパスを指定する
この状態で、ホストマシンから
vmkfstools -d monosparse -i hoge.vmdk back.vmdk
を実行するとゼロクリアされた領域はコピーされない。
バックアップサイズを小さくしたいだけなら、この作業だけで良い。
ゼロクリアした領域を削除して、vmdkを小さくする
ホストマシンでの作業
ゼロクリアを実施したvmdkに対して
vmkfstools -K hoge.vmdk
を実行する。するとvmdkのゼロクリアした領域を削除する。
ただし、 ls で見ても容量は変わっていない。
du
で確認すると容量が減っている。
ゲストマシンがWindows
知らない・・・。
そのうち必要になったら書く。
[通知用URL]
Tweet
最終更新時間:2013年11月19日 21時59分46秒