[lvm-devel] directory instead of link for thinpools?

Peter Rajnoha prajnoha at redhat.com
Thu Mar 3 13:16:31 UTC 2016


On 03/03/2016 11:17 AM, Oliver Rath wrote:
> This is imho a bit confusing.
> 
> My idea now would be to change the representation of "pool" from a link
> to this (never directly used) device to a directory, which includes the
> links to the pooldevices. Now the representation would look like this
> ("/" is dir, "@" is link):
> 
> /dev/vg/standarddevice@
> /dev/vg/pool/
> /dev/vg/pool/pooldevice@
> 

If your goal is to identify and separate thin LVs based on pools they
belong to, we already have a way to do that easily via -S|--select.

For example:

[0] fedora/~ # lvs -o+layout,role vg
  LV    VG   Attr       LSize  Pool  Data%  Meta%  Layout      Role      
  lvol1 vg   Vwi-a-tz--  4.00m pool1 0.00          thin,sparse public    
  lvol2 vg   Vwi-a-tz--  4.00m pool2 0.00          thin,sparse public    
  lvol3 vg   Vwi-a-tz--  4.00m pool1 0.00          thin,sparse public    
  lvol4 vg   Vwi-a-tz--  4.00m pool2 0.00          thin,sparse public    
  lvol5 vg   Vwi-a-tz--  4.00m pool1 0.00          thin,sparse public    
  lvol6 vg   Vwi-a-tz--  4.00m pool2 0.00          thin,sparse public    
  pool1 vg   twi-aotz-- 52.00m       0.00   1.17   thin,pool   private   
  pool2 vg   twi-aotz-- 24.00m       0.00   1.17   thin,pool   private 


[0] fedora/~ # lvs -o+layout,role vg --select 'pool_lv=pool1'
  LV    VG   Attr       LSize Pool  Data%  Layout      Role      
  lvol1 vg   Vwi-a-tz-- 4.00m pool1 0.00   thin,sparse public    
  lvol3 vg   Vwi-a-tz-- 4.00m pool1 0.00   thin,sparse public    
  lvol5 vg   Vwi-a-tz-- 4.00m pool1 0.00   thin,sparse public    

[0] fedora/~ # lvs -o+layout,role vg --select 'pool_lv=pool2'
  LV    VG   Attr       LSize Pool  Data%  Layout      Role      
  lvol2 vg   Vwi-a-tz-- 4.00m pool2 0.00   thin,sparse public    
  lvol4 vg   Vwi-a-tz-- 4.00m pool2 0.00   thin,sparse public    
  lvol6 vg   Vwi-a-tz-- 4.00m pool2 0.00   thin,sparse public 

Also, we have 'layout' and 'role' fields which make it easier
to identify the LVs in more detail and then you can use that
for your selections (selection on subsets are also supported):

[0] fedora/~ # lvcreate -s vg/lvol6
  Logical volume "lvol7" created.

[0] fedora/~ # lvs -o+layout,role vg --select 'role=snapshot'
  LV    VG   Attr       LSize Pool  Origin FAncestors   Layout      Role                        
  lvol7 vg   Vwi---tz-k 4.00m pool2 lvol6  lvol6        thin,sparse public,snapshot,thinsnapshot

You can even display full path to the device:

[0] fedora/~ # lvs -o+layout,role,path vg --select 'role=snapshot'
  LV    VG   Attr       LSize Pool  Origin FAncestors   Layout      Role                         Path         
  lvol7 vg   Vwi---tz-k 4.00m pool2 lvol6  lvol6        thin,sparse public,snapshot,thinsnapshot /dev/vg/lvol7

You can use selection on any field practically, see also lvs -o help.

I would probably try to avoid editing udev rules because it's
always a source of various problems so we're trying to avoid
changes there as much as possible.

Does that -S|--select make it easier for you to identify the LVs
or do you think it's missing something we could probably enhance
there still?

-- 
Peter




More information about the lvm-devel mailing list