1. 概要
まずは、ゲストを作成するところから。
「bhyve」では、ゲストのインスタンスと言うようです。
2. 生成
0
ゲストの名称は、「vm141」としておきます(実は、本ページ、ときどき名称を変えていますだ)。
生成前の状態を見ます。
$ vm list
NAME DATASTORE LOADER CPU MEMORY VNC AUTOSTART STATE
生成します。
vm create -t default -s 160g vm141
「-t default」は、使用するテンプレートファイルで、仮想環境作成時に。
cp -pv /usr/local/share/examples/vm-bhyve/* /usr/vm/.templates/.
でコピーしたもののどれかを選ぶことになります。
テンプレートは、2022年12月1日現在で、下記のものがあります。
alpine.conf
arch.conf
centos6.conf
centos7.conf
config.sample
coreos.conf
debian.conf
default.conf
dragonfly.conf
freebsd-zvol.conf
freepbx.conf
gentoo.conf
linux-zvol.conf
netbsd.conf
openbsd.conf
resflash.conf
ubuntu.conf
windows.conf
「FreeBSD」を作成する場合は
vm create -t freebsd-zvol -s 160g vm141
ですかな。
これ、「zfs」前提でやっているので、ホストが「zfs」でないと
/usr/local/sbin/vm: ERROR: cannot use ZVOL storage unless ZFS support is enabled
てな警告が表示されます。
警告は表示されますが、一応、作成されるようです。
生成後の状態をみてみます。
$ vm list
NAME DATASTORE LOADER CPU MEMORY VNC AUTOSTART STATE
vm141 default bhyveload 1 256M - No Stopped
よくわからないのがゲスト「OS」のエリアとして、「40GB」の容量を割り当てているつもりで、実際
$ ls -lh /usr/vm/vm141/
total 108K
drwxr-xr-x 2 root wheel 512 Oct 18 00:57 .
drwxr-xr-x 6 root wheel 512 Oct 18 00:57 ..
-rw------- 1 root wheel 40G Oct 18 00:57 disk0.img
-rw-r--r-- 1 root wheel 180 Oct 18 00:57 vm141.conf
と「40GB」割り当てられているように見えるのですが
$ df -H
Filesystem Size Used Avail Capacity Mounted on
/dev/da0s1a 121G 7.1G 104G 6% /
devfs 1.0k 1.0k 0B 100% /dev
ホスト側のディスクはそれほど消費されていない・・・?
これは、ホストが「VMWare」上のものだからなのか、それとも実機でもこうなるのか・・・。
機会があれば調べてみたいと思います。
上記、2022年12月1日に実機でやってみました。
「VMWare」上と同様、「disk0.img」は、「40GB」に見えますが、「df」で見ると「vm create」前後でさほど変わりませんので、他の仮想環境と同様、予約している領域と実際に消費する領域に差が出るようです。
3. 定義ファイルの編集
vm configure vm141
で定義ファイルを編集できます。
実際は「vi」が起動されて
/仮想環境パス/vm141/vm141.conf
を編集することになります。
直接「vi」や「vim」で編集した場合、定義ファイルの更新結果が反映されるかどうかわからないので「vm configure」でやった方が良さそうです。
中身は、テンプレートが「default」だと
loader="bhyveload"
cpu=1
memory=256M
network0_type="virtio-net"
network0_switch="public"
disk0_type="virtio-blk"
disk0_name="disk0.img"
uuid="4e6c9bf9-d225-11e8-bf6e-000c29e87896"
テンプレートが「freebsd-zvol」だと
loader="bhyveload"
cpu=1
memory=256M
network0_type="virtio-net"
network0_switch="public"
disk0_type="virtio-blk"
disk0_name="disk0"
disk0_dev="sparse-zvol"
uuid="b3137e15-711c-11ed-af78-8c89a54f8ae1"
network0_mac="58:9c:fc:09:21:7d"
てな感じになっておりました。
メモリサイズを変更してみます。
memory=4G
$ vm list
NAME DATASTORE LOADER CPU MEMORY VNC AUTOSTART STATE
vm141 default bhyveload 1 4G - No Stopped
ちなみに、「vim」で直接編集しても反映されましたが、安全のためには、「vm configure」でやるべきですね。
4. 削除
一度間違えて、参考サイトのまま「vmtest」という名前で作成してしまいましたが
cd /仮想環境パス/
rm -R vmtest
で簡単に削除できるようです。
しかし、これは乱暴。
正式には
vm destroy vmtest
です。
Are you sure you want to completely remove this virtual machine (y/n)?
てな、メッセージが表示されます。
削除して問題なければ、y Enter。