summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJonathan Brassow <jbrassow@redhat.com>2012-07-26 17:06:06 -0500
committerJonathan Brassow <jbrassow@redhat.com>2012-07-26 17:06:06 -0500
commit186a2772e8ac3c2088bdfc833c32d773464d666b (patch)
tree3650045026ecb902565a64133a13976afec8e476
parent45db25817ff342a86b2ddf000b4b3a4d59be8848 (diff)
downloadlvm2-186a2772e8ac3c2088bdfc833c32d773464d666b.tar.gz
lvm2-186a2772e8ac3c2088bdfc833c32d773464d666b.tar.xz
lvm2-186a2772e8ac3c2088bdfc833c32d773464d666b.zip
vgextend: Allow PVs to be added to VGs that have PVs missing
Allowing people to add devices to a VG that has PVs missing helps people avoid the inability to repair RAID LVs in certain cases. For example, if a user creates a RAID 4/5/6 LV using all of the available devices in a VG, there will be no spare devices to repair the LV with if a device should fail. Further, because the VG is missing a device, new devices cannot be added to allow the repair. If 'vgreduce --removemissing' were attempted, the "MISSING" PV could not be removed without also destroying the RAID LV. Allowing vgextend to operate solves the circular dependency. When the PV is added by a vgextend operation, the sequence number is incremented and the 'MISSING' flag is put on the PVs which are missing.
-rw-r--r--WHATS_NEW1
-rw-r--r--tools/vgextend.c9
2 files changed, 8 insertions, 2 deletions
diff --git a/WHATS_NEW b/WHATS_NEW
index 735bdba4..32ebf15d 100644
--- a/WHATS_NEW
+++ b/WHATS_NEW
@@ -1,5 +1,6 @@
Version 2.02.97 -
===============================
+ Allow vgextend to add PVs to a VG that is missing PVs.
Recognise Micron PCIe SSDs in filter and move array out to device-types.h.
Fix segfault when attempting to replace RAID 4/5/6 device (2.02.97).
Fix dumpconfig <node> to print only <node> without its siblings (2.02.89).
diff --git a/tools/vgextend.c b/tools/vgextend.c
index d1adf210..161796ce 100644
--- a/tools/vgextend.c
+++ b/tools/vgextend.c
@@ -66,8 +66,13 @@ int vgextend(struct cmd_context *cmd, int argc, char **argv)
return EINVALID_CMD_LINE;
}
- if (arg_count(cmd, restoremissing_ARG))
- cmd->handles_missing_pvs = 1;
+ /*
+ * It is always ok to add new PVs to a VG - even if there are
+ * missing PVs. No LVs are affected by this operation, but
+ * repair processes - particularly for RAID segtypes - can
+ * be facilitated.
+ */
+ cmd->handles_missing_pvs = 1;
log_verbose("Checking for volume group \"%s\"", vg_name);
vg = vg_read_for_update(cmd, vg_name, NULL, 0);