From 8c0ffe8cea7f1f7395ef52e4b7235c815a3e576bc1e424a734e5915cefd194a9 Mon Sep 17 00:00:00 2001 From: Gang He Date: Thu, 10 Dec 2020 06:03:04 +0000 Subject: [PATCH] Accepting request 854416 from home:hmzhao:branches:openSUSE:Factory - lvm2 should use 'external_device_info_source="udev"' by default (bsc#1179691) - change external_device_info_source from none to udev - comment out lvm.conf item preferred_names by default (bsc#1179738) - comment out preferred_names - Update lvm.conf, make it closely to upstream's setting (bsc#1179739) - change lvm.conf, follow upstream 7b41ea61b2e33dbfad754fd4c6e7851faf7ca5ef OBS-URL: https://build.opensuse.org/request/show/854416 OBS-URL: https://build.opensuse.org/package/show/Base:System/lvm2?expand=0&rev=290 --- lvm.conf | 217 ++++++++++++++++++++++++++++++++++++++------------- lvm2.changes | 10 +++ 2 files changed, 171 insertions(+), 56 deletions(-) diff --git a/lvm.conf b/lvm.conf index 99f4661..97b86a9 100644 --- a/lvm.conf +++ b/lvm.conf @@ -86,7 +86,23 @@ devices { # Reuse existing udev database records. Applicable only if LVM is # compiled with udev support. # - external_device_info_source = "none" + external_device_info_source = "udev" + + # Configuration option devices/hints. + # Use a local file to remember which devices have PVs on them. + # Some commands will use this as an optimization to reduce device + # scanning, and will only scan the listed PVs. Removing the hint file + # will cause lvm to generate a new one. Disable hints if PVs will + # be copied onto devices using non-lvm commands, like dd. + # + # Accepted values: + # all + # Use all hints. + # none + # Use no hints. + # + # This configuration option has an automatic default value. + # hints = "all" # Configuration option devices/preferred_names. # Select which path name to display for a block device. @@ -106,7 +122,7 @@ devices { # Example # preferred_names = [ "^/dev/mpath/", "^/dev/mapper/mpath", "^/dev/[hs]d" ] # - preferred_names = [ "^/dev/mpath/", "^/dev/mapper/mpath", "^/dev/[hs]d" ] + # This configuration option does not have a default value defined. # Configuration option devices/filter. # Limit the block devices that are used by LVM commands. @@ -126,7 +142,7 @@ devices { # # Example # Accept every block device: - # filter = [ "a|.*/|" ] + # filter = [ "a|.*|" ] # Reject the cdrom drive: # filter = [ "r|/dev/cdrom|" ] # Work with just loopback devices, e.g. for testing: @@ -134,10 +150,10 @@ devices { # Accept all loop devices and ide drives except hdc: # filter = [ "a|loop|", "r|/dev/hdc|", "a|/dev/ide|", "r|.*|" ] # Use anchors to be very specific: - # filter = [ "a|^/dev/hda8$|", "r|.*/|" ] + # filter = [ "a|^/dev/hda8$|", "r|.*|" ] # # This configuration option has an automatic default value. - # filter = [ "a|.*/|" ] + # filter = [ "a|.*|" ] # Below filter was used in SUSE/openSUSE before lvm2-2.03. It conflicts # with lvm2-2.02.180+, so comment out in lvm2-2.03 release. # filter = [ "r|/dev/.*/by-path/.*|", "r|/dev/.*/by-id/.*|", "r|/dev/fd.*|", "r|/dev/cdrom|", "a/.*/" ] @@ -150,7 +166,7 @@ devices { # The syntax is the same as devices/filter. Devices rejected by # global_filter are not opened by LVM. # This configuration option has an automatic default value. - # global_filter = [ "a|.*/|" ] + # global_filter = [ "a|.*|" ] # Configuration option devices/types. # List of additional acceptable block device types. @@ -170,7 +186,17 @@ devices { sysfs_scan = 1 # Configuration option devices/scan_lvs. - # Scan LVM LVs for layered PVs. + # Scan LVM LVs for layered PVs, allowing LVs to be used as PVs. + # When 1, LVM will detect PVs layered on LVs, and caution must be + # taken to avoid a host accessing a layered VG that may not belong + # to it, e.g. from a guest image. This generally requires excluding + # the LVs with device filters. Also, when this setting is enabled, + # every LVM command will scan every active LV on the system (unless + # filtered), which can cause performance problems on systems with + # many active LVs. When this setting is 0, LVM will not detect or + # use PVs that exist on LVs, and will not allow a PV to be created on + # an LV. The LVs are ignored using a built in device filter that + # identifies and excludes LVs. scan_lvs = 0 # Configuration option devices/multipath_component_detection. @@ -178,9 +204,34 @@ devices { multipath_component_detection = 1 # Configuration option devices/md_component_detection. - # Ignore devices that are components of software RAID (md) devices. + # Enable detection and exclusion of MD component devices. + # An MD component device is a block device that MD uses as part + # of a software RAID virtual device. When an LVM PV is created + # on an MD device, LVM must only use the top level MD device as + # the PV, and should ignore the underlying component devices. + # In cases where the MD superblock is located at the end of the + # component devices, it is more difficult for LVM to consistently + # identify an MD component, see the md_component_checks setting. md_component_detection = 1 + # Configuration option devices/md_component_checks. + # The checks LVM should use to detect MD component devices. + # MD component devices are block devices used by MD software RAID. + # + # Accepted values: + # auto + # LVM will skip scanning the end of devices when it has other + # indications that the device is not an MD component. + # start + # LVM will only scan the start of devices for MD superblocks. + # This does not incur extra I/O by LVM. + # full + # LVM will scan the start and end of devices for MD superblocks. + # This requires an extra read at the end of devices. + # + # This configuration option has an automatic default value. + # md_component_checks = "auto" + # Configuration option devices/fw_raid_component_detection. # Ignore devices that are components of firmware RAID devices. # LVM must use an external_device_info_source other than none for this @@ -188,19 +239,24 @@ devices { fw_raid_component_detection = 0 # Configuration option devices/md_chunk_alignment. - # Align PV data blocks with md device's stripe-width. + # Align the start of a PV data area with md device's stripe-width. # This applies if a PV is placed directly on an md device. + # default_data_alignment will be overriden if it is not aligned + # with the value detected for this setting. + # This setting is overriden by data_alignment_detection, + # data_alignment, and the --dataalignment option. md_chunk_alignment = 1 # Configuration option devices/default_data_alignment. - # Default alignment of the start of a PV data area in MB. - # If set to 0, a value of 64KiB will be used. - # Set to 1 for 1MiB, 2 for 2MiB, etc. + # Align the start of a PV data area with this number of MiB. + # Set to 1 for 1MiB, 2 for 2MiB, etc. Set to 0 to disable. + # This setting is overriden by data_alignment and the --dataalignment + # option. # This configuration option has an automatic default value. # default_data_alignment = 1 # Configuration option devices/data_alignment_detection. - # Detect PV data alignment based on sysfs device information. + # Align the start of a PV data area with sysfs io properties. # The start of a PV data area will be a multiple of minimum_io_size or # optimal_io_size exposed in sysfs. minimum_io_size is the smallest # request the device can perform without incurring a read-modify-write @@ -208,27 +264,29 @@ devices { # preferred unit of receiving I/O, e.g. MD stripe width. # minimum_io_size is used if optimal_io_size is undefined (0). # If md_chunk_alignment is enabled, that detects the optimal_io_size. - # This setting takes precedence over md_chunk_alignment. + # default_data_alignment and md_chunk_alignment will be overriden + # if they are not aligned with the value detected for this setting. + # This setting is overriden by data_alignment and the --dataalignment + # option. data_alignment_detection = 1 # Configuration option devices/data_alignment. - # Alignment of the start of a PV data area in KiB. - # If a PV is placed directly on an md device and md_chunk_alignment or - # data_alignment_detection are enabled, then this setting is ignored. - # Otherwise, md_chunk_alignment and data_alignment_detection are - # disabled if this is set. Set to 0 to use the default alignment or the - # page size, if larger. + # Align the start of a PV data area with this number of KiB. + # When non-zero, this setting overrides default_data_alignment. + # Set to 0 to disable, in which case default_data_alignment + # is used to align the first PE in units of MiB. + # This setting is overriden by the --dataalignment option. data_alignment = 0 # Configuration option devices/data_alignment_offset_detection. - # Detect PV data alignment offset based on sysfs device information. - # The start of a PV aligned data area will be shifted by the + # 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 # 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). - # pvcreate --dataalignmentoffset will skip this detection. + # This setting is overriden by the --dataalignmentoffset option. data_alignment_offset_detection = 1 # Configuration option devices/ignore_suspended_devices. @@ -374,7 +432,8 @@ allocation { # Configuration option allocation/cache_pool_metadata_require_separate_pvs. # Cache pool metadata and data will always use different PVs. - cache_pool_metadata_require_separate_pvs = 0 + # This configuration option has an automatic default value. + # cache_pool_metadata_require_separate_pvs = 0 # Configuration option allocation/cache_metadata_format. # Sets default metadata format for new cache. @@ -433,8 +492,9 @@ allocation { # This configuration option does not have a default value defined. # Configuration option allocation/thin_pool_metadata_require_separate_pvs. - # Thin pool metdata and data will always use different PVs. - thin_pool_metadata_require_separate_pvs = 0 + # Thin pool metadata and data will always use different PVs. + # This configuration option has an automatic default value. + # thin_pool_metadata_require_separate_pvs = 0 # Configuration option allocation/thin_pool_zero. # Thin pool data chunks are zeroed before they are first used. @@ -471,6 +531,11 @@ allocation { # This configuration option has an automatic default value. # thin_pool_chunk_size_policy = "generic" + # Configuration option allocation/zero_metadata. + # Zero whole metadata area before use with thin or cache pool. + # This configuration option has an automatic default value. + # zero_metadata = 1 + # Configuration option allocation/thin_pool_chunk_size. # The minimal chunk size in KiB for thin pool volumes. # Larger chunk sizes may improve performance for plain thin volumes, @@ -553,7 +618,7 @@ allocation { # vdo_slab_size_mb = 2048 # Configuration option allocation/vdo_ack_threads. - # Specifies the number of threads to use for acknowledging + # 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]. # This configuration option has an automatic default value. @@ -566,7 +631,7 @@ allocation { # 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. # This configuration option has an automatic default value. - # vdo_bio_threads = 1 + # vdo_bio_threads = 4 # Configuration option allocation/vdo_bio_rotation. # Specifies the number of I/O operations to enqueue for each bio-submission @@ -708,8 +773,8 @@ log { # Configuration option log/file. # Write error and debug log messages to a file specified here. + # e.g. file = "/var/log/lvm2.log" # This configuration option does not have a default value defined. - # file = "/var/log/lvm2.log" # Configuration option log/overwrite. # Overwrite the log file each time the program is run. @@ -723,6 +788,7 @@ log { # Configuration option log/indent. # Indent messages according to their severity. + # This configuration option has an automatic default value. indent = 1 # Configuration option log/command_names. @@ -749,6 +815,20 @@ log { # available: memory, devices, io, activation, allocation, # metadata, cache, locking, lvmpolld. Use "all" to see everything. debug_classes = [ "memory", "devices", "io", "activation", "allocation", "metadata", "cache", "locking", "lvmpolld", "dbus" ] + + # Configuration option log/debug_file_fields. + # The fields included in debug output written to log file. + # Use "all" to include everything (the default). + # This configuration option is advanced. + # This configuration option has an automatic default value. + # debug_file_fields = [ "time", "command", "fileline", "message" ] + + # Configuration option log/debug_output_fields. + # The fields included in debug output written to stderr. + # Use "all" to include everything (the default). + # This configuration option is advanced. + # This configuration option has an automatic default value. + # debug_output_fields = [ "time", "command", "fileline", "message" ] } # Configuration section backup. @@ -836,9 +916,6 @@ global { # the error messages. activation = 1 - # Configuration option global/segment_libraries. - # This configuration option does not have a default value defined. - # Configuration option global/proc. # Location of proc filesystem. # This configuration option is advanced. @@ -864,8 +941,7 @@ global { # a volume group's metadata, instead of always granting the read-only # requests immediately, delay them to allow the read-write requests to # be serviced. Without this setting, write access may be stalled by a - # high volume of read-only requests. This option only affects - # locking_type 1 viz. local file-based locking. + # high volume of read-only requests. This option only affects file locks. prioritise_write_locks = 1 # Configuration option global/library_dir. @@ -912,7 +988,6 @@ global { # mirror_segtype_default = "raid1" - # Configuration option global/support_mirrored_mirror_log. # Configuration option global/support_mirrored_mirror_log. # Enable mirrored 'mirror' log type for testing. # @@ -921,7 +996,8 @@ global { # logs and conversion to disk/core works. # # Not supported for regular operation! - support_mirrored_mirror_log = 0 + # This configuration option has an automatic default value. + # support_mirrored_mirror_log = 0 # Configuration option global/raid10_segtype_default. # The segment type used by the -i -m combination. @@ -979,7 +1055,8 @@ global { # activated from these events (the default is all.) # When event_activation is disabled, the system will generally run # a direct activation command to activate LVs in complete VGs. - event_activation = 1 + # This configuration option has an automatic default value. + # event_activation = 1 # Configuration option global/use_aio. # Use async I/O when reading and writing devices. @@ -1178,6 +1255,16 @@ global { # When enabled, an LVM command that changes PVs, changes VG metadata, # or changes the activation state of an LV will send a notification. 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 + # 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 + # it too low can result in lvm failing to read VGs. + # This configuration option has an automatic default value. + # io_memory_size = 8192 } # Configuration section activation. @@ -1213,7 +1300,8 @@ activation { # This enables additional checks (and if necessary, repairs) on entries # in the device directory after udev has completed processing its # events. Useful for diagnosing problems with LVM/udev interactions. - verify_udev_operations = 0 + # This configuration option has an automatic default value. + # verify_udev_operations = 0 # Configuration option activation/retry_deactivation. # Retry failed LV deactivation. @@ -1238,23 +1326,27 @@ activation { # When disabled, the striped target is used. The linear target is an # optimised version of the striped target that only handles a single # stripe. - use_linear_target = 1 + # This configuration option has an automatic default value. + # use_linear_target = 1 # Configuration option activation/reserved_stack. # Stack size in KiB to reserve for use while devices are suspended. # Insufficent reserve risks I/O deadlock during device suspension. - reserved_stack = 64 + # This configuration option has an automatic default value. + # reserved_stack = 64 # Configuration option activation/reserved_memory. # Memory size in KiB to reserve for use while devices are suspended. # Insufficent reserve risks I/O deadlock during device suspension. - reserved_memory = 8192 + # This configuration option has an automatic default value. + # reserved_memory = 8192 # Configuration option activation/process_priority. # Nice value used while devices are suspended. # Use a high priority so that LVs are suspended # for the shortest possible time. - process_priority = -18 + # This configuration option has an automatic default value. + # process_priority = -18 # Configuration option activation/volume_list. # Only LVs selected by this list are activated. @@ -1371,7 +1463,8 @@ activation { # auto # Use default value chosen by kernel. # - readahead = "auto" + # This configuration option has an automatic default value. + # readahead = "auto" # Configuration option activation/raid_fault_policy. # Defines how a device failure in a RAID LV is handled. @@ -1507,7 +1600,8 @@ activation { # 8.4G, it is extended to 14.4G: # vdo_pool_autoextend_threshold = 70 # - vdo_pool_autoextend_threshold = 100 + # This configuration option has an automatic default value. + # vdo_pool_autoextend_threshold = 100 # Configuration option activation/vdo_pool_autoextend_percent. # Auto-extending a VDO pool adds this percent extra space. @@ -1543,7 +1637,8 @@ activation { # Use the old behavior of mlockall to pin all memory. # Prior to version 2.02.62, LVM used mlockall() to pin the whole # process's memory while activating devices. - use_mlockall = 0 + # This configuration option has an automatic default value. + # use_mlockall = 0 # Configuration option activation/monitoring. # Monitor LVs that are activated. @@ -1558,7 +1653,8 @@ activation { # intervals of this number of seconds. If this is set to 0 and there # is only one thing to wait for, there are no progress reports, but # the process is awoken immediately once the operation is complete. - polling_interval = 15 + # This configuration option has an automatic default value. + # polling_interval = 15 # Configuration option activation/auto_set_activation_skip. # Set the activation skip flag on new thin snapshot LVs. @@ -1666,13 +1762,19 @@ activation { # vgmetadatacopies = 0 # Configuration option metadata/pvmetadatasize. - # Approximate number of sectors to use for each metadata copy. - # VGs with large numbers of PVs or LVs, or VGs containing complex LV - # structures, may need additional space for VG metadata. The metadata - # areas are treated as circular buffers, so unused space becomes filled - # with an archive of the most recent previous versions of the metadata. - # This configuration option has an automatic default value. - # pvmetadatasize = 255 + # The default size of the metadata area in units of 512 byte sectors. + # The metadata area begins at an offset of the page size from the start + # of the device. The first PE is by default at 1 MiB from the start of + # the device. The space between these is the default metadata area size. + # The actual size of the metadata area may be larger than what is set + # here due to default_data_alignment making the first PE a MiB multiple. + # The metadata area begins with a 512 byte header and is followed by a + # circular buffer used for VG metadata text. The maximum size of the VG + # metadata is about half the size of the metadata buffer. VGs with large + # numbers of PVs or LVs, or VGs containing complex LV structures, may need + # additional space for VG metadata. The --metadatasize option overrides + # this setting. + # This configuration option does not have a default value defined. # Configuration option metadata/pvmetadataignore. # Ignore metadata areas on a new PV. @@ -2108,7 +2210,8 @@ dmeventd { # failures. It removes failed devices from a volume group and # reconfigures a mirror as necessary. If no mirror library is # provided, mirrors are not monitored through dmeventd. - mirror_library = "libdevmapper-event-lvm2mirror.so" + # This configuration option has an automatic default value. + # mirror_library = "libdevmapper-event-lvm2mirror.so" # Configuration option dmeventd/raid_library. # This configuration option has an automatic default value. @@ -2119,14 +2222,16 @@ dmeventd { # libdevmapper-event-lvm2snapshot.so monitors the filling of snapshots # and emits a warning through syslog when the usage exceeds 80%. The # warning is repeated when 85%, 90% and 95% of the snapshot is filled. - snapshot_library = "libdevmapper-event-lvm2snapshot.so" + # This configuration option has an automatic default value. + # snapshot_library = "libdevmapper-event-lvm2snapshot.so" # Configuration option dmeventd/thin_library. # The library dmeventd uses when monitoring a thin device. # libdevmapper-event-lvm2thin.so monitors the filling of a pool # and emits a warning through syslog when the usage exceeds 80%. The # warning is repeated when 85%, 90% and 95% of the pool is filled. - thin_library = "libdevmapper-event-lvm2thin.so" + # This configuration option has an automatic default value. + # thin_library = "libdevmapper-event-lvm2thin.so" # Configuration option dmeventd/thin_command. # The plugin runs command with each 5% increment when thin-pool data volume diff --git a/lvm2.changes b/lvm2.changes index c377c86..eca5666 100644 --- a/lvm2.changes +++ b/lvm2.changes @@ -1,3 +1,13 @@ +------------------------------------------------------------------- +Mon Dec 09 01:16:00 UTC 2020 - heming.zhao@suse.com + +- lvm2 should use 'external_device_info_source="udev"' by default (bsc#1179691) + - change external_device_info_source from none to udev +- comment out lvm.conf item preferred_names by default (bsc#1179738) + - comment out preferred_names +- Update lvm.conf, make it closely to upstream's setting (bsc#1179739) + - change lvm.conf, follow upstream 7b41ea61b2e33dbfad754fd4c6e7851faf7ca5ef + ------------------------------------------------------------------- Thu Nov 26 10:28:13 UTC 2020 - Ludwig Nussel