diff options
Diffstat (limited to 'man/pvmove.8.des')
-rw-r--r-- | man/pvmove.8.des | 61 |
1 files changed, 61 insertions, 0 deletions
diff --git a/man/pvmove.8.des b/man/pvmove.8.des new file mode 100644 index 000000000..5286ef403 --- /dev/null +++ b/man/pvmove.8.des @@ -0,0 +1,61 @@ +pvmove moves the allocated physical extents (PEs) on a source PV to one or +more destination PVs. You can optionally specify a source LV in which +case only extents used by that LV will be moved to free (or specified) +extents on the destination PV. If no destination PV is specified, the +normal allocation rules for the VG are used. + +If pvmove is interrupted for any reason (e.g. the machine crashes) then +run pvmove again without any PV arguments to restart any operations that +were in progress from the last checkpoint. Alternatively, use the abort +option at any time to abort the operation. The resulting location of LVs +after an abort depends on whether the atomic option was used. + +More than one pvmove can run concurrently if they are moving data from +different source PVs, but additional pvmoves will ignore any LVs already +in the process of being changed, so some data might not get moved. + +pvmove works as follows: + +1. A temporary 'pvmove' LV is created to store details of all the data +movements required. + +2. Every LV in the VG 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 VG metadata is updated on disk. + +4. The first segment of the pvmove LV 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 VG 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 LV +is removed and the VG metadata is updated so that the LVs 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 \fB\-\-atomic\fP option is used, a slightly different approach is +used for the move. Again, a temporary 'pvmove' LV 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, in +this case, an identical LV 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. After a complete copy is made, the temporary +LVs are removed, leaving behind the segments on the destination PV. If an +abort is issued during the move, all LVs being moved will remain on the +source PV. + |