DMSETUP

Section: MAINTENTANCE COMMANDS (8)
Updated: Sep 17 2003
 

NAME

dmsetup - low level logical volume management  

SYNOPSIS

dmsetup create device_name [-u uuid] [--notable] [table_file]
dmsetup remove device_name
dmsetup remove_all
dmsetup suspend 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
dmsetup info [device_name]
dmsetup deps [device_name]
dmsetup status [device_name]
dmsetup table [device_name]
dmsetup wait device_name [event_nr]
dmsetup mknodes [device_name]
dmsetup targets
dmsetup version  

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.  

OPTIONS

-j|--major major

Specify the major number to use on creation.
-j|--minor minor

Specify the minor number to use on creation.
-r|--readonly

Set the table being loaded read-only.
-v|--verbose

Produce additional output.
--version

Display the library and kernel driver version.
 

COMMANDS

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

List device names.
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
[device_name]
Outputs status information for each of the device's targets.
suspend
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.
table
[device_name]
Outputs the current table for the device in a format that can be fed back in using the create or load commands.
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

 

AUTHORS

Original version: Joe Thornber (thornber@sistina.com)

 

SEE ALSO

Device-mapper resource page: http://sources.redhat.com/dm/


 

Index

NAME
SYNOPSIS
DESCRIPTION
OPTIONS
COMMANDS
TABLE FORMAT
EXAMPLES
AUTHORS
SEE ALSO
blog comments powered by Disqus