- Update from version 2.02.188 to 2.03.21 - Update of rootfile - Changelog version 2.03.21 - 21st April 2023 Fix activation of vdo-pool for with 0 length headers (converted pools). Avoid printing internal init messages when creation integration devices. Allow (write)cache over raid+integrity LV. version 2.03.20 - 21st March 2023 Fix segfault if using -S|--select with log/report_command_log=1 setting. Configure now fails when requested lvmlockd dependencies are missing. Add some configure Gentoo enhancements for static builds. version 2.03.19 - 21st February 2023 Configure supports --with-systemd-run executed from udev rules. Enhancement for build with MuslC systemd and non-bash system shells (dash). Do not reset SYSTEMD_READY variable in udev for PVs on MD and loop devices. Ensure udev is processing origin LV before its thick snapshots LVs. Fix and improve runtime memory size detection for VDO volumes. version 2.03.18 - 22nd December 2022 Fix issues reported by coverity scan. Fix warning for thin pool overprovisioning on lvextend (2.03.17). Add support for writecache metadata_only and pause_writeback settings. Fix missing error messages in lvmdbusd. Version 2.03.17 - 10th November 2022 Add new options (--fs, --fsmode) for FS handling when resizing LVs. Fix 'lvremove -S|--select LV' to not also remove its historical LV right away. Fix lv_active field type to binary so --select and --binary applies properly. Switch to use mallinfo2 and use it only with glibc. Error out in lvm shell if using a cmd argument not supported in the shell. Fix lvm shell's lastlog command to report previous pre-command failures. Extend VDO and VDOPOOL without flushing and locking fs. Add --valuesonly option to lvmconfig to print only values without keys. Updates configure with recent autoconf tooling. Fix lvconvert --test --type vdo-pool execution. Add json_std output format for more JSON standard compliant version of output. Fix vdo_slab_size_mb value for converted VDO volume. Fix many corner cases in device_id, including handling of S/N duplicates. Fix various issues in lvmdbusd. Version 2.03.16 - 18th May 2022 Fix segfault when handling selection with historical LVs. Add support --vdosettings with lvcreate, lvconvert, lvchange. Filtering multipath devices respects blacklist setting from multipath configuration. lvmdevices support for removing by device id using --deviceidtype and --deldev. Display writecache block size with lvs -o writecache_block_size. Improve cachesettings description in man lvmcache. Fix lossing of delete message on thin-pool extension. Version 2.03.15 - 07th February 2022 Remove service based autoactivation. global/event_activation = 0 is NOOP. Improve support for metadata profiles for --type writecache. Use cache or active DM device when available with new kernels. Introduce function to utilize UUIDs from DM_DEVICE_LIST. Increase some hash table size to better support large device sets. Version 2.03.14 - 20th October 2021 Device scanning is skipping directories on different filesystems. Print info message with too many or too large archived files. Reduce metadata readings during scanning phase. Optimize computation of crc32 check sum with multiple PVs. Enhance recover path on cache creation failure. Filter out unsupported MQ/SMQ cache policy setting. Fix memleak in mpath filter. Support newer location for VDO statistics. Add support for VDO async-unsafe write policy. Improve lvm_import_vdo script. Support VDO LV with lvcreate -ky. Fix lvconvert for VDO LV bigger then 2T. Create VDO LVs automatically without zeroing. Rename vdoimport to lvm_import_vdo. Version 2.03.13 - 11th August 2021 Changes in udev support: - obtain_device_list_from_udev defaults to 0. - see devices/external_device_info_source, devices/obtain_device_list_from_udev, and devices/multipath_wwids_file help in lvm.conf Fix devices file handling of loop with deleted backing file. Fix devices file handling of scsi_debug WWIDs. Fix many static analysis issues. Support --poolmetadataspare with vgsplit and vgmerge. Fix detection of active components of external origin volume. Add vdoimport tool to support conversion of VDO volumes. Support configurable allocation/vdo_pool_header_size. Fix handling of lvconvert --type vdo-pool --virtualsize. Simplified handling of archive() and backup() internal calls. Add 'idm' locking type for IDM lock manager. Fix load of kvdo target when it is not present in memory (2.03.12). Version 2.03.12 - 07th May 2021 Allow attaching cache to thin data volume. Fix memleak when generating list of outdated pvs. Better hyphenation usage in man pages. Replace use of deprecated security_context_t with char*. Configure supports AIO_LIBS and AIO_CFLAGS. Improve build process for static builds. New --setautoactivation option to modify LV or VG auto activation. New metadata based autoactivation property for LVs and VGs. Improve signal handling with lvmpolld. Signal handler can interrupt command also for SIGTERM. Lvreduce --yes support. Add configure option --with/out-symvers for non-glibc builds. Report error when the filesystem is missing on fsadm resized volume. Handle better blockdev with --getsize64 support for fsadm. Do not include editline/history.h when using editline library. Support error and zero segtype for thin-pool data for testing. Support mixed extension for striped, error and zero segtypes. Support resize also for stacked virtual volumes. Skip dm-zero devices just like with dm-error target. Reduce ioctl() calls when checking target status. Merge polling does not fail, when LV is found to be already merged. Poll volumes with at least 100ms delays. Do not flush dm cache when cached LV is going to be removed. New lvmlockctl_kill_command configuration option. Support interruption while waiting on device close before deactivation. Flush thin-pool messages before removing more thin volumes. Improve hash function with less collisions and make it faster. Reduce ioctl count when deactivating volumes. Reduce number of metadata parsing. Enhance performance of lvremove and vgremove commands. Support interruption when taking archive and backup. Accelerate large lvremoves. Speedup search for cached device nodes. Speedup command initialization. Add devices file feature, off by default for now. Support extension of writecached volumes. Fix problem with unbound variable usage within fsadm. Fix IMSM MD RAID detection on 4k devices. Check for presence of VDO target before starting any conversion. Support metatadata profiles with volume VDO pool conversions. Support -Zn for conversion of already formated VDO pools. Avoid removing LVs on error path of lvconvert during creation volumes. Fix crashing lvdisplay when thin volume was waiting for merge. Support option --errorwhenfull when converting volume to thin-pool. Improve thin-performance profile support conversion to thin-pool. Add workaround to avoid read of internal 'converted' devices. Prohibit merging snapshot into the read-only thick snapshot origin. Restore support for flipping rw/r permissions for thin snapshot origin. Support resize of cached volumes. Disable autoactivation with global/event_activation=0. Check if lvcreate passes read_only_volume_list with tags and skips zeroing. Allocation prints better error when metadata cannot fit on a single PV. Pvmove can better resolve full thin-pool tree move. Limit pool metadata spare to 16GiB. Improves conversion and allocation of pool metadata. Support thin pool metadata 15.88GiB, adds 64MiB, thin_pool_crop_metadata=0. Enhance lvdisplay to report raid available/partial. Support online rename of VDO pools. Improve removal of pmspare when last pool is removed. Fix problem with wiping of converted LVs. Fix memleak in scanning (2.03.11). Fix corner case allocation for thin-pools. Version 2.03.11 - 08th January 2021 Fix pvck handling MDA at offset different from 4096. Partial or degraded activation of writecache is not allowed. Enhance error handling for fsadm and handle correct fsck result. Dmeventd lvm plugin ignores higher reserved_stack lvm.conf values. Support using BLKZEROOUT for clearing devices. Support interruption when wipping LVs. Support interruption for bcache waiting. Fix bcache when device has too many failing writes. Fix bcache waiting for IO completion with failing disks. Configure use own python path name order to prefer using python3. Add configure --enable-editline support as an alternative to readline. Enhance reporting and error handling when creating thin volumes. Enable vgsplit for VDO volumes. Lvextend of vdo pool volumes ensure at least 1 new VDO slab is added. Use revert_lv() on reload error path after vg_revert(). Configure --with-integrity enabled. Restore lost signal blocking while VG lock is held. Improve estimation of needed extents when creating thin-pool. Use extra 1% when resizing thin-pool metadata LV with --use-policy. Enhance --use-policy percentage rounding. Configure --with-vdo and --with-writecache as internal segments. Improving VDO man page examples. Allow pvmove of writecache origin. Report integrity fields. Integrity volumes defaults to journal mode. Switch code base to use flexible array syntax. Fix 64bit math when calculation cachevol size. Preserve uint32_t for seqno handling. Switch from mmap to plain read when loading regular files. Update lvmvdo man page and better explain DISCARD usage. Version 2.03.10 - 09th August 2020 Add writecache and integrity support to lvmdbusd. Generate unique cachevol name when default required from lvcreate. Converting RAID1 volume to one with same number of legs now succeeds with a warning. Fix conversion to raid from striped lagging type. Fix conversion to 'mirrored' mirror log with larger regionsize. Zero pool metadata on allocation (disable with allocation/zero_metadata=0). Failure in zeroing or wiping will fail command (bypass with -Zn, -Wn). Add lvcreate of new cache or writecache lv with single command. Fix running out of free buffers for async writing for larger writes. Add integrity with raid capability. Fix support for lvconvert --repair used by foreign apps (i.e. Docker). Version 2.03.09 - 26th March 2020 Fix formatting of vdopool (vdo_slab_size_mb was smaller by 2 bits). Fix showing of a dm kernel error when uncaching a volume with cachevol. Version 2.03.08 - 11th February 2020 Prevent problematic snapshots of writecache volumes. Add error handling for failing allocation in _reserve_area(). Fix memleak in syncing of internal cache. Fix pvck dump_current_text memleak. Fix lvmlockd result code on error path for _query_lock_lv(). Update pvck man page and help output. Reject invalid writecache high/low_watermark setting. Report writecache status. Accept more output lines from vdo_format. Prohibit reshaping of stacked raid LVs. Avoid running cache input arg validation when creating vdo pool. Prevent raid reshaping of stacked volumes. Added VDO lvmdbusd methods for enable/disable compression & dedupe. Added VDO lvmdbusd method for converting LV to VDO pool. Version 2.03.07 - 30th November 2019 Subcommand in vgck for repairing headers and metadata. Ensure minimum required region size on striped RaidLV creation. Fix resize of thin-pool with data and metadata of different segtype. Improve mirror type leg splitting. Improve error path handling in daemons on shutdown. Fix activation order when removing merged snapshot. Experimental VDO support for lvmdbusd. Version 2.03.06 - 23rd October 2019 Add _cpool suffix to cache-pool LV name when used by caching LV. No longer store extra UUID for cmeta and cdata cachevol layer. Enhance activation of cache devices with cachevols. Add _cvol in list of protected suffixes and start use it with DM UUID. Rename LV converted to cachevol to use _cvol suffix. Use normal LVs for wiping of cachevols. Reload cleanered cache DM only with cleaner policy. Fix cmd return when zeroing of cachevol fails. Extend lvs to show all VDO properties. Preserve VDO write policy with vdopool. Increase default vdo bio threads to 4. Continue report when cache_status fails. Add support for DM_DEVICE_GET_TARGET_VERSION into device_mapper. Fix cmirrord usage of header files from device_mapper subdir. Allow standalone activation of VDO pool just like for thin-pools. Activate thin-pool layered volume as 'read-only' device. Ignore crypto devices with UUID signature CRYPT-SUBDEV. Enhance validation for thin and cache pool conversion and swapping. Improve internal removal of cached devices. Synchronize with udev when dropping snapshot. Add missing device synchronization point before removing pvmove node. Correctly set read_ahead for LVs when pvmove is finished. Remove unsupported OPTIONS+="event_timeout" udev rule from 11-dm-lvm.rules. Prevent creating VGs with PVs with different logical block sizes. Fix metadata writes from corrupting with large physical block size. Version 2.03.05 - 15th June 2019 Fix command definition for pvchange -a. Add vgck --updatemetadata command that will repair metadata problems. Improve VG reading to work if one good copy of metadata is found. Report/display/scan commands that read VGs will no longer write/repair. Move metadata repairs from VG reading to VG writing. Add config setting md_component_checks to control MD component checks. Add end of device MD component checks when dev has no udev info. Version 2.03.04 - 10th June 2019 Remove unused_duplicate_devs from cmd causing segfault in dmeventd. Version 2.03.03 - 07th June 2019 Report no_discard_passdown for cache LVs with lvs -o+kernel_discards. Add pvck --dump option to extract metadata. Fix signal delivery checking race in libdaemon (lvmetad). Add missing Before=shutdown.target to LVM2 services to fix shutdown ordering. Skip autoactivation for a PV when PV size does not match device size. Remove first-pvscan-initialization which should no longer be needed. Add remote refresh through lvmlockd/dlm for shared LVs after lvextend. Ignore foreign and shared PVs for pvscan online files. Add config setting to control fields in debug file and verbose output. Add command[pid] and timestamp to debug file and verbose output. Fix missing growth of _pmsmare volume when extending _tmeta volume. Automatically grow thin metadata, when thin data gets too big. Add synchronization with udev before removing cached devices. Add support for caching VDO LVs and VDOPOOL LVs. Add support for vgsplit with cached devices. Query mpath device only once per command for its state. Use device INFO instead of STATUS when checking for mpath device uuid. Change default io_memory_size from 4 to 8 MiB. Add config setting io_memory_size to set bcache size. Fix pvscan autoactivation for concurrent pvscans. Change scan_lvs default to 0 so LVs are not scanned for PVs. Thin-pool selects power-of-2 chunk size by default. Cache selects power-of-2 chunk size by default. Support reszing for VDOPoolLV and VDOLV. Improve -lXXX%VG modifier which improves cache segment estimation. Ensure migration_threshold for cache is at least 8 chunks. Restore missing man info lvcreate --zero for thin-pools. Drop misleadning comment for metadata minimum_io_size for VDO segment. Add device hints to reduce scanning. Introduce LVM_SUPPRESS_SYSLOG to suppress syslog usage by generator. Fix generator quering lvmconfig unpresent config option. Fix memleak on bcache error path code. Fix missing unlock on lvm2 dmeventd plugin error path initialization. Improve Makefile dependency tracking. Move VDO support towards V2 target (6.2) support. Version 2.03.02 - 18th December 2018 Fix missing proper initialization of pv_list struct when adding pv. Fix (de)activation of RaidLVs with visible SubLVs. Prohibit mirrored 'mirror' log via lvcreate and lvconvert. Use sync io if async io_setup fails, or use_aio=0 is set in config. Fix more issues reported by coverity scan. Version 2.03.01 - 31st October 2018 Version 2.03.00 - 10th October 2018 Add hot fix to avoiding locking collision when monitoring thin-pools. Allow raid4 -> linear conversion request. Fix lvconvert striped/raid0/raid0_meta -> raid6 regression. Add 'lvm2-activation-generator:' prefix for kmsg messages logged by generator. Add After=rbdmap.service to {lvm2-activation-net,blk-availability}.service. Reduce max concurrent aios to avoid EMFILE with many devices. Fix lvconvert conversion attempts to linear. Fix lvconvert raid0/raid0_meta -> striped regression. Fix lvconvert --splitmirror for mirror type (2.02.178). Do not pair cache policy and cache metadata format. lvconvert: reject conversions on raid1 LVs with split tracked SubLVs lvconvert: reject conversions on raid1 split tracked SubLVs Add basic creation support for VDO target. Never send any discard ioctl with test mode. Fix thin-pool alloc which needs same PV for data and metadata. Extend list of non-memlocked areas with newly linked libs. Enhance vgcfgrestore to check for active LVs in restored VG. Configure supports --disable-silent-rules for verbose builds. Fix unmonitoring of merging snapshots. Cache can uses metadata format 2 with cleaner policy. Fix check if resized PV can also fit metadata area. Avoid showing internal error in lvs output or pvmoved LVs. Remove clvmd Remove lvmlib (api) Remove lvmetad Use versionsort to fix archive file expiry beyond 100000 files.
Signed-off-by: Adolf Belka adolf.belka@ipfire.org --- config/rootfiles/common/lvm2 | 16 +++++++++++----- lfs/lvm2 | 6 +++--- 2 files changed, 14 insertions(+), 8 deletions(-)
diff --git a/config/rootfiles/common/lvm2 b/config/rootfiles/common/lvm2 index 258f3201f..bd1329e54 100644 --- a/config/rootfiles/common/lvm2 +++ b/config/rootfiles/common/lvm2 @@ -9,15 +9,17 @@ etc/lvm/lvm.conf #etc/lvm/profile/metadata_profile_template.profile #etc/lvm/profile/thin-generic.profile #etc/lvm/profile/thin-performance.profile +#etc/lvm/profile/vdo-small.profile lib/udev/rules.d/10-dm.rules lib/udev/rules.d/11-dm-lvm.rules lib/udev/rules.d/13-dm-disk.rules -lib/udev/rules.d/69-dm-lvm-metad.rules +lib/udev/rules.d/69-dm-lvm.rules lib/udev/rules.d/95-dm-notify.rules #usr/include/libdevmapper.h #usr/lib/libdevmapper.so usr/lib/libdevmapper.so.1.02 #usr/lib/pkgconfig/devmapper.pc +#usr/libexec/lvresize_fs_helper usr/sbin/blkdeactivate usr/sbin/dmsetup usr/sbin/dmstats @@ -28,11 +30,11 @@ usr/sbin/lvcreate usr/sbin/lvdisplay usr/sbin/lvextend usr/sbin/lvm -usr/sbin/lvmconf +usr/sbin/lvm_import_vdo usr/sbin/lvmconfig +usr/sbin/lvmdevices usr/sbin/lvmdiskscan usr/sbin/lvmdump -usr/sbin/lvmetad usr/sbin/lvmsadc usr/sbin/lvmsar usr/sbin/lvreduce @@ -61,6 +63,7 @@ usr/sbin/vgexport usr/sbin/vgextend usr/sbin/vgimport usr/sbin/vgimportclone +usr/sbin/vgimportdevices usr/sbin/vgmerge usr/sbin/vgmknodes usr/sbin/vgreduce @@ -70,11 +73,13 @@ usr/sbin/vgs usr/sbin/vgscan usr/sbin/vgsplit #usr/share/man/man5/lvm.conf.5 +#usr/share/man/man7/lvmautoactivation.7 #usr/share/man/man7/lvmcache.7 #usr/share/man/man7/lvmraid.7 #usr/share/man/man7/lvmreport.7 #usr/share/man/man7/lvmsystemid.7 #usr/share/man/man7/lvmthin.7 +#usr/share/man/man7/lvmvdo.7 #usr/share/man/man8/blkdeactivate.8 #usr/share/man/man8/dmsetup.8 #usr/share/man/man8/dmstats.8 @@ -89,11 +94,11 @@ usr/sbin/vgsplit #usr/share/man/man8/lvm-fullreport.8 #usr/share/man/man8/lvm-lvpoll.8 #usr/share/man/man8/lvm.8 -#usr/share/man/man8/lvmconf.8 +#usr/share/man/man8/lvm_import_vdo.8 #usr/share/man/man8/lvmconfig.8 +#usr/share/man/man8/lvmdevices.8 #usr/share/man/man8/lvmdiskscan.8 #usr/share/man/man8/lvmdump.8 -#usr/share/man/man8/lvmetad.8 #usr/share/man/man8/lvmsadc.8 #usr/share/man/man8/lvmsar.8 #usr/share/man/man8/lvreduce.8 @@ -122,6 +127,7 @@ usr/sbin/vgsplit #usr/share/man/man8/vgextend.8 #usr/share/man/man8/vgimport.8 #usr/share/man/man8/vgimportclone.8 +#usr/share/man/man8/vgimportdevices.8 #usr/share/man/man8/vgmerge.8 #usr/share/man/man8/vgmknodes.8 #usr/share/man/man8/vgreduce.8 diff --git a/lfs/lvm2 b/lfs/lvm2 index 7e327a021..5b39f05f5 100644 --- a/lfs/lvm2 +++ b/lfs/lvm2 @@ -1,7 +1,7 @@ ############################################################################### # # # IPFire.org - A linux based firewall # -# Copyright (C) 2007-2018 IPFire Team info@ipfire.org # +# Copyright (C) 2007-2023 IPFire Team info@ipfire.org # # # # This program is free software: you can redistribute it and/or modify # # it under the terms of the GNU General Public License as published by # @@ -24,7 +24,7 @@
include Config
-VER = 2.02.188 +VER = 2.03.21
THISAPP = LVM2.$(VER) DL_FILE = $(THISAPP).tgz @@ -40,7 +40,7 @@ objects = $(DL_FILE)
$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
-$(DL_FILE)_BLAKE2 = bed90c8454cd4b20fdeec6dcbf5a9f97c9310671aea3b2252f8069cfa439fcb050f5ad95f928a7125a1734a4dc5ac985da99a4a570538e377a7205191a505476 +$(DL_FILE)_BLAKE2 = 529bc01b3d1ba6207c9ddc95309b39e6293fcd0286334240b9fdc076da0b7bc7e026338ec0243564ec153f2fb5009014149c3f8e0db0cd47a29418af62068728
install : $(TARGET)