CentOS on bhyve!
FreeBSD 10.0-RELEASEから導入されたハイパーバイザbhyveを使用することで複数のゲストオペレーティングシステムをFreeBSDで実行できるようになりました。最初にターゲットになっていたのはFreeBSDゲストオペレーティングシステムでしたが、現在ではLinuxやOpenBSD、NetBSDをゲストオペレーティングシステムとして利用できます。
LinuxディストリビューションではRed Hat Enterprise Linux、CentOS、Debian、Fedora、OpenSUSE、Ubuntuなどが使えますが、今回はCentOS 6.7をインストールする方法を紹介します。
bhyveが動作する環境をセットアップ
bhyveが動作する環境をセットアップします。カーネルモジュールとネットワークの設定に関しては前回の「第18回 使ってみようハイパーバイザbhyve」で説明しましたので、詳しくはそちらをご覧ください。まず、次のようにハイパーバイザとネットワークを用意します。
ネットワークインターフェースにはtap1を使っています。前回、FreeBSDゲストオペレーティングシステムにtap0を割り当てたので、今回はtap1にしてあります。
FreeBSD以外のオペレーティングシステムをゲストオペレーティングシステムとして利用するにはgrub2-bhyveが必要ですので、pkg(8)経由などでインストールしておきます。
システムを再起動して自動的にこれら設定が反映されるようにするには、/etc/rc.confおよび/etc/sysctl.confに次の設定を追加します。
これでホスト側の設定は完了です。
CentOSをインストール
CentOS 6.7のインストールイメージをダウンロードします。
インストール用にディスクイメージファイルを作成します。
grub2-bhyveが使用する次のような設定ファイルを作成します。hd0およびcd0としてどのファイルを使用するのかを説明したマッピングファイルです。
FreeBSD以外のオペレーティングシステムをbhyveで使用する場合には2段階のブートステップを踏みます。まずgrub2-bhyveを使ってカーネルを読み込みます。次にゲストオペレーティングシステムを起動します。
まず、インストーラを起動したいので次のようにgrub2-bhyveからLinuxカーネルを読み込みます。
次にbhyve(8)でインストーラを実行します。
インストール自体は通常のCentOS 6系のインストールと同じなので特に迷うことはないでしょう。
インストールが完了したら次のように一旦ゲストオペレーティングシステムを終了しておきます。
CentOS 6.7 on FreeBSD 10.2-RELEASE!
インストールが完了しましたので、2段階ステップを踏んでCentOSを起動してみます。まず、次のようにしてLinuxカーネルを読み込みます。
Linuxカーネルを読み込んだら次にゲストオペレーティングシステムを起動します。
FreeBSDカーネル以外のゲストオペレーティングシステムを起動するには2段階ステップを践む必要がありますが、つぎのようにコマンドを実行すればワンライナーで起動することができます。
aliasを設定するなど個別にスクリプトに書いておくなどすれば、コマンド一発で起動できるようにもなります。
bhyveを使えば検証用に複数のバージョンのLinuxゲストを走らせておくといったことができて便利です。Linuxの検証作業や開発用に別途ハードウェアを用意する必要がなくなるのでその点でも効果が期待できます。
活用方法アレコレ
bhyveはシンプルで扱いやすく、応用が簡単といった特徴があります。検証や開発用の環境を構築して仮想ディスクイメージを共有したり、いろんなことができます。
次回は
前回と今回は仮想ディスクイメージとしてUFS2上のファイルを使いましたが、ZFSのボリュームを使った場合にはもっと優れた性能が期待できます。次回はUFS2上のディスクイメージファイルとZFSボリュームを使った場合にどの程度の違いがでるのかを取り上げたいと思います。