You can move data while the system is in use with the pvmove command.
The pvmove command breaks up the data to be moved into sections and creates a temporary mirror to move each section. For more information on the operation of the pvmove command, see the pvmove(8) man page.
Because the pvmove command uses mirroring, it is not cluster-aware and needs exclusive access to a volume. For information on activating logical volumes on individual nodes in a cluster, see Section 4.8, “Activating Logical Volumes on Individual Nodes in a Cluster”.
The following command moves all allocated space off the physical volume /dev/sdc1 to other free physical volumes in the volume group:
pvmove /dev/sdc1
The following command moves just the extents of the logical volume MyLV.
pvmove -n MyLV /dev/sdc1
Since the pvmove command can take a long time to execute, you may want to run the command in the background to avoid display of progress updates in the foreground. The following command moves all extents allocated to to the physical volume /dev/sdc1 over to /dev/sdf1 in the background.
pvmove -b /dev/sdc1 /dev/sdf1
The following command reports the progress of the move as a percentage at five second intervals.
pvmove -i5 /dev/sdd1