最近の変更サイトマップ

vm-bhyveでお手軽にbhyveを使う

準備

packagesからvm-bhyveを入れる

# pkg install vm-bhyve

vm-bhyve用のZFSファイルシステムを作る。ここにvm-bhyveの管理情報、VM情報、VMのストレージが入ることになる。

# zfs create zvm/R/vm

rc.confに設定を追加

# echo 'vm_enable="YES"' >> /etc/rc.conf
# echo 'vm_dir="zfs:zvm/R/vm"' >> /etc/rc.conf

vm-bhyveの初期化(最初の1回のみ)

vm init

vm_dirのデフォルト構造は以下のようになる

$ find /zvm/R/vm
/zvm/R/vm
/zvm/R/vm/.iso
/zvm/R/vm/.templates
/zvm/R/vm/.config
/zvm/R/vm/.config/system.conf
/zvm/R/vm/.config/null.iso

VMのテンプレートをコピーする

# cp /usr/local/share/examples/vm-bhyve/* /zvm/R/vm/.templates/

仮想スイッチの作成

仮想スイッチを作る。

VMの通信は各VM上の仮想NICから、この仮想スイッチを経由して物理ネットワークに出て行く。仮想スイッチの実体はただのネットワークブリッジである。

# vm switch create public
# vm switch add public igb0

ゲストOSからホストOSが提供するサービスにアクセスする場合は、手動でブリッジを作成し仮想スイッチとして登録してやる必要がある。(ゲストのWindowsからホストのSambaに繋ぎたいときとか。)ブリッジにIPアドレスを割り当てるようにしないと、ゲスト→ホストのpingは通るのにサービスにアクセス出来ないといった事が起こる。参考:strange network problem about bridge · Issue #146 · churchers/vm-bhyve · GitHub

ifconfig_bridge0="ether xx:yy:zz:ww:uu:vv addm igb0 addm tap0 up"
ifconfig_bridge0_alias0="inet 192.168.1.1/24"
ifconfig_igb0="up"
ifconfig_tap0="description 'dummy-tap' up"

/etc/rc.conf

# echo 'switch_list="public"' >> vm_dir/.config/system.conf'
# echo 'bridge_public="bridge0" >> vm_dir/.config/system.conf'

Windows 10を入れてみる

テンプレート(-t) windows、仮想ストレージ(-s) 60GB、VM名windowsでVMを作る。

# vm create -t windows -s 60 windows

vm configure VM名でVMの設定ファイルを編集できる。必要に応じて編集してくだしあ。自分はCPUとメモリを増量し、↓こんな感じにしますた。

vm configure windows
uefi="yes"
cpu=2
memory=6G
network0_type="virtio-net"
network0_switch="public"
disk0_type="ahci-hd"
disk0_name="disk0.img"
uuid="7faf487e-ed4f-11e7-9682-XXXXXXXXXXXX"
graphics="yes"

インストールに使うイメージはvm_dir/.iso/に入れておく必要がある。

# cp /path/to./windows_install.iso vm_dir/.iso/

インストールモードでVMを起動する

# vm install windows windows_install.iso

vm startとの違いは、指定したISOを自動マウントしてくれる点と、VNCでVMに接続するまで起動を止めてくれる点。

Windowsのインストールが完了したら、vm startで起動する事ができる。

# vm start windows

データストアを追加する

vm datastore addコマンドで、vm_dirとは別のデータストアを追加する事ができる。

現状確認

# vm datastore list
NAME            TYPE        PATH                      ZFS DATASET
default         zfs         /zvm/R/vm                 zvm/R/vm

zhome2/ROOT/vmというZFSファイルシステムをデータストアとして追加してみる。

# vm datastore add mirrorhdd zfs:zhome2/ROOT/vm

追加されたか確認

# vm datastore list
NAME            TYPE        PATH                      ZFS DATASET
default         zfs         /zvm/R/vm                 zvm/R/vm
mirrorhdd       zfs         /zhome2/ROOT/vm           zhome2/ROOT/vm

追加したデータストアはvm createの-dオプションで指定する。

freebsd/bhyve/freebsd_11.1r_use_vm-bhyve.txt · 最終更新: 2018-01-27 21:42 by decomo
CC Attribution-Noncommercial-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0