ABCDEFGHIJKLMNOPQRSTUVWXYZ

pvmove

PVMOVE(8)                                                            PVMOVE(8)



NAME
       pvmove - move physical extents

SYNOPSIS
       pvmove  [-A|--autobackup{y|n}]  [-d|--debug]  [-f|--force]  [-h|--help]
       [-i|--ignore_read_errors]  [-t|--test]  [-v[v]|--verbose   [--verbose]]
       [{-n|--name}LogicalVolume[:LogicalExtent[-LE]...]]   SourcePhysicalVol-
       ume[:PhysicalExtent[-PE]...]                   [DestinationPhysicalVol-
       ume[:PE[-PE]...]...]

DESCRIPTION
       pvmove allows you to move the allocated physical extents (PEs) on Sour-
       cePhysicalVolume to one or more other physical volumes (PVs).  You  can
       optionally select a subset of the allocated physical extents on Source-
       PhysicalVolume by giving colon-separated lists and/or ranges of  physi-
       cal  extents, or by specifying the source LogicalVolume optionally with
       colon-separated lists and/or ranges of logical extents.  In  this  case
       only these extents are moved to free (or specified) extents on Destina-
       tionPhysicalVolume(s).  If no  DestinationPhysicalVolume  is  specifed,
       the normal allocation rules for the volume group are used.

       You  can move physical extents in use but make sure you have an current
       backup in case of a system crash while moving!!!

       pvmove may be safely interrupted by SIGINT  while  moving  "next  free"
       allocated  logical  volumes.   Striped  logical  volume  moves can't be
       interrupted by SIGINT because that may cause stripe inconsistencies.

   OPTIONS
       -A, --autobackup {y|n}
              Controls automatic backup of VG metadata  after  the  move  (see
              vgcfgbackup (8)).  Default is yes.

       -d, --debug
              Enables additional debugging output (if compiled with DEBUG).

       -f, --force
              Forces physical extent move without confirmation.

       -h, --help
              Print  a usage message on standard output and exit successfully.

       -i, --ignore_read_errors
              Ignore read errors while moving data. Usefull in  case  data  is
              moved away from a broken or unaccessable disk (area).

       -n, --name  LogicalVolume[:LogicalExtent[-LogicalExtent]...]
              Move  only  the  extents belonging to LogicalVolume from Source-
              PhysicalVolume instead of all allocated extents to the  destina-
              tion  physical  volume(s).   A  optional colon separated list or
              range of logical extents may  be  given  to  limit  the  extents
              moved.

       -t ,  --test
              Do a test run without performing any real changes.

       -v ,  --verbose
              Gives verbose runtime information about pvmove's activities.  If
              specified twice, sector and device mapping information  is  also
              given.

EXAMPLES
       To move all logical extents of any logical volumes on /dev/hda4 to free
       physical extents elsewhere in the volume group, giving verbose  runtime
       information, use:

            pvmove -v /dev/hda4

       To  move  three logical extents (numbers 3, 5 and 11) of logical volume
       my_lv to free ones on /dev/hdb3 use:

            pvmove -n my_lv:3:5:11 /dev/sdb6 /dev/hdb3

       To move four logical extents (numbers 1, 25, 26,  and  27)  of  logical
       volume my_lv on /dev/sdb6 to four physical extents (numbers 46, 47, 48,
       and 49) on /dev/hdb3 use:

            pvmove -n my_lv:1:25-27 /dev/sdb6 /dev/hdb3:46-49

DIAGNOSTICS
       pvmove returns an exit code of 0 for success and > 0 for error:

       1  no source physical volume on command line
       2  invalid extent numbers on command line
       2  invalid source physical volume name
       4  error reading physical volume
       5  source physical volume is inconsistent
       6  volume group doesn't exist
       7  error reading VGDA
       8  volume group is inconsistent
       9  error getting index of physical volume
       10 no logical volumes on source physical volume
       12 invalid logical volume name
       13 error getting logical volume number in VGDA
       14 logical volume not on source physical volume
       15 malloc() error
       16 invalid physical volume name
       17 physical volume doesn't belong to this volume group
       18 more than one physical volume with destination physical extents given
       19 error getting index of logical volume from VGDA
       20 invalid logical extent given
       21 invalid physical extent given
       22 destination physical index in use
       23 error moving physical extent(s)

       95 driver/module not in kernel
       96 invalid I/O protocol version
       97 error locking logical volume manager
       98 invalid lvmtab (run vgscan(8))
       99 invalid command line

       If pvmove refuses to move physical extents then check the logical  vol-
       ume  attributes for conflicts.  A striped logical volume can't be moved
       if there isn't enough space on any one of the destination physical vol-
       umes  which  DON'T  contain  a  stripe of that logical volume. A stripe
       can't be partially moved.  A contiguous logical volume can't  be  moved
       if there aren't enough contiguous free physical extents on the destina-
       tion physical volumes.

ENVIRONMENT VARIABLES
       LVM_AUTOBACKUP
              If this variable is set to "no" then the automatic backup of  VG
              metadata is turned off.

       LVM_VG_MAX_BACKUPS
              This  variable  determines the backup history depth of kept VGDA
              copy files in /etc/lvmconf.  It can be set to a positive  number
              between  0 and 999.  The higher this number is, the more changes
              you can restore using vgcfgrestore(8).


SEE ALSO
       lvm(8), lvchange(8), lvcreate(8), lvdisplay(8), pvdisplay(8)

AUTHOR
       Heinz Mauelshagen <Linux-LVM@Sistina.com>



Heinz Mauelshagen                  LVM TOOLS                         PVMOVE(8)