mirror of
git://sourceware.org/git/lvm2.git
synced 2025-10-25 03:33:16 +03:00
config: add allocation/pvmove_max_segment_size_mb
Introduce a new configuration setting `allocation/pvmove_max_segment_size_mb` that limits the maximum size (in MiB) of a segment mirrored at once during pvmove.
This commit is contained in:
@@ -579,6 +579,17 @@ allocation {
|
||||
# Using cache pool with more chunks may degrade cache performance.
|
||||
# This configuration option does not have a default value defined.
|
||||
|
||||
# Configuration option allocation/pvmove_max_segment_size_mb.
|
||||
# Maximum size in MiB of segments to mirror at once during pvmove.
|
||||
# When pvmove needs to move large segments, it will split them into
|
||||
# smaller chunks of this size, mirror each chunk, and update metadata
|
||||
# between chunks. This prevents mirroring excessively large amounts
|
||||
# of data at once. A value of 0 (default) means no limit - the entire
|
||||
# segment will be mirrored at once. Setting this to e.g. 10240 will
|
||||
# limit each mirroring operation to 10GiB chunks.
|
||||
# This configuration option has an automatic default value.
|
||||
# pvmove_max_segment_size_mb = 0
|
||||
|
||||
# Configuration option allocation/thin_pool_metadata_require_separate_pvs.
|
||||
# Thin pool metadata and data will always use different PVs.
|
||||
# This configuration option has an automatic default value.
|
||||
|
||||
@@ -676,6 +676,15 @@ cfg(allocation_cache_pool_max_chunks_CFG, "cache_pool_max_chunks", allocation_CF
|
||||
"For cache target v1.9 the recommended maximum is 1000000 chunks.\n"
|
||||
"Using cache pool with more chunks may degrade cache performance.\n")
|
||||
|
||||
cfg(allocation_pvmove_max_segment_size_mb_CFG, "pvmove_max_segment_size_mb", allocation_CFG_SECTION, CFG_DEFAULT_COMMENTED, CFG_TYPE_INT, DEFAULT_PVMOVE_MAX_SEGMENT_SIZE_MB, vsn(2, 3, 36), NULL, 0, NULL,
|
||||
"Maximum size in MiB of segments to mirror at once during pvmove.\n"
|
||||
"When pvmove needs to move large segments, it will split them into\n"
|
||||
"smaller chunks of this size, mirror each chunk, and update metadata\n"
|
||||
"between chunks. This prevents mirroring excessively large amounts\n"
|
||||
"of data at once. A value of 0 (default) means no limit - the entire\n"
|
||||
"segment will be mirrored at once. Setting this to e.g. 10240 will\n"
|
||||
"limit each mirroring operation to 10GiB chunks.\n")
|
||||
|
||||
cfg(allocation_thin_pool_metadata_require_separate_pvs_CFG, "thin_pool_metadata_require_separate_pvs", allocation_CFG_SECTION, CFG_DEFAULT_COMMENTED, CFG_TYPE_BOOL, DEFAULT_THIN_POOL_METADATA_REQUIRE_SEPARATE_PVS, vsn(2, 2, 89), NULL, 0, NULL,
|
||||
"Thin pool metadata and data will always use different PVs.\n")
|
||||
|
||||
|
||||
@@ -161,6 +161,8 @@
|
||||
#define DEFAULT_CACHE_METADATA_FORMAT CACHE_METADATA_FORMAT_UNSELECTED /* Autodetect */
|
||||
#define DEFAULT_CACHE_MODE "writethrough"
|
||||
|
||||
#define DEFAULT_PVMOVE_MAX_SEGMENT_SIZE_MB 0
|
||||
|
||||
|
||||
/* VDO defaults */
|
||||
#define DEFAULT_VDO_USE_COMPRESSION (true)
|
||||
|
||||
Reference in New Issue
Block a user