Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package lvm2 for openSUSE:Factory checked in at 2026-10-21 20:51:24 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/lvm2 (Old) and /work/SRC/openSUSE:Factory/.lvm2.new.2252680 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "lvm2" Wed Oct 21 20:51:24 2026 rev:179 rq:1386402 version:2.03.43 Changes: -------- --- /work/SRC/openSUSE:Factory/lvm2/lvm2.changes 2025-12-30 12:01:06.586397382 +0100 +++ /work/SRC/openSUSE:Factory/.lvm2.new.2252680/lvm2.changes 2026-10-21 20:51:27.802818216 +0200 @@ -1,0 +2,40 @@ +Sun Oct 18 11:04:26 UTC 2026 - Martin Pluskal <[email protected]> + +- Update to version 2.03.43: + * Wipe stale signatures before formatting a VDO data LV on thin + storage; allow 4K stripe size smaller than page size. + * dmeventd fixes: raid repair after partial replacement, snapshot + extension backoff, snapshot threshold and unmount handling. + * pvmove in shared VGs with lvmlockd, cluster lock lifecycle for + the pvmove LV, lock probes for holder availability. + * lvmpersist hardening: reject non-block devices, validate options, + require PR tools, clean up keys on interruption. + * Add lvmconfig --edit to set or remove an lvm.conf setting and + backup/file-limit handling for config edits. + * Remove cmirrord and clustered mirror log daemon support; drop the + legacy vgimportclone.sh script. + * Increase the default value of global/lvmlockd_lock_retries from + 3 to 6. + * Respect /run/mdadm/creating-<md_dev_name> in 69-dm-lvm.rules. + * Many dmeventd, lvmlockd, vgmerge/vgcreate/vgimportclone lock-leak + and raid/pvmove polling fixes. +- Sync lvm.conf with upstream 2.03.43 defaults (adds + allocation/vdo_use_kernel_format and backup/config_file_backup_limit + options). +- Package the new dmvdostats symlink and man page in device-mapper. +- Drop patches adopted upstream or obsolete: + * cmirrord_remove_date_time_from_compilation.patch (cmirrord + removed upstream) + * bug-1214071-blkdeactivate_calls_wrong_mountpoint.patch (upstream + uses /usr/bin/mountpoint now) +- Rebase bug-1012973_simplify-special-case-for-md-in-69-dm-lvm-rules.patch + onto the reworked MD section, keeping the new creating-guard. +- Rework bug-1184124-link-tests-as-PIE.patch to pass -pie in the two + generic test link recipes, and + bug-1037309_Makefile-skip-compliling-daemons-lvmlockd-directory.patch + to its configure hunk (the Makefile.in part is upstream now). +- Sonames unchanged (libdevmapper.so.1.03, liblvm2cmd.so.2.03); + device-mapper package version moves to 2.03.43_1.02.217. +- Spec cleanup: drop Group tags, https sources, pkgconfig deps. + +------------------------------------------------------------------- Old: ---- LVM2.2.03.38.tgz LVM2.2.03.38.tgz.asc bug-1214071-blkdeactivate_calls_wrong_mountpoint.patch cmirrord_remove_date_time_from_compilation.patch New: ---- LVM2.2.03.43.tgz LVM2.2.03.43.tgz.asc ----------(Old B)---------- Old: removed upstream) * bug-1214071-blkdeactivate_calls_wrong_mountpoint.patch (upstream uses /usr/bin/mountpoint now) Old:- Drop patches adopted upstream or obsolete: * cmirrord_remove_date_time_from_compilation.patch (cmirrord removed upstream) ----------(Old E)---------- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ lvm2.spec ++++++ --- /var/tmp/diff_new_pack.5dqTcU/_old 2026-10-21 20:51:29.038869752 +0200 +++ /var/tmp/diff_new_pack.5dqTcU/_new 2026-10-21 20:51:29.039869793 +0200 @@ -1,7 +1,7 @@ # # spec file for package lvm2 # -# Copyright (c) 2025 SUSE LLC +# Copyright (c) 2026 SUSE LLC and contributors # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -21,11 +21,11 @@ %define libname_event libdevmapper-event1_03 %define _udevdir %(pkg-config --variable=udevdir udev) %define cmdlib liblvm2cmd2_03 -%define lvm2_version 2.03.38 +%define lvm2_version 2.03.43 # For device_mapper_version, it's package version, see bsc#1199074. # Also note there is another dm version on below "sed -ie ... VERSION_DM". -%define upstream_device_mapper_version 1.02.212 -%define device_mapper_version %{lvm2_version}_1.02.212 +%define upstream_device_mapper_version 1.02.217 +%define device_mapper_version %{lvm2_version}_1.02.217 %define thin_provisioning_version 0.7.0 %if 0%{?suse_version} >= 1600 && ! 0%{?is_opensuse} %define _supportsanlock 0 @@ -57,32 +57,27 @@ %else %bcond_with devicemapper %endif - %if "%{flavor}" == "lockd" %define psuffix -lvmlockd %bcond_without lockd %else %bcond_with lockd %endif - Name: lvm2%{psuffix} Version: %{lvm2_version} Release: 0 Summary: Logical Volume Manager Tools License: GPL-2.0-or-later AND LGPL-2.1-or-later -Group: System/Base URL: https://www.sourceware.org/lvm2/ -Source: ftp://sourceware.org/pub/lvm2/LVM2.%{version}.tgz +Source: https://sourceware.org/pub/lvm2/LVM2.%{version}.tgz Source1: lvm.conf Source2: lvm2-rpmlintrc -Source42: ftp://sourceware.org/pub/lvm2/LVM2.%{version}.tgz.asc +Source42: https://sourceware.org/pub/lvm2/LVM2.%{version}.tgz.asc Source99: baselibs.conf - # Upstream patches #Patch0001: n/a # SUSE patches: 1000+ for LVM # Never upstream -Patch1001: cmirrord_remove_date_time_from_compilation.patch Patch1002: fate-309425_display-dm-name-for-lv-name.patch Patch1003: bug-935623_dmeventd-fix-dso-name-wrong-compare.patch Patch1004: bug-998893_make_pvscan_service_after_multipathd.patch @@ -90,8 +85,7 @@ Patch1006: fate-31841-01_fsadm-add-support-to-resize-check-btrfs-filesystem.patch Patch1007: fate-31841-02_man-add-support-for-btrfs.patch Patch1008: fate-31841-03_tests-new-test-suite-of-fsadm-for-btrfs.patch -Patch1009: bug-1214071-blkdeactivate_calls_wrong_mountpoint.patch -Patch1010: bug-1228854_lvm2-monitor-service-start-after-system-fully-booted.patch +Patch1009: bug-1228854_lvm2-monitor-service-start-after-system-fully-booted.patch # SUSE patches 2000+ for device mapper, udev rules Patch2001: bug-1012973_simplify-special-case-for-md-in-69-dm-lvm-rules.patch # SUSE patches 3000+ for test code @@ -105,17 +99,16 @@ BuildRequires: python-rpm-macros BuildRequires: pkgconfig(libsystemd) BuildRequires: pkgconfig(libudev) -Requires: device-mapper >= %{device_mapper_version} -Requires: modutils +Requires: (multipath-tools >= 0.9.9 if multipath-tools) # see bsc#1225783 bsc#1229518 for following 2 lines Requires: (udev >= 255.7 if udev) -Requires: (multipath-tools >= 0.9.9 if multipath-tools) +Requires: device-mapper >= %{device_mapper_version} +Requires: modutils Requires(post): coreutils Requires(postun): coreutils Provides: lvm = %{version} Obsoletes: lvm2-cmirrord <= %{lvm2_cmirrord_version} %{?systemd_requires} - %if %{with devicemapper} BuildRequires: gcc-c++ BuildRequires: suse-module-tools @@ -125,18 +118,21 @@ BuildRequires: pkgconfig(blkid) BuildRequires: pkgconfig(corosync) %if %{with lockd} +# NOTE: keep the dlm floor on the package name: libdlm.pc carries its +# own 4.0.0 version string and never satisfies a 4.0.9 constraint. BuildRequires: libdlm-devel >= %{dlm_version} +BuildRequires: pkgconfig(libdlm) BuildRequires: pkgconfig(systemd) %if 0%{_supportsanlock} == 1 BuildRequires: sanlock-devel >= %{sanlock_version} %endif %else BuildRequires: gcc-c++ -BuildRequires: libselinux-devel -BuildRequires: readline-devel -BuildRequires: pkgconfig(udev) # building lvm2 needs thin-provisioning-tools, see bsc#1236749 BuildRequires: thin-provisioning-tools >= %{thin_provisioning_version} +BuildRequires: pkgconfig(libselinux) +BuildRequires: pkgconfig(readline) +BuildRequires: pkgconfig(udev) # see bsc#1236788 for dont_stop_blk_availability_service Provides: dont_stop_blk_availability_service = 0.1 %endif @@ -148,7 +144,6 @@ %prep %setup -q -n LVM2.%{version} -%patch -P 1001 -p1 %patch -P 1002 -p1 %patch -P 1003 -p1 %patch -P 1004 -p1 @@ -157,7 +152,6 @@ %patch -P 1007 -p1 %patch -P 1008 -p1 %patch -P 1009 -p1 -%patch -P 1010 -p1 %patch -P 2001 -p1 %patch -P 3001 -p1 @@ -317,7 +311,7 @@ install -m 644 %{SOURCE1} "%{buildroot}/%{_sysconfdir}/lvm/" # Install testsuite make -C test install DESTDIR=%{buildroot} - %if %{suse_version} >= 1600 + %if 0%{?suse_version} >= 1600 %python3_fix_shebang_path %{buildroot}%{_datadir}/lvm2-testsuite/dbus/* %endif @@ -338,6 +332,7 @@ # Remove devicemapper binaries, plain rm so we fail if something change rm %{buildroot}%{_sbindir}/dmsetup + rm %{buildroot}%{_sbindir}/dmvdostats rm %{buildroot}%{_sbindir}/dmeventd rm %{buildroot}%{_sbindir}/dmstats rm %{buildroot}%{_sbindir}/dmfilemapd @@ -359,6 +354,7 @@ rm %{buildroot}%{_mandir}/man8/lvmlockd.8 rm %{buildroot}%{_mandir}/man8/dmstats.8 rm %{buildroot}%{_mandir}/man8/dmsetup.8 + rm %{buildroot}%{_mandir}/man8/dmvdostats.8 rm %{buildroot}%{_mandir}/man8/dmeventd.8 rm %{buildroot}%{_mandir}/man8/dmfilemapd.8 @@ -380,7 +376,6 @@ Version: %{device_mapper_version} Release: 0 Summary: Device Mapper Tools -Group: System/Base Requires: thin-provisioning-tools >= %{thin_provisioning_version} Requires(post): coreutils @@ -412,11 +407,13 @@ /sbin/dmsetup %endif %{_sbindir}/dmsetup +%{_sbindir}/dmvdostats %{_sbindir}/dmeventd %{_sbindir}/dmstats %{_sbindir}/dmfilemapd %{_mandir}/man8/dmstats.8%{?ext_man} %{_mandir}/man8/dmsetup.8%{?ext_man} +%{_mandir}/man8/dmvdostats.8%{?ext_man} %{_mandir}/man8/dmeventd.8%{?ext_man} %{_mandir}/man8/dmfilemapd.8%{?ext_man} %{_udevrulesdir}/10-dm.rules @@ -432,7 +429,6 @@ Version: %{device_mapper_version} Release: 0 Summary: Library for device-mapper -Group: System/Libraries Conflicts: %{name} < %{version} %description -n %{libname} @@ -462,7 +458,6 @@ Version: %{device_mapper_version} Release: 0 Summary: Event library for device-mapper -Group: System/Libraries Conflicts: %{name} < %{version} %description -n %{libname_event} @@ -479,7 +474,6 @@ Version: %{device_mapper_version} Release: 0 Summary: Development package for the device mapper -Group: Development/Libraries/C and C++ Requires: %{libname_event} = %{device_mapper_version} Requires: %{libname} = %{device_mapper_version} Requires: device-mapper = %{device_mapper_version} @@ -499,7 +493,6 @@ %if %{with lockd} %package -n lvm2-lockd Summary: LVM locking daemon -Group: System/Base Requires: corosync Requires: device-mapper >= %{device_mapper_version} Requires: libdlm >= %{dlm_version} @@ -680,6 +673,9 @@ /sbin/vgsplit %endif %{_mandir}/man5/lvm.conf.5%{?ext_man} +%{_mandir}/man7/lvm-args.7%{?ext_man} +%{_mandir}/man7/lvm-categories.7%{?ext_man} +%{_mandir}/man7/lvm-index.7%{?ext_man} %{_mandir}/man7/lvmautoactivation.7%{?ext_man} %{_mandir}/man7/lvmcache.7%{?ext_man} %{_mandir}/man7/lvmraid.7%{?ext_man} @@ -775,7 +771,6 @@ %package -n %{cmdlib} Summary: LVM2 command line library -Group: System/Libraries Conflicts: %{name} < %{version} Obsoletes: liblvm2app2_2 <= %{liblvm2app2_2_version} Obsoletes: liblvm2cmd2_02 <= %{liblvm2cmd2_02_version} @@ -792,10 +787,10 @@ %package devel Summary: Development files for LVM2 -Group: Development/Libraries/C and C++ Requires: %{cmdlib} = %{version} -Requires: device-mapper-devel Requires: lvm2 = %{version} +Requires: pkgconfig(devmapper) +Requires: pkgconfig(devmapper-event) %description devel This package provides development files for the LVM2 Logical Volume Manager. @@ -806,7 +801,6 @@ %package testsuite Summary: LVM2 Testsuite -Group: Development/Libraries/C and C++ Requires: %{cmdlib} = %{version} Requires: lvm2 = %{version} ++++++ LVM2.2.03.38.tgz -> LVM2.2.03.43.tgz ++++++ ++++ 162183 lines of diff (skipped) ++++++ bug-1012973_simplify-special-case-for-md-in-69-dm-lvm-rules.patch ++++++ --- /var/tmp/diff_new_pack.5dqTcU/_old 2026-10-21 20:51:29.934907110 +0200 +++ /var/tmp/diff_new_pack.5dqTcU/_new 2026-10-21 20:51:29.940907360 +0200 @@ -35,6 +35,11 @@ NOTE: the updated patch may let shell/duplicate-pvs-md0.sh fail because we change timing of lvm_scan in the rule file. +2026-10-18: +Rebased onto v2_03_43. Upstream reworked this section (RUN_DIR creating +guard plus SYNTH_UUID/array_state conditions); keep that guard and +retain the SUSE simplification of scanning on any add/change event. + Signed-off-by: Glass Su <[email protected]> --- @@ -45,7 +50,7 @@ index 3ec50a5cb878..45fdad444562 100644 --- a/udev/69-dm-lvm.rules.in +++ b/udev/69-dm-lvm.rules.in -@@ -35,12 +35,11 @@ ENV{DM_UDEV_PRIMARY_SOURCE_FLAG}=="1", ENV{DM_ACTIVATION}=="1", GOTO="lvm_scan" +@@ -40,14 +40,12 @@ ENV{DM_UDEV_PRIMARY_SOURCE_FLAG}=="1", ENV{DM_ACTIVATION}=="1", GOTO="lvm_scan" GOTO="lvm_end" # MD device: @@ -53,8 +58,10 @@ LABEL="next" KERNEL!="md[0-9]*", GOTO="next" -IMPORT{db}="LVM_MD_PV_ACTIVATED" + TEST=="(RUN_DIR)/mdadm/creating-$kernel", GOTO="lvm_end" -ACTION=="add", ENV{LVM_MD_PV_ACTIVATED}=="1", GOTO="lvm_scan" --ACTION=="change", ENV{LVM_MD_PV_ACTIVATED}!="1", TEST=="md/array_state", ENV{LVM_MD_PV_ACTIVATED}="1", GOTO="lvm_scan" +-ACTION=="add", ENV{LVM_MD_PV_ACTIVATED}!="1", ENV{SYNTH_UUID}!="", ATTR{md/array_state}!="clear*|inactive", ENV{LVM_MD_PV_ACTIVATED}="1", GOTO="lvm_scan" +-ACTION=="change", ENV{LVM_MD_PV_ACTIVATED}!="1", ATTR{md/array_state}!="clear*|inactive", ENV{LVM_MD_PV_ACTIVATED}="1", GOTO="lvm_scan" -ACTION=="add", KERNEL=="md[0-9]*p[0-9]*", GOTO="lvm_scan" +ACTION=="add", GOTO="lvm_scan" +ACTION=="change", GOTO="lvm_scan" ++++++ bug-1037309_Makefile-skip-compliling-daemons-lvmlockd-directory.patch ++++++ --- /var/tmp/diff_new_pack.5dqTcU/_old 2026-10-21 20:51:29.967908486 +0200 +++ /var/tmp/diff_new_pack.5dqTcU/_new 2026-10-21 20:51:29.970908611 +0200 @@ -6,43 +6,26 @@ bsc#1037309 Signed-off-by: Eric Ren <[email protected]> + +2026-10-18: Rebased onto v2_03_43. The daemons/Makefile.in part was +dropped (upstream skips lvmlockd the same way now); the configure +hunk was refreshed for the regenerated autoconf output. + --- - configure | 3 ++- - daemons/Makefile.in | 6 +++--- - 2 files changed, 5 insertions(+), 4 deletions(-) + configure | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/configure b/configure -index 0bb5b3dbc6ca..ea657178076b 100755 --- a/configure +++ b/configure -@@ -12023,7 +12023,8 @@ fi - printf "%s\n" "$BUILD_LVMPOLLD" >&6; } - +@@ -12143,7 +12143,8 @@ fi + printf '%s\n' "$BUILD_LVMPOLLD" >&6; } + ################################################################################ -BUILD_LVMLOCKD=no +#BUILD_LVMLOCKD=no +BUILD_LVMLOCKD=yes - - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether to build lvmlockdsanlock" >&5 - printf %s "checking whether to build lvmlockdsanlock... " >&6; } -diff --git a/daemons/Makefile.in b/daemons/Makefile.in -index e548b1556478..642d839c046f 100644 ---- a/daemons/Makefile.in -+++ b/daemons/Makefile.in -@@ -32,9 +32,9 @@ ifeq ("@BUILD_LVMPOLLD@", "yes") - SUBDIRS += lvmpolld - endif - --ifeq ("@BUILD_LVMLOCKD@", "yes") -- SUBDIRS += lvmlockd --endif -+#ifeq ("@BUILD_LVMLOCKD@", "yes") -+# SUBDIRS += lvmlockd -+#endif - - ifeq ("@BUILD_LVMDBUSD@", "yes") - SUBDIRS += lvmdbusd --- -2.42.0 + { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking whether to build lvmlockdsanlock" >&5 + printf %s "checking whether to build lvmlockdsanlock... " >&6; } ++++++ bug-1184124-link-tests-as-PIE.patch ++++++ --- /var/tmp/diff_new_pack.5dqTcU/_old 2026-10-21 20:51:29.993909570 +0200 +++ /var/tmp/diff_new_pack.5dqTcU/_new 2026-10-21 20:51:29.999909820 +0200 @@ -1,13 +1,31 @@ +From: Martin Pluskal <[email protected]> +Date: Sun, 18 Oct 2026 12:00:00 +0000 +Subject: [PATCH] link tests as PIE + +Link test binaries as position independent executables by passing +-pie in the two generic link recipes. (Reworked for 2.03.43: the +previous LDFLAGS += -pie hunk no longer applies after upstream +extended SOURCES and added a FIXME note above it.) + diff --git a/test/Makefile.in b/test/Makefile.in -index 20e97ebd0f4d..d4d3ce9f6dc7 100644 --- a/test/Makefile.in +++ b/test/Makefile.in -@@ -31,6 +31,7 @@ LVM_TEST_RESULTS ?= results - SOURCES := lib/not.c lib/harness.c lib/dmsecuretest.c - CXXSOURCES := lib/runner.cpp - CXXFLAGS += $(EXTRA_EXEC_CFLAGS) -+LDFLAGS += -pie +@@ -320,7 +320,7 @@ lib/should lib/invalid lib/fail: lib/not + + lib/runner: lib/runner.o .lib-dir-stamp + $(SHOW) " [LD] $@" +- $(Q) $(CXX) $(CXXFLAGS) $(LDFLAGS) $(EXTRA_EXEC_LDFLAGS) $(ELDFLAGS) -o $@ $< $(RT_LIBS) ++ $(Q) $(CXX) $(CXXFLAGS) $(LDFLAGS) $(EXTRA_EXEC_LDFLAGS) $(ELDFLAGS) -pie -o $@ $< $(RT_LIBS) + + lib/not: lib/not.o + lib/runner.o: $(wildcard $(srcdir)/lib/*.h) +@@ -334,7 +334,7 @@ LDFLAGS_lib/idm_inject_failure += $(INTERNAL_LIBS) $(LIBS) -lseagate_ilm + + lib/%: lib/%.o .lib-dir-stamp + $(SHOW) " [LD] $@" +- $(Q) $(CC) $(CFLAGS) $(LDFLAGS) $(EXTRA_EXEC_LDFLAGS) $(ELDFLAGS) -o $@ $< $(LDFLAGS_$@) ++ $(Q) $(CC) $(CFLAGS) $(LDFLAGS) $(EXTRA_EXEC_LDFLAGS) $(ELDFLAGS) -pie -o $@ $< $(LDFLAGS_$@) - CLEAN_DIRS += dbus/__pycache__ $(LVM_TEST_RESULTS) - ifneq (.,$(firstword $(srcdir))) + lib/%: $(srcdir)/lib/%.sh .lib-dir-stamp + $(SHOW) " [CP] $@" ++++++ lvm.conf ++++++ --- /var/tmp/diff_new_pack.5dqTcU/_old 2026-10-21 20:51:30.062912447 +0200 +++ /var/tmp/diff_new_pack.5dqTcU/_new 2026-10-21 20:51:30.066912614 +0200 @@ -15,8 +15,8 @@ # new version of LVM using this file will continue using that value, # even if the new version of LVM changes the built-in default value. # -# To put this file in a different directory and override /etc/lvm set -# the environment variable LVM_SYSTEM_DIR before running the tools. +# To put this file in a different directory and override /etc/lvm, +# set the environment variable LVM_SYSTEM_DIR before running the tools. # # N.B. Take care that each setting only appears once if uncommenting # example settings in this file. @@ -137,7 +137,7 @@ # Configuration option devices/use_devicesfile. # Enable or disable the use of a devices file. # When enabled, lvm will only use devices that - # are lised in the devices file. A devices file will + # are listed in the devices file. A devices file will # be used, regardless of this setting, when the --devicesfile # option is set to a specific file name. # This configuration option has an automatic default value. @@ -181,14 +181,14 @@ # If PVs are restored or moved to a new system with new devices, but # an old system.devices remains with old device IDs, then search for # the PVIDs on new devices and update the device IDs in system.devices. - # See device_ids_refresh_check for conditions that trigger the refresh. + # See device_ids_refresh_checks for conditions that trigger the refresh. # Set to 1 to enable a single automatic refresh attempt when a trigger # condition is detected. Set to 0 to disable automatic refresh. # Set to a value between 10 and 600 (in seconds) to enable an extended # refresh period during which missing PVs will be located using the PVID, # and the system.devices device ID updated if the PV is found on a new device. # An extended refresh period may be useful if devices require refresh, - # but are attached to the system some time the initial refresh. + # but are attached to the system some time after the initial refresh. # This configuration option has an automatic default value. # device_ids_refresh = 10 @@ -260,7 +260,7 @@ # Configuration option devices/sysfs_scan. # Restrict device scanning to block devices appearing in sysfs. # This is a quick way of filtering out block devices that are not - # present on the system. sysfs must be part of the kernel and mounted). + # present on the system. sysfs must be part of the kernel and mounted. # This configuration option has an automatic default value. # sysfs_scan = 1 @@ -370,7 +370,7 @@ # Shift the start of an aligned PV data area based on sysfs information. # After a PV data area is aligned, it will be shifted by the # alignment_offset exposed in sysfs. This offset is often 0, but may - # be non-zero. Certain 4KiB sector drives that compensate for windows + # be non-zero. Certain 4KiB sector drives that compensate for Windows # partitioning will have an alignment_offset of 3584 bytes (sector 7 # is the lowest aligned logical block, the 4KiB sectors start at # LBA -1, and consequently sector 63 is aligned on a 4KiB boundary). @@ -419,16 +419,16 @@ # pv_min_size = 2048 # Configuration option devices/issue_discards. - # Issue discards to PVs that are no longer used by an LV. - # Discards are sent to an LV's underlying physical volumes when the LV - # is no longer using the physical volumes' space, e.g. lvremove, - # lvreduce. Discards inform the storage that a region is no longer - # used. Storage that supports discards advertise the protocol-specific - # way discards should be issued by the kernel (TRIM, UNMAP, or - # WRITE SAME with UNMAP bit set). Not all storage will support or - # benefit from discards, but SSDs and thinly provisioned LUNs - # generally do. If enabled, discards will only be issued if both the - # storage and kernel provide support. + # Issue discard commands to physical volumes when freeing space. + # When an LV frees space on a PV (e.g., lvremove, lvreduce), LVM can + # send discard commands to notify the storage device that those blocks + # are no longer in use. NVMe/SSDs use this information for TRIM operations + # to improve performance and longevity. Thinly provisioned storage uses + # UNMAP to reclaim the freed space. Discards are issued using the + # protocol supported by the device (TRIM, UNMAP, or WRITE SAME with + # UNMAP bit set) and only when both the storage and kernel support it. + # Warning: vgcfgrestore restores only VG metadata, not LV data. Any + # data in discarded regions will be lost. # This configuration option has an automatic default value. # issue_discards = 0 issue_discards = 1 @@ -684,14 +684,14 @@ # vdo_use_deduplication = 1 # Configuration option allocation/vdo_minimum_io_size. - # The minimum IO size for VDO volume to accept, in bytes. + # The minimum IO size for a VDO volume to accept, in bytes. # Valid values are 512 or 4096. The recommended value is 4096. # This configuration option has an automatic default value. # vdo_minimum_io_size = 4096 # Configuration option allocation/vdo_block_map_cache_size_mb. # Specifies the amount of memory in MiB allocated for caching block map - # pages for VDO volume. The value must be a multiple of 4096 and must be + # pages for a VDO volume. The value must be a multiple of 4096 and must be # at least 128MiB and less than 16TiB. The cache must be at least 16MiB # per logical thread. Note that there is a memory overhead of 15%. # This configuration option has an automatic default value. @@ -699,19 +699,26 @@ # Configuration option allocation/vdo_block_map_period. # The speed with which the block map cache writes out modified block map pages. - # A smaller era length is likely to reduce the amount time spent rebuilding, + # A smaller era length is likely to reduce the amount of time spent rebuilding, # at the cost of increased block map writes during normal operation. # The maximum and recommended value is 16380; the minimum value is 1. # This configuration option has an automatic default value. # vdo_block_map_period = 16380 # Configuration option allocation/vdo_use_sparse_index. - # Enables sparse indexing for VDO volume. + # Enables sparse indexing for a VDO volume. # This configuration option has an automatic default value. # vdo_use_sparse_index = 0 + # Configuration option allocation/vdo_use_kernel_format. + # Use kernel direct formatting for a VDO volume. + # When enabled (1), uses kernel direct formatting (requires dm-vdo 9.2.0+). + # When disabled (0), uses traditional userspace vdoformat tool. + # This configuration option has an automatic default value. + # vdo_use_kernel_format = 1 + # Configuration option allocation/vdo_index_memory_size_mb. - # Specifies the amount of index memory in MiB for VDO volume. + # Specifies the amount of index memory in MiB for a VDO volume. # The value must be at least 256MiB and at most 1TiB. # This configuration option has an automatic default value. # vdo_index_memory_size_mb = 256 @@ -726,13 +733,13 @@ # Configuration option allocation/vdo_ack_threads. # Specifies the number of threads to use for acknowledging # completion of requested VDO I/O operations. - # The value must be at in range [0..100]. + # The value must be in range [0..100]. # This configuration option has an automatic default value. # vdo_ack_threads = 1 # Configuration option allocation/vdo_bio_threads. # Specifies the number of threads to use for submitting I/O - # operations to the storage device of VDO volume. + # operations to the storage device of a VDO volume. # The value must be in range [1..100]. # Each additional thread after the first will use an additional 18MiB of RAM, # plus 1.12 MiB of RAM per megabyte of configured read cache size. @@ -747,14 +754,14 @@ # Configuration option allocation/vdo_cpu_threads. # Specifies the number of threads to use for CPU-intensive work such as - # hashing or compression for VDO volume. The value must be in range [1..100]. + # hashing or compression for a VDO volume. The value must be in range [1..100]. # This configuration option has an automatic default value. # vdo_cpu_threads = 2 # Configuration option allocation/vdo_hash_zone_threads. # Specifies the number of threads across which to subdivide parts of the VDO # processing based on the hash value computed from the block data. - # The value must be at in range [0..100]. + # The value must be in range [0..100]. # vdo_hash_zone_threads, vdo_logical_threads and vdo_physical_threads must be # either all zero or all non-zero. # This configuration option has an automatic default value. @@ -782,7 +789,7 @@ # vdo_physical_threads = 1 # Configuration option allocation/vdo_max_discard. - # Specified the maximum size of discard bio accepted, in 4096 byte blocks. + # Specifies the maximum size of discard bio accepted, in 4096 byte blocks. # I/O requests to a VDO volume are normally split into 4096-byte blocks, # and processed up to 2048 at a time. However, discard requests to a VDO volume # can be automatically split to a larger size, up to <max discard> 4096-byte blocks @@ -794,7 +801,7 @@ # vdo_max_discard = 1 # Configuration option allocation/vdo_pool_header_size. - # Specified the empty header size in KiB at the front and end of vdo pool device. + # Specifies the empty header size in KiB at the front and end of the VDO pool device. # This configuration option has an automatic default value. # vdo_pool_header_size = 512 } @@ -809,11 +816,11 @@ # per-object return codes with object identification and associated # error numbers (errnos) during LVM command processing. Then the # log is either reported solely or in addition to any existing - # reports, depending on LVM command used. If it is a reporting command + # reports, depending on the LVM command used. If it is a reporting command # (e.g. pvs, vgs, lvs, lvm fullreport), then the log is reported in - # addition to any existing reports. Otherwise, there's only log report - # on output. For all applicable LVM commands, you can request that - # the output has only log report by using --logonly command line + # addition to any existing reports. Otherwise, the log report is the only + # output. For all applicable LVM commands, you can request that + # the output contains only the log report by using --logonly command line # option. Use log/command_log_cols and log/command_log_sort settings # to define fields to display and sort fields for the log report. # You can also use log/command_log_selection to define selection @@ -841,13 +848,13 @@ # Configuration option log/command_log_selection. # Selection criteria used when reporting command log. # You can define selection criteria that are applied each - # time log is reported. This way, it is possible to control the - # amount of log that is displayed on output and you can select + # time the log is reported. This way, it is possible to control the + # amount of log displayed on output and select # only parts of the log that are important for you. To define - # selection criteria, use fields from log report. See also + # selection criteria, use fields from the log report. See also # <lvm command> --logonly --configreport log -S help for the # list of possible fields and selection operators. You can also - # define selection criteria for log report on command line directly + # define selection criteria for the log report on the command line directly # using <lvm command> --configreport log -S <selection criteria> # which has precedence over log/command_log_selection setting. # To make all the command log lines visible, use "all" value @@ -980,7 +987,7 @@ # archive = 1 # Configuration option backup/archive_dir. - # Location of the metdata archive files. + # Location of the metadata archive files. # Remember to back up this directory regularly! # This configuration option has an automatic default value. # archive_dir = "/etc/lvm/archive" @@ -994,6 +1001,15 @@ # Minimum number of days to keep archive files. # This configuration option has an automatic default value. # retain_days = 30 + + # Configuration option backup/config_file_backup_limit. + # The max number of backup files to keep in /etc/lvm/old_conf. + # LVM creates a backup of the config file each time + # lvmconfig --edit modifies lvm.conf or lvmlocal.conf. + # When the max number of backups is reached, the oldest are + # removed to remain at the limit. Set to 0 to disable backups. + # This configuration option has an automatic default value. + # config_file_backup_limit = 50 } # Configuration section shell. @@ -1136,7 +1152,7 @@ # Configuration option global/support_mirrored_mirror_log. # Enable mirrored 'mirror' log type for testing. # - # This type is deprecated to create or convert to but can + # This type is deprecated for creation or conversion but can # be enabled to test that activation of existing mirrored # logs and conversion to disk/core works. # @@ -1217,10 +1233,20 @@ use_lvmlockd = 0 # Configuration option global/lvmlockd_lock_retries. - # Retry lvmlockd lock requests this many times. - # Applicable only if LVM is compiled with lockd support + # Retry global and VG lock requests this many times per owner. + # When a global or VG lock request fails because the lock is + # held by another host, the lock request is retried after a + # one second delay, up to this many times. If the lock owner + # changes between retries, the per-owner retry count resets, + # allowing the command to wait through multiple owners in a + # busy cluster. A ceiling of retries*10 total attempts + # prevents indefinite delays. LV lock requests are not + # retried by default. The --lockopt retries=N option + # overrides this setting for a single command, and applies to + # LV locks as well as global and VG locks. + # Applicable only if LVM is compiled with lockd support. # This configuration option has an automatic default value. - # lvmlockd_lock_retries = 3 + # lvmlockd_lock_retries = 6 # Configuration option global/sanlock_lv_extend. # Size in MiB to extend the internal LV holding sanlock locks. @@ -1229,7 +1255,7 @@ # will automatically extend the internal LV when needed by the amount # specified here. Setting this to 0 disables the automatic extension # and can cause lvcreate to fail. Applicable only if LVM is compiled - # with lockd support + # with lockd support. # This configuration option has an automatic default value. # sanlock_lv_extend = 256 @@ -1382,22 +1408,22 @@ # Configuration option global/vdo_format_executable. # The full path to the vdoformat command. - # LVM uses this command to initial data volume for VDO type logical volume + # LVM uses this command to initialize the data volume for a VDO logical volume # This configuration option has an automatic default value. # vdo_format_executable = "/usr/bin/vdoformat" # Configuration option global/vdo_format_options. - # List of options passed added to standard vdoformat command. + # List of options added to standard vdoformat command. # This configuration option has an automatic default value. # vdo_format_options = [ "" ] # Configuration option global/vdo_disabled_features. # Features to not use in the vdo driver. # This can be helpful for testing, or to avoid using a feature that is - # causing problems. Features include: online_rename, version4 + # causing problems. Features include: online_rename, version4, kernel_format # # Example - # vdo_disabled_features = [ "online_rename", "version4" ] + # vdo_disabled_features = [ "online_rename", "version4", "kernel_format" ] # # This configuration option does not have a default value defined. @@ -1473,8 +1499,8 @@ # notify_dbus = 1 # Configuration option global/io_memory_size. - # The amount of memory in KiB that LVM allocates to perform disk io. - # LVM performance may benefit from more io memory when there are many + # The amount of memory in KiB that LVM allocates to perform disk I/O. + # LVM performance may benefit from more I/O memory when there are many # disks or VG metadata is large. Increasing this size may be necessary # when a single copy of VG metadata is larger than the current setting. # This value should usually not be decreased from the default; setting @@ -1533,8 +1559,8 @@ # Configuration option activation/missing_stripe_filler. # Method to fill missing stripes when activating an incomplete LV. # Using 'error' will make inaccessible parts of the device return I/O - # errors on access. Using 'zero' will return success (and zero) on I/O - # You can instead use a device path, in which case, + # errors on access. Using 'zero' will return success (and zero) on I/O. + # You can instead use a device path, in which case # that device will be used in place of missing stripes. Using anything # other than 'error' with mirrored or snapshotted volumes is likely to # result in data corruption. @@ -1986,7 +2012,7 @@ # The --vgmetadatacopies option overrides this setting. # If set to a non-zero value, LVM automatically chooses which of the # available metadata areas to use to achieve the requested number of - # copies of the VG metadata. If you set a value larger than the the + # copies of the VG metadata. If you set a value larger than the # total number of metadata areas available, then metadata is stored in # them all. The value 0 (unmanaged) disables this automatic management # and allows you to control which metadata areas are used at the @@ -2038,7 +2064,7 @@ # Accepted values: # basic # Original format with columns and rows. If there is more than - # one report per command, each report is prefixed with report's + # one report per command, each report is prefixed with the report's # name for identification. # json # JSON format. @@ -2047,8 +2073,8 @@ # Compared to original "json" format: # - it does not use double quotes around numeric values, # - it uses 'null' for undefined numeric values, - # - it prints string list as proper JSON array of strings instead of a single string. - # Note that if json or json_std output format is used, then log/command_log_report=1 is default. + # - it prints a string list as a proper JSON array of strings instead of a single string. + # Note that if json or json_std output format is used, then log/report_command_log=1 is default. # This configuration option has an automatic default value. # output_format = "basic" @@ -2058,7 +2084,7 @@ # rows reported are skipped and not printed. Compact output is # applicable only if report/buffered is enabled. If you need to # compact only specified fields, use compact_output=0 and define - # report/compact_output_cols configuration setting instead. + # the report/compact_output_cols configuration setting instead. # This configuration option has an automatic default value. # compact_output = 0 @@ -2067,8 +2093,8 @@ # If defined, specified fields that do not have a value set for any # of the rows reported are skipped and not printed. Compact output # is applicable only if report/buffered is enabled. If you need to - # compact all fields, use compact_output=1 instead in which case - # the compact_output_cols setting is then ignored. + # compact all fields, use compact_output=1 instead, in which case + # the compact_output_cols setting is ignored. # This configuration option has an automatic default value. # compact_output_cols = "" @@ -2159,9 +2185,9 @@ # (alt O) # %D # Equivalent to %m/%d/%y. (For Americans only. Americans should - # note that in other countries%d/%m/%y is rather common. This + # note that in other countries %d/%m/%y is rather common. This # means that in international context this format is ambiguous and - # should not be used. + # should not be used.) # %e # Like %d, the day of the month as a decimal number, but a leading # zero is replaced by a space. (alt O) @@ -2361,13 +2387,13 @@ # pvsegs_sort = "pv_name,pvseg_start" # Configuration option report/pvsegs_cols. - # List of columns to sort by when reporting 'pvs --segments' command. + # List of columns to report for 'pvs --segments' command. # See 'pvs --segments -o help' for the list of possible fields. # This configuration option has an automatic default value. # pvsegs_cols = "pv_name,vg_name,pv_fmt,pv_attr,pv_size,pv_free,pvseg_start,pvseg_size" # Configuration option report/pvsegs_cols_verbose. - # List of columns to sort by when reporting 'pvs --segments' command in verbose mode. + # List of columns to report for 'pvs --segments' command in verbose mode. # See 'pvs --segments -o help' for the list of possible fields. # This configuration option has an automatic default value. # pvsegs_cols_verbose = "pv_name,vg_name,pv_fmt,pv_attr,pv_size,pv_free,pvseg_start,pvseg_size,lv_name,seg_start_pe,segtype,seg_pe_ranges" @@ -2379,7 +2405,7 @@ # vgs_cols_full = "vg_all" # Configuration option report/pvs_cols_full. - # List of columns to report for lvm fullreport's 'vgs' subreport. + # List of columns to report for lvm fullreport's 'pvs' subreport. # See 'pvs -o help' for the list of possible fields. # This configuration option has an automatic default value. # pvs_cols_full = "pv_all" @@ -2409,7 +2435,7 @@ # vgs_sort_full = "vg_name" # Configuration option report/pvs_sort_full. - # List of columns to sort by when reporting lvm fullreport's 'vgs' subreport. + # List of columns to sort by when reporting lvm fullreport's 'pvs' subreport. # See 'pvs -o help' for the list of possible fields. # This configuration option has an automatic default value. # pvs_sort_full = "pv_name" @@ -2478,10 +2504,10 @@ # thin_library = "libdevmapper-event-lvm2thin.so" # Configuration option dmeventd/thin_command. - # The plugin runs command with each 5% increment when thin-pool data volume + # The plugin runs a command with each 5% increment when thin-pool data volume # or metadata volume gets above 50%. # Command which starts with 'lvm ' prefix is internal lvm command. - # You can write your own handler to customise behaviour in more details. + # You can write your own handler to customise behaviour in more detail. # User handler is specified with the full path starting with '/'. # This configuration option has an automatic default value. # thin_command = "lvm lvextend --use-policies" @@ -2495,10 +2521,10 @@ # vdo_library = "libdevmapper-event-lvm2vdo.so" # Configuration option dmeventd/vdo_command. - # The plugin runs command with each 5% increment when VDO pool volume + # The plugin runs a command with each 5% increment when VDO pool volume # gets above 50%. # Command which starts with 'lvm ' prefix is internal lvm command. - # You can write your own handler to customise behaviour in more details. + # You can write your own handler to customise behaviour in more detail. # User handler is specified with the full path starting with '/'. # This configuration option has an automatic default value. # vdo_command = "lvm lvextend --use-policies" @@ -2516,7 +2542,7 @@ # Configuration option tags/hosttags. # Create a host tag using the machine name. - # The machine name is nodename returned by uname(2). + # The machine name is the nodename returned by uname(2). # This configuration option has an automatic default value. # hosttags = 0
