All of lore.kernel.org
 help / color / mirror / Atom feed
* directory instead of link for thinpools?
@ 2016-03-03 10:17 Oliver Rath
  2016-03-03 10:32 ` Zdenek Kabelac
  2016-03-03 13:16 ` Peter Rajnoha
  0 siblings, 2 replies; 3+ messages in thread
From: Oliver Rath @ 2016-03-03 10:17 UTC (permalink / raw)
  To: lvm-devel

Hi list,

Im using thinpool-devices for a longer time (3+ years) and thinking
about a more intuitive representation in /dev/.

If Im right, Thinpools are not used directly (as device), only as pool
for thinpool-based devices (these with --virtualsize instead of --size).

I.e. we are using "vg" as volumegroup and "pool" as thinpool,
"pooldevice" a "pool" based virtual device and "standarddevice" a normal
(non-thinpool) lvm-device, then following happens:

- /dev/vg/pool is a link to /dev/dm-X, which is a device node, but never
  used directly
- /dev/vg/pooldevice is also a link to /dev/dm-Y, but now it is useable
  directly
- /dev/vg/standarddevice is also a link to /dev/dm-Z, useable directly,
  but not snappable like thinpool devices

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@


Now I tried to create this with udev-rules, but unfortunatly I didnt
find any possibility to differ between standarddevices, pools and
pool-based devices. Is there any possibility to recogize this for
udev-rules?

What do you think generally about this idea?

Tfh!

Oliver



^ permalink raw reply	[flat|nested] 3+ messages in thread

* directory instead of link for thinpools?
  2016-03-03 10:17 directory instead of link for thinpools? Oliver Rath
@ 2016-03-03 10:32 ` Zdenek Kabelac
  2016-03-03 13:16 ` Peter Rajnoha
  1 sibling, 0 replies; 3+ messages in thread
From: Zdenek Kabelac @ 2016-03-03 10:32 UTC (permalink / raw)
  To: lvm-devel

Dne 3.3.2016 v 11:17 Oliver Rath napsal(a):
> Hi list,
>
> Im using thinpool-devices for a longer time (3+ years) and thinking
> about a more intuitive representation in /dev/.
>
> If Im right, Thinpools are not used directly (as device), only as pool
> for thinpool-based devices (these with --virtualsize instead of --size).
>
> I.e. we are using "vg" as volumegroup and "pool" as thinpool,
> "pooldevice" a "pool" based virtual device and "standarddevice" a normal
> (non-thinpool) lvm-device, then following happens:
>
> - /dev/vg/pool is a link to /dev/dm-X, which is a device node, but never
>    used directly
> - /dev/vg/pooldevice is also a link to /dev/dm-Y, but now it is useable
>    directly
> - /dev/vg/standarddevice is also a link to /dev/dm-Z, useable directly,
>    but not snappable like thinpool devices
>
> 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@
>
>
> Now I tried to create this with udev-rules, but unfortunatly I didnt
> find any possibility to differ between standarddevices, pools and
> pool-based devices. Is there any possibility to recogize this for
> udev-rules?
>
> What do you think generally about this idea?
>

Hi

NACK

It's already complex with existing udev & system rules - so adding new 
complicated stuff makes no sense.

If you need to get some 'visually' similar layout - just prepend
pool name prefix into your  LV name.

But there is not going to be subdir support for LVs in lvm2.

It stays with simple rule: user usable LV has device path:

/dev/vgname/lvname

and thinLV is user usable LV  and we are not going change this key rule.

Regards

Zdenek





^ permalink raw reply	[flat|nested] 3+ messages in thread

* directory instead of link for thinpools?
  2016-03-03 10:17 directory instead of link for thinpools? Oliver Rath
  2016-03-03 10:32 ` Zdenek Kabelac
@ 2016-03-03 13:16 ` Peter Rajnoha
  1 sibling, 0 replies; 3+ messages in thread
From: Peter Rajnoha @ 2016-03-03 13:16 UTC (permalink / raw)
  To: lvm-devel

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



^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2016-03-03 13:16 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2016-03-03 10:17 directory instead of link for thinpools? Oliver Rath
2016-03-03 10:32 ` Zdenek Kabelac
2016-03-03 13:16 ` Peter Rajnoha

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.