仮想化ソフトウェア - FreeBSD - bhyve - ゲストインスタンス生成・削除

 クラウディア
1. 概要
2. 生成
3. 定義ファイルの編集
4. 削除

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
earthcar(アースカー)