1
0
mirror of git://sourceware.org/git/lvm2.git synced 2024-12-21 13:34:40 +03:00
lvm2/lib/metadata
Zdenek Kabelac b4212be2e7 thin: improve 16g support for thin pool metadata
Initial support for thin-pool used slightly smaller max size 15.81GiB
for thin-pool metadata. However the real limit later settled at 15.88GiB
(difference is ~64MiB - 16448 4K blocks).

lvm2 could not simply increase the size as it has been using hard cropping
of the loaded metadata device to avoid warnings printing warning of kernel
when the size was bigger (i.e. due to bigger extent_size).

This patch adds the new lvm.conf configurable setting:
allocation/thin_pool_crop_metadata
which defaults to 0 -> no crop of metadata beyond 15.81GiB.
Only user with these sizes of metadata will be affected.

Without cropping lvm2 now limits metadata allocation size to 15.88GiB.
Any space beyond is currently not used by thin-pool target.
Even if i.e. bigger LV is used for metadata via lvconvert,
or allocated bigger because of to large extent size.

With cropping enabled (=1) lvm2 preserves the old limitation
15.81GiB and should allow to work in the evironement with
older lvm2 tools (i.e. older distribution).

Thin-pool metadata with size bigger then 15.81G is now using CROP_METADATA
flag within lvm2 metadata, so older lvm2 recognizes an
incompatible thin-pool and cannot activate such pool!

Users should use uncropped version as it is not suffering
from various issues between thin_repair results and allocated
metadata LV as thin_repair limit is 15.88GiB
Users should use cropping only when really needed!

Patch also better handles resize of thin-pool metadata and prevents resize
beoyond usable size 15.88GiB. Resize beyond 15.81GiB automatically
switches pool to no-crop version. Even with existing bigger thin-pool
metadata command 'lvextend -l+1 vg/pool_tmeta' does the change.

Patch gives better controls 'coverted' metadata LV and
reports less confusing message during conversion.

Patch set also moves the code for updating min/max into pool_manip.c
for better sharing with cache_pool code.
2021-02-01 12:06:13 +01:00
..
cache_manip.c cache: simplier signal handling 2020-09-14 00:15:14 +02:00
integrity_manip.c integrity: fix segfault on error path when replacing images 2021-01-13 13:39:33 -06:00
lv_alloc.h build: Don't generate symlinks in include/ dir 2018-05-14 10:30:20 +01:00
lv_manip.c thin: improve 16g support for thin pool metadata 2021-02-01 12:06:13 +01:00
lv.c cache: activation cache_check on cachevol 2020-12-09 17:36:09 -06:00
lv.h cache: activation cache_check on cachevol 2020-12-09 17:36:09 -06:00
merge.c thin: improve 16g support for thin pool metadata 2021-02-01 12:06:13 +01:00
metadata-exported.h thin: improve 16g support for thin pool metadata 2021-02-01 12:06:13 +01:00
metadata.c partial flag for writecache and integrity 2020-12-11 16:25:25 -06:00
metadata.h thin: improve 16g support for thin pool metadata 2021-02-01 12:06:13 +01:00
mirror.c wipe: convert zero_value to uint8_t 2020-09-15 22:52:25 +02:00
pool_manip.c thin: improve 16g support for thin pool metadata 2021-02-01 12:06:13 +01:00
pv_alloc.h doc: change fsf address 2016-01-21 12:11:37 +01:00
pv_list.c move pv_list code into lib 2020-04-13 10:04:14 -05:00
pv_manip.c pvresize: add missing return 2018-06-08 14:36:56 +02:00
pv_map.c build: Don't generate symlinks in include/ dir 2018-05-14 10:30:20 +01:00
pv_map.h build: Don't generate symlinks in include/ dir 2018-05-14 10:30:20 +01:00
pv.c lvmcache: renaming functions and variables 2019-08-16 13:26:11 -05:00
pv.h metadata: import device name hint from metadata 2019-09-30 11:38:10 -05:00
raid_manip.c Revert "lvconvert: display warning if raid1 LV image count does not change" 2020-09-28 17:14:03 +02:00
segtype.c segtype: add linear 2018-06-05 16:23:18 +02:00
segtype.h lvdisplay: enhance LV status output for raid(0) 2021-01-27 16:56:22 +01:00
snapshot_manip.c writecache: allow snapshot of LV with writecache 2020-06-10 12:18:00 -05:00
takeover_matrix.h lvconvert: add infrastructure for RaidLV reshaping support 2017-02-24 05:20:58 +01:00
thin_manip.c thin: improve 16g support for thin pool metadata 2021-02-01 12:06:13 +01:00
vdo_manip.c lvcreate: change error message 2020-09-15 22:52:25 +02:00
vg.c gcc: use apropriate type for reading and printing values 2020-08-28 21:43:03 +02:00
vg.h metadata: include description with command in metadata areas 2019-06-20 16:09:05 -05:00
writecache_manip.c writecache: use cleaner message instead of table reload 2021-01-28 15:14:25 -06:00