[linux-lvm] How to re-stripe a LV after pvmove?
Dave Wysochanski
dwysocha at redhat.com
Thu Mar 29 14:29:03 UTC 2007
On Thu, 2007-03-29 at 16:05 +0200, Olle Liljenzin wrote:
> Heinz Mauelshagen wrote:
> > On Thu, Mar 29, 2007 at 01:42:47PM +0200, Olle Liljenzin wrote:
> >
> >> Hello,
> >>
> >> How can I rearrange a striped volume after pvmove has been run, so that
> >> I get back the original structure with the stripes equally distributed
> >> on PVs?
> >>
> >
> > I need to presume, that IO to the striped LV was going on during pvmove.
> > Hence restoring the old mapping won't help and will lead to data corruption.
> >
> > pvmove back using the destination options of the command.
> >
>
> Maybe an example is helpful. After the commands below I have two stripes
> on sdb2 and one on sdb3. How do I move one of the stripes from sdb2 to sdb4?
>
> pvcreate /dev/sdb{1,2,3}
> vgcreate vg /dev/sdb{1,2,3}
> lvcreate -i 3 -L100M -n lv /dev/vg
> vgreduce /dev/vg /dev/sdb1
> pvremove /dev/sdb1
> pvcreate /dev/sdb4
> vgextend /dev/vg /dev/sdb4
> lvdisplay -m /dev/vg/lv
>
> --- Logical volume ---
> LV Name /dev/vg/lv
> VG Name vg
> LV UUID NVBrvT-5fZe-0qKA-LCYA-Z9au-X84A-fXYkx3
> LV Write Access read/write
> LV Status available
> # open 0
> LV Size 108.00 MB
> Current LE 27
> Segments 1
> Allocation inherit
> Read ahead sectors 0
> Block device 253:2
> --- Segments ---
> Logical extent 0 to 26:
> Type striped
> Stripes 3
> Stripe size 64 KB
> Stripe 0:
> Physical volume /dev/sdb2
> Physical extents 9 to 17
> Stripe 1:
> Physical volume /dev/sdb2
> Physical extents 0 to 8
> Stripe 2:
> Physical volume /dev/sdb3
> Physical extents 0 to 8
looks like you need something like this:
pvmove /dev/sdb2:9-17 /dev/sdb4:0-8
More information about the linux-lvm
mailing list