dmsetup - Unix, Linux Command
NAME
dmsetup - low level logical volume management
SYNOPSIS
dmsetup help [-c|-C|--columns]
dmsetup create device_name [-u uuid] [--notable | --table <table> | table_file]
dmsetup remove [-f|--force] device_name
dmsetup remove_all [-f|--force]
dmsetup suspend [--nolockfs] [--noflush] device_name
dmsetup resume device_name
dmsetup load device_name [--table <table> | table_file]
dmsetup clear device_name
dmsetup reload device_name [--table <table> | table_file]
dmsetup rename device_name new_name
dmsetup message device_name sector message
dmsetup ls [--target target_type] [--exec command] [--tree [-o options]]
dmsetup info [device_name]
dmsetup info -c|-C|--columns [--noheadings] [--separator separator] [-o fields] [-O|--sort sort_fields] [device_name]
dmsetup deps [device_name]
dmsetup status [--target target_type] [device_name]
dmsetup table [--target target_type] [device_name]
dmsetup wait device_name [event_nr]
dmsetup mknodes [device_name]
dmsetup targets
dmsetup version
dmsetup setgeometry device_name cyl head sect start
devmap_name major minor
devmap_name major:minor
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 devmap_name is equivalent to
dmsetup info -c --noheadings -j major -m minor.
OPTIONS
Tag | Description |
-c|-C|--columns
|
Display output in columns rather than as Field: Value lines.
|
-j|--major major
|
Specify the major number.
|
-m|--minor minor
|
Specify the minor number.
|
-n|--noheadings
|
Suppress the headings line when using columnar output.
|
--noopencount
|
Tell the kernel not to supply the open reference count for the device.
|
--notable
|
When creating a device, dont load any table.
|
-o|--options
|
Specify which fields to display.
|
-r|--readonly
|
Set the table being loaded read-only.
|
--readahead [+]<sectors>|auto|none
|
Specify read ahead size in units of sectors.
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.
|
--table <table>
|
Specify a one-line table directly on the command line.
|
-u|--uuid
|
Specify the uuid.
|
-v|--verbose [-v|--verbose]
|
Produce additional output.
|
--version
|
Display the library and kernel driver version.
|
COMMANDS
Tag | Description |
create
|
device_name [-u uuid] [--notable | --table <table> | table_file]
Creates a device with the given name.
If table_file or <table> is supplied, the table is loaded and made live.
Otherwise a table is read from standard input unless --notable is used.
The optional uuid can be used in place of
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.
|
deps
|
[device_name]
Outputs a list of (major, minor) pairs for devices referenced by the
live table for the specified device.
|
help
|
[-c|-C|--columns]
Outputs a summary of the commands available, optionally including
the list of report fields.
|
info
|
[device_name]
Outputs some brief information about the device in the form:
State: SUSPENDED|ACTIVE, READ-ONLY
Tables present: LIVE and/or INACTIVE
Open reference count
Last event sequence number (used by wait)
Major and minor device number
Number of targets in the live table
UUID
|
info
|
[--noheadings] [--separator separator] [-o fields] [-O|--sort sort_fields] [device_name]
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.
|
ls
|
[--target target_type] [--exec command] [--tree [-o options]]
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.
--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.
|
load|reload
|
device_name [--table <table> | table_file]
Loads <table> or table_file into the inactive table slot for device_name.
If neither is supplied, reads a table from standard input.
|
message
|
device_name sector message
Send message to target. If sector not needed use 0.
|
mknodes
|
[device_name]
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.
|
remove
|
[-f|--force] device_name
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 cant
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.
|
remove_all
|
[-f|--force]
Attempts to remove all device definitions i.e. reset the driver.
Use with care! From version 4.8.0 onwards, if devices cant
be removed because uninterruptible processes 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 mknodes afterwards.
|
rename
|
device_name new_name
Renames a device.
|
resume
|
device_name
Un-suspends a device.
If an inactive table has been loaded, it becomes live.
Postponed I/O then gets re-queued for processing.
|
setgeometry
|
device_name cyl head sect start
Sets the device geometry to C/H/S.
|
status
|
[--target target_type] [device_name]
Outputs status information for each of the devices targets.
With --target, only information relating to the specified target type
is displayed.
|
suspend
|
[--nolockfs] [--noflush] device_name
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 theres a filesystem on the device which supports the operation,
an attempt will be made to sync it first unless --nolockfs is specified.
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.
|
table
|
[--target target_type] [device_name]
Outputs the current table for the device in a format that can be fed
back in using the create or load commands.
With --target, only information relating to the specified target type
is displayed.
|
targets
|
Displays the names and versions of the currently-loaded targets.
|
version
|
Outputs version information.
|
wait
|
device_name [event_nr]
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 info to find
the last event number.
|
TABLE FORMAT
Each line of the table specifies a single target and is of the form:
logical_start_sector num_sectors target_type target_args
There are currently three simple target types available together
with more complex optional ones that implement snapshots and mirrors.
Tag | Description |
linear
|
destination_device start_sector
The traditional linear mapping.
|
striped
|
num_stripes chunk_size [destination start_sector]+
Creates a striped area.
e.g. striped 2 32 /dev/hda1 0 /dev/hdb1 0
will map the first chunk (16k) as follows:
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.
|
error
|
Errors any I/O that goes to this area. Useful for testing or
for creating devices with holes in them.
|
EXAMPLES
# A table to join two disks together
0 1028160 linear /dev/hda 0
1028160 3903762 linear /dev/hdb 0
# A table to stripe across the two disks,
# and add the spare space from
# hdb to the back of the volume
0 2056320 striped 2 32 /dev/hda 0 /dev/hdb 0
2056320 2875602 linear /dev/hdb 1028160
ENVIRONMENT VARIABLES
Tag | Description |
DM_DEV_DIR
| |
The device directory name.
Defaults to "/dev" and must be an absolute path.
|
AUTHORS
Original version: Joe Thornber (thornber@sistina.com)
SEE ALSO
|