Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 5 Aug 2024 18:12:38 +0200
From:      Harry Schmalzbauer <freebsd@omnilan.de>
To:        freebsd-current@freebsd.org
Cc:        virtualization@FreeBSD.org
Subject:   RFC: rc(8) script for bhyve(8) on FreeBSD
Message-ID:  <178d585e-2ce0-4b69-a017-8af7f9b78a57@omnilan.de>

next in thread | raw e-mail | index | archive | help
This is a multi-part message in MIME format.
--------------radhHtt5qIt0nPYoCwSlwKnA
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit

Hello,

two years elapsed since I last deployed a FreeBSD machine that utilizd 
bhyve(8), which already had bhyve_config(5) support back then.

I was astonished that I still couldn't find bhyve in /etc/rc.d in 
14.1-stable as of last week.
Since I utilize ng_bridge(8) and do some more things differently than 
vm-bhyve / iocage and the like, I wanted to have something straight 
forward, capable of making use of the wonderful bhyve_config(5) feature, 
for use cases where /usr/share/examples/bhyve/vmrun.sh isn't suitable.

Please find attached my first approch, which currently covers the 
following features:

- auto-preload FreeBSD guest using bhyveload(8) in case config file 
doesn't define lpc.bootrom
- Allows referencing %(youname_somevar) in config file if defined as 
bhyve_youname_somevar in rc.conf(5).
   (For example:
     bhyve_vmdisk_default_pool="myppol2"
     bhyve_vmdisk_default_dataset="bhyveVOL/sys"
     and
pci.0.3.0.path=/dev/zvol/%(vmdisk_default_pool)/%(vmdisk_default_dataset)/%(name) 
in bhyve_config(5) file
   )
- Adaptive handling of start/stop requests depending on 'AUTO' 'ALL' or 
specific list of VM names, depending on the non-bhyve_cfg(5) 'autostart' 
option.
- Hopefully balanced amount of messages about what's going on, to be 
user friendly but not spamming.

There's a lot of room for improvements (selectable pre-jail/post-jail 
order, bootdisk detection, priority handling, a useful 'status' 
implementation, style) and for sure some bugs, but this version works 
well for my current setup.
Happy to contribute if useful for others, feedback welcome.

-harry



--------------radhHtt5qIt0nPYoCwSlwKnA
Content-Type: application/x-xz; name="rc.d_bhyve.shar.xz"
Content-Disposition: attachment; filename="rc.d_bhyve.shar.xz"
Content-Transfer-Encoding: base64

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
n+Ek5gABgDve1wEAzJVCXLHEZ/sCAAAAAARZWg==

--------------radhHtt5qIt0nPYoCwSlwKnA--



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?178d585e-2ce0-4b69-a017-8af7f9b78a57>