.TH PVMOVE 8 "LVM TOOLS #VERSION#" "Sistina Software UK" \" -*- nroff -*-
.SH NAME
pvmove \(em move physical extents
.SH SYNOPSIS
.B pvmove
.RB [ \-\-abort ]
.RB [ \-\-alloc
.IR AllocationPolicy ]
.RB [ \-\-atomic ]
.RB [ \-b | \-\-background ]
.RB [ \-\-commandprofile
.IR ProfileName ]
.RB [ \-d | \-\-debug ]
.RB [ \-h | \-\-help ]
.RB [ \-i | \-\-interval
.IR Seconds ]
.RB [ \-\-noudevsync ]
.RB [ \-\-reportformat
.RB { basic | json }]
.RB [ \-v | \-\-verbose ]
.RB [ \-n | \-\-name
.IR LogicalVolume ]
.RI [ SourcePhysicalVolume [ :PE [ \-PE ]...]
.RI [ DestinationPhysicalVolume [ :PE [ \-PE ]...]...]]
.SH DESCRIPTION
pvmove allows you to move the allocated physical extents (PEs) on
.I SourcePhysicalVolume
to one or more other physical volumes (PVs).
You can optionally specify a source
.I LogicalVolume
in which case only extents used by that LV will be moved to 
free (or specified) extents on
.IR DestinationPhysicalVolume (s).
If no
.I DestinationPhysicalVolume
is specified, the normal allocation rules for the Volume Group are used.

If pvmove gets interrupted for any reason (e.g. the machine crashes)
then run pvmove again without any PhysicalVolume arguments to
restart any moves that were in progress from the last checkpoint.
Alternatively use \fBpvmove \-\-abort\fP at any time to abort.  The
resulting location of logical volumes after an abort is issued depends
on whether the
.B \-\-atomic
option was used when starting the pvmove process.

You can run more than one pvmove at once provided they are moving data
off different SourcePhysicalVolumes, but additional pvmoves will ignore
any Logical Volumes already in the process of being changed, so some
data might not get moved.

\fBpvmove\fP works as follows:

1. A temporary 'pvmove' Logical Volume is created to store
details of all the data movements required.

2. Every Logical Volume in the Volume Group is searched
for contiguous data that need moving
according to the command line arguments.
For each piece of data found, a new segment is added to the end of the
pvmove LV.
This segment takes the form of a temporary mirror to copy the data 
from the original location to a newly-allocated location. 
The original LV is updated to use the new temporary mirror segment
in the pvmove LV instead of accessing the data directly.

3. The Volume Group metadata is updated on disk.

4. The first segment of the pvmove Logical Volume is activated and starts
to mirror the first part of the data.  Only one segment is mirrored at once
as this is usually more efficient.

5. A daemon repeatedly checks progress at the specified time interval.
When it detects that the first temporary mirror is in-sync,
it breaks that mirror so that only the new location for that data gets used 
and writes a checkpoint into the Volume Group metadata on disk.
Then it activates the mirror for the next segment of the pvmove LV.

6. When there are no more segments left to be mirrored, 
the temporary Logical Volume is removed and the Volume Group metadata 
is updated so that the Logical Volumes reflect the new data locations.

Note that this new process cannot support the original LVM1
type of on-disk metadata.  Metadata can be converted using \fBvgconvert\fP(8).

If the
.B \-\-atomic
option is used, a slightly different approach is used for the move.  Again,
a temporary 'pvmove' logical volume is created to store the details of all
the data movements required.  This temporary LV contains all the segments of
the various LVs that need to be moved.  However this time, an identical
logical volume is allocated that contains the same number of segments and
a mirror is created to copy the contents from the first temporary LV to the
second.  When a complete copy is accomplished, the temporary logical volumes
are removed, leaving behind the segments on the destination physical volume.
If an abort is issued during the move, all logical volumes being moved will
remain on the source physical volume.

.SH OPTIONS
See \fBlvm\fP(8) for common options.
.TP
.B \-\-abort
Abort any moves in progress.  If the
.B \-\-atomic
option was used to start the pvmove, all logical volumes will remain on
the source physical volume.  Otherwise, those segments that have completed
the move will stay on the destination physical volume, while those that
have not will remain on the source physical volume.
.TP
.B \-\-atomic
Make the entire operation atomic.  That is, ensure that all affected logical
volumes are moved to the destination physical volume together; unless the move
has been aborted.  If the move has been aborted, all logical volumes will
remain on the source physical volume.
.TP
.B \-\-noudevsync
Disable udev synchronisation. The
process will not wait for notification from udev.
It will continue irrespective of any possible udev processing
in the background.  You should only use this if udev is not running
or has rules that ignore the devices LVM2 creates.
.TP
.BR \-b ", " \-\-background
Run the daemon in the background.
.TP
.BR \-i ", " \-\-interval " " \fISeconds
Report progress as a percentage at regular intervals.
.TP
.BR \-n ", " \-\-name " " \fILogicalVolume
Move only the extents belonging to
.I LogicalVolume
from
.I SourcePhysicalVolume
instead of all allocated extents to the destination physical volume(s).

.SH Examples
To move all Physical Extents that are used by simple Logical Volumes on
/dev/sdb1 to free Physical Extents elsewhere in the Volume Group use:
.sp
.B pvmove /dev/sdb1
.P
Additionally, a specific destination device /dev/sdc1
can be specified like this:
.sp
.B pvmove /dev/sdb1 /dev/sdc1
.P
To perform the action only on extents belonging to the single Logical Volume 
lvol1 do this:
.sp
.B pvmove \-n lvol1 /dev/sdb1 /dev/sdc1
.P
Rather than moving the contents of the entire device, it is possible to
move a range of Physical Extents - for example numbers 1000 to 1999
inclusive on /dev/sdb1 - like this:
.sp
.B pvmove /dev/sdb1:1000\-1999
.P
A range can also be specified as start+length, so
.sp
.B pvmove /dev/sdb1:1000+1000
.P
also refers to 1000 Physical Extents starting from Physical Extent number 1000.
(Counting starts from 0, so this refers to the 1001st to the 2000th inclusive.)
.P
To move a range of Physical Extents to a specific location (which must have
sufficient free extents) use the form:
.sp
.B pvmove /dev/sdb1:1000\-1999 /dev/sdc1
.sp
or
.sp
.B pvmove /dev/sdb1:1000\-1999 /dev/sdc1:0\-999
.P
If the source and destination are on the same disk, the 
.B anywhere
allocation policy would be needed, like this:
.sp
.B pvmove \-\-alloc anywhere /dev/sdb1:1000\-1999 /dev/sdb1:0\-999
.P
The part of a specific Logical Volume present within in a range of Physical
Extents can also be picked out and moved, like this:
.sp
.B pvmove \-n lvol1 /dev/sdb1:1000\-1999 /dev/sdc1
.SH SEE ALSO
.BR lvm (8),
.BR vgconvert (8)
.BR pvs (8)
