[linux-lvm] is it right to specify '-l' with all the free PE in VG when creating a thin pool?

Zdenek Kabelac zkabelac at redhat.com
Thu Mar 9 11:46:29 UTC 2017

Dne 9.3.2017 v 12:12 Eric Ren napsal(a):
> Hello,
> I find that it will fail to create a thin pool with all the free PE in VG as
> follows:
> # pvs
>   PV         VG   Fmt  Attr PSize   PFree
>   /dev/sdb        lvm2 ---  200.00g 200.00g
> # vgcreate vgtest /dev/sdb
>   Volume group "vgtest" successfully created
> # pvdisplay
>   --- Physical volume ---
>   PV Name               /dev/sdb
>   VG Name               vgtest
>   PV Size               200.00 GiB / not usable 32.00 MiB
>   Allocatable           yes
>   PE Size               4.00 MiB
>   Total PE              51192
>   Free PE               51192
>   Allocated PE          0
>   PV UUID               JD74c2-R4zZ-cgs5-c5Ty-1abQ-cf7l-gdSxzz
> # lvcreate -l 51192 --thinpool thinpool0 vgtest
>   Volume group "vgtest" has insufficient free space (51167 extents): 51192
> required.
> while it works when specifying '-l' this way:
> # lvcreate -l 100%FREE --thinpool thinpool0 vgtest
>   Logical volume "thinpool0" created.
> Is this something by design? or something may be wrong?
> I can replicate this on both:


Yes this is by DESIGN

When you specify '-l|-L'  you specify size of 'dataLV'  (logical size)
But then you need some more space for 'metadata' LVs (_tmeta & _pmspare)

-l100%FREE figure this automagically and reduces size a bit to fit in metadata LV.

Some 'future' version of lvm2 may support something like '--physicalsize' 
which will be 'a total size used for every allocation made by command).



More information about the linux-lvm mailing list