VirtualBoxで仮想マシンを作成するとき、仮想ハードディスクの設定で、可変サイズと固定サイズが選択できました。
可変サイズは設定したサイズを上限に、使用した分だけのファイルサイズとなり、固定サイズは設定したサイズの仮想ハードディスクファイルが作られます。
ホストマシンの環境に寄りますが、固定サイズで仮想ハードディスクを作成した方がパフォーマンスが良いとの事ですが、仮想マシンのクローンを作成したりする事を考えると、10GBでもホストマシンの容量を圧迫してしまいますね。
どの程度違いがあるのでしょうか?
インストールしたLubuntu20.04で簡単に比較してみました。
仮想ハードディスクの比較
VirtualBox仮想マシンを、仮想ハードディスクのサイズ20GBで、可変サイズと固定サイズで2つ作成しました。それ以外の設定は全て同じです。
仮想ハードディスクの初期サイズ
VirtualBoxで20GBの仮想ハードディスクを、可変サイズと固定サイズで作成した場合の初期ファイルサイズです。まだ、OSはインストールしていません。
当然、固定サイズで作成した仮想ハードディスクは、ファイルサイズも20GBとなっております。対して、可変サイズで作成した仮想ハードディスクは、2MB程度で収まってます。
1ファイル20GBって中々のサイズですよね。
Lubuntu20.04LTSをインストールした状態
Lubnutu20.04LTSをインストールした後の、仮想ハードディスクのサイズです。
固定サイズで作成した仮想ハードディスクは、インストール後もサイズは変わらず、可変サイズで作成した方は、約5GBのファイルサイズに増えました。
ディスクのパフォーマンスを簡易テストする
仮想マシンのLubuntu20.04LTSを起動し、簡単なコマンドで可変サイズと固定サイズでディスクのパフォーマンスに違いがあるか見てみます。
QTerminalの起動
まずは、端末QTerminalを起動します。
メニューから「システムツール」→「QTerminal」となります。
hdparmコマンドで読み込み速度を計測
sudo hdparm -t /dev/sda
QTerminalで上記コマンドを入力します。パスワードを要求されますので、ログイン時のパスワードを入力してください。
/dev/sda: Timing buffered disk reads: 1414 MB in 3.00 seconds = 471.11 MB/sec
と表示されると、1秒当たりの読み込み速度は471.11MBとなりました。
ddコマンドで書き込み速度を計測
dd if=/dev/zero of=/tmp/testimg bs=1M count=1024
先ほどと同様にQTerminalで上記コマンドを入力します。
1073741824 bytes (1.1 GB, 1.0 Gib) copied, 0.952386 s, 1.1 GB/s
1秒当たりの書き込み速度は1.1GBとなりました。
可変サイズと固定サイズで比較してみる
可変サイズ | 固定サイズ | |||
---|---|---|---|---|
読み込み | 書き込み | 読み込み | 書き込み | |
1回目 | 544.26MB/s | 974MB/s | 395.06MB/s | 374MB/s |
2回目 | 562.63MB/s | 1,100MB/s | 472.75MB/s | 377MB/s |
3回目 | 555.13MB/s | 1,000MB/s | 473.90MB/s | 404MB/s |
平均 | 554.01MB/s | 1,025MB/s | 447.24MB/s | 385MB/s |
と、私の方法が間違っているのか、可変サイズの方が読み込みも書き込みも速い結果となってしまいました。
固定サイズの方がパフォーマンスが良いとの事だったはずですが・・・
可変サイズのハードディスクファイルは使用した分だけ(固定サイズを上限として)物理ハードディスクの領域を消費しますが、スペースを開放しても自動的に縮小はしません。
VirtualBox仮想マシン新規作成のインストーラーから
固定サイズのハードディスクファイルはシステムによっては作成に時間はかかるかもしれませんが、使用すると高速です
まとめ
予想と違う結果となりました。
簡易的なベンチマークではなく、fioなどもう少し詳しく計測すると、今回と違った結果となるのでしょうか?
しかし、OSの実験的な用途であれば、上記の結果を見る限り、仮想ハードディスクを可変サイズにしたせいで困る、と言うことは無いと思うので、ファイルサイズでメリットのある可変サイズで良いと思います。
でも、なんで固定サイズの方がリードもライトも遅いのかなぁ~
コメント