[dm-devel] Constructing RAID 1+0 w/ LVM2/DM

Alan D. Brunelle Alan.Brunelle at hp.com
Thu Jan 24 14:16:02 UTC 2008


I'm attempting to create a RAID 1+0 environment using only LVM/DM and 
running into a strange problem: I can't use the underlying mirrored 
devices. I was able to create a RAID 0+1 environment easy enough, so I'm 
perplexed by this.

I have 24 devices (12 each behind an FC RAID array), I first pvcreate those:

/sbin/pvcreate -f -y /dev/sdu
/sbin/pvcreate -f -y /dev/sdw
/sbin/pvcreate -f -y /dev/sdx
/sbin/pvcreate -f -y /dev/sdz
/sbin/pvcreate -f -y /dev/sdab
/sbin/pvcreate -f -y /dev/sdad
/sbin/pvcreate -f -y /dev/sdaf
/sbin/pvcreate -f -y /dev/sdah
/sbin/pvcreate -f -y /dev/sdaj
/sbin/pvcreate -f -y /dev/sdal
/sbin/pvcreate -f -y /dev/sdao
/sbin/pvcreate -f -y /dev/sdap
/sbin/pvcreate -f -y /dev/sds
/sbin/pvcreate -f -y /dev/sdt
/sbin/pvcreate -f -y /dev/sdv
/sbin/pvcreate -f -y /dev/sdy
/sbin/pvcreate -f -y /dev/sdaa
/sbin/pvcreate -f -y /dev/sdac
/sbin/pvcreate -f -y /dev/sdae
/sbin/pvcreate -f -y /dev/sdag
/sbin/pvcreate -f -y /dev/sdai
/sbin/pvcreate -f -y /dev/sdak
/sbin/pvcreate -f -y /dev/sdam
/sbin/pvcreate -f -y /dev/sdan

I then mirror pairs of those:

/sbin/vgcreate vg00 /dev/sdu /dev/sds
/sbin/lvcreate -m 1 --corelog --nosync -n lv00 -L 65G vg00
/sbin/vgcreate vg01 /dev/sdw /dev/sdt
/sbin/lvcreate -m 1 --corelog --nosync -n lv01 -L 65G vg01
/sbin/vgcreate vg02 /dev/sdx /dev/sdv
/sbin/lvcreate -m 1 --corelog --nosync -n lv02 -L 65G vg02
/sbin/vgcreate vg03 /dev/sdz /dev/sdy
/sbin/lvcreate -m 1 --corelog --nosync -n lv03 -L 65G vg03
/sbin/vgcreate vg04 /dev/sdab /dev/sdaa
/sbin/lvcreate -m 1 --corelog --nosync -n lv04 -L 65G vg04
/sbin/vgcreate vg05 /dev/sdad /dev/sdac
/sbin/lvcreate -m 1 --corelog --nosync -n lv05 -L 65G vg05
/sbin/vgcreate vg06 /dev/sdaf /dev/sdae
/sbin/lvcreate -m 1 --corelog --nosync -n lv06 -L 65G vg06
/sbin/vgcreate vg07 /dev/sdah /dev/sdag
/sbin/lvcreate -m 1 --corelog --nosync -n lv07 -L 65G vg07
/sbin/vgcreate vg08 /dev/sdaj /dev/sdai
/sbin/lvcreate -m 1 --corelog --nosync -n lv08 -L 65G vg08
/sbin/vgcreate vg09 /dev/sdal /dev/sdak
/sbin/lvcreate -m 1 --corelog --nosync -n lv09 -L 65G vg09
/sbin/vgcreate vg10 /dev/sdao /dev/sdam
/sbin/lvcreate -m 1 --corelog --nosync -n lv10 -L 65G vg10
/sbin/vgcreate vg11 /dev/sdap /dev/sdan
/sbin/lvcreate -m 1 --corelog --nosync -n lv11 -L 65G vg11

Now, I'd like to stripe over those mirrors, and would expect that the 
first step would be to pvcreate the new lv's  (lv00-lv11), before doing so:

# lvs
  LV   VG   Attr   LSize  Origin Snap%  Move Log Copy%
  lv00 vg00 Mwi-a- 65.00G                        100.00
  lv01 vg01 Mwi-a- 65.00G                        100.00
  lv02 vg02 Mwi-a- 65.00G                        100.00
  lv03 vg03 Mwi-a- 65.00G                        100.00
  lv04 vg04 Mwi-a- 65.00G                        100.00
  lv05 vg05 Mwi-a- 65.00G                        100.00
  lv06 vg06 Mwi-a- 65.00G                        100.00
  lv07 vg07 Mwi-a- 65.00G                        100.00
  lv08 vg08 Mwi-a- 65.00G                        100.00
  lv09 vg09 Mwi-a- 65.00G                        100.00

# vgs
  VG   #PV #LV #SN Attr   VSize   VFree
  vg00   2   3   0 wz--n- 135.66G 5.66G
  vg01   2   3   0 wz--n- 135.66G 5.66G
  vg02   2   3   0 wz--n- 135.66G 5.66G
  vg03   2   3   0 wz--n- 135.66G 5.66G
  vg04   2   3   0 wz--n- 135.66G 5.66G
  vg05   2   3   0 wz--n- 135.66G 5.66G
  vg06   2   3   0 wz--n- 135.66G 5.66G
  vg07   2   3   0 wz--n- 135.66G 5.66G
  vg08   2   3   0 wz--n- 135.66G 5.66G
  vg09   2   3   0 wz--n- 135.66G 5.66G

But then:

# pvcreate -ff -y -v /dev/vg00/lv00
    Wiping cache of LVM-capable devices
    Wiping internal VG cache
  Device /dev/vg00/lv00 not found (or ignored by filtering).

I did run w/ -vvv, and extracted this pertinent looking stuff:

    Wiping internal VG cache
      Locking /var/lock/lvm/P_orphans WB
        dm status   (253:2) OF   [16384]
        /dev/dm-2: Skipping: Suspended dm device
  Device /dev/vg00/lv00 not found (or ignored by filtering).
      Unlocking /var/lock/lvm/P_orphans

I don't understand why the device is suspended - due to the --nosync the 
copy% is at 100, and the device read/writes just fine. I'm using:

# pvcreate --version
  LVM version:     2.02.29 (2007-12-05)
  Library version: 1.02.24 (2007-12-20)
  Driver version:  4.12.0

and 2.6.24-rc6 kernel.

As noted previously, I could invert the operation, and things worked 
fine (RAID 0+1 - mirror 2 stripes constructed from 12 devices each).

Any help would be much appreciated, thanks,
Alan







More information about the dm-devel mailing list