1
0
mirror of git://sourceware.org/git/lvm2.git synced 2024-12-21 13:34:40 +03:00
LVM2 mirror repository https://sourceware.org/lvm2/
Go to file
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
autoconf autoconf: Fix py-compile permissions 2016-02-18 01:05:05 +00:00
base cleanup: better expressing passing key arg to _hash 2020-09-01 17:57:50 +02:00
conf thin: improve 16g support for thin pool metadata 2021-02-01 12:06:13 +01:00
coverity cov: drop model for origin_from_cow 2020-09-12 13:23:49 +02:00
daemons lvmlockd: sscanf buffer size warnings 2021-01-08 12:13:05 -06:00
device_mapper thin: improve 16g support for thin pool metadata 2021-02-01 12:06:13 +01:00
doc Merge branch 'master' into 2018-05-11-fork-libdm 2018-06-01 13:04:12 +01:00
include configure: check for BLKZEROOUT support 2020-10-02 20:48:41 +02:00
lib thin: improve 16g support for thin pool metadata 2021-02-01 12:06:13 +01:00
libdaemon cov: drop checking for EWOULDBLOCK 2020-09-12 13:24:03 +02:00
libdm libdm: relocate code for sending messages 2020-10-19 16:53:19 +02:00
man thin: improve 16g support for thin pool metadata 2021-02-01 12:06:13 +01:00
nix lockd: Clean up spec 2015-07-04 14:36:57 +02:00
po doc: change fsf address 2016-01-21 12:11:37 +01:00
scripts fsadm: fix unbound variable usage 2020-12-08 20:32:34 +01:00
spec rpm: bare words are no longer supported 2020-10-02 22:27:00 +02:00
test lvdisplay: enhance LV status output for raid(0) 2021-01-27 16:56:22 +01:00
tools thin: improve 16g support for thin pool metadata 2021-02-01 12:06:13 +01:00
udev udev rule: remove lvmetad comments 2020-11-25 16:57:54 -06:00
.gitignore gitignore: ignore gcov files 2020-10-15 11:13:13 +02:00
acinclude.m4 [build] uncomment 'serial 3' in an m4 file. 2018-04-30 09:44:27 +01:00
aclocal.m4 configure: update 2020-12-11 12:16:16 +01:00
configure configure: update 2020-12-11 12:16:16 +01:00
configure.ac configure: use our ordered list of python names 2020-10-02 20:52:38 +02:00
COPYING doc: change fsf address 2016-01-21 12:11:37 +01:00
COPYING.BSD Add BSD 2-Clause License 2018-07-27 17:09:46 +02:00
COPYING.LIB Fix inconsistent licence notices: executables are GPLv2; libraries LGPLv2.1. 2007-08-20 20:55:30 +00:00
INSTALL quick review of docs 2008-11-04 17:49:22 +00:00
make.tmpl.in lvm: add readline alternative editline 2020-09-29 10:13:24 +02:00
Makefile.in makefiles: correcting login of makefile 2018-12-17 10:55:20 +01:00
README Update README 2020-08-12 12:05:36 +02:00
TESTING docs: Add TESTING file 2017-12-14 16:45:47 +01:00
VERSION post-release 2021-01-08 10:08:36 +01:00
VERSION_DM post-release 2021-01-08 10:08:36 +01:00
WHATS_NEW lvdisplay: enhance LV status output for raid(0) 2021-01-27 16:56:22 +01:00
WHATS_NEW_DM post-release 2021-01-08 10:08:36 +01:00

This tree contains the LVM2 and device-mapper tools and libraries.

This is development branch, for stable 2.02 release see stable-2.02 branch.

For more information about LVM2 read the changelog in the WHATS_NEW file.
Installation instructions are in INSTALL.

There is no warranty - see COPYING and COPYING.LIB.

Tarballs are available from:
  ftp://sourceware.org/pub/lvm2/
  https://github.com/lvmteam/lvm2/releases

The source code is stored in git:
  https://sourceware.org/git/?p=lvm2.git
  git clone git://sourceware.org/git/lvm2.git
mirrored to:
  https://github.com/lvmteam/lvm2
  git clone https://github.com/lvmteam/lvm2.git
  git clone git@github.com:lvmteam/lvm2.git

Mailing list for general discussion related to LVM2:
  linux-lvm@redhat.com
  Subscribe from https://www.redhat.com/mailman/listinfo/linux-lvm

Mailing lists for LVM2 development, patches and commits:
  lvm-devel@redhat.com
  Subscribe from https://www.redhat.com/mailman/listinfo/lvm-devel

  lvm2-commits@lists.fedorahosted.org (Read-only archive of commits)
  Subscribe from https://fedorahosted.org/mailman/listinfo/lvm2-commits

Mailing list for device-mapper development, including kernel patches
and multipath-tools:
  dm-devel@redhat.com
  Subscribe from https://www.redhat.com/mailman/listinfo/dm-devel

Website:
  https://sourceware.org/lvm2/

Report upstream bugs at:
  https://bugzilla.redhat.com/enter_bug.cgi?product=LVM%20and%20device-mapper
or open issues at:
  https://github.com/lvmteam/lvm2/issues

The source code repository used until 7th June 2012 is accessible using CVS:

  cvs -d :pserver:cvs@sourceware.org:/cvs/lvm2 login cvs
  cvs -d :pserver:cvs@sourceware.org:/cvs/lvm2 checkout LVM2

The password is cvs.