ゴミは掃除したのだけど、qcow2 を使っているので仮想ディスクの領域はタダでは減らない。
色々調べたら qemu-img の convert コマンドで実現したい事が出来るらしいので試してみた。
仮想マシンの停止
まずは仮想マシンを停止します。guest # shutdown -h now
バックアップ
その次は仮想マシンのディスクのバックアップです。host # time cp -p 仮想マシン.img /media/disk/仮想マシン.img.bak
real 50m49.694s
user 0m1.336s
sys 3m45.093s
host # echo $?
※USBにバックアップしましたが、100G超なのでそれなりに時間がかかりました。
Shrinkの実行
いよいよサイズ変更です。
host # time qemu-img convert -p -O qcow2 仮想マシン.img 仮想マシン.img.new
real 29m14.708s
user 0m12.519s
sys 2m28.749s
※バックアップ程時間はかかりませんでした。
バックアップと動作確認
いきなりイメージを差し替えるのではなく、一旦オリジナルをバックアップの上リネームして起動確認
host # mv 仮想マシン.img 仮想マシン.img.org
host # mv 仮想マシン.img.new 仮想マシン.img
host # virsh create guest
どれくらいサイズが小さくなったか確認します。
host # ls -l 仮想マシン.*
-rw------- 1 root root 102G 4月 20 07:33 2013 仮想マシン.img
-rw-r--r-- 1 root root 100G 4月 20 08:55 2013 仮想マシン.img.new
あれ?2Mしか減っていない。
※そういえば、既にShrink実施済みでした・・・
バックアップの削除
仮想マシンに接続し、動作OKならバックアップ削除します。
guest # shutdown -h now
host # rm -i 仮想マシン.img.org
以上、簡単ですが、、、
ここでへまると仮想マシンが二度と起動しなくなるので慎重にやりましょう・・・