отчеты LVM и связанные функции  (LVM reporting and related features)
  
Использование (Usage)
Categorization based on reporting facility
       Based on functionality, commands which make use of the reporting
       infrastructure are divided in two groups:
       Report-oriented commands
              These commands inform about current LVM state and their
              primary role is to display this information in compendious
              way. To make a distinction, we will name this report as
              main report. The set of report-only commands include: pvs,
              vgs, lvs, pvdisplay, vgdisplay, lvdisplay, lvm devtypes,
              lvm fullreport.  For further information about main
              report, see Main report specifics.
       Processing-oriented commands
              These commands are responsible for changing LVM state and
              they do not contain any main report as identified for
              report-oriented commands, they only perform some kind of
              processing. The set of processing-oriented commands
              includes: pvcreate, vgcreate, lvcreate, pvchange,
              vgchange, lvchange, pvremove, vgremove, lvremove,
              pvresize, vgextend, vgreduce, lvextend, lvreduce,
              lvresize, lvrename, pvscan, vgscan, lvscan, pvmove,
              vgcfgbackup, vgck, vgconvert, vgexport, vgimport,
              vgmknodes.
       If enabled, so called log report is either displayed solely (for
       processing-oriented commands) or in addition to main report (for
       report-oriented commands). The log report contains a log of
       operations, messages and per-object status with complete object
       identification collected during LVM command execution. See Log
       report specifics for more information about this report type.
   Terms
       When describing reporting functionality and features in this
       text, we will use terms row and column. By row we mean series of
       values reported for single entity (for example single PV, VG or
       LV). Each value from the row then belongs to a column of certain
       type. The columns have column headings which are short
       descriptions for the columns. The columns are referenced by
       column names. Please note that this text is also using term field
       interchangeably with the term column. Most of the time the term
       columns is abbreviated as col in configuration.
   Common report configuration settings and command line options
       There are common configuration settings and command line options
       which apply to both main report and log report. Following lists
       contain all of them, separated into groups based on their use.
   Common configuration settings
       Changing report output format, composition and other output
       modifiers:
              - global/suffix
              - global/units
              - report/aligned
              - report/binary_values_as_numeric
              - report/columns_as_rows
              - report/compact_output
              - report/compact_output_cols
              - report/headings
              - report/list_item_separator
              - report/mark_hidden_devices
              - report/output_format
              - report/prefixes
              - report/quoted
              - report/separator
              - report/time_format
              - report/two_word_unknown_device
       Special settings
              - report/buffered
       This document does not describe these settings in more detail -
       if you need detailed information, including values which are
       accepted for the settings, please run lvmconfig --type default
       --withcomments <setting>. There are more configuration settings
       in addition to the common set listed above, but they are specific
       to either main report or log report, see main report specifics
       and log report specifics for these settings. Besides configuring
       reports globally by using configuration settings, there are also
       command line options you can use to extend, override or further
       specify the report configuration.
   Common command line options
       Definition of the set of fields to use
              -o|--options FieldSet
                     Field set to use. See main report specifics and log
                     report specifics for information about field sets
                     configured with global configuration settings that
                     this option overrides.
              -o|--options +FieldSet
                     Fields to include to current field set. See main
                     report specifics and log report specifics for
                     information about field sets configured with global
                     configuration settings that this option extends.
              -o|--options -FieldSet
                     Fields to exclude from current field set. See main
                     report specifics and log report specifics for
                     information about field sets configured with global
                     configuration settings that this option reduces.
              -o|--options #FieldSet
                     Compaction of unused fields. Overrides
                     report/compact_output_cols configuration setting.
       Sorting
              -O|--sort +FieldSet
                     Fields to sort by in ascending order. See main
                     report specifics and log report specifics for
                     information about field sets configured with global
                     configuration settings that this option overrides.
              -O|--sort -FieldSet
                     Fields to sort by in descending order. See main
                     report specifics and log report specifics for
                     information about fields sets configured with
                     global configuration settings that this options
                     overrides.
       Selection
              -S|--select Selection
                     Define selection criteria for report output. For
                     log report, this also overrides
                     log/command_log_selection configuration setting,
                     see also log report specifics.
       Changing output format and composition
              --reportformat
                     Overrides report/output_format configuration
                     setting.
              --aligned
                     Overrides report/aligned configuration setting.
              --binary
                     Overrides report/binary_values_as_numeric
                     configuration setting.
              --nameprefixes
                     Overrides report/prefixes configuration setting.
              --noheadings
                     Overrides report/noheadings configuration setting.
              --nosuffix
                     Overrides global/suffix configuration setting.
              --rows Overrides report/columns_as_rows configuration
                     setting.
              --separator
                     Overrides report/separator configuration setting.
              --units
                     Overrides global/units configuration setting.
              --unquoted
                     Overrides report/quoted configuration setting.
       Special options
              --configreport ReportName
                     This defines the ReportName for which any
                     subsequent -o|--columns, -O|--sort or -S|--select
                     applies to. See also Main report specifics and Log
                     report specifics for possible ReportName values.
              --logonly
                     When an LVM command contains both main report and
                     log report, this option suppresses the main report
                     output and it causes the log report output to be
                     displayed only.
              --unbuffered
                     Overrides report/buffered configuration setting.
       The FieldSet mentioned in the lists above is a set of field names
       where each field name is delimited by "," character. Field set
       definition, sorting and selection may be repeated on command line
       (-o+/-o- includes/excludes fields to/from current list, for all
       the other repeatable options, the last value typed for the option
       on the command line is used). The Selection is a string with
       selection criteria, see also Selection paragraph below for more
       information about constructing these criteria.
   Main report specifics
       The main report currently encompasses these distinct subtypes,
       referenced by their name - ReportName as listed below. The
       command in parenthesis is representative command that uses the
       main report subtype by default.  Each subtype has its own
       configuration setting for global field set definition as well as
       sort field definition (listed below each individual ReportName):
              pv     representing report about Physical Volumes (pvs)
                     - report/pvs_cols
                     - report/pvs_sort
              pvseg  representing report about Physical Volume Segments
                     (pvs --segments)
                     - report/pvseg_cols
                     - report/pvseg_sort
              vg     representing report about Volume Groups (vgs)
                     - report/vgs_cols
                     - report/vgs_sort
              lv     representing report about Logical Volumes (lvs)
                     - report/lvs_cols
                     - report/lvs_sort
              seg    representing report about Logical Volume Segments
                     (lvs --segments)
                     - report/segs_cols
                     - report/segs_sort
              full   representing report combining all of the above as a
                     whole (lvm fullreport)
                     - report/pvs_cols_full
                     - report/pvs_sort_full
                     - report/pvsegs_cols_full
                     - report/pvseg_sort_full
                     - report/vgs_cols_full
                     - report/vgs_sort_full
                     - report/lvs_cols_full
                     - report/lvs_sort_full
                     - report/segs_cols_full
                     - report/segs_sort_full
              devtype
                     representing report about device types
                     (lvm devtypes)
                     - report/devtypes_cols
                     - report/devtypes_sort
       Use pvs, vgs, lvs -o help or lvm devtypes -o help to get complete
       list of fields that you can use for main report. The list of
       fields in the help output is separated in groups based on which
       report type they belong to.  Note that LVM can change final
       report type used if fields from different groups are combined
       together. Some of these combinations are not allowed in which
       case LVM will issue an error.
       For all main report subtypes except full, it's not necessary to
       use --configreport ReportName to denote which report any
       subsequent -o, -O or -S option applies to as they always apply to
       the single main report type. Currently, lvm fullreport is the
       only command that includes more than one main report subtype.
       Therefore, the --configreport is particularly suitable for the
       full report if you need to configure each of its subreports in a
       different way.
   Log report specifics
       You can enable log report with log/report_command_log
       configuration setting - this functionality is disabled by
       default. The log report contains a log collected during LVM
       command execution and then the log is displayed just like any
       other report known from main report. There is only one log report
       subtype as shown below together with related configuration
       settings for fields, sorting and selection:
              log    representing log report
                     - log/command_log_cols
                     - log/command_log_sort
                     - log/command_log_selection
       You always need to use --configreport log together with
       -o|--options, -O|--sort or -S|--selection to override
       configuration settings directly on command line for log report.
       When compared to main report, in addition to usual configuration
       settings for report fields and sorting, the log report has also
       configuration option for selection -
       report/command_log_selection. This configuration setting is
       provided for convenience so it's not necessary to use -S|--select
       on command line each time an LVM command is executed and we need
       the same selection criteria to be applied for log report. Default
       selection criteria used for log report are
       log/command_log_selection="!(log_type=status &&
       message=success)".  This means that, by default, log report
       doesn't display status messages about successful operation and it
       displays only rows with error, warning, print-type messages and
       messages about failure states (for more information, see log
       report content below).
       Log report coverage
       Currently, when running LVM commands directly (not in LVM shell),
       the log report covers command's processing stage which is the
       moment when LVM entities are iterated and processed one by one.
       It does not cover any command initialization nor command
       finalization stage. If there is any message issued out of log
       report's coverage range, such message goes directly to output,
       bypassing the log report. By default, that is standard error
       output for error and warning messages and standard output for
       common print-like messages.
       When running LVM commands in LVM shell, the log report covers the
       whole LVM command's execution, including command's processing as
       well as initialization and finalization stage. So from this point
       of view, the log report coverage is complete for executed LVM
       commands. Note that there are still a few moments when LVM shell
       needs to initialize itself before it even enters the main loop in
       which it executes LVM commands. Also, there is a moment when LVM
       shell needs to prepare log report properly for next command
       executed in the shell and then, after the command's run, the
       shell needs to display the log report for that recently executed
       command. If there is a failure or any other message issued during
       this time, the LVM will bypass log report and display messages on
       output directly.
       For these reasons and for completeness, it's not possible to rely
       fully on log report as the only indicator of LVM command's status
       and the only place where all messages issued during LVM command
       execution are collected.  You always need to check whether the
       command has not failed out of log report's range by checking the
       non-report output too.
       To help with this, LVM can separate output which you can then
       redirect to any custom file descriptor that you prepare before
       running an LVM command or LVM shell and then you make LVM to use
       these file descriptors for different kinds of output by defining
       environment variables with file descriptor numbers. See also
       LVM_OUT_FD, LVM_ERR_FD and LVM_REPORT_FD environment variable
       description in lvm(8) man page.
       Also note that, by default, reports use the same file descriptor
       as common print-like messages, which is standard output. If you
       plan to use log report in your scripts or any external tool, you
       should use LVM_OUT_FD, LVM_ERR_FD and LVM_REPORT_FD to separate
       all output types to different file descriptors. For example, with
       bash, that would be:
              LVM_OUT_FD=3 LVM_ERR_FD=4 LVM_REPORT_FD=5 <lvm command>
              3>out_file 4>err_file 5>report_file
       Where the <lvm_command> is either direct LVM command or LVM
       shell.  You can collect all three types of output in particular
       files then.
       Log report content
       Each item in the log report consists of these set of fields
       providing various information:
       Basic information (mandatory):
              log_seq_num
                     Item sequence number. The sequence number is unique
                     for each log item and it increases in the order of
                     the log items as they appeared during LVM command
                     execution.
              log_type
                     Type of log for the item. Currently, these types
                     are used:
                     status for any status information that is logged
                     print  for any common message printed while the log
                            is collected
                     error  for any error message printed while the log
                            is collected
                     warn   for any warning message printed while the
                            log is collected
              log_context
                     Context of the log for the item. Currently, two
                     contexts are identified:
                     shell  for the log collected in the outermost code
                            before and after executing concrete LVM
                            commands
                     processing
                            for the log collected while processing LVM
                            entities during LVM command execution
       Message (mandatory):
              log_message
                     Any message associated with current item. For
                     status log type, the message contains either
                     success or failure denoting current state. For
                     print, error and warn log types, the message
                     contains the exact message of that type that got
                     issued.
       Object information (used only if applicable):
              log_object_type field
                     Type of the object processed. Currently, these
                     object types are recognized:
                     cmd    for command as a whole
                     orphan for processing group of PVs not in any VG
                            yet
                     pv     for PV processing
                     label  for direct PV label processing (without VG
                            metadata)
                     vg     for VG processing
                     lv     for LV processing
              log_object_name
                     Name of the object processed.
              log_object_id
                     ID of the object processed.
              log_object_group
                     A group where the processed object belongs to.
              log_object_group_id
                     An ID of a group where the processed object belongs
                     to.
       Numeric status (used only if applicable):
              log_errno
                     Error number associated with current item.
              log_ret_code
                     Return code associated with current item.
       You can also run lvm --configreport log -o help to to display
       complete list of fields that you may use for the log report.
   Selection
       Selection is used for a report to display only rows that match
       selection criteria. All rows are displayed with the additional
       selected field (-o selected) displaying 1 if the row matches the
       Selection and 0 otherwise. The selection criteria are a set of
       statements combined by logical and grouping operators.  The
       statement consists of a field name for which a set of valid
       values is defined using comparison operators. For complete list
       of fields names that you can use in selection, see the output of
       lvm -S help. The help output also contains type of values that
       each field displays enclosed in brackets.
       List of operators recognized in selection criteria
              Comparison operators (cmp_op)
                     =~     matching regular expression.
                     !~     not matching regular expression.
                     =      equal to.
                     !=     not equal to.
                     >=     greater than or equal to.
                     >      greater than
                     <=     less than or equal to.
                     <      less than.
              Binary logical operators (cmp_log)
                     &&     all fields must match
                     ,      all fields must match
                     ||     at least one field must match
                     #      at least one field must match
              Unary logical operators
                     !      logical negation
              Grouping operators
                     (      left parenthesis
                     )      right parenthesis
                     [      list start
                     ]      list end
                     {      list subset start
                     }      list subset end
       Field types and selection operands
       Field type restricts the set of operators and values that you may
       use with the field when defining selection criteria. You can see
       field type for each field if you run lvm -S help where you can
       find the type name enclosed in square brackets. Currently, LVM
       recognizes these field types in reports:
              string for set of characters (for each string field type,
                     you can use either string or regular expression -
                     regex for the value used in selection criteria)
              string list
                     for set of strings
              number for integer value
              size   for integer or floating point number with size unit
                     suffix (see also lvcreate(8) man page and
                     description for "-L|--size" option for the list of
                     recognized suffixes)
              percent for floating point number with or without % suffix
                     (e.g. 50 or 50%)
              time   for time values
       When using string list in selection criteria, there are several
       ways how LVM can match string list fields from report, depending
       on what list grouping operator is used and what item separator is
       used within that set of items. Also, note that order of items
       does not matter here.
       •  matching the set strictly where all items must match - use [
          ], e.g.  ["a","b","c"]
       •  matching a subset of the set - use { } with "," or "&&" as
          item delimiter, e.g. {"a","b","c"}
       •  matching an intersection with the set - use { } with "#" or
          "||" as item delimiter, e.g. {"a" || "b" || "c"}
       When using time in your selection criteria, LVM can recognize
       various time formats using standard, absolute or freeform
       expressions. For examples demonstrating time expressions in
       selection criteria, see EXAMPLES section.
       •  Standard time format
          -  date
                    YYYY-MM-DD
                    YYYY-MM, auto DD=1
                    YYYY, auto MM=01 and DD=01
          -  time
                    hh:mm:ss
                    hh:mm, auto ss=0
                    hh, auto mm=0, auto ss=0
          -  timezone
                    +hh:mm or -hh:mm
                    +hh or -hh
          The full date/time specification is YYYY-MM-DD hh:mm:ss. Users
          are able to leave date/time parts from right to left. Whenever
          these parts are left out, a range is assumed automatically
          with second granularity. For example:
          "2015-07-07 9:51" means range of "2015-07-07 9:51:00" - "2015-07-07 9:51:59"
          "2015-07" means range of "2015-07-01 0:00:00" - "2015-07-31 23:59:59"
          "2015" means range of "2015-01-01 0:00:00" - "2015-12-31 23:59:59"
       •  Absolute time format
          Absolute time is defined as number of seconds since the Epoch
          (1970:01:01 00:00 +00:00).
          -  @seconds
       •  Freeform time format
          -  weekday names ("Sunday" - "Saturday" or abbreviated as
             "Sun" - "Sat")
          -  labels for points in time ("noon", "midnight")
          -  labels for a day relative to current day ("today",
             "yesterday")
          -  points back in time with relative offset from today (N is a
             number)
                    "N" "seconds" / "minutes" / "hours" / "days" /
                    "weeks" / "years" "ago"
                    "N" "secs" / "mins" / "hrs" ... "ago"
                    "N" "s" / "m" / "h" ... "ago"
          -  time specification either in hh:mm:ss format or with AM/PM
             suffixes
          -  month names ("January" - "December" or abbreviated as "Jan"
             - "Dec")
       Informal grammar specification
       - STATEMENT = column cmp_op VALUE | STATEMENT log_op STATEMENT |
         (STATEMENT) | !(STATEMENT)
       - VALUE = [VALUE log_op VALUE]
         For list-based types: string list. Matches strictly.  The
         log_op must always be of one type within the whole list value.
       - VALUE = {VALUE log_op VALUE}
         For list-based types: string list. Matches a subset.  The
         log_op must always be of one type within the whole list value.
       - VALUE = value
         For scalar types: number, size, percent, string (or string
         regex).