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)