diff options
author | David Teigland <teigland@redhat.com> | 2015-08-13 15:31:29 -0500 |
---|---|---|
committer | David Teigland <teigland@redhat.com> | 2015-08-17 14:50:41 -0500 |
commit | dece918bc8e0d4e3222c4e71fc7f212b994e358c (patch) | |
tree | fc94e1b33a5fd7f4886b2adedad09200a7455d9c | |
parent | b091c37595b28702e8bd3570416fea2718836d56 (diff) | |
download | lvm2-dece918bc8e0d4e3222c4e71fc7f212b994e358c.tar.gz |
config: create lists of accepted values in descriptions
-rw-r--r-- | lib/config/config_settings.h | 698 |
1 files changed, 419 insertions, 279 deletions
diff --git a/lib/config/config_settings.h b/lib/config/config_settings.h index d4f51eba5..8603ae69a 100644 --- a/lib/config/config_settings.h +++ b/lib/config/config_settings.h @@ -199,10 +199,14 @@ cfg(devices_external_device_info_source_CFG, "external_device_info_source", devi "this information. For example, this information is used to\n" "drive LVM filtering like MD component detection, multipath\n" "component detection, partition detection and others.\n" - "Possible options are: none, udev.\n" - "none - No external device information source is used.\n" - "udev - Reuse existing udev database records. Applicable\n" - "only if LVM is compiled with udev support.\n") + "#\n" + "Accepted values:\n" + " none\n" + " No external device information source is used.\n" + " udev\n" + " Reuse existing udev database records. Applicable only if LVM is\n" + " compiled with udev support.\n" + "#\n") cfg_array(devices_preferred_names_CFG, "preferred_names", devices_CFG_SECTION, CFG_ALLOW_EMPTY | CFG_DEFAULT_UNDEFINED , CFG_TYPE_STRING, NULL, vsn(1, 2, 19), NULL, 0, NULL, "Select which path name to display for a block device.\n" @@ -471,11 +475,14 @@ cfg(allocation_cache_pool_cachemode_CFG, "cache_pool_cachemode", allocation_CFG_ cfg(allocation_cache_mode_CFG, "cache_mode", allocation_CFG_SECTION, CFG_PROFILABLE | CFG_DEFAULT_COMMENTED, CFG_TYPE_STRING, DEFAULT_CACHE_MODE, vsn(2, 2, 128), NULL, 0, NULL, "The default cache mode used for new cache.\n" - "Possible options are: writethrough, writeback.\n" - "writethrough - Data blocks are immediately written from\n" - "the cache to disk.\n" - "writeback - Data blocks are written from the cache back\n" - "to disk after some delay to improve performance.\n" + "#\n" + "Accepted values:\n" + " writethrough\n" + " Data blocks are immediately written from the cache to disk.\n" + " writeback\n" + " Data blocks are written from the cache back to disk after some\n" + " delay to improve performance.\n" + "#\n" "This setting replaces allocation/cache_pool_cachemode.\n") cfg(allocation_cache_policy_CFG, "cache_policy", allocation_CFG_SECTION, CFG_PROFILABLE | CFG_DEFAULT_UNDEFINED, CFG_TYPE_STRING, 0, vsn(2, 2, 128), NULL, 0, NULL, @@ -513,19 +520,28 @@ cfg(allocation_thin_pool_zero_CFG, "thin_pool_zero", allocation_CFG_SECTION, CFG cfg(allocation_thin_pool_discards_CFG, "thin_pool_discards", allocation_CFG_SECTION, CFG_PROFILABLE | CFG_PROFILABLE_METADATA | CFG_DEFAULT_COMMENTED, CFG_TYPE_STRING, DEFAULT_THIN_POOL_DISCARDS, vsn(2, 2, 99), NULL, 0, NULL, "The discards behaviour of thin pool volumes.\n" - "Possible options are: ignore, nopassdown, passdown.\n") + "#\n" + "Accepted values:\n" + " ignore\n" + " nopassdown\n" + " passdown\n" + "#\n") cfg(allocation_thin_pool_chunk_size_policy_CFG, "thin_pool_chunk_size_policy", allocation_CFG_SECTION, CFG_PROFILABLE | CFG_PROFILABLE_METADATA | CFG_DEFAULT_COMMENTED, CFG_TYPE_STRING, DEFAULT_THIN_POOL_CHUNK_SIZE_POLICY, vsn(2, 2, 101), NULL, 0, NULL, "The chunk size calculation policy for thin pool volumes.\n" - "Possible options are: generic, performance.\n" - "generic - If thin_pool_chunk_size is defined, use it.\n" - "Otherwise, calculate the chunk size based on estimation and\n" - "device hints exposed in sysfs - the minimum_io_size.\n" - "The chunk size is always at least 64KiB.\n" - "performance - If thin_pool_chunk_size is defined, use it.\n" - "Otherwise, calculate the chunk size for performance based on\n" - "device hints exposed in sysfs - the optimal_io_size.\n" - "The chunk size is always at least 512KiB.\n") + "#\n" + "Accepted values:\n" + " generic\n" + " If thin_pool_chunk_size is defined, use it. Otherwise, calculate\n" + " the chunk size based on estimation and device hints exposed in\n" + " sysfs - the minimum_io_size. The chunk size is always at least\n" + " 64KiB.\n" + " performance\n" + " If thin_pool_chunk_size is defined, use it. Otherwise, calculate\n" + " the chunk size for performance based on device hints exposed in\n" + " sysfs - the optimal_io_size. The chunk size is always at least\n" + " 512KiB.\n" + "#\n") cfg_runtime(allocation_thin_pool_chunk_size_CFG, "thin_pool_chunk_size", allocation_CFG_SECTION, CFG_PROFILABLE | CFG_PROFILABLE_METADATA | CFG_DEFAULT_UNDEFINED, CFG_TYPE_INT, vsn(2, 2, 99), 0, NULL, "The minimal chunk size in KiB for thin pool volumes.\n" @@ -679,24 +695,33 @@ cfg(global_etc_CFG, "etc", global_CFG_SECTION, 0, CFG_TYPE_STRING, DEFAULT_ETC_D cfg(global_locking_type_CFG, "locking_type", global_CFG_SECTION, 0, CFG_TYPE_INT, 1, vsn(1, 0, 0), NULL, 0, NULL, "Type of locking to use.\n" - "Type 0: turns off locking. Warning: this risks metadata\n" - "corruption if commands run concurrently.\n" - "Type 1: uses local file-based locking, the standard mode.\n" - "Type 2: uses the external shared library locking_library.\n" - "Type 3: uses built-in clustered locking with clvmd.\n" - "This is incompatible with lvmetad. If use_lvmetad is enabled,\n" - "lvm prints a warning and disables lvmetad use.\n" - "Type 4: uses read-only locking which forbids any operations\n" - "that might change metadata.\n" - "Type 5: offers dummy locking for tools that do not need any locks.\n" - "You should not need to set this directly; the tools will select\n" - "when to use it instead of the configured locking_type.\n" - "Do not use lvmetad or the kernel device-mapper driver with this\n" - "locking type. It is used by the --readonly option that offers\n" - "read-only access to Volume Group metadata that cannot be locked\n" - "safely because it belongs to an inaccessible domain and might be\n" - "in use, for example a virtual machine image or a disk that is\n" - "shared by a clustered machine.\n") + "#\n" + "Accepted values:\n" + " 0\n" + " Turns off locking. Warning: this risks metadata corruption if\n" + " commands run concurrently.\n" + " 1\n" + " LVM uses local file-based locking, the standard mode.\n" + " 2\n" + " LVM uses the external shared library locking_library.\n" + " 3\n" + " LVM uses built-in clustered locking with clvmd.\n" + " This is incompatible with lvmetad. If use_lvmetad is enabled,\n" + " LVM prints a warning and disables lvmetad use.\n" + " 4\n" + " LVM uses read-only locking which forbids any operations that\n" + " might change metadata.\n" + " 5\n" + " Offers dummy locking for tools that do not need any locks.\n" + " You should not need to set this directly; the tools will select\n" + " when to use it instead of the configured locking_type.\n" + " Do not use lvmetad or the kernel device-mapper driver with this\n" + " locking type. It is used by the --readonly option that offers\n" + " read-only access to Volume Group metadata that cannot be locked\n" + " safely because it belongs to an inaccessible domain and might be\n" + " in use, for example a virtual machine image or a disk that is\n" + " shared by a clustered machine.\n" + "#\n") cfg(global_wait_for_locks_CFG, "wait_for_locks", global_CFG_SECTION, 0, CFG_TYPE_BOOL, DEFAULT_WAIT_FOR_LOCKS, vsn(2, 2, 50), NULL, 0, NULL, "When disabled, fail if a lock request would block.\n") @@ -763,55 +788,65 @@ cfg(global_metadata_read_only_CFG, "metadata_read_only", global_CFG_SECTION, 0, cfg(global_mirror_segtype_default_CFG, "mirror_segtype_default", global_CFG_SECTION, 0, CFG_TYPE_STRING, DEFAULT_MIRROR_SEGTYPE, vsn(2, 2, 87), "@DEFAULT_MIRROR_SEGTYPE@", 0, NULL, "The segment type used by the short mirroring option -m.\n" - "Possible options are: mirror, raid1.\n" - "mirror - the original RAID1 implementation from LVM/DM.\n" - "It is characterized by a flexible log solution (core,\n" - "disk, mirrored), and by the necessity to block I/O while\n" - "handling a failure.\n" - "There is an inherent race in the dmeventd failure\n" - "handling logic with snapshots of devices using this\n" - "type of RAID1 that in the worst case could cause a\n" - "deadlock. (Also see devices/ignore_lvm_mirrors.)\n" - "raid1 - a newer RAID1 implementation using the MD RAID1\n" - "personality through device-mapper. It is characterized\n" - "by a lack of log options. (A log is always allocated for\n" - "every device and they are placed on the same device as the\n" - "image - no separate devices are required.) This mirror\n" - "implementation does not require I/O to be blocked while\n" - "handling a failure. This mirror implementation is not\n" - "cluster-aware and cannot be used in a shared (active/active)\n" - "fashion in a cluster.\n" - "The '--type mirror|raid1' option overrides this setting.\n") + "The --type mirror|raid1 option overrides this setting.\n" + "#\n" + "Accepted values:\n" + " mirror\n" + " The original RAID1 implementation from LVM/DM. It is\n" + " characterized by a flexible log solution (core, disk, mirrored),\n" + " and by the necessity to block I/O while handling a failure.\n" + " There is an inherent race in the dmeventd failure handling logic\n" + " with snapshots of devices using this type of RAID1 that in the\n" + " worst case could cause a deadlock. (Also see\n" + " devices/ignore_lvm_mirrors.)\n" + " raid1\n" + " This is a newer RAID1 implementation using the MD RAID1\n" + " personality through device-mapper. It is characterized by a\n" + " lack of log options. (A log is always allocated for every\n" + " device and they are placed on the same device as the image,\n" + " so no separate devices are required.) This mirror\n" + " implementation does not require I/O to be blocked while\n" + " handling a failure. This mirror implementation is not\n" + " cluster-aware and cannot be used in a shared (active/active)\n" + " fashion in a cluster.\n" + "#\n") cfg(global_raid10_segtype_default_CFG, "raid10_segtype_default", global_CFG_SECTION, 0, CFG_TYPE_STRING, DEFAULT_RAID10_SEGTYPE, vsn(2, 2, 99), "@DEFAULT_RAID10_SEGTYPE@", 0, NULL, "The segment type used by the -i -m combination.\n" - "The --stripes/-i and --mirrors/-m options can both\n" - "be specified during the creation of a logical volume\n" - "to use both striping and mirroring for the LV.\n" - "There are two different implementations.\n" - "Possible options are: raid10, mirror.\n" - "raid10 - LVM uses MD's RAID10 personality through DM.\n" - "mirror - LVM layers the 'mirror' and 'stripe' segment types.\n" - "The layering is done by creating a mirror LV on top of\n" - "striped sub-LVs, effectively creating a RAID 0+1 array.\n" - "The layering is suboptimal in terms of providing redundancy\n" - "and performance. The 'raid10' option is perferred.\n" - "The '--type raid10|mirror' option overrides this setting.\n") + "The --stripes/-i and --mirrors/-m options can both be specified\n" + "during the creation of a logical volume to use both striping and\n" + "mirroring for the LV. There are two different implementations.\n" + "The --type raid10|mirror option overrides this setting.\n" + "#\n" + "Accepted values:\n" + " raid10\n" + " LVM uses MD's RAID10 personality through DM. This is the\n" + " preferred option.\n" + " mirror\n" + " LVM layers the 'mirror' and 'stripe' segment types. The layering\n" + " is done by creating a mirror LV on top of striped sub-LVs,\n" + " effectively creating a RAID 0+1 array. The layering is suboptimal\n" + " in terms of providing redundancy and performance.\n" + "#\n") cfg(global_sparse_segtype_default_CFG, "sparse_segtype_default", global_CFG_SECTION, 0, CFG_TYPE_STRING, DEFAULT_SPARSE_SEGTYPE, vsn(2, 2, 112), "@DEFAULT_SPARSE_SEGTYPE@", 0, NULL, "The segment type used by the -V -L combination.\n" - "The combination of -V and -L options creates a\n" - "sparse LV. There are two different implementations.\n" - "Possible options are: snapshot, thin.\n" - "snapshot - The original snapshot implementation from LVM/DM.\n" - "It uses an old snapshot that mixes data and metadata within\n" - "a single COW storage volume and performs poorly when the\n" - "size of stored data passes hundreds of MB.\n" - "thin - A newer implementation that uses thin provisioning.\n" - "It has a bigger minimal chunk size (64KiB) and uses a separate\n" - "volume for metadata. It has better performance, especially\n" - "when more data is used. It also supports full snapshots.\n" - "The '--type snapshot|thin' option overrides this setting.\n") + "The combination of -V and -L options creates a sparse LV. There are\n" + "two different implementations.\n" + "The --type snapshot|thin option overrides this setting.\n" + "#\n" + "Accepted values:\n" + " snapshot\n" + " The original snapshot implementation from LVM/DM. It uses an old\n" + " snapshot that mixes data and metadata within a single COW\n" + " storage volume and performs poorly when the size of stored data\n" + " passes hundreds of MB.\n" + " thin\n" + " A newer implementation that uses thin provisioning. It has a\n" + " bigger minimal chunk size (64KiB) and uses a separate volume for\n" + " metadata. It has better performance, especially when more data\n" + " is used. It also supports full snapshots.\n" + "#\n") cfg(global_lvdisplay_shows_full_device_path_CFG, "lvdisplay_shows_full_device_path", global_CFG_SECTION, CFG_PROFILABLE | CFG_DEFAULT_COMMENTED, CFG_TYPE_BOOL, DEFAULT_LVDISPLAY_SHOWS_FULL_DEVICE_PATH, vsn(2, 2, 89), NULL, 0, NULL, "Enable this to reinstate the previous lvdisplay name format.\n" @@ -959,23 +994,28 @@ cfg_array(global_cache_repair_options_CFG, "cache_repair_options", global_CFG_SE cfg(global_system_id_source_CFG, "system_id_source", global_CFG_SECTION, 0, CFG_TYPE_STRING, DEFAULT_SYSTEM_ID_SOURCE, vsn(2, 2, 117), NULL, 0, NULL, "The method LVM uses to set the local system ID.\n" - "Volume Groups can also be given a system ID (by\n" - "vgcreate, vgchange, or vgimport.)\n" - "A VG on shared storage devices is accessible only\n" - "to the host with a matching system ID.\n" - "See 'man lvmsystemid' for information on limitations\n" - "and correct usage.\n" - "Possible options are: none, lvmlocal, uname, machineid, file.\n" - "none - The host has no system ID.\n" - "lvmlocal - Obtain the system ID from the system_id setting in the\n" - "'local' section of an lvm configuration file, e.g. lvmlocal.conf.\n" - "uname - Set the system ID from the hostname (uname) of the system.\n" - "System IDs beginning localhost are not permitted.\n" - "machineid - Use the contents of the machine-id file to set the\n" - "system ID. Some systems create this file at installation time.\n" - "See 'man machine-id' and global/etc.\n" - "file - Use the contents of another file (system_id_file) to set\n" - "the system ID.\n") + "Volume Groups can also be given a system ID (by vgcreate, vgchange,\n" + "or vgimport.) A VG on shared storage devices is accessible only to\n" + "the host with a matching system ID. See 'man lvmsystemid' for\n" + "information on limitations and correct usage.\n" + "#\n" + "Accepted values:\n" + " none\n" + " The host has no system ID.\n" + " lvmlocal\n" + " Obtain the system ID from the system_id setting in the 'local'\n" + " section of an lvm configuration file, e.g. lvmlocal.conf.\n" + " uname\n" + " Set the system ID from the hostname (uname) of the system.\n" + " System IDs beginning localhost are not permitted.\n" + " machineid\n" + " Use the contents of the machine-id file to set the system ID.\n" + " Some systems create this file at installation time.\n" + " See 'man machine-id' and global/etc.\n" + " file\n" + " Use the contents of another file (system_id_file) to set the\n" + " system ID.\n" + "#\n") cfg(global_system_id_file_CFG, "system_id_file", global_CFG_SECTION, CFG_DEFAULT_UNDEFINED, CFG_TYPE_STRING, NULL, vsn(2, 2, 117), NULL, 0, NULL, "The full path to the file containing a system ID.\n" @@ -1061,18 +1101,23 @@ cfg(activation_process_priority_CFG, "process_priority", activation_CFG_SECTION, cfg_array(activation_volume_list_CFG, "volume_list", activation_CFG_SECTION, CFG_ALLOW_EMPTY | CFG_DEFAULT_UNDEFINED, CFG_TYPE_STRING, NULL, vsn(1, 0, 18), NULL, 0, NULL, "Only LVs selected by this list are activated.\n" - "If this list is defined, an LV is only activated\n" - "if it matches an entry in this list.\n" - "If this list is undefined, it imposes no limits\n" + "If this list is defined, an LV is only activated if it matches an\n" + "entry in this list. If this list is undefined, it imposes no limits\n" "on LV activation (all are allowed).\n" - "Possible options are: vgname, vgname/lvname, @tag, @*\n" - "vgname is matched exactly and selects all LVs in the VG.\n" - "vgname/lvname is matched exactly and selects the LV.\n" - "@tag selects if tag matches a tag set on the LV or VG.\n" - "@* selects if a tag defined on the host is also set on\n" - "the LV or VG. See tags/hosttags.\n" - "If any host tags exist but volume_list is not defined,\n" - "a default single-entry list containing '@*' is assumed.\n" + "#\n" + "Accepted values:\n" + " vgname\n" + " The VG name is matched exactly and selects all LVs in the VG.\n" + " vgname/lvname\n" + " The VG name and LV name are matched exactly and selects the LV.\n" + " @tag\n" + " Selects an LV if the specified tag matches a tag set on the LV\n" + " or VG.\n" + " @*\n" + " Selects an LV if a tag defined on the host is also set on the LV\n" + " or VG. See tags/hosttags. If any host tags exist but volume_list\n" + " is not defined, a default single-entry list containing '@*' is\n" + " assumed.\n" "#\n" "Example\n" "volume_list = [ \"vg1\", \"vg2/lvol1\", \"@tag1\", \"@*\" ]\n" @@ -1080,43 +1125,64 @@ cfg_array(activation_volume_list_CFG, "volume_list", activation_CFG_SECTION, CFG cfg_array(activation_auto_activation_volume_list_CFG, "auto_activation_volume_list", activation_CFG_SECTION, CFG_ALLOW_EMPTY | CFG_DEFAULT_UNDEFINED, CFG_TYPE_STRING, NULL, vsn(2, 2, 97), NULL, 0, NULL, "Only LVs selected by this list are auto-activated.\n" - "This list works like volume_list, but it is used\n" - "only by auto-activation commands. It does not apply\n" - "to direct activation commands.\n" - "If this list is defined, an LV is only auto-activated\n" - "if it matches an entry in this list.\n" - "If this list is undefined, it imposes no limits\n" - "on LV auto-activation (all are allowed.)\n" - "If this list is defined and empty, i.e. \"[]\",\n" - "then no LVs are selected for auto-activation.\n" - "An LV that is selected by this list for\n" - "auto-activation, must also be selected by\n" - "volume_list (if defined) before it is activated.\n" - "Auto-activation is an activation command that\n" - "includes the 'a' argument: --activate ay or -a ay,\n" - "e.g. vgchange -a ay, or lvchange -a ay vgname/lvname.\n" - "The 'a' (auto) argument for auto-activation is\n" - "meant to be used by activation commands that are\n" - "run automatically by the system, as opposed to\n" - "LVM commands run directly by a user. A user may\n" - "also use the 'a' flag directly to perform auto-\n" - "activation.\n" - "An example of a system-generated auto-activation\n" - "command is 'pvscan --cache -aay' which is generated\n" - "when udev and lvmetad detect a new VG has appeared\n" - "on the system, and want LVs in it to be auto-activated.\n" - "Possible options are: vgname, vgname/lvname, @tag, @*\n" - "See volume_list for how these options are matched to LVs.\n") + "This list works like volume_list, but it is used only by\n" + "auto-activation commands. It does not apply to direct activation\n" + "commands. If this list is defined, an LV is only auto-activated\n" + "if it matches an entry in this list. If this list is undefined, it\n" + "imposes no limits on LV auto-activation (all are allowed.) If this\n" + "list is defined and empty, i.e. \"[]\", then no LVs are selected for\n" + "auto-activation. An LV that is selected by this list for\n" + "auto-activation, must also be selected by volume_list (if defined)\n" + "before it is activated. Auto-activation is an activation command that\n" + "includes the 'a' argument: --activate ay or -a ay. The 'a' (auto)\n" + "argument for auto-activation is meant to be used by activation\n" + "commands that are run automatically by the system, as opposed to LVM\n" + "commands run directly by a user. A user may also use the 'a' flag\n" + "directly to perform auto-activation. Also see pvscan(8) for more\n" + "information about auto-activation.\n" + "#\n" + "Accepted values:\n" + " vgname\n" + " The VG name is matched exactly and selects all LVs in the VG.\n" + " vgname/lvname\n" + " The VG name and LV name are matched exactly and selects the LV.\n" + " @tag\n" + " Selects an LV if the specified tag matches a tag set on the LV\n" + " or VG.\n" + " @*\n" + " Selects an LV if a tag defined on the host is also set on the LV\n" + " or VG. See tags/hosttags. If any host tags exist but volume_list\n" + " is not defined, a default single-entry list containing '@*' is\n" + " assumed.\n" + "#\n" + "Example\n" + "volume_list = [ \"vg1\", \"vg2/lvol1\", \"@tag1\", \"@*\" ]\n" + "#\n") cfg_array(activation_read_only_volume_list_CFG, "read_only_volume_list", activation_CFG_SECTION, CFG_ALLOW_EMPTY | CFG_DEFAULT_UNDEFINED, CFG_TYPE_STRING, NULL, vsn(2, 2, 89), NULL, 0, NULL, "LVs in this list are activated in read-only mode.\n" - "If this list is defined, each LV that is to be activated\n" - "is checked against this list, and if it matches, it is\n" - "activated in read-only mode.\n" - "This overrides the permission setting stored in the\n" - "metadata, e.g. from --permission rw.\n" - "Possible options are: vgname, vgname/lvname, @tag, @*\n" - "See volume_list for how these options are matched to LVs.\n") + "If this list is defined, each LV that is to be activated is checked\n" + "against this list, and if it matches, it is activated in read-only\n" + "mode. This overrides the permission setting stored in the metadata,\n" + "e.g. from --permission rw.\n" + "#\n" + "Accepted values:\n" + " vgname\n" + " The VG name is matched exactly and selects all LVs in the VG.\n" + " vgname/lvname\n" + " The VG name and LV name are matched exactly and selects the LV.\n" + " @tag\n" + " Selects an LV if the specified tag matches a tag set on the LV\n" + " or VG.\n" + " @*\n" + " Selects an LV if a tag defined on the host is also set on the LV\n" + " or VG. See tags/hosttags. If any host tags exist but volume_list\n" + " is not defined, a default single-entry list containing '@*' is\n" + " assumed.\n" + "#\n" + "Example\n" + "volume_list = [ \"vg1\", \"vg2/lvol1\", \"@tag1\", \"@*\" ]\n" + "#\n") cfg(activation_mirror_region_size_CFG, "mirror_region_size", activation_CFG_SECTION, 0, CFG_TYPE_INT, DEFAULT_RAID_REGION_SIZE, vsn(1, 0, 0), NULL, vsn(2, 2, 99), "This has been replaced by the activation/raid_region_size setting.\n", @@ -1140,62 +1206,70 @@ cfg(activation_error_when_full_CFG, "error_when_full", activation_CFG_SECTION, C cfg(activation_readahead_CFG, "readahead", activation_CFG_SECTION, 0, CFG_TYPE_STRING, DEFAULT_READ_AHEAD, vsn(1, 0, 23), NULL, 0, NULL, "Setting to use when there is no readahead setting in metadata.\n" - "Possible options are: none, auto.\n" - "none - Disable readahead.\n" - "auto - Use default value chosen by kernel.\n") + "#\n" + "Accepted values:\n" + " none\n" + " Disable readahead.\n" + " auto\n" + " Use default value chosen by kernel.\n" + "#\n") cfg(activation_raid_fault_policy_CFG, "raid_fault_policy", activation_CFG_SECTION, 0, CFG_TYPE_STRING, DEFAULT_RAID_FAULT_POLICY, vsn(2, 2, 89), NULL, 0, NULL, "Defines how a device failure in a RAID LV is handled.\n" "This includes LVs that have the following segment types:\n" "raid1, raid4, raid5*, and raid6*.\n" - "If a device in the LV fails, the policy determines the\n" - "steps perfomed by dmeventd automatically, and the steps\n" - "perfomed by 'lvconvert --repair --use-policies' run manually.\n" + "If a device in the LV fails, the policy determines the steps\n" + "performed by dmeventd automatically, and the steps perfomed by the\n" + "manual command lvconvert --repair --use-policies.\n" "Automatic handling requires dmeventd to be monitoring the LV.\n" - "Possible options are: warn, allocate.\n" - "warn - Use the system log to warn the user that a device\n" - "in the RAID LV has failed. It is left to the user to run\n" - "'lvconvert --repair' manually to remove or replace the failed\n" - "device. As long as the number of failed devices does not\n" - "exceed the redundancy of the logical volume (1 device for\n" - "raid4/5, 2 for raid6, etc) the LV will remain usable.\n" - "allocate - Attempt to use any extra physical volumes in the\n" - "volume group as spares and replace faulty devices.\n") + "#\n" + "Accepted values:\n" + " warn\n" + " Use the system log to warn the user that a device in the RAID LV\n" + " has failed. It is left to the user to run lvconvert --repair\n" + " manually to remove or replace the failed device. As long as the\n" + " number of failed devices does not exceed the redundancy of the LV\n" + " (1 device for raid4/5, 2 for raid6), the LV will remain usable.\n" + " allocate\n" + " Attempt to use any extra physical volumes in the VG as spares and\n" + " replace faulty devices.\n" + "#\n") cfg_runtime(activation_mirror_image_fault_policy_CFG, "mirror_image_fault_policy", activation_CFG_SECTION, 0, CFG_TYPE_STRING, vsn(2, 2, 57), 0, NULL, "Defines how a device failure in a 'mirror' LV is handled.\n" - "An LV with the 'mirror' segment type is composed of mirror\n" - "images (copies) and a mirror log.\n" - "A disk log ensures that a mirror LV does not need to be\n" - "re-synced (all copies made the same) every time a machine\n" - "reboots or crashes.\n" - "If a device in the LV fails, this policy determines the\n" - "steps perfomed by dmeventd automatically, and the steps\n" - "performed by 'lvconvert --repair --use-policies' run manually.\n" + "An LV with the 'mirror' segment type is composed of mirror images\n" + "(copies) and a mirror log. A disk log ensures that a mirror LV does\n" + "not need to be re-synced (all copies made the same) every time a\n" + "machine reboots or crashes. If a device in the LV fails, this policy\n" + "determines the steps perfomed by dmeventd automatically, and the steps\n" + "performed by the manual command lvconvert --repair --use-policies.\n" "Automatic handling requires dmeventd to be monitoring the LV.\n" - "Possible options are: remove, allocate, allocate_anywhere.\n" - "remove - Simply remove the faulty device and run without it.\n" - "If the log device fails, the mirror would convert to using\n" - "an in-memory log. This means the mirror will not\n" - "remember its sync status across crashes/reboots and\n" - "the entire mirror will be re-synced.\n" - "If a mirror image fails, the mirror will convert to a\n" - "non-mirrored device if there is only one remaining good copy.\n" - "allocate - Remove the faulty device and try to allocate space\n" - "on a new device to be a replacement for the failed device.\n" - "Using this policy for the log is fast and maintains the\n" - "ability to remember sync state through crashes/reboots.\n" - "Using this policy for a mirror device is slow, as it\n" - "requires the mirror to resynchronize the devices, but it\n" - "will preserve the mirror characteristic of the device.\n" - "This policy acts like 'remove' if no suitable device and\n" - "space can be allocated for the replacement.\n" - "allocate_anywhere - Not yet implemented. Useful to place\n" - "the log device temporarily on the same physical volume as\n" - "one of the mirror images. This policy is not recommended\n" - "for mirror devices since it would break the redundant nature\n" - "of the mirror. This policy acts like 'remove' if no suitable\n" - "device and space can be allocated for the replacement.\n") + "#\n" + "Accepted values:\n" + " remove\n" + " Simply remove the faulty device and run without it. If the log\n" + " device fails, the mirror would convert to using an in-memory log.\n" + " This means the mirror will not remember its sync status across\n" + " crashes/reboots and the entire mirror will be re-synced. If a\n" + " mirror image fails, the mirror will convert to a non-mirrored\n" + " device if there is only one remaining good copy.\n" + " allocate\n" + " Remove the faulty device and try to allocate space on a new\n" + " device to be a replacement for the failed device. Using this\n" + " policy for the log is fast and maintains the ability to remember\n" + " sync state through crashes/reboots. Using this policy for a\n" + " mirror device is slow, as it requires the mirror to resynchronize\n" + " the devices, but it will preserve the mirror characteristic of\n" + " the device. This policy acts like 'remove' if no suitable device\n" + " and space can be allocated for the replacement.\n" + " allocate_anywhere\n" + " Not yet implemented. Useful to place the log device temporarily\n" + " on the same physical volume as one of the mirror images. This\n" + " policy is not recommended for mirror devices since it would break\n" + " the redundant nature of the mirror. This policy acts like\n" + " 'remove' if no suitable device and space can be allocated for the\n" + " replacement.\n" + "#\n") cfg(activation_mirror_log_fault_policy_CFG, "mirror_log_fault_policy", activation_CFG_SECTION, 0, CFG_TYPE_STRING, DEFAULT_MIRROR_LOG_FAULT_POLICY, vsn(1, 2, 18), NULL, 0, NULL, "Defines how a device failure in a 'mirror' log LV is handled.\n" @@ -1308,21 +1382,23 @@ cfg(activation_auto_set_activation_skip_CFG, "auto_set_activation_skip", activat cfg(activation_mode_CFG, "activation_mode", activation_CFG_SECTION, 0, CFG_TYPE_STRING, DEFAULT_ACTIVATION_MODE, vsn(2,2,108), NULL, 0, NULL, "How LVs with missing devices are activated.\n" - "Possible options are: complete, degraded, partial.\n" - "complete - Only allow activation of an LV if all of\n" - "the Physical Volumes it uses are present. Other PVs\n" - "in the Volume Group may be missing.\n" - "degraded - Like complete, but additionally RAID LVs of\n" - "segment type raid1, raid4, raid5, radid6 and raid10 will\n" - "be activated if there is no data loss, i.e. they have\n" - "sufficient redundancy to present the entire addressable\n" - "range of the Logical Volume.\n" - "partial - Allows the activation of any LV even if a\n" - "missing or failed PV could cause data loss with a\n" - "portion of the Logical Volume inaccessible.\n" - "This setting should not normally be used, but may\n" - "sometimes assist with data recovery.\n" - "The '--activationmode' option overrides this setting.\n") + "The '--activationmode' option overrides this setting.\n" + "#\n" + "Accepted values:\n" + " complete\n" + " Only allow activation of an LV if all of the Physical Volumes it\n" + " uses are present. Other PVs in the Volume Group may be missing.\n" + " degraded\n" + " Like complete, but additionally RAID LVs of segment type raid1,\n" + " raid4, raid5, radid6 and raid10 will be activated if there is no\n" + " data loss, i.e. they have sufficient redundancy to present the\n" + " entire addressable range of the Logical Volume.\n" + " partial\n" + " Allows the activation of any LV even if a missing or failed PV\n" + " could cause data loss with a portion of the LV inaccessible.\n" + " This setting should not normally be used, but may sometimes\n" + " assist with data recovery.\n" + "#\n") cfg_array(activation_lock_start_list_CFG, "lock_start_list", activation_CFG_SECTION, CFG_ALLOW_EMPTY|CFG_DEFAULT_UNDEFINED, CFG_TYPE_STRING, NULL, vsn(2, 2, 124), NULL, 0, NULL, "Locking is started only for VGs selected by this list.\n" @@ -1334,13 +1410,18 @@ cfg_array(activation_auto_lock_start_list_CFG, "auto_lock_start_list", activatio cfg(metadata_pvmetadatacopies_CFG, "pvmetadatacopies", metadata_CFG_SECTION, CFG_ADVANCED | CFG_DEFAULT_COMMENTED, CFG_TYPE_INT, DEFAULT_PVMETADATACOPIES, vsn(1, 0, 0), NULL, 0, NULL, "Number of copies of metadata to store on each PV.\n" - "Possible options are: 0, 1, 2.\n" - "If set to 2, two copies of the VG metadata are stored on\n" - "the PV, one at the front of the PV, and one at the end.\n" - "If set to 1, one copy is stored at the front of the PV.\n" - "If set to 0, no copies are stored on the PV. This may\n" - "be useful with VGs containing large numbers of PVs.\n" - "The '--pvmetadatacopies' option overrides this setting.\n") + "The '--pvmetadatacopies' option overrides this setting.\n" + "#\n" + "Accepted values:\n" + " 2\n" + " Two copies of the VG metadata are stored on the PV, one at the\n" + " front of the PV, and one at the end.\n" + " 1\n" + " One copy of VG metadata is stored at the front of the PV.\n" + " 0\n" + " No copies of VG metadata are stored on the PV. This may be\n" + " useful for VGs containing large numbers of PVs.\n" + "#\n") cfg(metadata_vgmetadatacopies_CFG, "vgmetadatacopies", metadata_CFG_SECTION, CFG_DEFAULT_COMMENTED, CFG_TYPE_INT, DEFAULT_VGMETADATACOPIES, vsn(2, 2, 69), NULL, 0, NULL, "Number of copies of metadata to maintain for each VG.\n" @@ -1438,75 +1519,134 @@ cfg(report_binary_values_as_numeric_CFG, "binary_values_as_numeric", report_CFG_ cfg(report_time_format_CFG, "time_format", report_CFG_SECTION, CFG_PROFILABLE | CFG_DEFAULT_COMMENTED, CFG_TYPE_STRING, DEFAULT_TIME_FORMAT, vsn(2, 2, 123), NULL, 0, NULL, "Set time format for fields reporting time values.\n" "Format specification is a string which may contain special character\n" - "sequences and ordinary character sequences. Ordinary character sequences\n" - "are copied verbatim. Each special character sequence is introduced by \'%\'\n" - "character and such sequence is then substituted with a value as described below:\n" - "\%a The abbreviated name of the day of the week according to the\n" - " current locale.\n" - "\%A The full name of the day of the week according to the current locale.\n" - "\%b The abbreviated month name according to the current locale.\n" - "\%B The full month name according to the current locale.\n" - "\%c The preferred date and time representation for the current locale. (alt E)\n" - "\%C The century number (year/100) as a 2-digit integer. (alt E)\n" - "\%d The day of the month as a decimal number (range 01 to 31). (alt O)\n" - "\%D Equivalent to \%m/\%d/\%y. (For Americans only. Americans should\n" - " note that in other countries\%d/\%m/\%y is rather common. This means\n" - " that in international context this format is ambiguous and should not\n" - " be used.\n" - "\%e Like \%d, the day of the month as a decimal number, but a leading zero\n" - " is replaced by a space. (alt O)\n" - "\%E Modifier: use alternative local-dependent representation if available.\n" - "\%F Equivalent to \%Y-\%m-\%d (the ISO 8601 date format).\n" - "\%G The ISO 8601 week-based year with century as adecimal number. The 4-digit\n" - " year corresponding to the ISO week number (see \%V). This has the same\n" - " format and value as \%Y, except that if the ISO week number belongs to\n" - " the previous or next year, that year is used instead.\n" - "\%g Like \%G, but without century, that is, with a 2-digit year (00-99).\n" - "\%h Equivalent to \%b.\n" - "\%H The hour as a decimal number using a 24-hour clock (range 00 to 23). (alt O)\n" - "\%I The hour as a decimal number using a 12-hour clock (range 01 to 12). (alt O)\n" - "\%j The day of the year as a decimal number (range 001 to 366).\n" - "\%k The hour (24-hour clock) as a decimal number (range 0 to 23);\n" - " single digits are preceded by a blank. (See also \%H.)\n" - "\%l The hour (12-hour clock) as a decimal number (range 1 to 12);\n" - " single digits are preceded by a blank. (See also \%I.)\n" - "\%m The month as a decimal number (range 01 to 12). (alt O)\n" - "\%M The minute as a decimal number (range 00 to 59). (alt O)\n" - "\%O Modifier: use alternative numeric symbols.\n" - "\%p Either \"AM\" or \"PM\" according to the given time value,\n" - " or the corresponding strings for the current locale. Noon is\n" - " treated as \"PM\" and midnight as \"AM\".\n" - "\%P Like \%p but in lowercase: \"am\" or \"pm\" or a corresponding\n" - " string for the current locale.\n" - "\%r The time in a.m. or p.m. notation. In the POSIX locale this is\n" - " equivalent to \%I:\%M:\%S \%p.\n" - "\%R The time in 24-hour notation (\%H:\%M). For a version including\n" - " the seconds, see \%T below.\n" - "\%s The number of seconds since the Epoch, 1970-01-01 00:00:00 +0000 (UTC)\n" - "\%S The second as a decimal number (range 00 to 60).\n" - " (The range is up to 60 to allow for occasional leap seconds.) (alt O)\n" - "\%t A tab character.\n" - "\%T The time in 24-hour notation (\%H:\%M:\%S).\n" - "\%u The day of the week as a decimal, range 1 to 7, Monday being 1.\n" - " See also \%w. (alt O)\n" - "\%U The week number of the current year as a decimal number,\n" - " range 00 to 53, starting with the first Sunday as the first\n" - " day of week 01. See also \%V and \%W. (alt O)\n" - "\%V The ISO 8601 week number of the current year as a decimal number,\n" - " range 01 to 53, where week 1 is the first week that has at least 4 days\n" - " in the new year. See also \%U and \%W. (alt O)\n" - "\%w The day of the week as a decimal, range 0 to 6, Sunday being 0.\n" - " See also \%u. (alt O)\n" - "\%W The week number of the current year as a decimal number, range 00 to 53,\n" - " starting with the first Monday as the first day of week 01. (alt O)\n" - "\%x The preferred date representation for the current locale without the time. (alt E)\n" - "\%X The preferred time representation for the current locale without the date. (alt E)\n" - "\%y The year as a decimal number without a century (range 00 to 99). (alt E, alt O)\n" - "\%Y The year as a decimal number including the century. (alt E)\n" - "\%z The +hhmm or -hhmm numeric timezone (that is, the hour and minute\n" - " offset from UTC).\n" - "\%Z The timezone name or abbreviation.\n" - "\%\% A literal '\%' character.\n") + "sequences and ordinary character sequences. Ordinary character\n" + "sequences are copied verbatim. Each special character sequence is\n" + "introduced by th e\'%\' character and such sequence is then\n" + "substituted with a value as described below.\n" + "#\n" + "Accepted values:\n" + " \%a\n" + " The abbreviated name of the day of the week according to the\n" + " current locale.\n" + " \%A\n" + " The full name of the day of the week according to the current\n" + " locale.\n" + " \%b\n" + " The abbreviated month name according to the current locale.\n" + " \%B\n" + " The full month name according to the current locale.\n" + " \%c\n" + " The preferred date and time representation for the current\n" + " locale (alt E)\n" + " \%C\n" + " The century number (year/100) as a 2-digit integer. (alt E)\n" + " \%d\n" + " The day of the month as a decimal number (range 01 to 31).\n" + " (alt O)\n" + " \%D\n" + " Equivalent to \%m/\%d/\%y. (For Americans only. Americans should\n" + " note that in other countries\%d/\%m/\%y is rather common. This\n" + " means that in international context this format is ambiguous and\n" + " should not be used.\n" + " \%e\n" + " Like \%d, the day of the month as a decimal number, but a leading\n" + " zero is replaced by a space. (alt O)\n" + " \%E\n" + " Modifier: use alternative local-dependent representation if\n" + " available.\n" + " \%F\n" + " Equivalent to \%Y-\%m-\%d (the ISO 8601 date format).\n" + " \%G\n" + " The ISO 8601 week-based year with century as adecimal number.\n" + " The 4-digit year corresponding to the ISO week number (see \%V).\n" + " This has the same format and value as \%Y, except that if the\n" + " ISO week number belongs to the previous or next year, that year\n" + " is used instead.\n" + " \%g\n" + " Like \%G, but without century, that is, with a 2-digit year\n" + " (00-99).\n" + " \%h\n" + " Equivalent to \%b.\n" + " \%H\n" + " The hour as a decimal number using a 24-hour clock\n" + " (range 00 to 23). (alt O)\n" + " \%I\n" + " The hour as a decimal number using a 12-hour clock\n" + " (range 01 to 12). (alt O)\n" + " \%j\n" + " The day of the year as a decimal number (range 001 to 366).\n" + " \%k\n" + " The hour (24-hour clock) as a decimal number (range 0 to 23);\n" + " single digits are preceded by a blank. (See also \%H.)\n" + " \%l\n" + " The hour (12-hour clock) as a decimal number (range 1 to 12);\n" + " single digits are preceded by a blank. (See also \%I.)\n" + " \%m\n" + " The month as a decimal number (range 01 to 12). (alt O)\n" + " \%M\n" + " The minute as a decimal number (range 00 to 59). (alt O)\n" + " \%O\n" + " Modifier: use alternative numeric symbols.\n" + " \%p\n" + " Either \"AM\" or \"PM\" according to the given time value,\n" + " or the corresponding strings for the current locale. Noon is\n" + " treated as \"PM\" and midnight as \"AM\".\n" + " \%P\n" + " Like \%p but in lowercase: \"am\" or \"pm\" or a corresponding\n" + " string for the current locale.\n" + " \%r\n" + " The time in a.m. or p.m. notation. In the POSIX locale this is\n" + " equivalent to \%I:\%M:\%S \%p.\n" + " \%R\n" + " The time in 24-hour notation (\%H:\%M). For a version including\n" + " the seconds, see \%T below.\n" + " \%s\n" + " The number of seconds since the Epoch,\n" + " 1970-01-01 00:00:00 +0000 (UTC)\n" + " \%S\n" + " The second as a decimal number (range 00 to 60). (The range is\n" + " up to 60 to allow for occasional leap seconds.) (alt O)\n" + " \%t\n" + " A tab character.\n" + " \%T\n" + " The time in 24-hour notation (\%H:\%M:\%S).\n" + " \%u\n" + " The day of the week as a decimal, range 1 to 7, Monday being 1.\n" + " See also \%w. (alt O)\n" + " \%U\n" + " The week number of the current year as a decimal number,\n" + " range 00 to 53, starting with the first Sunday as the first\n" + " day of week 01. See also \%V and \%W. (alt O)\n" + " \%V\n" + " The ISO 8601 week number of the current year as a decimal number,\n" + " range 01 to 53, where week 1 is the first week that has at least\n" + " 4 days in the new year. See also \%U and \%W. (alt O)\n" + " \%w\n" + " The day of the week as a decimal, range 0 to 6, Sunday being 0.\n" + " See also \%u. (alt O)\n" + " \%W\n" + " The week number of the current year as a decimal number,\n" + " range 00 to 53, starting with the first Monday as the first day\n" + " of week 01. (alt O)\n" + " \%x\n" + " The preferred date representation for the current locale without\n" + " the time. (alt E)\n" + " \%X\n" + " The preferred time representation for the current locale without\n" + " the date. (alt E)\n" + " \%y\n" + " The year as a decimal number without a century (range 00 to 99).\n" + " (alt E, alt O)\n" + " \%Y\n" + " The year as a decimal number including the century. (alt E)\n" + " \%z\n" + " The +hhmm or -hhmm numeric timezone (that is, the hour and minute\n" + " offset from UTC).\n" + " \%Z\n" + " The timezone name or abbreviation.\n" + " \%\%\n" + " A literal '\%' character.\n" + "#\n") cfg(report_devtypes_sort_CFG, "devtypes_sort", report_CFG_SECTION, CFG_PROFILABLE | CFG_DEFAULT_COMMENTED, CFG_TYPE_STRING, DEFAULT_DEVTYPES_SORT, vsn(2, 2, 101), NULL, 0, NULL, "List of columns to sort by when reporting 'lvm devtypes' command.\n" |