[linux-lvm] lvm limitations
zkabelac at redhat.com
Sun Aug 30 19:30:25 UTC 2020
Dne 30. 08. 20 v 20:01 Gionatan Danti napsal(a):
> Il 2020-08-30 19:33 Zdenek Kabelac ha scritto:
>> For illustration for 12.000 LVs you need ~4MiB just store Ascii
>> metadata itself, and you need metadata space for keeping at least 2 of
> Hi Zdenek, are you speaking of classical LVM metadata, right?
Lvm2 has only ascii metadata (so basically what is stored in
/etc/lvm/archive is the same as in PV header metadata area -
just without spaces and some comments)
And while this is great for manual recovery, it's not
very efficient in storing larger number of LVs - there basically
some sort of DB attemp would likely be needed.
So far however there was no real worthy use case - so safety
for recovery scenarios wins ATM.
>> Handling of operations like 'vgremove' with so many LVs requires
>> signification amount of your CPU time.
>> Basically to stay within bounds - unless you have very good reasons
>> you should probably stay in range of low thousands to keep lvm2 performing
>> reasonably well.
> What about thin vols? Can you suggest any practical limit with lvmthin?
Thin - just like any other LV takes some 'space' - so if you want
to go with higher amount - you need to specify bigger metadata areas
to be able to store such large lvm2 metadata.
There is probably not a big issue with lots of thin LVs in thin-pool as long
as user doesn't need to have them active at the same time. Due to a nature of
kernel metadata handling, the larger amount of active thin LVs from the same
thin-pool v1 may start to compete for the locking when allocating thin pool
chunks thus killing performance - so here is rather better to stay in some
'tens' of actively provisioning thin volumes when the 'performance' is factor.
Worth to note there is fixed strict limit of the ~16GiB maximum thin-pool
kernel metadata size - which surely can be exhausted - mapping holds info
about bTree mappings and sharing chunks between devices....
More information about the linux-lvm