8:dmsetup

From Linux Man Pages

Jump to: navigation, search
      dmsetup - low level logical volume management
      

Contents

SYNOPSIS

      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 ls [--target target_type] [--exec command] [--tree [-o options]]
      dmsetup info [device_name]
      dmsetup info -c|-C|--columns [--noheadings] [-o 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
 
      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.  Only name, major, minor, and uuid are supported.
 
      -r|--readonly
             Set the table being loaded read-only.
 
      --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.
 
      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 <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.
 
      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.
 
      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 sup-
             port 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 com-
             mands.  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

RELATED

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

CATEGORY

Personal tools