80480de8bc
Story: 2003389 Task: 24500 Depends-On: https://review.openstack.org/#/c/595986/ Change-Id: I1d1101bf1f419fe8c4260b4b638544871b39531d Signed-off-by: zhipengl <zhipengs.liu@intel.com>
62 lines
2.1 KiB
Diff
62 lines
2.1 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
|
|
@@ -338,19 +338,16 @@ LVM_status() {
|
|
fi
|
|
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
|
|
case $(get_vg_mode) in
|
|
1) # exclusive with tagging.
|
|
# If vg is running, make sure the correct tag is present. Otherwise we
|
|
--
|
|
2.7.4
|
|
|