| DMSETUP(8) | MAINTENANCE COMMANDS | DMSETUP(8) | 
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
- 
-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.
 
COMMANDS
- 
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 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  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.
 
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.
 
- 
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
- 
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
 Device-mapper resource page: http://sources.redhat.com/dm/