Open
Description
I've failed to use this roles with lvm (at least on debian 10)
Error
if data to created VM is :
volumes:
- name: 'ns2'
type: 'volume'
capacity: '10GB'
pool: 'lvm_pool'
format: 'raw'
The role is crashing with this error
"msg": "internal error: qemu unexpectedly closed the monitor: 2020-09-11T12:51:05.508705Z qemu-system-x86_64: -drive file=/dev/lvm_pool/ns3,format=raw,if=none,id=drive-virtio-disk0: Could not open '/dev/lvm_pool/ns3': Permission denied"
Debugging
- Debugging,
virsh dumpxml <nodename>
give me :
<disk type='volume' device='disk'>
<driver name='qemu' type='raw'/>
<source pool='lvm_pool' volume='ns3'/>
<target dev='vda' bus='virtio'/>
</disk>
- Update the node via
virsh edit <node>
- replace
<disk type='volume' device='disk'>
with<disk type='block' device='disk'>
- replace
<source pool='lvm_pool' volume='ns3'/>
with<source dev='/dev/lvm_pool/ns3'/>
- replace
It's now can boot
Change need
To permit these two line change (done on virsh edit
) via ansible and your role :
- Need to add this in the template
vm.xml.j2
:
{% elif volume.pool is defined %}
<source dev='/dev/{{ volume.pool }}/{{ volume.name }}'/>
- Need to change type from
volume
toblock
, so my variable will be :
volumes:
- name: 'ns2'
type: 'block'
capacity: '10GB'
pool: 'lvm_pool'
format: 'raw'
- As it's now a
block
volume, the tasksEnsure the VM volumes exist
will be skipped (due to when condition)
So needed to updatevolumes.yml
condition (line 30)
from : when: item.type | default(libvirt_volume_default_type) == 'volume'
to : when: item.type | default(libvirt_volume_default_type) == 'volume' or ( item.type | default(libvirt_volume_default_type) == 'block' and item.pool is defined )
- Maybe, it's will also good to update the README to have a lvm example .
Metadata
Metadata
Assignees
Labels
No labels