mirror of
git://sourceware.org/git/lvm2.git
synced 2024-12-22 17:35:59 +03:00
11d6f81316
Document more supported options. Cleanup man-style when documenting options. Use .PD 0 and .HP
802 lines
22 KiB
Groff
802 lines
22 KiB
Groff
.TH DMSETUP 8 "Apr 06 2006" "Linux" "MAINTENANCE COMMANDS"
|
|
.SH NAME
|
|
dmsetup \(em low level logical volume management
|
|
.SH SYNOPSIS
|
|
.ad l
|
|
.PD 0
|
|
.HP
|
|
.B dmsetup clear
|
|
.I device_name
|
|
.HP
|
|
.B dmsetup create
|
|
.I device_name
|
|
.RB [ \-\-addnodeoncreate | \-\-addnodeonresume ]
|
|
.RB [ \-\-readahead
|
|
.RB {[ + ] \fIsectors | auto | none }]
|
|
.RB [ \-u
|
|
.IR uuid ]
|
|
.RB [ \-n | \-\-notable | \-\-table
|
|
.RI { table | table_file }]
|
|
.HP
|
|
.B dmsetup deps
|
|
.RB [ \-o
|
|
.IR options ]
|
|
.RI [ device_name ]
|
|
.HP
|
|
.B dmsetup help
|
|
.RB [ \-c | \-C | \-\-columns ]
|
|
.HP
|
|
.B dmsetup info
|
|
.RI [ device_name ]
|
|
.HP
|
|
.B dmsetup info
|
|
.BR \-c | \-C | \-\-columns
|
|
.RB [ \-\-count
|
|
.IR count ]
|
|
.RB [ \-\-interval
|
|
.IR seconds ]
|
|
.RB [ \-\-nameprefixes ]
|
|
.RB [ \-\-noheadings ]
|
|
.RB [ \-o
|
|
.IR fields ]
|
|
.RB [ \-O | \-\-sort
|
|
.IR sort_fields ]
|
|
.RB [ \-S | \-\-select
|
|
.IR selection ]
|
|
.RB [ \-\-separator
|
|
.IR separator ]
|
|
.RI [ device_name ]
|
|
.HP
|
|
.B dmsetup load
|
|
.I device_name
|
|
.RB [ \-\-table
|
|
.RI { table | table_file }]
|
|
.HP
|
|
.B dmsetup ls
|
|
.RB [ \-\-target
|
|
.IR target_type ]
|
|
.RB [ \-\-exec
|
|
.IR command ]
|
|
.RB [ \-\-tree ]
|
|
.RB [ \-o
|
|
.IR options ]
|
|
.HP
|
|
.B dmsetup message
|
|
.I device_name sector message
|
|
.HP
|
|
.B dmsetup mknodes
|
|
.RI [ device_name ]
|
|
.HP
|
|
.B dmsetup mangle
|
|
.RI [ device_name ]
|
|
.HP
|
|
.B dmsetup reload
|
|
.I device_name
|
|
.RB [ \-\-table
|
|
.RI { table | table_file }]
|
|
.HP
|
|
.B dmsetup remove
|
|
.RB [ \-f | \-\-force ]
|
|
.RB [ \-\-retry ]
|
|
.RB [ \-\-deferred ]
|
|
.I device_name
|
|
.HP
|
|
.B dmsetup remove_all
|
|
.RB [ \-f | \-\-force ]
|
|
.RB [ \-\-deferred ]
|
|
.HP
|
|
.B dmsetup rename
|
|
.I device_name new_name
|
|
.HP
|
|
.B dmsetup rename
|
|
.I device_name
|
|
.B \-\-setuuid
|
|
.I uuid
|
|
.HP
|
|
.B dmsetup resume
|
|
.I device_name
|
|
.RB [ \-\-addnodeoncreate | \-\-addnodeonresume ]
|
|
.RB [ \-\-readahead
|
|
.RB {[ + ] \fIsectors | auto | none }]
|
|
.HP
|
|
.B dmsetup setgeometry
|
|
.I device_name cyl head sect start
|
|
.HP
|
|
.B dmsetup splitname
|
|
.I device_name
|
|
.RI [ subsystem ]
|
|
.HP
|
|
.B dmsetup stats
|
|
.I command
|
|
.RI [ options ]
|
|
.HP
|
|
.B dmsetup status
|
|
.RB [ \-\-target
|
|
.IR target_type ]
|
|
.RB [ \-\-noflush ]
|
|
.RI [ device_name ]
|
|
.HP
|
|
.B dmsetup suspend
|
|
.RB [ \-\-nolockfs ]
|
|
.RB [ \-\-noflush ]
|
|
.I device_name
|
|
.HP
|
|
.B dmsetup table
|
|
.RB [ \-\-target
|
|
.IR target_type ]
|
|
.RB [ \-\-showkeys ]
|
|
.RI [ device_name ]
|
|
.HP
|
|
.B dmsetup targets
|
|
.HP
|
|
.B dmsetup udevcomplete
|
|
.I cookie
|
|
.HP
|
|
.B dmsetup udevcomplete_all
|
|
.RI [ age_in_minutes ]
|
|
.HP
|
|
.B dmsetup udevcookies
|
|
.HP
|
|
.B dmsetup udevcreatecookie
|
|
.HP
|
|
.B dmsetup udevflags
|
|
.I cookie
|
|
.HP
|
|
.B dmsetup udevreleasecookie
|
|
.RI [ cookie ]
|
|
.HP
|
|
.B dmsetup version
|
|
.HP
|
|
.B dmsetup wait
|
|
.RB [ \-\-noflush ]
|
|
.I device_name
|
|
.RI [ event_nr ]
|
|
.HP
|
|
.B dmsetup wipe_table
|
|
.I device_name
|
|
.RB [ \-f | \-\-force ]
|
|
.RB [ \-\-noflush ]
|
|
.RB [ \-\-nolockfs ]
|
|
.HP
|
|
.B devmap_name
|
|
.I major minor
|
|
.HP
|
|
.B devmap_name
|
|
.I major:minor
|
|
.ad b
|
|
.PD
|
|
.SH DESCRIPTION
|
|
dmsetup manages logical devices that use the device-mapper driver.
|
|
Devices are created by loading a table that specifies a target for
|
|
each sector (512 bytes) in the logical device.
|
|
|
|
The first argument to dmsetup is a command.
|
|
The second argument is the logical device name or uuid.
|
|
|
|
Invoking the command as \fBdevmap_name\fP is equivalent to
|
|
.br
|
|
\fBdmsetup info \-c \-\-noheadings \-j \fImajor\fB \-m \fIminor\fP.
|
|
.SH OPTIONS
|
|
.TP
|
|
.B \-\-addnodeoncreate
|
|
Ensure /dev/mapper node exists after dmsetup create.
|
|
.TP
|
|
.B \-\-addnodeonresume
|
|
Ensure /dev/mapper node exists after dmsetup resume (default with udev).
|
|
.TP
|
|
.B \-\-checks
|
|
Perform additional checks on the operations requested and report
|
|
potential problems. Useful when debugging scripts.
|
|
In some cases these checks may slow down operations noticeably.
|
|
.TP
|
|
.BR \-c | \-C | \-\-columns
|
|
Display output in columns rather than as Field: Value lines.
|
|
.TP
|
|
.B \-\-count \fIcount
|
|
Specify the number of times to repeat a report. Set this to zero
|
|
continue until interrupted. The default interval is one second.
|
|
.TP
|
|
.BR \-f | \-\-force
|
|
Try harder to complete operation.
|
|
.TP
|
|
.BR \-h | \-\-help
|
|
Outputs a summary of the commands available, optionally including
|
|
the list of report fields (synonym with \fBhelp\fP command).
|
|
.TP
|
|
.B \-\-inactive
|
|
When returning any table information from the kernel report on the
|
|
inactive table instead of the live table.
|
|
Requires kernel driver version 4.16.0 or above.
|
|
.TP
|
|
.B \-\-interval \fIseconds
|
|
Specify the interval in seconds between successive iterations for
|
|
repeating reports. If \fB\-\-interval\fP is specified but \fB\-\-count\fP
|
|
is not, reports will continue to repeat until interrupted.
|
|
The default interval is one second.
|
|
.TP
|
|
.BR \-\-manglename \ { none | hex | auto }
|
|
Mangle any character not on a whitelist using mangling_mode when
|
|
processing device-mapper device names and UUIDs. The names and UUIDs
|
|
are mangled on input and unmangled on output where the mangling mode
|
|
is one of:
|
|
\fBnone\fP (no mangling),
|
|
\fBhex\fP (always do the mangling) and
|
|
\fBauto\fP (only do the mangling if not mangled yet, do nothing
|
|
if already mangled, error on mixed)
|
|
Default mode is \fB#DEFAULT_MANGLING#\fP.
|
|
Character whitelist: 0-9, A-Z, a-z, #+-.:=@_. This whitelist is
|
|
also supported by udev. Any character not on a whitelist is replaced
|
|
with its hex value (two digits) prefixed by \\x.
|
|
Mangling mode could be also set through
|
|
.B DM_DEFAULT_NAME_MANGLING_MODE
|
|
environment variable.
|
|
.TP
|
|
.BR \-j | \-\-major\ \fImajor
|
|
Specify the major number.
|
|
.TP
|
|
.BR \-m | \-\-minor\ \fIminor
|
|
Specify the minor number.
|
|
.TP
|
|
.BR \-n | \-\-notable
|
|
When creating a device, don't load any table.
|
|
.TP
|
|
.BR \-\-nameprefixes
|
|
Add a "DM_" prefix plus the field name to the output. Useful with
|
|
\fB\-\-noheadings\fP to produce a list of
|
|
field=value pairs that can be used to set environment variables
|
|
(for example, in
|
|
.BR udev (7)
|
|
rules).
|
|
.TP
|
|
.BR \-\-noheadings
|
|
Suppress the headings line when using columnar output.
|
|
.TP
|
|
.B \-\-noflush
|
|
Do not flush outstading I/O when suspending a device, or do not
|
|
commit thin-pool metadata when obtaining thin-pool status.
|
|
.TP
|
|
.B \-\-nolockfs
|
|
Do not attempt to synchronize filesystem eg, when suspending a device.
|
|
.TP
|
|
.B \-\-noopencount
|
|
Tell the kernel not to supply the open reference count for the device.
|
|
.TP
|
|
.B \-\-noudevrules
|
|
Do not allow udev to manage nodes for devices in device-mapper directory.
|
|
.TP
|
|
.B \-\-noudevsync
|
|
Do not synchronise with udev when creating, renaming or removing devices.
|
|
.TP
|
|
.BR \-o | \-\-options
|
|
Specify which fields to display.
|
|
.TP
|
|
.BR \-\-readahead \ {[ + ] \fIsectors | auto | none }
|
|
Specify read ahead size in units of sectors.
|
|
The default value is \fBauto\fP which allows the kernel to choose
|
|
a suitable value automatically. The \fB+\fP prefix lets you
|
|
specify a minimum value which will not be used if it is
|
|
smaller than the value chosen by the kernel.
|
|
The value \fBnone\fP is equivalent to specifying zero.
|
|
.TP
|
|
.BR \-r | \-\-readonly
|
|
Set the table being loaded read-only.
|
|
.TP
|
|
.BR \-S | \-\-select \ \fIselection
|
|
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
|
|
matches the \fIselection\fP and 0 otherwise. The selection criteria are defined
|
|
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
|
|
column names that can be used in selection and the set of supported
|
|
selection operators, check the output of \fBdmsetup info -c -S help\fP
|
|
command.
|
|
.TP
|
|
.IR \fB\-\-table \ table
|
|
Specify a one-line table directly on the command line.
|
|
See below for more information on the table format.
|
|
.TP
|
|
.B \-\-udevcookie \fIcookie
|
|
Use cookie for udev synchronisation.
|
|
Note: Same cookie should be used for same type of operations i.e. creation of
|
|
multiple different devices. It's not adviced to combine different
|
|
operations on the single device.
|
|
.TP
|
|
.BR \-u | \-\-uuid
|
|
Specify the \fIuuid\fP.
|
|
.TP
|
|
.BR \-y | \-\-yes
|
|
Answer yes to all prompts automatically.
|
|
.TP
|
|
.BR \-v | \-\-verbose \ [ \-v | \-\-verbose ]
|
|
Produce additional output.
|
|
.TP
|
|
.B \-\-verifyudev
|
|
If udev synchronisation is enabled, verify that udev operations get performed
|
|
correctly and try to fix up the device nodes afterwards if not.
|
|
.TP
|
|
.B \-\-version
|
|
Display the library and kernel driver version.
|
|
.br
|
|
.SH COMMANDS
|
|
.HP
|
|
.B clear
|
|
.I device_name
|
|
.br
|
|
Destroys the table in the inactive table slot for device_name.
|
|
.HP
|
|
.B create
|
|
.I device_name
|
|
.RB [ \-u
|
|
.IR uuid ]
|
|
.RB [ \-\-addnodeoncreate | \-\-addnodeonresume ]
|
|
.RB [ \-n | \-\-notable | \-\-table
|
|
.RI { table | table_file }]
|
|
.RB [ \-\-readahead
|
|
.RB {[ + ] \fIsectors | auto | none }]
|
|
.br
|
|
Creates a device with the given name.
|
|
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.
|
|
The optional \fIuuid\fP can be used in place of
|
|
device_name in subsequent dmsetup commands.
|
|
If successful the device will appear in table and for live
|
|
device the node /dev/mapper/\fIdevice_name\fP is created.
|
|
See below for more information on the table format.
|
|
.HP
|
|
.B deps
|
|
.RB [ \-o
|
|
.IR options ]
|
|
.RI [ device_name ]
|
|
.br
|
|
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:
|
|
\fBdevno\fP (major and minor pair, used by default),
|
|
\fBblkdevname\fP (block device name),
|
|
\fBdevname\fP (map name for device-mapper devices, equal to blkdevname otherwise).
|
|
.HP
|
|
.B help
|
|
.RB [ \-c | \-C | \-\-columns ]
|
|
.br
|
|
Outputs a summary of the commands available, optionally including
|
|
the list of report fields.
|
|
.HP
|
|
.B info
|
|
.RI [ device_name ]
|
|
.br
|
|
Outputs some brief information about the device in the form:
|
|
.RS
|
|
.RS
|
|
State: SUSPENDED|ACTIVE, READ-ONLY
|
|
Tables present: LIVE and/or INACTIVE
|
|
Open reference count
|
|
Last event sequence number (used by \fBwait\fP)
|
|
Major and minor device number
|
|
Number of targets in the live table
|
|
UUID
|
|
.RE
|
|
.RE
|
|
.HP
|
|
.B info
|
|
.BR \-c | \-C | \-\-columns
|
|
.RB [ \-\-count
|
|
.IR count ]
|
|
.RB [ \-\-interval
|
|
.IR seconds ]
|
|
.RB [ \-\-nameprefixes ]
|
|
.RB [ \-\-noheadings ]
|
|
.RB [ \-o
|
|
.IR fields ]
|
|
.RB [ \-O | \-\-sort
|
|
.IR sort_fields ]
|
|
.RB [ \-\-separator
|
|
.IR separator ]
|
|
.RI [ device_name ]
|
|
.br
|
|
Output you can customise.
|
|
Fields are comma-separated and chosen from the following list:
|
|
name, major, minor, attr, open, segments, events, uuid.
|
|
Attributes are: (L)ive, (I)nactive, (s)uspended, (r)ead-only, read-(w)rite.
|
|
Precede the list with '\fB+\fP' to append
|
|
to the default selection of columns instead of replacing it.
|
|
Precede any sort_field with '\fB-\fP' for a reverse sort on that column.
|
|
.HP
|
|
.B ls
|
|
.RB [ \-\-target
|
|
.IR target_type ]
|
|
.RB [ \-\-exec
|
|
.IR command ]
|
|
.RB [ \-\-tree ]
|
|
.RB [ \-o
|
|
.IR options ]
|
|
.br
|
|
List device names. Optionally only list devices that have at least
|
|
one target of the specified type. Optionally execute a command for
|
|
each device. The device name is appended to the supplied command.
|
|
Device names on output can be customised by following options: devno (major
|
|
and minor pair, used by default), blkdevname (block device name),
|
|
devname (map name for device-mapper devices, equal to blkdevname otherwise).
|
|
\fB\-\-tree\fP displays dependencies between devices as a tree.
|
|
It accepts a comma-separate list of \fIoptions\fP.
|
|
Some specify the information displayed against each node:
|
|
.BR device / nodevice ;
|
|
.BR blkdevname ;
|
|
.BR active ", " open ", " rw ", " uuid .
|
|
Others specify how the tree is displayed:
|
|
.BR ascii ", " utf ", " vt100 ;
|
|
.BR compact ", " inverted ", " notrunc .
|
|
.HP
|
|
.BR load | reload
|
|
.I device_name
|
|
.RB [ \-\-table
|
|
.RI { table | table_file }]
|
|
.br
|
|
Loads \fItable\fP or \fItable_file\fP into the inactive table slot for device_name.
|
|
If neither is supplied, reads a table from standard input.
|
|
.HP
|
|
.B mangle
|
|
.RI [ device_name ]
|
|
.br
|
|
Ensure existing device-mapper \fIdevice_name\fP and UUID is in the correct mangled
|
|
form containing only whitelisted characters (supported by udev) and do
|
|
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
|
|
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
|
|
must be manually corrected by deactivating the device first and then
|
|
reactivating it with proper mangling mode used (see also \fB\-\-manglename\fP).
|
|
.HP
|
|
.B message
|
|
.I device_name sector message
|
|
.br
|
|
Send message to target. If sector not needed use 0.
|
|
.HP
|
|
.B mknodes
|
|
.RI [ device_name ]
|
|
.br
|
|
Ensure that the node in /dev/mapper for device_name is correct.
|
|
If no device_name is supplied, ensure that all nodes in /dev/mapper
|
|
correspond to mapped devices currently loaded by the device-mapper kernel
|
|
driver, adding, changing or removing nodes as necessary.
|
|
.HP
|
|
.B remove
|
|
.RB [ \-f | \-\-force ]
|
|
.RB [ \-\-retry ]
|
|
.RB [ \-\-deferred ]
|
|
.I device_name
|
|
.br
|
|
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
|
|
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
|
|
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
|
|
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
|
|
option will cause the operation to be retried for a few seconds before failing.
|
|
Do NOT combine
|
|
\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
|
|
result.
|
|
.HP
|
|
.B remove_all
|
|
.RB [ \-f | \-\-force ]
|
|
.RB [ \-\-deferred ]
|
|
.br
|
|
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
|
|
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
|
|
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
|
|
upstream kernel version 3.13.
|
|
.HP
|
|
.B rename
|
|
.I device_name new_name
|
|
.br
|
|
Renames a device.
|
|
.HP
|
|
.B rename
|
|
.I device_name
|
|
.B \-\-setuuid
|
|
.I uuid
|
|
.br
|
|
Sets the uuid of a device that was created without a uuid.
|
|
After a uuid has been set it cannot be changed.
|
|
.HP
|
|
.B resume
|
|
.I device_name
|
|
.RB [ \-\-addnodeoncreate | \-\-addnodeonresume ]
|
|
.RB [ \-\-nolockfs ]
|
|
.RB [ \-\-noflush ]
|
|
.RB [ \-\-readahead
|
|
.RB {[ + ] \fIsectors | auto | none }]
|
|
.br
|
|
Un-suspends a device.
|
|
If an inactive table has been loaded, it becomes live.
|
|
Postponed I/O then gets re-queued for processing.
|
|
.HP
|
|
.B setgeometry
|
|
.I device_name cyl head sect start
|
|
.br
|
|
Sets the device geometry to C/H/S.
|
|
.HP
|
|
.B splitname
|
|
.I device_name
|
|
.RI [ subsystem ]
|
|
.br
|
|
Splits given device name into subsystem constituents.
|
|
The default subsystem is LVM.
|
|
LVM currently generates device names by concatenating the names of the Volume
|
|
Group, Logical Volume and any internal Layer with a hyphen as separator.
|
|
Any hyphens within the names are doubled to escape them.
|
|
The precise encoding might change without notice in any future
|
|
release, so we recommend you always decode using the current version of
|
|
this command.
|
|
.HP
|
|
.B stats
|
|
.I command
|
|
.RI [ options ]
|
|
.br
|
|
Manages IO statistics regions for devices.
|
|
See
|
|
.BR dmstats (8)
|
|
for more details.
|
|
.HP
|
|
.B status
|
|
.RB [ \-\-target
|
|
.IR target_type ]
|
|
.RB [ \-\-noflush ]
|
|
.RI [ device_name ]
|
|
.br
|
|
Outputs status information for each of the device's targets.
|
|
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)
|
|
doesn't commit any outstanding changes to disk before reporting its statistics.
|
|
.HP
|
|
.B suspend
|
|
.RB [ \-\-nolockfs ]
|
|
.RB [ \-\-noflush ]
|
|
.I device_name
|
|
.br
|
|
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
|
|
device will be postponed for as long as the device is suspended.
|
|
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.
|
|
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
|
|
device to remain unflushed.
|
|
.HP
|
|
.B table
|
|
.RB [ \-\-target
|
|
.IR target_type ]
|
|
.RB [ \-\-showkeys ]
|
|
.RI [ device_name ]
|
|
.br
|
|
Outputs the current table for the device in a format that can be fed
|
|
back in using the create or load commands.
|
|
With \fB\-\-target\fP, only information relating to the specified target type
|
|
is displayed.
|
|
Encryption keys are suppressed in the table output for the crypt
|
|
target unless the \fB\-\-showkeys\fP parameter is supplied.
|
|
.HP
|
|
.B targets
|
|
.br
|
|
Displays the names and versions of the currently-loaded targets.
|
|
.HP
|
|
.B udevcomplete
|
|
.I cookie
|
|
.br
|
|
Wake any processes that are waiting for udev to complete processing the specified cookie.
|
|
.HP
|
|
.B udevcomplete_all
|
|
.RI [ age_in_minutes ]
|
|
.br
|
|
Remove all cookies older than the specified number of minutes.
|
|
Any process waiting on a cookie will be resumed immediately.
|
|
.HP
|
|
.B udevcookies
|
|
.br
|
|
List all existing cookies. Cookies are system-wide semaphores with keys
|
|
prefixed by two predefined bytes (0x0D4D).
|
|
.HP
|
|
.B udevcreatecookie
|
|
.br
|
|
Creates a new cookie to synchronize actions with udev processing.
|
|
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
|
|
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
|
|
\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
|
|
with all subsequent commands until it is unset.
|
|
Invoking this command will create system-wide semaphore that needs to be cleaned
|
|
up explicitly by calling udevreleasecookie command.
|
|
.HP
|
|
.B udevflags
|
|
.I cookie
|
|
.br
|
|
Parses given cookie value and extracts any udev control flags encoded.
|
|
The output is in environment key format that is suitable for use in udev
|
|
rules. If the flag has its symbolic name assigned then the output is
|
|
DM_UDEV_FLAG_<flag_name>='1', DM_UDEV_FLAG<flag_position>='1' otherwise.
|
|
Subsystem udev flags don't have symbolic names assigned and these ones are
|
|
always reported as DM_SUBSYSTEM_UDEV_FLAG<flag_position>='1'. There are
|
|
16 udev flags altogether.
|
|
.HP
|
|
.B udevreleasecookie
|
|
.RI [ cookie ]
|
|
.br
|
|
Waits for all pending udev processing bound to given cookie value and clean up
|
|
the cookie with underlying semaphore. If the cookie is not given directly,
|
|
the command will try to use a value defined by \fBDM_UDEV_COOKIE\fP environment variable.
|
|
.HP
|
|
.B version
|
|
.br
|
|
Outputs version information.
|
|
.HP
|
|
.B wait
|
|
.RB [ \-\-noflush ]
|
|
.I device_name
|
|
.RI [ event_nr ]
|
|
.br
|
|
Sleeps until the event counter for device_name exceeds event_nr.
|
|
Use \fB\-v\fP to see the event number returned.
|
|
To wait until the next event is triggered, use \fBinfo\fP to find
|
|
the last event number.
|
|
With \fB\-\-noflush\fP, the thin target (from version 1.3.0) doesn't commit
|
|
any outstanding changes to disk before reporting its statistics.
|
|
.HP
|
|
.B wipe_table
|
|
.I device_name
|
|
.RB [ \-f | \-\-force ]
|
|
.RB [ \-\-noflush ]
|
|
.RB [ \-\-nolockfs ]
|
|
.br
|
|
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
|
|
sent to the device. If successful, this should release any devices
|
|
held open by the device's table(s).
|
|
.SH TABLE FORMAT
|
|
Each line of the table specifies a single target and is of the form:
|
|
.P
|
|
.I logical_start_sector num_sectors
|
|
.B target_type
|
|
.I target_args
|
|
.P
|
|
Simple target types and \fItarget_args\fP include:
|
|
.HP
|
|
.PD 0
|
|
.B linear
|
|
.I destination_device
|
|
.I start_sector
|
|
.br
|
|
The traditional linear mapping.
|
|
.HP
|
|
.B striped
|
|
.I num_stripes
|
|
.I chunk_size
|
|
.RI [ destination
|
|
.IR start_sector ]...
|
|
.br
|
|
Creates a striped area.
|
|
.br
|
|
e.g. striped 2 32 /dev/hda1 0 /dev/hdb1 0
|
|
will map the first chunk (16k) as follows:
|
|
.RS
|
|
.RS
|
|
LV chunk 1 -> hda1, chunk 1
|
|
LV chunk 2 -> hdb1, chunk 1
|
|
LV chunk 3 -> hda1, chunk 2
|
|
LV chunk 4 -> hdb1, chunk 2
|
|
etc.
|
|
.RE
|
|
.RE
|
|
.HP
|
|
.B error
|
|
.br
|
|
Errors any I/O that goes to this area. Useful for testing or
|
|
for creating devices with holes in them.
|
|
.HP
|
|
.B zero
|
|
.br
|
|
Returns blocks of zeroes on reads. Any data written is discarded silently.
|
|
This is a block-device equivalent of the /dev/zero character-device data sink
|
|
described in \fBnull\fP(4).
|
|
.PD
|
|
.HP
|
|
More complex targets include:
|
|
.HP
|
|
.PD 0
|
|
.B cache
|
|
.br
|
|
Improves performance of a block device (eg, a spindle) by dynamically
|
|
migrating some of its data to a faster smaller device (eg, an SSD).
|
|
.HP
|
|
.B crypt
|
|
.br
|
|
Transparent encryption of block devices using the kernel crypto API.
|
|
.HP
|
|
.B delay
|
|
.br
|
|
Delays reads and/or writes to different devices. Useful for testing.
|
|
.HP
|
|
.B flakey
|
|
.br
|
|
Creates a similar mapping to the linear target but
|
|
exhibits unreliable behaviour periodically.
|
|
Useful for simulating failing devices when testing.
|
|
.HP
|
|
.B mirror
|
|
.br
|
|
Mirrors data across two or more devices.
|
|
.HP
|
|
.B multipath
|
|
.br
|
|
Mediates access through multiple paths to the same device.
|
|
.HP
|
|
.B raid
|
|
.br
|
|
Offers an interface to the kernel's software raid driver, md.
|
|
.HP
|
|
.B snapshot
|
|
.br
|
|
Supports snapshots of devices.
|
|
.HP
|
|
.BR thin ,\ thin-pool
|
|
.br
|
|
Supports thin provisioning of devices and also provides a better snapshot support.
|
|
.PD
|
|
.P
|
|
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
|
|
the kernel source tree.
|
|
(Your distribution might include a copy of this information in the
|
|
documentation directory for the device-mapper package.)
|
|
|
|
.SH EXAMPLES
|
|
|
|
# A table to join two disks together
|
|
.br
|
|
.br
|
|
0 1028160 linear /dev/hda 0
|
|
.br
|
|
1028160 3903762 linear /dev/hdb 0
|
|
|
|
|
|
# A table to stripe across the two disks,
|
|
.br
|
|
# and add the spare space from
|
|
.br
|
|
# hdb to the back of the volume
|
|
|
|
0 2056320 striped 2 32 /dev/hda 0 /dev/hdb 0
|
|
.br
|
|
2056320 2875602 linear /dev/hdb 1028160
|
|
|
|
.SH ENVIRONMENT VARIABLES
|
|
.TP
|
|
.B DM_DEV_DIR
|
|
The device directory name.
|
|
Defaults to "/dev" and must be an absolute path.
|
|
.TP
|
|
.B DM_UDEV_COOKIE
|
|
A cookie to use for all relevant commands to synchronize with udev processing.
|
|
It is an alternative to using \fB\-\-udevcookie\fP option.
|
|
.TP
|
|
.B DM_DEFAULT_NAME_MANGLING_MODE
|
|
A default mangling mode. Defaults to "\fB#DEFAULT_MANGLING#\fP"
|
|
and it is an alternative to using \fB\-\-manglename\fP option.
|
|
|
|
.SH AUTHORS
|
|
Original version: Joe Thornber (thornber@redhat.com)
|
|
|
|
.SH SEE ALSO
|
|
.BR dmstats (8),
|
|
.BR udev (7),
|
|
.BR udevadm (8)
|
|
|
|
LVM2 resource page https://www.sourceware.org/lvm2/
|
|
.br
|
|
Device-mapper resource page: http://sources.redhat.com/dm/
|