# lvm.conf

## NAME



           lvm.conf — Configuration file for LVM2
    


## SYNOPSIS



           _/etc/lvm/lvm.conf_
    


## DESCRIPTION



           **lvm.conf** is loaded during the initialisation phase of lvm(8).
           This file can in turn lead to other files being loaded - settings
           read in later override earlier settings.  File timestamps are
           checked between commands and if any have changed, all the files
           are reloaded.
    
           For a description of each lvm.conf(5) setting, run:
    
           **lvmconfig --typeconfig default --withcomments --withspaces**
    
           The settings defined in lvm.conf can be overridden by any of these
           extended configuration methods:
    
           **direct config override on command line**
                  The **--config ConfigurationString** command line option takes
                  the ConfigurationString as direct string representation of
                  the configuration to override the existing configuration.
                  The ConfigurationString is of exactly the same format as
                  used in any LVM configuration file.
    
           **profile config**
                  A profile is a set of selected customizable configuration
                  settings that are aimed to achieve a certain
                  characteristics in various environments or uses. It's used
                  to override existing configuration.  Normally, the name of
                  the profile should reflect that environment or use.
    
           There are two groups of profiles recognised: **command profiles** and
           **metadata profiles**.
    
           The **command profile** is used to override selected configuration
           settings at global LVM command level - it is applied at the very
           beginning of LVM command execution and it is used throughout the
           whole time of LVM command execution. The command profile is
           applied by using the **--commandprofile ProfileName** command line
           option that is recognised by all LVM2 commands.
    
           The **metadata profile** is used to override selected configuration
           settings at Volume Group/Logical Volume level - it is applied
           independently for each Volume Group/Logical Volume that is being
           processed. As such, each Volume Group/Logical Volume can store the
           profile name used in its metadata so next time the Volume
           Group/Logical Volume is processed, the profile is applied
           automatically. If Volume Group and any of its Logical Volumes have
           different profiles defined, the profile defined for the Logical
           Volume is preferred. The metadata profile can be attached/detached
           by using the **lvchange** and **vgchange** commands and their
           **--metadataprofile ProfileName** and **--detachprofile** options or the
           **--metadataprofile** option during creation when using **vgcreate** or
           **lvcreate** command.  The **vgs** and **lvs** reporting commands provide **-o**
           **vg_profile** and **-o lv_profile** output options to show the metadata
           profile currently attached to a Volume Group or a Logical Volume.
    
           The set of options allowed for command profiles is mutually
           exclusive when compared to the set of options allowed for metadata
           profiles. The settings that belong to either of these two sets
           can't be mixed together and LVM tools will reject such profiles.
    
           LVM itself provides a few predefined configuration profiles.
           Users are allowed to add more profiles with different values if
           needed.  For this purpose, there's the
           **command_profile_template.profile**(for command profiles) and
           **metadata_profile_template.profile**(for metadata profiles) which
           contain all settings that are customizable by profiles of certain
           type. Users are encouraged to copy these template profiles and
           edit them as needed. Alternatively, the **lvmconfig --file**
           **< ProfileName.profile> --type profilable-command <section> **or
           **lvmconfig --file <ProfileName.profile> --type profilable-metadata**
           **< section> **can be used to generate a configuration with profilable
           settings in either of the type for given section and save it to
           new ProfileName.profile (if the section is not specified, all
           profilable settings are reported).
    
           The profiles are stored in _/etc/lvm/profile_ directory by default.
           This location can be changed by using the **config/profile_dir**
           setting.  Each profile configuration is stored in
           **ProfileName.profile** file in the profile directory. When
           referencing the profile, the **.profile** suffix is left out.
    
           **tag config**
                  See **tags** configuration setting description below.
    
           When several configuration methods are used at the same time and
           when LVM looks for the value of a particular setting, it traverses
           this **config cascade** from left to right:
    
           **direct config override on command line** → **command profile config** →
           **metadata profile config** → **tag config** → **lvmlocal.conf** → **lvm.conf**
    
           No part of this cascade is compulsory. If there's no setting value
           found at the end of the cascade, a default value is used for that
           setting.  Use **lvmconfig** to check what settings are in use and what
           the default values are.
    


## SYNTAX



           This section describes the configuration file syntax.
    
           Whitespace is not significant unless it is within quotes.  This
           provides a wide choice of acceptable indentation styles.  Comments
           begin with # and continue to the end of the line.  They are
           treated as whitespace.
    
           Here is an informal grammar:
    
           **file** = **value** *
                  A configuration file consists of a set of values.
    
           **value** = **section** | **assignment**
                  A value can either be a new section, or an assignment.
    
           **section** = **identifier** '**{** ' **value** * '**}** '
                  A section groups associated values together. If the same
                  section is encountered multiple times, the contents of all
                  instances are concatenated together in the order of
                  appearance.
                  It is denoted by a name and delimited by curly brackets.
                  e.g.
                  backup {
                         ...
                  }
    
           **assignment** = **identifier** '**=** ' ( **array** | **type**)
                  An assignment associates a type with an identifier. If the
                  identifier contains forward slashes, those are interpreted
                  as path delimiters. The statement **section/key = value** is
                  equivalent to **section { key = value }**. If multiple
                  instances of the same key are encountered, only the last
                  value is used (and a warning is issued).
                  e.g.   **level = 7**
    
           **array** =  '**[** ' ( **type** '**,** ')* **type** '**]** ' | '**[** ' '**]** '
                  Inhomogeneous arrays are supported.
                  Elements must be separated by commas.
                  An empty array is acceptable.
                  An array with one element will be correctly interpreted if
                  the array brackets are missing.
    
           **type** = **integer** |**float** |**string integer** = [**0** -**9**]*
                  **float** = [**0** -**9**]*'**.** '[**0** -**9**]*
                  **string** = '**"** ' .* '**"** '
    
                  Strings with spaces must be enclosed in double quotes,
                  single words that start with a letter can be left unquoted.
    


## SETTINGS



           The **lvmconfig** command prints the LVM configuration settings in
           various ways.  See the man page lvmconfig(8).
    
           Command to print a list of all possible config settings, with
           their default values:
           **lvmconfig --type default**
    
           Command to print a list of all possible config settings, with
           their default values, and a full description of each as a comment:
           **lvmconfig --type default --withcomments**
    
           Command to print a list of all possible config settings, with
           their current values (configured, non-default values are shown):
           **lvmconfig --type current**
    
           Command to print all config settings that have been configured
           with a different value than the default (configured, non-default
           values are shown):
           **lvmconfig --type diff**
    
           Command to print a single config setting, with its default value,
           and a full description, where "Section" refers to the config
           section, e.g. global, and "Setting" refers to the name of the
           specific setting, e.g. umask:
           **lvmconfig --type default --withcomments Section/Setting**
    


## FILES



           _/etc/lvm/lvm.conf_
           _/etc/lvm/lvmlocal.conf_
           _/etc/lvm/archive_
           _/etc/lvm/backup_
           _/etc/lvm/cache/.cache_
           _/etc/lvm/profile_
           _/run/lock/lvm_
    


* * *