PVMOVE(8)

NAME
pvmove - move physical extents

SYNOPSIS
pvmove [-A/--autobackup y/n] [-d/--debug] [-f/--force] [-h/-?/--help] [-n/--name LogicalVolumeName/-Path[:LogicalExtent[-LogicalExtent]...]] [-t/--test] [-v[v]/--verbose [--verbose]] SourcePhysicalVolumePath[:PhysicalExtent[-PhysicalExtent]...] [DestinationPhysicalVolumePath[:PhysicalExtent[-PhysicalExtent]]...]

DESCRIPTION
pvmove allows you to move the logical/physical extents allocated on one logical/physical volume to one or more other physical volumes. You are able to select a logical/physical volume and optionaly some of its logical/physical extents for the move by giving a list, a range or a combinatiion of both. In that case only the physical extents corresponding to its logical extents on the SourcePhysicalVolumePath are moved to free (given) ones on the destination physical volume. You can move physical extents in use but be carefull to have an actual 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 in order to avoid 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 a question.

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

-n, --name LogicalVolumePath[:LogicalExtent...]
    Select a logical volume to only move its extents located on the source physical volume to the destination physical volume(s). Column seperated logical extents may be given to only move those.

-t, --test
    Do a test run without any real change.

-v, --verbose
    Gives verbose runtime information about pvmove's activities.

-vv, --verbose --verbose
    Gives sector and device mapping information in addition to -v.

Examples
"pvmove -v /dev/hda4 /dev/sda2" move all logical extents of any logical volumes on /dev/hda4 to free physical extents on /dev/sda4 giving verbose runtime information. "pvmove -n my_lv:3:5:11 /dev/sdb6 /dev/hdb3" moves three logical extents (number 3, 5 and 11) of logical volume my_lv on /dev/sdb6 to free ones on /dev/hdb3. "pvmove -n my_lv:1:6:25-27 /dev/sdb6 /dev/hdb3:46:47-48" moves four logical extents of logical volume my_lv on /dev/sdb6 to four physical extents with numbers 3, 46, 47 and 48 on /dev/hdb3.

DIAGNOSTICS
pvmove returns an exit state 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
11 only one physical volume in volume group
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 you are wondering why pvmove doesn't want to move physical extents, 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 moved partial. A contiguous logical volume can't be moved if there aren't enough contiguous free physical extents on the destination physical volumes.

ENVIRONMENT VARIABLES

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

See also
lvm(8), lvcreate(8), lvdisplay(8), pvdisplay(8)

AUTHOR
Heinz Mauelshagen <linux-lvm@ez-darmstadt.telekom.de>