IMHO thin-provisioning is an optional volumes type in LVM2 and is not
required for operating LVM. The fact that lvconvert works to convert
things to/from optionally supported types, is imho ok. In the same way
we ship many tools that can convert formats but not necessarily open
those for modification. E.g. i can use qemu-img to convert disk images
to e.g. VMWare format but I might not have any hypervisor that knows how
to boot such an image and allow to modify it (e.g. upgrade packages).

>From usability point of view, it might help if attempts to activate thin
volumes should result in messaging like "maybe install packages foo
bar?" Similar to how command-not-found operates.

-- 
You received this bug notification because you are a member of Ubuntu
Touch seeded packages, which is subscribed to lvm2 in Ubuntu.
https://bugs.launchpad.net/bugs/1657646

Title:
  Missing thin-provisioning-tools prevents VG with thin pool LV from
  being (de)activated, but not its creation

Status in lvm2 package in Ubuntu:
  New
Status in lvm2 package in Debian:
  New

Bug description:
  Creating a thin pool LV is allowed even when thin-provisioning-tools
  is not installed. But deactivating or activating that VG fails. Since
  deactivating the VG usually only happens at reboot, the user might
  fail to notice this big problem until then.

  I think the lvconvert tool, used to combine the two "thin LVs" into a
  thin pool LV, should refuse to run if thin-provisioning-tools, or the
  needed scripts, aren't installed.

  Steps to reproduce:
  root@15-89:~# vgcreate vg /dev/vdb1
    Volume group "vg" successfully created

  root@15-89:~# vgs
    VG   #PV #LV #SN Attr   VSize  VFree
    vg     1   0   0 wz--n- 40.00g 40.00g

  root@15-89:~# lvcreate -n pool0 -l 90%VG vg
    Logical volume "pool0" created.

  root@15-89:~# lvcreate -n pool0meta -l 5%VG vg
    Logical volume "pool0meta" created.

  root@15-89:~# lvs
    LV        VG   Attr       LSize  Pool Origin Data%  Meta%  Move Log 
Cpy%Sync Convert
    pool0     vg   -wi-a----- 36.00g
    pool0meta vg   -wi-a-----  2.00g

  root@15-89:~# ll /dev/mapper/
  total 0
  drwxr-xr-x  2 root root     100 Jun 21 14:15 ./
  drwxr-xr-x 20 root root    3820 Jun 21 14:15 ../
  crw-------  1 root root 10, 236 Jun 21 13:15 control
  lrwxrwxrwx  1 root root       7 Jun 21 14:14 vg-pool0 -> ../dm-0
  lrwxrwxrwx  1 root root       7 Jun 21 14:15 vg-pool0meta -> ../dm-1

  root@15-89:~# lvconvert --type thin-pool --poolmetadata vg/pool0meta vg/pool0
    WARNING: Converting logical volume vg/pool0 and vg/pool0meta to pool's data 
and metadata volumes.
    THIS WILL DESTROY CONTENT OF LOGICAL VOLUME (filesystem etc.)
  Do you really want to convert vg/pool0 and vg/pool0meta? [y/n]: y
    Converted vg/pool0 to thin pool.

  root@15-89:~# ll /dev/mapper/
  total 0
  drwxr-xr-x  2 root root     120 Jun 21 14:15 ./
  drwxr-xr-x 20 root root    3840 Jun 21 14:15 ../
  crw-------  1 root root 10, 236 Jun 21 13:15 control
  lrwxrwxrwx  1 root root       7 Jun 21 14:15 vg-pool0 -> ../dm-2
  lrwxrwxrwx  1 root root       7 Jun 21 14:15 vg-pool0_tdata -> ../dm-1
  lrwxrwxrwx  1 root root       7 Jun 21 14:15 vg-pool0_tmeta -> ../dm-0
  root@15-89:~# lvs -a
    LV              VG   Attr       LSize  Pool Origin Data%  Meta%  Move Log 
Cpy%S
  ync Convert
    [lvol0_pmspare] vg   ewi-------  2.00g
    pool0           vg   twi-a-tz-- 36.00g             0.00   0.01
    [pool0_tdata]   vg   Twi-ao---- 36.00g
    [pool0_tmeta]   vg   ewi-ao----  2.00g

  If you now reboot the system, all that is gone:
  root@15-89:~# ll /dev/mapper/
  total 0
  drwxr-xr-x  2 root root      60 Jun 21 14:28 ./
  drwxr-xr-x 19 root root    3760 Jun 21 14:28 ../
  crw-------  1 root root 10, 236 Jun 21 14:28 control

  The same happens if you deactivate the VG (which the reboot
  undoubtedly triggers). It fails because of a missing
  /usr/sbin/thin_check which is provided by the thin-provisioning-tools
  package:

  root@15-89:~# vgchange -a n
    /usr/sbin/thin_check: execvp failed: No such file or directory
    WARNING: Integrity check of metadata for pool vg/pool0 failed.
    0 logical volume(s) in volume group "vg" now active

  root@15-89:~# ll /dev/mapper/
  total 0
  drwxr-xr-x  2 root root      60 Jun 21 14:29 ./
  drwxr-xr-x 19 root root    3760 Jun 21 14:29 ../
  crw-------  1 root root 10, 236 Jun 21 14:28 control

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

-- 
Mailing list: https://launchpad.net/~touch-packages
Post to     : touch-packages@lists.launchpad.net
Unsubscribe : https://launchpad.net/~touch-packages
More help   : https://help.launchpad.net/ListHelp

Reply via email to