mirror of
git://sourceware.org/git/lvm2.git
synced 2024-12-21 13:34:40 +03:00
c59167ec13
This patch allows pvmove to operate on RAID, mirror and thin LVs. The key component is the ability to avoid moving a RAID or mirror sub-LV onto a PV that already has another RAID sub-LV on it. (e.g. Avoid placing both images of a RAID1 LV on the same PV.) Top-level LVs are processed to determine which PVs to avoid for the sake of redundancy, while bottom-level LVs are processed to determine which segments/extents to move. This approach does have some drawbacks. By eliminating whole PVs from the allocation list, we might miss the opportunity to perform pvmove in some senarios. For example, if we have 3 devices and a linear uses half of the first, a RAID1 uses half of the first and half of the second, and a linear uses half of the third (FIGURE 1); we should be able to pvmove the first device (FIGURE 2). FIGURE 1: [ linear ] [ -RAID- ] [ linear ] [ -RAID- ] [ ] [ ] FIGURE 2: [ moved ] [ -RAID- ] [ linear ] [ moved ] [ linear ] [ -RAID- ] However, the approach we are using would eliminate the second device from consideration and would leave us with too little space for allocation. In these situations, the user does have the ability to specify LVs and move them one at a time. |
||
---|---|---|
.. | ||
blkdeactivate.8.in | ||
clvmd.8.in | ||
cmirrord.8.in | ||
dmeventd.8.in | ||
dmsetup.8.in | ||
fsadm.8.in | ||
lvchange.8.in | ||
lvconvert.8.in | ||
lvcreate.8.in | ||
lvdisplay.8.in | ||
lvextend.8.in | ||
lvm.8.in | ||
lvm.conf.5.in | ||
lvmchange.8.in | ||
lvmconf.8.in | ||
lvmdiskscan.8.in | ||
lvmdump.8.in | ||
lvmetad.8.in | ||
lvmsadc.8.in | ||
lvmsar.8.in | ||
lvreduce.8.in | ||
lvremove.8.in | ||
lvrename.8.in | ||
lvresize.8.in | ||
lvs.8.in | ||
lvscan.8.in | ||
Makefile.in | ||
pvchange.8.in | ||
pvck.8.in | ||
pvcreate.8.in | ||
pvdisplay.8.in | ||
pvmove.8.in | ||
pvremove.8.in | ||
pvresize.8.in | ||
pvs.8.in | ||
pvscan.8.in | ||
vgcfgbackup.8.in | ||
vgcfgrestore.8.in | ||
vgchange.8.in | ||
vgck.8.in | ||
vgconvert.8.in | ||
vgcreate.8.in | ||
vgdisplay.8.in | ||
vgexport.8.in | ||
vgextend.8.in | ||
vgimport.8.in | ||
vgimportclone.8.in | ||
vgmerge.8.in | ||
vgmknodes.8.in | ||
vgreduce.8.in | ||
vgremove.8.in | ||
vgrename.8.in | ||
vgs.8.in | ||
vgscan.8.in | ||
vgsplit.8.in |