dmsetup - low level logical volume management
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
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.
- -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, don't 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.
- 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
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.
- 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 can't 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 device's 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 there's 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.
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.
- 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.
# 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
- DM_DEV_DIR
- The device directory name. Defaults to "/dev" and must be an
absolute path.
Original version: Joe Thornber (thornber@sistina.com)
Device-mapper resource page: http://sources.redhat.com/dm/