From 2f54dbd28c325b68dd8afc7c87f925df42806e94 Mon Sep 17 00:00:00 2001 From: Petr Rockai Date: Tue, 27 Jul 2010 20:05:29 +0000 Subject: [PATCH] Make vgck warn about missing PVs. --- WHATS_NEW | 1 + test/t-activate-missing.sh | 4 +++ test/t-nomda-missing.sh | 73 ++++++++++++++++++++++++++++++++++++++ tools/vgck.c | 6 ++++ 4 files changed, 84 insertions(+) create mode 100644 test/t-nomda-missing.sh diff --git a/WHATS_NEW b/WHATS_NEW index d1eb80a5c..6b5b5150d 100644 --- a/WHATS_NEW +++ b/WHATS_NEW @@ -1,5 +1,6 @@ Version 2.02.71 - =============================== + Make vgck warn about missing PVs. Clarify help text for vg_mda_count. Check if cluster log daemon is running before allowing cmirror create. Check if LV with specified name already exists when splitting a mirror. diff --git a/test/t-activate-missing.sh b/test/t-activate-missing.sh index 8512c51c9..86fb09ced 100644 --- a/test/t-activate-missing.sh +++ b/test/t-activate-missing.sh @@ -24,6 +24,7 @@ lvcreate -l1 -m1 -n mirror123 $vg $dev1 $dev2 $dev3 vgchange -a n $vg disable_dev $dev1 not vgchange -a y $vg +not vgck $vg check inactive $vg linear1 check active $vg linear2 @@ -37,6 +38,7 @@ vgchange -a n $vg enable_dev $dev1 disable_dev $dev2 not vgchange -a y $vg +not vgck $vg check active $vg linear1 check inactive $vg linear2 @@ -50,6 +52,7 @@ vgchange -a n $vg enable_dev $dev2 disable_dev $dev3 not vgchange -a y $vg +not vgck $vg check active $vg origin1 check active $vg s_napshot2 @@ -63,6 +66,7 @@ vgchange -a n $vg enable_dev $dev3 disable_dev $dev4 vgchange -a y $vg +not vgck $vg check active $vg origin1 check active $vg s_napshot2 diff --git a/test/t-nomda-missing.sh b/test/t-nomda-missing.sh new file mode 100644 index 000000000..4f086a93b --- /dev/null +++ b/test/t-nomda-missing.sh @@ -0,0 +1,73 @@ +#!/bin/bash + +. ./test-utils.sh + +prepare_devs 4 +pvcreate $dev1 $dev2 +pvcreate --metadatacopies 0 $dev3 $dev4 +vgcreate $vg $dev1 $dev2 $dev3 $dev4 + +lvcreate -l1 -n linear1 $vg $dev1 +lvcreate -l1 -n linear2 $vg $dev2 +lvcreate -l2 -n linear12 $vg $dev1:4 $dev2:4 + +lvcreate -l1 -n origin1 $vg $dev1 +lvcreate -s $vg/origin1 -l1 -n s_napshot2 $dev2 + +lvcreate -l1 -m1 -n mirror12 --mirrorlog core $vg $dev1 $dev2 +lvcreate -l1 -m1 -n mirror123 $vg $dev1 $dev2 $dev3 + +vgchange -a n $vg +disable_dev $dev1 +not vgchange -a y $vg +not vgck $vg + +check inactive $vg linear1 +check active $vg linear2 +check inactive $vg origin1 +check inactive $vg s_napshot2 +check inactive $vg linear12 +check inactive $vg mirror12 +check inactive $vg mirror123 + +vgchange -a n $vg +enable_dev $dev1 +disable_dev $dev2 +not vgchange -a y $vg +not vgck $vg + +check active $vg linear1 +check inactive $vg linear2 +check inactive $vg linear12 +check inactive $vg origin1 +check inactive $vg s_napshot2 +check inactive $vg mirror12 +check inactive $vg mirror123 + +vgchange -a n $vg +enable_dev $dev2 +disable_dev $dev3 +not vgchange -a y $vg +not vgck $vg + +check active $vg origin1 +check active $vg s_napshot2 +check active $vg linear1 +check active $vg linear2 +check active $vg linear12 +check inactive $vg mirror123 +check active $vg mirror12 + +vgchange -a n $vg +enable_dev $dev3 +disable_dev $dev4 +vgchange -a y $vg +not vgck $vg + +check active $vg origin1 +check active $vg s_napshot2 +check active $vg linear1 +check active $vg linear2 +check active $vg linear12 +check active $vg mirror12 +check active $vg mirror123 diff --git a/tools/vgck.c b/tools/vgck.c index d9613b57a..bdfee05a6 100644 --- a/tools/vgck.c +++ b/tools/vgck.c @@ -31,6 +31,12 @@ static int vgck_single(struct cmd_context *cmd __attribute__((unused)), return ECMD_FAILED; } + if (vg_missing_pv_count(vg)) { + log_error("The volume group is missing %d physical volumes.", + vg_missing_pv_count(vg)); + return ECMD_FAILED; + } + return ECMD_PROCESSED; } -- 2.43.5