Change in vdsm[master]: fcp: Deactivate vdsm volume groups during boot

nsoffer at redhat.com nsoffer at redhat.com
Wed Oct 30 16:11:42 UTC 2013


Nir Soffer has uploaded a new change for review.

Change subject: fcp: Deactivate vdsm volume groups during boot
......................................................................

fcp: Deactivate vdsm volume groups during boot

When using FC storage, physical volumes are connected during boot, and
vdsm volume groups are auto-activated by /etc/rc.sysinit and/or
/etc/init.d/netfs.  This is abnormal situation that vdsm cannot handle,
and leads to data corruption.

This patch adds a new init script that deactivate FC volume groups
during boot.

This script must also be used during installation or ugprade. It is safe
to invoke it multiple times; it will modify volume groups only on the
first run.

On RHEL 6.5 we can use new activation skipping option instead of this
script. I'll address this in a separate patch.

Change-Id: I8f72a68ad09566ba222aa45448c78d1577c40d21
Bug-Url: https://bugzilla.redhat.com/1009812
Signed-off-by: Nir Soffer <nsoffer at redhat.com>
---
A init/sysvinit/vdsm-deactivate-vgs.init
1 file changed, 88 insertions(+), 0 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/vdsm refs/changes/20/20720/1

diff --git a/init/sysvinit/vdsm-deactivate-vgs.init b/init/sysvinit/vdsm-deactivate-vgs.init
new file mode 100644
index 0000000..0b56c43
--- /dev/null
+++ b/init/sysvinit/vdsm-deactivate-vgs.init
@@ -0,0 +1,88 @@
+#! /bin/sh
+#
+# Copyright 2013 Red Hat, Inc. and/or its affiliates.
+#
+# Licensed to you under the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.  See the files README and
+# LICENSE_GPL_v2 which accompany this distribution.
+#
+
+# chkconfig: 2345 98 00
+#
+### BEGIN INIT INFO
+# Provides: vdsm-deacivate-vgs
+# Required-Start: $syslog $network
+# Should-Start: $time
+# Required-Stop:
+# Default-Start: 2 3 4 5
+# Default-Stop: 0 1 6
+# Description: dactivate VDS management server logical volumes
+# Short-Description: dactivate VDS management server logical volumes
+### END INIT INFO
+
+. /etc/init.d/functions
+
+run_file="var/run/vdsm/lvm/deactivate-vgs"
+prog="vdsm-deactivate-vgs"
+retval=0
+
+log_failure_msg()
+{
+    printf "$@"; failure "$@"; echo;
+}
+
+log_success_msg()
+{
+    printf "$@"; success "$@"; echo;
+}
+
+is_first_run()
+{
+    test ! -f $run_file
+}
+
+set_was_run()
+{
+    touch $run_file
+}
+
+deactivate_vdsm_vgs()
+{
+    local vgs_info=$(/sbin/lvm vgs --noheadings -o vg_name,tags)
+    if [ $? -ne 0 ]; then
+        log_failure_msg "$prog: error checking vgs"
+        return 1
+    fi
+
+    local vdsm_vgs=$(echo $vgs_info | /bin/awk '/MDT_TYPE=FCP/ {print $1}')
+    if [ $? -ne 0 ]; then
+        log_failure_msg "$prog: error filtering vgs"
+        return 1
+    fi
+
+    if ! lvm vgchange -a n $vdsm_vgs; then
+        log_failure_msg "$prog: error deactivating vdsm vgs"
+        return 1
+    fi
+
+    log_success_msg "$prog: deactivated vdsm vgs"
+    return 0
+}
+
+case "$1" in
+    start)
+        if is_first_run; then
+            set_was_run
+            deactivate_vdsm_vgs
+            retval=$?
+        fi
+    ;;
+    stop)
+    ;;
+    *)
+    echo "Usage: $0 {start|stop}"
+    retval=2
+esac
+
+exit $retval


-- 
To view, visit http://gerrit.ovirt.org/20720
To unsubscribe, visit http://gerrit.ovirt.org/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: I8f72a68ad09566ba222aa45448c78d1577c40d21
Gerrit-PatchSet: 1
Gerrit-Project: vdsm
Gerrit-Branch: master
Gerrit-Owner: Nir Soffer <nsoffer at redhat.com>


More information about the vdsm-patches mailing list