dmsetup - low level logical volume management
dmsetup create device_name [-u uuid] [--notable] [table_file]
dmsetup remove device_name
dmsetup remove_all
dmsetup suspend [--nolockfs] device_name
dmsetup resume device_name
dmsetup load device_name [table_file]
dmsetup clear device_name
dmsetup reload device_name [table_file]
dmsetup rename device_name new_name
dmsetup ls [--target target_type] [--exec command] [--tree [-o options]]
dmsetup info [device_name]
dmsetup info -c|-C|--columns [--noheadings] [-o name] [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
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, dont load any table. |
| -o|--options | Specify which fields to display. Only -o name is supported. |
| -r|--readonly | Set the table being loaded read-only. |
| -u|--uuid | Specify the uuid. |
| -v|--verbose | Produce additional output. |
| --version | Display the library and kernel driver version. |
| create |
device_name [-u uuid] [--notable] [table_file] Creates a device with the given name. If table_file 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. |
| 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 |
| 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_file] Loads table_file into the inactive table slot for device_name. If table_file is not supplied, reads a table from standard input. |
| remove |
device_name Removes a device. It will no longer be visible to dmsetup and will be deleted when its open_count is zero. |
| remove_all | Attempts to remove all device definitions i.e. reset the driver. Use with care! |
| 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. |
| 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] 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. |
| 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
Original version: Joe Thornber (thornber@sistina.com)
Device-mapper resource page: http://sources.redhat.com/dm/