Skip to content

Failed to use this roles with lvm #61

Open
@roumano

Description

@roumano

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'/>

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 to block, 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 tasks Ensure the VM volumes exist will be skipped (due to when condition)
    So needed to update volumes.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

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions