2007-12-28 18:13:38 +03:00
.TH DMSETUP 8 "Apr 06 2006" "Linux" "MAINTENANCE COMMANDS"
2001-12-13 16:46:21 +03:00
.SH NAME
dmsetup \- low level logical volume management
.SH SYNOPSIS
.ad l
2007-01-29 22:35:24 +03:00
.B dmsetup help
.I [-c|-C|--columns]
.br
2003-09-17 17:23:49 +04:00
.B dmsetup create
2006-08-10 18:11:03 +04:00
.I device_name [-u uuid] [--notable | --table <table> | table_file]
2001-12-13 16:46:21 +03:00
.br
.B dmsetup remove
2006-06-18 15:35:04 +04:00
.I [-f|--force] device_name
2001-12-13 16:46:21 +03:00
.br
2004-02-27 22:36:49 +03:00
.B dmsetup remove_all
2006-06-18 15:35:04 +04:00
.I [-f|--force]
2002-06-27 01:50:53 +04:00
.br
2001-12-13 16:46:21 +03:00
.B dmsetup suspend
2006-10-12 19:42:25 +04:00
.I [--nolockfs] [--noflush] device_name
2001-12-13 16:46:21 +03:00
.br
.B dmsetup resume
2001-12-14 16:30:04 +03:00
.I device_name
2001-12-13 16:46:21 +03:00
.br
2004-02-27 22:36:49 +03:00
.B dmsetup load
2006-08-10 18:11:03 +04:00
.I device_name [--table <table> | table_file]
2004-02-27 22:36:49 +03:00
.br
.B dmsetup clear
.I device_name
.br
2001-12-13 16:46:21 +03:00
.B dmsetup reload
2006-08-10 18:11:03 +04:00
.I device_name [--table <table> | table_file]
2001-12-13 16:46:21 +03:00
.br
2003-09-17 17:23:49 +04:00
.B dmsetup rename
.I device_name new_name
.br
2006-11-23 23:34:16 +03:00
.B dmsetup message
.I device_name sector message
.br
2007-01-29 22:35:24 +03:00
.B dmsetup ls
.I [--target target_type] [--exec command] [--tree [-o options]]
2003-09-17 17:23:49 +04:00
.br
2005-03-29 18:46:30 +04:00
.B dmsetup info
.I [device_name]
.br
2007-01-29 22:35:24 +03:00
.B dmsetup info -c|-C|--columns
.I [--noheadings] [--separator separator] [-o fields] [-O|--sort sort_fields]
2003-09-17 17:23:49 +04:00
.I [device_name]
2002-06-27 01:50:53 +04:00
.br
.B dmsetup deps
2003-09-17 17:23:49 +04:00
.I [device_name]
2002-06-27 01:50:53 +04:00
.br
2007-01-29 22:35:24 +03:00
.B dmsetup status
.I [--target target_type]
2003-09-17 17:23:49 +04:00
.I [device_name]
2002-06-27 01:50:53 +04:00
.br
2007-01-29 22:35:24 +03:00
.B dmsetup table
.I [--target target_type]
2003-09-17 17:23:49 +04:00
.I [device_name]
2002-06-27 01:50:53 +04:00
.br
.B dmsetup wait
.I device_name
2004-02-27 22:36:49 +03:00
.I [event_nr]
2002-06-27 01:50:53 +04:00
.br
2004-02-27 22:36:49 +03:00
.B dmsetup mknodes
.I [device_name]
.br
.B dmsetup targets
2002-06-27 01:50:53 +04:00
.br
.B dmsetup version
2005-03-29 18:46:30 +04:00
.br
2006-11-23 23:34:16 +03:00
.B dmsetup setgeometry
.I device_name cyl head sect start
.br
2005-03-29 18:46:30 +04:00
.B devmap_name
.I major minor
.br
.B devmap_name
.I major:minor
2001-12-13 16:46:21 +03:00
.ad b
.SH DESCRIPTION
2001-12-14 16:30:04 +03:00
dmsetup manages logical devices that use the device-mapper driver.
Devices are created by loading a table that specifies a target for
2004-01-23 17:08:09 +03:00
each sector (512 bytes) in the logical device.
2001-12-13 16:46:21 +03:00
2001-12-14 16:30:04 +03:00
The first argument to dmsetup is a command.
2002-06-27 01:50:53 +04:00
The second argument is the logical device name or uuid.
2005-03-29 18:46:30 +04:00
Invoking the command as \fB devmap_name\fP is equivalent to
.br
\fB dmsetup info -c --noheadings -j \fI major\fB -m \fI minor\fP .
2003-09-17 17:23:49 +04:00
.SH OPTIONS
2005-03-29 18:46:30 +04:00
.IP \fB -c|-C|--columns
.br
Display output in columns rather than as Field: Value lines.
2003-09-17 17:23:49 +04:00
.IP \fB -j|--major\ \fI major
.br
2005-03-29 18:46:30 +04:00
Specify the major number.
.IP \fB -m|--minor\ \fI minor
.br
Specify the minor number.
.IP \fB -n|--noheadings
.br
Suppress the headings line when using columnar output.
.IP \fB --noopencount
2003-09-17 17:23:49 +04:00
.br
2005-03-29 18:46:30 +04:00
Tell the kernel not to supply the open reference count for the device.
.IP \fB --notable
.br
When creating a device, don't load any table.
.IP \fB -o|--options
.br
2007-01-29 22:35:24 +03:00
Specify which fields to display.
2003-09-17 17:23:49 +04:00
.IP \fB -r|--readonly
.br
Set the table being loaded read-only.
2007-11-29 17:44:28 +03:00
.IP \fB --readahead\ [+]<sectors>|auto|none
2007-11-27 23:57:05 +03:00
.br
Specify read ahead size in units of sectors.
2007-11-29 17:44:28 +03:00
The default value is "auto" which allows the kernel to choose
a suitable value automatically. The + prefix lets you
specify a minimum value which will not be used if it is
smaller than the value chosen by the kernel.
"None" is equivalent to specifying zero.
2006-08-10 18:11:03 +04:00
.IP \fB --table\ <table>
.br
Specify a one-line table directly on the command line.
2005-03-29 18:46:30 +04:00
.IP \fB -u|--uuid
.br
Specify the uuid.
2006-06-18 15:35:04 +04:00
.IP \fB -v|--verbose\ [-v|--verbose]
2003-09-17 17:23:49 +04:00
.br
Produce additional output.
.IP \fB --version
.br
Display the library and kernel driver version.
2001-12-14 16:30:04 +03:00
.SH COMMANDS
2001-12-13 16:46:21 +03:00
.IP \fB create
2006-08-10 18:11:03 +04:00
.I device_name [-u uuid] [--notable | --table <table> | table_file]
2001-12-13 16:46:21 +03:00
.br
2003-09-17 17:23:49 +04:00
Creates a device with the given name.
2006-08-10 18:11:03 +04:00
If table_file or <table> is supplied, the table is loaded and made live.
2003-11-17 17:24:22 +03:00
Otherwise a table is read from standard input unless --notable is used.
2002-06-27 01:50:53 +04:00
The optional uuid can be used in place of
2003-11-17 17:24:22 +03:00
device_name in subsequent dmsetup commands.
If successful a device will appear as
/dev/device-mapper/<device-name>.
See below for information on the table format.
2003-09-17 17:23:49 +04:00
.IP \fB deps
2004-02-27 22:36:49 +03:00
.I [device_name]
2001-12-13 16:46:21 +03:00
.br
2003-09-17 17:23:49 +04:00
Outputs a list of (major, minor) pairs for devices referenced by the
live table for the specified device.
2007-01-29 22:35:24 +03:00
.IP \fB help
.I [-c|-C|--columns]
.br
Outputs a summary of the commands available, optionally including
the list of report fields.
2003-09-17 17:23:49 +04:00
.IP \fB info
2004-02-27 22:36:49 +03:00
.I [device_name]
2001-12-13 16:46:21 +03:00
.br
2003-09-17 17:23:49 +04:00
Outputs some brief information about the device in the form:
2001-12-13 16:46:21 +03:00
.br
2003-09-17 17:23:49 +04:00
State: SUSPENDED|ACTIVE, READ-ONLY
2001-12-13 16:46:21 +03:00
.br
2003-09-17 17:23:49 +04:00
Tables present: LIVE and/or INACTIVE
2001-12-13 16:46:21 +03:00
.br
2003-09-17 17:23:49 +04:00
Open reference count
2001-12-13 16:46:21 +03:00
.br
2003-09-17 17:23:49 +04:00
Last event sequence number (used by \fB wait\fP )
2001-12-13 16:46:21 +03:00
.br
2003-09-17 17:23:49 +04:00
Major and minor device number
2001-12-13 16:46:21 +03:00
.br
2003-09-17 17:23:49 +04:00
Number of targets in the live table
2003-11-17 17:24:22 +03:00
.br
UUID
2007-01-29 22:35:24 +03:00
.IP \fB info -c|-C|--columns
.I [--noheadings] [--separator separator] [-o fields] [-O|--sort sort_fields]
.I [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 '+' to append
to the default selection of columns instead of replacing it.
Precede any sort_field with - for a reverse sort on that column.
2003-09-17 17:23:49 +04:00
.IP \fB ls
2005-05-16 20:04:34 +04:00
.I [--target target_type]
2005-05-17 00:46:46 +04:00
.I [--exec command]
2006-04-06 20:20:40 +04:00
.I [--tree [-o options]]
2001-12-13 16:46:21 +03:00
.br
2005-05-16 20:04:34 +04:00
List device names. Optionally only list devices that have at least
2005-05-17 00:46:46 +04:00
one target of the specified type. Optionally execute a command for
each device. The device name is appended to the supplied command.
2006-04-06 20:20:40 +04:00
--tree displays dependencies between devices as a tree.
It accepts a comma-separate list of options.
Some specify the information displayed against each node:
device/nodevice; active, open, rw, uuid.
Others specify how the tree is displayed:
ascii, utf, vt100; compact, inverted, notrunc.
2003-09-17 17:23:49 +04:00
.IP \fB load|reload
2006-08-10 18:11:03 +04:00
.I device_name [--table <table> | table_file]
2003-09-17 17:23:49 +04:00
.br
2006-08-10 18:11:03 +04:00
Loads <table> or table_file into the inactive table slot for device_name.
If neither is supplied, reads a table from standard input.
2006-11-23 23:34:16 +03:00
.IP \fB message
.I device_name sector message
.br
Send message to target. If sector not needed use 0.
2006-06-18 15:35:04 +04:00
.IP \fB mknodes
.I [device_name]
2002-06-27 01:50:53 +04:00
.br
2006-06-18 15:35:04 +04:00
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.
.IP \fB remove
.I [-f|--force] device_name
.br
Removes a device. It will no longer be visible to dmsetup.
Open devices cannot be removed except with older kernels
that contain a version of device-mapper prior to 4.8.0.
In this case the device will be deleted when its open_count
drops to zero. From version 4.8.0 onwards, if a device can't
be removed because an uninterruptible process is waiting for
I/O to return from it, adding --force will replace the table
with one that fails all I/O, which might allow the
process to be killed.
2003-09-17 17:23:49 +04:00
.IP \fB remove_all
2006-06-18 15:35:04 +04:00
.I [-f|--force]
2003-09-17 17:23:49 +04:00
.br
Attempts to remove all device definitions i.e. reset the driver.
2006-06-18 15:35:04 +04:00
Use with care! From version 4.8.0 onwards, if devices can't
be removed because uninterruptible processess are waiting for
I/O to return from them, adding --force will replace the table
with one that fails all I/O, which might allow the
process to be killed. This also runs \fB mknodes\fP afterwards.
2003-09-17 17:23:49 +04:00
.IP \fB rename
.I device_name new_name
.br
Renames a device.
.IP \fB resume
.I device_name
.br
Un-suspends a device.
If an inactive table has been loaded, it becomes live.
Postponed I/O then gets re-queued for processing.
2006-11-23 23:34:16 +03:00
.IP \fB setgeometry
.I device_name cyl head sect start
.br
Sets the device geometry to C/H/S.
2002-06-27 01:50:53 +04:00
.IP \fB status
2005-05-16 18:53:23 +04:00
.I [--target target_type]
2004-02-27 22:36:49 +03:00
.I [device_name]
2002-06-27 01:50:53 +04:00
.br
Outputs status information for each of the device's targets.
2005-05-16 18:53:23 +04:00
With --target, only information relating to the specified target type
is displayed.
2003-09-17 17:23:49 +04:00
.IP \fB suspend
2006-10-12 19:42:25 +04:00
.I [--nolockfs] [--noflush]
2002-06-27 01:50:53 +04:00
.I device_name
.br
2003-09-17 17:23:49 +04:00
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.
2006-04-06 20:20:40 +04:00
If there's a filesystem on the device which supports the operation,
an attempt will be made to sync it first unless --nolockfs is specified.
2006-10-12 19:42:25 +04:00
Some targets such as recent (October 2006) versions of multipath may support
the --noflush option. This lets outstanding I/O that has not yet reached the
device to remain unflushed.
2003-09-17 17:23:49 +04:00
.IP \fB table
2005-05-16 18:53:23 +04:00
.I [--target target_type]
2004-02-27 22:36:49 +03:00
.I [device_name]
2002-06-27 01:50:53 +04:00
.br
2003-09-17 17:23:49 +04:00
Outputs the current table for the device in a format that can be fed
back in using the create or load commands.
2005-05-16 18:53:23 +04:00
With --target, only information relating to the specified target type
is displayed.
2004-02-27 22:36:49 +03:00
.IP \fB targets
.br
Displays the names and versions of the currently-loaded targets.
2002-06-27 01:50:53 +04:00
.IP \fB version
.br
Outputs version information.
2003-09-17 17:23:49 +04:00
.IP \fB wait
.I device_name
2004-02-27 22:36:49 +03:00
.I [event_nr]
2003-09-17 17:23:49 +04:00
.br
2004-02-27 22:36:49 +03:00
Sleeps until the event counter for device_name exceeds event_nr.
Use -v to see the event number returned.
To wait until the next event is triggered, use \fB info\fP to find
the last event number.
2001-12-14 16:30:04 +03:00
.SH TABLE FORMAT
Each line of the table specifies a single target and is of the form:
2001-12-13 16:46:21 +03:00
.br
2001-12-14 16:30:04 +03:00
logical_start_sector num_sectors target_type target_args
2001-12-13 16:46:21 +03:00
.br
2001-12-14 16:30:04 +03:00
.br
2004-01-23 17:08:09 +03:00
2002-06-27 01:50:53 +04:00
There are currently three simple target types available together
with more complex optional ones that implement snapshots and mirrors.
2001-12-13 16:46:21 +03:00
.IP \fB linear
2001-12-14 16:30:04 +03:00
.I destination_device start_sector
2001-12-13 16:46:21 +03:00
.br
The traditional linear mapping.
.IP \fB striped
2001-12-14 16:30:04 +03:00
.I num_stripes chunk_size [destination start_sector]+
2001-12-13 16:46:21 +03:00
.br
2001-12-14 16:30:04 +03:00
Creates a striped area.
2001-12-13 16:46:21 +03:00
.br
2001-12-14 16:30:04 +03:00
e.g. striped 2 32 /dev/hda1 0 /dev/hdb1 0
will map the first chunk (16k) as follows:
2001-12-13 16:46:21 +03:00
.br
LV chunk 1 -> hda1, chunk 1
.br
LV chunk 2 -> hdb1, chunk 1
.br
LV chunk 3 -> hda1, chunk 2
.br
LV chunk 4 -> hdb1, chunk 2
.br
etc.
2003-09-17 17:23:49 +04:00
.IP \fB error
2001-12-13 16:46:21 +03:00
.br
2001-12-14 16:30:04 +03:00
Errors any I/O that goes to this area. Useful for testing or
for creating devices with holes in them.
2001-12-13 16:46:21 +03:00
2001-12-14 16:30:04 +03:00
.SH EXAMPLES
2001-12-13 16:46:21 +03:00
# A table to join two disks together
.br
2001-12-14 16:30:04 +03:00
.br
2001-12-13 16:46:21 +03:00
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
2007-10-09 16:14:48 +04:00
.SH ENVIRONMENT VARIABLES
.TP
\fB DM_DEV_DIR\fP
The device directory name.
2007-12-05 20:05:04 +03:00
Defaults to "/dev" and must be an absolute path.
2007-10-09 16:14:48 +04:00
2001-12-13 16:46:21 +03:00
.SH AUTHORS
2001-12-14 16:30:04 +03:00
Original version: Joe Thornber (thornber@sistina.com)
2004-02-27 22:36:49 +03:00
.SH SEE ALSO
Device-mapper resource page: http://sources.redhat.com/dm/