BHyVeを使ってみよう!

目次

BHyVeとは?

使ってみる

  • 実際やってみて色々つまずいたので,ここにメモする.

実行環境

VMWare Fusionを使う理由

  • BHyVeはVT-x(CPU仮想化機能)とEPT(メモリ仮想化機能)が必須となっている
  • なので,EPTをサポートしてないVirtualBoxは使えない.

手順

1.まず,VMWare FusionFreeBSDを入れる.
私はFreeBSD-10.3-RELEASE-amd64-disc1.isoを入れた.

2.インストールしたのち,一度シャットダウンし, 設定→プロセッサとメモリ→詳細オプション→この仮想マシンでハイパーバイザアプリケーションを有効にするにチェックを入れる
これでVT-xとEPTを有効にする.
スクリーンショット 2016-06-11 20.19.36.png

3.次にrootでログインする.
rootでログインしないと後にOperation not permittedとなり,実行できない.

4.FreeBSDにディスクイメージをダウンロードする.
ftpをfetchでもできるが,自分はできなかったのでホストマシンから転送した.
方法は下記に記載.

5.kldload vmmでBHyVeカーネルモジュールをロードする.
kldstatでvmm.koが追加されていればOK.

6.ifconfig tap0 createでゲストオペレーティングシステムが使用するネットワークインターフェースを作成する.
ifconfig tap0で確認する.

7.sysctl net.link.tap.up_on_open=1でtap0をオープンする.

8.ifconfig bridge0 createでブリッジを作成する.

9.ifconfigでホストの物理ネットワークインタフェースを確認する.
自分はem0だった.

10.ifconfig bridge0 addm <9の名前> addm tap0 upでtapインターフェース経由でネットワークにアクセスできるように,ブリッジに実際に利用できるネットワークインターフェースと,先ほど作成したtapインターフェースの双方を追加する.

11.truncate -s 16G guest.imgで空のimgファイルを作成する.

12.sh /usr/share/examples/bhyve/vmrun.sh -c 4 -m 1024M -t tap0 -d guest.img -i -I FreeBSD-10.3-RELEASE-amd64-disc1.iso <vmName>でディスクをBHyVeで実行する.
-cで仮想CPUの数を指定.
-mでメモリの大きさを指定
-tで使うtapデバイスを指定
-dで使うイメージディスクを指定
-iでイメージディスクからブートすることを示す
-Iでどのイメージディスクを使うかを指定
最後に仮想マシンの名前を指定
次からはsh /usr/share/examples/bhyve/vmrun.sh -c 4 -m 1024M -t tap0 -d guest.img <vmName>で実行可能

MacからFreeBSDにディスクイメージを転送する.

1.FreeBSDifconfigを使い,IPアドレスを確認する.
2.scp FreeBSD-10.3-RELEASE-amd64-disc1.iso <IPアドレス>:でファイルを転送する.
3.私はFreeBSD/home/<ユーザ名>/FreeBSD-10.3-RELEASE-amd64-disc1.isoに置かれていた.


参考ページ

1.FreeBSD as a Host with bhyve Prev Chapter 21.Virtualization
2.使ってみようハイパーバイザbhyve