From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 22264 invoked by alias); 5 Mar 2009 19:36:43 -0000 Received: (qmail 22257 invoked by alias); 5 Mar 2009 19:36:43 -0000 X-SWARE-Spam-Status: No, hits=-1.8 required=5.0 tests=AWL,BAYES_00,SPF_HELO_PASS X-Spam-Status: No, hits=-1.8 required=5.0 tests=AWL,BAYES_00,SPF_HELO_PASS X-Spam-Check-By: sourceware.org X-Spam-Checker-Version: SpamAssassin 3.2.5 (2008-06-10) on bastion.fedora.phx.redhat.com Subject: cluster: STABLE3 - fence_scsi: remove scsi_reserve and scsi_reserve_notify To: cluster-cvs-relay@redhat.com X-Project: Cluster Project X-Git-Module: cluster.git X-Git-Refname: refs/heads/STABLE3 X-Git-Reftype: branch X-Git-Oldrev: 3aaa4c761cb1441fb6ede0553f87212569989917 X-Git-Newrev: 64b00b3216f9c60bd484f66f1c9424ac9af132bd From: David Teigland Message-Id: <20090305193604.AC1A21201F1@lists.fedorahosted.org> Date: Thu, 05 Mar 2009 19:36:00 -0000 X-Scanned-By: MIMEDefang 2.58 on 172.16.52.254 Mailing-List: contact cluster-cvs-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Post: List-Help: , Sender: cluster-cvs-owner@sourceware.org X-SW-Source: 2009-q1/txt/msg00697.txt.bz2 Gitweb: http://git.fedorahosted.org/git/cluster.git?p=cluster.git;a=commitdiff;h=64b00b3216f9c60bd484f66f1c9424ac9af132bd Commit: 64b00b3216f9c60bd484f66f1c9424ac9af132bd Parent: 3aaa4c761cb1441fb6ede0553f87212569989917 Author: David Teigland AuthorDate: Thu Mar 5 13:31:25 2009 -0600 Committer: David Teigland CommitterDate: Thu Mar 5 13:31:25 2009 -0600 fence_scsi: remove scsi_reserve and scsi_reserve_notify The fence_scsi agent itself does this stuff now with unfencing. Signed-off-by: David Teigland --- fence/agents/scsi/Makefile | 14 +-- fence/agents/scsi/scsi_reserve.in | 337 ------------------------------ fence/agents/scsi/scsi_reserve_notify.in | 5 - 3 files changed, 1 insertions(+), 355 deletions(-) diff --git a/fence/agents/scsi/Makefile b/fence/agents/scsi/Makefile index 40efe37..969e369 100644 --- a/fence/agents/scsi/Makefile +++ b/fence/agents/scsi/Makefile @@ -1,19 +1,7 @@ include ../../../make/defines.mk -TARGET= fence_scsi fence_scsi_test scsi_reserve_notify scsi_reserve +TARGET= fence_scsi fence_scsi_test SBINDIRT=fence_scsi fence_scsi_test -INITDT= scsi_reserve -NOTIFYD= scsi_reserve_notify include $(OBJDIR)/make/fencebuild.mk -$(NOTIFYD): $(S)/$(NOTIFYD).in - cat $(S)/$(NOTIFYD).in | sed \ - -e 's#@INITDT@#${initddir}#g' \ - > $(NOTIFYD) - -$(INITDT): $(S)/$(INITDT).in - cat $(S)/$(INITDT).in | sed \ - -e 's#@SBINDIR@#${sbindir}#g' \ - -e 's#@INITDDIR@#${initddir}#g' \ - > $(INITDT) diff --git a/fence/agents/scsi/scsi_reserve.in b/fence/agents/scsi/scsi_reserve.in deleted file mode 100644 index cb30444..0000000 --- a/fence/agents/scsi/scsi_reserve.in +++ /dev/null @@ -1,337 +0,0 @@ -#!/bin/bash -# -# scsi_reserve persistent reservation service for lvm -# -# chkconfig: - 25 75 -# description: start/stop persistent reservation service for lvm - -### BEGIN INIT INFO -# Provides: scsi_reserve -# Required-Start: cman -# Required-Stop: cman -# Default-Start: -# Default-Stop: -# Short-Description: start/stop persistent reservation service for lvm -# Description: start/stop persistent reservation service for lvm -### END INIT INFO - -# set secure PATH -PATH="/bin:/usr/bin:/sbin:/usr/sbin:@SBINDIR@" - -success() -{ - echo -ne "[ OK ]\r" -} - -failure() -{ - echo -ne "[FAILED]\r" -} - -# rpm based distros -if [ -d /etc/sysconfig ]; then - [ -f @INITDDIR@/functions ] && . @INITDDIR@/functions - [ -f /etc/sysconfig/cluster ] && . /etc/sysconfig/cluster - [ -f /etc/sysconfig/scsi_reserve ] && . /etc/sysconfig/scsi_reserve - [ -z "$LOCK_FILE" ] && LOCK_FILE="/var/lock/subsys/scsi_reserve" -fi - -# deb based distros -if [ -d /etc/default ]; then - [ -f /etc/default/cluster ] && . /etc/default/cluster - [ -f /etc/default/scsi_reserve ] && . /etc/default/scsi_reserve - [ -z "$LOCK_FILE" ] && LOCK_FILE="/var/lock/scsi_reserve" -fi - -# check that cman is running -# -if ! cman_tool status > /dev/null 2>&1; then - logger -t scsi_reserve \ - "[error] cman does not appear to be running" - exit 1 -fi - -# check if cluster is configured for fence_scsi -# -if ! fence_scsi_test -t fence ; then - logger -t scsi_reserve \ - "[error] cluster not configured for scsi reservations" - exit 1 -fi - -# check for sg_persist command provided by sg3_utils package -# -if ! sg_persist -V > /dev/null 2>&1; then - logger -t scsi_reserve \ - "[error] unable to exec sg_persist" - exit 1 -fi - -# get physical volumes (devices) that are part of cluster volumes -# -scsi_devices=$( vgs --config 'global { locking_type = 0 }' \ - --noheadings -o vg_attr,pv_name 2> /dev/null \ - | awk ' $1 ~ /.*c$/ { print $2 } ' ) - -if [ -z "$scsi_devices" ] ; then - logger -t scsi_reserve \ - "[error] did not find devices in cluster volumes" - exit 1 -fi - -# get the cluster id from cman -# -cluster_id=$( cman_tool status | grep -i "Cluster ID" \ - | awk -F": " '{ print $2 }' ) - -if [ -z "$cluster_id" ] ; then - logger -s -t scsi_reserve \ - "[error] unable to determine cluster id" - exit 1 -fi - -# get the node id from cman -# -node_id=$( cman_tool status | grep -i "Node ID" \ - | awk -F": " '{ print $2 }' ) - -if [ -z "$node_id" ] ; then - logger -t scsi_reserve \ - "[error] unable to determine node id" - exit 1 -fi - -# generate unique key using cluster_id and node_id -# -key=$( printf "%x%.4x" $cluster_id $node_id ) - -if [ -z "$key" ] ; then - logger -t scsi_reserve \ - "[error] unable to generate key" - exit 1 -fi - -################################################################################ - -case $1 in - - start) - - error=0 - count=0 - - echo -n "Starting scsi_reserve:" - - for dev in $scsi_devices - do - # check if our key is already resgistered with this device - # - if sg_persist -n -d $dev -i -k | grep -qiE "^[[:space:]]*0x$key" ; then - logger -t scsi_reserve \ - "[info] already registered with $dev (key=0x$key)" - continue - fi - - # create the scsi registration - # - if ! sg_persist -n -d $dev -o -I -S $key > /dev/null 2>&1; then - logger -t scsi_reserve \ - "[error] unable to register device $dev (key=0x$key)" - : $[ count = $count + 1 ] - error=1 - else - logger -t scsi_reserve \ - "[info] registered with device $dev (key=0x$key)" - fi - - # check to see if reservation already exists - # - if sg_persist -n -d $dev -i -r | grep -qiE "^[[:space:]]*Key=0x" ; then - logger -t scsi_reserve \ - "[info] reservation already exists on $dev" - continue - fi - - # create the scsi reservation - # - if ! sg_persist -n -d $dev -o -R -K $key -T 5 > /dev/null 2>&1; then - logger -t scsi_reserver \ - "[error] unable to create reservation on $dev (key=0x$key)" - : $[ count = $count + 1 ] - error=1 - fi - done - - # leave fence domain if any errors occured during registration - # - if [ $error -eq 0 ] ; then - success - else - logger -t scsi_reserve \ - "[info] $count errors during registration" - logger -t scsi_reserve \ - "[info] leaving the fence domain" - fence_tool leave - failure - fi - - touch $LOCK_FILE - - echo - - ;; # end of start - - stop) - - error=0 - count=0 - - echo -n "Stopping scsi_reserve:" - - for dev in $scsi_devices - do - # get list of keys registered with this device - # - key_list=$( sg_persist -n -d $dev -i -k | grep -iE "^[[:space:]]*0x" ) - - # check that our key is registered with this device - # - if ! sg_persist -d $dev -i -k | grep -qiE "^[[:space:]]*0x$key" ; then - logger -t scsi_reserve \ - "[info] not registered with $dev (key=0x$key)" - continue - fi - - # check if our key is the reservation holder - # - if sg_persist -n -d $dev -i -r 2>/dev/null | grep -qiE "$key" ; then - if echo "$key_list" | grep -qivE "$key" ; then - logger -t scsi_reserve \ - "[error] unable to remove registration on $dev (key=0x$key)" - : $[ count = $count + 1 ] - error=1 - continue - fi - fi - - # remove registration for this device - # - if ! sg_persist -n -d $dev -o -G -K $key -S 0 > /dev/null 2>&1; then - logger -t scsi_reserve \ - "[error] failed to remove registration on $dev (key=0x$key)" - : $[ count = $count + 1 ] - error=1 - else - logger -t scsi_reserve \ - "[info] removed registration on $dev (key=0x$key)" - fi - - done - - # report success or failure - # - if [ $error -eq 0 ] ; then - success - else - logger -t scsi_reserve \ - "[info] $count errors occured during unregistration" - failure - fi - - rm -f $LOCK_FILE - - echo - - ;; # end of stop - - restart) - - error=0 - - echo -n "Retarting scsi_reserve:" - - for dev in $scsi_devices - do - # recreate the scsi registration - # - if ! sg_persist -n -d $dev -o -I -S $key > /dev/null 2>&1; then - logger -t scsi_reserve \ - "[error] unable to register device $dev (key=0x$key)" - : $[ count = $count + 1 ] - error=1 - else - logger -t scsi_reserve \ - "[info] registered with device $dev (key=0x$key)" - fi - - # check to see if reservation already exists - # - if sg_persist -n -d $dev -i -r | grep -qiE "^[[:space:]]*Key=0x" ; then - logger -t scsi_reserve \ - "[info] reservation already exists on $dev" - continue - fi - - # recreate the scsi reservation - # - if ! sg_persist -n -d $dev -o -R -K $key -T 5 > /dev/null 2>&1; then - logger -t scsi_reserver \ - "[error] unable to create reservation on $dev (key=0x$key)" - : $[ count = $count + 1 ] - error=1 - fi - done - - # leave fence domain if any errors occured during registration - # - if [ $error -eq 0 ] ; then - success - else - logger -t scsi_reserve \ - "[info] $count errors during registration" - logger -t scsi_reserve \ - "[info] leaving the fence domain" - fence_tool leave - failure - fi - - echo - - ;; # end of restart - - status) - - error=0 - - for dev in $scsi_devices - do - if sg_persist -n -d $dev -i -k | grep -qiE "$key" ; then - devices[${#devices[@]}]=$dev - fi - done - - if [ -z "$devices" ] ; then - echo "No registered devices found." - else - echo "Found ${#devices[@]} registered device(s):" - - for i in "${devices[@]}" - do - echo $i - done - fi - - ;; # end of status - - restart|reload) - $0 stop - $0 start - ;; - - *) - echo $"Usage: $0 {start|stop|restart|reload|status}" - exit 1 - -esac - -exit $error diff --git a/fence/agents/scsi/scsi_reserve_notify.in b/fence/agents/scsi/scsi_reserve_notify.in deleted file mode 100644 index ac6c3f4..0000000 --- a/fence/agents/scsi/scsi_reserve_notify.in +++ /dev/null @@ -1,5 +0,0 @@ -#!/bin/bash - -[ "$CMAN_NOTIFICATION" = "CMAN_REASON_CONFIG_UPDATE" ] && @INITDT@/scsi_reserve start - -exit 0