ハイパーバイザbhyve
FreeBSD 10.0-RELEASEからFreeBSDにはbhyve(ビハイブ)と呼ばれるハイパーバイザが導入されました。この機能を使うとFreeBSDホスト上で複数のゲストオペレーティングシステムを実行することができます。Jailと異なり,
今回はFreeBSDホストでFreeBSDゲストをインストールして使う方法を紹介します。同一,
bhyveが動作する環境をセットアップ
bhyveが動作するにはvmmカーネルモジュールが必要です。kldload(8)コマンドを使ってvmmカーネルモジュールを読み込みます。
図1 vmmカーネルモジュールの読み込み
# kldload vmm # kldstat Id Refs Address Size Name 1 9 0xffffffff80200000 179ddb0 kernel 2 1 0xffffffff81a11000 56aa fdescfs.ko 3 1 0xffffffff81a17000 2baa uhid.ko 4 1 0xffffffff81a1a000 1b1baf vmm.ko #
システム起動時に自動的に読み込まれるようにするには,
リスト1 /boot/
vmm_load="YES"
次に,
図2 tapインターフェースを作成
# ifconfig tap0 create # ifconfig tap0 tap0: flags=8802<BROADCAST,SIMPLEX,MULTICAST> metric 0 mtu 1500 options=80000<LINKSTATE> ether 00:bd:06:ae:69:00 nd6 options=29<PERFORMNUD,IFDISABLED,AUTO_LINKLOCAL> media: Ethernet autoselect status: no carrier # sysctl net.link.tap.up_on_open=1 net.link.tap.up_on_open: 0 -> 1 #
このtapインターフェース経由でネットワークにアクセスできるように,
図3 ブリッジの作成
# ifconfig bridge0 create # ifconfig bridge0 addm bge0 addm tap0 up # ifconfig bridge0 bridge0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500 ether 02:2f:69:94:60:00 nd6 options=9<PERFORMNUD,IFDISABLED> id 00:00:00:00:00:00 priority 32768 hellotime 2 fwddelay 15 maxage 20 holdcnt 6 proto rstp maxaddr 2000 timeout 1200 root id 00:00:00:00:00:00 priority 32768 ifcost 0 port 0 member: tap0 flags=143<LEARNING,DISCOVER,AUTOEDGE,AUTOPTP> ifmaxaddr 0 port 4 priority 128 path cost 2000000 member: bge0 flags=143<LEARNING,DISCOVER,AUTOEDGE,AUTOPTP> ifmaxaddr 0 port 1 priority 128 path cost 20000 #
bridgeはソフトウェア的に作成されたスイッチングハブ,
システム起動時に自動的にこれら作業を行うには/etc/
リスト2 /etc/
cloned_interfaces="bridge0 tap0"
ifconfig_bridge0="addm em0 addm tap0"
複数のゲストオペレーティングシステムを動作させる場合,
あとは,
リスト3 /etc/
net.link.tap.up_on_open=1
これでbhyveを使うための設定完了です。