virt-manager で qcow 作ると・・・
スパースファイルなのに、指定した容量が作られてしまう。
割当<=最大容量なので20GBを作成するには、20GBが確保されてしまいます。
sudo ls -lh /var/lib/libvirt/images/test.qcow2 -rw------- 1 root root 21G Mar 8 17:22 /var/lib/libvirt/images/test.qcow2
もはやこれはバグではと思いたくなるレベルなのでした。
qcow2 とは
スパースファイルです。仮想マシン用に事前に20GB確保しても、実際には使用量しか消費しません。
その代わり、実際の使用量を超えた分の書き込みは都度確保され書き込まれます、その代わりパフォーマンスに多大な影響を及ぼすことになります。
パフォーマンス劣化と言ってもCPUは十分に早くてストレージが十分に速くnvme のSSDのいまはあまり気にならないレベルなんじゃないかなと思います。
qcow2 で可変サイズなディスクイメージファイルが作れます。
ちゃんと qcow2 のイメージを作る
20GB の qcow2 のスパースファイルを作成する場合はこれ.
qemu-img create -f qcow2 my-test.qcow2 20G
作った結果を確認
仮想マシン用にディスクのイメージを作成して
takuya@:~$ qemu-img create -f qcow2 my-test.qcow2 20G Formatting 'my-test.qcow2', fmt=qcow2 size=21474836480 cluster_size=65536 lazy_refcounts=off refcount_bits=16
作成した結果を確認します。
takuya@:~$ qemu-img info my-test.qcow2 image: my-test.qcow2 file format: qcow2 virtual size: 20G (21474836480 bytes) disk size: 196K cluster_size: 65536 Format specific information: compat: 1.1 lazy refcounts: false refcount bits: 16 corrupt: false
実際に利用された容量を見ます。
takuya@:~$ ls -lh my-test.qcow2 -rw-r--r-- 1 takuya takuya 193K 2020-03-08 17:26 my-test.qcow2
うん、全然浪費してない。
結論
virt-manager 意味不明。ちゃんとコマンドから使う。