fcfb04d621
Except for Do-not-log-at-debug-log-level-when-HA_debug-is-unset.patch, which is merged upstream, others local patches have been ported. Depends-On: https://review.opendev.org/c/starlingx/tools/+/817010 Story: 2009221 Task: 43310 Signed-off-by: Yue Tao <yue.tao@windriver.com> Change-Id: Id602f7b9dac55b06e46337fb800a865d3a82d701
61 lines
1.9 KiB
Diff
61 lines
1.9 KiB
Diff
From 7c181a1afdc85456333f9cbf9c5827ceb0554a91 Mon Sep 17 00:00:00 2001
|
|
From: Chris Friesen <chris.friesen@windriver.com>
|
|
Date: Fri, 24 Aug 2018 03:51:37 +0800
|
|
Subject: [PATCH] Fix VG activity bug in heartbeat/LVM script
|
|
|
|
There is currently an issue in the lvm2 package where if you create an LVM thin
|
|
pool, then create a thin volume in the pool, then the udev rule doesn't think
|
|
there should be a /dev// symlink for the thin pool, but "vgmknodes" and
|
|
"vgscan --mknodes" both think that there should be such a symlink. This is a
|
|
bug, but it's in the field in CentOS 7 at least and likely elsewhere.
|
|
|
|
The end result of this is that on such a system running either "vgscan
|
|
--mknodes" or "vgmknodes" and then running "vgchange -an " will
|
|
leave the /dev/ directory with a dangling symlink in it.
|
|
|
|
This breaks the LVM_status() function in this OCF script, since the
|
|
/dev/ directory exists and is not empty even though the volume
|
|
group is not active.
|
|
|
|
This commit changes the code to directly query lvm about the volume group
|
|
activity rather than relying on side effects.
|
|
|
|
Signed-off-by: zhipengl <zhipengs.liu@intel.com>
|
|
|
|
---
|
|
heartbeat/LVM | 15 ++++++---------
|
|
1 file changed, 6 insertions(+), 9 deletions(-)
|
|
|
|
diff --git a/heartbeat/LVM b/heartbeat/LVM
|
|
index 893ece8..1efb207 100755
|
|
--- a/heartbeat/LVM
|
|
+++ b/heartbeat/LVM
|
|
@@ -191,18 +191,15 @@ LVM_status() {
|
|
fi
|
|
fi
|
|
|
|
- if [ -d /dev/$1 ]; then
|
|
- test "`cd /dev/$1 && ls`" != ""
|
|
- rc=$?
|
|
- if [ $rc -ne 0 ]; then
|
|
- ocf_exit_reason "VG $1 with no logical volumes is not supported by this RA!"
|
|
- fi
|
|
- fi
|
|
-
|
|
- if [ $rc -ne 0 ]; then
|
|
+ # Ask lvm whether the volume group is active. This maps to
|
|
+ # the question "Are there any logical volumes that are active in
|
|
+ # the specified volume group?".
|
|
+ lvs --noheadings -o selected -S lv_active=active,vg_name=${1}|grep -q 1
|
|
+ if [ $? -ne 0 ]; then
|
|
ocf_log $loglevel "LVM Volume $1 is not available (stopped)"
|
|
rc=$OCF_NOT_RUNNING
|
|
else
|
|
+ rc=0
|
|
lvm_status
|
|
rc=$?
|
|
fi
|
|
--
|
|
2.7.4
|
|
|