始めに
qemu-img create
やqemu-img convert
で作れる仮想ディスクファイルの形式は幾つかありますが、どの形式がサイズ面で優れているか比較してみました。
手法
- 「amd64版Debianを、ext4形式・swap領域別ドライブかつ追加パッケージ群を一つも選ばずにネットワークインストーラを用いてインストールし、インストール後にログインせずにzerofreeで未使用領域の初期化を行った物」を作ります。
-
qemu-img convert
で各形式に変換します。 - 変換後のサイズを比較します。
- ついでにWinRARで最大限圧縮した場合の比較もします。
結果
こんな感じになりました。サイズの単位はバイトです。
形式 | サイズ | 圧縮後のサイズ |
---|---|---|
qcow2(圧縮) | 236,978,176 | 227,667,478 |
qcow(圧縮) | 301,258,752 | 229,580,818 |
qcow(非圧縮) | 709,541,888 | 143,966,819 |
qcow2(非圧縮) | 734,855,168 | 143,914,934 |
vmdk | 735,969,280 | 143,942,834 |
qed | 736,231,424 | 143,918,088 |
vdi | 835,781,120 | 144,130,272 |
parallels | 836,763,648 | 144,079,905 |
vpc(通称vhd) | 950,277,120 | 143,954,692 |
vhdx | 1,635,778,560 | 144,223,958 |
raw | 17,179,869,184 | 147,856,621 |
結論
試してみた結果、以下のことが分かりました。
- 普通に使える形式の中では、QCOW2に-cオプション付きで変換を行ったものが最も小さくなった。
- 圧縮QCOW系を除き、どの形式も圧縮後のサイズに有意な差は見られなかった。
- vhdx形式、vhd形式より悪化してるんですが・・・・・・
なお、圧縮QCOW2ですが、Copy On Writeだけあってログイン画面に進むだけでファイルサイズが膨れたりとかするので「普段使いするにはサイズの膨れ方が気になる」「ただ保管するだけなら非圧縮形式を別途圧縮した方がサイズ的に良い」等、ちょっとイマイチだなぁ思いました。
おわりに
ポータビリティとファイルサイズのバランスを考えるならVMWareのvmdk形式にしましょう!