[linux-lvm] HELP! LVM1 vgscan error (pvcreate bug?)

Stuart D. Gathman stuart at bmsi.com
Sat Mar 3 05:58:26 UTC 2007


HELP!  Questions at the end.  I am providing some history.

This volume group is built on md devices.  I needed to expand the space.
Originally there were two in the volume group (md0 is for boot):

  [root at cmslax etc]# cat /proc/mdstat
  Personalities : [raid1] 
  read_ahead 1024 sectors
  Event: 3
  md0 : active raid1 sdb2[1] sda2[0]
	40064 blocks [2/2] [UU]
	
  md1 : active raid1 sdb5[1] sda5[0]
	17687424 blocks [2/2] [UU]
	
  md2 : active raid1 sdb6[1] sda6[0]
	17775808 blocks [2/2] [UU]
	
  unused devices: <none>

I added drive sdc, allocated 72G non LVM partition, and made a full rsync
backup before beginning.  Then I migrated the sdb mirror copies to sdc 
and created md3 and md4:

  [root at cmslax etc]# cat /proc/mdstat
  Personalities : [raid1] 
  read_ahead 1024 sectors
  Event: 15                  
  md4 : active raid1 sdb6[1] sdc8[0]
	17775808 blocks [2/2] [UU]
	
  md3 : active raid1 sdc7[1] sdb5[0]
	17687424 blocks [2/2] [UU]
	
  md0 : active raid1 sdb2[1] sda2[0]
	40064 blocks [2/2] [UU]
	
  md1 : active raid1 sdc5[1] sda5[0]
	17687424 blocks [2/2] [UU]
	
  md2 : active raid1 sdc6[1] sda6[0]
	17775808 blocks [2/2] [UU]
	
  unused devices: <none>

The problem is with md3.  Since I left sdb5 as device 0, its data took
precedence, thus creating a duplicate PV UUID.  So, I ran pvcreate
with the "I really really mean it option" to wipe md3 (I learned my lesson
with md4).  BUT, when I extended the VG, pvdisplay shows this:

  [root at cmslax sbin]# pvdisplay /dev/md3
  --- Physical volume ---
  PV Name             /dev/md3
  VG Name             rootvg
  PV Size             16.87 GB [35374848 secs] / NOT usable 32.19 MB [LVM: 130 KB]
  PV#                 3
  PV Status           NOT available
  Allocatable         yes
  Cur LV              1
  PE Size (KByte)     32768
  Total PE            538
  Free PE             538
  Allocated PE        0
  PV UUID             YfvIpi-x3Cg-xKrR-j1T2-Gutz-u1tp-sl8t01

Then, I allocated a LV 'lvtest'.  This succeeded.  But md3 still
showed "NOT available".  Huh?  Now I can't remove lvtest, and vgscan
gets an error.  Did pvcreate do something to rootvg?  Worse, vgscan
wiped lvmtab.  I think I shouldn't have run vgscan...  So I restored
lvmtab (just has one vg: rootvg) and /etc/lvmtab.d from my backup.
Now, vgdisplay and friends work again.  but vgck gets the same error,
and I still can't remove lvtest, and can't reduce the VG:

  [root at cmslax sbin]# lvremove /dev/rootvg/lvtest
  lvremove -- do you really want to remove "/dev/rootvg/lvtest"? [y/n]: y
  lvremove -- ERROR "lv_release(): LV number" releasing logical volume "/dev/rootvg/lvtest"

  [root at cmslax sbin]# vgreduce rootvg /dev/md3
  vgreduce -- physical volume "/dev/md3" doesn't belong to volume group "rootvg"

  [root at cmslax sbin]# vgck
  vgck -- VGDA of "rootvg" in lvmtab is consistent
  vgck -- ERROR "vg_read_with_pv_and_lv(): current PV" reading data of volume group "rootvg" from physical volume(s)
  vgck -- please DON'T run vgscan prior to vgcfgrestore

  [root at cmslax etc]# pvscan
  pvscan -- reading all physical volumes (this may take a while...)
  pvscan -- WARNING: physical volume "/dev/sda5" belongs to a meta device
  pvscan -- WARNING: physical volume "/dev/sda6" belongs to a meta device
  pvscan -- WARNING: physical volume "/dev/sdb5" belongs to a meta device
  pvscan -- WARNING: physical volume "/dev/sdc5" belongs to a meta device
  pvscan -- WARNING: physical volume "/dev/sdc6" belongs to a meta device
  pvscan -- ACTIVE   PV "/dev/md1"  of VG "rootvg" [16.81 GB / 0 free]
  pvscan -- ACTIVE   PV "/dev/md2"  of VG "rootvg" [16.91 GB / 0 free]
  pvscan -- ACTIVE   PV "/dev/md3"  of VG "rootvg" [16.81 GB / 15.03 GB 
  free]
  pvscan -- total: 8 [50.69 GB] / in use: 8 [50.69 GB] / in no VG: 0 [0]

  [root at cmslax etc]# pvdisplay /dev/md3
  --- Physical volume ---
  PV Name               /dev/md3
  VG Name               rootvg
  PV Size               16.87 GB [35374848 secs] / NOT usable 32.19 MB [LVM: 130 KB]
  PV#                   3
  PV Status             NOT available
  Allocatable           yes
  Cur LV                1
  PE Size (KByte)       32768
  Total PE              538
  Free PE               481
  Allocated PE          57
  PV UUID               YfvIpi-x3Cg-xKrR-j1T2-Gutz-u1tp-sl8t01

  [root at cmslax sbin]# pvdata /dev/md3
  --- Physical volume ---
  PV Name               /dev/md3
  VG Name               rootvg
  PV Size               16.87 GB [35374848 secs] / NOT usable 32.19 MB [LVM: 130 KB]
  PV#                   3
  PV Status             NOT available
  Allocatable           yes
  Cur LV                1
  PE Size (KByte)       32768
  Total PE              538
  Free PE               481
  Allocated PE          57
  PV UUID               YfvIpi-x3Cg-xKrR-j1T2-Gutz-u1tp-sl8t01

  --- Volume group ---
  VG Name               
  VG Access             read/write
  VG Status             NOT available/resizable
  VG #                  0
  MAX LV                256
  Cur LV                11
  Open LV               0
  MAX LV Size           2 TB
  Max PV                256
  Cur PV                3
  Act PV                3
  VG Size               50.53 GB
  PE Size               32 MB
  Total PE              1617
  Alloc PE / Size       1136 / 35.50 GB
  Free  PE / Size       481 / 15.03 GB
  VG UUID               L5TG3Z-r4TS-P4Qe-hLmX-jbSz-VN9l-Pd1QHq

  --- List of logical volumes ---

  pvdata -- logical volume "/dev/rootvg/lv00" at offset   0
  pvdata -- logical volume "/dev/rootvg/lv01" at offset   1
  pvdata -- logical volume "/dev/rootvg/lv02" at offset   2
  pvdata -- logical volume "/dev/rootvg/lv03" at offset   3
  pvdata -- logical volume "/dev/rootvg/lv04" at offset   4
  pvdata -- logical volume "/dev/rootvg/lv05" at offset   5
  pvdata -- logical volume "/dev/rootvg/lv06" at offset   6
  pvdata -- logical volume "/dev/rootvg/lv07" at offset   7
  pvdata -- logical volume "/dev/rootvg/lvtest" at offset   8
  pvdata -- logical volume "/dev/rootvg/lv09" at offset   9
  pvdata -- logical volume "/dev/rootvg/lv10" at offset  10
  pvdata -- logical volume struct at offset  11 is empty
  ...
  pvdata -- logical volume struct at offset 255 is empty
  --- List of physical volume UUIDs ---

  001: e19MZP-dAoA-8I7P-2S6l-eUux-f1wI-XrlW23
  002: NTadnL-TAQJ-XLtL-i1nD-Zo7w-q5Ll-6k5CgN
  003: YfvIpi-x3Cg-xKrR-j1T2-Gutz-u1tp-sl8t01

I looks like vgextend didn't actually mark md3!

I have a feeling the system won't boot in this situation, since vgscan won't
run, and this is a remote system on the other side of the continent, so we
don't want to go the backup route.  (There are no knowlegable users, but I
think I can make a grub entry that boots to the backup partition and change
fstab and mtab - anything else I forgot?)

vgcfgrestore says it "doesn't restore LV data".  Does that mean it wipes
all LVs?  Or would it wipe lvtest and md3 from rootvg?

-- 
	      Stuart D. Gathman <stuart at bmsi.com>
    Business Management Systems Inc.  Phone: 703 591-0911 Fax: 703 591-6154
"Confutatis maledictis, flammis acribus addictis" - background song for
a Microsoft sponsored "Where do you want to go from here?" commercial.




More information about the linux-lvm mailing list