Move all physical extents that are used by simple LVs on the specified PV to free physical extents elsewhere in the VG.
pvmove /dev/sdb1
Use a specific destination PV when moving physical extents.
pvmove /dev/sdb1 /dev/sdc1
Move extents belonging to a single LV.
pvmove -n lvol1 /dev/sdb1 /dev/sdc1
Rather than moving the contents of an entire device, it is possible to move a range of physical extents, for example numbers 1000 to 1999 inclusive on the specified PV.
pvmove /dev/sdb1:1000-1999
A range of physical extents to move can be specified as start+length. For example, starting from PE 1000. (Counting starts from 0, so this refers to the 1001st to the 2000th PE inclusive.)
pvmove /dev/sdb1:1000+1000
Move a range of physical extents to a specific PV (which must have sufficient free extents).
pvmove /dev/sdb1:1000-1999 /dev/sdc1
Move a range of physical extents to specific new extents on a new PV.
pvmove /dev/sdb1:1000-1999 /dev/sdc1:0-999
If the source and destination are on the same disk, the anywhere allocation policy is needed.
pvmove --alloc anywhere /dev/sdb1:1000-1999 /dev/sdb1:0-999
The part of a specific LV present within in a range of physical extents can also be picked out and moved.
pvmove -n lvol1 /dev/sdb1:1000-1999 /dev/sdc1