1
0
mirror of git://sourceware.org/git/lvm2.git synced 2024-12-21 13:34:40 +03:00

man-generator/man/help: simplify hyphen escaping

Commits a29bb6a14b
    ... 5c199d99f4
narrowed down on addressing the escaping of hyphens
in the dynamic creation of manuals whilst avoiding
them in creating help texts.  This lead to a sequence
of slipping through hyphens adrressed by additional
patches in aforementioned commit series.

On the other hand, postprocessing dynamically man-generator
created and statically provided manuals catches all hyphens
in need of escaping.

Changes:
- revert the above commits whilst keeping man-generator
  streamlining and the detection of any '\' when generating
  help texts in order to avoid escapes to slip in

- Dynamically escape hyphens in manaual pages using sed(1)
  in the respective Makefile targets

- remove any manually added escaping on hyphens from any
  static manual sources or headers
This commit is contained in:
Heinz Mauelshagen 2017-03-27 16:45:48 +02:00
parent 6165e09221
commit 36cac41115
59 changed files with 1568 additions and 1589 deletions

View File

@ -173,17 +173,25 @@ define SUBSTVARS
echo "Generating $@" ; $(SED) -e "s+#VERSION#+$(LVM_VERSION)+;s+#DEFAULT_SYS_DIR#+$(DEFAULT_SYS_DIR)+;s+#DEFAULT_ARCHIVE_DIR#+$(DEFAULT_ARCHIVE_DIR)+;s+#DEFAULT_BACKUP_DIR#+$(DEFAULT_BACKUP_DIR)+;s+#DEFAULT_PROFILE_DIR#+$(DEFAULT_PROFILE_DIR)+;s+#DEFAULT_CACHE_DIR#+$(DEFAULT_CACHE_DIR)+;s+#DEFAULT_LOCK_DIR#+$(DEFAULT_LOCK_DIR)+;s+#CLVMD_PATH#+/data/lvmtest/usr/sbin/clvmd+;s+#LVM_PATH#+/data/lvmtest/sbin/lvm+;s+#DEFAULT_RUN_DIR#+/var/run/lvm+;s+#DEFAULT_PID_DIR#+/var/run+;s+#SYSTEMD_GENERATOR_DIR#+$(SYSTEMD_GENERATOR_DIR)+;s+#DEFAULT_MANGLING#+$(DEFAULT_MANGLING)+;" $< > $@ echo "Generating $@" ; $(SED) -e "s+#VERSION#+$(LVM_VERSION)+;s+#DEFAULT_SYS_DIR#+$(DEFAULT_SYS_DIR)+;s+#DEFAULT_ARCHIVE_DIR#+$(DEFAULT_ARCHIVE_DIR)+;s+#DEFAULT_BACKUP_DIR#+$(DEFAULT_BACKUP_DIR)+;s+#DEFAULT_PROFILE_DIR#+$(DEFAULT_PROFILE_DIR)+;s+#DEFAULT_CACHE_DIR#+$(DEFAULT_CACHE_DIR)+;s+#DEFAULT_LOCK_DIR#+$(DEFAULT_LOCK_DIR)+;s+#CLVMD_PATH#+/data/lvmtest/usr/sbin/clvmd+;s+#LVM_PATH#+/data/lvmtest/sbin/lvm+;s+#DEFAULT_RUN_DIR#+/var/run/lvm+;s+#DEFAULT_PID_DIR#+/var/run+;s+#SYSTEMD_GENERATOR_DIR#+$(SYSTEMD_GENERATOR_DIR)+;s+#DEFAULT_MANGLING#+$(DEFAULT_MANGLING)+;" $< > $@
endef endef
define ESCAPEHYPHENS
sed -i "s+\([^\\]\)--+\1\\\-\\\-+g;s+\([^\\]\)-+\1\\\-+g" $@
endef
%.5: $(srcdir)/%.5_main %.5: $(srcdir)/%.5_main
$(SUBSTVARS) $(SUBSTVARS)
$(ESCAPEHYPHENS)
%.7: $(srcdir)/%.7_main %.7: $(srcdir)/%.7_main
$(SUBSTVARS) $(SUBSTVARS)
$(ESCAPEHYPHENS)
%.8: $(srcdir)/%.8_main %.8: $(srcdir)/%.8_main
$(SUBSTVARS) $(SUBSTVARS)
$(ESCAPEHYPHENS)
%.8: %.8_gen %.8: %.8_gen
$(SUBSTVARS) $(SUBSTVARS)
$(ESCAPEHYPHENS)
install_man5: $(MAN5) install_man5: $(MAN5)
$(INSTALL) -d $(MAN5DIR) $(INSTALL) -d $(MAN5DIR)

View File

@ -3,27 +3,27 @@
blkdeactivate \(em utility to deactivate block devices blkdeactivate \(em utility to deactivate block devices
.SH SYNOPSIS .SH SYNOPSIS
.B blkdeactivate .B blkdeactivate
.RB [ \-d \ \fIdm_options\fP ] .RB [ -d \ \fIdm_options\fP ]
.RB [ \-e ] .RB [ -e ]
.RB [ \-h ] .RB [ -h ]
.RB [ \-l \ \fIlvm_options\fP ] .RB [ -l \ \fIlvm_options\fP ]
.RB [ \-m \ \fImpath_options\fP ] .RB [ -m \ \fImpath_options\fP ]
.RB [ \-u ] .RB [ -u ]
.RB [ \-v ] .RB [ -v ]
.RI [ device ] .RI [ device ]
.SH DESCRIPTION .SH DESCRIPTION
The blkdeactivate utility deactivates block devices. For mounted The blkdeactivate utility deactivates block devices. For mounted
block devices, it attempts to unmount it automatically before block devices, it attempts to unmount it automatically before
trying to deactivate. The utility currently supports trying to deactivate. The utility currently supports
device\-mapper devices (DM), including LVM volumes and device-mapper devices (DM), including LVM volumes and
software RAID MD devices. LVM volumes are handled directly software RAID MD devices. LVM volumes are handled directly
using the \fBlvm\fP(8) command, the rest of device\-mapper using the \fBlvm\fP(8) command, the rest of device-mapper
based devices are handled using the \fBdmsetup\fP(8) command. based devices are handled using the \fBdmsetup\fP(8) command.
MD devices are handled using the \fBmdadm\fP(8) command. MD devices are handled using the \fBmdadm\fP(8) command.
.SH OPTIONS .SH OPTIONS
.TP .TP
.BR \-d ", " \-\-dmoption \ \fIdm_options\fP .BR -d ", " --dmoption \ \fIdm_options\fP
Comma separated list of device\-mapper specific options. Comma separated list of device-mapper specific options.
Accepted \fBdmsetup\fP(8) options are: Accepted \fBdmsetup\fP(8) options are:
.RS .RS
.IP \fIretry\fP .IP \fIretry\fP
@ -32,17 +32,17 @@ Retry removal several times in case of failure.
Force device removal. Force device removal.
.RE .RE
.TP .TP
.BR \-e ", " \-\-errors .BR -e ", " --errors
Show errors reported from tools called by \fBblkdeactivate\fP. Without this Show errors reported from tools called by \fBblkdeactivate\fP. Without this
option, any error messages from these external tools are suppressed and the option, any error messages from these external tools are suppressed and the
\fBblkdeactivate\fP itself provides only a summary message to indicate \fBblkdeactivate\fP itself provides only a summary message to indicate
the device was skipped. the device was skipped.
.TP .TP
.BR \-h ", " \-\-help .BR -h ", " --help
Display the help text. Display the help text.
.TP .TP
.BR \-l ", " \-\-lvmoption \ \fIlvm_options\fP .BR -l ", " --lvmoption \ \fIlvm_options\fP
Comma\-separated list of LVM specific options: Comma-separated list of LVM specific options:
.RS .RS
.IP \fIretry\fP .IP \fIretry\fP
Retry removal several times in case of failure. Retry removal several times in case of failure.
@ -52,22 +52,22 @@ Deactivating the Volume Group as a whole is quicker than deactivating
each Logical Volume separately. each Logical Volume separately.
.RE .RE
.TP .TP
.BR \-m ", " \-\-mpathoption \ \fImpath_options\fP .BR -m ", " --mpathoption \ \fImpath_options\fP
Comma\-separated list of device\-mapper multipath specific options: Comma-separated list of device-mapper multipath specific options:
.RS .RS
.IP \fIdisablequeueing\fP .IP \fIdisablequeueing\fP
Disable queueing on all multipath devices before deactivation. Disable queueing on all multipath devices before deactivation.
This avoids a situation where blkdeactivate may end up waiting if This avoids a situation where blkdeactivate may end up waiting if
all the paths are unavailable for any underlying device\-mapper multipath all the paths are unavailable for any underlying device-mapper multipath
device. device.
.RE .RE
.TP .TP
.BR \-u ", " \-\-umount .BR -u ", " --umount
Unmount a mounted device before trying to deactivate it. Unmount a mounted device before trying to deactivate it.
Without this option used, a device that is mounted is not deactivated. Without this option used, a device that is mounted is not deactivated.
.TP .TP
.BR \-v ", " \-\-verbose .BR -v ", " --verbose
Run in verbose mode. Use \-\-vv for even more verbose mode. Run in verbose mode. Use --vv for even more verbose mode.
.SH EXAMPLES .SH EXAMPLES
. .
Deactivate all supported block devices found in the system, skipping mounted Deactivate all supported block devices found in the system, skipping mounted
@ -81,29 +81,29 @@ Deactivate all supported block devices found in the system, unmounting any
mounted devices first, if possible. mounted devices first, if possible.
.BR .BR
# #
.B blkdeactivate \-u .B blkdeactivate -u
.BR .BR
.P .P
Deactivate the device /dev/vg/lvol0 together with all its holders, unmounting Deactivate the device /dev/vg/lvol0 together with all its holders, unmounting
any mounted devices first, if possible. any mounted devices first, if possible.
.BR .BR
# #
.B blkdeactivate \-u /dev/vg/lvol0 .B blkdeactivate -u /dev/vg/lvol0
.BR .BR
.P .P
Deactivate all supported block devices found in the system. If the deactivation Deactivate all supported block devices found in the system. If the deactivation
of a device\-mapper device fails, retry it. Deactivate the whole of a device-mapper device fails, retry it. Deactivate the whole
Volume Group at once when processing an LVM Logical Volume. Volume Group at once when processing an LVM Logical Volume.
.BR .BR
# #
.B blkdeactivate \-u \-d retry \-l wholevg .B blkdeactivate -u -d retry -l wholevg
.BR .BR
.P .P
Deactivate all supported block devices found in the system. If the deactivation Deactivate all supported block devices found in the system. If the deactivation
of a device\-mapper device fails, retry it and force removal. of a device-mapper device fails, retry it and force removal.
.BR .BR
# #
.B blkdeactivate \-d force,retry .B blkdeactivate -d force,retry
. .
.SH SEE ALSO .SH SEE ALSO
.BR dmsetup (8), .BR dmsetup (8),

View File

@ -8,22 +8,22 @@ clvmd \(em cluster LVM daemon
. .
.ad l .ad l
.B clvmd .B clvmd
.RB [ \-C ] .RB [ -C ]
.RB [ \-d .RB [ -d
.RI [ value ]] .RI [ value ]]
.RB [ \-E .RB [ -E
.IR lock_uuid ] .IR lock_uuid ]
.RB [ \-f ] .RB [ -f ]
.RB [ \-h ] .RB [ -h ]
.RB [ \-I .RB [ -I
.IR cluster_manager ] .IR cluster_manager ]
.RB [ \-R ] .RB [ -R ]
.RB [ \-S ] .RB [ -S ]
.RB [ \-t .RB [ -t
.IR timeout ] .IR timeout ]
.RB [ \-T .RB [ -T
.IR start_timeout ] .IR start_timeout ]
.RB [ \-V ] .RB [ -V ]
.ad b .ad b
. .
.SH DESCRIPTION .SH DESCRIPTION
@ -35,27 +35,27 @@ if a node in the cluster does not have this daemon running.
.SH OPTIONS .SH OPTIONS
. .
.HP .HP
.BR \-C .BR -C
.br .br
Only valid if \fB\-d\fP is also specified. Only valid if \fB-d\fP is also specified.
Tells all clvmds in a cluster to enable/disable debug logging. Tells all clvmds in a cluster to enable/disable debug logging.
Without this switch, only the local clvmd will change its debug level to that Without this switch, only the local clvmd will change its debug level to that
given with \fB\-d\fP. given with \fB-d\fP.
.br .br
This does not work correctly if specified on the command\-line that starts clvmd. This does not work correctly if specified on the command-line that starts clvmd.
If you want to start clvmd \fBand\fP If you want to start clvmd \fBand\fP
enable cluster\-wide logging then the command needs to be issued twice, eg: enable cluster-wide logging then the command needs to be issued twice, eg:
.br .br
.BR clvmd .BR clvmd
.br .br
.BR clvmd\ \-d2 .BR clvmd\ -d2
. .
.HP .HP
.BR \-d .BR -d
.RI [ value ] .RI [ value ]
.br .br
Set debug logging level. Set debug logging level.
If \fB\-d\fP is specified without a \fIvalue\fP If \fB-d\fP is specified without a \fIvalue\fP
then 1 is assumed. \fIValue\fP can be: then 1 is assumed. \fIValue\fP can be:
.PD 0 .PD 0
.IP .IP
@ -63,30 +63,30 @@ then 1 is assumed. \fIValue\fP can be:
\(em Disabled \(em Disabled
.IP .IP
.BR 1 .BR 1
\(em Sends debug logs to stderr (implies \fB\-f\fP) \(em Sends debug logs to stderr (implies \fB-f\fP)
.IP .IP
.BR 2 .BR 2
\(em Sends debug logs to \fBsyslog\fP(3) \(em Sends debug logs to \fBsyslog\fP(3)
.PD .PD
. .
.HP .HP
.BR \-E .BR -E
.IR lock_uuid .IR lock_uuid
.br .br
Pass lock uuid to be reacquired exclusively when clvmd is restarted. Pass lock uuid to be reacquired exclusively when clvmd is restarted.
. .
.HP .HP
.BR \-f .BR -f
.br .br
Don't fork, run in the foreground. Don't fork, run in the foreground.
. .
.HP .HP
.BR \-h .BR -h
.br .br
Show help information. Show help information.
. .
.HP .HP
.BR \-I .BR -I
.IR cluster_manager .IR cluster_manager
.br .br
Selects the cluster manager to use for locking and internal Selects the cluster manager to use for locking and internal
@ -94,24 +94,24 @@ communications. As it is quite possible to have multiple managers available on
the same system you might have to manually specify this option to override the the same system you might have to manually specify this option to override the
search. search.
By default, omit \fB\-I\fP is equivalent to \fB\-Iauto\fP. By default, omit \fB-I\fP is equivalent to \fB-Iauto\fP.
Clvmd will use the first cluster manager that succeeds, Clvmd will use the first cluster manager that succeeds,
and it checks them in a predefined order and it checks them in a predefined order
.BR cman , .BR cman ,
.BR corosync , .BR corosync ,
.BR openais . .BR openais .
The available managers will be listed by order as part of the The available managers will be listed by order as part of the
\fBclvmd \-h\fP output. \fBclvmd -h\fP output.
. .
.HP .HP
.BR \-R .BR -R
.br .br
Tells all the running instance of \fBclvmd\fP in the cluster to reload their device cache and Tells all the running instance of \fBclvmd\fP in the cluster to reload their device cache and
re\-read the lvm configuration file \fBlvm.conf\fP(5). This command should be run whenever the re-read the lvm configuration file \fBlvm.conf\fP(5). This command should be run whenever the
devices on a cluster system are changed. devices on a cluster system are changed.
. .
.HP .HP
.BR \-S .BR -S
.br .br
Tells the running \fBclvmd\fP to exit and reexecute itself, for example at the Tells the running \fBclvmd\fP to exit and reexecute itself, for example at the
end of a package upgrade. The new instance is instructed to reacquire end of a package upgrade. The new instance is instructed to reacquire
@ -120,7 +120,7 @@ methods of restarting the daemon have the side effect of changing
exclusive LV locks into shared locks.) exclusive LV locks into shared locks.)
. .
.HP .HP
.BR \-t .BR -t
.IR timeout .IR timeout
.br .br
Specifies the \fItimeout\fP for commands to run around the cluster. This should not Specifies the \fItimeout\fP for commands to run around the cluster. This should not
@ -129,7 +129,7 @@ may need to increase this on systems with very large disk farms.
The default is 60 seconds. The default is 60 seconds.
. .
.HP .HP
.BR \-T .BR -T
.IR start_timeout .IR start_timeout
.br .br
Specifies the start timeout for \fBclvmd\fP daemon startup. If the Specifies the start timeout for \fBclvmd\fP daemon startup. If the
@ -147,10 +147,10 @@ The default is \fB0\fP (no timeout) and the value is in seconds. Don't set this
small or you will experience spurious errors. 10 or 20 seconds might be small or you will experience spurious errors. 10 or 20 seconds might be
sensible. sensible.
This timeout will be ignored if you start \fBclvmd\fP with the \fB\-d\fP. This timeout will be ignored if you start \fBclvmd\fP with the \fB-d\fP.
. .
.HP .HP
.BR \-V .BR -V
.br .br
Display the version of the cluster LVM daemon. Display the version of the cluster LVM daemon.
. .

View File

@ -3,11 +3,11 @@
cmirrord \(em cluster mirror log daemon cmirrord \(em cluster mirror log daemon
.SH SYNOPSIS .SH SYNOPSIS
\fBcmirrord\fR [\fB\-f\fR] [\fB\-h\fR] \fBcmirrord\fR [\fB-f\fR] [\fB-h\fR]
.SH DESCRIPTION .SH DESCRIPTION
\fBcmirrord\fP is the daemon that tracks mirror log information in a cluster. \fBcmirrord\fP is the daemon that tracks mirror log information in a cluster.
It is specific to device\-mapper based mirrors (and by extension, LVM It is specific to device-mapper based mirrors (and by extension, LVM
cluster mirrors). Cluster mirrors are not possible without this daemon cluster mirrors). Cluster mirrors are not possible without this daemon
running. running.
@ -26,9 +26,9 @@ ignored. Active cluster mirrors should be shutdown before stopping the cluster
mirror log daemon. mirror log daemon.
.SH OPTIONS .SH OPTIONS
.IP "\fB\-f\fR, \fB\-\-foreground\fR" 4 .IP "\fB-f\fR, \fB--foreground\fR" 4
Do not fork and log to the terminal. Do not fork and log to the terminal.
.IP "\fB\-h\fR, \fB\-\-help\fR" 4 .IP "\fB-h\fR, \fB--help\fR" 4
Print usage. Print usage.
.SH SEE ALSO .SH SEE ALSO

View File

@ -2,24 +2,24 @@
. .
.SH NAME .SH NAME
. .
dmeventd \(em Device\-mapper event daemon dmeventd \(em Device-mapper event daemon
. .
.SH SYNOPSIS .SH SYNOPSIS
. .
.B dmeventd .B dmeventd
.RB [ \-d .RB [ -d
.RB [ \-d .RB [ -d
.RB [ \-d ]]] .RB [ -d ]]]
.RB [ \-f ] .RB [ -f ]
.RB [ \-h ] .RB [ -h ]
.RB [ \-l ] .RB [ -l ]
.RB [ \-R ] .RB [ -R ]
.RB [ \-V ] .RB [ -V ]
.RB [ \-? ] .RB [ -? ]
. .
.SH DESCRIPTION .SH DESCRIPTION
. .
dmeventd is the event monitoring daemon for device\-mapper devices. dmeventd is the event monitoring daemon for device-mapper devices.
Library plugins can register and carry out actions triggered when Library plugins can register and carry out actions triggered when
particular events occur. particular events occur.
. .
@ -27,46 +27,46 @@ particular events occur.
.SH OPTIONS .SH OPTIONS
. .
.HP .HP
.BR \-d .BR -d
.br .br
Repeat from 1 to 3 times ( Repeat from 1 to 3 times (
.BR \-d , .BR -d ,
.BR \-dd , .BR -dd ,
.BR \-ddd .BR -ddd
) to increase the detail of ) to increase the detail of
debug messages sent to syslog. debug messages sent to syslog.
Each extra d adds more debugging information. Each extra d adds more debugging information.
. .
.HP .HP
.BR \-f .BR -f
.br .br
Don't fork, run in the foreground. Don't fork, run in the foreground.
. .
.HP .HP
.BR \-h .BR -h
.br .br
Show help information. Show help information.
. .
.HP .HP
.BR \-l .BR -l
.br .br
Log through stdout and stderr instead of syslog. Log through stdout and stderr instead of syslog.
This option works only with option \-f, otherwise it is ignored. This option works only with option -f, otherwise it is ignored.
. .
.HP .HP
.BR \-? .BR -?
.br .br
Show help information on stderr. Show help information on stderr.
. .
.HP .HP
.BR \-R .BR -R
.br .br
Replace a running dmeventd instance. The running dmeventd must be version Replace a running dmeventd instance. The running dmeventd must be version
2.02.77 or newer. The new dmeventd instance will obtain a list of devices and 2.02.77 or newer. The new dmeventd instance will obtain a list of devices and
events to monitor from the currently running daemon. events to monitor from the currently running daemon.
. .
.HP .HP
.BR \-V .BR -V
.br .br
Show version of dmeventd. Show version of dmeventd.
. .
@ -106,7 +106,7 @@ of the thin pool is filled. See
When a thin pool fills over 50% (data or metadata) thin plugin calls When a thin pool fills over 50% (data or metadata) thin plugin calls
configured \fIdmeventd/thin_command\fP with every 5% increase. configured \fIdmeventd/thin_command\fP with every 5% increase.
With default setting it calls internal With default setting it calls internal
\fBlvm lvextend \-\-use\-policies\fP to resize thin pool \fBlvm lvextend --use-policies\fP to resize thin pool
when it's been filled above configured threshold when it's been filled above configured threshold
\fIactivation/thin_pool_autoextend_threshold\fP. \fIactivation/thin_pool_autoextend_threshold\fP.
If the command fails, dmeventd thin plugin will keep If the command fails, dmeventd thin plugin will keep
@ -116,7 +116,7 @@ User may also configure external command to support more advanced
maintenance operations of a thin pool. maintenance operations of a thin pool.
Such external command can e.g. remove some unneeded snapshots, Such external command can e.g. remove some unneeded snapshots,
use \fBfstrim\fP(8) to free recover space in a thin pool, use \fBfstrim\fP(8) to free recover space in a thin pool,
but also can use \fBlvextend \-\-use\-policies\fP if other actions but also can use \fBlvextend --use-policies\fP if other actions
have not released enough space. have not released enough space.
Command is executed with environmental variable Command is executed with environmental variable
\fBLVM_RUN_BY_DMEVENTD=1\fP so any lvm2 command executed \fBLVM_RUN_BY_DMEVENTD=1\fP so any lvm2 command executed

View File

@ -21,7 +21,7 @@
. .
.SH NAME .SH NAME
. .
dmfilemapd \(em device\-mapper filemap monitoring daemon dmfilemapd \(em device-mapper filemap monitoring daemon
. .
.SH SYNOPSIS .SH SYNOPSIS
. .
@ -44,7 +44,7 @@ dmfilemapd \(em device\-mapper filemap monitoring daemon
. .
The dmfilemapd daemon monitors groups of \fIdmstats\fP regions that The dmfilemapd daemon monitors groups of \fIdmstats\fP regions that
correspond to the extents of a file, adding and removing regions to correspond to the extents of a file, adding and removing regions to
reflect the changing state of the file on\-disk. reflect the changing state of the file on-disk.
The daemon is normally launched automatically by the \fPdmstats The daemon is normally launched automatically by the \fPdmstats
create\fP command, but can be run manually, either to create a new create\fP command, but can be run manually, either to create a new
@ -86,8 +86,8 @@ and the \fBmode\fP option for more information.
.br .br
The filemap monitoring mode the daemon should use: either "inode" The filemap monitoring mode the daemon should use: either "inode"
(\fBDM_FILEMAP_FOLLOW_INODE\fP), or "path" (\fBDM_FILEMAP_FOLLOW_INODE\fP), or "path"
(\fBDM_FILEMAP_FOLLOW_PATH\fP), to enable follow\-inode or (\fBDM_FILEMAP_FOLLOW_PATH\fP), to enable follow-inode or
follow\-path mode respectively. follow-path mode respectively.
. .
.HP .HP
.BR [foreground] .BR [foreground]
@ -130,7 +130,7 @@ within the file system, while it is being monitored.
.B Follow path .B Follow path
.P .P
The daemon follows the path that was given on the daemon command The daemon follows the path that was given on the daemon command
line. The file descriptor referencing the file is re\-opened on each line. The file descriptor referencing the file is re-opened on each
iteration of the daemon, and the daemon will exit if no file exists iteration of the daemon, and the daemon will exit if no file exists
at this location (a tolerance is allowed so that a brief delay at this location (a tolerance is allowed so that a brief delay
between removal and replacement is permitted). between removal and replacement is permitted).
@ -164,13 +164,13 @@ Normally the daemon is started automatically by the \fBdmstats\fP
\fBcreate\fP or \fBupdate_filemap\fP commands but it can be run \fBcreate\fP or \fBupdate_filemap\fP commands but it can be run
manually for debugging or testing purposes. manually for debugging or testing purposes.
.P .P
Start the daemon in the background, in follow\-path mode Start the daemon in the background, in follow-path mode
.br .br
# #
.B dmfilemapd 3 0 /srv/images/vm.img path 0 0 3< /srv/images/vm.img .B dmfilemapd 3 0 /srv/images/vm.img path 0 0 3< /srv/images/vm.img
.br .br
.P .P
Start the daemon in follow\-inode mode, disable forking and enable Start the daemon in follow-inode mode, disable forking and enable
verbose logging verbose logging
.br .br
# #
@ -208,5 +208,5 @@ Bryn M. Reeves <bmr@redhat.com>
LVM2 resource page: https://www.sourceware.org/lvm2/ LVM2 resource page: https://www.sourceware.org/lvm2/
.br .br
Device\-mapper resource page: http://sources.redhat.com/dm/ Device-mapper resource page: http://sources.redhat.com/dm/
.br .br

View File

@ -23,12 +23,12 @@ dmsetup \(em low level logical volume management
. ad l . ad l
. BR create . BR create
. IR device_name . IR device_name
. RB [ -u | \-\-uuid . RB [ -u | --uuid
. IR uuid ] . IR uuid ]
. RB \%[ \-\-addnodeoncreate | \-\-addnodeonresume ] . RB \%[ --addnodeoncreate | --addnodeonresume ]
. RB \%[ \-n | \-\-notable | \-\-table . RB \%[ -n | --notable | --table
. IR \%table | table_file ] . IR \%table | table_file ]
. RB [ \-\-readahead . RB [ --readahead
. RB \%[ + ] \fIsectors | auto | none ] . RB \%[ + ] \fIsectors | auto | none ]
. ad b . ad b
.. ..
@ -39,7 +39,7 @@ dmsetup \(em low level logical volume management
.de CMD_DEPS .de CMD_DEPS
. ad l . ad l
. BR deps . BR deps
. RB [ \-o . RB [ -o
. IR options ] . IR options ]
. RI [ device_name ...] . RI [ device_name ...]
. ad b . ad b
@ -50,7 +50,7 @@ dmsetup \(em low level logical volume management
.B dmsetup .B dmsetup
.de CMD_HELP .de CMD_HELP
. BR help . BR help
. RB [ \-c | \-C | \-\-columns ] . RB [ -c | -C | --columns ]
.. ..
.CMD_HELP .CMD_HELP
. .
@ -67,18 +67,18 @@ dmsetup \(em low level logical volume management
.de CMD_INFOLONG .de CMD_INFOLONG
. ad l . ad l
. BR info . BR info
. BR \-c | \-C | \-\-columns . BR -c | -C | --columns
. RB [ \-\-count . RB [ --count
. IR count ] . IR count ]
. RB [ \-\-interval . RB [ --interval
. IR seconds ] . IR seconds ]
. RB \%[ \-\-nameprefixes ] . RB \%[ --nameprefixes ]
. RB \%[ \-\-noheadings ] . RB \%[ --noheadings ]
. RB [ \-o . RB [ -o
. IR fields ] . IR fields ]
. RB [ \-O | \-\-sort . RB [ -O | --sort
. IR sort_fields ] . IR sort_fields ]
. RB [ \-\-separator . RB [ --separator
. IR separator ] . IR separator ]
. RI [ device_name ] . RI [ device_name ]
. ad b . ad b
@ -91,7 +91,7 @@ dmsetup \(em low level logical volume management
. ad l . ad l
. BR load . BR load
. IR device_name . IR device_name
. RB [ \-\-table . RB [ --table
. IR table | table_file ] . IR table | table_file ]
. ad b . ad b
.. ..
@ -102,12 +102,12 @@ dmsetup \(em low level logical volume management
.de CMD_LS .de CMD_LS
. ad l . ad l
. BR ls . BR ls
. RB [ \-\-target . RB [ --target
. IR target_type ] . IR target_type ]
. RB [ \-\-exec . RB [ --exec
. IR command ] . IR command ]
. RB [ \-\-tree ] . RB [ --tree ]
. RB [ \-o . RB [ -o
. IR options ] . IR options ]
. ad b . ad b
.. ..
@ -145,7 +145,7 @@ dmsetup \(em low level logical volume management
. ad l . ad l
. BR reload . BR reload
. IR device_name . IR device_name
. RB [ \-\-table . RB [ --table
. IR table | table_file ] . IR table | table_file ]
. ad b . ad b
.. ..
@ -156,9 +156,9 @@ dmsetup \(em low level logical volume management
.de CMD_REMOVE .de CMD_REMOVE
. ad l . ad l
. BR remove . BR remove
. RB [ \-f | \-\-force ] . RB [ -f | --force ]
. RB [ \-\-retry ] . RB [ --retry ]
. RB [ \-\-deferred ] . RB [ --deferred ]
. IR device_name ... . IR device_name ...
. ad b . ad b
.. ..
@ -168,8 +168,8 @@ dmsetup \(em low level logical volume management
.B dmsetup .B dmsetup
.de CMD_REMOVE_ALL .de CMD_REMOVE_ALL
. BR remove_all . BR remove_all
. RB [ \-f | \-\-force ] . RB [ -f | --force ]
. RB [ \-\-deferred ] . RB [ --deferred ]
.. ..
.CMD_REMOVE_ALL .CMD_REMOVE_ALL
. .
@ -187,7 +187,7 @@ dmsetup \(em low level logical volume management
.de CMD_RENAME_UUID .de CMD_RENAME_UUID
. BR rename . BR rename
. IR device_name . IR device_name
. BR \-\-setuuid . BR --setuuid
. IR uuid . IR uuid
.. ..
.CMD_RENAME_UUID .CMD_RENAME_UUID
@ -198,10 +198,10 @@ dmsetup \(em low level logical volume management
. ad l . ad l
. BR resume . BR resume
. IR device_name ... . IR device_name ...
. RB [ \-\-addnodeoncreate | \-\-addnodeonresume ] . RB [ --addnodeoncreate | --addnodeonresume ]
. RB [ \-\-noflush ] . RB [ --noflush ]
. RB [ \-\-nolockfs ] . RB [ --nolockfs ]
. RB \%[ \-\-readahead . RB \%[ --readahead
. RB \%[ + ] \fIsectors | auto | none ] . RB \%[ + ] \fIsectors | auto | none ]
. ad b . ad b
.. ..
@ -244,9 +244,9 @@ dmsetup \(em low level logical volume management
.de CMD_STATUS .de CMD_STATUS
. ad l . ad l
. BR status . BR status
. RB [ \-\-target . RB [ --target
. IR target_type ] . IR target_type ]
. RB [ \-\-noflush ] . RB [ --noflush ]
. RI [ device_name ...] . RI [ device_name ...]
. ad b . ad b
.. ..
@ -257,8 +257,8 @@ dmsetup \(em low level logical volume management
.de CMD_SUSPEND .de CMD_SUSPEND
. ad l . ad l
. BR suspend . BR suspend
. RB [ \-\-nolockfs ] . RB [ --nolockfs ]
. RB [ \-\-noflush ] . RB [ --noflush ]
. IR device_name ... . IR device_name ...
. ad b . ad b
.. ..
@ -269,9 +269,9 @@ dmsetup \(em low level logical volume management
.de CMD_TABLE .de CMD_TABLE
. ad l . ad l
. BR table . BR table
. RB [ \-\-target . RB [ --target
. IR target_type ] . IR target_type ]
. RB [ \-\-showkeys ] . RB [ --showkeys ]
. RI [ device_name ...] . RI [ device_name ...]
. ad b . ad b
.. ..
@ -342,7 +342,7 @@ dmsetup \(em low level logical volume management
.de CMD_WAIT .de CMD_WAIT
. ad l . ad l
. BR wait . BR wait
. RB [ \-\-noflush ] . RB [ --noflush ]
. IR device_name . IR device_name
. RI [ event_nr ] . RI [ event_nr ]
. ad b . ad b
@ -355,9 +355,9 @@ dmsetup \(em low level logical volume management
. ad l . ad l
. BR wipe_table . BR wipe_table
. IR device_name ... . IR device_name ...
. RB [ \-f | \-\-force ] . RB [ -f | --force ]
. RB [ \-\-noflush ] . RB [ --noflush ]
. RB [ \-\-nolockfs ] . RB [ --nolockfs ]
. ad b . ad b
.. ..
.CMD_WIPE_TABLE .CMD_WIPE_TABLE
@ -373,7 +373,7 @@ dmsetup \(em low level logical volume management
. .
.SH DESCRIPTION .SH DESCRIPTION
. .
dmsetup manages logical devices that use the device\-mapper driver. dmsetup manages logical devices that use the device-mapper driver.
Devices are created by loading a table that specifies a target for Devices are created by loading a table that specifies a target for
each sector (512 bytes) in the logical device. each sector (512 bytes) in the logical device.
@ -383,74 +383,74 @@ The second argument is the logical device name or uuid.
Invoking the dmsetup tool as \fBdevmap_name\fP Invoking the dmsetup tool as \fBdevmap_name\fP
(which is not normally distributed and is supported (which is not normally distributed and is supported
only for historical reasons) is equivalent to only for historical reasons) is equivalent to
.BI \%dmsetup\ info\ \-c\ \-\-noheadings\ \-j \ major\ \-m \ minor \c .BI \%dmsetup\ info\ -c\ --noheadings\ -j \ major\ -m \ minor \c
\fR. \fR.
.\" dot above here fixes -Thtml rendering for next HP option .\" dot above here fixes -Thtml rendering for next HP option
. .
.SH OPTIONS .SH OPTIONS
. .
.HP .HP
.BR \-\-addnodeoncreate .BR --addnodeoncreate
.br .br
Ensure \fI/dev/mapper\fP node exists after \fBdmsetup create\fP. Ensure \fI/dev/mapper\fP node exists after \fBdmsetup create\fP.
. .
.HP .HP
.BR \-\-addnodeonresume .BR --addnodeonresume
.br .br
Ensure \fI/dev/mapper\fP node exists after \fBdmsetup resume\fP (default with udev). Ensure \fI/dev/mapper\fP node exists after \fBdmsetup resume\fP (default with udev).
. .
.HP .HP
.BR \-\-checks .BR --checks
.br .br
Perform additional checks on the operations requested and report Perform additional checks on the operations requested and report
potential problems. Useful when debugging scripts. potential problems. Useful when debugging scripts.
In some cases these checks may slow down operations noticeably. In some cases these checks may slow down operations noticeably.
. .
.HP .HP
.BR \-c | \-C | \-\-columns .BR -c | -C | --columns
.br .br
Display output in columns rather than as Field: Value lines. Display output in columns rather than as Field: Value lines.
. .
.HP .HP
.BR \-\-count .BR --count
.IR count .IR count
.br .br
Specify the number of times to repeat a report. Set this to zero Specify the number of times to repeat a report. Set this to zero
continue until interrupted. The default interval is one second. continue until interrupted. The default interval is one second.
. .
.HP .HP
.BR \-f | \-\-force .BR -f | --force
.br .br
Try harder to complete operation. Try harder to complete operation.
. .
.HP .HP
.BR \-h | \-\-help .BR -h | --help
.br .br
Outputs a summary of the commands available, optionally including Outputs a summary of the commands available, optionally including
the list of report fields (synonym with \fBhelp\fP command). the list of report fields (synonym with \fBhelp\fP command).
. .
.HP .HP
.BR \-\-inactive .BR --inactive
.br .br
When returning any table information from the kernel report on the When returning any table information from the kernel report on the
inactive table instead of the live table. inactive table instead of the live table.
Requires kernel driver version 4.16.0 or above. Requires kernel driver version 4.16.0 or above.
. .
.HP .HP
.BR \-\-interval .BR --interval
.IR seconds .IR seconds
.br .br
Specify the interval in seconds between successive iterations for Specify the interval in seconds between successive iterations for
repeating reports. If \fB\-\-interval\fP is specified but \fB\-\-count\fP repeating reports. If \fB--interval\fP is specified but \fB--count\fP
is not, reports will continue to repeat until interrupted. is not, reports will continue to repeat until interrupted.
The default interval is one second. The default interval is one second.
. .
.HP .HP
.BR \-\-manglename .BR --manglename
.BR auto | hex | none .BR auto | hex | none
.br .br
Mangle any character not on a whitelist using mangling_mode when Mangle any character not on a whitelist using mangling_mode when
processing device\-mapper device names and UUIDs. The names and UUIDs processing device-mapper device names and UUIDs. The names and UUIDs
are mangled on input and unmangled on output where the mangling mode are mangled on input and unmangled on output where the mangling mode
is one of: is one of:
\fBauto\fP (only do the mangling if not mangled yet, do nothing \fBauto\fP (only do the mangling if not mangled yet, do nothing
@ -458,7 +458,7 @@ if already mangled, error on mixed),
\fBhex\fP (always do the mangling) and \fBhex\fP (always do the mangling) and
\fBnone\fP (no mangling). \fBnone\fP (no mangling).
Default mode is \fB#DEFAULT_MANGLING#\fP. Default mode is \fB#DEFAULT_MANGLING#\fP.
Character whitelist: 0-9, A\-Z, a\-z, #+-.:=@_. This whitelist is Character whitelist: 0-9, A-Z, a-z, #+-.:=@_. This whitelist is
also supported by udev. Any character not on a whitelist is replaced also supported by udev. Any character not on a whitelist is replaced
with its hex value (two digits) prefixed by \\x. with its hex value (two digits) prefixed by \\x.
Mangling mode could be also set through Mangling mode could be also set through
@ -466,69 +466,69 @@ Mangling mode could be also set through
environment variable. environment variable.
. .
.HP .HP
.BR \-j | \-\-major .BR -j | --major
.IR major .IR major
.br .br
Specify the major number. Specify the major number.
. .
.HP .HP
.BR \-m | \-\-minor .BR -m | --minor
.IR minor .IR minor
.br .br
Specify the minor number. Specify the minor number.
. .
.HP .HP
.BR \-n | \-\-notable .BR -n | --notable
.br .br
When creating a device, don't load any table. When creating a device, don't load any table.
. .
.HP .HP
.BR \-\-nameprefixes .BR --nameprefixes
.br .br
Add a "DM_" prefix plus the field name to the output. Useful with Add a "DM_" prefix plus the field name to the output. Useful with
\fB\-\-noheadings\fP to produce a list of \fB--noheadings\fP to produce a list of
field=value pairs that can be used to set environment variables field=value pairs that can be used to set environment variables
(for example, in (for example, in
.BR udev (7) .BR udev (7)
rules). rules).
. .
.HP .HP
.BR \-\-noheadings .BR --noheadings
Suppress the headings line when using columnar output. Suppress the headings line when using columnar output.
. .
.HP .HP
.BR \-\-noflush .BR --noflush
Do not flush outstading I/O when suspending a device, or do not Do not flush outstading I/O when suspending a device, or do not
commit thin\-pool metadata when obtaining thin\-pool status. commit thin-pool metadata when obtaining thin-pool status.
. .
.HP .HP
.BR \-\-nolockfs .BR --nolockfs
.br .br
Do not attempt to synchronize filesystem eg, when suspending a device. Do not attempt to synchronize filesystem eg, when suspending a device.
. .
.HP .HP
.BR \-\-noopencount .BR --noopencount
.br .br
Tell the kernel not to supply the open reference count for the device. Tell the kernel not to supply the open reference count for the device.
. .
.HP .HP
.BR \-\-noudevrules .BR --noudevrules
.br .br
Do not allow udev to manage nodes for devices in device\-mapper directory. Do not allow udev to manage nodes for devices in device-mapper directory.
. .
.HP .HP
.BR \-\-noudevsync .BR --noudevsync
.br .br
Do not synchronise with udev when creating, renaming or removing devices. Do not synchronise with udev when creating, renaming or removing devices.
. .
.HP .HP
.BR \-o | \-\-options .BR -o | --options
.IR options .IR options
.br .br
Specify which fields to display. Specify which fields to display.
. .
.HP .HP
.BR \-\-readahead .BR --readahead
.RB [ + ] \fIsectors | auto | none .RB [ + ] \fIsectors | auto | none
.br .br
Specify read ahead size in units of sectors. Specify read ahead size in units of sectors.
@ -539,16 +539,16 @@ smaller than the value chosen by the kernel.
The value \fBnone\fP is equivalent to specifying zero. The value \fBnone\fP is equivalent to specifying zero.
. .
.HP .HP
.BR \-r | \-\-readonly .BR -r | --readonly
.br .br
Set the table being loaded read\-only. Set the table being loaded read-only.
. .
.HP .HP
.BR \-S | \-\-select .BR -S | --select
.IR selection .IR selection
.br .br
Display only rows that match \fIselection\fP criteria. All rows are displayed Display only rows that match \fIselection\fP criteria. All rows are displayed
with the additional "selected" column (\fB\-o selected\fP) showing 1 if the row with the additional "selected" column (\fB-o selected\fP) showing 1 if the row
matches the \fIselection\fP and 0 otherwise. The selection criteria are defined matches the \fIselection\fP and 0 otherwise. The selection criteria are defined
by specifying column names and their valid values while making use of by specifying column names and their valid values while making use of
supported comparison operators. As a quick help and to see full list of supported comparison operators. As a quick help and to see full list of
@ -557,14 +557,14 @@ selection operators, check the output of \fBdmsetup\ info\ -c\ -S\ help\fP
command. command.
. .
.HP .HP
.BR \-\-table .BR --table
.IR table .IR table
.br .br
Specify a one\-line table directly on the command line. Specify a one-line table directly on the command line.
See below for more information on the table format. See below for more information on the table format.
. .
.HP .HP
.BR \-\-udevcookie .BR --udevcookie
.IR cookie .IR cookie
.br .br
Use cookie for udev synchronisation. Use cookie for udev synchronisation.
@ -573,29 +573,29 @@ multiple different devices. It's not adviced to combine different
operations on the single device. operations on the single device.
. .
.HP .HP
.BR \-u | \-\-uuid .BR -u | --uuid
.br .br
Specify the \fIuuid\fP. Specify the \fIuuid\fP.
. .
.HP .HP
.BR \-y | \-\-yes .BR -y | --yes
.br .br
Answer yes to all prompts automatically. Answer yes to all prompts automatically.
. .
.HP .HP
.BR \-v | \-\-verbose .BR -v | --verbose
.RB [ \-v | \-\-verbose ] .RB [ -v | --verbose ]
.br .br
Produce additional output. Produce additional output.
. .
.HP .HP
.BR \-\-verifyudev .BR --verifyudev
.br .br
If udev synchronisation is enabled, verify that udev operations get performed If udev synchronisation is enabled, verify that udev operations get performed
correctly and try to fix up the device nodes afterwards if not. correctly and try to fix up the device nodes afterwards if not.
. .
.HP .HP
.BR \-\-version .BR --version
.br .br
Display the library and kernel driver version. Display the library and kernel driver version.
.br .br
@ -612,7 +612,7 @@ Destroys the table in the inactive table slot for device_name.
.br .br
Creates a device with the given name. Creates a device with the given name.
If \fItable\fP or \fItable_file\fP is supplied, the table is loaded and made live. If \fItable\fP or \fItable_file\fP is supplied, the table is loaded and made live.
Otherwise a table is read from standard input unless \fB\-\-notable\fP is used. Otherwise a table is read from standard input unless \fB--notable\fP is used.
The optional \fIuuid\fP can be used in place of The optional \fIuuid\fP can be used in place of
device_name in subsequent dmsetup commands. device_name in subsequent dmsetup commands.
If successful the device will appear in table and for live If successful the device will appear in table and for live
@ -626,7 +626,7 @@ Outputs a list of devices referenced by the live table for the specified
device. Device names on output can be customised by following \fIoptions\fP: device. Device names on output can be customised by following \fIoptions\fP:
\fBdevno\fP (major and minor pair, used by default), \fBdevno\fP (major and minor pair, used by default),
\fBblkdevname\fP (block device name), \fBblkdevname\fP (block device name),
\fBdevname\fP (map name for device\-mapper devices, equal to blkdevname otherwise). \fBdevname\fP (map name for device-mapper devices, equal to blkdevname otherwise).
. .
.HP .HP
.CMD_HELP .CMD_HELP
@ -640,7 +640,7 @@ the list of report fields.
Outputs some brief information about the device in the form: Outputs some brief information about the device in the form:
.RS .RS
.RS .RS
State: SUSPENDED|ACTIVE, READ\-ONLY State: SUSPENDED|ACTIVE, READ-ONLY
Tables present: LIVE and/or INACTIVE Tables present: LIVE and/or INACTIVE
Open reference count Open reference count
Last event sequence number (used by \fBwait\fP) Last event sequence number (used by \fBwait\fP)
@ -653,7 +653,7 @@ Outputs some brief information about the device in the form:
.CMD_INFOLONG .CMD_INFOLONG
.br .br
Output you can customise. Output you can customise.
Fields are comma\-separated and chosen from the following list: Fields are comma-separated and chosen from the following list:
.BR name , .BR name ,
.BR major , .BR major ,
.BR minor , .BR minor ,
@ -666,11 +666,11 @@ Attributes are:
.RI ( L )ive, .RI ( L )ive,
.RI ( I )nactive, .RI ( I )nactive,
.RI ( s )uspended, .RI ( s )uspended,
.RI ( r )ead\-only, .RI ( r )ead-only,
.RI read\-( w )rite. .RI read-( w )rite.
Precede the list with '\fB+\fP' to append Precede the list with '\fB+\fP' to append
to the default selection of columns instead of replacing it. to the default selection of columns instead of replacing it.
Precede any sort field with '\fB\-\fP' for a reverse sort on that column. Precede any sort field with '\fB-\fP' for a reverse sort on that column.
. .
.HP .HP
.CMD_LS .CMD_LS
@ -681,9 +681,9 @@ each device. The device name is appended to the supplied command.
Device names on output can be customised by following options: Device names on output can be customised by following options:
\fBdevno\fP (major and minor pair, used by default), \fBdevno\fP (major and minor pair, used by default),
\fBblkdevname\fP (block device name), \fBblkdevname\fP (block device name),
\fBdevname\fP (map name for device\-mapper devices, equal to blkdevname otherwise). \fBdevname\fP (map name for device-mapper devices, equal to blkdevname otherwise).
\fB\-\-tree\fP displays dependencies between devices as a tree. \fB--tree\fP displays dependencies between devices as a tree.
It accepts a comma\-separate list of \fIoptions\fP. It accepts a comma-separate list of \fIoptions\fP.
Some specify the information displayed against each node: Some specify the information displayed against each node:
.BR device / nodevice ; .BR device / nodevice ;
.BR blkdevname ; .BR blkdevname ;
@ -702,14 +702,14 @@ If neither is supplied, reads a table from standard input.
.HP .HP
.CMD_MANGLE .CMD_MANGLE
.br .br
Ensure existing device\-mapper \fIdevice_name\fP and UUID is in the correct mangled Ensure existing device-mapper \fIdevice_name\fP and UUID is in the correct mangled
form containing only whitelisted characters (supported by udev) and do form containing only whitelisted characters (supported by udev) and do
a rename if necessary. Any character not on the whitelist will be mangled a rename if necessary. Any character not on the whitelist will be mangled
based on the \fB\-\-manglename\fP setting. Automatic rename works only for device based on the \fB--manglename\fP setting. Automatic rename works only for device
names and not for device UUIDs because the kernel does not allow changing names and not for device UUIDs because the kernel does not allow changing
the UUID of active devices. Any incorrect UUIDs are reported only and they the UUID of active devices. Any incorrect UUIDs are reported only and they
must be manually corrected by deactivating the device first and then must be manually corrected by deactivating the device first and then
reactivating it with proper mangling mode used (see also \fB\-\-manglename\fP). reactivating it with proper mangling mode used (see also \fB--manglename\fP).
. .
.HP .HP
.CMD_MESSAGE .CMD_MESSAGE
@ -721,23 +721,23 @@ Send message to target. If sector not needed use 0.
.br .br
Ensure that the node in \fI/dev/mapper\fP for \fIdevice_name\fP is correct. Ensure that the node in \fI/dev/mapper\fP for \fIdevice_name\fP is correct.
If no device_name is supplied, ensure that all nodes in \fI/dev/mapper\fP If no device_name is supplied, ensure that all nodes in \fI/dev/mapper\fP
correspond to mapped devices currently loaded by the device\-mapper kernel correspond to mapped devices currently loaded by the device-mapper kernel
driver, adding, changing or removing nodes as necessary. driver, adding, changing or removing nodes as necessary.
. .
.HP .HP
.CMD_REMOVE .CMD_REMOVE
.br .br
Removes a device. It will no longer be visible to dmsetup. Open devices Removes a device. It will no longer be visible to dmsetup. Open devices
cannot be removed, but adding \fB\-\-force\fP will replace the table with one cannot be removed, but adding \fB--force\fP will replace the table with one
that fails all I/O. \fB\-\-deferred\fP will enable deferred removal of open that fails all I/O. \fB--deferred\fP will enable deferred removal of open
devices - the device will be removed when the last user closes it. The deferred devices - the device will be removed when the last user closes it. The deferred
removal feature is supported since version 4.27.0 of the device\-mapper removal feature is supported since version 4.27.0 of the device-mapper
driver available in upstream kernel version 3.13. (Use \fBdmsetup version\fP driver available in upstream kernel version 3.13. (Use \fBdmsetup version\fP
to check this.) If an attempt to remove a device fails, perhaps because a process run to check this.) If an attempt to remove a device fails, perhaps because a process run
from a quick udev rule temporarily opened the device, the \fB\-\-retry\fP from a quick udev rule temporarily opened the device, the \fB--retry\fP
option will cause the operation to be retried for a few seconds before failing. option will cause the operation to be retried for a few seconds before failing.
Do NOT combine Do NOT combine
\fB\-\-force\fP and \fB\-\-udevcookie\fP, as udev may start to process udev \fB--force\fP and \fB--udevcookie\fP, as udev may start to process udev
rules in the middle of error target replacement and result in nondeterministic rules in the middle of error target replacement and result in nondeterministic
result. result.
. .
@ -746,10 +746,10 @@ result.
.br .br
Attempts to remove all device definitions i.e. reset the driver. This also runs Attempts to remove all device definitions i.e. reset the driver. This also runs
\fBmknodes\fP afterwards. Use with care! Open devices cannot be removed, but \fBmknodes\fP afterwards. Use with care! Open devices cannot be removed, but
adding \fB\-\-force\fP will replace the table with one that fails all I/O. adding \fB--force\fP will replace the table with one that fails all I/O.
\fB\-\-deferred\fP will enable deferred removal of open devices - the device \fB--deferred\fP will enable deferred removal of open devices - the device
will be removed when the last user closes it. The deferred removal feature is will be removed when the last user closes it. The deferred removal feature is
supported since version 4.27.0 of the device\-mapper driver available in supported since version 4.27.0 of the device-mapper driver available in
upstream kernel version 3.13. upstream kernel version 3.13.
. .
.HP .HP
@ -766,9 +766,9 @@ After a uuid has been set it cannot be changed.
.HP .HP
.CMD_RESUME .CMD_RESUME
.br .br
Un\-suspends a device. Un-suspends a device.
If an inactive table has been loaded, it becomes live. If an inactive table has been loaded, it becomes live.
Postponed I/O then gets re\-queued for processing. Postponed I/O then gets re-queued for processing.
. .
.HP .HP
.CMD_SETGEOMETRY .CMD_SETGEOMETRY
@ -797,8 +797,8 @@ for more details.
.CMD_STATUS .CMD_STATUS
.br .br
Outputs status information for each of the device's targets. Outputs status information for each of the device's targets.
With \fB\-\-target\fP, only information relating to the specified target type With \fB--target\fP, only information relating to the specified target type
any is displayed. With \fB\-\-noflush\fP, the thin target (from version 1.3.0) any is displayed. With \fB--noflush\fP, the thin target (from version 1.3.0)
doesn't commit any outstanding changes to disk before reporting its statistics. doesn't commit any outstanding changes to disk before reporting its statistics.
.HP .HP
@ -808,9 +808,9 @@ Suspends a device. Any I/O that has already been mapped by the device
but has not yet completed will be flushed. Any further I/O to that but has not yet completed will be flushed. Any further I/O to that
device will be postponed for as long as the device is suspended. device will be postponed for as long as the device is suspended.
If there's a filesystem on the device which supports the operation, If there's a filesystem on the device which supports the operation,
an attempt will be made to sync it first unless \fB\-\-nolockfs\fP is specified. an attempt will be made to sync it first unless \fB--nolockfs\fP is specified.
Some targets such as recent (October 2006) versions of multipath may support Some targets such as recent (October 2006) versions of multipath may support
the \fB\-\-noflush\fP option. This lets outstanding I/O that has not yet reached the the \fB--noflush\fP option. This lets outstanding I/O that has not yet reached the
device to remain unflushed. device to remain unflushed.
. .
.HP .HP
@ -818,17 +818,17 @@ device to remain unflushed.
.br .br
Outputs the current table for the device in a format that can be fed Outputs the current table for the device in a format that can be fed
back in using the create or load commands. back in using the create or load commands.
With \fB\-\-target\fP, only information relating to the specified target type With \fB--target\fP, only information relating to the specified target type
is displayed. is displayed.
Real encryption keys are suppressed in the table output for the crypt Real encryption keys are suppressed in the table output for the crypt
target unless the \fB\-\-showkeys\fP parameter is supplied. Kernel key target unless the \fB--showkeys\fP parameter is supplied. Kernel key
references prefixed with \fB:\fP are not affected by the parameter and get references prefixed with \fB:\fP are not affected by the parameter and get
displayed always. displayed always.
. .
.HP .HP
.CMD_TARGETS .CMD_TARGETS
.br .br
Displays the names and versions of the currently\-loaded targets. Displays the names and versions of the currently-loaded targets.
. .
.HP .HP
.CMD_UDEVCOMPLETE .CMD_UDEVCOMPLETE
@ -844,7 +844,7 @@ Any process waiting on a cookie will be resumed immediately.
.HP .HP
.CMD_UDEVCOOKIES .CMD_UDEVCOOKIES
.br .br
List all existing cookies. Cookies are system\-wide semaphores with keys List all existing cookies. Cookies are system-wide semaphores with keys
prefixed by two predefined bytes (0x0D4D). prefixed by two predefined bytes (0x0D4D).
. .
.HP .HP
@ -855,10 +855,10 @@ The output is a cookie value. Normally we don't need to create cookies since
dmsetup creates and destroys them for each action automatically. However, we can dmsetup creates and destroys them for each action automatically. However, we can
generate one explicitly to group several actions together and use only one generate one explicitly to group several actions together and use only one
cookie instead. We can define a cookie to use for each relevant command by using cookie instead. We can define a cookie to use for each relevant command by using
\fB\-\-udevcookie\fP option. Alternatively, we can export this value into the environment \fB--udevcookie\fP option. Alternatively, we can export this value into the environment
of the dmsetup process as \fBDM_UDEV_COOKIE\fP variable and it will be used automatically of the dmsetup process as \fBDM_UDEV_COOKIE\fP variable and it will be used automatically
with all subsequent commands until it is unset. with all subsequent commands until it is unset.
Invoking this command will create system\-wide semaphore that needs to be cleaned Invoking this command will create system-wide semaphore that needs to be cleaned
up explicitly by calling udevreleasecookie command. up explicitly by calling udevreleasecookie command.
. .
.HP .HP
@ -888,16 +888,16 @@ Outputs version information.
.CMD_WAIT .CMD_WAIT
.br .br
Sleeps until the event counter for device_name exceeds event_nr. Sleeps until the event counter for device_name exceeds event_nr.
Use \fB\-v\fP to see the event number returned. Use \fB-v\fP to see the event number returned.
To wait until the next event is triggered, use \fBinfo\fP to find To wait until the next event is triggered, use \fBinfo\fP to find
the last event number. the last event number.
With \fB\-\-noflush\fP, the thin target (from version 1.3.0) doesn't commit With \fB--noflush\fP, the thin target (from version 1.3.0) doesn't commit
any outstanding changes to disk before reporting its statistics. any outstanding changes to disk before reporting its statistics.
. .
.HP .HP
.CMD_WIPE_TABLE .CMD_WIPE_TABLE
.br .br
Wait for any I/O in\-flight through the device to complete, then Wait for any I/O in-flight through the device to complete, then
replace the table with a new table that fails any new I/O replace the table with a new table that fails any new I/O
sent to the device. If successful, this should release any devices sent to the device. If successful, this should release any devices
held open by the device's table(s). held open by the device's table(s).
@ -937,8 +937,8 @@ for creating devices with holes in them.
.TP .TP
.B zero .B zero
Returns blocks of zeroes on reads. Any data written is discarded silently. Returns blocks of zeroes on reads. Any data written is discarded silently.
This is a block\-device equivalent of the \fI/dev/zero\fP This is a block-device equivalent of the \fI/dev/zero\fP
character\-device data sink described in \fBnull\fP(4). character-device data sink described in \fBnull\fP(4).
.P .P
More complex targets include: More complex targets include:
.TP .TP
@ -969,14 +969,14 @@ Offers an interface to the kernel's software raid driver, md.
.B snapshot .B snapshot
Supports snapshots of devices. Supports snapshots of devices.
.TP .TP
.BR thin ", " thin\-pool .BR thin ", " thin-pool
Supports thin provisioning of devices and also provides a better snapshot support. Supports thin provisioning of devices and also provides a better snapshot support.
.P .P
To find out more about the various targets and their table formats and status To find out more about the various targets and their table formats and status
lines, please read the files in the Documentation/device\-mapper directory in lines, please read the files in the Documentation/device-mapper directory in
the kernel source tree. the kernel source tree.
(Your distribution might include a copy of this information in the (Your distribution might include a copy of this information in the
documentation directory for the device\-mapper package.) documentation directory for the device-mapper package.)
. .
.SH EXAMPLES .SH EXAMPLES
. .
@ -1005,11 +1005,11 @@ Defaults to "\fI/dev\fP" and must be an absolute path.
.TP .TP
.B DM_UDEV_COOKIE .B DM_UDEV_COOKIE
A cookie to use for all relevant commands to synchronize with udev processing. A cookie to use for all relevant commands to synchronize with udev processing.
It is an alternative to using \fB\-\-udevcookie\fP option. It is an alternative to using \fB--udevcookie\fP option.
.TP .TP
.B DM_DEFAULT_NAME_MANGLING_MODE .B DM_DEFAULT_NAME_MANGLING_MODE
A default mangling mode. Defaults to "\fB#DEFAULT_MANGLING#\fP" A default mangling mode. Defaults to "\fB#DEFAULT_MANGLING#\fP"
and it is an alternative to using \fB\-\-manglename\fP option. and it is an alternative to using \fB--manglename\fP option.
. .
.SH AUTHORS .SH AUTHORS
. .
@ -1023,4 +1023,4 @@ Original version: Joe Thornber <thornber@redhat.com>
.P .P
LVM2 resource page: https://www.sourceware.org/lvm2/ LVM2 resource page: https://www.sourceware.org/lvm2/
.br .br
Device\-mapper resource page: http://sources.redhat.com/dm/ Device-mapper resource page: http://sources.redhat.com/dm/

File diff suppressed because it is too large Load Diff

View File

@ -35,32 +35,32 @@ filesystem.
.SH OPTIONS .SH OPTIONS
. .
.HP .HP
.BR \-e | \-\-ext\-offline .BR -e | --ext-offline
.br .br
Unmount ext2/ext3/ext4 filesystem before doing resize. Unmount ext2/ext3/ext4 filesystem before doing resize.
. .
.HP .HP
.BR \-f | \-\-force .BR -f | --force
.br .br
Bypass some sanity checks. Bypass some sanity checks.
. .
.HP .HP
.BR \-h | \-\-help .BR -h | --help
.br .br
Display the help text. Display the help text.
. .
.HP .HP
.BR \-n | \-\-dry\-run .BR -n | --dry-run
.br .br
Print commands without running them. Print commands without running them.
. .
.HP .HP
.BR \-v | \-\-verbose .BR -v | --verbose
.br .br
Be more verbose. Be more verbose.
. .
.HP .HP
.BR \-y | \-\-yes .BR -y | --yes
.br .br
Answer "yes" at any prompts. Answer "yes" at any prompts.
. .
@ -87,7 +87,7 @@ If \fI/dev/vg/test\fP contains ext2/ext3/ext4
filesystem it will be unmounted prior the resize. filesystem it will be unmounted prior the resize.
All [y/n] questions will be answered 'y'. All [y/n] questions will be answered 'y'.
.sp .sp
.B fsadm \-e \-y resize /dev/vg/test 1000M .B fsadm -e -y resize /dev/vg/test 1000M
. .
.SH ENVIRONMENT VARIABLES .SH ENVIRONMENT VARIABLES
. .

View File

@ -1,4 +1,4 @@
.SH EXAMPLES .SH EXAMPLES
Change LV permission to read-only: Change LV permission to read-only:
.sp .sp
.B lvchange \-pr vg00/lvol1 .B lvchange -pr vg00/lvol1

View File

@ -4,7 +4,7 @@ The LV type is also called the segment type or segtype.
To display the current LV type, run the command: To display the current LV type, run the command:
.B lvs \-o name,segtype .B lvs -o name,segtype
.I LV .I LV
The The

View File

@ -1,7 +1,7 @@
.SH NOTES .SH NOTES
This previous command syntax would perform two different operations: This previous command syntax would perform two different operations:
.br .br
\fBlvconvert \-\-thinpool\fP \fILV1\fP \fB\-\-poolmetadata\fP \fILV2\fP \fBlvconvert --thinpool\fP \fILV1\fP \fB--poolmetadata\fP \fILV2\fP
.br .br
If LV1 was not a thin pool, the command would convert LV1 to If LV1 was not a thin pool, the command would convert LV1 to
a thin pool, optionally using a specified LV for metadata. a thin pool, optionally using a specified LV for metadata.
@ -11,7 +11,7 @@ the current metadata LV with LV2 (for repair purposes.)
In the same way, this previous command syntax would perform two different In the same way, this previous command syntax would perform two different
operations: operations:
.br .br
\fBlvconvert \-\-cachepool\fP \fILV1\fP \fB\-\-poolmetadata\fP \fILV2\fP \fBlvconvert --cachepool\fP \fILV1\fP \fB--poolmetadata\fP \fILV2\fP
.br .br
If LV1 was not a cache pool, the command would convert LV1 to If LV1 was not a cache pool, the command would convert LV1 to
a cache pool, optionally using a specified LV for metadata. a cache pool, optionally using a specified LV for metadata.
@ -20,93 +20,93 @@ the current metadata LV with LV2 (for repair purposes.)
.SH EXAMPLES .SH EXAMPLES
Convert a linear LV to a two-way mirror LV. Convert a linear LV to a two-way mirror LV.
.br .br
.B lvconvert \-\-type mirror \-\-mirrors 1 vg/lvol1 .B lvconvert --type mirror --mirrors 1 vg/lvol1
Convert a linear LV to a two-way RAID1 LV. Convert a linear LV to a two-way RAID1 LV.
.br .br
.B lvconvert \-\-type raid1 \-\-mirrors 1 vg/lvol1 .B lvconvert --type raid1 --mirrors 1 vg/lvol1
Convert a mirror LV to use an in\-memory log. Convert a mirror LV to use an in-memory log.
.br .br
.B lvconvert \-\-mirrorlog core vg/lvol1 .B lvconvert --mirrorlog core vg/lvol1
Convert a mirror LV to use a disk log. Convert a mirror LV to use a disk log.
.br .br
.B lvconvert \-\-mirrorlog disk vg/lvol1 .B lvconvert --mirrorlog disk vg/lvol1
Convert a mirror or raid1 LV to a linear LV. Convert a mirror or raid1 LV to a linear LV.
.br .br
.B lvconvert \-\-type linear vg/lvol1 .B lvconvert --type linear vg/lvol1
Convert a mirror LV to a raid1 LV with the same number of images. Convert a mirror LV to a raid1 LV with the same number of images.
.br .br
.B lvconvert \-\-type raid1 vg/lvol1 .B lvconvert --type raid1 vg/lvol1
Convert a linear LV to a two-way mirror LV, allocating new extents from specific Convert a linear LV to a two-way mirror LV, allocating new extents from specific
PV ranges. PV ranges.
.br .br
.B lvconvert \-\-mirrors 1 vg/lvol1 /dev/sda:0\-15 /dev/sdb:0\-15 .B lvconvert --mirrors 1 vg/lvol1 /dev/sda:0-15 /dev/sdb:0-15
Convert a mirror LV to a linear LV, freeing physical extents from a specific PV. Convert a mirror LV to a linear LV, freeing physical extents from a specific PV.
.br .br
.B lvconvert \-\-type linear vg/lvol1 /dev/sda .B lvconvert --type linear vg/lvol1 /dev/sda
Split one image from a mirror or raid1 LV, making it a new LV. Split one image from a mirror or raid1 LV, making it a new LV.
.br .br
.B lvconvert \-\-splitmirrors 1 \-\-name lv_split vg/lvol1 .B lvconvert --splitmirrors 1 --name lv_split vg/lvol1
Split one image from a raid1 LV, and track changes made to the raid1 LV Split one image from a raid1 LV, and track changes made to the raid1 LV
while the split image remains detached. while the split image remains detached.
.br .br
.B lvconvert \-\-splitmirrors 1 \-\-trackchanges vg/lvol1 .B lvconvert --splitmirrors 1 --trackchanges vg/lvol1
Merge an image (that was previously created with \-\-splitmirrors and Merge an image (that was previously created with --splitmirrors and
\-\-trackchanges) back into the original raid1 LV. --trackchanges) back into the original raid1 LV.
.br .br
.B lvconvert \-\-mergemirrors vg/lvol1_rimage_1 .B lvconvert --mergemirrors vg/lvol1_rimage_1
Replace PV /dev/sdb1 with PV /dev/sdf1 in a raid1/4/5/6/10 LV. Replace PV /dev/sdb1 with PV /dev/sdf1 in a raid1/4/5/6/10 LV.
.br .br
.B lvconvert \-\-replace /dev/sdb1 vg/lvol1 /dev/sdf1 .B lvconvert --replace /dev/sdb1 vg/lvol1 /dev/sdf1
Replace 3 PVs /dev/sd[b-d]1 with PVs /dev/sd[f-h]1 in a raid1 LV. Replace 3 PVs /dev/sd[b-d]1 with PVs /dev/sd[f-h]1 in a raid1 LV.
.br .br
.B lvconvert \-\-replace /dev/sdb1 \-\-replace /dev/sdc1 \-\-replace /dev/sdd1 .B lvconvert --replace /dev/sdb1 --replace /dev/sdc1 --replace /dev/sdd1
.RS .RS
.B vg/lvol1 /dev/sd[fgh]1 .B vg/lvol1 /dev/sd[fgh]1
.RE .RE
Replace the maximum of 2 PVs /dev/sd[bc]1 with PVs /dev/sd[gh]1 in a raid6 LV. Replace the maximum of 2 PVs /dev/sd[bc]1 with PVs /dev/sd[gh]1 in a raid6 LV.
.br .br
.B lvconvert \-\-replace /dev/sdb1 \-\-replace /dev/sdc1 vg/lvol1 /dev/sd[gh]1 .B lvconvert --replace /dev/sdb1 --replace /dev/sdc1 vg/lvol1 /dev/sd[gh]1
Convert an LV into a thin LV in the specified thin pool. The existing LV Convert an LV into a thin LV in the specified thin pool. The existing LV
is used as an external read\-only origin for the new thin LV. is used as an external read-only origin for the new thin LV.
.br .br
.B lvconvert \-\-type thin \-\-thinpool vg/tpool1 vg/lvol1 .B lvconvert --type thin --thinpool vg/tpool1 vg/lvol1
Convert an LV into a thin LV in the specified thin pool. The existing LV Convert an LV into a thin LV in the specified thin pool. The existing LV
is used as an external read\-only origin for the new thin LV, and is is used as an external read-only origin for the new thin LV, and is
renamed "external". renamed "external".
.br .br
.B lvconvert \-\-type thin \-\-thinpool vg/tpool1 .B lvconvert --type thin --thinpool vg/tpool1
.RS .RS
.B \-\-originname external vg/lvol1 .B --originname external vg/lvol1
.RE .RE
Convert an LV to a cache pool LV using another specified LV for cache pool Convert an LV to a cache pool LV using another specified LV for cache pool
metadata. metadata.
.br .br
.B lvconvert \-\-type cache-pool \-\-poolmetadata vg/poolmeta1 vg/lvol1 .B lvconvert --type cache-pool --poolmetadata vg/poolmeta1 vg/lvol1
Convert an LV to a cache LV using the specified cache pool and chunk size. Convert an LV to a cache LV using the specified cache pool and chunk size.
.br .br
.B lvconvert \-\-type cache \-\-cachepool vg/cpool1 \-c 128 vg/lvol1 .B lvconvert --type cache --cachepool vg/cpool1 -c 128 vg/lvol1
Detach and keep the cache pool from a cache LV. Detach and keep the cache pool from a cache LV.
.br .br
.B lvconvert \-\-splitcache vg/lvol1 .B lvconvert --splitcache vg/lvol1
Detach and remove the cache pool from a cache LV. Detach and remove the cache pool from a cache LV.
.br .br
.B lvconvert \-\-uncache vg/lvol1 .B lvconvert --uncache vg/lvol1

View File

@ -26,11 +26,11 @@ virtual size rather than a physical size. A cache LV is the combination of
a standard LV with a cache pool, used to cache active portions of the LV a standard LV with a cache pool, used to cache active portions of the LV
to improve performance. to improve performance.
.SS Usage notes .SS Usage notes
In the usage section below, \fB\-\-size\fP \fISize\fP can be replaced In the usage section below, \fB--size\fP \fISize\fP can be replaced
with \fB\-\-extents\fP \fINumber\fP. See both descriptions with \fB--extents\fP \fINumber\fP. See both descriptions
the options section. the options section.
In the usage section below, \fB\-\-name\fP is omitted from the required In the usage section below, \fB--name\fP is omitted from the required
options, even though it is typically used. When the name is not options, even though it is typically used. When the name is not
specified, a new LV name is generated with the "lvol" prefix and a unique specified, a new LV name is generated with the "lvol" prefix and a unique
numeric suffix. Also see the description in the options section. numeric suffix. Also see the description in the options section.

View File

@ -3,56 +3,56 @@
Create a striped LV with 3 stripes, a stripe size of 8KiB and a size of 100MiB. Create a striped LV with 3 stripes, a stripe size of 8KiB and a size of 100MiB.
The LV name is chosen by lvcreate. The LV name is chosen by lvcreate.
.br .br
.B lvcreate \-i 3 \-I 8 \-L 100m vg00 .B lvcreate -i 3 -I 8 -L 100m vg00
Create a raid1 LV with two images, and a useable size of 500 MiB. This Create a raid1 LV with two images, and a useable size of 500 MiB. This
operation requires two devices, one for each mirror image. RAID metadata operation requires two devices, one for each mirror image. RAID metadata
(superblock and bitmap) is also included on the two devices. (superblock and bitmap) is also included on the two devices.
.br .br
.B lvcreate \-\-type raid1 \-m1 \-L 500m \-n mylv vg00 .B lvcreate --type raid1 -m1 -L 500m -n mylv vg00
Create a mirror LV with two images, and a useable size of 500 MiB. Create a mirror LV with two images, and a useable size of 500 MiB.
This operation requires three devices: two for mirror images and This operation requires three devices: two for mirror images and
one for a disk log. one for a disk log.
.br .br
.B lvcreate \-\-type mirror \-m1 \-L 500m \-n mylv vg00 .B lvcreate --type mirror -m1 -L 500m -n mylv vg00
Create a mirror LV with 2 images, and a useable size of 500 MiB. Create a mirror LV with 2 images, and a useable size of 500 MiB.
This operation requires 2 devices because the log is in memory. This operation requires 2 devices because the log is in memory.
.br .br
.B lvcreate \-\-type mirror \-m1 \-\-mirrorlog core \-L 500m \-n mylv vg00 .B lvcreate --type mirror -m1 --mirrorlog core -L 500m -n mylv vg00
Create a copy\-on\-write snapshot of an LV: Create a copy-on-write snapshot of an LV:
.br .br
.B lvcreate \-\-snapshot \-\-size 100m \-\-name mysnap vg00/mylv .B lvcreate --snapshot --size 100m --name mysnap vg00/mylv
Create a copy\-on\-write snapshot with a size sufficient Create a copy-on-write snapshot with a size sufficient
for overwriting 20% of the size of the original LV. for overwriting 20% of the size of the original LV.
.br .br
.B lvcreate \-s \-l 20%ORIGIN \-n mysnap vg00/mylv .B lvcreate -s -l 20%ORIGIN -n mysnap vg00/mylv
Create a sparse LV with 1TiB of virtual space, and actual space just under Create a sparse LV with 1TiB of virtual space, and actual space just under
100MiB. 100MiB.
.br .br
.B lvcreate \-\-snapshot \-\-virtualsize 1t \-\-size 100m \-\-name mylv vg00 .B lvcreate --snapshot --virtualsize 1t --size 100m --name mylv vg00
Create a linear LV with a usable size of 64MiB on specific physical extents. Create a linear LV with a usable size of 64MiB on specific physical extents.
.br .br
.B lvcreate \-L 64m \-n mylv vg00 /dev/sda:0\-7 /dev/sdb:0\-7 .B lvcreate -L 64m -n mylv vg00 /dev/sda:0-7 /dev/sdb:0-7
Create a RAID5 LV with a usable size of 5GiB, 3 stripes, a stripe size of Create a RAID5 LV with a usable size of 5GiB, 3 stripes, a stripe size of
64KiB, using a total of 4 devices (including one for parity). 64KiB, using a total of 4 devices (including one for parity).
.br .br
.B lvcreate \-\-type raid5 \-L 5G \-i 3 \-I 64 \-n mylv vg00 .B lvcreate --type raid5 -L 5G -i 3 -I 64 -n mylv vg00
Create a RAID5 LV using all of the free space in the VG and spanning all the Create a RAID5 LV using all of the free space in the VG and spanning all the
PVs in the VG (note that the command will fail if there are more than 8 PVs in PVs in the VG (note that the command will fail if there are more than 8 PVs in
the VG, in which case \fB\-i 7\fP must be used to get to the current maximum of the VG, in which case \fB-i 7\fP must be used to get to the current maximum of
8 devices including parity for RaidLVs). 8 devices including parity for RaidLVs).
.br .br
.B lvcreate \-\-config allocation/raid_stripe_all_devices=1 .B lvcreate --config allocation/raid_stripe_all_devices=1
.RS .RS
.B \-\-type raid5 \-l 100%FREE \-n mylv vg00 .B --type raid5 -l 100%FREE -n mylv vg00
.RE .RE
Create RAID10 LV with a usable size of 5GiB, using 2 stripes, each on Create RAID10 LV with a usable size of 5GiB, using 2 stripes, each on
@ -62,36 +62,36 @@ differently:
but \fB-m\fP specifies the number of images in addition but \fB-m\fP specifies the number of images in addition
to the first image). to the first image).
.br .br
.B lvcreate \-\-type raid10 \-L 5G \-i 2 \-m 1 \-n mylv vg00 .B lvcreate --type raid10 -L 5G -i 2 -m 1 -n mylv vg00
Create a 1TiB thin LV, first creating a new thin pool for it, where Create a 1TiB thin LV, first creating a new thin pool for it, where
the thin pool has 100MiB of space, uses 2 stripes, has a 64KiB stripe the thin pool has 100MiB of space, uses 2 stripes, has a 64KiB stripe
size, and 256KiB chunk size. size, and 256KiB chunk size.
.br .br
.B lvcreate \-\-type thin \-\-name mylv \-\-thinpool mypool .B lvcreate --type thin --name mylv --thinpool mypool
.RS .RS
.B \-V 1t \-L 100m \-i 2 \-I 64 \-c 256 vg00 .B -V 1t -L 100m -i 2 -I 64 -c 256 vg00
.RE .RE
Create a thin snapshot of a thin LV (the size option must not be Create a thin snapshot of a thin LV (the size option must not be
used, otherwise a copy-on-write snapshot would be created). used, otherwise a copy-on-write snapshot would be created).
.br .br
.B lvcreate \-\-snapshot \-\-name mysnap vg00/thinvol .B lvcreate --snapshot --name mysnap vg00/thinvol
Create a thin snapshot of the read-only inactive LV named "origin" Create a thin snapshot of the read-only inactive LV named "origin"
which becomes an external origin for the thin snapshot LV. which becomes an external origin for the thin snapshot LV.
.br .br
.B lvcreate \-\-snapshot \-\-name mysnap \-\-thinpool mypool vg00/origin .B lvcreate --snapshot --name mysnap --thinpool mypool vg00/origin
Create a cache pool from a fast physical device. The cache pool can Create a cache pool from a fast physical device. The cache pool can
then be used to cache an LV. then be used to cache an LV.
.br .br
.B lvcreate \-\-type cache-pool \-L 1G \-n my_cpool vg00 /dev/fast1 .B lvcreate --type cache-pool -L 1G -n my_cpool vg00 /dev/fast1
Create a cache LV, first creating a new origin LV on a slow physical device, Create a cache LV, first creating a new origin LV on a slow physical device,
then combining the new origin LV with an existing cache pool. then combining the new origin LV with an existing cache pool.
.br .br
.B lvcreate \-\-type cache \-\-cachepool my_cpool .B lvcreate --type cache --cachepool my_cpool
.RS .RS
.B \-L 100G \-n mylv vg00 /dev/slow1 .B -L 100G -n mylv vg00 /dev/slow1
.RE .RE

View File

@ -2,11 +2,11 @@ lvextend extends the size of an LV. This requires allocating logical
extents from the VG's free physical extents. If the extension adds a new extents from the VG's free physical extents. If the extension adds a new
LV segment, the new segment will use the existing segment type of the LV. LV segment, the new segment will use the existing segment type of the LV.
Extending a copy\-on\-write snapshot LV adds space for COW blocks. Extending a copy-on-write snapshot LV adds space for COW blocks.
Use \fBlvconvert\fP(8) to change the number of data images in a RAID or Use \fBlvconvert\fP(8) to change the number of data images in a RAID or
mirrored LV. mirrored LV.
In the usage section below, \fB\-\-size\fP \fISize\fP can be replaced In the usage section below, \fB--size\fP \fISize\fP can be replaced
with \fB\-\-extents\fP \fINumber\fP. See both descriptions with \fB--extents\fP \fINumber\fP. See both descriptions
the options section. the options section.

View File

@ -1,14 +1,14 @@
.SH EXAMPLES .SH EXAMPLES
Extend the size of an LV by 54MiB, using a specific PV. Extend the size of an LV by 54MiB, using a specific PV.
.br .br
.B lvextend \-L +54 vg01/lvol10 /dev/sdk3 .B lvextend -L +54 vg01/lvol10 /dev/sdk3
Extend the size of an LV by the amount of free Extend the size of an LV by the amount of free
space on PV /dev/sdk3. This is equivalent to specifying space on PV /dev/sdk3. This is equivalent to specifying
"\-l +100%PVS" on the command line. "-l +100%PVS" on the command line.
.br .br
.B lvextend vg01/lvol01 /dev/sdk3 .B lvextend vg01/lvol01 /dev/sdk3
Extend an LV by 16MiB using specific physical extents. Extend an LV by 16MiB using specific physical extents.
.br .br
.B lvextend \-L+16m vg01/lvol01 /dev/sda:8\-9 /dev/sdb:8\-9 .B lvextend -L+16m vg01/lvol01 /dev/sda:8-9 /dev/sdb:8-9

View File

@ -2,4 +2,4 @@ This command is the same as \fBlvmconfig\fP(8).
lvm config produces formatted output from the LVM configuration tree. The lvm config produces formatted output from the LVM configuration tree. The
sources of the configuration data include \fBlvm.conf\fP(5) and command sources of the configuration data include \fBlvm.conf\fP(5) and command
line settings from \-\-config. line settings from --config.

View File

@ -2,4 +2,4 @@ This command is the same as \fBlvmconfig\fP(8).
lvm dumpconfig produces formatted output from the LVM configuration tree. The lvm dumpconfig produces formatted output from the LVM configuration tree. The
sources of the configuration data include \fBlvm.conf\fP(5) and command sources of the configuration data include \fBlvm.conf\fP(5) and command
line settings from \-\-config. line settings from --config.

View File

@ -8,24 +8,24 @@ To find the name of the pvmove LV that was created by an original
Continue polling a pvmove operation. Continue polling a pvmove operation.
.br .br
.B lvm lvpoll \-\-polloperation pvmove vg00/pvmove0 .B lvm lvpoll --polloperation pvmove vg00/pvmove0
Abort a pvmove operation. Abort a pvmove operation.
.br .br
.B lvm lvpoll \-\-polloperation pvmove \-\-abort vg00/pvmove0 .B lvm lvpoll --polloperation pvmove --abort vg00/pvmove0
Continue polling a mirror conversion. Continue polling a mirror conversion.
.br .br
.B lvm lvpoll \-\-polloperation convert vg00/lvmirror .B lvm lvpoll --polloperation convert vg00/lvmirror
Continue mirror repair. Continue mirror repair.
.br .br
.B lvm lvpoll \-\-polloperation convert vg/damaged_mirror \-\-handlemissingpvs .B lvm lvpoll --polloperation convert vg/damaged_mirror --handlemissingpvs
Continue snapshot merge. Continue snapshot merge.
.br .br
.B lvm lvpoll \-\-polloperation merge vg/snapshot_old .B lvm lvpoll --polloperation merge vg/snapshot_old
Continue thin snapshot merge. Continue thin snapshot merge.
.br .br
.B lvm lvpoll \-\-polloperation merge_thin vg/thin_snapshot .B lvm lvpoll --polloperation merge_thin vg/thin_snapshot

View File

@ -11,7 +11,7 @@ lvm \(em LVM2 tools
. .
.SH DESCRIPTION .SH DESCRIPTION
. .
lvm provides the command\-line tools for LVM2. A separate lvm provides the command-line tools for LVM2. A separate
manual page describes each command in detail. manual page describes each command in detail.
.P .P
If \fBlvm\fP is invoked with no arguments it presents a readline prompt If \fBlvm\fP is invoked with no arguments it presents a readline prompt
@ -36,9 +36,9 @@ as "vg0/lvol0". Where a list of VGs is required but is left empty,
a list of all VGs will be substituted. Where a list of LVs is required a list of all VGs will be substituted. Where a list of LVs is required
but a VG is given, a list of all the LVs in that VG will be substituted. but a VG is given, a list of all the LVs in that VG will be substituted.
So \fBlvdisplay vg0\fP will display all the LVs in "vg0". So \fBlvdisplay vg0\fP will display all the LVs in "vg0".
Tags can also be used - see \fB\-\-addtag\fP below. Tags can also be used - see \fB--addtag\fP below.
.P .P
One advantage of using the built\-in shell is that configuration One advantage of using the built-in shell is that configuration
information gets cached internally between commands. information gets cached internally between commands.
.P .P
A file containing a simple script with one command per line A file containing a simple script with one command per line
@ -47,9 +47,9 @@ executed directly if the first line is #! followed by the absolute
path of \fBlvm\fP. path of \fBlvm\fP.
.P .P
Additional hyphens within option names are ignored. For example, Additional hyphens within option names are ignored. For example,
\fB\-\-readonly\fP and \fB\-\-read\-only\fP are both accepted. \fB--readonly\fP and \fB--read-only\fP are both accepted.
. .
.SH BUILT\-IN COMMANDS .SH BUILT-IN COMMANDS
. .
The following commands are built into lvm without links The following commands are built into lvm without links
normally being created in the filesystem for them. normally being created in the filesystem for them.
@ -60,7 +60,7 @@ normally being created in the filesystem for them.
The same as \fBlvmconfig\fP(8) below. The same as \fBlvmconfig\fP(8) below.
.TP .TP
.B devtypes .B devtypes
Display the recognised built\-in block device types. Display the recognised built-in block device types.
.TP .TP
.B dumpconfig .B dumpconfig
The same as \fBlvmconfig\fP(8) below. The same as \fBlvmconfig\fP(8) below.
@ -234,7 +234,7 @@ Scan (all disks) for Logical Volumes.
The following LVM1 commands are not implemented in LVM2: The following LVM1 commands are not implemented in LVM2:
.BR lvmchange ", " lvmsadc ", " lvmsar ", " pvdata . .BR lvmchange ", " lvmsadc ", " lvmsar ", " pvdata .
For performance metrics, use \fBdmstats\fP(8) or to manipulate the kernel For performance metrics, use \fBdmstats\fP(8) or to manipulate the kernel
device\-mapper driver used by LVM2 directly, use \fBdmsetup\fP(8). device-mapper driver used by LVM2 directly, use \fBdmsetup\fP(8).
. .
.SH VALID NAMES .SH VALID NAMES
. .
@ -253,7 +253,7 @@ least one LV that is still present. This helps to record the ancestry of
thin snapshots even after some links in the chain have been removed. thin snapshots even after some links in the chain have been removed.
A reference to the historical LV 'lvol1' in VG 'vg00' would be 'vg00/-lvol1' A reference to the historical LV 'lvol1' in VG 'vg00' would be 'vg00/-lvol1'
or just '-lvol1' if the VG is already set. (The latter form must be preceded or just '-lvol1' if the VG is already set. (The latter form must be preceded
by '\-\-' to terminate command line option processing before reaching this by '--' to terminate command line option processing before reaching this
argument.) argument.)
.P .P
There are also various reserved names that are used internally by lvm that can There are also various reserved names that are used internally by lvm that can
@ -288,8 +288,8 @@ When VGs with the same name exist, commands operating on all VGs will
include all of the VGs with the same name. If the ambiguous VG name is include all of the VGs with the same name. If the ambiguous VG name is
specified on the command line, the command will produce an error. The specified on the command line, the command will produce an error. The
error states that multiple VGs exist with the specified name. To process error states that multiple VGs exist with the specified name. To process
one of the VGs specifically, the \-\-select option should be used with the one of the VGs specifically, the --select option should be used with the
UUID of the intended VG: '\-\-select vg_uuid=<uuid>'. UUID of the intended VG: '--select vg_uuid=<uuid>'.
An exception is if all but one of the VGs with the shared name is foreign An exception is if all but one of the VGs with the shared name is foreign
(see (see
@ -313,9 +313,9 @@ those ranges on the specified Physical Volumes are considered.
Then they try each allocation policy in turn, starting with the strictest Then they try each allocation policy in turn, starting with the strictest
policy (\fBcontiguous\fP) and ending with the allocation policy specified policy (\fBcontiguous\fP) and ending with the allocation policy specified
using \fB\-\-alloc\fP or set as the default for the particular Logical using \fB--alloc\fP or set as the default for the particular Logical
Volume or Volume Group concerned. For each policy, working from the Volume or Volume Group concerned. For each policy, working from the
lowest\-numbered Logical Extent of the empty Logical Volume space that lowest-numbered Logical Extent of the empty Logical Volume space that
needs to be filled, they allocate as much space as possible according to needs to be filled, they allocate as much space as possible according to
the restrictions imposed by the policy. If more space is needed, the restrictions imposed by the policy. If more space is needed,
they move on to the next policy. they move on to the next policy.
@ -371,7 +371,7 @@ restrictions described above applied to each step leave the tools no
discretion over the layout. discretion over the layout.
To view the way the allocation process currently works in any specific To view the way the allocation process currently works in any specific
case, read the debug logging output, for example by adding \fB\-vvvv\fP to case, read the debug logging output, for example by adding \fB-vvvv\fP to
a command. a command.
. .
.SH LOGICAL VOLUME TYPES .SH LOGICAL VOLUME TYPES
@ -384,8 +384,8 @@ and thin provisioning (\fBlvmthin\fP(7)) types are examples of this.
. .
.SH DIAGNOSTICS .SH DIAGNOSTICS
. .
All tools return a status code of zero on success or non\-zero on failure. All tools return a status code of zero on success or non-zero on failure.
The non\-zero codes distinguish only between the broad categories of The non-zero codes distinguish only between the broad categories of
unrecognised commands, problems processing the command line arguments unrecognised commands, problems processing the command line arguments
and any other failures. As LVM remains under active development, the and any other failures. As LVM remains under active development, the
code used in a specific case occasionally changes between releases. code used in a specific case occasionally changes between releases.
@ -409,7 +409,7 @@ File descriptor to use for report output from LVM commands.
.TP .TP
.B LVM_COMMAND_PROFILE .B LVM_COMMAND_PROFILE
Name of default command profile to use for LVM commands. This profile Name of default command profile to use for LVM commands. This profile
is overriden by direct use of \fB\-\-commandprofile\fP command line option. is overriden by direct use of \fB--commandprofile\fP command line option.
.TP .TP
.B LVM_RUN_BY_DMEVENTD .B LVM_RUN_BY_DMEVENTD
This variable is normally set by dmeventd plugin to inform lvm2 command This variable is normally set by dmeventd plugin to inform lvm2 command
@ -464,7 +464,7 @@ Used to suppress warning messages when the configured locking is known
to be unavailable. to be unavailable.
.TP .TP
.B DM_ABORT_ON_INTERNAL_ERRORS .B DM_ABORT_ON_INTERNAL_ERRORS
Abort processing if the code detects a non\-fatal internal error. Abort processing if the code detects a non-fatal internal error.
.TP .TP
.B DM_DISABLE_UDEV .B DM_DISABLE_UDEV
Avoid interaction with udev. LVM will manage the relevant nodes in /dev Avoid interaction with udev. LVM will manage the relevant nodes in /dev
@ -525,7 +525,7 @@ directly.
.BR lvs (8) .BR lvs (8)
.BR lvscan (8) .BR lvscan (8)
.BR lvm2-activation\-generator (8) .BR lvm2-activation-generator (8)
.BR blkdeactivate (8) .BR blkdeactivate (8)
.BR lvmdump (8) .BR lvmdump (8)

View File

@ -14,7 +14,7 @@ The settings defined in lvm.conf can be overridden by any
of these extended configuration methods: of these extended configuration methods:
.TP .TP
.B direct config override on command line .B direct config override on command line
The \fB\-\-config ConfigurationString\fP command line option takes the The \fB--config ConfigurationString\fP command line option takes the
ConfigurationString as direct string representation of the configuration ConfigurationString as direct string representation of the configuration
to override the existing configuration. The ConfigurationString is of to override the existing configuration. The ConfigurationString is of
exactly the same format as used in any LVM configuration file. exactly the same format as used in any LVM configuration file.
@ -34,7 +34,7 @@ The \fBcommand profile\fP is used to override selected configuration
settings at global LVM command level - it is applied at the very beginning 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 of LVM command execution and it is used throughout the whole time of LVM
command execution. The command profile is applied by using the command execution. The command profile is applied by using the
\fB\-\-commandprofile ProfileName\fP command line option that is recognised by \fB--commandprofile ProfileName\fP command line option that is recognised by
all LVM2 commands. all LVM2 commands.
The \fBmetadata profile\fP is used to override selected configuration The \fBmetadata profile\fP is used to override selected configuration
@ -46,11 +46,11 @@ processed, the profile is applied automatically. If Volume Group and
any of its Logical Volumes have different profiles defined, the profile any of its Logical Volumes have different profiles defined, the profile
defined for the Logical Volume is preferred. The metadata profile can be defined for the Logical Volume is preferred. The metadata profile can be
attached/detached by using the \fBlvchange\fP and \fBvgchange\fP commands attached/detached by using the \fBlvchange\fP and \fBvgchange\fP commands
and their \fB\-\-metadataprofile ProfileName\fP and and their \fB--metadataprofile ProfileName\fP and
\fB\-\-detachprofile\fP options or the \fB\-\-metadataprofile\fP \fB--detachprofile\fP options or the \fB--metadataprofile\fP
option during creation when using \fBvgcreate\fP or \fBlvcreate\fP command. option during creation when using \fBvgcreate\fP or \fBlvcreate\fP command.
The \fBvgs\fP and \fBlvs\fP reporting commands provide \fB\-o vg_profile\fP The \fBvgs\fP and \fBlvs\fP reporting commands provide \fB-o vg_profile\fP
and \fB\-o lv_profile\fP output options to show the metadata profile and \fB-o lv_profile\fP output options to show the metadata profile
currently attached to a Volume Group or a Logical Volume. currently attached to a Volume Group or a Logical Volume.
The set of options allowed for command profiles is mutually exclusive The set of options allowed for command profiles is mutually exclusive
@ -65,8 +65,8 @@ For this purpose, there's the \fBcommand_profile_template.profile\fP
(for metadata profiles) which contain all settings that are customizable (for metadata profiles) which contain all settings that are customizable
by profiles of certain type. Users are encouraged to copy these template by profiles of certain type. Users are encouraged to copy these template
profiles and edit them as needed. Alternatively, the profiles and edit them as needed. Alternatively, the
\fBlvmconfig \-\-file <ProfileName.profile> \-\-type profilable\-command <section>\fP \fBlvmconfig --file <ProfileName.profile> --type profilable-command <section>\fP
or \fBlvmconfig \-\-file <ProfileName.profile> \-\-type profilable\-metadata <section>\fP or \fBlvmconfig --file <ProfileName.profile> --type profilable-metadata <section>\fP
can be used to generate a configuration with profilable settings in either 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 of the type for given section and save it to new ProfileName.profile
(if the section is not specified, all profilable settings are reported). (if the section is not specified, all profilable settings are reported).
@ -166,30 +166,30 @@ See the man page
Command to print a list of all possible config settings, with their Command to print a list of all possible config settings, with their
default values: default values:
.br .br
.B lvmconfig \-\-type default .B lvmconfig --type default
Command to print a list of all possible config settings, with their Command to print a list of all possible config settings, with their
default values, and a full description of each as a comment: default values, and a full description of each as a comment:
.br .br
.B lvmconfig \-\-type default \-\-withcomments .B lvmconfig --type default --withcomments
Command to print a list of all possible config settings, with their Command to print a list of all possible config settings, with their
current values (configured, non\-default values are shown): current values (configured, non-default values are shown):
.br .br
.B lvmconfig \-\-type current .B lvmconfig --type current
Command to print all config settings that have been configured with a Command to print all config settings that have been configured with a
different value than the default (configured, non\-default values are different value than the default (configured, non-default values are
shown): shown):
.br .br
.B lvmconfig \-\-type diff .B lvmconfig --type diff
Command to print a single config setting, with its default value, Command to print a single config setting, with its default value,
and a full description, where "Section" refers to the config section, 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. global, and "Setting" refers to the name of the specific setting,
e.g. umask: e.g. umask:
.br .br
.B lvmconfig \-\-type default \-\-withcomments Section/Setting .B lvmconfig --type default --withcomments Section/Setting
.SH FILES .SH FILES

View File

@ -1,22 +1,22 @@
.TH "LVM2-ACTIVATION\-GENERATOR" "8" "LVM TOOLS #VERSION#" "Red Hat, Inc" "\"" .TH "LVM2-ACTIVATION-GENERATOR" "8" "LVM TOOLS #VERSION#" "Red Hat, Inc" "\""
.SH "NAME" .SH "NAME"
lvm2-activation\-generator \- generator for systemd units to activate LVM2 volumes on boot lvm2-activation-generator - generator for systemd units to activate LVM2 volumes on boot
.SH SYNOPSIS .SH SYNOPSIS
.B #SYSTEMD_GENERATOR_DIR#/lvm2-activation\-generator .B #SYSTEMD_GENERATOR_DIR#/lvm2-activation-generator
.sp .sp
.SH DESCRIPTION .SH DESCRIPTION
The lvm2-activation\-generator is called by \fBsystemd\fP(1) on boot The lvm2-activation-generator is called by \fBsystemd\fP(1) on boot
to generate systemd units at runtime to activate LVM2 volumes if to generate systemd units at runtime to activate LVM2 volumes if
\fBlvmetad\fP(8) is disabled (global/use_lvmetad=0 \fBlvm.conf\fP(5) \fBlvmetad\fP(8) is disabled (global/use_lvmetad=0 \fBlvm.conf\fP(5)
option is used). Otherwise, if \fBlvmetad\fP(8) is enabled, option is used). Otherwise, if \fBlvmetad\fP(8) is enabled,
the lvm2-activation\-generator exits immediately without generating the lvm2-activation-generator exits immediately without generating
any systemd units and LVM2 fully relies on event\-based activation any systemd units and LVM2 fully relies on event-based activation
to activate the LVM2 volumes instead using the \fBpvscan\fP(8) to activate the LVM2 volumes instead using the \fBpvscan\fP(8)
(pvscan \-\-cache -aay) call that is a part of \fBudev\fP(8) rules. (pvscan --cache -aay) call that is a part of \fBudev\fP(8) rules.
These systemd units are generated by lvm2-activation\-generator: These systemd units are generated by lvm2-activation-generator:
.sp .sp
\fIlvm2-activation\-early.service\fP \fIlvm2-activation-early.service\fP
used for activation of LVM2 volumes that is ordered before systemd's used for activation of LVM2 volumes that is ordered before systemd's
special \fBcryptsetup.target\fP to support LVM2 volumes which are not special \fBcryptsetup.target\fP to support LVM2 volumes which are not
layered on top of encrypted devices. layered on top of encrypted devices.
@ -26,21 +26,21 @@ used for activation of LVM2 volumes that is ordered after systemd's
special \fBcryptsetup.target\fP to support LVM2 volumes which are special \fBcryptsetup.target\fP to support LVM2 volumes which are
layered on top of encrypted devices. layered on top of encrypted devices.
\fIlvm2-activation\-net.service\fP \fIlvm2-activation-net.service\fP
used for activation of LVM2 volumes that is ordered after systemd's used for activation of LVM2 volumes that is ordered after systemd's
special \fBremote\-fs\-pre.target\fP to support LVM2 volumes which are special \fBremote-fs-pre.target\fP to support LVM2 volumes which are
layered on attached remote devices. layered on attached remote devices.
Note that all the underlying devices (Physical Volumes) need to be present Note that all the underlying devices (Physical Volumes) need to be present
when the service is run. If the there are any devices presented in the system when the service is run. If the there are any devices presented in the system
anytime later, any LVM2 volumes on top of such devices need to be activated anytime later, any LVM2 volumes on top of such devices need to be activated
directly by \fBlvchange\fP(8) or \fBvgchange\fP(8). This limitation does directly by \fBlvchange\fP(8) or \fBvgchange\fP(8). This limitation does
not exist when using \fBlvmetad\fP(8) and accompanying event\-based activation not exist when using \fBlvmetad\fP(8) and accompanying event-based activation
since such LVM volumes are activated automatically as soon as the Volume Group since such LVM volumes are activated automatically as soon as the Volume Group
is ready (all the Physical Volumes making up the Volume Group are present is ready (all the Physical Volumes making up the Volume Group are present
in the system). in the system).
The lvm2-activation\-generator implements the \fBGenerators Specification\fP The lvm2-activation-generator implements the \fBGenerators Specification\fP
as referenced in \fBsystemd\fP(1). as referenced in \fBsystemd\fP(1).
.sp .sp
.SH SEE ALSO .SH SEE ALSO

View File

@ -8,7 +8,7 @@ The \fBcache\fP logical volume type uses a small and fast LV to improve
the performance of a large and slow LV. It does this by storing the the performance of a large and slow LV. It does this by storing the
frequently used blocks on the faster LV. frequently used blocks on the faster LV.
LVM refers to the small fast LV as a \fBcache pool LV\fP. The large LVM refers to the small fast LV as a \fBcache pool LV\fP. The large
slow LV is called the \fBorigin LV\fP. Due to requirements from dm\-cache slow LV is called the \fBorigin LV\fP. Due to requirements from dm-cache
(the kernel driver), LVM further splits the cache pool LV into two (the kernel driver), LVM further splits the cache pool LV into two
devices - the \fBcache data LV\fP and \fBcache metadata LV\fP. The cache devices - the \fBcache data LV\fP and \fBcache metadata LV\fP. The cache
data LV is where copies of data blocks are kept from the data LV is where copies of data blocks are kept from the
@ -36,11 +36,11 @@ The primary method for using a cache type logical volume:
Create an LV or identify an existing LV to be the origin LV. Create an LV or identify an existing LV to be the origin LV.
.B lvcreate \-n OriginLV \-L LargeSize VG SlowPVs .B lvcreate -n OriginLV -L LargeSize VG SlowPVs
.I Example .I Example
.br .br
# lvcreate \-n lvol0 \-L 100G vg # lvcreate -n lvol0 -L 100G vg
.SS 1. create CacheDataLV .SS 1. create CacheDataLV
@ -49,11 +49,11 @@ Create the cache data LV. This LV will hold data blocks from the
OriginLV. The size of this LV is the size of the cache and will be OriginLV. The size of this LV is the size of the cache and will be
reported as the size of the cache pool LV. reported as the size of the cache pool LV.
.B lvcreate \-n CacheDataLV \-L CacheSize VG FastPVs .B lvcreate -n CacheDataLV -L CacheSize VG FastPVs
.I Example .I Example
.br .br
# lvcreate \-n cache0 \-L 10G vg /dev/fast # lvcreate -n cache0 -L 10G vg /dev/fast
.SS 2. create CacheMetaLV .SS 2. create CacheMetaLV
@ -62,18 +62,18 @@ Create the cache metadata LV. This LV will hold cache pool metadata. The
size of this LV should be 1000 times smaller than the cache data LV, with size of this LV should be 1000 times smaller than the cache data LV, with
a minimum size of 8MiB. a minimum size of 8MiB.
.B lvcreate \-n CacheMetaLV \-L MetaSize VG FastPVs .B lvcreate -n CacheMetaLV -L MetaSize VG FastPVs
.I Example .I Example
.br .br
# lvcreate \-n cache0meta \-L 12M vg /dev/fast # lvcreate -n cache0meta -L 12M vg /dev/fast
.nf .nf
# lvs -a vg # lvs -a vg
LV VG Attr LSize Pool Origin LV VG Attr LSize Pool Origin
cache0 vg -wi\-a\-\-\-\-\- 10.00g cache0 vg -wi-a----- 10.00g
cache0meta vg -wi\-a\-\-\-\-\- 12.00m cache0meta vg -wi-a----- 12.00m
lvol0 vg -wi\-a\-\-\-\-\- 100.00g lvol0 vg -wi-a----- 100.00g
.fi .fi
@ -88,22 +88,22 @@ CacheDataLV is renamed CachePoolLV_cdata and becomes hidden.
.br .br
CacheMetaLV is renamed CachePoolLV_cmeta and becomes hidden. CacheMetaLV is renamed CachePoolLV_cmeta and becomes hidden.
.B lvconvert \-\-type cache\-pool \-\-poolmetadata VG/CacheMetaLV .B lvconvert --type cache-pool --poolmetadata VG/CacheMetaLV
.RS .RS
.B VG/CacheDataLV .B VG/CacheDataLV
.RE .RE
.I Example .I Example
.br .br
# lvconvert \-\-type cache\-pool \-\-poolmetadata vg/cache0meta vg/cache0 # lvconvert --type cache-pool --poolmetadata vg/cache0meta vg/cache0
.nf .nf
# lvs -a vg # lvs -a vg
LV VG Attr LSize Pool Origin LV VG Attr LSize Pool Origin
cache0 vg Cwi\-\-\-C\-\-\- 10.00g cache0 vg Cwi---C--- 10.00g
[cache0_cdata] vg Cwi\-\-\-\-\-\-\- 10.00g [cache0_cdata] vg Cwi------- 10.00g
[cache0_cmeta] vg ewi\-\-\-\-\-\-\- 12.00m [cache0_cmeta] vg ewi------- 12.00m
lvol0 vg -wi\-a\-\-\-\-\- 100.00g lvol0 vg -wi-a----- 100.00g
.fi .fi
@ -118,20 +118,20 @@ CacheLV takes the name of OriginLV.
.br .br
OriginLV is renamed OriginLV_corig and becomes hidden. OriginLV is renamed OriginLV_corig and becomes hidden.
.B lvconvert \-\-type cache \-\-cachepool VG/CachePoolLV VG/OriginLV .B lvconvert --type cache --cachepool VG/CachePoolLV VG/OriginLV
.I Example .I Example
.br .br
# lvconvert \-\-type cache \-\-cachepool vg/cache0 vg/lvol0 # lvconvert --type cache --cachepool vg/cache0 vg/lvol0
.nf .nf
# lvs -a vg # lvs -a vg
LV VG Attr LSize Pool Origin LV VG Attr LSize Pool Origin
cache0 vg Cwi\-\-\-C\-\-\- 10.00g cache0 vg Cwi---C--- 10.00g
[cache0_cdata] vg Cwi\-ao\-\-\-\- 10.00g [cache0_cdata] vg Cwi-ao---- 10.00g
[cache0_cmeta] vg ewi\-ao\-\-\-\- 12.00m [cache0_cmeta] vg ewi-ao---- 12.00m
lvol0 vg Cwi\-a\-C\-\-\- 100.00g cache0 [lvol0_corig] lvol0 vg Cwi-a-C--- 100.00g cache0 [lvol0_corig]
[lvol0_corig] vg -wi\-ao\-\-\-\- 100.00g [lvol0_corig] vg -wi-ao---- 100.00g
.fi .fi
@ -145,7 +145,7 @@ A cache pool LV can be disconnected from a cache LV, leaving an
unused cache pool LV, and an uncached origin LV. This command unused cache pool LV, and an uncached origin LV. This command
writes back data from the cache pool to the origin LV when necessary. writes back data from the cache pool to the origin LV when necessary.
.B lvconvert \-\-splitcache VG/CacheLV .B lvconvert --splitcache VG/CacheLV
.SS Removing a cache pool LV without removing its linked origin LV .SS Removing a cache pool LV without removing its linked origin LV
@ -159,20 +159,20 @@ then removes the cache pool LV, leaving the uncached origin LV.
An alternative command that also disconnects the cache pool from the cache An alternative command that also disconnects the cache pool from the cache
LV, and deletes the cache pool: LV, and deletes the cache pool:
.B lvconvert \-\-uncache VG/CacheLV .B lvconvert --uncache VG/CacheLV
.I Example .I Example
.nf .nf
# lvs vg # lvs vg
LV VG Attr LSize Pool Origin LV VG Attr LSize Pool Origin
cache0 vg Cwi\-\-\-C\-\-\- 10.00g cache0 vg Cwi---C--- 10.00g
lvol0 vg Cwi\-a\-C\-\-\- 100.00g cache0 [lvol0_corig] lvol0 vg Cwi-a-C--- 100.00g cache0 [lvol0_corig]
# lvremove vg/cache0 # lvremove vg/cache0
# lvs vg # lvs vg
LV VG Attr LSize Pool Origin LV VG Attr LSize Pool Origin
lvol0 vg -wi\-a\-\-\-\-\- 100.00g lvol0 vg -wi-a----- 100.00g
.fi .fi
.SS Removing a cache LV: both origin LV and the cache pool LV .SS Removing a cache LV: both origin LV and the cache pool LV
@ -193,26 +193,26 @@ LV.
Users who are concerned about the possibility of failures in their fast Users who are concerned about the possibility of failures in their fast
devices that could lead to data loss might consider making their cache devices that could lead to data loss might consider making their cache
pool sub\-LVs redundant. pool sub-LVs redundant.
.I Example .I Example
.nf .nf
0. Create an origin LV we wish to cache 0. Create an origin LV we wish to cache
# lvcreate \-L 10G \-n lv1 vg /dev/slow_devs # lvcreate -L 10G -n lv1 vg /dev/slow_devs
1. Create a 2-way RAID1 cache data LV 1. Create a 2-way RAID1 cache data LV
# lvcreate \-\-type raid1 \-m 1 \-L 1G -n cache1 vg \\ # lvcreate --type raid1 -m 1 -L 1G -n cache1 vg \\
/dev/fast1 /dev/fast2 /dev/fast1 /dev/fast2
2. Create a 2-way RAID1 cache metadata LV 2. Create a 2-way RAID1 cache metadata LV
# lvcreate \-\-type raid1 \-m 1 \-L 8M -n cache1meta vg \\ # lvcreate --type raid1 -m 1 -L 8M -n cache1meta vg \\
/dev/fast1 /dev/fast2 /dev/fast1 /dev/fast2
3. Create a cache pool LV combining cache data LV and cache metadata LV 3. Create a cache pool LV combining cache data LV and cache metadata LV
# lvconvert \-\-type cache\-pool \-\-poolmetadata vg/cache1meta vg/cache1 # lvconvert --type cache-pool --poolmetadata vg/cache1meta vg/cache1
4. Create a cached LV by combining the cache pool LV and origin LV 4. Create a cached LV by combining the cache pool LV and origin LV
# lvconvert \-\-type cache \-\-cachepool vg/cache1 vg/lv1 # lvconvert --type cache --cachepool vg/cache1 vg/lv1
.fi .fi
.SS Cache mode .SS Cache mode
@ -229,11 +229,11 @@ from the cache pool back to the origin LV. This mode will increase
performance, but the loss of a device associated with the cache pool LV performance, but the loss of a device associated with the cache pool LV
can result in lost data. can result in lost data.
With the \-\-cachemode option, the cache mode can be set when creating a With the --cachemode option, the cache mode can be set when creating a
cache LV, or changed on an existing cache LV. The current cache mode of a cache LV, or changed on an existing cache LV. The current cache mode of a
cache LV can be displayed with the cache_mode reporting option: cache LV can be displayed with the cache_mode reporting option:
.B lvs \-o+cache_mode VG/CacheLV .B lvs -o+cache_mode VG/CacheLV
.BR lvm.conf (5) .BR lvm.conf (5)
.B allocation/cache_mode .B allocation/cache_mode
@ -243,21 +243,21 @@ defines the default cache mode.
.I Example .I Example
.nf .nf
0. Create an origin LV we wish to cache (yours may already exist) 0. Create an origin LV we wish to cache (yours may already exist)
# lvcreate \-L 10G \-n lv1 vg /dev/slow # lvcreate -L 10G -n lv1 vg /dev/slow
1. Create a cache data LV 1. Create a cache data LV
# lvcreate \-L 1G \-n cache1 vg /dev/fast # lvcreate -L 1G -n cache1 vg /dev/fast
2. Create a cache metadata LV 2. Create a cache metadata LV
# lvcreate \-L 8M \-n cache1meta vg /dev/fast # lvcreate -L 8M -n cache1meta vg /dev/fast
3. Create a cache pool LV 3. Create a cache pool LV
# lvconvert \-\-type cache\-pool \-\-poolmetadata vg/cache1meta vg/cache1 # lvconvert --type cache-pool --poolmetadata vg/cache1meta vg/cache1
4. Create a cache LV by combining the cache pool LV and origin LV, 4. Create a cache LV by combining the cache pool LV and origin LV,
and use the writethrough cache mode. and use the writethrough cache mode.
# lvconvert \-\-type cache \-\-cachepool vg/cache1 \\ # lvconvert --type cache --cachepool vg/cache1 \\
\-\-cachemode writethrough vg/lv1 --cachemode writethrough vg/lv1
.fi .fi
@ -265,7 +265,7 @@ defines the default cache mode.
\& \&
The cache subsystem has additional per\-LV parameters: the cache policy to The cache subsystem has additional per-LV parameters: the cache policy to
use, and possibly tunable parameters for the cache policy. Three policies use, and possibly tunable parameters for the cache policy. Three policies
are currently available: "smq" is the default policy, "mq" is an older are currently available: "smq" is the default policy, "mq" is an older
implementation, and "cleaner" is used to force the cache to write back implementation, and "cleaner" is used to force the cache to write back
@ -275,18 +275,18 @@ The "mq" policy has a number of tunable parameters. The defaults are
chosen to be suitable for the majority of systems, but in special chosen to be suitable for the majority of systems, but in special
circumstances, changing the settings can improve performance. circumstances, changing the settings can improve performance.
With the \-\-cachepolicy and \-\-cachesettings options, the cache policy With the --cachepolicy and --cachesettings options, the cache policy
and settings can be set when creating a cache LV, or changed on an and settings can be set when creating a cache LV, or changed on an
existing cache LV (both options can be used together). The current cache existing cache LV (both options can be used together). The current cache
policy and settings of a cache LV can be displayed with the cache_policy policy and settings of a cache LV can be displayed with the cache_policy
and cache_settings reporting options: and cache_settings reporting options:
.B lvs \-o+cache_policy,cache_settings VG/CacheLV .B lvs -o+cache_policy,cache_settings VG/CacheLV
.I Example .I Example
.nf .nf
Change the cache policy and settings of an existing cache LV. Change the cache policy and settings of an existing cache LV.
# lvchange \-\-cachepolicy mq \-\-cachesettings \\ # lvchange --cachepolicy mq --cachesettings \\
\(aqmigration_threshold=2048 random_threshold=4\(aq vg/lv1 \(aqmigration_threshold=2048 random_threshold=4\(aq vg/lv1
.fi .fi
@ -306,7 +306,7 @@ defines the default cache settings.
\& \&
The size of data blocks managed by a cache pool can be specified with the The size of data blocks managed by a cache pool can be specified with the
\-\-chunksize option when the cache LV is created. The default unit --chunksize option when the cache LV is created. The default unit
is KiB. The value must be a multiple of 32KiB between 32KiB and 1GiB. is KiB. The value must be a multiple of 32KiB between 32KiB and 1GiB.
Using a chunk size that is too large can result in wasteful use of the Using a chunk size that is too large can result in wasteful use of the
@ -318,7 +318,7 @@ CPU time searching for chunks, and excessive memory tracking chunks.
Command to display the cache pool LV chunk size: Command to display the cache pool LV chunk size:
.br .br
.B lvs \-o+chunksize VG/CacheLV .B lvs -o+chunksize VG/CacheLV
.BR lvm.conf (5) .BR lvm.conf (5)
.B cache_pool_chunk_size .B cache_pool_chunk_size
@ -327,7 +327,7 @@ controls the default chunk size used when creating a cache LV.
The default value is shown by: The default value is shown by:
.br .br
.B lvmconfig \-\-type default allocation/cache_pool_chunk_size .B lvmconfig --type default allocation/cache_pool_chunk_size
.SS Spare metadata LV .SS Spare metadata LV
@ -349,7 +349,7 @@ the same VG.
.B lvcreate -n CacheDataLV -L CacheSize VG .B lvcreate -n CacheDataLV -L CacheSize VG
.br .br
.B lvconvert \-\-type cache\-pool VG/CacheDataLV .B lvconvert --type cache-pool VG/CacheDataLV
.SS Create a new cache LV without an existing origin LV .SS Create a new cache LV without an existing origin LV
@ -360,9 +360,9 @@ A cache LV can be created using an existing cache pool without an existing
origin LV. A new origin LV is created and linked to the cache pool in a origin LV. A new origin LV is created and linked to the cache pool in a
single step. single step.
.B lvcreate \-\-type cache \-L LargeSize \-n CacheLV .B lvcreate --type cache -L LargeSize -n CacheLV
.RS .RS
.B \-\-cachepool VG/CachePoolLV VG SlowPVs .B --cachepool VG/CachePoolLV VG SlowPVs
.RE .RE
@ -374,7 +374,7 @@ A cache pool LV can be created with a single lvcreate command, rather than
using lvconvert on existing LVs. This one command creates a cache data using lvconvert on existing LVs. This one command creates a cache data
LV, a cache metadata LV, and combines the two into a cache pool LV. LV, a cache metadata LV, and combines the two into a cache pool LV.
.B lvcreate \-\-type cache\-pool \-L CacheSize \-n CachePoolLV VG FastPVs .B lvcreate --type cache-pool -L CacheSize -n CachePoolLV VG FastPVs
.SS Convert existing LVs to cache types .SS Convert existing LVs to cache types
@ -390,7 +390,7 @@ may optionally be specified.
.br .br
.B lvcreate -n CacheDataLV -L CacheSize VG .B lvcreate -n CacheDataLV -L CacheSize VG
.br .br
.B lvconvert \-\-type cache \-\-cachepool VG/CataDataLV VG/OriginLV .B lvconvert --type cache --cachepool VG/CataDataLV VG/OriginLV
This is equivalent to: This is equivalent to:
@ -398,9 +398,9 @@ This is equivalent to:
.br .br
.B lvcreate -n CacheDataLV -L CacheSize VG .B lvcreate -n CacheDataLV -L CacheSize VG
.br .br
.B lvconvert \-\-type cache\-pool VG/CacheDataLV .B lvconvert --type cache-pool VG/CacheDataLV
.br .br
.B lvconvert \-\-type cache \-\-cachepool VG/CachePoolLV VG/OriginLV .B lvconvert --type cache --cachepool VG/CachePoolLV VG/OriginLV
.SH SEE ALSO .SH SEE ALSO

View File

@ -4,19 +4,19 @@
lvmconf \(em LVM configuration modifier lvmconf \(em LVM configuration modifier
.SH "SYNOPSIS" .SH "SYNOPSIS"
.B lvmconf .B lvmconf
.RB [ \-\-disable\-cluster ] .RB [ --disable-cluster ]
.RB [ \-\-enable\-cluster ] .RB [ --enable-cluster ]
.RB [ \-\-enable\-halvm ] .RB [ --enable-halvm ]
.RB [ \-\-disable\-halvm ] .RB [ --disable-halvm ]
.RB [ \-\-file .RB [ --file
.RI < configfile >] .RI < configfile >]
.RB [ \-\-lockinglib .RB [ --lockinglib
.RI < lib >] .RI < lib >]
.RB [ \-\-lockinglibdir .RB [ --lockinglibdir
.RI < dir >] .RI < dir >]
.RB [ \-\-services ] .RB [ --services ]
.RB [ \-\-mirrorservice ] .RB [ --mirrorservice ]
.RB [ \-\-startstopservices ] .RB [ --startstopservices ]
.SH "DESCRIPTION" .SH "DESCRIPTION"
lvmconf is a script that modifies the locking configuration in lvmconf is a script that modifies the locking configuration in
@ -26,42 +26,42 @@ changes in the lvm configuration if needed.
.SH "OPTIONS" .SH "OPTIONS"
.TP .TP
.BR \-\-disable\-cluster .BR --disable-cluster
Set \fBlocking_type\fR to the default non\-clustered type. Also reset Set \fBlocking_type\fR to the default non-clustered type. Also reset
lvmetad use to its default. lvmetad use to its default.
.TP .TP
.BR \-\-enable\-cluster .BR --enable-cluster
Set \fBlocking_type\fR to the default clustered type on this system. Set \fBlocking_type\fR to the default clustered type on this system.
Also disable lvmetad use as it is not yet supported in clustered environment. Also disable lvmetad use as it is not yet supported in clustered environment.
.TP .TP
.BR \-\-disable\-halvm .BR --disable-halvm
Set \fBlocking_type\fR to the default non\-clustered type. Also reset Set \fBlocking_type\fR to the default non-clustered type. Also reset
lvmetad use to its default. lvmetad use to its default.
.TP .TP
.BR \-\-enable\-halvm .BR --enable-halvm
Set \fBlocking_type\fR suitable for HA LVM use. Set \fBlocking_type\fR suitable for HA LVM use.
Also disable lvmetad use as it is not yet supported in HA LVM environment. Also disable lvmetad use as it is not yet supported in HA LVM environment.
.TP .TP
.BR \-\-file " <" \fIconfigfile > .BR --file " <" \fIconfigfile >
Apply the changes to \fIconfigfile\fP instead of the default Apply the changes to \fIconfigfile\fP instead of the default
\fI#DEFAULT_SYS_DIR#/lvm.conf\fP. \fI#DEFAULT_SYS_DIR#/lvm.conf\fP.
.TP .TP
.BR \-\-lockinglib " <" \fIlib > .BR --lockinglib " <" \fIlib >
Set external \fBlocking_library\fR locking library to load if an external locking type is used. Set external \fBlocking_library\fR locking library to load if an external locking type is used.
.TP .TP
.BR \-\-lockinglibdir " <" \fIdir > .BR --lockinglibdir " <" \fIdir >
.TP .TP
.BR \-\-services .BR --services
In addition to setting the lvm configuration, also enable or disable related Systemd or SysV In addition to setting the lvm configuration, also enable or disable related Systemd or SysV
clvmd and lvmetad services. This script does not configure services provided by cluster resource clvmd and lvmetad services. This script does not configure services provided by cluster resource
agents. agents.
.TP .TP
.BR \-\-mirrorservice .BR --mirrorservice
Also enable or disable optional cmirrord service when handling services (applicable only with \-\-services). Also enable or disable optional cmirrord service when handling services (applicable only with --services).
.TP .TP
.BR \-\-startstopservices .BR --startstopservices
In addition to enabling or disabling related services, start or stop them immediately In addition to enabling or disabling related services, start or stop them immediately
(applicable only with \-\-services). (applicable only with --services).
.SH FILES .SH FILES
.I #DEFAULT_SYS_DIR#/lvm.conf .I #DEFAULT_SYS_DIR#/lvm.conf

View File

@ -1,3 +1,3 @@
lvmconfig produces formatted output from the LVM configuration tree. The lvmconfig produces formatted output from the LVM configuration tree. The
sources of the configuration data include \fBlvm.conf\fP(5) and command sources of the configuration data include \fBlvm.conf\fP(5) and command
line settings from \-\-config. line settings from --config.

View File

@ -2,19 +2,19 @@
. .
.SH NAME .SH NAME
. .
lvmdbusd \(em LVM D\-Bus daemon lvmdbusd \(em LVM D-Bus daemon
. .
.SH SYNOPSIS .SH SYNOPSIS
. .
.ad l .ad l
.B lvmdbusd .B lvmdbusd
.RB [ \-\-debug \] .RB [ --debug \]
.RB [ \-\-udev \] .RB [ --udev \]
.ad b .ad b
. .
.SH DESCRIPTION .SH DESCRIPTION
. .
lvmdbusd is a service which provides a D\-Bus API to the logical volume manager (LVM). lvmdbusd is a service which provides a D-Bus API to the logical volume manager (LVM).
Run Run
.BR lvmdbusd (8) .BR lvmdbusd (8)
as root. as root.
@ -22,17 +22,17 @@ as root.
.SH OPTIONS .SH OPTIONS
. .
.HP .HP
.BR \-\-debug .BR --debug
.br .br
Enable debug statements Enable debug statements
. .
.HP .HP
.BR \-\-udev .BR --udev
.br .br
Use udev events to trigger updates Use udev events to trigger updates
. .
.SH SEE ALSO .SH SEE ALSO
. .
.nh .nh
.BR dbus\-send (1), .BR dbus-send (1),
.BR lvm (8) .BR lvm (8)

View File

@ -3,16 +3,16 @@
lvmdump \(em create lvm2 information dumps for diagnostic purposes lvmdump \(em create lvm2 information dumps for diagnostic purposes
.SH SYNOPSIS .SH SYNOPSIS
.B lvmdump .B lvmdump
.RB [ \-a ] .RB [ -a ]
.RB [ \-c ] .RB [ -c ]
.RB [ \-d .RB [ -d
.IR directory ] .IR directory ]
.RB [ \-h ] .RB [ -h ]
.RB [ \-l ] .RB [ -l ]
.RB [ \-m ] .RB [ -m ]
.RB [ \-p ] .RB [ -p ]
.RB [ \-s ] .RB [ -s ]
.RB [ \-u ] .RB [ -u ]
.SH DESCRIPTION .SH DESCRIPTION
lvmdump is a tool to dump various information concerning LVM2. lvmdump is a tool to dump various information concerning LVM2.
By default, it creates a tarball suitable for submission along By default, it creates a tarball suitable for submission along
@ -34,69 +34,69 @@ The content of the tarball is as follows:
.br .br
- list of files present /sys/devices/virtual/block - list of files present /sys/devices/virtual/block
.br .br
- if enabled with \-m, metadata dump will be also included - if enabled with -m, metadata dump will be also included
.br .br
- if enabled with \-a, debug output of vgscan, pvscan and list of all available volume groups, physical volumes and logical volumes will be included - if enabled with -a, debug output of vgscan, pvscan and list of all available volume groups, physical volumes and logical volumes will be included
.br .br
- if enabled with \-c, cluster status info - if enabled with -c, cluster status info
.br .br
- if enabled with \-l, lvmetad state if running - if enabled with -l, lvmetad state if running
.br .br
- if enabled with \-p, lvmpolld state if running - if enabled with -p, lvmpolld state if running
.br .br
- if enabled with \-s, system info and context - if enabled with -s, system info and context
.br .br
- if enabled with \-u, udev info and context - if enabled with -u, udev info and context
.SH OPTIONS .SH OPTIONS
.TP .TP
.B \-a .B -a
Advanced collection. Advanced collection.
\fBWARNING\fR: if lvm is already hung, then this script may hang as well \fBWARNING\fR: if lvm is already hung, then this script may hang as well
if \fB\-a\fR is used. if \fB-a\fR is used.
.TP .TP
.B \-c .B -c
If clvmd is running, gather cluster data as well. If clvmd is running, gather cluster data as well.
.TP .TP
.B \-d \fIdirectory .B -d \fIdirectory
Dump into a directory instead of tarball Dump into a directory instead of tarball
By default, lvmdump will produce a single compressed tarball containing By default, lvmdump will produce a single compressed tarball containing
all the information. Using this option, it can be instructed to only all the information. Using this option, it can be instructed to only
produce the raw dump tree, rooted in \fIdirectory\fP. produce the raw dump tree, rooted in \fIdirectory\fP.
.TP .TP
.B \-h .B -h
Print help message Print help message
.TP .TP
.B \-l .B -l
Include \fBlvmetad\fP(8) daemon dump if it is running. The dump contains Include \fBlvmetad\fP(8) daemon dump if it is running. The dump contains
cached information that is currently stored in lvmetad: VG metadata, cached information that is currently stored in lvmetad: VG metadata,
PV metadata and various mappings in between these metadata for quick PV metadata and various mappings in between these metadata for quick
access. access.
.TP .TP
.B \-m .B -m
Gather LVM metadata from the PVs Gather LVM metadata from the PVs
This option generates a 1:1 dump of the metadata area from all PVs visible This option generates a 1:1 dump of the metadata area from all PVs visible
to the system, which can cause the dump to increase in size considerably. to the system, which can cause the dump to increase in size considerably.
However, the metadata dump may represent a valuable diagnostic resource. However, the metadata dump may represent a valuable diagnostic resource.
.TP .TP
.B \-p .B -p
Include \fBlvmpolld\fP(8) daemon dump if it is running. The dump contains Include \fBlvmpolld\fP(8) daemon dump if it is running. The dump contains
all in\-progress operation currently monitored by the daemon and partial all in-progress operation currently monitored by the daemon and partial
history for all yet uncollected results of polling operations already finished history for all yet uncollected results of polling operations already finished
including reason. including reason.
.TP .TP
.B \-s .B -s
Gather system info and context. Currently, this encompasses info gathered Gather system info and context. Currently, this encompasses info gathered
by calling lsblk command and various systemd info and context: overall state by calling lsblk command and various systemd info and context: overall state
of systemd units present in the system, more detailed status of units of systemd units present in the system, more detailed status of units
controlling LVM functionality and the content of systemd journal for controlling LVM functionality and the content of systemd journal for
current boot. current boot.
.TP .TP
.B \-u .B -u
Gather udev info and context: /etc/udev/udev.conf file, udev daemon version Gather udev info and context: /etc/udev/udev.conf file, udev daemon version
(output of 'udevadm info \-\-version' command), udev rules currently used in the system (output of 'udevadm info --version' command), udev rules currently used in the system
(content of /lib/udev/rules.d and /etc/udev/rules.d directory), (content of /lib/udev/rules.d and /etc/udev/rules.d directory),
list of files in /lib/udev directory and dump of current udev list of files in /lib/udev directory and dump of current udev
database content (the output of 'udevadm info \-\-export\-db' command). database content (the output of 'udevadm info --export-db' command).
.SH ENVIRONMENT VARIABLES .SH ENVIRONMENT VARIABLES
.TP .TP
\fBLVM_BINARY\fP \fBLVM_BINARY\fP

View File

@ -4,18 +4,18 @@ lvmetad \(em LVM metadata cache daemon
.SH SYNOPSIS .SH SYNOPSIS
.B lvmetad .B lvmetad
.RB [ \-l .RB [ -l
.IR level [,level...]] .IR level [,level...]]
.RB [ \-p .RB [ -p
.IR pidfile_path ] .IR pidfile_path ]
.RB [ \-s .RB [ -s
.IR socket_path ] .IR socket_path ]
.RB [ \-t .RB [ -t
.IR timeout_value ] .IR timeout_value ]
.RB [ \-f ] .RB [ -f ]
.RB [ \-h ] .RB [ -h ]
.RB [ \-V ] .RB [ -V ]
.RB [ \-? ] .RB [ -? ]
.SH DESCRIPTION .SH DESCRIPTION
@ -26,7 +26,7 @@ the normal work of the system. lvmetad can be a disadvantage when disk
event notifications from the system are unreliable. event notifications from the system are unreliable.
lvmetad does not read metadata from disks itself. Instead, it relies on lvmetad does not read metadata from disks itself. Instead, it relies on
an LVM command, like pvscan \-\-cache, to read metadata from disks and an LVM command, like pvscan --cache, to read metadata from disks and
send it to lvmetad to be cached. send it to lvmetad to be cached.
New LVM disks that appear on the system must be scanned before lvmetad New LVM disks that appear on the system must be scanned before lvmetad
@ -34,8 +34,8 @@ knows about them. If lvmetad does not know about a disk, then LVM
commands using lvmetad will also not know about it. When disks are added commands using lvmetad will also not know about it. When disks are added
or removed from the system, lvmetad must be updated. or removed from the system, lvmetad must be updated.
lvmetad is usually combined with event\-based system services that lvmetad is usually combined with event-based system services that
automatically run pvscan \-\-cache on disks added or removed. This way, automatically run pvscan --cache on disks added or removed. This way,
the cache is automatically updated with metadata from new disks when they the cache is automatically updated with metadata from new disks when they
appear. LVM udev rules and systemd services implement this automation. appear. LVM udev rules and systemd services implement this automation.
Automatic scanning is usually combined with automatic activation. For Automatic scanning is usually combined with automatic activation. For
@ -44,7 +44,7 @@ more information, see
If lvmetad is started or restarted after disks have been added to the If lvmetad is started or restarted after disks have been added to the
system, or if the global_filter has changed, the cache must be updated. system, or if the global_filter has changed, the cache must be updated.
This can be done by running pvscan \-\-cache, or it will be done This can be done by running pvscan --cache, or it will be done
automatically by the next LVM command that's run. automatically by the next LVM command that's run.
When lvmetad is not used, LVM commands revert to scanning disks for LVM When lvmetad is not used, LVM commands revert to scanning disks for LVM
@ -56,7 +56,7 @@ revert to scanning disks. A warning will also be printed which includes
the reason why lvmetad is not being used. The most common reason is the the reason why lvmetad is not being used. The most common reason is the
existence of duplicate PVs (lvmetad cannot cache data for duplicate PVs.) existence of duplicate PVs (lvmetad cannot cache data for duplicate PVs.)
Once duplicates have been resolved, the lvmetad cache is can be updated Once duplicates have been resolved, the lvmetad cache is can be updated
with pvscan \-\-cache and commands will return to using the cache. with pvscan --cache and commands will return to using the cache.
Use of lvmetad is enabled/disabled by: Use of lvmetad is enabled/disabled by:
.br .br
@ -65,7 +65,7 @@ Use of lvmetad is enabled/disabled by:
For more information on this setting, see: For more information on this setting, see:
.br .br
.B lvmconfig \-\-withcomments global/use_lvmetad .B lvmconfig --withcomments global/use_lvmetad
To ignore disks from LVM at the system level, e.g. lvmetad, pvscan use: To ignore disks from LVM at the system level, e.g. lvmetad, pvscan use:
.br .br
@ -74,42 +74,42 @@ To ignore disks from LVM at the system level, e.g. lvmetad, pvscan use:
For more information on this setting, see For more information on this setting, see
.br .br
.B lvmconfig \-\-withcomments devices/global_filter .B lvmconfig --withcomments devices/global_filter
.SH OPTIONS .SH OPTIONS
To run the daemon in a test environment both the pidfile_path and the To run the daemon in a test environment both the pidfile_path and the
socket_path should be changed from the defaults. socket_path should be changed from the defaults.
.TP .TP
.B \-f .B -f
Don't fork, but run in the foreground. Don't fork, but run in the foreground.
.TP .TP
.BR \-h ", " \-? .BR -h ", " -?
Show help information. Show help information.
.TP .TP
.B \-l \fIlevels .B -l \fIlevels
Specify the levels of log messages to generate as a comma separated list. Specify the levels of log messages to generate as a comma separated list.
Messages are logged by syslog. Messages are logged by syslog.
Additionally, when \-f is given they are also sent to standard error. Additionally, when -f is given they are also sent to standard error.
Possible levels are: all, fatal, error, warn, info, wire, debug. Possible levels are: all, fatal, error, warn, info, wire, debug.
.TP .TP
.B \-p \fIpidfile_path .B -p \fIpidfile_path
Path to the pidfile. This overrides both the built\-in default Path to the pidfile. This overrides both the built-in default
(#DEFAULT_PID_DIR#/lvmetad.pid) and the environment variable (#DEFAULT_PID_DIR#/lvmetad.pid) and the environment variable
\fBLVM_LVMETAD_PIDFILE\fP. This file is used to prevent more \fBLVM_LVMETAD_PIDFILE\fP. This file is used to prevent more
than one instance of the daemon running simultaneously. than one instance of the daemon running simultaneously.
.TP .TP
.B \-s \fIsocket_path .B -s \fIsocket_path
Path to the socket file. This overrides both the built\-in default Path to the socket file. This overrides both the built-in default
(#DEFAULT_RUN_DIR#/lvmetad.socket) and the environment variable (#DEFAULT_RUN_DIR#/lvmetad.socket) and the environment variable
\fBLVM_LVMETAD_SOCKET\fP. To communicate successfully with lvmetad, \fBLVM_LVMETAD_SOCKET\fP. To communicate successfully with lvmetad,
all LVM2 processes should use the same socket path. all LVM2 processes should use the same socket path.
.TP .TP
.B \-t \fItimeout_value .B -t \fItimeout_value
The daemon may shutdown after being idle for the given time (in seconds). When the The daemon may shutdown after being idle for the given time (in seconds). When the
option is omitted or the value given is zero the daemon never shutdowns on idle. option is omitted or the value given is zero the daemon never shutdowns on idle.
.TP .TP
.B \-V .B -V
Display the version of lvmetad daemon. Display the version of lvmetad daemon.
.SH ENVIRONMENT VARIABLES .SH ENVIRONMENT VARIABLES
.TP .TP

View File

@ -11,41 +11,41 @@ This command interacts with
lvmlockctl [options] lvmlockctl [options]
.B \-\-help | \-h .B --help | -h
Show this help information. Show this help information.
.B \-\-quit | \-q .B --quit | -q
Tell lvmlockd to quit. Tell lvmlockd to quit.
.B \-\-info | \-i .B --info | -i
Print lock state information from lvmlockd. Print lock state information from lvmlockd.
.B \-\-dump | \-d .B --dump | -d
Print log buffer from lvmlockd. Print log buffer from lvmlockd.
.B \-\-wait | \-w 0|1 .B --wait | -w 0|1
Wait option for other commands. Wait option for other commands.
.B \-\-force | \-f 0|1 .B --force | -f 0|1
Force option for other commands. Force option for other commands.
.B \-\-kill | \-k .B --kill | -k
.I vgname .I vgname
Kill access to the VG when sanlock cannot renew lease. Kill access to the VG when sanlock cannot renew lease.
.B \-\-drop | \-r .B --drop | -r
.I vgname .I vgname
Clear locks for the VG when it is unused after kill (-k). Clear locks for the VG when it is unused after kill (-k).
.B \-\-gl\-enable | \-E .B --gl-enable | -E
.I vgname .I vgname
Tell lvmlockd to enable the global lock in a sanlock VG. Tell lvmlockd to enable the global lock in a sanlock VG.
.B \-\-gl\-disable | \-D .B --gl-disable | -D
.I vgname .I vgname
Tell lvmlockd to disable the global lock in a sanlock VG. Tell lvmlockd to disable the global lock in a sanlock VG.
.B \-\-stop\-lockspaces | \-S .B --stop-lockspaces | -S
Stop all lockspaces. Stop all lockspaces.
@ -55,7 +55,7 @@ lvmlockctl [options]
This collects and displays lock state from lvmlockd. The display is This collects and displays lock state from lvmlockd. The display is
primitive, incomplete and will change in future version. To print the raw primitive, incomplete and will change in future version. To print the raw
lock state from lvmlockd, combine this option with \-\-dump|-d. lock state from lvmlockd, combine this option with --dump|-d.
.SS dump .SS dump
@ -73,28 +73,28 @@ forcibly deactivate the VG. For more, see
.SS drop .SS drop
This should only be run after a VG has been successfully deactivated This should only be run after a VG has been successfully deactivated
following an lvmlockctl \-\-kill command. It clears the stale lockspace following an lvmlockctl --kill command. It clears the stale lockspace
from lvmlockd. In the future, this may become automatic along with an from lvmlockd. In the future, this may become automatic along with an
automatic handling of \-\-kill. For more, see automatic handling of --kill. For more, see
.BR lvmlockd (8). .BR lvmlockd (8).
.SS gl\-enable .SS gl-enable
This enables the global lock in a sanlock VG. This is necessary if the VG This enables the global lock in a sanlock VG. This is necessary if the VG
that previously held the global lock is removed. For more, see that previously held the global lock is removed. For more, see
.BR lvmlockd (8). .BR lvmlockd (8).
.SS gl\-disable .SS gl-disable
This disables the global lock in a sanlock VG. This is necessary if the This disables the global lock in a sanlock VG. This is necessary if the
global lock has mistakenly been enabled in more than one VG. The global global lock has mistakenly been enabled in more than one VG. The global
lock should be disabled in all but one sanlock VG. For more, see lock should be disabled in all but one sanlock VG. For more, see
.BR lvmlockd (8). .BR lvmlockd (8).
.SS stop\-lockspaces .SS stop-lockspaces
This tells lvmlockd to stop all lockspaces. It can be useful to stop This tells lvmlockd to stop all lockspaces. It can be useful to stop
lockspaces for VGs that the vgchange \-\-lock\-stop comand can no longer lockspaces for VGs that the vgchange --lock-stop comand can no longer
see, or to stop the dlm global lockspace which is not directly stopped by see, or to stop the dlm global lockspace which is not directly stopped by
the vgchange command. The wait and force options can be used with this the vgchange command. The wait and force options can be used with this
command. command.

View File

@ -33,50 +33,50 @@ dlm: uses network communication and a cluster manager.
lvmlockd [options] lvmlockd [options]
For default settings, see lvmlockd \-h. For default settings, see lvmlockd -h.
.B \-\-help | \-h .B --help | -h
Show this help information. Show this help information.
.B \-\-version | \-V .B --version | -V
Show version of lvmlockd. Show version of lvmlockd.
.B \-\-test | \-T .B --test | -T
Test mode, do not call lock manager. Test mode, do not call lock manager.
.B \-\-foreground | \-f .B --foreground | -f
Don't fork. Don't fork.
.B \-\-daemon\-debug | \-D .B --daemon-debug | -D
Don't fork and print debugging to stdout. Don't fork and print debugging to stdout.
.B \-\-pid\-file | \-p .B --pid-file | -p
.I path .I path
Set path to the pid file. Set path to the pid file.
.B \-\-socket\-path | \-s .B --socket-path | -s
.I path .I path
Set path to the socket to listen on. Set path to the socket to listen on.
.B \-\-syslog\-priority | \-S err|warning|debug .B --syslog-priority | -S err|warning|debug
Write log messages from this level up to syslog. Write log messages from this level up to syslog.
.B \-\-gl\-type | \-g sanlock|dlm .B --gl-type | -g sanlock|dlm
Set global lock type to be sanlock or dlm. Set global lock type to be sanlock or dlm.
.B \-\-host\-id | \-i .B --host-id | -i
.I num .I num
Set the local sanlock host id. Set the local sanlock host id.
.B \-\-host\-id\-file | \-F .B --host-id-file | -F
.I path .I path
A file containing the local sanlock host_id. A file containing the local sanlock host_id.
.B \-\-sanlock\-timeout | \-o .B --sanlock-timeout | -o
.I seconds .I seconds
Override the default sanlock I/O timeout. Override the default sanlock I/O timeout.
.B \-\-adopt | \-A 0|1 .B --adopt | -A 0|1
Adopt locks from a previous instance of lvmlockd. Adopt locks from a previous instance of lvmlockd.
@ -84,7 +84,7 @@ For default settings, see lvmlockd \-h.
.SS Initial set up .SS Initial set up
Using LVM with lvmlockd for the first time includes some one\-time set up Using LVM with lvmlockd for the first time includes some one-time set up
steps: steps:
.SS 1. choose a lock manager .SS 1. choose a lock manager
@ -111,7 +111,7 @@ use_lvmlockd = 1
.I sanlock .I sanlock
.br .br
Assign each host a unique host_id in the range 1\-2000 by setting Assign each host a unique host_id in the range 1-2000 by setting
.br .br
/etc/lvm/lvmlocal.conf local/host_id /etc/lvm/lvmlocal.conf local/host_id
@ -133,7 +133,7 @@ systemctl start corosync dlm
.SS 5. create VG on shared devices .SS 5. create VG on shared devices
vgcreate \-\-shared <vgname> <devices> vgcreate --shared <vgname> <devices>
The shared option sets the VG lock type to sanlock or dlm depending on The shared option sets the VG lock type to sanlock or dlm depending on
which lock manager is running. LVM commands will perform locking for the which lock manager is running. LVM commands will perform locking for the
@ -141,7 +141,7 @@ VG using lvmlockd. lvmlockd will use the chosen lock manager.
.SS 6. start VG on all hosts .SS 6. start VG on all hosts
vgchange \-\-lock\-start vgchange --lock-start
lvmlockd requires shared VGs to be started before they are used. This is lvmlockd requires shared VGs to be started before they are used. This is
a lock manager operation to start (join) the VG lockspace, and it may take a lock manager operation to start (join) the VG lockspace, and it may take
@ -156,7 +156,7 @@ LVs in a shared VG.
An LV activated exclusively on one host cannot be activated on another. An LV activated exclusively on one host cannot be activated on another.
When multiple hosts need to use the same LV concurrently, the LV can be When multiple hosts need to use the same LV concurrently, the LV can be
activated with a shared lock (see lvchange options \-aey vs \-asy.) activated with a shared lock (see lvchange options -aey vs -asy.)
(Shared locks are disallowed for certain LV types that cannot be used from (Shared locks are disallowed for certain LV types that cannot be used from
multiple hosts.) multiple hosts.)
@ -177,7 +177,7 @@ start lvmlockd
start lock manager start lock manager
.br .br
\[bu] \[bu]
vgchange \-\-lock\-start vgchange --lock-start
.br .br
\[bu] \[bu]
activate LVs in shared VGs activate LVs in shared VGs
@ -189,7 +189,7 @@ The shut down sequence is the reverse:
deactivate LVs in shared VGs deactivate LVs in shared VGs
.br .br
\[bu] \[bu]
vgchange \-\-lock\-stop vgchange --lock-stop
.br .br
\[bu] \[bu]
stop lock manager stop lock manager
@ -227,7 +227,7 @@ activate the VG will fail without the necessary locks.
A "local VG" is meant to be used by a single host. It has no lock type or A "local VG" is meant to be used by a single host. It has no lock type or
lock type "none". LVM commands and lvmlockd do not perform locking for lock type "none". LVM commands and lvmlockd do not perform locking for
these VGs. A local VG typically exists on local (non\-shared) devices and these VGs. A local VG typically exists on local (non-shared) devices and
cannot be used concurrently from different hosts. cannot be used concurrently from different hosts.
If a local VG does exist on shared devices, it should be owned by a single If a local VG does exist on shared devices, it should be owned by a single
@ -252,8 +252,8 @@ using lvmlockd. From a host not using lvmlockd, visible lockd VGs are
ignored in the same way as foreign VGs (see ignored in the same way as foreign VGs (see
.BR lvmsystemid (7).) .BR lvmsystemid (7).)
The \-\-shared option for reporting and display commands causes lockd VGs The --shared option for reporting and display commands causes lockd VGs
to be displayed on a host not using lvmlockd, like the \-\-foreign option to be displayed on a host not using lvmlockd, like the --foreign option
does for foreign VGs. does for foreign VGs.
@ -275,7 +275,7 @@ Creates a clvm VG when clvm is configured.
.P .P
.B vgcreate \-\-shared <vgname> <devices> .B vgcreate --shared <vgname> <devices>
.IP \[bu] 2 .IP \[bu] 2
Requires lvmlockd to be configured and running. Requires lvmlockd to be configured and running.
.IP \[bu] 2 .IP \[bu] 2
@ -288,7 +288,7 @@ lvmlockd obtains locks from the selected lock manager.
.P .P
.B vgcreate \-c|\-\-clustered y <vgname> <devices> .B vgcreate -c|--clustered y <vgname> <devices>
.IP \[bu] 2 .IP \[bu] 2
Requires clvm to be configured and running. Requires clvm to be configured and running.
.IP \[bu] 2 .IP \[bu] 2
@ -343,29 +343,29 @@ global lock will be available, and LVM will be fully operational.
When a new lockd VG is created, its lockspace is automatically started on When a new lockd VG is created, its lockspace is automatically started on
the host that creates it. Other hosts need to run 'vgchange the host that creates it. Other hosts need to run 'vgchange
\-\-lock\-start' to start the new VG before they can use it. --lock-start' to start the new VG before they can use it.
From the 'vgs' command, lockd VGs are indicated by "s" (for shared) in the From the 'vgs' command, lockd VGs are indicated by "s" (for shared) in the
sixth attr field. The specific lock type and lock args for a lockd VG can sixth attr field. The specific lock type and lock args for a lockd VG can
be displayed with 'vgs \-o+locktype,lockargs'. be displayed with 'vgs -o+locktype,lockargs'.
lockd VGs need to be "started" and "stopped", unlike other types of VGs. lockd VGs need to be "started" and "stopped", unlike other types of VGs.
See the following section for a full description of starting and stopping. See the following section for a full description of starting and stopping.
vgremove of a lockd VG will fail if other hosts have the VG started. vgremove of a lockd VG will fail if other hosts have the VG started.
Run vgchange \-\-lock\-stop <vgname> on all other hosts before vgremove. Run vgchange --lock-stop <vgname> on all other hosts before vgremove.
(It may take several seconds before vgremove recognizes that all hosts (It may take several seconds before vgremove recognizes that all hosts
have stopped a sanlock VG.) have stopped a sanlock VG.)
.SS starting and stopping VGs .SS starting and stopping VGs
Starting a lockd VG (vgchange \-\-lock\-start) causes the lock manager to Starting a lockd VG (vgchange --lock-start) causes the lock manager to
start (join) the lockspace for the VG on the host where it is run. This start (join) the lockspace for the VG on the host where it is run. This
makes locks for the VG available to LVM commands on the host. Before a VG makes locks for the VG available to LVM commands on the host. Before a VG
is started, only LVM commands that read/display the VG are allowed to is started, only LVM commands that read/display the VG are allowed to
continue without locks (and with a warning). continue without locks (and with a warning).
Stopping a lockd VG (vgchange \-\-lock\-stop) causes the lock manager to Stopping a lockd VG (vgchange --lock-stop) causes the lock manager to
stop (leave) the lockspace for the VG on the host where it is run. This stop (leave) the lockspace for the VG on the host where it is run. This
makes locks for the VG inaccessible to the host. A VG cannot be stopped makes locks for the VG inaccessible to the host. A VG cannot be stopped
while it has active LVs. while it has active LVs.
@ -390,24 +390,24 @@ A lockd VG can be stopped if all LVs are deactivated.
All lockd VGs can be started/stopped using: All lockd VGs can be started/stopped using:
.br .br
vgchange \-\-lock\-start vgchange --lock-start
.br .br
vgchange \-\-lock\-stop vgchange --lock-stop
Individual VGs can be started/stopped using: Individual VGs can be started/stopped using:
.br .br
vgchange \-\-lock\-start <vgname> ... vgchange --lock-start <vgname> ...
.br .br
vgchange \-\-lock\-stop <vgname> ... vgchange --lock-stop <vgname> ...
To make vgchange not wait for start to complete: To make vgchange not wait for start to complete:
.br .br
vgchange \-\-lock\-start \-\-lock\-opt nowait ... vgchange --lock-start --lock-opt nowait ...
lvmlockd can be asked directly to stop all lockspaces: lvmlockd can be asked directly to stop all lockspaces:
.br .br
lvmlockctl \-\-stop\-lockspaces lvmlockctl --stop-lockspaces
To start only selected lockd VGs, use the lvm.conf To start only selected lockd VGs, use the lvm.conf
activation/lock_start_list. When defined, only VG names in this list are activation/lock_start_list. When defined, only VG names in this list are
@ -429,7 +429,7 @@ Scripts or programs on a host that automatically start VGs will use the
"auto" option to indicate that the command is being run automatically by "auto" option to indicate that the command is being run automatically by
the system: the system:
vgchange \-\-lock\-start \-\-lock\-opt auto [<vgname> ...] vgchange --lock-start --lock-opt auto [<vgname> ...]
Without any additional configuration, including the "auto" option has no Without any additional configuration, including the "auto" option has no
effect; all VGs are started unless restricted by lock_start_list. effect; all VGs are started unless restricted by lock_start_list.
@ -545,7 +545,7 @@ If the situation arises where more than one sanlock VG contains a global
lock, the global lock should be manually disabled in all but one of them lock, the global lock should be manually disabled in all but one of them
with the command: with the command:
lvmlockctl \-\-gl\-disable <vgname> lvmlockctl --gl-disable <vgname>
(The one VG with the global lock enabled must be visible to all hosts.) (The one VG with the global lock enabled must be visible to all hosts.)
@ -555,7 +555,7 @@ and subsequent LVM commands will fail to acquire it. In this case, the
global lock needs to be manually enabled in one of the remaining sanlock global lock needs to be manually enabled in one of the remaining sanlock
VGs with the command: VGs with the command:
lvmlockctl \-\-gl\-enable <vgname> lvmlockctl --gl-enable <vgname>
A small sanlock VG dedicated to holding the global lock can avoid the case A small sanlock VG dedicated to holding the global lock can avoid the case
where the GL lock must be manually enabled after a vgremove. where the GL lock must be manually enabled after a vgremove.
@ -593,7 +593,7 @@ cannot be acquired, the LV is not activated and an error is reported.
This would happen if the LV is active exclusively on another host. If the This would happen if the LV is active exclusively on another host. If the
LV type prohibits shared access, such as a snapshot, the command will LV type prohibits shared access, such as a snapshot, the command will
report an error and fail. report an error and fail.
The shared mode is intended for a multi\-host/cluster application or The shared mode is intended for a multi-host/cluster application or
file system. file system.
LV types that cannot be used concurrently LV types that cannot be used concurrently
from multiple hosts include thin, cache, raid, mirror, and snapshot. from multiple hosts include thin, cache, raid, mirror, and snapshot.
@ -638,18 +638,18 @@ acquired by other hosts. The VG must be forcibly deactivated on the host
with the expiring lease before other hosts can acquire its locks. with the expiring lease before other hosts can acquire its locks.
When the sanlock daemon detects that the lease storage is lost, it runs When the sanlock daemon detects that the lease storage is lost, it runs
the command lvmlockctl \-\-kill <vgname>. This command emits a syslog the command lvmlockctl --kill <vgname>. This command emits a syslog
message stating that lease storage is lost for the VG and LVs must be message stating that lease storage is lost for the VG and LVs must be
immediately deactivated. immediately deactivated.
If no LVs are active in the VG, then the lockspace with an expiring lease If no LVs are active in the VG, then the lockspace with an expiring lease
will be removed, and errors will be reported when trying to use the VG. will be removed, and errors will be reported when trying to use the VG.
Use the lvmlockctl \-\-drop command to clear the stale lockspace from Use the lvmlockctl --drop command to clear the stale lockspace from
lvmlockd. lvmlockd.
If the VG has active LVs when the lock storage is lost, the LVs must be If the VG has active LVs when the lock storage is lost, the LVs must be
quickly deactivated before the lockspace lease expires. After all LVs are quickly deactivated before the lockspace lease expires. After all LVs are
deactivated, run lvmlockctl \-\-drop <vgname> to clear the expiring deactivated, run lvmlockctl --drop <vgname> to clear the expiring
lockspace from lvmlockd. If all LVs in the VG are not deactivated within lockspace from lvmlockd. If all LVs in the VG are not deactivated within
about 40 seconds, sanlock will reset the host using the local watchdog. about 40 seconds, sanlock will reset the host using the local watchdog.
The machine reset is effectively a severe form of "deactivating" LVs The machine reset is effectively a severe form of "deactivating" LVs
@ -687,12 +687,12 @@ original cluster:
.IP \[bu] 2 .IP \[bu] 2
Stop the VG on all hosts: Stop the VG on all hosts:
.br .br
vgchange \-\-lock\-stop <vgname> vgchange --lock-stop <vgname>
.IP \[bu] 2 .IP \[bu] 2
Change the VG lock type to none: Change the VG lock type to none:
.br .br
vgchange \-\-lock\-type none <vgname> vgchange --lock-type none <vgname>
.IP \[bu] 2 .IP \[bu] 2
Change the dlm cluster name on the host or move the VG to the new cluster. Change the dlm cluster name on the host or move the VG to the new cluster.
@ -704,12 +704,12 @@ cat /sys/kernel/config/dlm/cluster/cluster_name
.IP \[bu] 2 .IP \[bu] 2
Change the VG lock type back to dlm which sets the new cluster name: Change the VG lock type back to dlm which sets the new cluster name:
.br .br
vgchange \-\-lock\-type dlm <vgname> vgchange --lock-type dlm <vgname>
.IP \[bu] 2 .IP \[bu] 2
Start the VG on hosts to use it: Start the VG on hosts to use it:
.br .br
vgchange \-\-lock\-start <vgname> vgchange --lock-start <vgname>
.P .P
@ -728,17 +728,17 @@ cat /sys/kernel/config/dlm/cluster/cluster_name
.IP \[bu] 2 .IP \[bu] 2
Change the VG lock type to none: Change the VG lock type to none:
.br .br
vgchange \-\-lock\-type none \-\-force <vgname> vgchange --lock-type none --force <vgname>
.IP \[bu] 2 .IP \[bu] 2
Change the VG lock type back to dlm which sets the new cluster name: Change the VG lock type back to dlm which sets the new cluster name:
.br .br
vgchange \-\-lock\-type dlm <vgname> vgchange --lock-type dlm <vgname>
.IP \[bu] 2 .IP \[bu] 2
Start the VG on hosts to use it: Start the VG on hosts to use it:
.br .br
vgchange \-\-lock\-start <vgname> vgchange --lock-start <vgname>
.SS changing a local VG to a lockd VG .SS changing a local VG to a lockd VG
@ -749,18 +749,18 @@ lvmlockd must be configured and running as described in USAGE.
Change a local VG to a lockd VG with the command: Change a local VG to a lockd VG with the command:
.br .br
vgchange \-\-lock\-type sanlock|dlm <vgname> vgchange --lock-type sanlock|dlm <vgname>
Start the VG on hosts to use it: Start the VG on hosts to use it:
.br .br
vgchange \-\-lock\-start <vgname> vgchange --lock-start <vgname>
.SS changing a lockd VG to a local VG .SS changing a lockd VG to a local VG
Stop the lockd VG on all hosts, then run: Stop the lockd VG on all hosts, then run:
.br .br
vgchange \-\-lock\-type none <vgname> vgchange --lock-type none <vgname>
To change a VG from one lockd type to another (i.e. between sanlock and To change a VG from one lockd type to another (i.e. between sanlock and
dlm), first change it to a local VG, then to the new type. dlm), first change it to a local VG, then to the new type.
@ -773,15 +773,15 @@ All LVs must be inactive to change the lock type.
First change the clvm VG to a local VG. Within a running clvm cluster, First change the clvm VG to a local VG. Within a running clvm cluster,
change a clvm VG to a local VG with the command: change a clvm VG to a local VG with the command:
vgchange \-cn <vgname> vgchange -cn <vgname>
If the clvm cluster is no longer running on any nodes, then extra options If the clvm cluster is no longer running on any nodes, then extra options
can be used to forcibly make the VG local. Caution: this is only safe if can be used to forcibly make the VG local. Caution: this is only safe if
all nodes have stopped using the VG: all nodes have stopped using the VG:
vgchange \-\-config 'global/locking_type=0 global/use_lvmlockd=0' vgchange --config 'global/locking_type=0 global/use_lvmlockd=0'
.RS .RS
\-cn <vgname> -cn <vgname>
.RE .RE
After the VG is local, follow the steps described in "changing a local VG After the VG is local, follow the steps described in "changing a local VG
@ -830,7 +830,7 @@ lvm.conf must be configured to use either lvmlockd (use_lvmlockd=1) or
clvmd (locking_type=3), but not both. clvmd (locking_type=3), but not both.
.IP \[bu] 2 .IP \[bu] 2
vgcreate \-\-shared creates a lockd VG, and vgcreate \-\-clustered y vgcreate --shared creates a lockd VG, and vgcreate --clustered y
creates a clvm VG. creates a clvm VG.
.IP \[bu] 2 .IP \[bu] 2
@ -839,7 +839,7 @@ need for network clustering.
.IP \[bu] 2 .IP \[bu] 2
lvmlockd defaults to the exclusive activation mode whenever the activation lvmlockd defaults to the exclusive activation mode whenever the activation
mode is unspecified, i.e. \-ay means \-aey, not \-asy. mode is unspecified, i.e. -ay means -aey, not -asy.
.IP \[bu] 2 .IP \[bu] 2
lvmlockd commands always apply to the local host, and never have an effect lvmlockd commands always apply to the local host, and never have an effect
@ -856,13 +856,13 @@ lvmlockd saves the cluster name for a lockd VG using dlm. Only hosts in
the matching cluster can use the VG. the matching cluster can use the VG.
.IP \[bu] 2 .IP \[bu] 2
lvmlockd requires starting/stopping lockd VGs with vgchange \-\-lock\-start lvmlockd requires starting/stopping lockd VGs with vgchange --lock-start
and \-\-lock\-stop. and --lock-stop.
.IP \[bu] 2 .IP \[bu] 2
vgremove of a sanlock VG may fail indicating that all hosts have not vgremove of a sanlock VG may fail indicating that all hosts have not
stopped the VG lockspace. Stop the VG on all hosts using vgchange stopped the VG lockspace. Stop the VG on all hosts using vgchange
\-\-lock\-stop. --lock-stop.
.IP \[bu] 2 .IP \[bu] 2
vgreduce or pvmove of a PV in a sanlock VG will fail if it holds the vgreduce or pvmove of a PV in a sanlock VG will fail if it holds the

View File

@ -3,22 +3,22 @@
lvmpolld \(em LVM poll daemon lvmpolld \(em LVM poll daemon
.SH SYNOPSIS .SH SYNOPSIS
.B lvmpolld .B lvmpolld
.RB [ \-l | \-\-log .RB [ -l | --log
.RI { all | wire | debug }] .RI { all | wire | debug }]
.RB [ \-p | \-\-pidfile .RB [ -p | --pidfile
.IR pidfile_path ] .IR pidfile_path ]
.RB [ \-s | \-\-socket .RB [ -s | --socket
.IR socket_path ] .IR socket_path ]
.RB [ \-B | \-\-binary .RB [ -B | --binary
.IR lvm_binary_path ] .IR lvm_binary_path ]
.RB [ \-t | \-\-timeout .RB [ -t | --timeout
.IR timeout_value ] .IR timeout_value ]
.RB [ \-f | \-\-foreground ] .RB [ -f | --foreground ]
.RB [ \-h | \-\-help ] .RB [ -h | --help ]
.RB [ \-V | \-\-version ] .RB [ -V | --version ]
.B lvmpolld .B lvmpolld
.RB [ \-\-dump ] .RB [ --dump ]
.SH DESCRIPTION .SH DESCRIPTION
lvmpolld is polling daemon for LVM. The daemon receives requests for polling lvmpolld is polling daemon for LVM. The daemon receives requests for polling
of already initialised operations originating in LVM2 command line tool. of already initialised operations originating in LVM2 command line tool.
@ -33,48 +33,48 @@ external factors.
lvmpolld is used by LVM only if it is enabled in \fBlvm.conf\fP(5) by lvmpolld is used by LVM only if it is enabled in \fBlvm.conf\fP(5) by
specifying the \fBglobal/use_lvmpolld\fP setting. If this is not defined in the specifying the \fBglobal/use_lvmpolld\fP setting. If this is not defined in the
LVM configuration explicitly then default setting is used instead (see the LVM configuration explicitly then default setting is used instead (see the
output of \fBlvmconfig \-\-type default global/use_lvmpolld\fP command). output of \fBlvmconfig --type default global/use_lvmpolld\fP command).
.SH OPTIONS .SH OPTIONS
To run the daemon in a test environment both the pidfile_path and the To run the daemon in a test environment both the pidfile_path and the
socket_path should be changed from the defaults. socket_path should be changed from the defaults.
.TP .TP
.BR \-f ", " \-\-foreground .BR -f ", " --foreground
Don't fork, but run in the foreground. Don't fork, but run in the foreground.
.TP .TP
.BR \-h ", " \-\-help .BR -h ", " --help
Show help information. Show help information.
.TP .TP
.IR \fB\-l\fP ", " \fB\-\-log\fP " {" all | wire | debug } .IR \fB-l\fP ", " \fB--log\fP " {" all | wire | debug }
Select the type of log messages to generate. Select the type of log messages to generate.
Messages are logged by syslog. Messages are logged by syslog.
Additionally, when \-f is given they are also sent to standard error. Additionally, when -f is given they are also sent to standard error.
There are two classes of messages: wire and debug. Selecting 'all' supplies both There are two classes of messages: wire and debug. Selecting 'all' supplies both
and is equivalent to a comma\-separated list \-l wire,debug. and is equivalent to a comma-separated list -l wire,debug.
.TP .TP
.BR \-p ", " \-\-pidfile " " \fIpidfile_path .BR -p ", " --pidfile " " \fIpidfile_path
Path to the pidfile. This overrides both the built\-in default Path to the pidfile. This overrides both the built-in default
(#DEFAULT_PID_DIR#/lvmpolld.pid) and the environment variable (#DEFAULT_PID_DIR#/lvmpolld.pid) and the environment variable
\fBLVM_LVMPOLLD_PIDFILE\fP. This file is used to prevent more \fBLVM_LVMPOLLD_PIDFILE\fP. This file is used to prevent more
than one instance of the daemon running simultaneously. than one instance of the daemon running simultaneously.
.TP .TP
.BR \-s ", " \-\-socket " " \fIsocket_path .BR -s ", " --socket " " \fIsocket_path
Path to the socket file. This overrides both the built\-in default Path to the socket file. This overrides both the built-in default
(#DEFAULT_RUN_DIR#/lvmpolld.socket) and the environment variable (#DEFAULT_RUN_DIR#/lvmpolld.socket) and the environment variable
\fBLVM_LVMPOLLD_SOCKET\fP. \fBLVM_LVMPOLLD_SOCKET\fP.
.TP .TP
.BR \-t ", " \-\-timeout " " \fItimeout_value .BR -t ", " --timeout " " \fItimeout_value
The daemon may shutdown after being idle for the given time (in seconds). When the The daemon may shutdown after being idle for the given time (in seconds). When the
option is omitted or the value given is zero the daemon never shutdowns on idle. option is omitted or the value given is zero the daemon never shutdowns on idle.
.TP .TP
.BR \-B ", " \-\-binary " " \fIlvm_binary_path .BR -B ", " --binary " " \fIlvm_binary_path
Optional path to alternative LVM binary (default: #LVM_PATH#). Use for Optional path to alternative LVM binary (default: #LVM_PATH#). Use for
testing purposes only. testing purposes only.
.TP .TP
.BR \-V ", " \-\-version .BR -V ", " --version
Display the version of lvmpolld daemon. Display the version of lvmpolld daemon.
.TP .TP
.B \-\-dump .B --dump
Contact the running lvmpolld daemon to obtain the complete state and print it Contact the running lvmpolld daemon to obtain the complete state and print it
out in a raw format. out in a raw format.
.SH ENVIRONMENT VARIABLES .SH ENVIRONMENT VARIABLES

File diff suppressed because it is too large Load Diff

View File

@ -12,16 +12,16 @@ options to customize report and filter the report's output.
Based on functionality, commands which make use of the reporting infrastructure Based on functionality, commands which make use of the reporting infrastructure
are divided in two groups: are divided in two groups:
.IP \fBReport\-oriented commands\fP .IP \fBReport-oriented commands\fP
These commands inform about current LVM state and their primary role is to 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 display this information in compendious way. To make a distinction, we will
name this report as \fBmain report\fP. The set of report\-only commands include: name this report as \fBmain report\fP. The set of report-only commands include:
pvs, vgs, lvs, pvdisplay, vgdisplay, lvdisplay, lvm devtypes, lvm fullreport. pvs, vgs, lvs, pvdisplay, vgdisplay, lvdisplay, lvm devtypes, lvm fullreport.
For further information about main report, see \fBmain report specifics\fP. For further information about main report, see \fBmain report specifics\fP.
.IP \fBProcessing\-oriented commands\fP .IP \fBProcessing-oriented commands\fP
These commands are responsible for changing LVM state and they do not contain 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 any main report as identified for report-oriented commands, they only perform
some kind of processing. The set of processing\-oriented commands includes: some kind of processing. The set of processing-oriented commands includes:
pvcreate, vgcreate, lvcreate, pvchange, vgchange, lvchange, pvremove, vgremove, pvcreate, vgcreate, lvcreate, pvchange, vgchange, lvchange, pvremove, vgremove,
lvremove, pvresize, vgextend, vgreduce, lvextend, lvreduce, lvresize, lvrename, lvremove, pvresize, vgextend, vgreduce, lvextend, lvreduce, lvresize, lvrename,
pvscan, vgscan, lvscan, pvmove, vgcfgbackup, vgck, vgconvert, vgexport, pvscan, vgscan, lvscan, pvmove, vgcfgbackup, vgck, vgconvert, vgexport,
@ -29,9 +29,9 @@ vgimport, vgmknodes.
.RE .RE
If enabled, so called \fBlog report\fP is either displayed solely If enabled, so called \fBlog report\fP is either displayed solely
(for processing\-oriented commands) or in addition to main report (for processing-oriented commands) or in addition to main report
(for report\-oriented commands). The log report contains a log of operations, (for report-oriented commands). The log report contains a log of operations,
messages and per\-object status with complete object identification collected messages and per-object status with complete object identification collected
during LVM command execution. See \fBlog report specifics\fP for more during LVM command execution. See \fBlog report specifics\fP for more
information about this report type. information about this report type.
@ -108,7 +108,7 @@ report/buffered
This document does not describe these settings in more detail - if you need This document does not describe these settings in more detail - if you need
detailed information, including values which are accepted for the settings, detailed information, including values which are accepted for the settings,
please run \fBlvmconfig \-\-type default \-\-withcomments <setting>\fP. There are please run \fBlvmconfig --type default --withcomments <setting>\fP. There are
more configuration settings in addition to the common set listed above, but more configuration settings in addition to the common set listed above, but
they are specific to either \fBmain report\fP or \fBlog report\fP, they are specific to either \fBmain report\fP or \fBlog report\fP,
see \fBmain report specifics\fP and \fBlog report specifics\fP for see \fBmain report specifics\fP and \fBlog report specifics\fP for
@ -125,25 +125,25 @@ or further specify the report configuration.
Definition of the set set of fields to use Definition of the set set of fields to use
.RS .RS
.IP - 3 .IP - 3
\-\-options|-o FieldSet --options|-o FieldSet
.br .br
Field set to use. See \fBmain report specifics\fP and Field set to use. See \fBmain report specifics\fP and
\fBlog report specifics\fP for information about field sets configured with \fBlog report specifics\fP for information about field sets configured with
global configuratin settings that this option overrides. global configuratin settings that this option overrides.
.IP - 3 .IP - 3
\-\-options|-o+ FieldSet --options|-o+ FieldSet
.br .br
Fields to include to current field set. See \fBmain report specifics\fP\ and Fields to include to current field set. See \fBmain report specifics\fP\ and
\fBlog report specifics\fP for information about field sets configured with \fBlog report specifics\fP for information about field sets configured with
global configuration settings that this option extends. global configuration settings that this option extends.
.IP - 3 .IP - 3
\-\-options|-o\- FieldSet --options|-o- FieldSet
.br .br
Fields to exclude from current field set. See \fBmain report specifics\fP and Fields to exclude from current field set. See \fBmain report specifics\fP and
\fBlog report specifics\fP for information about field sets configured with \fBlog report specifics\fP for information about field sets configured with
global configuration settings that this option reduces. global configuration settings that this option reduces.
.IP - 3 .IP - 3
\-\-options|-o# FieldSet --options|-o# FieldSet
.br .br
Compaction of unused fields. Overrides report/compact_output_cols configuration Compaction of unused fields. Overrides report/compact_output_cols configuration
setting. setting.
@ -153,13 +153,13 @@ setting.
Sorting Sorting
.RS .RS
.IP - 3 .IP - 3
\-\-sort|-O+ FieldSet --sort|-O+ FieldSet
.br .br
Fields to sort by in ascending order. See \fBmain report specifics\fP and Fields to sort by in ascending order. See \fBmain report specifics\fP and
\fBlog report specifics\fP for information about field sets configured with \fBlog report specifics\fP for information about field sets configured with
global configuration settings that this option overrides. global configuration settings that this option overrides.
.IP - 3 .IP - 3
\-\-sort|-O\- FieldSet --sort|-O- FieldSet
.br .br
Fields to sort by in descending order. See \fBmain report specifics\fP and Fields to sort by in descending order. See \fBmain report specifics\fP and
\fBlog report specifics\fP for information about fields sets configured with \fBlog report specifics\fP for information about fields sets configured with
@ -170,7 +170,7 @@ global configuration settings that this options overrides.
Selection Selection
.RS .RS
.IP - 3 .IP - 3
\-\-select|-S Selection --select|-S Selection
.br .br
Define selection criteria for report output. For \fBlog report\fP, this also Define selection criteria for report output. For \fBlog report\fP, this also
overrides log/command_log_selection configuration setting, see also overrides log/command_log_selection configuration setting, see also
@ -181,43 +181,43 @@ overrides log/command_log_selection configuration setting, see also
Changing output format and composition Changing output format and composition
.RS .RS
.IP - 3 .IP - 3
\-\-reportformat --reportformat
.br .br
Overrides report/output_format configuration setting. Overrides report/output_format configuration setting.
.IP - 3 .IP - 3
\-\-aligned --aligned
.br .br
Overrides report/aligned configuration setting. Overrides report/aligned configuration setting.
.IP - 3 .IP - 3
\-\-binary --binary
.br .br
Overrides report/binary_values_as_numeric configuration setting. Overrides report/binary_values_as_numeric configuration setting.
.IP - 3 .IP - 3
\-\-nameprefixes --nameprefixes
.br .br
Overrides report/prefixes configuration setting. Overrides report/prefixes configuration setting.
.IP - 3 .IP - 3
\-\-noheadings --noheadings
.br .br
Overrides report/noheadings configuration setting. Overrides report/noheadings configuration setting.
.IP - 3 .IP - 3
\-\-nosuffix --nosuffix
.br .br
Overrides global/suffix configuration setting. Overrides global/suffix configuration setting.
.IP - 3 .IP - 3
\-\-rows --rows
.br .br
Overrides report/columns_as_rows configuration setting. Overrides report/columns_as_rows configuration setting.
.IP - 3 .IP - 3
\-\-separator --separator
.br .br
Overrides report/separator configuration setting. Overrides report/separator configuration setting.
.IP - 3 .IP - 3
\-\-units --units
.br .br
Overrides global/units configuration setting. Overrides global/units configuration setting.
.IP - 3 .IP - 3
\-\-unquoted --unquoted
.br .br
Overrides report/quoted configuration setting. Overrides report/quoted configuration setting.
.RE .RE
@ -226,19 +226,19 @@ Overrides report/quoted configuration setting.
Special options Special options
.RS .RS
.IP - 3 .IP - 3
\-\-configreport \fBReportName\fP --configreport \fBReportName\fP
.br .br
This defines the \fBReportName\fP for which any subsequent -o|\-\-columns, This defines the \fBReportName\fP for which any subsequent -o|--columns,
-O|\-\-sort or -S|\-\-select applies to. See also \fBmain report specifics\fP -O|--sort or -S|--select applies to. See also \fBmain report specifics\fP
and \fBlog report specifics\fP for possible \fBReportName\fP values. and \fBlog report specifics\fP for possible \fBReportName\fP values.
.IP - 3 .IP - 3
\-\-logonly --logonly
.br .br
When an LVM command contains both \fBmain report\fP and \fBlog report\fP, When an LVM command contains both \fBmain report\fP and \fBlog report\fP,
this option suppresses the \fBmain report\fP output and it causes the this option suppresses the \fBmain report\fP output and it causes the
\fBlog report\fP output to be displayed only. \fBlog report\fP output to be displayed only.
.IP - 3 .IP - 3
\-\-unbuffered --unbuffered
.br .br
Overrides report/bufffered configuration setting. Overrides report/bufffered configuration setting.
.RE .RE
@ -249,7 +249,7 @@ Overrides report/bufffered configuration setting.
The \fBFieldSet\fP mentioned in the lists above is a set of field names where The \fBFieldSet\fP mentioned in the lists above is a set of field names where
each field name is delimited by "," character. Field set definition, sorting each field name is delimited by "," character. Field set definition, sorting
and selection may be repeated on command line (-o+/-o\- includes/excludes fields 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 to/from current list, for all the other repeatable options, the last value
typed for the option on the command line is used). The \fBSelection\fP typed for the option on the command line is used). The \fBSelection\fP
is a string with \fBselection criteria\fP, see also \fBSelection\fP paragraph is a string with \fBselection criteria\fP, see also \fBSelection\fP paragraph
@ -276,7 +276,7 @@ report/pvs_sort
.RE .RE
.IP \[bu] 3 .IP \[bu] 3
\fBpvseg\fP representing report about Physical Volume Segments (\fBpvs \-\-segments\fP) \fBpvseg\fP representing report about Physical Volume Segments (\fBpvs --segments\fP)
.RS .RS
.IP - 3 .IP - 3
report/pvseg_cols report/pvseg_cols
@ -303,7 +303,7 @@ report/lvs_sort
.RE .RE
.IP \[bu] 3 .IP \[bu] 3
\fBseg\fP representing report about Logical Volume Segments (\fBlvs \-\-segments\fP) \fBseg\fP representing report about Logical Volume Segments (\fBlvs --segments\fP)
.RS .RS
.IP - 3 .IP - 3
report/segs_cols report/segs_cols
@ -355,10 +355,10 @@ groups are combined together. Some of these combinations are not allowed in
which case LVM will issue an error. which case LVM will issue an error.
For all main report subtypes except \fBfull\fP, it's not necessary to use For all main report subtypes except \fBfull\fP, it's not necessary to use
\fB\-\-configreport ReportName\fP to denote which report any subsequent \fB--configreport ReportName\fP to denote which report any subsequent
\fB\-o, -O or -S\fP option applies to as they always apply to the single main \fB-o, -O or -S\fP option applies to as they always apply to the single main
report type. Currently, \fBlvm fullreport\fP is the only command that report type. Currently, \fBlvm fullreport\fP is the only command that
includes more than one \fBmain report\fP subtype. Therefore, the \-\-configreport includes more than one \fBmain report\fP subtype. Therefore, the --configreport
is particularly suitable for the full report if you need to configure each of is particularly suitable for the full report if you need to configure each of
its subreports in a different way. its subreports in a different way.
@ -387,20 +387,20 @@ log/command_log_selection
.RE .RE
You always need to use \fB\-\-configreport log\fP together with \fB\-o|\-\-options, You always need to use \fB--configreport log\fP together with \fB-o|--options,
-O|\-\-sort or -S|\-\-selection\fP to override configuration settings directly on -O|--sort or -S|--selection\fP to override configuration settings directly on
command line for \fBlog report\fP. When compared to \fBmain report\fP, in command line for \fBlog report\fP. When compared to \fBmain report\fP, in
addition to usual configuration settings for report fields and sorting, the addition to usual configuration settings for report fields and sorting, the
\fBlog report\fP has also configuration option for selection - \fBlog report\fP has also configuration option for selection -
\fBreport/command_log_selection\fP. This configuration setting is provided for \fBreport/command_log_selection\fP. This configuration setting is provided for
convenience so it's not necessary to use \fB\-S|\-\-select\fP on command line convenience so it's not necessary to use \fB-S|--select\fP on command line
each time an LVM command is executed and we need the same selection criteria each time an LVM command is executed and we need the same selection criteria
to be applied for \fBlog report\fP. Default selection criteria used for to be applied for \fBlog report\fP. Default selection criteria used for
\fBlog report\fP are \fBlog report\fP are
\fBlog/command_log_selection="!(log_type=status && message=success)"\fP. \fBlog/command_log_selection="!(log_type=status && message=success)"\fP.
This means that, by default, \fBlog report\fP doesn't display status messages This means that, by default, \fBlog report\fP doesn't display status messages
about successful operation and it displays only rows with error, warning, about successful operation and it displays only rows with error, warning,
print\-type messages and messages about failure states (for more information, print-type messages and messages about failure states (for more information,
see \fBlog report content\fP below). see \fBlog report content\fP below).
.B Log report coverage .B Log report coverage
@ -411,7 +411,7 @@ 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 initialization nor command finalization stage. If there is any message issued
out of log report's coverage range, such message goes directly to output, out of log report's coverage range, such message goes directly to output,
bypassing the \fBlog report\fP. By default, that is \fBstandard error output\fP bypassing the \fBlog report\fP. By default, that is \fBstandard error output\fP
for error and warning messages and \fBstandard output\fP for common print\-like for error and warning messages and \fBstandard output\fP for common print-like
messages. messages.
When running LVM commands in \fBLVM shell\fP, the log report covers the whole When running LVM commands in \fBLVM shell\fP, the log report covers the whole
@ -430,7 +430,7 @@ For these reasons and for completeness, it's not possible to rely fully on
\fBlog report\fP as the only indicator of LVM command's status and the only \fBlog report\fP as the only indicator of LVM command's status and the only
place where all messages issued during LVM command execution are collected. 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 You always need to check whether the command has not failed out of log
report's range by checking the non\-report output too. report's range by checking the non-report output too.
To help with this, LVM can separate output which you can then redirect to To help with this, LVM can separate output which you can then redirect to
any \fBcustom file descriptor\fP that you prepare before running an LVM any \fBcustom file descriptor\fP that you prepare before running an LVM
@ -441,7 +441,7 @@ descriptor numbers. See also \fBLVM_OUT_FD\fP, \fBLVM_ERR_FD\fP and
man page. man page.
Also note that, by default, reports use the same file descriptor as Also note that, by default, reports use the same file descriptor as
common print\-like messages, which is \fBstandard output\fP. If you plan to common print-like messages, which is \fBstandard output\fP. If you plan to
use \fBlog report\fP in your scripts or any external tool, you should use use \fBlog report\fP in your scripts or any external tool, you should use
\fBLVM_OUT_FD\fP, \fBLVM_ERR_FD\fP and \fBLVM_REPORT_FD\fP to separate all \fBLVM_OUT_FD\fP, \fBLVM_ERR_FD\fP and \fBLVM_REPORT_FD\fP to separate all
output types to different file descriptors. For example, with bash, that output types to different file descriptors. For example, with bash, that
@ -572,13 +572,13 @@ Rreturn code associated with current item.
.RE .RE
You can also run \fB<lvm_command> \-\-configreport log -o help\fP to You can also run \fB<lvm_command> --configreport log -o help\fP to
to display complete list of fields that you may use for the \fBlog report\fP. to display complete list of fields that you may use for the \fBlog report\fP.
.SH Selection .SH Selection
Selection is used for a report to display only rows that match Selection is used for a report to display only rows that match
\fBselection criteria\fP. All rows are displayed with the additional \fBselection criteria\fP. All rows are displayed with the additional
\fBselected\fP field (\fB\-o selected\fP) displaying 1 if the row matches the \fBselected\fP field (\fB-o selected\fP) displaying 1 if the row matches the
\fISelection\fP and 0 otherwise. The \fBselection criteria\fP are a set of \fISelection\fP and 0 otherwise. The \fBselection criteria\fP are a set of
\fBstatements\fP combined by \fBlogical and grouping operators\fP. \fBstatements\fP combined by \fBlogical and grouping operators\fP.
The \fBstatement\fP consists of a \fBfield\fP name for which a set of valid The \fBstatement\fP consists of a \fBfield\fP name for which a set of valid
@ -668,7 +668,7 @@ criteria)
\fBnumber\fP for integer value \fBnumber\fP for integer value
.IP \[bu] 3 .IP \[bu] 3
\fBsize\fP for integer or floating point number with size unit suffix \fBsize\fP for integer or floating point number with size unit suffix
(see also \fBlvcreate\fP(8) man page and description for "-L|\-\-size" (see also \fBlvcreate\fP(8) man page and description for "-L|--size"
option for the list of recognized suffixes) option for the list of recognized suffixes)
.IP \[bu] 3 .IP \[bu] 3
\fBpercent\fP for floating point number with or without "%" suffix \fBpercent\fP for floating point number with or without "%" suffix
@ -708,9 +708,9 @@ demonstrating time expressions in selection criteria, see \fBEXAMPLES\fP section
date date
.RS .RS
.IP .IP
YYYY\-MM\-DD YYYY-MM-DD
.IP .IP
YYYY\-MM, auto DD=1 YYYY-MM, auto DD=1
.IP .IP
YYYY, auto MM=01 and DD=01 YYYY, auto MM=01 and DD=01
.RE .RE
@ -735,7 +735,7 @@ timezone
+hh or -hh +hh or -hh
.RE .RE
The full date/time specification is YYYY\-MM\-DD hh:mm:ss. Users are able 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, 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: a range is assumed automatically with second granularity. For example:
@ -795,12 +795,12 @@ month names ("January" - "December" or abbreviated as "Jan" - "Dec")
.IP .IP
.BR VALUE " = " [VALUE " log_op " VALUE] .BR VALUE " = " [VALUE " log_op " VALUE]
.br .br
For list\-based types: string list. Matches strictly. For list-based types: string list. Matches strictly.
The log_op must always be of one type within the whole list value. The log_op must always be of one type within the whole list value.
.IP .IP
.BR VALUE " = " {VALUE " log_op " VALUE} .BR VALUE " = " {VALUE " log_op " VALUE}
.br .br
For list\-based types: string list. Matches a subset. For list-based types: string list. Matches a subset.
The log_op must always be of one type within the whole list value. The log_op must always be of one type within the whole list value.
.IP .IP
.BR VALUE " = " value .BR VALUE " = " value
@ -818,7 +818,7 @@ including all configuration related to reporting. We will use it throughout
examples below to display current configuration. examples below to display current configuration.
.nf .nf
# lvmconfig \-\-type full global/units global/suffix \\ # lvmconfig --type full global/units global/suffix \\
report/output_format report/compact_output \\ report/output_format report/compact_output \\
report/compact_output_cols report/aligned \\ report/compact_output_cols report/aligned \\
report/headings report/separator \\ report/headings report/separator \\
@ -840,7 +840,7 @@ prefixes=0
quoted=1 quoted=1
columns_as_rows=0 columns_as_rows=0
binary_values_as_numeric=0 binary_values_as_numeric=0
time_format="%Y\-%m\-%d %T %z" time_format="%Y-%m-%d %T %z"
mark_hidden_devices=1 mark_hidden_devices=1
two_word_unknown_device=0 two_word_unknown_device=0
buffered=1 buffered=1
@ -854,7 +854,7 @@ type is configured with configuration settings as we already mentioned in
\fBmain report specifics\fP section in this man page. \fBmain report specifics\fP section in this man page.
.nf .nf
# lvmconfig \-\-type full report/pvs_cols report/pvs_sort \\ # lvmconfig --type full report/pvs_cols report/pvs_sort \\
report/pvsegs_cols report/pvsegs_sort report/vgs_cols \\ report/pvsegs_cols report/pvsegs_sort report/vgs_cols \\
report/vgs_sort report/lvs_cols report/lvs_sort \\ report/vgs_sort report/lvs_cols report/lvs_sort \\
report/segs_cols report/segs_sort report/segs_cols report/segs_sort
@ -875,32 +875,32 @@ segs_sort="vg_name,lv_name,seg_start"
.nf .nf
# pvs # pvs
PV VG Fmt Attr PSize PFree PV VG Fmt Attr PSize PFree
/dev/sda vg lvm2 a\-\- 100.00m 88.00m /dev/sda vg lvm2 a-- 100.00m 88.00m
/dev/sdb vg lvm2 a\-\- 100.00m 92.00m /dev/sdb vg lvm2 a-- 100.00m 92.00m
# pvs \-\-segments # pvs --segments
PV VG Fmt Attr PSize PFree Start SSize PV VG Fmt Attr PSize PFree Start SSize
/dev/sda vg lvm2 a\-\- 100.00m 88.00m 0 1 /dev/sda vg lvm2 a-- 100.00m 88.00m 0 1
/dev/sda vg lvm2 a\-\- 100.00m 88.00m 1 1 /dev/sda vg lvm2 a-- 100.00m 88.00m 1 1
/dev/sda vg lvm2 a\-\- 100.00m 88.00m 2 1 /dev/sda vg lvm2 a-- 100.00m 88.00m 2 1
/dev/sda vg lvm2 a\-\- 100.00m 88.00m 3 22 /dev/sda vg lvm2 a-- 100.00m 88.00m 3 22
/dev/sdb vg lvm2 a\-\- 100.00m 92.00m 0 1 /dev/sdb vg lvm2 a-- 100.00m 92.00m 0 1
/dev/sdb vg lvm2 a\-\- 100.00m 92.00m 1 1 /dev/sdb vg lvm2 a-- 100.00m 92.00m 1 1
/dev/sdb vg lvm2 a\-\- 100.00m 92.00m 2 23 /dev/sdb vg lvm2 a-- 100.00m 92.00m 2 23
# vgs # vgs
VG #PV #LV #SN Attr VSize VFree VG #PV #LV #SN Attr VSize VFree
vg 2 2 0 wz\-\-n\- 200.00m 180.00m vg 2 2 0 wz--n- 200.00m 180.00m
# lvs # lvs
LV VG Attr LSize Pool Origin Move Log Cpy%Sync Convert LV VG Attr LSize Pool Origin Move Log Cpy%Sync Convert
lvol0 vg -wi\-a\-\-\-\-\- 4.00m lvol0 vg -wi-a----- 4.00m
lvol1 vg rwi\-a\-r\-\-\- 4.00m 100.00 lvol1 vg rwi-a-r--- 4.00m 100.00
# lvs \-\-segments # lvs --segments
LV VG Attr #Str Type SSize LV VG Attr #Str Type SSize
lvol0 vg -wi\-a\-\-\-\-\- 1 linear 4.00m lvol0 vg -wi-a----- 1 linear 4.00m
lvol1 vg rwi\-a\-r\-\-\- 2 raid1 4.00m lvol1 vg rwi-a-r--- 2 raid1 4.00m
.fi .fi
We will use \fBreport/lvs_cols\fP and \fBreport/lvs_sort\fP configuration We will use \fBreport/lvs_cols\fP and \fBreport/lvs_sort\fP configuration
@ -911,7 +911,7 @@ Also note that in the example below, we don't display the "lv_time" field
even though we're using it for sorting - this is allowed. even though we're using it for sorting - this is allowed.
.nf .nf
# lvmconfig \-\-type full report/lvs_cols report/lvs_sort # lvmconfig --type full report/lvs_cols report/lvs_sort
lvs_cols="lv_name,lv_size,origin,pool_lv,copy_percent" lvs_cols="lv_name,lv_size,origin,pool_lv,copy_percent"
lvs_sort="-lv_time" lvs_sort="-lv_time"
@ -921,7 +921,7 @@ lvs_sort="-lv_time"
lvol0 4.00m lvol0 4.00m
.fi .fi
You can use \fB\-o|\-\-options\fP command line option to override current You can use \fB-o|--options\fP command line option to override current
configuration directly on command line. configuration directly on command line.
.nf .nf
@ -935,12 +935,12 @@ configuration directly on command line.
lvol1 4.00m 100.00 raid,raid1 lvol1 4.00m 100.00 raid,raid1
lvol0 4.00m linear lvol0 4.00m linear
# lvs -o\-origin # lvs -o-origin
LV LSize Pool Cpy%Sync LV LSize Pool Cpy%Sync
lvol1 4.00m 100.00 lvol1 4.00m 100.00
lvol0 4.00m lvol0 4.00m
# lvs -o lv_name,lv_size,origin -o+lv_layout -o\-origin -O lv_name # lvs -o lv_name,lv_size,origin -o+lv_layout -o-origin -O lv_name
LV LSize Layout LV LSize Layout
lvol0 4.00m linear lvol0 4.00m linear
lvol1 4.00m raid,raid1 lvol1 4.00m raid,raid1
@ -956,7 +956,7 @@ This way, it's possible to configure different sets of fields to display
and to sort by for individual reports as well as the full report. and to sort by for individual reports as well as the full report.
.nf .nf
# lvmconfig \-\-type full report/pvs_cols_full \\ # lvmconfig --type full report/pvs_cols_full \\
report/pvs_sort_full report/pvsegs_cols_full \\ report/pvs_sort_full report/pvsegs_cols_full \\
report/pvsegs_sort_full report/vgs_cols_full \\ report/pvsegs_sort_full report/vgs_cols_full \\
report/vgs_sort_full report/lvs_cols_full \\ report/vgs_sort_full report/lvs_cols_full \\
@ -1007,7 +1007,7 @@ output. To enable this feature and to compact all fields, use
\fBreport/compact_output=1\fP in your configuration. \fBreport/compact_output=1\fP in your configuration.
.nf .nf
# lvmconfig \-\-type full report/compact_output # lvmconfig --type full report/compact_output
compact_output=1 compact_output=1
# lvs # lvs
@ -1021,11 +1021,11 @@ compact_output=1
.fi .fi
Alternatively, you can define which fields should be compacted by configuring Alternatively, you can define which fields should be compacted by configuring
\fBreport/compact_output_cols\fP configuration setting (or \fB\-o|\-\-options #\fP \fBreport/compact_output_cols\fP configuration setting (or \fB-o|--options #\fP
command line option). command line option).
.nf .nf
# lvmconfig \-\-type full report/compact_output report/compact_output_cols # lvmconfig --type full report/compact_output report/compact_output_cols
compact_output=0 compact_output=0
compact_output_cols="origin" compact_output_cols="origin"
@ -1048,85 +1048,85 @@ We will use \fBreport/compact_output=1\fP for subsequent examples.
.SS Further formatting options .SS Further formatting options
By default, LVM displays sizes in reports in human\-readable form which means By default, LVM displays sizes in reports in human-readable form which means
that the most suitable unit is used so it's easy to read. You can use that the most suitable unit is used so it's easy to read. You can use
\fBreport/units\fP configuration setting (or \fB\-\-units\fP option directly \fBreport/units\fP configuration setting (or \fB--units\fP option directly
on command line) and \fBreport/suffix\fP on command line) and \fBreport/suffix\fP
configuration setting (or \fB\-\-nosuffix\fP command line option) to change this. configuration setting (or \fB--nosuffix\fP command line option) to change this.
.nf .nf
# lvs \-\-units b \-\-nosuffix # lvs --units b --nosuffix
LV LSize Cpy%Sync LV LSize Cpy%Sync
lvol1 4194304 100.00 lvol1 4194304 100.00
lvol0 4194304 lvol0 4194304
.fi .fi
If you want to configure whether report headings are displayed or not, use If you want to configure whether report headings are displayed or not, use
\fBreport/headings\fP configuration settings (or \fB\-\-noheadings\fP command \fBreport/headings\fP configuration settings (or \fB--noheadings\fP command
line option). line option).
.nf .nf
# lvs \-\-noheadings # lvs --noheadings
lvol1 4.00m 100.00 lvol1 4.00m 100.00
lvol0 4.00m lvol0 4.00m
.fi .fi
In some cases, it may be useful to display report content as key=value pairs In some cases, it may be useful to display report content as key=value pairs
where key here is actually the field name. Use \fBreport/prefixes\fP where key here is actually the field name. Use \fBreport/prefixes\fP
configuration setting (or \fB\-\-nameprefixes\fP command line option) to switch configuration setting (or \fB--nameprefixes\fP command line option) to switch
between standard output and the key=value output. The key=value pair is the between standard output and the key=value output. The key=value pair is the
output that is suitable for use in scripts and for other tools to parse easily. output that is suitable for use in scripts and for other tools to parse easily.
Usually, you also don't want to display headings with the output that has these Usually, you also don't want to display headings with the output that has these
key=value pairs. key=value pairs.
.nf .nf
# lvs \-\-noheadings \-\-nameprefixes # lvs --noheadings --nameprefixes
LVM2_LV_NAME='lvol1' LVM2_LV_SIZE='4.00m' LVM2_COPY_PERCENT='100.00' LVM2_LV_NAME='lvol1' LVM2_LV_SIZE='4.00m' LVM2_COPY_PERCENT='100.00'
LVM2_LV_NAME='lvol0' LVM2_LV_SIZE='4.00m' LVM2_COPY_PERCENT='' LVM2_LV_NAME='lvol0' LVM2_LV_SIZE='4.00m' LVM2_COPY_PERCENT=''
.fi .fi
To define whether quotation marks in key=value pairs should be used or not, To define whether quotation marks in key=value pairs should be used or not,
use \fBreport/quoted\fP configuration setting (or \fB\-\-unquoted\fP command use \fBreport/quoted\fP configuration setting (or \fB--unquoted\fP command
line option). line option).
.nf .nf
# lvs \-\-noheadings \-\-nameprefixes \-\-unquoted # lvs --noheadings --nameprefixes --unquoted
LVM2_LV_NAME=lvol1 LVM2_LV_SIZE=4.00m LVM2_COPY_PERCENT=100.00 LVM2_LV_NAME=lvol1 LVM2_LV_SIZE=4.00m LVM2_COPY_PERCENT=100.00
LVM2_LV_NAME=lvol0 LVM2_LV_SIZE=4.00m LVM2_COPY_PERCENT= LVM2_LV_NAME=lvol0 LVM2_LV_SIZE=4.00m LVM2_COPY_PERCENT=
.fi .fi
For easier parsing, you can even transpose the report so each column now For easier parsing, you can even transpose the report so each column now
becomes a row in the output. This is done with \fBreport/output_as_rows\fP becomes a row in the output. This is done with \fBreport/output_as_rows\fP
configuration setting (or \fB\-\-rows\fP command line option). configuration setting (or \fB--rows\fP command line option).
.nf .nf
# lvs \-\-noheadings \-\-nameprefixes \-\-unquoted \-\-rows # lvs --noheadings --nameprefixes --unquoted --rows
LVM2_LV_NAME=lvol1 LVM2_LV_NAME=lvol0 LVM2_LV_NAME=lvol1 LVM2_LV_NAME=lvol0
LVM2_LV_SIZE=4.00m LVM2_LV_SIZE=4.00m LVM2_LV_SIZE=4.00m LVM2_LV_SIZE=4.00m
LVM2_COPY_PERCENT=100.00 LVM2_COPY_PERCENT= LVM2_COPY_PERCENT=100.00 LVM2_COPY_PERCENT=
.fi .fi
Use \fBreport/separator\fP configuration setting (or \fB\-\-separator\fP command Use \fBreport/separator\fP configuration setting (or \fB--separator\fP command
line option) to define your own field separator to use. line option) to define your own field separator to use.
.nf .nf
# lvs \-\-noheadings \-\-nameprefixes \-\-unquoted \-\-separator " | " # lvs --noheadings --nameprefixes --unquoted --separator " | "
LVM2_LV_NAME=lvol1 | LVM2_LV_SIZE=4.00m | LVM2_COPY_PERCENT=100.00 LVM2_LV_NAME=lvol1 | LVM2_LV_SIZE=4.00m | LVM2_COPY_PERCENT=100.00
LVM2_LV_NAME=lvol0 | LVM2_LV_SIZE=4.00m | LVM2_COPY_PERCENT= LVM2_LV_NAME=lvol0 | LVM2_LV_SIZE=4.00m | LVM2_COPY_PERCENT=
.fi .fi
If you are using your own separator, the columns in the output are not aligned If you are using your own separator, the columns in the output are not aligned
by default. Use \fBreport/aligned\fP configuration setting (or \fB\-\-aligned\fP by default. Use \fBreport/aligned\fP configuration setting (or \fB--aligned\fP
command line option) for LVM to add extra spaces in report to align the output command line option) for LVM to add extra spaces in report to align the output
properly. properly.
.nf .nf
# lvs \-\-separator " | " # lvs --separator " | "
LV | LSize | Cpy%Sync LV | LSize | Cpy%Sync
lvol1 | 4.00m | 100.00 lvol1 | 4.00m | 100.00
lvol0 | 4.00m | lvol0 | 4.00m |
# lvs \-\-separator " | " \-\-aligned # lvs --separator " | " --aligned
LV | LSize | Cpy%Sync LV | LSize | Cpy%Sync
lvol1 | 4.00m | 100.00 lvol1 | 4.00m | 100.00
lvol0 | 4.00m | lvol0 | 4.00m |
@ -1148,7 +1148,7 @@ separator, use \fBreport/list_item_separator\fP configuration setting its
definition. definition.
.nf .nf
# lvmconfig \-\-type full report/list_item_separator # lvmconfig --type full report/list_item_separator
list_item_separator=";" list_item_separator=";"
# lvs -o+tags # lvs -o+tags
@ -1165,8 +1165,8 @@ Format for any of time values displayed in reports can be configured with
and time is displayed, including timezone. and time is displayed, including timezone.
.nf .nf
# lvmconfig \-\-type full report/time_format # lvmconfig --type full report/time_format
time_format="%Y\-%m\-%d %T %z" time_format="%Y-%m-%d %T %z"
# lvs -o+time # lvs -o+time
LV LSize Cpy%Sync CTime LV LSize Cpy%Sync CTime
@ -1176,22 +1176,22 @@ time_format="%Y\-%m\-%d %T %z"
We can change time format in similar way as we do when using \fBdate\fP(1) We can change time format in similar way as we do when using \fBdate\fP(1)
command or \fBstrftime\fP(3) function command or \fBstrftime\fP(3) function
(\fBlvmconfig \-\-type default \-\-withcomments report/time_format\fP will (\fBlvmconfig --type default --withcomments report/time_format\fP will
give you complete list of available formatting options). In the example give you complete list of available formatting options). In the example
below, we decided to use %s for number of seconds since Epoch (1970-01-01 UTC). below, we decided to use %s for number of seconds since Epoch (1970-01-01 UTC).
.nf .nf
# lvmconfig \-\-type full report/time_format # lvmconfig --type full report/time_format
time_format="%s" time_format="%s"
# lvs # lvs
LV Attr LSize Cpy%Sync LV Tags CTime LV Attr LSize Cpy%Sync LV Tags CTime
lvol1 rwi\-a\-r\-\-\- 4.00m 100.00 1472468016 lvol1 rwi-a-r--- 4.00m 100.00 1472468016
lvol0 -wi\-a\-\-\-\-\- 4.00m tagA,tagB 1472458517 lvol0 -wi-a----- 4.00m tagA,tagB 1472458517
.fi .fi
The \fBlvs\fP does not display hidden LVs by default - to include these LVs The \fBlvs\fP does not display hidden LVs by default - to include these LVs
in the output, you need to use \fB\-a|\-\-all\fP command line option. Names for in the output, you need to use \fB-a|--all\fP command line option. Names for
these hidden LVs are displayed within square brackets. these hidden LVs are displayed within square brackets.
.nf .nf
@ -1209,7 +1209,7 @@ You can configure LVM to display the square brackets for hidden LVs or not with
\fBreport/mark_hidden_devices\fP configuration setting. \fBreport/mark_hidden_devices\fP configuration setting.
.nf .nf
# lvmconfig \-\-type full report/mark_hidden_devices # lvmconfig --type full report/mark_hidden_devices
mark_hidden_devices=0 mark_hidden_devices=0
# lvs -a # lvs -a
@ -1254,7 +1254,7 @@ We can change the way how these binary values are displayed with
\fBreport/binary_values_as_numeric\fP configuration setting. \fBreport/binary_values_as_numeric\fP configuration setting.
.nf .nf
# lvmconfig \-\-type full report/binary_values_as_numeric # lvmconfig --type full report/binary_values_as_numeric
binary_values_as_numeric=1 binary_values_as_numeric=1
# lvs -o+lv_active_locally # lvs -o+lv_active_locally
@ -1266,12 +1266,12 @@ binary_values_as_numeric=1
.SS Changing output format .SS Changing output format
LVM can output reports in different formats - use \fBreport/output_format\fP LVM can output reports in different formats - use \fBreport/output_format\fP
configuration setting (or \fB\-\-reportformat\fP command line option) to swith configuration setting (or \fB--reportformat\fP command line option) to swith
the report output format. Currently, LVM supports \fB"basic"\fP (all the examples the report output format. Currently, LVM supports \fB"basic"\fP (all the examples
we used above used this format) and \fB"JSON"\fP output format. we used above used this format) and \fB"JSON"\fP output format.
.nf .nf
# lvs -o lv_name,lv_size \-\-reportformat json # lvs -o lv_name,lv_size --reportformat json
{ {
"report": [ "report": [
{ {
@ -1286,9 +1286,9 @@ we used above used this format) and \fB"JSON"\fP output format.
Note that some configuration settings and command line options have no Note that some configuration settings and command line options have no
effect with certain report formats. For example, with \fBJSON\fP output, effect with certain report formats. For example, with \fBJSON\fP output,
it doesn't have any meaning to use \fBreport/aligned\fP (\fB\-\-aligned\fP), it doesn't have any meaning to use \fBreport/aligned\fP (\fB--aligned\fP),
\fBreport/noheadings\fP (\fB\-\-noheadings\fP), \fBreport/columns_as_rows\fP \fBreport/noheadings\fP (\fB--noheadings\fP), \fBreport/columns_as_rows\fP
(\fB\-\-rows\fP) or \fBreport/buffered\fP (\fB\-\-unbuffered\fP). All these (\fB--rows\fP) or \fBreport/buffered\fP (\fB--unbuffered\fP). All these
configuration settings and command line options are ignored if using the configuration settings and command line options are ignored if using the
\fBJSON\fP report output format. \fBJSON\fP report output format.
@ -1315,7 +1315,7 @@ look at the bottom of the help output, you can see section about
# lvs -S help # lvs -S help
... ...
Selection operators Selection operators
\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\- -------------------
Comparison operators: Comparison operators:
=~ - Matching regular expression. [regex] =~ - Matching regular expression. [regex]
!~ - Not matching regular expression. [regex] !~ - Not matching regular expression. [regex]
@ -1384,16 +1384,16 @@ together.
lvol2 8.00m lvol2 8.00m
.fi .fi
You can also use selection together with processing\-oriented commands. You can also use selection together with processing-oriented commands.
.nf .nf
# lvchange \-\-addtag test -S 'size < 5000k' # lvchange --addtag test -S 'size < 5000k'
Logical volume vg/lvol1 changed. Logical volume vg/lvol1 changed.
Logical volume vg/lvol0 changed. Logical volume vg/lvol0 changed.
Logical volume vg/lvol3 changed. Logical volume vg/lvol3 changed.
Logical volume vg/lvol4 changed. Logical volume vg/lvol4 changed.
# lvchange \-\-deltag test -S 'tags = test' # lvchange --deltag test -S 'tags = test'
Logical volume vg/lvol1 changed. Logical volume vg/lvol1 changed.
Logical volume vg/lvol0 changed. Logical volume vg/lvol0 changed.
Logical volume vg/lvol3 changed. Logical volume vg/lvol3 changed.
@ -1534,7 +1534,7 @@ Time operators have synonyms: ">=" for since, "<=" for until,
Example below demonstrates using absolute time expression. Example below demonstrates using absolute time expression.
.nf .nf
# lvs -o name,time \-\-config report/time_format="%s" # lvs -o name,time --config report/time_format="%s"
LV CTime LV CTime
lvol4 1473433064 lvol4 1473433064
lvol3 1473433008 lvol3 1473433008
@ -1593,15 +1593,15 @@ Examples below demonstrates using freeform time expressions.
.SS Command log reporting .SS Command log reporting
As described in \fBcategorization based on reporting facility\fP section As described in \fBcategorization based on reporting facility\fP section
at the beginning of this document, both \fBreport\-oriented\fP and at the beginning of this document, both \fBreport-oriented\fP and
\fBprocessing\-oriented\fP LVM commands can report the command log if \fBprocessing-oriented\fP LVM commands can report the command log if
this is enabled with \fBlog/report_command_log\fP configuration setting. this is enabled with \fBlog/report_command_log\fP configuration setting.
Just like any other report, we can set the set of fields to display Just like any other report, we can set the set of fields to display
(\fBlog/command_log_cols\fP) and to sort by (\fBlog/command_log_sort\fP) (\fBlog/command_log_cols\fP) and to sort by (\fBlog/command_log_sort\fP)
for this report. for this report.
.nf .nf
# lvmconfig \-\-type full log/report_command_log log/command_log_cols \\ # lvmconfig --type full log/report_command_log log/command_log_cols \\
log/command_log_sort log/command_log_selection log/command_log_sort log/command_log_selection
report_command_log=1 report_command_log=1
command_log_cols="log_seq_num,log_type,log_context,log_object_type, command_log_cols="log_seq_num,log_type,log_context,log_object_type,
@ -1631,7 +1631,7 @@ log report in the example below where we can see that both LVs lvol0 and
lvol1 were successfully processed as well as the VG vg they are part of. lvol1 were successfully processed as well as the VG vg they are part of.
.nf .nf
# lvmconfig \-\-type full log/command_log_selection # lvmconfig --type full log/command_log_selection
command_log_selection="all" command_log_selection="all"
# lvs # lvs
@ -1659,11 +1659,11 @@ command_log_selection="all"
.SS Handling multiple reports per single command .SS Handling multiple reports per single command
To configure the log report directly on command line, we need to use To configure the log report directly on command line, we need to use
\fB\-\-configreport\fP option before we start any \fB\-o|\-\-options\fP, \fB--configreport\fP option before we start any \fB-o|--options\fP,
\fB\-O|\-\-sort\fP or \fB\-S|\-\-select\fP that is targeted for log report. \fB-O|--sort\fP or \fB-S|--select\fP that is targeted for log report.
.nf .nf
# lvs -o lv_name,lv_size \-\-configreport log -o log_object_type, \\ # lvs -o lv_name,lv_size --configreport log -o log_object_type, \\
log_object_name,log_message,log_ret_code log_object_name,log_message,log_ret_code
Logical Volume Logical Volume
============== ==============
@ -1680,7 +1680,7 @@ To configure the log report directly on command line, we need to use
.fi .fi
The \fBlvm fullreport\fP, with or without log report, consists of several The \fBlvm fullreport\fP, with or without log report, consists of several
reports - the \fB\-\-configreport\fP is also used to target particular reports - the \fB--configreport\fP is also used to target particular
subreport here. subreport here.
Below is an extended example with \fBlvm fullreport\fP to illustrate Below is an extended example with \fBlvm fullreport\fP to illustrate
@ -1693,12 +1693,12 @@ having "sda" in its name. Also, for the log subreport we define ordering
to be based on "log_object_type" field. to be based on "log_object_type" field.
.nf .nf
# lvm fullreport \-\-reportformat json \\ # lvm fullreport --reportformat json \\
\-\-configreport vg -o vg_name,vg_size \\ --configreport vg -o vg_name,vg_size \\
\-\-configreport pvseg -o pv_name,pvseg_start \\ --configreport pvseg -o pv_name,pvseg_start \\
-S 'pv_name=~sda' \\ -S 'pv_name=~sda' \\
\-\-configreport seg -o lv_name,seg_start \\ --configreport seg -o lv_name,seg_start \\
\-\-configreport log -o log_object_type,log_object_name \\ --configreport log -o log_object_type,log_object_name \\
-O log_object_type \\ -O log_object_type \\
-S 'log_object_name=lvol0 || \\ -S 'log_object_name=lvol0 || \\
log_object_name=~sda' log_object_name=~sda'

View File

@ -4,7 +4,7 @@ lvmsadc \(em LVM system activity data collector
.SH "SYNOPSIS" .SH "SYNOPSIS"
.B lvmsadc .B lvmsadc
.SH "DESCRIPTION" .SH "DESCRIPTION"
lvmsadc is not supported under LVM2. The device\-mapper statistics lvmsadc is not supported under LVM2. The device-mapper statistics
facility provides similar performance metrics using the \fBdmstats(8)\fP facility provides similar performance metrics using the \fBdmstats(8)\fP
command. command.
.SH "SEE ALSO" .SH "SEE ALSO"

View File

@ -4,7 +4,7 @@ lvmsar \(em LVM system activity reporter
.SH "SYNOPSIS" .SH "SYNOPSIS"
.B lvmsar .B lvmsar
.SH "DESCRIPTION" .SH "DESCRIPTION"
lvmsar is not supported under LVM2. The device\-mapper statistics lvmsar is not supported under LVM2. The device-mapper statistics
facility provides similar performance metrics using the \fBdmstats(8)\fP facility provides similar performance metrics using the \fBdmstats(8)\fP
command. command.
.SH "SEE ALSO" .SH "SEE ALSO"

View File

@ -15,12 +15,12 @@ from accidental use by other hosts.
The system_id is not a dynamic property, and can only be changed in very The system_id is not a dynamic property, and can only be changed in very
limited circumstances (see vgexport and vgimport). Even limited changes limited circumstances (see vgexport and vgimport). Even limited changes
to the VG system_id are not perfectly reflected across hosts. A more to the VG system_id are not perfectly reflected across hosts. A more
coherent view of shared storage requires using an inter\-host locking coherent view of shared storage requires using an inter-host locking
system to coordinate access and update caches. system to coordinate access and update caches.
The system_id is a string uniquely identifying a host. It can be manually The system_id is a string uniquely identifying a host. It can be manually
set to a custom value or it can be assigned automatically by lvm using a set to a custom value or it can be assigned automatically by lvm using a
unique identifier already available on the host, e.g. machine\-id or uname. unique identifier already available on the host, e.g. machine-id or uname.
In vgcreate, the local system_id is saved in the new VG metadata. The In vgcreate, the local system_id is saved in the new VG metadata. The
local host owns the new VG, and other hosts cannot use it. local host owns the new VG, and other hosts cannot use it.
@ -53,7 +53,7 @@ command 'vgs -o+systemid'
A VG will not have a system_id if it was created before this feature was A VG will not have a system_id if it was created before this feature was
added to lvm, or if it was created by a host that did not have a system_id added to lvm, or if it was created by a host that did not have a system_id
defined. A system_id can be assigned to these VGs by using vgchange defined. A system_id can be assigned to these VGs by using vgchange
\-\-systemid (see below). --systemid (see below).
.IP \[bu] 2 .IP \[bu] 2
Two hosts should not be assigned the same system_id. Doing so defeats Two hosts should not be assigned the same system_id. Doing so defeats
@ -72,7 +72,7 @@ A host using an old version of lvm without the system_id feature will not
recognize a new system_id in VGs from other hosts. Even though the old recognize a new system_id in VGs from other hosts. Even though the old
version of lvm is not blocked from reading a VG with a system_id, it is version of lvm is not blocked from reading a VG with a system_id, it is
blocked from writing to the VG (or its LVs). The new system_id changes blocked from writing to the VG (or its LVs). The new system_id changes
the write mode of a VG, making it appear read\-only to previous lvm the write mode of a VG, making it appear read-only to previous lvm
versions. versions.
This also means that if a host downgrades its version of lvm, it would This also means that if a host downgrades its version of lvm, it would
@ -144,12 +144,12 @@ global {
.B machineid .B machineid
.br .br
The content of /etc/machine\-id is used as the system_id if available. The content of /etc/machine-id is used as the system_id if available.
See See
.BR machine\-id (5) .BR machine-id (5)
and and
.BR systemd\-machine\-id\-setup (1) .BR systemd-machine-id-setup (1)
to check if machine\-id is available on the host. to check if machine-id is available on the host.
.I lvm.conf .I lvm.conf
.nf .nf
@ -239,7 +239,7 @@ local {
In vgcreate, the host running the command assigns its own system_id to the In vgcreate, the host running the command assigns its own system_id to the
new VG. To override this and set another system_id: new VG. To override this and set another system_id:
.B vgcreate \-\-systemid .B vgcreate --systemid
.I SystemID VG Devices .I SystemID VG Devices
Overriding the system_id makes it possible for a host to create a VG that Overriding the system_id makes it possible for a host to create a VG that
@ -247,7 +247,7 @@ it may not be able to use. Another host with a system_id matching the one
specified may not recognize the new VG without manually rescanning specified may not recognize the new VG without manually rescanning
devices. devices.
If the \-\-systemid argument is an empty string (""), the VG is created with If the --systemid argument is an empty string (""), the VG is created with
no system_id, making it accessible to other hosts (see warnings above.) no system_id, making it accessible to other hosts (see warnings above.)
.SS report/display .SS report/display
@ -255,11 +255,11 @@ no system_id, making it accessible to other hosts (see warnings above.)
The system_id of a VG is displayed with the "systemid" reporting option. The system_id of a VG is displayed with the "systemid" reporting option.
Report/display commands ignore foreign VGs by default. To report foreign Report/display commands ignore foreign VGs by default. To report foreign
VGs, the \-\-foreign option can be used. This causes the VGs to be read VGs, the --foreign option can be used. This causes the VGs to be read
from disk. Because lvmetad caching is not used, this option can cause from disk. Because lvmetad caching is not used, this option can cause
poor performance. poor performance.
.B vgs \-\-foreign -o+systemid .B vgs --foreign -o+systemid
When a host with no system_id sees foreign VGs, it warns about them as When a host with no system_id sees foreign VGs, it warns about them as
they are skipped. The host should be assigned a system_id, after which they are skipped. The host should be assigned a system_id, after which
@ -271,7 +271,7 @@ vgexport clears the system_id.
Other hosts will continue to see a newly exported VG as foreign because of Other hosts will continue to see a newly exported VG as foreign because of
local caching (when lvmetad is used). Manually updating the local lvmetad local caching (when lvmetad is used). Manually updating the local lvmetad
cache with pvscan \-\-cache will allow a host to recognize the newly cache with pvscan --cache will allow a host to recognize the newly
exported VG. exported VG.
vgimport sets the VG system_id to the local system_id as determined by vgimport sets the VG system_id to the local system_id as determined by
@ -280,7 +280,7 @@ newly exported VGs.
After vgimport, the exporting host will continue to see the VG as After vgimport, the exporting host will continue to see the VG as
exported, and not owned by the new host. Manually updating the local exported, and not owned by the new host. Manually updating the local
cache with pvscan \-\-cache will allow a host to recognize the newly cache with pvscan --cache will allow a host to recognize the newly
imported VG as foreign. imported VG as foreign.
.SS vgchange .SS vgchange
@ -288,7 +288,7 @@ imported VG as foreign.
A host can change the system_id of its own VGs, but the command requires A host can change the system_id of its own VGs, but the command requires
confirmation because the host may lose access to the VG being changed: confirmation because the host may lose access to the VG being changed:
.B vgchange \-\-systemid .B vgchange --systemid
.I SystemID VG .I SystemID VG
The system_id can be removed from a VG by specifying an empty string ("") The system_id can be removed from a VG by specifying an empty string ("")
@ -340,7 +340,7 @@ orphan. Nothing would automatically prevent the other hosts from using
the newly allocated PV and corrupting it. If the other hosts run a the newly allocated PV and corrupting it. If the other hosts run a
command to rescan devices, and update lvmetad, they would then recognize command to rescan devices, and update lvmetad, they would then recognize
that the PV has been used by another host. A command that rescans devices that the PV has been used by another host. A command that rescans devices
could be pvscan \-\-cache, or vgs \-\-foreign. could be pvscan --cache, or vgs --foreign.
.SH SEE ALSO .SH SEE ALSO
.BR vgcreate (8), .BR vgcreate (8),
@ -348,7 +348,7 @@ could be pvscan \-\-cache, or vgs \-\-foreign.
.BR vgimport (8), .BR vgimport (8),
.BR vgexport (8), .BR vgexport (8),
.BR lvm.conf (5), .BR lvm.conf (5),
.BR machine\-id (5), .BR machine-id (5),
.BR uname (2), .BR uname (2),
.BR vgs (8) .BR vgs (8)

View File

@ -99,26 +99,26 @@ The primary method for using lvm thin provisioning:
Create an LV that will hold thin pool data. Create an LV that will hold thin pool data.
.B lvcreate \-n ThinDataLV \-L LargeSize VG .B lvcreate -n ThinDataLV -L LargeSize VG
.I Example .I Example
.br .br
# lvcreate \-n pool0 \-L 10G vg # lvcreate -n pool0 -L 10G vg
.SS 2. create ThinMetaLV .SS 2. create ThinMetaLV
Create an LV that will hold thin pool metadata. Create an LV that will hold thin pool metadata.
.B lvcreate \-n ThinMetaLV \-L SmallSize VG .B lvcreate -n ThinMetaLV -L SmallSize VG
.I Example .I Example
.br .br
# lvcreate \-n pool0meta \-L 1G vg # lvcreate -n pool0meta -L 1G vg
# lvs # lvs
LV VG Attr LSize LV VG Attr LSize
pool0 vg -wi\-a\-\-\-\-\- 10.00g pool0 vg -wi-a----- 10.00g
pool0meta vg -wi\-a\-\-\-\-\- 1.00g pool0meta vg -wi-a----- 1.00g
.SS 3. create ThinPoolLV .SS 3. create ThinPoolLV
@ -129,21 +129,21 @@ ThinMetaLV is renamed to hidden ThinPoolLV_tmeta.
The new ThinPoolLV takes the previous name of ThinDataLV. The new ThinPoolLV takes the previous name of ThinDataLV.
.fi .fi
.B lvconvert \-\-type thin\-pool \-\-poolmetadata VG/ThinMetaLV VG/ThinDataLV .B lvconvert --type thin-pool --poolmetadata VG/ThinMetaLV VG/ThinDataLV
.I Example .I Example
.br .br
# lvconvert \-\-type thin\-pool \-\-poolmetadata vg/pool0meta vg/pool0 # lvconvert --type thin-pool --poolmetadata vg/pool0meta vg/pool0
# lvs vg/pool0 # lvs vg/pool0
LV VG Attr LSize Pool Origin Data% Meta% LV VG Attr LSize Pool Origin Data% Meta%
pool0 vg twi\-a\-tz\-\- 10.00g 0.00 0.00 pool0 vg twi-a-tz-- 10.00g 0.00 0.00
# lvs \-a # lvs -a
LV VG Attr LSize LV VG Attr LSize
pool0 vg twi\-a\-tz\-\- 10.00g pool0 vg twi-a-tz-- 10.00g
[pool0_tdata] vg Twi\-ao\-\-\-\- 10.00g [pool0_tdata] vg Twi-ao---- 10.00g
[pool0_tmeta] vg ewi\-ao\-\-\-\- 1.00g [pool0_tmeta] vg ewi-ao---- 1.00g
.SS 4. create ThinLV .SS 4. create ThinLV
@ -152,81 +152,81 @@ Create a new thin LV from the thin pool LV.
The thin LV is created with a virtual size. The thin LV is created with a virtual size.
Multiple new thin LVs may be created in the thin pool. Multiple new thin LVs may be created in the thin pool.
Thin LV names must be unique in the VG. Thin LV names must be unique in the VG.
The '\-\-type thin' option is inferred from the virtual size option. The '--type thin' option is inferred from the virtual size option.
The \-\-thinpool argument specifies which thin pool will The --thinpool argument specifies which thin pool will
contain the ThinLV. contain the ThinLV.
.fi .fi
.B lvcreate \-n ThinLV \-V VirtualSize \-\-thinpool ThinPoolLV VG .B lvcreate -n ThinLV -V VirtualSize --thinpool ThinPoolLV VG
.I Example .I Example
.br .br
Create a thin LV in a thin pool: Create a thin LV in a thin pool:
.br .br
# lvcreate \-n thin1 \-V 1T \-\-thinpool pool0 vg # lvcreate -n thin1 -V 1T --thinpool pool0 vg
Create another thin LV in the same thin pool: Create another thin LV in the same thin pool:
.br .br
# lvcreate \-n thin2 \-V 1T \-\-thinpool pool0 vg # lvcreate -n thin2 -V 1T --thinpool pool0 vg
# lvs vg/thin1 vg/thin2 # lvs vg/thin1 vg/thin2
LV VG Attr LSize Pool Origin Data% LV VG Attr LSize Pool Origin Data%
thin1 vg Vwi\-a\-tz\-\- 1.00t pool0 0.00 thin1 vg Vwi-a-tz-- 1.00t pool0 0.00
thin2 vg Vwi\-a\-tz\-\- 1.00t pool0 0.00 thin2 vg Vwi-a-tz-- 1.00t pool0 0.00
.SS 5. create SnapLV .SS 5. create SnapLV
Create snapshots of an existing ThinLV or SnapLV. Create snapshots of an existing ThinLV or SnapLV.
.br .br
Do not specify Do not specify
.BR \-L ", " \-\-size .BR -L ", " --size
when creating a thin snapshot. when creating a thin snapshot.
.br .br
A size argument will cause an old COW snapshot to be created. A size argument will cause an old COW snapshot to be created.
.B lvcreate \-n SnapLV \-\-snapshot VG/ThinLV .B lvcreate -n SnapLV --snapshot VG/ThinLV
.br .br
.B lvcreate \-n SnapLV \-\-snapshot VG/PrevSnapLV .B lvcreate -n SnapLV --snapshot VG/PrevSnapLV
.I Example .I Example
.br .br
Create first snapshot of an existing ThinLV: Create first snapshot of an existing ThinLV:
.br .br
# lvcreate \-n thin1s1 \-s vg/thin1 # lvcreate -n thin1s1 -s vg/thin1
Create second snapshot of the same ThinLV: Create second snapshot of the same ThinLV:
.br .br
# lvcreate \-n thin1s2 \-s vg/thin1 # lvcreate -n thin1s2 -s vg/thin1
Create a snapshot of the first snapshot: Create a snapshot of the first snapshot:
.br .br
# lvcreate \-n thin1s1s1 \-s vg/thin1s1 # lvcreate -n thin1s1s1 -s vg/thin1s1
# lvs vg/thin1s1 vg/thin1s2 vg/thin1s1s1 # lvs vg/thin1s1 vg/thin1s2 vg/thin1s1s1
LV VG Attr LSize Pool Origin LV VG Attr LSize Pool Origin
thin1s1 vg Vwi\-\-\-tz\-k 1.00t pool0 thin1 thin1s1 vg Vwi---tz-k 1.00t pool0 thin1
thin1s2 vg Vwi\-\-\-tz\-k 1.00t pool0 thin1 thin1s2 vg Vwi---tz-k 1.00t pool0 thin1
thin1s1s1 vg Vwi\-\-\-tz\-k 1.00t pool0 thin1s1 thin1s1s1 vg Vwi---tz-k 1.00t pool0 thin1s1
.SS 6. activate SnapLV .SS 6. activate SnapLV
Thin snapshots are created with the persistent "activation skip" Thin snapshots are created with the persistent "activation skip"
flag, indicated by the "k" attribute. Use \-K with lvchange flag, indicated by the "k" attribute. Use -K with lvchange
or vgchange to activate thin snapshots with the "k" attribute. or vgchange to activate thin snapshots with the "k" attribute.
.B lvchange \-ay \-K VG/SnapLV .B lvchange -ay -K VG/SnapLV
.I Example .I Example
.br .br
# lvchange \-ay \-K vg/thin1s1 # lvchange -ay -K vg/thin1s1
# lvs vg/thin1s1 # lvs vg/thin1s1
LV VG Attr LSize Pool Origin LV VG Attr LSize Pool Origin
thin1s1 vg Vwi\-a\-tz\-k 1.00t pool0 thin1 thin1s1 vg Vwi-a-tz-k 1.00t pool0 thin1
.SH Thin Topics .SH Thin Topics
.B Alternate syntax for specifying type thin\-pool .B Alternate syntax for specifying type thin-pool
.br .br
.B Automatic pool metadata LV .B Automatic pool metadata LV
.br .br
@ -286,20 +286,20 @@ A thin data LV can be converted to a thin pool LV without specifying a
thin pool metadata LV. LVM automatically creates a metadata LV from the thin pool metadata LV. LVM automatically creates a metadata LV from the
same VG. same VG.
.B lvcreate \-n ThinDataLV \-L LargeSize VG .B lvcreate -n ThinDataLV -L LargeSize VG
.br .br
.B lvconvert \-\-type thin\-pool VG/ThinDataLV .B lvconvert --type thin-pool VG/ThinDataLV
.I Example .I Example
.br .br
.nf .nf
# lvcreate \-n pool0 \-L 10G vg # lvcreate -n pool0 -L 10G vg
# lvconvert \-\-type thin\-pool vg/pool0 # lvconvert --type thin-pool vg/pool0
# lvs \-a # lvs -a
pool0 vg twi\-a\-tz\-\- 10.00g pool0 vg twi-a-tz-- 10.00g
[pool0_tdata] vg Twi\-ao\-\-\-\- 10.00g [pool0_tdata] vg Twi-ao---- 10.00g
[pool0_tmeta] vg ewi\-ao\-\-\-\- 16.00m [pool0_tmeta] vg ewi-ao---- 16.00m
.fi .fi
@ -312,18 +312,18 @@ separate physical devices. To do that, specify the device name(s)
at the end of the lvcreate line. It can be especially helpful at the end of the lvcreate line. It can be especially helpful
to use fast devices for the metadata LV. to use fast devices for the metadata LV.
.B lvcreate \-n ThinDataLV \-L LargeSize VG LargePV .B lvcreate -n ThinDataLV -L LargeSize VG LargePV
.br .br
.B lvcreate \-n ThinMetaLV \-L SmallSize VG SmallPV .B lvcreate -n ThinMetaLV -L SmallSize VG SmallPV
.br .br
.B lvconvert \-\-type thin\-pool \-\-poolmetadata VG/ThinMetaLV VG/ThinDataLV .B lvconvert --type thin-pool --poolmetadata VG/ThinMetaLV VG/ThinDataLV
.I Example .I Example
.br .br
.nf .nf
# lvcreate \-n pool0 \-L 10G vg /dev/sdA # lvcreate -n pool0 -L 10G vg /dev/sdA
# lvcreate \-n pool0meta \-L 1G vg /dev/sdB # lvcreate -n pool0meta -L 1G vg /dev/sdB
# lvconvert \-\-type thin\-pool \-\-poolmetadata vg/pool0meta vg/pool0 # lvconvert --type thin-pool --poolmetadata vg/pool0meta vg/pool0
.fi .fi
.BR lvm.conf (5) .BR lvm.conf (5)
@ -340,18 +340,18 @@ controls the default PV usage for thin pool creation.
To tolerate device failures, use raid for the pool data LV and To tolerate device failures, use raid for the pool data LV and
pool metadata LV. This is especially recommended for pool metadata LVs. pool metadata LV. This is especially recommended for pool metadata LVs.
.B lvcreate \-\-type raid1 \-m 1 \-n ThinMetaLV \-L SmallSize VG PVA PVB .B lvcreate --type raid1 -m 1 -n ThinMetaLV -L SmallSize VG PVA PVB
.br .br
.B lvcreate \-\-type raid1 \-m 1 \-n ThinDataLV \-L LargeSize VG PVC PVD .B lvcreate --type raid1 -m 1 -n ThinDataLV -L LargeSize VG PVC PVD
.br .br
.B lvconvert \-\-type thin\-pool \-\-poolmetadata VG/ThinMetaLV VG/ThinDataLV .B lvconvert --type thin-pool --poolmetadata VG/ThinMetaLV VG/ThinDataLV
.I Example .I Example
.br .br
.nf .nf
# lvcreate \-\-type raid1 \-m 1 \-n pool0 \-L 10G vg /dev/sdA /dev/sdB # lvcreate --type raid1 -m 1 -n pool0 -L 10G vg /dev/sdA /dev/sdB
# lvcreate \-\-type raid1 \-m 1 \-n pool0meta \-L 1G vg /dev/sdC /dev/sdD # lvcreate --type raid1 -m 1 -n pool0meta -L 1G vg /dev/sdC /dev/sdD
# lvconvert \-\-type thin\-pool \-\-poolmetadata vg/pool0meta vg/pool0 # lvconvert --type thin-pool --poolmetadata vg/pool0meta vg/pool0
.fi .fi
@ -361,7 +361,7 @@ pool metadata LV. This is especially recommended for pool metadata LVs.
The first time a thin pool LV is created, lvm will create a spare The first time a thin pool LV is created, lvm will create a spare
metadata LV in the VG. This behavior can be controlled with the metadata LV in the VG. This behavior can be controlled with the
option \-\-poolmetadataspare y|n. (Future thin pool creations will option --poolmetadataspare y|n. (Future thin pool creations will
also attempt to create the pmspare LV if none exists.) also attempt to create the pmspare LV if none exists.)
To create the pmspare ("pool metadata spare") LV, lvm first creates To create the pmspare ("pool metadata spare") LV, lvm first creates
@ -376,15 +376,15 @@ explicitly.
.I Example .I Example
.br .br
.nf .nf
# lvcreate \-n pool0 \-L 10G vg # lvcreate -n pool0 -L 10G vg
# lvcreate \-n pool0meta \-L 1G vg # lvcreate -n pool0meta -L 1G vg
# lvconvert \-\-type thin\-pool \-\-poolmetadata vg/pool0meta vg/pool0 # lvconvert --type thin-pool --poolmetadata vg/pool0meta vg/pool0
# lvs \-a # lvs -a
[lvol0_pmspare] vg ewi\-\-\-\-\-\-\- [lvol0_pmspare] vg ewi-------
pool0 vg twi\-\-\-tz\-\- pool0 vg twi---tz--
[pool0_tdata] vg Twi\-\-\-\-\-\-\- [pool0_tdata] vg Twi-------
[pool0_tmeta] vg ewi\-\-\-\-\-\-\- [pool0_tmeta] vg ewi-------
.fi .fi
The "Metadata check and repair" section describes the use of The "Metadata check and repair" section describes the use of
@ -424,7 +424,7 @@ details of damaged thin metadata to get the best advice on recovery.
Command to repair a thin pool: Command to repair a thin pool:
.br .br
.B lvconvert \-\-repair VG/ThinPoolLV .B lvconvert --repair VG/ThinPoolLV
Repair performs the following steps: Repair performs the following steps:
@ -452,7 +452,7 @@ If metadata is manually restored with thin_repair directly,
the pool metadata LV can be manually swapped with another LV the pool metadata LV can be manually swapped with another LV
containing new metadata: containing new metadata:
.B lvconvert \-\-thinpool VG/ThinPoolLV \-\-poolmetadata VG/NewThinMetaLV .B lvconvert --thinpool VG/ThinPoolLV --poolmetadata VG/NewThinMetaLV
.SS Activation of thin snapshots .SS Activation of thin snapshots
@ -466,7 +466,7 @@ displayed by lvs:
.nf .nf
# lvs vg/thin1s1 # lvs vg/thin1s1
LV VG Attr LSize Pool Origin LV VG Attr LSize Pool Origin
thin1s1 vg Vwi\-\-\-tz\-k 1.00t pool0 thin1 thin1s1 vg Vwi---tz-k 1.00t pool0 thin1
.fi .fi
This flag causes the snapshot LV to be skipped, i.e. not activated, This flag causes the snapshot LV to be skipped, i.e. not activated,
@ -474,29 +474,29 @@ by normal activation commands. The skipping behavior does not
apply to deactivation commands. apply to deactivation commands.
A snapshot LV with the "k" attribute can be activated using A snapshot LV with the "k" attribute can be activated using
the \-K (or \-\-ignoreactivationskip) option in addition to the the -K (or --ignoreactivationskip) option in addition to the
standard \-ay (or \-\-activate y) option. standard -ay (or --activate y) option.
Command to activate a thin snapshot LV: Command to activate a thin snapshot LV:
.br .br
.B lvchange \-ay \-K VG/SnapLV .B lvchange -ay -K VG/SnapLV
The persistent "activation skip" flag can be turned off during The persistent "activation skip" flag can be turned off during
lvcreate, or later with lvchange using the \-kn lvcreate, or later with lvchange using the -kn
(or \-\-setactivationskip n) option. (or --setactivationskip n) option.
It can be turned on again with \-ky (or \-\-setactivationskip y). It can be turned on again with -ky (or --setactivationskip y).
When the "activation skip" flag is removed, normal activation When the "activation skip" flag is removed, normal activation
commands will activate the LV, and the \-K activation option is commands will activate the LV, and the -K activation option is
not needed. not needed.
Command to create snapshot LV without the activation skip flag: Command to create snapshot LV without the activation skip flag:
.br .br
.B lvcreate \-kn \-n SnapLV \-s VG/ThinLV .B lvcreate -kn -n SnapLV -s VG/ThinLV
Command to remove the activation skip flag from a snapshot LV: Command to remove the activation skip flag from a snapshot LV:
.br .br
.B lvchange \-kn VG/SnapLV .B lvchange -kn VG/SnapLV
.BR lvm.conf (5) .BR lvm.conf (5)
.B auto_set_activation_skip .B auto_set_activation_skip
@ -531,7 +531,7 @@ the thin pool LV.
Command to extend thin pool data space: Command to extend thin pool data space:
.br .br
.B lvextend \-L Size VG/ThinPoolLV .B lvextend -L Size VG/ThinPoolLV
.I Example .I Example
.br .br
@ -539,15 +539,15 @@ Command to extend thin pool data space:
1. A thin pool LV is using 26.96% of its data blocks. 1. A thin pool LV is using 26.96% of its data blocks.
# lvs # lvs
LV VG Attr LSize Pool Origin Data% LV VG Attr LSize Pool Origin Data%
pool0 vg twi\-a\-tz\-\- 10.00g 26.96 pool0 vg twi-a-tz-- 10.00g 26.96
2. Double the amount of physical space in the thin pool LV. 2. Double the amount of physical space in the thin pool LV.
# lvextend \-L+10G vg/pool0 # lvextend -L+10G vg/pool0
3. The percentage of used data blocks is half the previous value. 3. The percentage of used data blocks is half the previous value.
# lvs # lvs
LV VG Attr LSize Pool Origin Data% LV VG Attr LSize Pool Origin Data%
pool0 vg twi\-a\-tz\-\- 20.00g 13.48 pool0 vg twi-a-tz-- 20.00g 13.48
.fi .fi
Other methods of increasing free data space in a thin pool LV Other methods of increasing free data space in a thin pool LV
@ -560,38 +560,38 @@ fstrim on the file system using a thin LV.
\& \&
The available metadata space in a thin pool LV can be displayed The available metadata space in a thin pool LV can be displayed
with the lvs \-o+metadata_percent command. with the lvs -o+metadata_percent command.
Command to extend thin pool metadata space: Command to extend thin pool metadata space:
.br .br
.B lvextend \-\-poolmetadatasize Size VG/ThinPoolLV .B lvextend --poolmetadatasize Size VG/ThinPoolLV
.I Example .I Example
.br .br
1. A thin pool LV is using 12.40% of its metadata blocks. 1. A thin pool LV is using 12.40% of its metadata blocks.
.nf .nf
# lvs \-oname,size,data_percent,metadata_percent vg/pool0 # lvs -oname,size,data_percent,metadata_percent vg/pool0
LV LSize Data% Meta% LV LSize Data% Meta%
pool0 20.00g 13.48 12.40 pool0 20.00g 13.48 12.40
.fi .fi
2. Display a thin pool LV with its component thin data LV and thin metadata LV. 2. Display a thin pool LV with its component thin data LV and thin metadata LV.
.nf .nf
# lvs \-a \-oname,attr,size vg # lvs -a -oname,attr,size vg
LV Attr LSize LV Attr LSize
pool0 twi\-a\-tz\-\- 20.00g pool0 twi-a-tz-- 20.00g
[pool0_tdata] Twi\-ao\-\-\-\- 20.00g [pool0_tdata] Twi-ao---- 20.00g
[pool0_tmeta] ewi\-ao\-\-\-\- 12.00m [pool0_tmeta] ewi-ao---- 12.00m
.fi .fi
3. Double the amount of physical space in the thin metadata LV. 3. Double the amount of physical space in the thin metadata LV.
.nf .nf
# lvextend \-\-poolmetadatasize +12M vg/pool0 # lvextend --poolmetadatasize +12M vg/pool0
.fi .fi
4. The percentage of used metadata blocks is half the previous value. 4. The percentage of used metadata blocks is half the previous value.
.nf .nf
# lvs \-a \-oname,size,data_percent,metadata_percent vg # lvs -a -oname,size,data_percent,metadata_percent vg
LV LSize Data% Meta% LV LSize Data% Meta%
pool0 20.00g 13.48 6.20 pool0 20.00g 13.48 6.20
[pool0_tdata] 20.00g [pool0_tdata] 20.00g
@ -619,38 +619,38 @@ of the file system by 1%. Removing the 1G file restores the virtual
thin pool. The fstrim command restores the physical space to the thin pool. thin pool. The fstrim command restores the physical space to the thin pool.
.nf .nf
# lvs \-a \-oname,attr,size,pool_lv,origin,data_percent,metadata_percent vg # lvs -a -oname,attr,size,pool_lv,origin,data_percent,metadata_percent vg
LV Attr LSize Pool Origin Data% Meta% LV Attr LSize Pool Origin Data% Meta%
pool0 twi\-a\-tz\-\- 10.00g 47.01 21.03 pool0 twi-a-tz-- 10.00g 47.01 21.03
thin1 Vwi\-aotz\-\- 100.00g pool0 2.70 thin1 Vwi-aotz-- 100.00g pool0 2.70
# df \-h /mnt/X # df -h /mnt/X
Filesystem Size Used Avail Use% Mounted on Filesystem Size Used Avail Use% Mounted on
/dev/mapper/vg\-thin1 99G 1.1G 93G 2% /mnt/X /dev/mapper/vg-thin1 99G 1.1G 93G 2% /mnt/X
# dd if=/dev/zero of=/mnt/X/1Gfile bs=4096 count=262144; sync # dd if=/dev/zero of=/mnt/X/1Gfile bs=4096 count=262144; sync
# lvs # lvs
pool0 vg twi\-a\-tz\-\- 10.00g 57.01 25.26 pool0 vg twi-a-tz-- 10.00g 57.01 25.26
thin1 vg Vwi\-aotz\-\- 100.00g pool0 3.70 thin1 vg Vwi-aotz-- 100.00g pool0 3.70
# df \-h /mnt/X # df -h /mnt/X
/dev/mapper/vg\-thin1 99G 2.1G 92G 3% /mnt/X /dev/mapper/vg-thin1 99G 2.1G 92G 3% /mnt/X
# rm /mnt/X/1Gfile # rm /mnt/X/1Gfile
# lvs # lvs
pool0 vg twi\-a\-tz\-\- 10.00g 57.01 25.26 pool0 vg twi-a-tz-- 10.00g 57.01 25.26
thin1 vg Vwi\-aotz\-\- 100.00g pool0 3.70 thin1 vg Vwi-aotz-- 100.00g pool0 3.70
# df \-h /mnt/X # df -h /mnt/X
/dev/mapper/vg\-thin1 99G 1.1G 93G 2% /mnt/X /dev/mapper/vg-thin1 99G 1.1G 93G 2% /mnt/X
# fstrim \-v /mnt/X # fstrim -v /mnt/X
# lvs # lvs
pool0 vg twi\-a\-tz\-\- 10.00g 47.01 21.03 pool0 vg twi-a-tz-- 10.00g 47.01 21.03
thin1 vg Vwi\-aotz\-\- 100.00g pool0 2.70 thin1 vg Vwi-aotz-- 100.00g pool0 2.70
.fi .fi
The "Discard" section covers an option for automatically freeing data The "Discard" section covers an option for automatically freeing data
@ -673,7 +673,7 @@ default.
Command to start or stop dmeventd monitoring a thin pool LV: Command to start or stop dmeventd monitoring a thin pool LV:
.br .br
.B lvchange \-\-monitor {y|n} VG/ThinPoolLV .B lvchange --monitor {y|n} VG/ThinPoolLV
The current dmeventd monitoring status of a thin pool LV can be displayed The current dmeventd monitoring status of a thin pool LV can be displayed
with the command lvs -o+seg_monitor. with the command lvs -o+seg_monitor.
@ -714,7 +714,7 @@ lvm.conf monitoring setting.
.IP \[bu] .IP \[bu]
To activate or create a thin pool LV without interacting with dmeventd, To activate or create a thin pool LV without interacting with dmeventd,
the \-\-ignoremonitoring option can be used. With this option, the command the --ignoremonitoring option can be used. With this option, the command
will not ask dmeventd to monitor the thin pool LV. will not ask dmeventd to monitor the thin pool LV.
.IP \[bu] .IP \[bu]
@ -740,14 +740,14 @@ is all used (see the section "Automatically extend thin pool LV"). If
thin pool data space is already exhausted, it can still be extended (see thin pool data space is already exhausted, it can still be extended (see
the section "Manually manage free data space of thin pool LV".) the section "Manually manage free data space of thin pool LV".)
The behavior of a full thin pool is configurable with the \-\-errorwhenfull The behavior of a full thin pool is configurable with the --errorwhenfull
y|n option to lvcreate or lvchange. The errorwhenfull setting applies y|n option to lvcreate or lvchange. The errorwhenfull setting applies
only to writes; reading thin LVs can continue even when data space is only to writes; reading thin LVs can continue even when data space is
exhausted. exhausted.
Command to change the handling of a full thin pool: Command to change the handling of a full thin pool:
.br .br
.B lvchange \-\-errorwhenfull {y|n} VG/ThinPoolLV .B lvchange --errorwhenfull {y|n} VG/ThinPoolLV
.BR lvm.conf (5) .BR lvm.conf (5)
.B error_when_full .B error_when_full
@ -773,11 +773,11 @@ return to normal operation.
While waiting to be extended, the thin pool will queue writes for up to 60 While waiting to be extended, the thin pool will queue writes for up to 60
seconds (the default). If data space has not been extended after this seconds (the default). If data space has not been extended after this
time, the queued writes will return an error to the caller, e.g. the file time, the queued writes will return an error to the caller, e.g. the file
system. This can result in file system corruption for non\-journaled file system. This can result in file system corruption for non-journaled file
systems that may require fsck. When a thin pool returns errors for writes systems that may require fsck. When a thin pool returns errors for writes
to a thin LV, any file system is subject to losing unsynced user data. to a thin LV, any file system is subject to losing unsynced user data.
The 60 second timeout can be changed or disabled with the dm\-thin\-pool The 60 second timeout can be changed or disabled with the dm-thin-pool
kernel module option kernel module option
.B no_space_timeout. .B no_space_timeout.
This option sets the number of seconds that thin pools will queue writes. This option sets the number of seconds that thin pools will queue writes.
@ -799,7 +799,7 @@ the thin pool LV:
.nf .nf
# lvs vg/pool0 # lvs vg/pool0
LV VG Attr LSize Pool Origin Data% LV VG Attr LSize Pool Origin Data%
pool0 vg twi\-a\-tz\-\- 512.00m 100.00 pool0 vg twi-a-tz-- 512.00m 100.00
.fi .fi
.I causes .I causes
@ -836,7 +836,7 @@ When metadata space is exhausted, the lvs command displays 100 under Meta%
for the thin pool LV: for the thin pool LV:
.nf .nf
# lvs \-o lv_name,size,data_percent,metadata_percent vg/pool0 # lvs -o lv_name,size,data_percent,metadata_percent vg/pool0
LV LSize Data% Meta% LV LSize Data% Meta%
pool0 100.00 pool0 100.00
.fi .fi
@ -850,11 +850,11 @@ repair.
1. Deactivate the thin pool LV, or reboot the system if this is not possible. 1. Deactivate the thin pool LV, or reboot the system if this is not possible.
2. Repair thin pool with lvconvert \-\-repair. 2. Repair thin pool with lvconvert --repair.
.br .br
See "Metadata check and repair". See "Metadata check and repair".
3. Extend pool metadata space with lvextend \-\-poolmetadatasize. 3. Extend pool metadata space with lvextend --poolmetadatasize.
.br .br
See "Manually manage free metadata space of a thin pool LV". See "Manually manage free metadata space of a thin pool LV".
@ -872,7 +872,7 @@ these presets. (See "Automatically extend thin pool LV".)
Command to extend a thin pool data LV using presets: Command to extend a thin pool data LV using presets:
.br .br
.B lvextend \-\-use\-policies VG/ThinPoolLV .B lvextend --use-policies VG/ThinPoolLV
The command uses these settings: The command uses these settings:
@ -888,12 +888,12 @@ autoextend the LV by this much additional space.
To see the default values of these settings, run: To see the default values of these settings, run:
.B lvmconfig \-\-type default \-\-withcomment .B lvmconfig --type default --withcomment
.RS .RS
.B activation/thin_pool_autoextend_threshold .B activation/thin_pool_autoextend_threshold
.RE .RE
.B lvmconfig \-\-type default \-\-withcomment .B lvmconfig --type default --withcomment
.RS .RS
.B activation/thin_pool_autoextend_percent .B activation/thin_pool_autoextend_percent
.RE .RE
@ -901,7 +901,7 @@ To see the default values of these settings, run:
To change these values globally, edit To change these values globally, edit
.BR lvm.conf (5). .BR lvm.conf (5).
To change these values on a per\-VG or per\-LV basis, attach a "profile" to To change these values on a per-VG or per-LV basis, attach a "profile" to
the VG or LV. A profile is a collection of config settings, saved in a the VG or LV. A profile is a collection of config settings, saved in a
local text file (using the lvm.conf format). lvm looks for profiles in local text file (using the lvm.conf format). lvm looks for profiles in
the profile_dir directory, e.g. /etc/lvm/profile/. Once attached to a VG the profile_dir directory, e.g. /etc/lvm/profile/. Once attached to a VG
@ -919,12 +919,12 @@ For the profile_dir location, run:
.IP \[bu] 2 .IP \[bu] 2
Attach the profile to an LV, using the command: Attach the profile to an LV, using the command:
.br .br
.B lvchange \-\-metadataprofile ProfileName VG/ThinPoolLV .B lvchange --metadataprofile ProfileName VG/ThinPoolLV
.IP \[bu] 2 .IP \[bu] 2
Extend the LV using the profile settings: Extend the LV using the profile settings:
.br .br
.B lvextend \-\-use\-policies VG/ThinPoolLV .B lvextend --use-policies VG/ThinPoolLV
.P .P
@ -940,9 +940,9 @@ activation {
thin_pool_autoextend_percent=10 thin_pool_autoextend_percent=10
} }
# lvchange \-\-metadataprofile pool0extend vg/pool0 # lvchange --metadataprofile pool0extend vg/pool0
# lvextend \-\-use\-policies vg/pool0 # lvextend --use-policies vg/pool0
.fi .fi
.I Notes .I Notes
@ -954,7 +954,7 @@ file with the profile also needs to be moved.
.IP \[bu] 2 .IP \[bu] 2
Only certain settings can be used in a VG or LV profile, see: Only certain settings can be used in a VG or LV profile, see:
.br .br
.B lvmconfig \-\-type profilable\-metadata. .B lvmconfig --type profilable-metadata.
.IP \[bu] 2 .IP \[bu] 2
An LV without a profile of its own will inherit the VG profile. An LV without a profile of its own will inherit the VG profile.
@ -962,14 +962,14 @@ An LV without a profile of its own will inherit the VG profile.
.IP \[bu] 2 .IP \[bu] 2
Remove a profile from an LV using the command: Remove a profile from an LV using the command:
.br .br
.B lvchange \-\-detachprofile VG/ThinPoolLV. .B lvchange --detachprofile VG/ThinPoolLV.
.IP \[bu] 2 .IP \[bu] 2
Commands can also have profiles applied to them. The settings that can be Commands can also have profiles applied to them. The settings that can be
applied to a command are different than the settings that can be applied applied to a command are different than the settings that can be applied
to a VG or LV. See lvmconfig \-\-type profilable\-command. To apply a to a VG or LV. See lvmconfig --type profilable-command. To apply a
profile to a command, write a profile, save it in the profile directory, profile to a command, write a profile, save it in the profile directory,
and run the command using the option: \-\-commandprofile ProfileName. and run the command using the option: --commandprofile ProfileName.
.SS Zeroing .SS Zeroing
@ -978,20 +978,20 @@ and run the command using the option: \-\-commandprofile ProfileName.
When a thin pool provisions a new data block for a thin LV, the When a thin pool provisions a new data block for a thin LV, the
new block is first overwritten with zeros. The zeroing mode is new block is first overwritten with zeros. The zeroing mode is
indicated by the "z" attribute displayed by lvs. The option \-Z indicated by the "z" attribute displayed by lvs. The option -Z
(or \-\-zero) can be added to commands to specify the zeroing mode. (or --zero) can be added to commands to specify the zeroing mode.
Command to set the zeroing mode when creating a thin pool LV: Command to set the zeroing mode when creating a thin pool LV:
.br .br
.B lvconvert \-\-type thin\-pool \-Z{y|n} .B lvconvert --type thin-pool -Z{y|n}
.br .br
.RS .RS
.B \-\-poolmetadata VG/ThinMetaLV VG/ThinDataLV .B --poolmetadata VG/ThinMetaLV VG/ThinDataLV
.RE .RE
Command to change the zeroing mode of an existing thin pool LV: Command to change the zeroing mode of an existing thin pool LV:
.br .br
.B lvchange \-Z{y|n} VG/ThinPoolLV .B lvchange -Z{y|n} VG/ThinPoolLV
If zeroing mode is changed from "n" to "y", previously provisioned If zeroing mode is changed from "n" to "y", previously provisioned
blocks are not zeroed. blocks are not zeroed.
@ -1024,27 +1024,27 @@ mode.
Command to display the current discard mode of a thin pool LV: Command to display the current discard mode of a thin pool LV:
.br .br
.B lvs \-o+discards VG/ThinPoolLV .B lvs -o+discards VG/ThinPoolLV
Command to set the discard mode when creating a thin pool LV: Command to set the discard mode when creating a thin pool LV:
.br .br
.B lvconvert \-\-discards {ignore|nopassdown|passdown} .B lvconvert --discards {ignore|nopassdown|passdown}
.br .br
.RS .RS
.B \-\-type thin\-pool \-\-poolmetadata VG/ThinMetaLV VG/ThinDataLV .B --type thin-pool --poolmetadata VG/ThinMetaLV VG/ThinDataLV
.RE .RE
Command to change the discard mode of an existing thin pool LV: Command to change the discard mode of an existing thin pool LV:
.br .br
.B lvchange \-\-discards {ignore|nopassdown|passdown} VG/ThinPoolLV .B lvchange --discards {ignore|nopassdown|passdown} VG/ThinPoolLV
.I Example .I Example
.br .br
.nf .nf
# lvs \-o name,discards vg/pool0 # lvs -o name,discards vg/pool0
pool0 passdown pool0 passdown
# lvchange \-\-discards ignore vg/pool0 # lvchange --discards ignore vg/pool0
.fi .fi
.BR lvm.conf (5) .BR lvm.conf (5)
@ -1058,7 +1058,7 @@ controls the default discards mode used when creating a thin pool.
\& \&
The size of data blocks managed by a thin pool can be specified with the The size of data blocks managed by a thin pool can be specified with the
\-\-chunksize option when the thin pool LV is created. The default unit --chunksize option when the thin pool LV is created. The default unit
is KiB. The value must be a multiple of 64KiB between 64KiB and 1GiB. is KiB. The value must be a multiple of 64KiB between 64KiB and 1GiB.
When a thin pool is used primarily for the thin provisioning feature, a When a thin pool is used primarily for the thin provisioning feature, a
@ -1067,12 +1067,12 @@ reduces copying time and consumes less space.
Command to display the thin pool LV chunk size: Command to display the thin pool LV chunk size:
.br .br
.B lvs \-o+chunksize VG/ThinPoolLV .B lvs -o+chunksize VG/ThinPoolLV
.I Example .I Example
.br .br
.nf .nf
# lvs \-o name,chunksize # lvs -o name,chunksize
pool0 64.00k pool0 64.00k
.fi .fi
@ -1083,7 +1083,7 @@ controls the default chunk size used when creating a thin pool.
The default value is shown by: The default value is shown by:
.br .br
.B lvmconfig \-\-type default allocation/thin_pool_chunk_size .B lvmconfig --type default allocation/thin_pool_chunk_size
.SS Size of pool metadata LV .SS Size of pool metadata LV
@ -1096,10 +1096,10 @@ need a larger metadata LV. Thin pool metadata LV sizes can be from 2MiB
to 16GiB. to 16GiB.
When using lvcreate to create what will become a thin metadata LV, the When using lvcreate to create what will become a thin metadata LV, the
size is specified with the \-L|\-\-size option. size is specified with the -L|--size option.
When an LVM command automatically creates a thin metadata LV, the size is When an LVM command automatically creates a thin metadata LV, the size is
specified with the \-\-poolmetadatasize option. When this option is not specified with the --poolmetadatasize option. When this option is not
given, LVM automatically chooses a size based on the data size and chunk given, LVM automatically chooses a size based on the data size and chunk
size. size.
@ -1119,19 +1119,19 @@ to take thin snapshots of external, read only LVs. Writes to the
snapshot are stored in the thin pool, and the external LV is used snapshot are stored in the thin pool, and the external LV is used
to read unwritten parts of the thin snapshot. to read unwritten parts of the thin snapshot.
.B lvcreate \-n SnapLV \-s VG/ExternalOriginLV \-\-thinpool VG/ThinPoolLV .B lvcreate -n SnapLV -s VG/ExternalOriginLV --thinpool VG/ThinPoolLV
.I Example .I Example
.br .br
.nf .nf
# lvchange \-an vg/lve # lvchange -an vg/lve
# lvchange \-\-permission r vg/lve # lvchange --permission r vg/lve
# lvcreate \-n snaplve \-s vg/lve \-\-thinpool vg/pool0 # lvcreate -n snaplve -s vg/lve --thinpool vg/pool0
# lvs vg/lve vg/snaplve # lvs vg/lve vg/snaplve
LV VG Attr LSize Pool Origin Data% LV VG Attr LSize Pool Origin Data%
lve vg ori\-\-\-\-\-\-\- 10.00g lve vg ori------- 10.00g
snaplve vg Vwi\-a\-tz\-\- 10.00g pool0 lve 0.00 snaplve vg Vwi-a-tz-- 10.00g pool0 lve 0.00
.fi .fi
@ -1144,34 +1144,34 @@ standard LV. At the same time, the existing LV is converted to a
read only external LV with a new name. Unwritten portions of the read only external LV with a new name. Unwritten portions of the
thin LV are read from the external LV. thin LV are read from the external LV.
The new name given to the existing LV can be specified with The new name given to the existing LV can be specified with
\-\-originname, otherwise the existing LV will be given a default --originname, otherwise the existing LV will be given a default
name, e.g. lvol#. name, e.g. lvol#.
Convert ExampleLV into a read only external LV with the new name Convert ExampleLV into a read only external LV with the new name
NewExternalOriginLV, and create a new thin LV that is given the previous NewExternalOriginLV, and create a new thin LV that is given the previous
name of ExampleLV. name of ExampleLV.
.B lvconvert \-\-type thin \-\-thinpool VG/ThinPoolLV .B lvconvert --type thin --thinpool VG/ThinPoolLV
.br .br
.RS .RS
.B \-\-originname NewExternalOriginLV VG/ExampleLV .B --originname NewExternalOriginLV VG/ExampleLV
.RE .RE
.I Example .I Example
.br .br
.nf .nf
# lvcreate \-n lv_example \-L 10G vg # lvcreate -n lv_example -L 10G vg
# lvs # lvs
lv_example vg -wi\-a\-\-\-\-\- 10.00g lv_example vg -wi-a----- 10.00g
# lvconvert \-\-type thin \-\-thinpool vg/pool0 # lvconvert --type thin --thinpool vg/pool0
\-\-originname lv_external \-\-thin vg/lv_example --originname lv_external --thin vg/lv_example
# lvs # lvs
LV VG Attr LSize Pool Origin LV VG Attr LSize Pool Origin
lv_example vg Vwi\-a\-tz\-\- 10.00g pool0 lv_external lv_example vg Vwi-a-tz-- 10.00g pool0 lv_external
lv_external vg ori\-\-\-\-\-\-\- 10.00g lv_external vg ori------- 10.00g
.fi .fi
@ -1184,21 +1184,21 @@ rather than using lvconvert on existing LVs.
This one command creates a thin data LV, a thin metadata LV, This one command creates a thin data LV, a thin metadata LV,
and combines the two into a thin pool LV. and combines the two into a thin pool LV.
.B lvcreate \-\-type thin\-pool \-L LargeSize \-n ThinPoolLV VG .B lvcreate --type thin-pool -L LargeSize -n ThinPoolLV VG
.I Example .I Example
.br .br
.nf .nf
# lvcreate \-\-type thin\-pool \-L8M -n pool0 vg # lvcreate --type thin-pool -L8M -n pool0 vg
# lvs vg/pool0 # lvs vg/pool0
LV VG Attr LSize Pool Origin Data% LV VG Attr LSize Pool Origin Data%
pool0 vg twi\-a\-tz\-\- 8.00m 0.00 pool0 vg twi-a-tz-- 8.00m 0.00
# lvs \-a # lvs -a
pool0 vg twi\-a\-tz\-\- 8.00m pool0 vg twi-a-tz-- 8.00m
[pool0_tdata] vg Twi\-ao\-\-\-\- 8.00m [pool0_tdata] vg Twi-ao---- 8.00m
[pool0_tmeta] vg ewi\-ao\-\-\-\- 8.00m [pool0_tmeta] vg ewi-ao---- 8.00m
.fi .fi
@ -1211,31 +1211,31 @@ lvcreate command. This one command creates a thin data LV,
a thin metadata LV, combines the two into a thin pool LV, a thin metadata LV, combines the two into a thin pool LV,
and creates a thin LV in the new pool. and creates a thin LV in the new pool.
.br .br
\-L LargeSize specifies the physical size of the thin pool LV. -L LargeSize specifies the physical size of the thin pool LV.
.br .br
\-V VirtualSize specifies the virtual size of the thin LV. -V VirtualSize specifies the virtual size of the thin LV.
.B lvcreate \-\-type thin \-V VirtualSize \-L LargeSize .B lvcreate --type thin -V VirtualSize -L LargeSize
.RS .RS
.B \-n ThinLV \-\-thinpool VG/ThinPoolLV .B -n ThinLV --thinpool VG/ThinPoolLV
.RE .RE
Equivalent to: Equivalent to:
.br .br
.B lvcreate \-\-type thin\-pool \-L LargeSize VG/ThinPoolLV .B lvcreate --type thin-pool -L LargeSize VG/ThinPoolLV
.br .br
.B lvcreate \-n ThinLV \-V VirtualSize \-\-thinpool VG/ThinPoolLV .B lvcreate -n ThinLV -V VirtualSize --thinpool VG/ThinPoolLV
.I Example .I Example
.br .br
.nf .nf
# lvcreate \-L8M \-V2G \-n thin1 \-\-thinpool vg/pool0 # lvcreate -L8M -V2G -n thin1 --thinpool vg/pool0
# lvs \-a # lvs -a
pool0 vg twi\-a\-tz\-\- 8.00m pool0 vg twi-a-tz-- 8.00m
[pool0_tdata] vg Twi\-ao\-\-\-\- 8.00m [pool0_tdata] vg Twi-ao---- 8.00m
[pool0_tmeta] vg ewi\-ao\-\-\-\- 8.00m [pool0_tmeta] vg ewi-ao---- 8.00m
thin1 vg Vwi\-a\-tz\-\- 2.00g pool0 thin1 vg Vwi-a-tz-- 2.00g pool0
.fi .fi
@ -1244,7 +1244,7 @@ Equivalent to:
\& \&
A thin snapshot can be merged into its origin thin LV using the lvconvert A thin snapshot can be merged into its origin thin LV using the lvconvert
\-\-merge command. The result of a snapshot merge is that the origin thin --merge command. The result of a snapshot merge is that the origin thin
LV takes the content of the snapshot LV, and the snapshot LV is removed. LV takes the content of the snapshot LV, and the snapshot LV is removed.
Any content that was unique to the origin thin LV is lost after the merge. Any content that was unique to the origin thin LV is lost after the merge.
@ -1253,23 +1253,23 @@ LVs are open, e.g. mounted. If a merge is initiated while the LVs are open,
the effect of the merge is delayed until the origin thin LV is next the effect of the merge is delayed until the origin thin LV is next
activated. activated.
.B lvconvert \-\-merge VG/SnapLV .B lvconvert --merge VG/SnapLV
.I Example .I Example
.br .br
.nf .nf
# lvs vg # lvs vg
LV VG Attr LSize Pool Origin LV VG Attr LSize Pool Origin
pool0 vg twi\-a\-tz\-\- 10.00g pool0 vg twi-a-tz-- 10.00g
thin1 vg Vwi\-a\-tz\-\- 100.00g pool0 thin1 vg Vwi-a-tz-- 100.00g pool0
thin1s1 vg Vwi\-a\-tz\-k 100.00g pool0 thin1 thin1s1 vg Vwi-a-tz-k 100.00g pool0 thin1
# lvconvert \-\-merge vg/thin1s1 # lvconvert --merge vg/thin1s1
# lvs vg # lvs vg
LV VG Attr LSize Pool Origin LV VG Attr LSize Pool Origin
pool0 vg twi\-a\-tz\-\- 10.00g pool0 vg twi-a-tz-- 10.00g
thin1 vg Vwi\-a\-tz\-\- 100.00g pool0 thin1 vg Vwi-a-tz-- 100.00g pool0
.fi .fi
.I Example .I Example
@ -1279,20 +1279,20 @@ Delayed merging of open LVs.
# lvs vg # lvs vg
LV VG Attr LSize Pool Origin LV VG Attr LSize Pool Origin
pool0 vg twi\-a\-tz\-\- 10.00g pool0 vg twi-a-tz-- 10.00g
thin1 vg Vwi\-aotz\-\- 100.00g pool0 thin1 vg Vwi-aotz-- 100.00g pool0
thin1s1 vg Vwi\-aotz\-k 100.00g pool0 thin1 thin1s1 vg Vwi-aotz-k 100.00g pool0 thin1
# df # df
/dev/mapper/vg\-thin1 100G 33M 100G 1% /mnt/X /dev/mapper/vg-thin1 100G 33M 100G 1% /mnt/X
/dev/mapper/vg\-thin1s1 100G 33M 100G 1% /mnt/Xs /dev/mapper/vg-thin1s1 100G 33M 100G 1% /mnt/Xs
# ls /mnt/X # ls /mnt/X
file1 file2 file3 file1 file2 file3
# ls /mnt/Xs # ls /mnt/Xs
file3 file4 file5 file3 file4 file5
# lvconvert \-\-merge vg/thin1s1 # lvconvert --merge vg/thin1s1
Logical volume vg/thin1s1 contains a filesystem in use. Logical volume vg/thin1s1 contains a filesystem in use.
Delaying merge since snapshot is open. Delaying merge since snapshot is open.
Merging of thin snapshot thin1s1 will occur on next activation. Merging of thin snapshot thin1s1 will occur on next activation.
@ -1300,16 +1300,16 @@ Merging of thin snapshot thin1s1 will occur on next activation.
# umount /mnt/X # umount /mnt/X
# umount /mnt/Xs # umount /mnt/Xs
# lvs \-a vg # lvs -a vg
LV VG Attr LSize Pool Origin LV VG Attr LSize Pool Origin
pool0 vg twi\-a\-tz\-\- 10.00g pool0 vg twi-a-tz-- 10.00g
[pool0_tdata] vg Twi\-ao\-\-\-\- 10.00g [pool0_tdata] vg Twi-ao---- 10.00g
[pool0_tmeta] vg ewi\-ao\-\-\-\- 1.00g [pool0_tmeta] vg ewi-ao---- 1.00g
thin1 vg Owi\-a\-tz\-\- 100.00g pool0 thin1 vg Owi-a-tz-- 100.00g pool0
[thin1s1] vg Swi\-a\-tz\-k 100.00g pool0 thin1 [thin1s1] vg Swi-a-tz-k 100.00g pool0 thin1
# lvchange \-an vg/thin1 # lvchange -an vg/thin1
# lvchange \-ay vg/thin1 # lvchange -ay vg/thin1
# mount /dev/vg/thin1 /mnt/X # mount /dev/vg/thin1 /mnt/X
@ -1330,18 +1330,18 @@ file system on the origin LV.
If the snapshot LV is writable, mounting will recover the log to clear the If the snapshot LV is writable, mounting will recover the log to clear the
dummy transaction, but will require skipping the uuid check: dummy transaction, but will require skipping the uuid check:
mount /dev/VG/SnapLV /mnt \-o nouuid mount /dev/VG/SnapLV /mnt -o nouuid
Or, the uuid can be changed on disk before mounting: Or, the uuid can be changed on disk before mounting:
xfs_admin \-U generate /dev/VG/SnapLV xfs_admin -U generate /dev/VG/SnapLV
.br .br
mount /dev/VG/SnapLV /mnt mount /dev/VG/SnapLV /mnt
If the snapshot LV is readonly, the log recovery and uuid check need to be If the snapshot LV is readonly, the log recovery and uuid check need to be
skipped while mounting readonly: skipped while mounting readonly:
mount /dev/VG/SnapLV /mnt \-o ro,nouuid,norecovery mount /dev/VG/SnapLV /mnt -o ro,nouuid,norecovery
.SH SEE ALSO .SH SEE ALSO
.BR lvm (8), .BR lvm (8),

View File

@ -1,5 +1,5 @@
lvreduce reduces the size of an LV. The freed logical extents are returned lvreduce reduces the size of an LV. The freed logical extents are returned
to the VG to be used by other LVs. A copy\-on\-write snapshot LV can also to the VG to be used by other LVs. A copy-on-write snapshot LV can also
be reduced if less space is needed to hold COW blocks. Use be reduced if less space is needed to hold COW blocks. Use
\fBlvconvert\fP(8) to change the number of data images in a RAID or \fBlvconvert\fP(8) to change the number of data images in a RAID or
mirrored LV. mirrored LV.
@ -13,6 +13,6 @@ Sizes will be rounded if necessary. For example, the LV size must be an
exact number of extents, and the size of a striped segment must be a exact number of extents, and the size of a striped segment must be a
multiple of the number of stripes. multiple of the number of stripes.
In the usage section below, \fB\-\-size\fP \fISize\fP can be replaced In the usage section below, \fB--size\fP \fISize\fP can be replaced
with \fB\-\-extents\fP \fINumber\fP. See both descriptions with \fB--extents\fP \fINumber\fP. See both descriptions
the options section. the options section.

View File

@ -2,4 +2,4 @@
Reduce the size of an LV by 3 logical extents: Reduce the size of an LV by 3 logical extents:
.br .br
.B lvreduce \-l \-3 vg00/lvol1 .B lvreduce -l -3 vg00/lvol1

View File

@ -1,7 +1,7 @@
.SH EXAMPLES .SH EXAMPLES
Remove an active LV without asking for confirmation. Remove an active LV without asking for confirmation.
.br .br
.B lvremove \-f vg00/lvol1 .B lvremove -f vg00/lvol1
Remove all LVs the specified VG. Remove all LVs the specified VG.
.br .br

View File

@ -1,6 +1,6 @@
lvresize resizes an LV in the same way as lvextend and lvreduce. See lvresize resizes an LV in the same way as lvextend and lvreduce. See
\fBlvextend\fP(8) and \fBlvreduce\fP(8) for more information. \fBlvextend\fP(8) and \fBlvreduce\fP(8) for more information.
In the usage section below, \fB\-\-size\fP \fISize\fP can be replaced In the usage section below, \fB--size\fP \fISize\fP can be replaced
with \fB\-\-extents\fP \fINumber\fP. See both descriptions with \fB--extents\fP \fINumber\fP. See both descriptions
the options section. the options section.

View File

@ -2,4 +2,4 @@
Extend an LV by 16MB using specific physical extents: Extend an LV by 16MB using specific physical extents:
.br .br
.B lvresize \-L+16M vg1/lv1 /dev/sda:0\-1 /dev/sdb:0\-1 .B lvresize -L+16M vg1/lv1 /dev/sda:0-1 /dev/sdb:0-1

View File

@ -3,4 +3,4 @@
Disallow the allocation of physical extents on a PV (e.g. because of Disallow the allocation of physical extents on a PV (e.g. because of
disk errors, or because it will be removed after freeing it). disk errors, or because it will be removed after freeing it).
.br .br
.B pvchange \-x n /dev/sdk1 .B pvchange -x n /dev/sdk1

View File

@ -2,7 +2,7 @@
If the partition table is corrupted or lost on /dev/sda, and you suspect If the partition table is corrupted or lost on /dev/sda, and you suspect
there was an LVM partition at approximately 100 MiB, then this there was an LVM partition at approximately 100 MiB, then this
area of the disk can be scanned using the \fB\-\-labelsector\fP area of the disk can be scanned using the \fB--labelsector\fP
parameter with a value of 204800 (100 * 1024 * 1024 / 512 = 204800). parameter with a value of 204800 (100 * 1024 * 1024 / 512 = 204800).
.br .br
.B pvck \-\-labelsector 204800 /dev/sda .B pvck --labelsector 204800 /dev/sda

View File

@ -9,4 +9,4 @@ partitioning (sector 7 is the lowest aligned logical block, the 4KiB
sectors start at LBA -1, and consequently sector 63 is aligned on a 4KiB sectors start at LBA -1, and consequently sector 63 is aligned on a 4KiB
boundary) manually account for this when initializing for use by LVM. boundary) manually account for this when initializing for use by LVM.
.br .br
.B pvcreate \-\-dataalignmentoffset 7s /dev/sdb .B pvcreate --dataalignmentoffset 7s /dev/sdb

View File

@ -33,7 +33,7 @@ Note that this new process cannot support the original LVM1
type of on-disk metadata. Metadata can be converted using type of on-disk metadata. Metadata can be converted using
\fBvgconvert\fP(8). \fBvgconvert\fP(8).
If the \fB\-\-atomic\fP option is used, a slightly different approach is If the \fB--atomic\fP option is used, a slightly different approach is
used for the move. Again, a temporary 'pvmove' LV is created to store the used for the move. Again, a temporary 'pvmove' LV is created to store the
details of all the data movements required. This temporary LV contains details of all the data movements required. This temporary LV contains
all the segments of the various LVs that need to be moved. However, in all the segments of the various LVs that need to be moved. However, in
@ -57,13 +57,13 @@ Use a specific destination PV when moving physical extents.
Move extents belonging to a single LV. Move extents belonging to a single LV.
.br .br
.B pvmove \-n lvol1 /dev/sdb1 /dev/sdc1 .B pvmove -n lvol1 /dev/sdb1 /dev/sdc1
Rather than moving the contents of an entire device, it is possible to Rather than moving the contents of an entire device, it is possible to
move a range of physical extents, for example numbers 1000 to 1999 move a range of physical extents, for example numbers 1000 to 1999
inclusive on the specified PV. inclusive on the specified PV.
.br .br
.B pvmove /dev/sdb1:1000\-1999 .B pvmove /dev/sdb1:1000-1999
A range of physical extents to move can be specified as start+length. For A range of physical extents to move can be specified as start+length. For
example, starting from PE 1000. (Counting starts from 0, so this refers to the example, starting from PE 1000. (Counting starts from 0, so this refers to the
@ -74,18 +74,18 @@ example, starting from PE 1000. (Counting starts from 0, so this refers to the
Move a range of physical extents to a specific PV (which must have Move a range of physical extents to a specific PV (which must have
sufficient free extents). sufficient free extents).
.br .br
.B pvmove /dev/sdb1:1000\-1999 /dev/sdc1 .B pvmove /dev/sdb1:1000-1999 /dev/sdc1
Move a range of physical extents to specific new extents on a new PV. Move a range of physical extents to specific new extents on a new PV.
.br .br
.B pvmove /dev/sdb1:1000\-1999 /dev/sdc1:0\-999 .B pvmove /dev/sdb1:1000-1999 /dev/sdc1:0-999
If the source and destination are on the same disk, the If the source and destination are on the same disk, the
\fBanywhere\fP allocation policy is needed. \fBanywhere\fP allocation policy is needed.
.br .br
.B pvmove \-\-alloc anywhere /dev/sdb1:1000\-1999 /dev/sdb1:0\-999 .B pvmove --alloc anywhere /dev/sdb1:1000-1999 /dev/sdb1:0-999
The part of a specific LV present within in a range of physical The part of a specific LV present within in a range of physical
extents can also be picked out and moved. extents can also be picked out and moved.
.br .br
.B pvmove \-n lvol1 /dev/sdb1:1000\-1999 /dev/sdc1 .B pvmove -n lvol1 /dev/sdb1:1000-1999 /dev/sdc1

View File

@ -9,4 +9,4 @@ Expand a PV after enlarging the partition.
Shrink a PV prior to shrinking the partition (ensure that the PV size is Shrink a PV prior to shrinking the partition (ensure that the PV size is
appropriate for the intended new partition size). appropriate for the intended new partition size).
.br .br
.B pvresize \-\-setphysicalvolumesize 40G /dev/sda1 .B pvresize --setphysicalvolumesize 40G /dev/sda1

View File

@ -20,25 +20,25 @@ commands.
When lvmetad is used, LVM commands avoid scanning disks by reading When lvmetad is used, LVM commands avoid scanning disks by reading
metadata from lvmetad. When new disks appear, they must be scanned so metadata from lvmetad. When new disks appear, they must be scanned so
their metadata can be cached in lvmetad. This is done by the command their metadata can be cached in lvmetad. This is done by the command
pvscan \-\-cache, which scans disks and passes the metadata to lvmetad. pvscan --cache, which scans disks and passes the metadata to lvmetad.
The pvscan \-\-cache command is typically run automatically by system The pvscan --cache command is typically run automatically by system
services when a new device appears. Users do not generally need to run services when a new device appears. Users do not generally need to run
this command if the system and lvmetad are running properly. this command if the system and lvmetad are running properly.
Many scripts contain unnecessary pvscan (or vgscan) commands for Many scripts contain unnecessary pvscan (or vgscan) commands for
historical reasons. To avoid disrupting the system with extraneous disk historical reasons. To avoid disrupting the system with extraneous disk
scanning, an ordinary pvscan (without \-\-cache) will simply read metadata scanning, an ordinary pvscan (without --cache) will simply read metadata
from lvmetad like other LVM commands. It does not do anything beyond from lvmetad like other LVM commands. It does not do anything beyond
displaying the current state of the cache. displaying the current state of the cache.
.IP \[bu] 2 .IP \[bu] 2
When given specific device name arguments, pvscan \-\-cache will only When given specific device name arguments, pvscan --cache will only
read the named devices. read the named devices.
.IP \[bu] 2 .IP \[bu] 2
LVM udev rules and systemd services are used to initiate automatic device LVM udev rules and systemd services are used to initiate automatic device
scanning. scanning.
.IP \[bu] 2 .IP \[bu] 2
To prevent devices from being scanned by pvscan \-\-cache, add them To prevent devices from being scanned by pvscan --cache, add them
to to
.BR lvm.conf (5) .BR lvm.conf (5)
.B devices/global_filter. .B devices/global_filter.
@ -46,11 +46,11 @@ The devices/filter setting does not
apply to system level scanning. apply to system level scanning.
For more information, see: For more information, see:
.br .br
.B lvmconfig \-\-withcomments devices/global_filter .B lvmconfig --withcomments devices/global_filter
.IP \[bu] 2 .IP \[bu] 2
If lvmetad is started or restarted after devices are visible, or If lvmetad is started or restarted after devices are visible, or
if the global_filter has changed, then all devices must be rescanned if the global_filter has changed, then all devices must be rescanned
for metadata with the command pvscan \-\-cache. for metadata with the command pvscan --cache.
.IP \[bu] 2 .IP \[bu] 2
lvmetad does not cache older metadata formats, e.g. lvm1, and will lvmetad does not cache older metadata formats, e.g. lvm1, and will
be temporarily disabled if they are seen. be temporarily disabled if they are seen.
@ -62,9 +62,9 @@ minor numbers must be given, not the path.
When event-driven system services detect a new LVM device, the first step When event-driven system services detect a new LVM device, the first step
is to automatically scan and cache the metadata from the device. This is is to automatically scan and cache the metadata from the device. This is
done by pvscan \-\-cache. A second step is to automatically activate LVs done by pvscan --cache. A second step is to automatically activate LVs
that are present on the new device. This auto-activation is done by the that are present on the new device. This auto-activation is done by the
same pvscan \-\-cache command when the option '\-a|\-\-activate ay' is same pvscan --cache command when the option '-a|--activate ay' is
included. included.
Auto-activation of VGs or LVs can be enabled/disabled using: Auto-activation of VGs or LVs can be enabled/disabled using:
@ -74,17 +74,17 @@ Auto-activation of VGs or LVs can be enabled/disabled using:
For more information, see: For more information, see:
.br .br
.B lvmconfig \-\-withcomments activation/auto_activation_volume_list .B lvmconfig --withcomments activation/auto_activation_volume_list
When this setting is undefined, all LVs are auto-activated (when lvm is When this setting is undefined, all LVs are auto-activated (when lvm is
fully integrated with the event-driven system services.) fully integrated with the event-driven system services.)
When a VG or LV is not auto-activated, traditional activation using When a VG or LV is not auto-activated, traditional activation using
vgchange or lvchange -a|\-\-activate is needed. vgchange or lvchange -a|--activate is needed.
.IP \[bu] 2 .IP \[bu] 2
pvscan auto-activation can be only done in combination with \-\-cache. pvscan auto-activation can be only done in combination with --cache.
.IP \[bu] 2 .IP \[bu] 2
Auto-activation is designated by the "a" argument in '-a|\-\-activate ay'. Auto-activation is designated by the "a" argument in '-a|--activate ay'.
This is meant to distinguish system generated commands from explicit user This is meant to distinguish system generated commands from explicit user
commands, although it can be used in any activation command. Whenever it commands, although it can be used in any activation command. Whenever it
is used, the auto_activation_volume_list is applied. is used, the auto_activation_volume_list is applied.

View File

@ -6,7 +6,7 @@ files.
In a default installation, each VG is backed up into a separate file In a default installation, each VG is backed up into a separate file
bearing the name of the VG in the directory \fI#DEFAULT_BACKUP_DIR#\fP. bearing the name of the VG in the directory \fI#DEFAULT_BACKUP_DIR#\fP.
To use an alternative back up file, use \fB\-f\fP. In this case, when To use an alternative back up file, use \fB-f\fP. In this case, when
backing up multiple VGs, the file name is treated as a template, with %s backing up multiple VGs, the file name is treated as a template, with %s
replaced by the VG name. replaced by the VG name.

View File

@ -2,8 +2,8 @@ vgcfgrestore restores the metadata of a VG from a text back up file
produced by \fBvgcfgbackup\fP. This writes VG metadata onto the devices produced by \fBvgcfgbackup\fP. This writes VG metadata onto the devices
specifed in back up file. specifed in back up file.
A back up file can be specified with \fB\-\-file\fP. If no backup file is A back up file can be specified with \fB--file\fP. If no backup file is
specified, the most recent one is used. Use \fB\-\-list\fP for a list of specified, the most recent one is used. Use \fB--list\fP for a list of
the available back up and archive files of a VG. the available back up and archive files of a VG.
WARNING: When a VG contains thin pools, changes to thin metadata cannot be WARNING: When a VG contains thin pools, changes to thin metadata cannot be

View File

@ -1,9 +1,9 @@
.SH NOTES .SH NOTES
To replace PVs, \fBvgdisplay \-\-partial \-\-verbose\fP will show the To replace PVs, \fBvgdisplay --partial --verbose\fP will show the
UUIDs and sizes of any PVs that are no longer present. If a PV in the VG UUIDs and sizes of any PVs that are no longer present. If a PV in the VG
is lost and you wish to substitute another of the same size, use is lost and you wish to substitute another of the same size, use
\fBpvcreate \-\-restorefile filename \-\-uuid uuid\fP (plus additional \fBpvcreate --restorefile filename --uuid uuid\fP (plus additional
arguments as appropriate) to initialise it with the same UUID as the arguments as appropriate) to initialise it with the same UUID as the
missing PV. Repeat for all other missing PVs in the VG. Then use missing PV. Repeat for all other missing PVs in the VG. Then use
\fBvgcfgrestore \-\-file filename\fP to restore the VG's metadata. \fBvgcfgrestore --file filename\fP to restore the VG's metadata.

View File

@ -5,8 +5,8 @@ snapshots should be removed.
.SH EXAMPLES .SH EXAMPLES
Activate all LVs in all VGs on all existing devices. Activate all LVs in all VGs on all existing devices.
.br .br
.B vgchange \-a y .B vgchange -a y
Change the maximum number of LVs for an inactive VG. Change the maximum number of LVs for an inactive VG.
.br .br
.B vgchange \-l 128 vg00 .B vgchange -l 128 vg00

View File

@ -3,9 +3,9 @@ for LVs in the VG.
Also, PVs that have gone missing and then returned, e.g. due to a Also, PVs that have gone missing and then returned, e.g. due to a
transient device failure, can be added back to the VG without transient device failure, can be added back to the VG without
re-initializing them (see \-\-restoremissing). re-initializing them (see --restoremissing).
If the specified PVs have not yet been initialized with pvcreate, vgextend If the specified PVs have not yet been initialized with pvcreate, vgextend
will initialize them. In this case pvcreate options can be used, e.g. will initialize them. In this case pvcreate options can be used, e.g.
\-\-labelsector, \-\-metadatasize, \-\-metadataignore, --labelsector, --metadatasize, --metadataignore,
\-\-pvmetadatacopies, \-\-dataalignment, \-\-dataalignmentoffset. --pvmetadatacopies, --dataalignment, --dataalignmentoffset.

View File

@ -5,4 +5,4 @@ The corresponding PVs from a hardware snapshot are "/dev/sdc" and "/dev/sdd".
Rename the VG associated with "/dev/sdc" and "/dev/sdd" from "vg00" to "vg00_snap" Rename the VG associated with "/dev/sdc" and "/dev/sdd" from "vg00" to "vg00_snap"
(and change associated UUIDs). (and change associated UUIDs).
.br .br
.B vgimportclone \-\-basevgname vg00_snap /dev/sdc /dev/sdd .B vgimportclone --basevgname vg00_snap /dev/sdc /dev/sdd

View File

@ -3,4 +3,4 @@
Merge an inactive VG named "vg00" into the active or inactive VG named Merge an inactive VG named "vg00" into the active or inactive VG named
"databases", giving verbose runtime information. "databases", giving verbose runtime information.
.br .br
.B vgmerge \-v databases vg00 .B vgmerge -v databases vg00

View File

@ -2,7 +2,7 @@ vgremove removes one or more VGs. If LVs exist in the VG, a prompt is used
to confirm LV removal. to confirm LV removal.
If one or more PVs in the VG are lost, consider If one or more PVs in the VG are lost, consider
\fBvgreduce \-\-removemissing\fP to make the VG \fBvgreduce --removemissing\fP to make the VG
metadata consistent again. metadata consistent again.
Repeat the force option (\fB-ff\fP) to forcibly remove LVs in the VG Repeat the force option (\fB-ff\fP) to forcibly remove LVs in the VG

View File

@ -6,4 +6,4 @@ Rename VG "vg02" to "myvg":
Rename the VG with the specified UUID to "myvg". Rename the VG with the specified UUID to "myvg".
.br .br
.B vgrename Zvlifi\-Ep3t\-e0Ng\-U42h\-o0ye\-KHu1\-nl7Ns4 myvg .B vgrename Zvlifi-Ep3t-e0Ng-U42h-o0ye-KHu1-nl7Ns4 myvg

View File

@ -22,7 +22,7 @@ arg(ARG_UNUSED, '-', "", 0, 0, 0, NULL) /* place holder for unused 0 value */
arg(abort_ARG, '\0', "abort", 0, 0, 0, arg(abort_ARG, '\0', "abort", 0, 0, 0,
"#pvmove\n" "#pvmove\n"
"Abort any pvmove operations in progress. If a pvmove was started\n" "Abort any pvmove operations in progress. If a pvmove was started\n"
"with the \\-\\-atomic option, then all LVs will remain on the source PV.\n" "with the --atomic option, then all LVs will remain on the source PV.\n"
"Otherwise, segments that have been moved will remain on the\n" "Otherwise, segments that have been moved will remain on the\n"
"destination PV, while unmoved segments will remain on the source PV.\n" "destination PV, while unmoved segments will remain on the source PV.\n"
"#lvpoll\n" "#lvpoll\n"
@ -45,7 +45,7 @@ arg(addtag_ARG, '\0', "addtag", tag_VAL, ARG_GROUPABLE, 0,
"multiple tags at once. See lvm(8) for information about tags.\n") "multiple tags at once. See lvm(8) for information about tags.\n")
arg(aligned_ARG, '\0', "aligned", 0, 0, 0, arg(aligned_ARG, '\0', "aligned", 0, 0, 0,
"Use with \\-\\-separator to align the output columns\n") "Use with --separator to align the output columns\n")
arg(alloc_ARG, '\0', "alloc", alloc_VAL, 0, 0, arg(alloc_ARG, '\0', "alloc", alloc_VAL, 0, 0,
"Determines the allocation policy when a command needs to allocate\n" "Determines the allocation policy when a command needs to allocate\n"
@ -88,11 +88,11 @@ arg(bootloaderareasize_ARG, '\0', "bootloaderareasize", sizemb_VAL, 0, 0,
"area. The bootloader area is an area of reserved space on the PV from\n" "area. The bootloader area is an area of reserved space on the PV from\n"
"which LVM will not allocate any extents and it's kept untouched. This is\n" "which LVM will not allocate any extents and it's kept untouched. This is\n"
"primarily aimed for use with bootloaders to embed their own data or metadata.\n" "primarily aimed for use with bootloaders to embed their own data or metadata.\n"
"The start of the bootloader area is always aligned, see also \\-\\-dataalignment\n" "The start of the bootloader area is always aligned, see also --dataalignment\n"
"and \\-\\-dataalignmentoffset. The bootloader area size may eventually\n" "and --dataalignmentoffset. The bootloader area size may eventually\n"
"end up increased due to the alignment, but it's never less than the\n" "end up increased due to the alignment, but it's never less than the\n"
"size that is requested. To see the bootloader area start and size of\n" "size that is requested. To see the bootloader area start and size of\n"
"an existing PV use pvs \\-o +pv_ba_start,pv_ba_size.\n") "an existing PV use pvs -o +pv_ba_start,pv_ba_size.\n")
arg(cache_long_ARG, '\0', "cache", 0, 0, 0, arg(cache_long_ARG, '\0', "cache", 0, 0, 0,
"#pvscan\n" "#pvscan\n"
@ -141,8 +141,8 @@ arg(dataalignment_ARG, '\0', "dataalignment", sizekb_VAL, 0, 0,
"Align the start of the data to a multiple of this number.\n" "Align the start of the data to a multiple of this number.\n"
"Also specify an appropriate Physical Extent size when creating a VG.\n" "Also specify an appropriate Physical Extent size when creating a VG.\n"
"To see the location of the first Physical Extent of an existing PV,\n" "To see the location of the first Physical Extent of an existing PV,\n"
"use pvs \\-o +pe_start. In addition, it may be shifted by an alignment offset.\n" "use pvs -o +pe_start. In addition, it may be shifted by an alignment offset.\n"
"See lvm.conf/data_alignment_offset_detection and \\-\\-dataalignmentoffset.\n") "See lvm.conf/data_alignment_offset_detection and --dataalignmentoffset.\n")
arg(dataalignmentoffset_ARG, '\0', "dataalignmentoffset", sizekb_VAL, 0, 0, arg(dataalignmentoffset_ARG, '\0', "dataalignmentoffset", sizekb_VAL, 0, 0,
"Shift the start of the data area by this additional offset.\n") "Shift the start of the data area by this additional offset.\n")
@ -205,7 +205,7 @@ arg(ignorelockingfailure_ARG, '\0', "ignorelockingfailure", 0, 0, 0,
"operations after locking failures.\n") "operations after locking failures.\n")
arg(ignoremonitoring_ARG, '\0', "ignoremonitoring", 0, 0, 0, arg(ignoremonitoring_ARG, '\0', "ignoremonitoring", 0, 0, 0,
"Do not interact with dmeventd unless \\-\\-monitor is specified.\n" "Do not interact with dmeventd unless --monitor is specified.\n"
"Do not use this if dmeventd is already monitoring a device.\n") "Do not use this if dmeventd is already monitoring a device.\n")
arg(ignoreskippedcluster_ARG, '\0', "ignoreskippedcluster", 0, 0, 0, arg(ignoreskippedcluster_ARG, '\0', "ignoreskippedcluster", 0, 0, 0,
@ -222,7 +222,7 @@ arg(ignoreunsupported_ARG, '\0', "ignoreunsupported", 0, 0, 0,
arg(labelsector_ARG, '\0', "labelsector", number_VAL, 0, 0, arg(labelsector_ARG, '\0', "labelsector", number_VAL, 0, 0,
"By default the PV is labelled with an LVM2 identifier in its second\n" "By default the PV is labelled with an LVM2 identifier in its second\n"
"sector (sector 1). This lets you use a different sector near the\n" "sector (sector 1). This lets you use a different sector near the\n"
"start of the disk (between 0 and 3 inclusive \\- see LABEL_SCAN_SECTORS\n" "start of the disk (between 0 and 3 inclusive - see LABEL_SCAN_SECTORS\n"
"in the source). Use with care.\n") "in the source). Use with care.\n")
arg(lockopt_ARG, '\0', "lockopt", string_VAL, 0, 0, arg(lockopt_ARG, '\0', "lockopt", string_VAL, 0, 0,
@ -244,7 +244,7 @@ arg(locktype_ARG, '\0', "locktype", locktype_VAL, 0, 0,
"Change the VG lock type to or from a shared lock type used with lvmlockd.\n" "Change the VG lock type to or from a shared lock type used with lvmlockd.\n"
"See lvmlockd(8) for more information.\n" "See lvmlockd(8) for more information.\n"
"#vgcreate\n" "#vgcreate\n"
"Specify the VG lock type directly in place of using \\-\\-shared.\n" "Specify the VG lock type directly in place of using --shared.\n"
"See lvmlockd(8) for more information.\n") "See lvmlockd(8) for more information.\n")
arg(logonly_ARG, '\0', "logonly", 0, 0, 0, arg(logonly_ARG, '\0', "logonly", 0, 0, 0,
@ -260,12 +260,12 @@ arg(maxrecoveryrate_ARG, '\0', "maxrecoveryrate", sizekb_VAL, 0, 0,
"See \\fBlvmraid\\fP(7) for more information.\n") "See \\fBlvmraid\\fP(7) for more information.\n")
arg(merge_ARG, '\0', "merge", 0, 0, 0, arg(merge_ARG, '\0', "merge", 0, 0, 0,
"An alias for \\-\\-mergethin, \\-\\-mergemirrors, or \\-\\-mergesnapshot,\n" "An alias for --mergethin, --mergemirrors, or --mergesnapshot,\n"
"depending on the type of LV.\n") "depending on the type of LV.\n")
arg(mergemirrors_ARG, '\0', "mergemirrors", 0, 0, 0, arg(mergemirrors_ARG, '\0', "mergemirrors", 0, 0, 0,
"Merge LV images that were split from a raid1 LV.\n" "Merge LV images that were split from a raid1 LV.\n"
"See \\-\\-splitmirrors with \\-\\-trackchanges.\n") "See --splitmirrors with --trackchanges.\n")
arg(mergesnapshot_ARG, '\0', "mergesnapshot", 0, 0, 0, arg(mergesnapshot_ARG, '\0', "mergesnapshot", 0, 0, 0,
"Merge COW snapshot LV into its origin.\n" "Merge COW snapshot LV into its origin.\n"
@ -288,9 +288,9 @@ arg(mergethin_ARG, '\0', "mergethin", 0, 0, 0,
"See \\fBlvmthin\\fP(7) for more information.\n") "See \\fBlvmthin\\fP(7) for more information.\n")
arg(mergedconfig_ARG, '\0', "mergedconfig", 0, 0, 0, arg(mergedconfig_ARG, '\0', "mergedconfig", 0, 0, 0,
"When the command is run with \\-\\-config\n" "When the command is run with --config\n"
"and/or \\-\\-commandprofile (or using LVM_COMMAND_PROFILE\n" "and/or --commandprofile (or using LVM_COMMAND_PROFILE\n"
"environment variable), \\-\\-profile, or \\-\\-metadataprofile,\n" "environment variable), --profile, or --metadataprofile,\n"
"merge all the contents of the \"config cascade\" before displaying it.\n" "merge all the contents of the \"config cascade\" before displaying it.\n"
"Without merging, only the configuration at the front of the\n" "Without merging, only the configuration at the front of the\n"
"cascade is displayed.\n" "cascade is displayed.\n"
@ -349,7 +349,7 @@ arg(monitor_ARG, '\0', "monitor", bool_VAL, 0, 0,
arg(nameprefixes_ARG, '\0', "nameprefixes", 0, 0, 0, arg(nameprefixes_ARG, '\0', "nameprefixes", 0, 0, 0,
"Add an \"LVM2_\" prefix plus the field name to the output. Useful\n" "Add an \"LVM2_\" prefix plus the field name to the output. Useful\n"
"with \\-\\-noheadings to produce a list of field=value pairs that can\n" "with --noheadings to produce a list of field=value pairs that can\n"
"be used to set environment variables (for example, in udev rules).\n") "be used to set environment variables (for example, in udev rules).\n")
arg(noheadings_ARG, '\0', "noheadings", 0, 0, 0, arg(noheadings_ARG, '\0', "noheadings", 0, 0, 0,
@ -365,11 +365,11 @@ arg(nolocking_ARG, '\0', "nolocking", 0, 0, 0,
"Disable locking.\n") "Disable locking.\n")
arg(norestorefile_ARG, '\0', "norestorefile", 0, 0, 0, arg(norestorefile_ARG, '\0', "norestorefile", 0, 0, 0,
"In conjunction with \\-\\-uuid, this allows a uuid to be specified\n" "In conjunction with --uuid, this allows a uuid to be specified\n"
"without also requiring that a backup of the metadata be provided.\n") "without also requiring that a backup of the metadata be provided.\n")
arg(nosuffix_ARG, '\0', "nosuffix", 0, 0, 0, arg(nosuffix_ARG, '\0', "nosuffix", 0, 0, 0,
"Suppress the suffix on output sizes. Use with \\-\\-units\n" "Suppress the suffix on output sizes. Use with --units\n"
"(except h and H) if processing the output.\n") "(except h and H) if processing the output.\n")
arg(nosync_ARG, '\0', "nosync", 0, 0, 0, arg(nosync_ARG, '\0', "nosync", 0, 0, 0,
@ -387,8 +387,8 @@ arg(nosync_ARG, '\0', "nosync", 0, 0, 0,
"and thus do not support initial synchronization.\n") "and thus do not support initial synchronization.\n")
arg(notifydbus_ARG, '\0', "notifydbus", 0, 0, 0, arg(notifydbus_ARG, '\0', "notifydbus", 0, 0, 0,
"Send a notification to D\\-Bus. The command will exit with an error\n" "Send a notification to D-Bus. The command will exit with an error\n"
"if LVM is not built with support for D\\offsetus notification, or if the\n" "if LVM is not built with support for D-Bus notification, or if the\n"
"notify_dbus config setting is disabled.\n") "notify_dbus config setting is disabled.\n")
arg(noudevsync_ARG, '\0', "noudevsync", 0, 0, 0, arg(noudevsync_ARG, '\0', "noudevsync", 0, 0, 0,
@ -409,11 +409,11 @@ arg(physicalvolumesize_ARG, '\0', "setphysicalvolumesize", sizemb_VAL, 0, 0,
arg(poll_ARG, '\0', "poll", bool_VAL, 0, 0, arg(poll_ARG, '\0', "poll", bool_VAL, 0, 0,
"When yes, start the background transformation of an LV.\n" "When yes, start the background transformation of an LV.\n"
"An incomplete transformation, e.g. pvmove or lvconvert interrupted\n" "An incomplete transformation, e.g. pvmove or lvconvert interrupted\n"
"by reboot or crash, can be restarted from the last checkpoint with \\-\\-poll y.\n" "by reboot or crash, can be restarted from the last checkpoint with --poll y.\n"
"When no, background transformation of an LV will not occur, and the\n" "When no, background transformation of an LV will not occur, and the\n"
"transformation will not complete. It may not be appropriate to immediately\n" "transformation will not complete. It may not be appropriate to immediately\n"
"poll an LV after activation, in which case \\-\\-poll n can be used to defer\n" "poll an LV after activation, in which case --poll n can be used to defer\n"
"polling until a later \\-\\-poll y command.\n") "polling until a later --poll y command.\n")
arg(polloperation_ARG, '\0', "polloperation", polloperation_VAL, 0, 0, arg(polloperation_ARG, '\0', "polloperation", polloperation_VAL, 0, 0,
"The command to perform from lvmpolld.\n") "The command to perform from lvmpolld.\n")
@ -440,7 +440,7 @@ arg(poolmetadataspare_ARG, '\0', "poolmetadataspare", bool_VAL, 0, 0,
"space that can be used when repairing a pool.\n") "space that can be used when repairing a pool.\n")
arg(profile_ARG, '\0', "profile", string_VAL, 0, 0, arg(profile_ARG, '\0', "profile", string_VAL, 0, 0,
"An alias for \\-\\-commandprofile or \\-\\-metadataprofile, depending\n" "An alias for --commandprofile or --metadataprofile, depending\n"
"on the command.\n") "on the command.\n")
arg(pvmetadatacopies_ARG, '\0', "pvmetadatacopies", pvmetadatacopies_VAL, 0, 0, arg(pvmetadatacopies_ARG, '\0', "pvmetadatacopies", pvmetadatacopies_VAL, 0, 0,
@ -475,7 +475,7 @@ arg(removemissing_ARG, '\0', "removemissing", 0, 0, 0,
"on them. This resumes normal operation of the VG (new LVs may again\n" "on them. This resumes normal operation of the VG (new LVs may again\n"
"be created, changed and so on).\n" "be created, changed and so on).\n"
"If this is not possible because LVs are referencing the missing PVs,\n" "If this is not possible because LVs are referencing the missing PVs,\n"
"this option can be combined with \\-\\-force to have the command remove\n" "this option can be combined with --force to have the command remove\n"
"any partial LVs. In this case, any LVs and dependent snapshots that\n" "any partial LVs. In this case, any LVs and dependent snapshots that\n"
"were partly on the missing disks are removed completely, including\n" "were partly on the missing disks are removed completely, including\n"
"those parts on disks that are still present.\n" "those parts on disks that are still present.\n"
@ -485,7 +485,7 @@ arg(removemissing_ARG, '\0', "removemissing", 0, 0, 0,
arg(rebuild_ARG, '\0', "rebuild", pv_VAL, ARG_GROUPABLE, 0, arg(rebuild_ARG, '\0', "rebuild", pv_VAL, ARG_GROUPABLE, 0,
"Selects a PV to rebuild in a raid LV. Multiple PVs can be rebuilt by\n" "Selects a PV to rebuild in a raid LV. Multiple PVs can be rebuilt by\n"
"repeating this option.\n" "repeating this option.\n"
"Use this option in place of \\-\\-resync or \\-\\-syncaction repair when the\n" "Use this option in place of --resync or --syncaction repair when the\n"
"PVs with corrupted data are known, and their data should be reconstructed\n" "PVs with corrupted data are known, and their data should be reconstructed\n"
"rather than reconstructing default (rotating) data.\n" "rather than reconstructing default (rotating) data.\n"
"See \\fBlvmraid\\fP(7) for more information.\n") "See \\fBlvmraid\\fP(7) for more information.\n")
@ -510,7 +510,7 @@ arg(reportformat_ARG, '\0', "reportformat", reportformat_VAL, 0, 0,
"output in JSON format. See \\fBlvmreport\\fP(7) for more information.\n") "output in JSON format. See \\fBlvmreport\\fP(7) for more information.\n")
arg(restorefile_ARG, '\0', "restorefile", string_VAL, 0, 0, arg(restorefile_ARG, '\0', "restorefile", string_VAL, 0, 0,
"In conjunction with \\-\\-uuid, this reads the file (produced by\n" "In conjunction with --uuid, this reads the file (produced by\n"
"vgcfgbackup), extracts the location and size of the data on the PV,\n" "vgcfgbackup), extracts the location and size of the data on the PV,\n"
"and ensures that the metadata produced by the program is consistent\n" "and ensures that the metadata produced by the program is consistent\n"
"with the contents of the file, i.e. the physical extents will be in\n" "with the contents of the file, i.e. the physical extents will be in\n"
@ -525,7 +525,7 @@ arg(restoremissing_ARG, '\0', "restoremissing", 0, 0, 0,
arg(resync_ARG, '\0', "resync", 0, 0, 0, arg(resync_ARG, '\0', "resync", 0, 0, 0,
"Initiates mirror synchronization. Synchronization generally happens\n" "Initiates mirror synchronization. Synchronization generally happens\n"
"automatically, but this option forces it to run.\n" "automatically, but this option forces it to run.\n"
"Also see \\-\\-rebuild to synchronize a specific PV.\n" "Also see --rebuild to synchronize a specific PV.\n"
"During synchronization, data is read from the primary mirror device\n" "During synchronization, data is read from the primary mirror device\n"
"and copied to the others. This can take considerable time, during\n" "and copied to the others. This can take considerable time, during\n"
"which the LV is without a complete redundant copy of the data.\n" "which the LV is without a complete redundant copy of the data.\n"
@ -567,16 +567,16 @@ arg(shared_ARG, '\0', "shared", 0, 0, 0,
arg(sinceversion_ARG, '\0', "sinceversion", string_VAL, 0, 0, arg(sinceversion_ARG, '\0', "sinceversion", string_VAL, 0, 0,
"Specify an LVM version in x.y.z format where x is the major version,\n" "Specify an LVM version in x.y.z format where x is the major version,\n"
"the y is the minor version and z is the patchlevel (e.g. 2.2.106).\n" "the y is the minor version and z is the patchlevel (e.g. 2.2.106).\n"
"This option is currently applicable only with \\-\\-typeconfig new\n" "This option is currently applicable only with --typeconfig new\n"
"to display all configuration settings introduced since given version.\n") "to display all configuration settings introduced since given version.\n")
arg(splitcache_ARG, '\0', "splitcache", 0, 0, 0, arg(splitcache_ARG, '\0', "splitcache", 0, 0, 0,
"Separates a cache pool from a cache LV, and keeps the unused cache pool LV.\n" "Separates a cache pool from a cache LV, and keeps the unused cache pool LV.\n"
"Before the separation, the cache is flushed. Also see \\-\\-uncache.\n") "Before the separation, the cache is flushed. Also see --uncache.\n")
arg(splitmirrors_ARG, '\0', "splitmirrors", number_VAL, 0, 0, arg(splitmirrors_ARG, '\0', "splitmirrors", number_VAL, 0, 0,
"Splits the specified number of images from a raid1 or mirror LV\n" "Splits the specified number of images from a raid1 or mirror LV\n"
"and uses them to create a new LV. If \\-\\-trackchanges is also specified,\n" "and uses them to create a new LV. If --trackchanges is also specified,\n"
"changes to the raid1 LV are tracked while the split LV remains detached.\n") "changes to the raid1 LV are tracked while the split LV remains detached.\n")
arg(splitsnapshot_ARG, '\0', "splitsnapshot", 0, 0, 0, arg(splitsnapshot_ARG, '\0', "splitsnapshot", 0, 0, 0,
@ -587,7 +587,7 @@ arg(splitsnapshot_ARG, '\0', "splitsnapshot", 0, 0, 0,
arg(showdeprecated_ARG, '\0', "showdeprecated", 0, 0, 0, arg(showdeprecated_ARG, '\0', "showdeprecated", 0, 0, 0,
"Include deprecated configuration settings in the output. These settings\n" "Include deprecated configuration settings in the output. These settings\n"
"are deprecated after a certain version. If a concrete version is specified\n" "are deprecated after a certain version. If a concrete version is specified\n"
"with \\-\\-atversion, deprecated settings are automatically included\n" "with --atversion, deprecated settings are automatically included\n"
"if the specified version is lower than the version in which the settings were\n" "if the specified version is lower than the version in which the settings were\n"
"deprecated. The current and diff types include deprecated settings\n" "deprecated. The current and diff types include deprecated settings\n"
"in their output by default, all the other types ignore deprecated settings.\n") "in their output by default, all the other types ignore deprecated settings.\n")
@ -606,7 +606,7 @@ arg(stripes_long_ARG, '\0', "stripes", number_VAL, 0, 0,
"Specifies the number of stripes in a striped LV. This is the number of\n" "Specifies the number of stripes in a striped LV. This is the number of\n"
"PVs (devices) that a striped LV is spread across. Data that\n" "PVs (devices) that a striped LV is spread across. Data that\n"
"appears sequential in the LV is spread across multiple devices in units of\n" "appears sequential in the LV is spread across multiple devices in units of\n"
"the stripe size (see \\-\\-stripesize). This does not apply to\n" "the stripe size (see --stripesize). This does not apply to\n"
"existing allocated space, only newly allocated space can be striped.\n") "existing allocated space, only newly allocated space can be striped.\n")
arg(swapmetadata_ARG, '\0', "swapmetadata", 0, 0, 0, arg(swapmetadata_ARG, '\0', "swapmetadata", 0, 0, 0,
@ -631,8 +631,8 @@ arg(sysinit_ARG, '\0', "sysinit", 0, 0, 0,
"scripts (e.g. rc.sysinit or an initrd), before writable filesystems are\n" "scripts (e.g. rc.sysinit or an initrd), before writable filesystems are\n"
"available. As such, some functionality needs to be disabled and this option\n" "available. As such, some functionality needs to be disabled and this option\n"
"acts as a shortcut which selects an appropriate set of options. Currently,\n" "acts as a shortcut which selects an appropriate set of options. Currently,\n"
"this is equivalent to using \\-\\-ignorelockingfailure, \\-\\-ignoremonitoring,\n" "this is equivalent to using --ignorelockingfailure, --ignoremonitoring,\n"
"\\-\\-poll n, and setting env var LVM_SUPPRESS_LOCKING_FAILURE_MESSAGES.\n" "--poll n, and setting env var LVM_SUPPRESS_LOCKING_FAILURE_MESSAGES.\n"
"When used in conjunction with lvmetad enabled and running,\n" "When used in conjunction with lvmetad enabled and running,\n"
"vgchange/lvchange skip autoactivation, and defer to pvscan autoactivation.\n") "vgchange/lvchange skip autoactivation, and defer to pvscan autoactivation.\n")
@ -655,7 +655,7 @@ arg(thinpool_ARG, '\0', "thinpool", lv_VAL, 0, 0,
"The name of a thin pool LV.\n") "The name of a thin pool LV.\n")
arg(trackchanges_ARG, '\0', "trackchanges", 0, 0, 0, arg(trackchanges_ARG, '\0', "trackchanges", 0, 0, 0,
"Can be used with \\-\\-splitmirrors on a raid1 LV. This causes\n" "Can be used with --splitmirrors on a raid1 LV. This causes\n"
"changes to the original raid1 LV to be tracked while the split images\n" "changes to the original raid1 LV to be tracked while the split images\n"
"remain detached. This allows the read-only detached image(s) to be\n" "remain detached. This allows the read-only detached image(s) to be\n"
"merged efficiently back into the raid1 LV later. Only the regions with\n" "merged efficiently back into the raid1 LV later. Only the regions with\n"
@ -675,7 +675,7 @@ arg(type_ARG, '\0', "type", segtype_VAL, 0, 0,
"For copy-on-write snapshots (\\fBsnapshot\\fP) see usage definitions.\n" "For copy-on-write snapshots (\\fBsnapshot\\fP) see usage definitions.\n"
"Several commands omit an explicit type option because the type\n" "Several commands omit an explicit type option because the type\n"
"is inferred from other options or shortcuts\n" "is inferred from other options or shortcuts\n"
"(e.g. \\-\\-stripes, \\-\\-mirrors, \\-\\-snapshot, \\-\\-virtualsize, \\-\\-thin, \\-\\-cache).\n" "(e.g. --stripes, --mirrors, --snapshot, --virtualsize, --thin, --cache).\n"
"Use inferred types with care because it can lead to unexpected results.\n") "Use inferred types with care because it can lead to unexpected results.\n")
arg(unbuffered_ARG, '\0', "unbuffered", 0, 0, 0, arg(unbuffered_ARG, '\0', "unbuffered", 0, 0, 0,
@ -683,7 +683,7 @@ arg(unbuffered_ARG, '\0', "unbuffered", 0, 0, 0,
arg(uncache_ARG, '\0', "uncache", 0, 0, 0, arg(uncache_ARG, '\0', "uncache", 0, 0, 0,
"Separates a cache pool from a cache LV, and deletes the unused cache pool LV.\n" "Separates a cache pool from a cache LV, and deletes the unused cache pool LV.\n"
"Before the separation, the cache is flushed. Also see \\-\\-splitcache.\n") "Before the separation, the cache is flushed. Also see --splitcache.\n")
arg(cachepolicy_ARG, '\0', "cachepolicy", string_VAL, 0, 0, arg(cachepolicy_ARG, '\0', "cachepolicy", string_VAL, 0, 0,
"Specifies the cache policy for a cache LV.\n" "Specifies the cache policy for a cache LV.\n"
@ -707,10 +707,10 @@ arg(units_ARG, '\0', "units", units_VAL, 0, 0,
"(h)uman-readable, (b)ytes, (s)ectors, (k)ilobytes, (m)egabytes,\n" "(h)uman-readable, (b)ytes, (s)ectors, (k)ilobytes, (m)egabytes,\n"
"(g)igabytes, (t)erabytes, (p)etabytes, (e)xabytes.\n" "(g)igabytes, (t)erabytes, (p)etabytes, (e)xabytes.\n"
"Capitalise to use multiples of 1000 (S.I.) instead of 1024.\n" "Capitalise to use multiples of 1000 (S.I.) instead of 1024.\n"
"Custom units can be specified, e.g. \\-\\-units 3M.\n") "Custom units can be specified, e.g. --units 3M.\n")
arg(unquoted_ARG, '\0', "unquoted", 0, 0, 0, arg(unquoted_ARG, '\0', "unquoted", 0, 0, 0,
"When used with \\-\\-nameprefixes, output values in the field=value\n" "When used with --nameprefixes, output values in the field=value\n"
"pairs are not quoted.\n") "pairs are not quoted.\n")
arg(usepolicies_ARG, '\0', "usepolicies", 0, 0, 0, arg(usepolicies_ARG, '\0', "usepolicies", 0, 0, 0,
@ -721,7 +721,7 @@ arg(validate_ARG, '\0', "validate", 0, 0, 0,
"Validate current configuration used and exit with appropriate\n" "Validate current configuration used and exit with appropriate\n"
"return code. The validation is done only for the configuration\n" "return code. The validation is done only for the configuration\n"
"at the front of the \"config cascade\". To validate the whole\n" "at the front of the \"config cascade\". To validate the whole\n"
"merged configuration tree, also use \\-\\-mergedconfig.\n" "merged configuration tree, also use --mergedconfig.\n"
"The validation is done even if lvm.conf config/checks is disabled.\n") "The validation is done even if lvm.conf config/checks is disabled.\n")
arg(version_ARG, '\0', "version", 0, 0, 0, arg(version_ARG, '\0', "version", 0, 0, 0,
@ -787,7 +787,7 @@ arg(writemostly_ARG, '\0', "writemostly", writemostly_VAL, ARG_GROUPABLE, 0,
* these variants. The description of the standard option names * these variants. The description of the standard option names
* can mention a synonym, or in some cases the man page generation * can mention a synonym, or in some cases the man page generation
* recognizes some of these and prints the option name to include * recognizes some of these and prints the option name to include
* the variant, e.g. man page generation prints \\-\\-[raid]writebehind. * the variant, e.g. man page generation prints --[raid]writebehind.
*/ */
arg(corelog_ARG, '\0', "corelog", 0, 0, 0, NULL) arg(corelog_ARG, '\0', "corelog", 0, 0, 0, NULL)
arg(resizable_ARG, '\0', "resizable", bool_VAL, 0, 0, NULL) arg(resizable_ARG, '\0', "resizable", bool_VAL, 0, 0, NULL)
@ -838,10 +838,10 @@ arg(activate_ARG, 'a', "activate", activation_VAL, 0, 0,
"In some cases, creating an LV requires it to be active.\n" "In some cases, creating an LV requires it to be active.\n"
"For example, COW snapshots of an active origin LV can only\n" "For example, COW snapshots of an active origin LV can only\n"
"be created in the active state (this does not apply to thin snapshots.)\n" "be created in the active state (this does not apply to thin snapshots.)\n"
"The \\-\\-zero option normally requires the LV to be active.\n" "The --zero option normally requires the LV to be active.\n"
"If autoactivation \\fBay\\fP is used, the LV is only activated\n" "If autoactivation \\fBay\\fP is used, the LV is only activated\n"
"if it matches an item in lvm.conf activation/auto_activation_volume_list.\n" "if it matches an item in lvm.conf activation/auto_activation_volume_list.\n"
"\\fBay\\fP implies \\-\\-zero n and \\-\\-wipesignatures n.\n" "\\fBay\\fP implies --zero n and --wipesignatures n.\n"
"See lvmlockd(8) for more information about activation options for shared VGs.\n" "See lvmlockd(8) for more information about activation options for shared VGs.\n"
"See clvmd(8) for more information about activation options for clustered VGs.\n") "See clvmd(8) for more information about activation options for clustered VGs.\n")
@ -964,7 +964,7 @@ arg(help_ARG, 'h', "help", 0, 0, 0,
arg(cache_ARG, 'H', "cache", 0, 0, 0, arg(cache_ARG, 'H', "cache", 0, 0, 0,
"Specifies the command is handling a cache LV or cache pool.\n" "Specifies the command is handling a cache LV or cache pool.\n"
"See \\-\\-type cache and \\-\\-type cache-pool.\n" "See --type cache and --type cache-pool.\n"
"See \\fBlvmcache\\fP(7) for more information about LVM caching.\n") "See \\fBlvmcache\\fP(7) for more information about LVM caching.\n")
arg(history_ARG, 'H', "history", 0, 0, 0, arg(history_ARG, 'H', "history", 0, 0, 0,
@ -989,7 +989,7 @@ arg(stripes_ARG, 'i', "stripes", number_VAL, 0, 0,
"Specifies the number of stripes in a striped LV. This is the number of\n" "Specifies the number of stripes in a striped LV. This is the number of\n"
"PVs (devices) that a striped LV is spread across. Data that\n" "PVs (devices) that a striped LV is spread across. Data that\n"
"appears sequential in the LV is spread across multiple devices in units of\n" "appears sequential in the LV is spread across multiple devices in units of\n"
"the stripe size (see \\-\\-stripesize). This does not change existing\n" "the stripe size (see --stripesize). This does not change existing\n"
"allocated space, but only applies to space being allocated by the command.\n" "allocated space, but only applies to space being allocated by the command.\n"
"When creating a RAID 4/5/6 LV, this number does not include the extra\n" "When creating a RAID 4/5/6 LV, this number does not include the extra\n"
"devices that are required for parity. The largest number depends on\n" "devices that are required for parity. The largest number depends on\n"
@ -1017,7 +1017,7 @@ arg(maxlogicalvolumes_ARG, 'l', "maxlogicalvolumes", uint32_VAL, 0, 0,
arg(extents_ARG, 'l', "extents", extents_VAL, 0, 0, arg(extents_ARG, 'l', "extents", extents_VAL, 0, 0,
"#lvcreate\n" "#lvcreate\n"
"Specifies the size of the new LV in logical extents.\n" "Specifies the size of the new LV in logical extents.\n"
"The \\-\\-size and \\-\\-extents options are alternate methods of specifying size.\n" "The --size and --extents options are alternate methods of specifying size.\n"
"The total number of physical extents used will be\n" "The total number of physical extents used will be\n"
"greater when redundant data is needed for RAID levels.\n" "greater when redundant data is needed for RAID levels.\n"
"An alternate syntax allows the size to be determined indirectly\n" "An alternate syntax allows the size to be determined indirectly\n"
@ -1035,7 +1035,7 @@ arg(extents_ARG, 'l', "extents", extents_VAL, 0, 0,
"#lvextend\n" "#lvextend\n"
"#lvresize\n" "#lvresize\n"
"Specifies the new size of the LV in logical extents.\n" "Specifies the new size of the LV in logical extents.\n"
"The \\-\\-size and \\-\\-extents options are alternate methods of specifying size.\n" "The --size and --extents options are alternate methods of specifying size.\n"
"The total number of physical extents used will be\n" "The total number of physical extents used will be\n"
"greater when redundant data is needed for RAID levels.\n" "greater when redundant data is needed for RAID levels.\n"
"An alternate syntax allows the size to be determined indirectly\n" "An alternate syntax allows the size to be determined indirectly\n"
@ -1058,12 +1058,12 @@ arg(list_ARG, 'l', "list", 0, 0, 0,
"#dumpconfig\n" "#dumpconfig\n"
"#config\n" "#config\n"
"List config settings with summarizing comment. This is the same as using\n" "List config settings with summarizing comment. This is the same as using\n"
"options \\-\\-typeconfig list \\-\\-withsummary.\n" "options --typeconfig list --withsummary.\n"
"#vgcfgrestore\n" "#vgcfgrestore\n"
"List metadata backup and archive files pertaining to the VG.\n" "List metadata backup and archive files pertaining to the VG.\n"
"May be used with \\-\\-file. Does not restore the VG.\n" "May be used with --file. Does not restore the VG.\n"
"#vgmerge\n" "#vgmerge\n"
"Display merged destination VG like vgdisplay \\-v.\n") "Display merged destination VG like vgdisplay -v.\n")
arg(lvmpartition_ARG, 'l', "lvmpartition", 0, 0, 0, arg(lvmpartition_ARG, 'l', "lvmpartition", 0, 0, 0,
"Only report PVs.\n") "Only report PVs.\n")
@ -1076,14 +1076,14 @@ arg(lvmpartition_ARG, 'l', "lvmpartition", 0, 0, 0,
arg(size_ARG, 'L', "size", sizemb_VAL, 0, 0, arg(size_ARG, 'L', "size", sizemb_VAL, 0, 0,
"#lvcreate\n" "#lvcreate\n"
"Specifies the size of the new LV.\n" "Specifies the size of the new LV.\n"
"The \\-\\-size and \\-\\-extents options are alternate methods of specifying size.\n" "The --size and --extents options are alternate methods of specifying size.\n"
"The total number of physical extents used will be\n" "The total number of physical extents used will be\n"
"greater when redundant data is needed for RAID levels.\n" "greater when redundant data is needed for RAID levels.\n"
"#lvreduce\n" "#lvreduce\n"
"#lvextend\n" "#lvextend\n"
"#lvresize\n" "#lvresize\n"
"Specifies the new size of the LV.\n" "Specifies the new size of the LV.\n"
"The \\-\\-size and \\-\\-extents options are alternate methods of specifying size.\n" "The --size and --extents options are alternate methods of specifying size.\n"
"The total number of physical extents used will be\n" "The total number of physical extents used will be\n"
"greater when redundant data is needed for RAID levels.\n" "greater when redundant data is needed for RAID levels.\n"
"When the plus \\fB+\\fP or minus \\fB-\\fP prefix is used,\n" "When the plus \\fB+\\fP or minus \\fB-\\fP prefix is used,\n"
@ -1103,7 +1103,7 @@ arg(major_ARG, 'j', "major", number_VAL, ARG_GROUPABLE, 0,
arg(setactivationskip_ARG, 'k', "setactivationskip", bool_VAL, 0, 0, arg(setactivationskip_ARG, 'k', "setactivationskip", bool_VAL, 0, 0,
"Persistently sets (yes) or clears (no) the \"activation skip\" flag on an LV.\n" "Persistently sets (yes) or clears (no) the \"activation skip\" flag on an LV.\n"
"An LV with this flag set is not activated unless the\n" "An LV with this flag set is not activated unless the\n"
"\\-\\-ignoreactivationskip option is used by the activation command.\n" "--ignoreactivationskip option is used by the activation command.\n"
"This flag is set by default on new thin snapshot LVs.\n" "This flag is set by default on new thin snapshot LVs.\n"
"The flag is not applied to deactivation.\n" "The flag is not applied to deactivation.\n"
"The current value of the flag is indicated in the lvs lv_attr bits.\n") "The current value of the flag is indicated in the lvs lv_attr bits.\n")
@ -1116,7 +1116,7 @@ arg(maps_ARG, 'm', "maps", 0, 0, 0,
"#lvdisplay\n" "#lvdisplay\n"
"Display the mapping of logical extents to PVs and physical extents.\n" "Display the mapping of logical extents to PVs and physical extents.\n"
"To map physical extents to logical extents use:\n" "To map physical extents to logical extents use:\n"
"pvs \\-\\-segments \\-o+lv_name,seg_start_pe,segtype\n" "pvs --segments -o+lv_name,seg_start_pe,segtype\n"
"#pvdisplay\n" "#pvdisplay\n"
"Display the mapping of physical extents to LVs and logical extents.\n") "Display the mapping of physical extents to LVs and logical extents.\n")
@ -1125,27 +1125,27 @@ arg(maps_ARG, 'm', "maps", 0, 0, 0,
arg(mirrors_ARG, 'm', "mirrors", number_VAL, 0, 0, arg(mirrors_ARG, 'm', "mirrors", number_VAL, 0, 0,
"#lvcreate\n" "#lvcreate\n"
"Specifies the number of mirror images in addition to the original LV\n" "Specifies the number of mirror images in addition to the original LV\n"
"image, e.g. \\-\\-mirrors 1 means there are two images of the data, the\n" "image, e.g. --mirrors 1 means there are two images of the data, the\n"
"original and one mirror image.\n" "original and one mirror image.\n"
"Optional positional PV args on the command line can specify the devices\n" "Optional positional PV args on the command line can specify the devices\n"
"the images should be placed on.\n" "the images should be placed on.\n"
"There are two mirroring implementations: \"raid1\" and \"mirror\".\n" "There are two mirroring implementations: \"raid1\" and \"mirror\".\n"
"These are the names of the corresponding LV types, or \"segment types\".\n" "These are the names of the corresponding LV types, or \"segment types\".\n"
"Use the \\-\\-type option to specify which to use (raid1 is default,\n" "Use the --type option to specify which to use (raid1 is default,\n"
"and mirror is legacy)\n" "and mirror is legacy)\n"
"Use lvm.conf global/mirror_segtype_default and\n" "Use lvm.conf global/mirror_segtype_default and\n"
"global/raid10_segtype_default to configure the default types.\n" "global/raid10_segtype_default to configure the default types.\n"
"See the \\-\\-nosync option for avoiding initial image synchronization.\n" "See the --nosync option for avoiding initial image synchronization.\n"
"See \\fBlvmraid\\fP(7) for more information.\n" "See \\fBlvmraid\\fP(7) for more information.\n"
"#lvconvert\n" "#lvconvert\n"
"Specifies the number of mirror images in addition to the original LV\n" "Specifies the number of mirror images in addition to the original LV\n"
"image, e.g. \\-\\-mirrors 1 means there are two images of the data, the\n" "image, e.g. --mirrors 1 means there are two images of the data, the\n"
"original and one mirror image.\n" "original and one mirror image.\n"
"Optional positional PV args on the command line can specify the devices\n" "Optional positional PV args on the command line can specify the devices\n"
"the images should be placed on.\n" "the images should be placed on.\n"
"There are two mirroring implementations: \"raid1\" and \"mirror\".\n" "There are two mirroring implementations: \"raid1\" and \"mirror\".\n"
"These are the names of the corresponding LV types, or \"segment types\".\n" "These are the names of the corresponding LV types, or \"segment types\".\n"
"Use the \\-\\-type option to specify which to use (raid1 is default,\n" "Use the --type option to specify which to use (raid1 is default,\n"
"and mirror is legacy)\n" "and mirror is legacy)\n"
"Use lvm.conf global/mirror_segtype_default and\n" "Use lvm.conf global/mirror_segtype_default and\n"
"global/raid10_segtype_default to configure the default types.\n" "global/raid10_segtype_default to configure the default types.\n"
@ -1176,7 +1176,7 @@ arg(name_ARG, 'n', "name", string_VAL, 0, 0,
arg(nofsck_ARG, 'n', "nofsck", 0, 0, 0, arg(nofsck_ARG, 'n', "nofsck", 0, 0, 0,
"Do not perform fsck before resizing filesystem when filesystem\n" "Do not perform fsck before resizing filesystem when filesystem\n"
"requires it. You may need to use \\-\\-force to proceed with\n" "requires it. You may need to use --force to proceed with\n"
"this option.\n") "this option.\n")
arg(novolumegroup_ARG, 'n', "novolumegroup", 0, 0, 0, arg(novolumegroup_ARG, 'n', "novolumegroup", 0, 0, 0,
@ -1188,7 +1188,7 @@ arg(oldpath_ARG, 'n', "oldpath", 0, 0, 0, NULL)
/* /*
* FIXME: a free-form discussion section and document the * FIXME: a free-form discussion section and document the
* VG/LV/PV attr bits which were previously listed * VG/LV/PV attr bits which were previously listed
* in the description for \\-o. * in the description for -o.
*/ */
arg(options_ARG, 'o', "options", string_VAL, ARG_GROUPABLE, 0, arg(options_ARG, 'o', "options", string_VAL, ARG_GROUPABLE, 0,
@ -1198,8 +1198,8 @@ arg(options_ARG, 'o', "options", string_VAL, ARG_GROUPABLE, 0,
"\\fB-\\fP will remove the specified fields from the default fields, and\n" "\\fB-\\fP will remove the specified fields from the default fields, and\n"
"\\fB#\\fP will compact specified fields (removing them when empty for all rows.)\n" "\\fB#\\fP will compact specified fields (removing them when empty for all rows.)\n"
"Use \\fB-o help\\fP to view the list of all available fields.\n" "Use \\fB-o help\\fP to view the list of all available fields.\n"
"Use separate lists of fields to add, remove or compact by repeating the \\-o option:\n" "Use separate lists of fields to add, remove or compact by repeating the -o option:\n"
"-o+field1,field2 \\-o-field3,field4 \\-o#field5.\n" "-o+field1,field2 -o-field3,field4 -o#field5.\n"
"These lists are evaluated from left to right.\n" "These lists are evaluated from left to right.\n"
"Use field name \\fBlv_all\\fP to view all LV fields,\n" "Use field name \\fBlv_all\\fP to view all LV fields,\n"
"\\fBvg_all\\fP all VG fields,\n" "\\fBvg_all\\fP all VG fields,\n"
@ -1217,8 +1217,8 @@ arg(sort_ARG, 'O', "sort", string_VAL, ARG_GROUPABLE, 0,
arg(maxphysicalvolumes_ARG, 'p', "maxphysicalvolumes", uint32_VAL, 0, 0, arg(maxphysicalvolumes_ARG, 'p', "maxphysicalvolumes", uint32_VAL, 0, 0,
"Sets the maximum number of PVs that can belong to the VG.\n" "Sets the maximum number of PVs that can belong to the VG.\n"
"The value 0 removes any limitation.\n" "The value 0 removes any limitation.\n"
"For large numbers of PVs, also see options \\-\\-pvmetadatacopies,\n" "For large numbers of PVs, also see options --pvmetadatacopies,\n"
"and \\-\\-vgmetadatacopies for improving performance.\n") "and --vgmetadatacopies for improving performance.\n")
arg(permission_ARG, 'p', "permission", permission_VAL, 0, 0, arg(permission_ARG, 'p', "permission", permission_VAL, 0, 0,
"Set access permission to read only \\fBr\\fP or read and write \\fBrw\\fP.\n") "Set access permission to read only \\fBr\\fP or read and write \\fBrw\\fP.\n")
@ -1235,7 +1235,7 @@ arg(partial_ARG, 'P', "partial", 0, 0, 0,
arg(physicalvolume_ARG, 'P', "physicalvolume", 0, 0, 0, NULL) arg(physicalvolume_ARG, 'P', "physicalvolume", 0, 0, 0, NULL)
arg(quiet_ARG, 'q', "quiet", 0, ARG_COUNTABLE, 0, arg(quiet_ARG, 'q', "quiet", 0, ARG_COUNTABLE, 0,
"Suppress output and log messages. Overrides \\-\\-debug and \\-\\-verbose.\n" "Suppress output and log messages. Overrides --debug and --verbose.\n"
"Repeat once to also suppress any prompts with answer no.\n") "Repeat once to also suppress any prompts with answer no.\n")
arg(readahead_ARG, 'r', "readahead", readahead_VAL, 0, 0, arg(readahead_ARG, 'r', "readahead", readahead_VAL, 0, 0,
@ -1285,7 +1285,7 @@ arg(snapshot_ARG, 's', "snapshot", 0, 0, 0,
"the size option is NOT specified. Thin snapshots share the same blocks\n" "the size option is NOT specified. Thin snapshots share the same blocks\n"
"in the thin pool, and do not allocate new space from the VG.\n" "in the thin pool, and do not allocate new space from the VG.\n"
"Thin snapshots are created with the \"activation skip\" flag,\n" "Thin snapshots are created with the \"activation skip\" flag,\n"
"see \\-\\-setactivationskip.\n" "see --setactivationskip.\n"
"A thin snapshot of a non-thin \"external origin\" LV is created\n" "A thin snapshot of a non-thin \"external origin\" LV is created\n"
"when a thin pool is specified. Unprovisioned blocks in the thin snapshot\n" "when a thin pool is specified. Unprovisioned blocks in the thin snapshot\n"
"LV are read from the external origin LV. The external origin LV must\n" "LV are read from the external origin LV. The external origin LV must\n"
@ -1299,11 +1299,11 @@ arg(snapshot_ARG, 's', "snapshot", 0, 0, 0,
"be extended with lvextend (shrinking is also allowed with lvreduce.)\n" "be extended with lvextend (shrinking is also allowed with lvreduce.)\n"
"A small amount of the COW snapshot LV size is used to track COW block\n" "A small amount of the COW snapshot LV size is used to track COW block\n"
"locations, so the full size is not available for COW data blocks.\n" "locations, so the full size is not available for COW data blocks.\n"
"Use lvs to check how much space is used, and see \\-\\-monitor to\n" "Use lvs to check how much space is used, and see --monitor to\n"
"to automatically extend the size to avoid running out of space.\n" "to automatically extend the size to avoid running out of space.\n"
"#lvconvert\n" "#lvconvert\n"
"Combine a former COW snapshot LV with a former origin LV to reverse\n" "Combine a former COW snapshot LV with a former origin LV to reverse\n"
"a previous \\-\\-splitsnapshot command.\n") "a previous --splitsnapshot command.\n")
arg(short_ARG, 's', "short", 0, 0, 0, arg(short_ARG, 's', "short", 0, 0, 0,
"#pvdisplay\n" "#pvdisplay\n"
@ -1318,9 +1318,9 @@ arg(stdin_ARG, 's', "stdin", 0, 0, 0, NULL)
arg(select_ARG, 'S', "select", string_VAL, ARG_GROUPABLE, 0, arg(select_ARG, 'S', "select", string_VAL, ARG_GROUPABLE, 0,
"Select objects for processing and reporting based on specified criteria.\n" "Select objects for processing and reporting based on specified criteria.\n"
"The criteria syntax is described by \\fB\\-\\-select help\\fP and \\fBlvmreport\\fP(7).\n" "The criteria syntax is described by \\fB--select help\\fP and \\fBlvmreport\\fP(7).\n"
"For reporting commands, one row is displayed for each object matching the criteria.\n" "For reporting commands, one row is displayed for each object matching the criteria.\n"
"See \\fB\\-\\-options help\\fP for selectable object fields.\n" "See \\fB--options help\\fP for selectable object fields.\n"
"Rows can be displayed with an additional \"selected\" field (-o selected)\n" "Rows can be displayed with an additional \"selected\" field (-o selected)\n"
"showing 1 if the row matches the selection and 0 otherwise.\n" "showing 1 if the row matches the selection and 0 otherwise.\n"
"For non-reporting commands which process LVM entities, the selection is\n" "For non-reporting commands which process LVM entities, the selection is\n"
@ -1335,7 +1335,7 @@ arg(test_ARG, 't', "test", 0, 0, 0,
arg(thin_ARG, 'T', "thin", 0, 0, 0, arg(thin_ARG, 'T', "thin", 0, 0, 0,
"Specifies the command is handling a thin LV or thin pool.\n" "Specifies the command is handling a thin LV or thin pool.\n"
"See \\-\\-type thin, \\-\\-type thin-pool, and \\-\\-virtualsize.\n" "See --type thin, --type thin-pool, and --virtualsize.\n"
"See \\fBlvmthin\\fP(7) for more information about LVM thin provisioning.\n") "See \\fBlvmthin\\fP(7) for more information about LVM thin provisioning.\n")
arg(uuid_ARG, 'u', "uuid", 0, 0, 0, arg(uuid_ARG, 'u', "uuid", 0, 0, 0,
@ -1351,7 +1351,7 @@ arg(uuidstr_ARG, 'u', "uuid", string_VAL, 0, 0,
"Without this option, a random UUID is generated.\n" "Without this option, a random UUID is generated.\n"
"This option is needed before restoring a backup of LVM metadata\n" "This option is needed before restoring a backup of LVM metadata\n"
"onto a replacement device; see vgcfgrestore(8). As such, use of\n" "onto a replacement device; see vgcfgrestore(8). As such, use of\n"
"\\-\\-restorefile is compulsory unless the \\-\\-norestorefile is used.\n" "--restorefile is compulsory unless the --norestorefile is used.\n"
"All PVs must have unique UUIDs, and LVM will prevent certain operations\n" "All PVs must have unique UUIDs, and LVM will prevent certain operations\n"
"if multiple devices are seen with the same UUID.\n" "if multiple devices are seen with the same UUID.\n"
"See vgimportclone(8) for more information.\n") "See vgimportclone(8) for more information.\n")
@ -1369,7 +1369,7 @@ arg(volumegroup_ARG, 'V', "volumegroup", 0, 0, 0, NULL)
arg(virtualsize_ARG, 'V', "virtualsize", sizemb_VAL, 0, 0, arg(virtualsize_ARG, 'V', "virtualsize", sizemb_VAL, 0, 0,
"The virtual size of a new thin LV.\n" "The virtual size of a new thin LV.\n"
"See \\fBlvmthin\\fP(7) for more information about LVM thin provisioning.\n" "See \\fBlvmthin\\fP(7) for more information about LVM thin provisioning.\n"
"Using virtual size (\\-V) and actual size (\\-L) together creates\n" "Using virtual size (-V) and actual size (-L) together creates\n"
"a sparse LV.\n" "a sparse LV.\n"
"lvm.conf global/sparse_segtype_default determines the\n" "lvm.conf global/sparse_segtype_default determines the\n"
"default segment type used to create a sparse LV.\n" "default segment type used to create a sparse LV.\n"
@ -1383,13 +1383,13 @@ arg(virtualsize_ARG, 'V', "virtualsize", sizemb_VAL, 0, 0,
arg(wipesignatures_ARG, 'W', "wipesignatures", bool_VAL, 0, 0, arg(wipesignatures_ARG, 'W', "wipesignatures", bool_VAL, 0, 0,
"Controls detection and subsequent wiping of signatures on new LVs.\n" "Controls detection and subsequent wiping of signatures on new LVs.\n"
"There is a prompt for each signature detected to confirm its wiping\n" "There is a prompt for each signature detected to confirm its wiping\n"
"(unless \\-\\-yes is used to override confirmations.)\n" "(unless --yes is used to override confirmations.)\n"
"When not specified, signatures are wiped whenever zeroing is done\n" "When not specified, signatures are wiped whenever zeroing is done\n"
"(see \\-\\-zero). This behaviour can be configured with\n" "(see --zero). This behaviour can be configured with\n"
"lvm.conf allocation/wipe_signatures_when_zeroing_new_lvs.\n" "lvm.conf allocation/wipe_signatures_when_zeroing_new_lvs.\n"
"If blkid wiping is used (lvm.conf allocation/use_blkid_wiping)\n" "If blkid wiping is used (lvm.conf allocation/use_blkid_wiping)\n"
"and LVM is compiled with blkid wiping support, then the blkid(8)\n" "and LVM is compiled with blkid wiping support, then the blkid(8)\n"
"library is used to detect the signatures (use blkid \\-k to list the\n" "library is used to detect the signatures (use blkid -k to list the\n"
"signatures that are recognized).\n" "signatures that are recognized).\n"
"Otherwise, native LVM code is used to detect signatures\n" "Otherwise, native LVM code is used to detect signatures\n"
"(only MD RAID, swap and LUKS signatures are detected in this case.)\n" "(only MD RAID, swap and LUKS signatures are detected in this case.)\n"
@ -1405,12 +1405,12 @@ arg(resizeable_ARG, 'x', "resizeable", bool_VAL, 0, 0,
arg(yes_ARG, 'y', "yes", 0, 0, 0, arg(yes_ARG, 'y', "yes", 0, 0, 0,
"Do not prompt for confirmation interactively but always assume the\n" "Do not prompt for confirmation interactively but always assume the\n"
"answer yes. Use with extreme caution.\n" "answer yes. Use with extreme caution.\n"
"(For automatic no, see \\-qq.)\n") "(For automatic no, see -qq.)\n")
arg(zero_ARG, 'Z', "zero", bool_VAL, 0, 0, arg(zero_ARG, 'Z', "zero", bool_VAL, 0, 0,
"#lvchange\n" "#lvchange\n"
"Set zeroing mode for thin pool. Note: already provisioned blocks from pool\n" "Set zeroing mode for thin pool. Note: already provisioned blocks from pool\n"
"in non-zero mode are not cleared in unwritten parts when setting \\-\\-zero y.\n" "in non-zero mode are not cleared in unwritten parts when setting --zero y.\n"
"#lvconvert\n" "#lvconvert\n"
"For snapshots, this controls zeroing of the first 4KiB of data in the\n" "For snapshots, this controls zeroing of the first 4KiB of data in the\n"
"snapshot. If the LV is read-only, the snapshot will not be zeroed.\n" "snapshot. If the LV is read-only, the snapshot will not be zeroed.\n"
@ -1427,7 +1427,7 @@ arg(zero_ARG, 'Z', "zero", bool_VAL, 0, 0,
"#vgextend\n" "#vgextend\n"
"Controls if the first 4 sectors (2048 bytes) of the device are wiped.\n" "Controls if the first 4 sectors (2048 bytes) of the device are wiped.\n"
"The default is to wipe these sectors unless either or both of\n" "The default is to wipe these sectors unless either or both of\n"
"\\-\\-restorefile or \\-\\-uuid are specified.\n") "--restorefile or --uuid are specified.\n")
/* this should always be last */ /* this should always be last */
arg(ARG_COUNT, '-', "", 0, 0, 0, NULL) arg(ARG_COUNT, '-', "", 0, 0, 0, NULL)

View File

@ -2094,7 +2094,7 @@ void print_usage_notes(struct command_name *cname)
" capitalization, e.g. 'k' and 'K' both refer to 1024.\n" " capitalization, e.g. 'k' and 'K' both refer to 1024.\n"
" The default input unit is specified by letter, followed by |UNIT.\n" " The default input unit is specified by letter, followed by |UNIT.\n"
" UNIT represents other possible input units: BbBsSkKmMgGtTpPeE.\n" " UNIT represents other possible input units: BbBsSkKmMgGtTpPeE.\n"
" (This should not be confused with the output control \\-\\-units, where\n" " (This should not be confused with the output control --units, where\n"
" capital letters mean multiple of 1000.)\n"); " capital letters mean multiple of 1000.)\n");
printf("\n"); printf("\n");
} }
@ -2140,7 +2140,7 @@ static void print_val_man(struct command_name *cname, int opt_enum, int val_enum
} }
if (val_enum == ssizemb_VAL) { if (val_enum == ssizemb_VAL) {
printf("[\\fB+\\fP|\\fB\\-\\fP]\\fISize\\fP[m|UNIT]"); printf("[\\fB+\\fP|\\fB-\\fP]\\fISize\\fP[m|UNIT]");
return; return;
} }
@ -2150,7 +2150,7 @@ static void print_val_man(struct command_name *cname, int opt_enum, int val_enum
} }
if (val_enum == nsizemb_VAL) { if (val_enum == nsizemb_VAL) {
printf("[\\fB\\-\\fP]\\fISize\\fP[m|UNIT]"); printf("[\\fB-\\fP]\\fISize\\fP[m|UNIT]");
return; return;
} }
@ -2160,7 +2160,7 @@ static void print_val_man(struct command_name *cname, int opt_enum, int val_enum
} }
if (val_enum == sextents_VAL) { if (val_enum == sextents_VAL) {
printf("[\\fB+\\fP|\\fB\\-\\fP]\\fINumber\\fP[PERCENT]"); printf("[\\fB+\\fP|\\fB-\\fP]\\fINumber\\fP[PERCENT]");
return; return;
} }
@ -2170,7 +2170,7 @@ static void print_val_man(struct command_name *cname, int opt_enum, int val_enum
} }
if (val_enum == nextents_VAL) { if (val_enum == nextents_VAL) {
printf("[\\fB\\-\\fP]\\fINumber\\fP[PERCENT]"); printf("[\\fB-\\fP]\\fINumber\\fP[PERCENT]");
return; return;
} }
@ -2180,7 +2180,7 @@ static void print_val_man(struct command_name *cname, int opt_enum, int val_enum
} }
if (val_enum == ssizekb_VAL) { if (val_enum == ssizekb_VAL) {
printf("[\\fB+\\fP|\\fB\\-\\fP]\\fISize\\fP[k|UNIT]"); printf("[\\fB+\\fP|\\fB-\\fP]\\fISize\\fP[k|UNIT]");
return; return;
} }
@ -2190,7 +2190,7 @@ static void print_val_man(struct command_name *cname, int opt_enum, int val_enum
} }
if (val_enum == snumber_VAL) { if (val_enum == snumber_VAL) {
printf("[\\fB+\\fP|\\fB\\-\\fP]\\fINumber\\fP"); printf("[\\fB+\\fP|\\fB-\\fP]\\fINumber\\fP");
return; return;
} }
@ -2244,28 +2244,19 @@ static void print_def_man(struct command_name *cname, int opt_enum, struct arg_d
for (val_enum = 0; val_enum < VAL_COUNT; val_enum++) { for (val_enum = 0; val_enum < VAL_COUNT; val_enum++) {
if (def->val_bits & val_enum_to_bit(val_enum)) { if (def->val_bits & val_enum_to_bit(val_enum)) {
if (val_enum == conststr_VAL) { if (val_enum == conststr_VAL)
printf("\\fB"); printf("\\fB%s\\fP", def->str);
printf("%s", def->str);
printf("\\fP");
}
else if (val_enum == constnum_VAL) { else if (val_enum == constnum_VAL)
printf("\\fB"); printf("\\fB%llu\\fP", (unsigned long long)def->num);
printf("%llu", (unsigned long long)def->num);
printf("\\fP");
}
else { else {
if (sep) printf("|"); if (sep) printf("|");
if (!usage || !val_names[val_enum].usage) { if (!usage || !val_names[val_enum].usage)
printf("\\fI"); printf("\\fI%s\\fP", val_names[val_enum].name);
printf("%s", val_names[val_enum].name); else
printf("\\fP");
} else {
print_val_man(cname, opt_enum, val_enum); print_val_man(cname, opt_enum, val_enum);
}
sep = 1; sep = 1;
} }
@ -2279,16 +2270,9 @@ static void print_def_man(struct command_name *cname, int opt_enum, struct arg_d
printf("\\fP"); printf("\\fP");
} }
if ((val_enum == vg_VAL) && (def->flags & ARG_DEF_FLAG_NEW_VG)) { if (((val_enum == vg_VAL) && (def->flags & ARG_DEF_FLAG_NEW_VG)) ||
printf("\\fI"); ((val_enum == lv_VAL) && (def->flags & ARG_DEF_FLAG_NEW_LV)))
printf("_new"); printf("\\fI_new\\fP");
printf("\\fP");
}
if ((val_enum == lv_VAL) && (def->flags & ARG_DEF_FLAG_NEW_LV)) {
printf("\\fI");
printf("_new");
printf("\\fP");
}
} }
} }
@ -2296,13 +2280,6 @@ static void print_def_man(struct command_name *cname, int opt_enum, struct arg_d
printf(" ..."); printf(" ...");
} }
static const char *_emit_long_opt_name(char *buf, const char *long_opt_name, size_t len)
{
strcpy(buf, "\\-\\-");
strncat(buf, long_opt_name + 2, len - strlen(buf) - 1);
return buf;
}
#define LONG_OPT_NAME_LEN 64 #define LONG_OPT_NAME_LEN 64
static const char *man_long_opt_name(const char *cmdname, int opt_enum) static const char *man_long_opt_name(const char *cmdname, int opt_enum)
{ {
@ -2344,7 +2321,7 @@ static const char *man_long_opt_name(const char *cmdname, int opt_enum)
break; break;
} }
return _emit_long_opt_name(long_opt_name, long_opt, sizeof(long_opt_name)); return long_opt;
} }
static void _print_man_usage(char *lvmname, struct command *cmd) static void _print_man_usage(char *lvmname, struct command *cmd)
@ -2354,9 +2331,6 @@ static void _print_man_usage(char *lvmname, struct command *cmd)
int sep, ro, rp, oo, op, opt_enum; int sep, ro, rp, oo, op, opt_enum;
int need_ro_indent_end = 0; int need_ro_indent_end = 0;
int include_extents = 0; int include_extents = 0;
char long_opt_name[LONG_OPT_NAME_LEN];
memset (long_opt_name, 0, sizeof(long_opt_name));
if (!(cname = find_command_name(cmd->name))) if (!(cname = find_command_name(cmd->name)))
return; return;
@ -2400,7 +2374,7 @@ static void _print_man_usage(char *lvmname, struct command *cmd)
} }
if (opt_names[opt_enum].short_opt) { if (opt_names[opt_enum].short_opt) {
printf(" \\fB\\-%c\\fP|\\fB%s\\fP", printf(" \\fB-%c\\fP|\\fB%s\\fP",
opt_names[opt_enum].short_opt, opt_names[opt_enum].short_opt,
man_long_opt_name(cmd->name, opt_enum)); man_long_opt_name(cmd->name, opt_enum));
} else { } else {
@ -2490,14 +2464,11 @@ static void _print_man_usage(char *lvmname, struct command *cmd)
include_extents = 1; include_extents = 1;
if (opt_names[opt_enum].short_opt) { if (opt_names[opt_enum].short_opt) {
printf(" \\fB\\-%c\\fP|\\fB%s\\fP", printf(" \\fB-%c\\fP|\\fB%s\\fP",
opt_names[opt_enum].short_opt, opt_names[opt_enum].short_opt,
man_long_opt_name(cmd->name, opt_enum)); man_long_opt_name(cmd->name, opt_enum));
} else { } else
_emit_long_opt_name(long_opt_name, opt_names[cmd->required_opt_args[ro].opt].long_opt, printf(" \\fB%s\\fP", opt_names[cmd->required_opt_args[ro].opt].long_opt);
sizeof(long_opt_name));
printf(" \\fB%s\\fP", long_opt_name);
}
if (cmd->required_opt_args[ro].def.val_bits) { if (cmd->required_opt_args[ro].def.val_bits) {
printf(" "); printf(" ");
@ -2543,7 +2514,7 @@ static void _print_man_usage(char *lvmname, struct command *cmd)
* in opt_names[] according to the command name. * in opt_names[] according to the command name.
*/ */
printf(".ad l\n"); printf(".ad l\n");
printf("[ \\fB\\-l\\fP|\\fB\\-\\-extents\\fP "); printf("[ \\fB-l\\fP|\\fB--extents\\fP ");
print_val_man(cname, extents_ARG, opt_names[extents_ARG].val_enum); print_val_man(cname, extents_ARG, opt_names[extents_ARG].val_enum);
printf(" ]\n"); printf(" ]\n");
printf(".ad b\n"); printf(".ad b\n");
@ -2568,7 +2539,7 @@ static void _print_man_usage(char *lvmname, struct command *cmd)
printf(".br\n"); printf(".br\n");
printf(".ad l\n"); printf(".ad l\n");
printf("[ \\fB\\-%c\\fP|\\fB%s\\fP", printf("[ \\fB-%c\\fP|\\fB%s\\fP",
opt_names[opt_enum].short_opt, opt_names[opt_enum].short_opt,
man_long_opt_name(cmd->name, opt_enum)); man_long_opt_name(cmd->name, opt_enum));
@ -2693,7 +2664,7 @@ static void _print_man_usage_common_lvm(struct command *cmd)
if (cmd->optional_opt_args[oo].opt != opt_enum) if (cmd->optional_opt_args[oo].opt != opt_enum)
continue; continue;
printf("[ \\fB\\-%c\\fP|\\fB%s\\fP", printf("[ \\fB-%c\\fP|\\fB%s\\fP",
opt_names[opt_enum].short_opt, opt_names[opt_enum].short_opt,
man_long_opt_name(cmd->name, opt_enum)); man_long_opt_name(cmd->name, opt_enum));
@ -2790,7 +2761,7 @@ static void _print_man_usage_common_cmd(struct command *cmd)
if (cmd->optional_opt_args[oo].opt != opt_enum) if (cmd->optional_opt_args[oo].opt != opt_enum)
continue; continue;
printf("[ \\fB\\-%c\\fP|\\fB%s\\fP", printf("[ \\fB-%c\\fP|\\fB%s\\fP",
opt_names[opt_enum].short_opt, opt_names[opt_enum].short_opt,
man_long_opt_name(cmd->name, opt_enum)); man_long_opt_name(cmd->name, opt_enum));
@ -2953,7 +2924,7 @@ static void _print_man_all_options_list(struct command_name *cname)
printf(".ad l\n"); printf(".ad l\n");
if (opt_names[opt_enum].short_opt) { if (opt_names[opt_enum].short_opt) {
printf(" \\fB\\-%c\\fP|\\fB%s\\fP", printf(" \\fB-%c\\fP|\\fB%s\\fP",
opt_names[opt_enum].short_opt, opt_names[opt_enum].short_opt,
man_long_opt_name(cname->name, opt_enum)); man_long_opt_name(cname->name, opt_enum));
} else { } else {
@ -3001,7 +2972,7 @@ static void _print_man_all_options_desc(struct command_name *cname)
printf(".ad l\n"); printf(".ad l\n");
if (opt_names[opt_enum].short_opt) { if (opt_names[opt_enum].short_opt) {
printf("\\fB\\-%c\\fP|\\fB%s\\fP", printf("\\fB-%c\\fP|\\fB%s\\fP",
opt_names[opt_enum].short_opt, opt_names[opt_enum].short_opt,
man_long_opt_name(cname->name, opt_enum)); man_long_opt_name(cname->name, opt_enum));
} else { } else {
@ -3104,7 +3075,7 @@ static void _print_man_all_positions_desc(struct command_name *cname)
if (!strcmp(cname->name, "lvcreate")) if (!strcmp(cname->name, "lvcreate"))
printf("For lvcreate, the required VG positional arg may be\n" printf("For lvcreate, the required VG positional arg may be\n"
"omitted when the VG name is included in another option,\n" "omitted when the VG name is included in another option,\n"
"e.g. \\-\\-name VG/LV.\n"); "e.g. --name VG/LV.\n");
} }
if (has_lv_val) { if (has_lv_val) {
@ -3132,7 +3103,7 @@ static void _print_man_all_positions_desc(struct command_name *cname)
"generally accepts a suffix indicating a range (or multiple ranges)\n" "generally accepts a suffix indicating a range (or multiple ranges)\n"
"of physical extents (PEs). When the first PE is omitted, it defaults\n" "of physical extents (PEs). When the first PE is omitted, it defaults\n"
"to the start of the device, and when the last PE is omitted it defaults to end.\n" "to the start of the device, and when the last PE is omitted it defaults to end.\n"
"Start and end range (inclusive): \\fIPV\\fP[\\fB:\\fP\\fIPE\\fP\\fB\\-\\fP\\fIPE\\fP]...\n" "Start and end range (inclusive): \\fIPV\\fP[\\fB:\\fP\\fIPE\\fP\\fB-\\fP\\fIPE\\fP]...\n"
"Start and length range (counting from 0): \\fIPV\\fP[\\fB:\\fP\\fIPE\\fP\\fB+\\fP\\fIPE\\fP]...\n"); "Start and length range (counting from 0): \\fIPV\\fP[\\fB:\\fP\\fIPE\\fP\\fB+\\fP\\fIPE\\fP]...\n");
} }
@ -3153,7 +3124,7 @@ static void _print_man_all_positions_desc(struct command_name *cname)
printf("\n"); printf("\n");
printf(".br\n"); printf(".br\n");
printf("Select indicates that a required positional parameter can\n" printf("Select indicates that a required positional parameter can\n"
"be omitted if the \\fB\\-\\-select\\fP option is used.\n" "be omitted if the \\fB--select\\fP option is used.\n"
"No arg appears in this position.\n"); "No arg appears in this position.\n");
} }
@ -3183,7 +3154,7 @@ static void _print_man_all_positions_desc(struct command_name *cname)
"b|B is bytes, s|S is sectors of 512 bytes, k|K is kilobytes,\n" "b|B is bytes, s|S is sectors of 512 bytes, k|K is kilobytes,\n"
"m|M is megabytes, g|G is gigabytes, t|T is terabytes,\n" "m|M is megabytes, g|G is gigabytes, t|T is terabytes,\n"
"p|P is petabytes, e|E is exabytes.\n" "p|P is petabytes, e|E is exabytes.\n"
"(This should not be confused with the output control \\-\\-units, where\n" "(This should not be confused with the output control --units, where\n"
"capital letters mean multiple of 1000.)\n"); "capital letters mean multiple of 1000.)\n");
printf(".SH ENVIRONMENT VARIABLES\n"); printf(".SH ENVIRONMENT VARIABLES\n");
@ -3311,7 +3282,7 @@ static void _print_man(char *name, char *des_file, int secondary)
if (!prev_cmd || strcmp(prev_cmd->name, cmd->name)) { if (!prev_cmd || strcmp(prev_cmd->name, cmd->name)) {
printf(".SH NAME\n"); printf(".SH NAME\n");
if (cname->desc) if (cname->desc)
printf("%s \\- %s\n", lvmname, cname->desc); printf("%s - %s\n", lvmname, cname->desc);
else else
printf("%s\n", lvmname); printf("%s\n", lvmname);