ZFS volumes as data memory for virtual hard disks
ZFS volumes are a type of ZFS data sets and are listed as block devices at /dev/zvol/zroot. A ZFS volume can be used as data memory for virtual drives in order to take advantage of ZFS data sets such as snapshots, clones or compression.
The following command creates the ZFS volume zroot/vms/samplevm/disk0 in the ZFS pool zroot with 20 GB
doas zfs create -V 20G zroot/vms/samplevm/disk0The following call starts the samplevm virtual machine with an emulated NVME hard disk that uses the ZFS volume zroot/vms/samplevm/disk0 as data storage, which is available under the directory /dev/zvol/zroot/vms/samplevm/disk0.
doas bhyve \
-c sockets=1,cores=1,threads=1 \
-m 2G \
-l bootrom,/usr/local/share/uefi-firmware/BHYVE_BHF_UEFI.fd \
-s 0,hostbridge \
-s 2,fbuf,rfb=0.0.0.0:5900,w=1024,h=768 \
-s 3,xhci,tablet \
-s 10,nvme,/dev/zvol/zroot/vms/samplevm/disk0 \
-s 31,lpc \
-A -H -P \
samplevm