I’m trying to compose a VM on a MAAS provisioned libvirt host, and I’m getting this error:
Pod unable to compose machine: Unable to compose machine because: Failed talking to pod: Unable to compose test: Virsh command [‘start’, ‘–paused’, ‘test’] failed: Failed to start domain ‘test’ error: internal error: process exited while connecting to monitor: 2023-06-15T17:31:05.508059Z qemu-system-x86_64: -blockdev {“driver”:“file”,“filename”:“/dev/zvol/local/f1b07bcb-bf67-49e2-be9e-842d60ba34d8”,“node-name”:“libvirt-1-storage”,“auto-read-only”:true,“discard”:“unmap”}: ‘file’ driver requires ‘/dev/zvol/local/f1b07bcb-bf67-49e2-be9e-842d60ba34d8’ to be a regular file
The storage backend is ZFS on a block device:
# zpool list -v
NAME SIZE ALLOC FREE CKPOINT EXPANDSZ FRAG CAP DEDUP HEALTH ALTROOT
local 928G 15.0G 913G - - 0% 1% 1.00x ONLINE -
nvme0n1 928G 15.0G 913G - - 0% 1.61% - ONLINE
Which is added as a storage pool to libvirt via:
# virsh pool-dumpxml extra
<pool type='zfs'>
<name>extra</name>
<uuid>fa2d6df4-d4d0-419d-8e03-360b36f8db9d</uuid>
<capacity unit='bytes'>996432412672</capacity>
<allocation unit='bytes'>16059431936</allocation>
<available unit='bytes'>980372980736</available>
<source>
<name>local</name>
</source>
<target>
<path>/dev/zvol/local</path>
</target>
</pool>
I’m not exactly sure what the issue is, but I can manually create the VM using virsh
, ie:
<disk type='block' device='disk'>
<driver name='qemu' type='raw' cache='none' io='native'/>
<source dev='/dev/zvol/local/test'/>
<target dev='hda' bus='ide'/>
<boot order='2'/>
<address type='drive' controller='0' bus='0' target='0' unit='0'/>
</disk>