Description of problem: LVM2 permits PVs to be created with 0 or more metadata areas. Creating volume groups with less MDAs than PVs improves tool performance for VGs with large numbers of PVs. Currently the tools permit the last MDA to be removed from a VG with no warning, causing the VG to suddenly "disappear". Version-Release number of selected component (if applicable): lvm2-2.02.21-5.el4, lvm2-2.02.24-1.fc7, lvm2 CVS 20070707. How reproducible: 100% Steps to Reproduce: 1. Create a volume group with #MDAS < #PVs: pvcreate --metadatacopies=1 /dev/loop0 pvcreate --metadatacopies=0 /dev/loop1 vgcreate t0 /dev/loop0 /dev/loop1 2. Attempt to remove the PV that contains the MDA vgreduce t0 /dev/loop0 Actual results: # vgreduce t0 /dev/loop0 Removed "/dev/loop0" from volume group "t0" # vgs No volume groups found Expected results: # vgreduce t0 /dev/loop0 Can't remove final metadata area on physical volume "/dev/loop0" from volume group "t0" Additional info:
Created attachment 158763 [details] rfc patch adding checking for final MDA removal
Now the is_orphan_vg() patches are upstream this should be addressed by the per-format type orphan support & using vg_split_mdas() to enforce the MDA checking.
Created attachment 298754 [details] create format instance for orphan volume groups Make _vg_read_orphans create a format instance when reading orphan VGs.
Created attachment 298755 [details] Make vgreduce use vg_split_mdas Make vgreduce use vg_split_mdas so we don't leave a VG with no MDAs at all.
This request was evaluated by Red Hat Product Management for inclusion in a Red Hat Enterprise Linux maintenance release. Product Management has requested further review of this request by Red Hat Engineering, for potential inclusion in a Red Hat Enterprise Linux Update release for currently deployed products. This request is not yet committed for inclusion in an Update release.
Fix verified in lvm2-2.02.37-3.el4.
An advisory has been issued which should help the problem described in this bug report. This report is therefore being closed with a resolution of ERRATA. For more information on therefore solution and/or where to find the updated files, please follow the link below. You may reopen this bug report if the solution does not work for you. http://rhn.redhat.com/errata/RHBA-2008-0776.html