It took me a second to understand the pvmove command, but its simple once you get it… IT just moves data away (the data extents, data is kept in extents in LVM) from one physical volume to another, while the data remains intact and useable 🙂
So in other words, moves data away from said physical volume to other areas (optionally can specify other areas, in other words can specify where to move the data to). Also can specify what data to move (like if you have a couple of lv’s on the pv, we can tell the command to only move one of the lv’s AWAY from the pv)… but the thing to keep in mind is that name of pv listed in pvmove is the one that will get data moved away from, so the listed pv device will lose the data where another pv would gain it (the one gaining the data can be specified, or not, if not the system smartly selects where to move)… in a simple “pvmove -v <pvdevice>” all of the data from <pvdevice> will move to other pvs in the group (so hopefully there are other devices to move it to), the -v will give you very verbose output.
After that glare at these articles and they should make sense: