[Bug 1801918] Re: storage pool with persistent device names fails

 Christian Ehrhardt  1801918 at bugs.launchpad.net
Tue Nov 6 14:45:26 UTC 2018


This is again a case of please read all characters carefully :-)

definition from xml:
(gdb) p def->source.devices[i].path
$4 = 0x7f5204008e30 "/dev/disk/by-path/virtio-pci-0000:00:07.0"

compared against the array it built with the lvm tools
(gdb) p thisSource->devices[0]
$7 = {nfreeExtent = 0, freeExtents = 0x0, path = 0x7f51fc012b20 "/dev/disk/by-path/pci-0000:00:07.0", format = 0, part_separator = 0, geometry = {cylinders = 0, heads = 0, sectors = 0}}

That is different:
/dev/disk/by-path/virtio-pci-0000:00:07.0
/dev/disk/by-path/pci-0000:00:07.0

Lets further improve the lvm config we have.

-- 
You received this bug notification because you are a member of Ubuntu
Foundations Bugs, which is subscribed to lvm2 in Ubuntu.
https://bugs.launchpad.net/bugs/1801918

Title:
  storage pool with persistent device names fails

Status in libvirt package in Ubuntu:
  Invalid
Status in lvm2 package in Ubuntu:
  Invalid

Bug description:
  lvm2 tools do not store by-path values in their config.
  That can drive scripts/tools (like the libvirt case here) mad.
  Simplified example:

  $ sudo /sbin/pvcreate /dev/disk/by-path/virtio-pci-0000:00:07.0
  $ sudo /sbin/pvs --noheadings -o pv_name,vg_name
    /dev/vdc

  It is NOT using /dev/disk/by-path/virtio-pci-0000:00:07.0 as
  instructed, but instead did the mapping to /dev/vdd and keeps that
  from now on.

  I know that "inside" lvm all that is done via metadata and it won't matter.
  But tools around it get confused.
  Not sure yet if it is a real issue, or just "works as designed".

  
  --- started as libvirt issue - keeping old desc below ---

  I am trying to create a logical volume storage pool with persistent
  device names for the block devices, because I can't/don't want to ensure
  that /dev/sd* names are persistent through reboots.

  virsh # pool-define-as web2067 logical - -
  /dev/disk/by-path/pci-0000:18:00.0-scsi-0:2:2:0  web2067 /dev/web2067
  virsh # pool-build web2067

  These two steps work as expected and the pv and the vg get created, but
  when I try to start the pool I get the following error:

  virsh # pool-start web2067
  error: Failed to start pool web2067
  error: unsupported configuration: cannot find any matching source
  devices for logical volume group 'web2067'

  If I do the same steps just with /dev/sdX instead of
  /dev/disk/by-path/..., the pool gets created correctly.

  According to the libvirt mailing list /dev and /dev/disk/by-path are
  supposed to work the same way.

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/libvirt/+bug/1801918/+subscriptions



More information about the foundations-bugs mailing list