man pvmove () - move physical extents

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]...]] SourcePhysicalVolume[:PhysicalExtent[-PE]...] [DestinationPhysicalVolume[:PE[-PE]...]...]

DESCRIPTION

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.

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

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

AUTHOR

Heinz Mauelshagen <Linux-LVM@Sistina.com>