FreeBSD で仮想化ホストをする VirtualBox と bhyve の比較2018年01月10日 19時56分39秒

VirtualBox を使ってみて分かったお互いの長所と短所。

現在実験に使っている機械は、ほぼ五年前に購入した Sansung RV515 で、 CPU は AMD E-450 APU with Radeon(tm) HD Graphics (1646.53-MHz K8-class CPU) となっている。メモリは 4GB 程入っている。購入した当時の Windows 7 も入っているが、Windows を使うと、全部の動作が遅く、ゆっくり待ちながらの作業になる機械。FreeBSD では日常で使うのには問題ない。buildworld を行うと clang をコンパイルするのに数時間は要するが、STABLE を追うくらいなら問題ない。

仮想化はハードウェアに依る部分も多いので、使っている機種の様子から始めた。VirtualBox はすぐに使い始められたのが、bhybe はamd64 環境を作るのに手間が掛かった。また、FreeBSD で仮想環境のホストとして Xen も使えるが、こちらの方の CPU は手軽ではないので、試せていない。

bhyve の短所。

  1. 特定の CPU のサポートが必要。
  2. FreeBSD amd64 環境が必要。
まずは、ハードウェアを利用するので、AMD だと、Features2 に POPCNT が、Intel のだと Vt-x に EPT と UG が dmesg に出ている必要がある。ハードウェアが動作可能であれば利用可能だが、i386 では動かないので、amd64 が必要になる。今回は、これの準備に時間が掛かった。

VirtualBox の長所。

  1. pkg や ports で簡単にインストール。
  2. UI 操作が楽。
VirtaulBox は i386 でも amd64 でも動くのと、ports や pkg で一発で入るので、準備には楽だった。起動してからも、GUI なので初めて動かすのは、とても視覚的で分かりやすい。また、ネットワークなども、自動で NAT 等を動かし良きに計らってくれるので、とっつき易い。

bhyve の長所。

  1. amd64 では既に入っている。
  2. 少ないリソースで動く。
ここまでは、後塵に配しているように見えるが、一度使い出すと bhyve の方が使い勝手がいい。特に大きな違いがリソースの消費量。bhyve はアイドル状態だとホスト側の CPU を 2% ぐらいしか使わない。そして、CUI で動くので、X を起動する必要がなく、メモリの浪費も押えられる。

VirtualBox の短所。

  1. 利用リソースが多い。
  2. X が必要。
  3. ファイル形式が独自。
VirtualBox はリソースの消費が激しい。クライアント側が何もしていなくても、ホスト側の CPU が 20% から 25% 持っていかれてしまった。複数起動すると何もしていなくても、ホスト側が高負荷になってしまう。また、X が必要なので、それを起動するだけでもメモリなどのリソースが余計に取られてしまう。ファイル形式が特有なので、bhyve の様に、単純に mdconfig を使えない。

そんなわけで、手慣れた FreeBSD ユーザには bhyve がお勧め。amd64 だったら、そのまま使えてリソースの消費も少ない。GUI が必須なクライアントや、御手軽に試してみたいときには VirtualBox が便利だ。