kvm イメージファイルの操作

以下のコマンドで差分ファイルを作ることができる。

$ sudo qemu-img create -b vm.test.img -f qcow2 vm.test.diff.img

以後、vm.test.diff.imgで起動するとベースのvm.test.imgは変更されない。

$ ls -l vm.test.*
-rw-r--r-- 1 root root 198656 9月 19 11:46 vm.test.diff.img
-rw------- 1 root root 58913259520 9月 19 11:44 vm.test.img
$

$ ls -l vm.test.*
-rw-r--r-- 1 root root 24838144 9月 19 11:59 vm.test.diff.img
-rw------- 1 libvirt-qemu kvm 58913259520 9月 19 11:44 vm.test.img
$

差分をベースにコミットするには以下のコマンド。

$ sudo qemu-img commit -f qcow2 vm.test.diff.img

これで差分はいらなくなる。

この方式だと、ベースのイメージが差分バックアップの対象とならないので、バックアップの効率はよくなる。

イメージファイルの圧縮

イメージファイルのサイズが大きくなってきたので圧縮してみる。

$ time sudo qemu-img convert -c -O qcow2 testLinVM.img testLinVM.img.new
real 109m7.969s
user 97m1.204s
sys 5m20.240s
$ ls -lh
-rw------- 1 root root 86G 2月 14 14:33 testLinVM.img
-rw-r--r-- 1 root root 19G 2月 14 17:24 testLinVM.img.new

86Gあったイメージファイルを109分かけて19Gに圧縮。