Problem:
I’m looking at moving some kvm hypervisors provisioning process move away from directory based storage pools to logical volume or pool based storage pools managed by libvirt.
I decided to test this in my home lab never having used this configuration before.
I setup a hypervisor on Rocky 10, and created two storage volumes made up of different disk devices to understand performance and configuration options (specifically volume block size and file system block size performance)
the two logical volumes and their libvirt storage pool definition look like this
<pool type='logical'>
<name>vgnvme</name>
<uuid>8fcdd132-b356-4044-93b0-681f44a8fa3c</uuid>
<capacity unit='bytes'>0</capacity>
<allocation unit='bytes'>0</allocation>
<available unit='bytes'>0</available>
<source>
<name>vgnvme</name>
<format type='lvm2'/>
</source>
<target>
<path>/dev/vgnvme</path>
</target>
</pool>
and
<pool type='logical'>
<name>vgstripe</name>
<uuid>61329409-de04-48f2-bed8-035ad72ecfae</uuid>
<capacity unit='bytes'>0</capacity>
<allocation unit='bytes'>0</allocation>
<available unit='bytes'>0</available>
<source>
<name>vgstripe</name>
<format type='lvm2'/>
</source>
<target>
<path>/dev/vgstripe</path>
</target>
</pool>
These pools appear on the libvirt hypervisor and active
Name State Autostart
--------------------------------
vgnvme active yes
vgstripe active yes
Verifying the libvirt compute resource is reachable using the ‘test’ option in the foreman interface I am able to begin provisioning a host on this hypervisor.
When setting up the specification of the virtual machine within the foreman interface, the drop down for the storage pools that would normally allow me to select the storage destination for the virtual guest, contains no entries and foreman expects me to create one
The storage pools created do not display, and the only options for storage are ‘raw’ and ‘qcow2’ which are directory and file based storage options in libvirt.
Expected outcome:
Storage pool would display volume based storage pools - in this example ‘vgnvme’ and ‘vgstripe’
Foreman and Proxy versions:
Foreman 3.16
Foreman-Proxy 3.16
Foreman and Proxy plugin versions:
foreman-tasks 11.0.4
foreman_ansible. 17.0.1
foreman_dhcp_browser 0.1.2
foreman_kubevirt 0.4.1
foreman_puppet 9.0.0
foreman_remote_execution 16.2.1
foreman_templates 10.0.9
foreman_webhooks 4.0.1
Other relevant data:
Satellite reference docs
Show that provisioning kvm/libvirt hosts requires no limitation of storage pools, although all examples in this doc do reference qcow2 format provisioning.
There is a link in this document documenting how to setup a RedHat virtualisation host (libvirt/kvm) for use with foreman
this document second 3.5.2 shows support for storage volume based storage pools, while this is not direct support confirmation in foreman, the implication is that if Satellite does not say 'only supports raw or qcow2 on directory based pools, AND the document linked on how to setup a kvm server for foreman shows you how to setup volume based storage pools, then foreman should support it.
From the research I’ve been able to do myself, I don’t believe pool based storage is supported and only directory and file based is supported, (I can see my other kvm hosts that use directory based pools offer their storage correctly in the foreman host provisioning page)
