Provided by: lvm10_1.0.8-8_i386 bug


       pvmove - move physical extents


       pvmove  [-A|--autobackup{y|n}]  [-d|--debug]  [-f|--force]  [-h|--help]
       [-i|--ignore_read_errors]  [-t|--test]  [-v[v]|--verbose   [--verbose]]


       pvmove  allows  you  to  move  the  allocated physical extents (PEs) on
       SourcePhysicalVolume to one or more other physical volumes (PVs).   You
       can  optionally  select  a  subset of the allocated physical extents on
       SourcePhysicalVolume by giving colon-separated lists and/or  ranges  of
       physical  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
       DestinationPhysicalVolume(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.

       -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
              SourcePhysicalVolume instead of all  allocated  extents  to  the
              destination physical volume(s).  A optional colon separated list
              or range of logical extents may be given to  limit  the  extents

       -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


       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


       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
       volume  attributes  for  conflicts.   A striped logical volume can’t be
       moved if there isn’t  enough  space  on  any  one  of  the  destination
       physical volumes 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
       destination physical volumes.


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

              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).


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


       Heinz Mauelshagen <>