[Ocfs2-tools-commits] smushran commits r1316 - trunk/vendor/common
svn-commits at oss.oracle.com
svn-commits at oss.oracle.com
Mon Mar 12 15:07:01 PDT 2007
Author: smushran
Date: 2007-03-12 15:07:00 -0700 (Mon, 12 Mar 2007)
New Revision: 1316
Modified:
trunk/vendor/common/o2cb.init
Log:
o2cb.init: Configure o2net timeouts
o2cb service allows users to configure o2net timeouts
Signed-off-by: jlbec
Modified: trunk/vendor/common/o2cb.init
===================================================================
--- trunk/vendor/common/o2cb.init 2007-03-08 05:46:18 UTC (rev 1315)
+++ trunk/vendor/common/o2cb.init 2007-03-12 22:07:00 UTC (rev 1316)
@@ -35,6 +35,9 @@
fi
MIN_O2CB_HEARTBEAT_THRESHOLD=7
+MIN_O2CB_IDLE_TIMEOUT_MS=10000
+MIN_O2CB_KEEPALIVE_DELAY_MS=5000
+MIN_O2CB_RECONNECT_DELAY_MS=2000
# Source configuration,
[ -f "${CONFIGURATION}" ] && . "${CONFIGURATION}"
@@ -132,6 +135,15 @@
# O2CB_HEARTBEAT_THRESHOLD: Iterations before a node is considered dead.
O2CB_HEARTBEAT_THRESHOLD=${O2CB_HEARTBEAT_THRESHOLD}
+# O2CB_IDLE_TIMEOUT_MS: Time in ms before a network connection is considered dead.
+O2CB_IDLE_TIMEOUT_MS=${O2CB_IDLE_TIMEOUT_MS}
+
+# O2CB_KEEPALIVE_DELAY_MS: Max time in ms before a keepalive packet is sent
+O2CB_KEEPALIVE_DELAY_MS=${O2CB_KEEPALIVE_DELAY_MS}
+
+# O2CB_RECONNECT_DELAY_MS: Min time in ms between connection attempts
+O2CB_RECONNECT_DELAY_MS=${O2CB_RECONNECT_DELAY_MS}
+
EOF
if [ $? != 0 ]
@@ -142,6 +154,118 @@
}
#
+# read_timeout()
+# Returns timeout value provided by user to caller in RET_VAL
+#
+read_timeout()
+{
+ if [ "$#" -lt "3" ]; then
+ echo "read_timeout(): Requires more arguments" >&2
+ exit 1
+ fi
+
+ ATTRIB_NAME=$1
+ ATTRIB_VAL=$2
+ MIN_ATTRIB_VAL=$3
+ RET_VAL=0
+
+ while :
+ do
+ if [ -z $ATTRIB_VAL ]; then
+ CUR=$MIN_ATTRIB_VAL
+ else
+ CUR=$ATTRIB_VAL
+ fi
+ echo -n "Specify ${ATTRIB_NAME} (>=$MIN_ATTRIB_VAL) [$CUR]: "
+ read LINE
+ case "$LINE" in
+ "")
+ RET_VAL="$ATTRIB_VAL"
+ break
+ ;;
+
+ *[^0-9]*)
+ echo "Invalid ${ATTRIB_NAME} value: $LINE" >&2
+ ;;
+ *)
+ if [ $LINE -lt $MIN_ATTRIB_VAL ]; then
+ echo "${ATTRIB_NAME} cannot be less than $MIN_ATTRIB_VAL" >&2
+ else
+ RET_VAL="$LINE"
+ break
+ fi
+ ;;
+ esac
+ done
+}
+
+set_timeouts()
+{
+ O2CB_HEARTBEAT_THRESHOLD_FILE_OLD=/proc/fs/ocfs2_nodemanager/hb_dead_threshold
+ O2CB_HEARTBEAT_THRESHOLD_FILE=$(configfs_path)/cluster/${CLUSTER}/heartbeat/dead_threshold
+ if [ -n "$O2CB_HEARTBEAT_THRESHOLD" ]; then
+ if [ -f "$O2CB_HEARTBEAT_THRESHOLD_FILE" ]; then
+ echo "$O2CB_HEARTBEAT_THRESHOLD" > "$O2CB_HEARTBEAT_THRESHOLD_FILE"
+ elif [ -f "$O2CB_HEARTBEAT_THRESHOLD_FILE_OLD" ]; then
+ echo "$O2CB_HEARTBEAT_THRESHOLD" > "$O2CB_HEARTBEAT_THRESHOLD_FILE_OLD"
+ fi
+ fi
+
+ O2CB_IDLE_TIMEOUT_MS_FILE=$(configfs_path)/cluster/${CLUSTER}/idle_timeout_ms
+ if [ -n "$O2CB_IDLE_TIMEOUT_MS" ]; then
+ if [ -f "$O2CB_IDLE_TIMEOUT_MS_FILE" ]; then
+ echo "$O2CB_IDLE_TIMEOUT_MS" > "$O2CB_IDLE_TIMEOUT_MS_FILE"
+ fi
+ fi
+
+ O2CB_KEEPALIVE_DELAY_MS_FILE=$(configfs_path)/cluster/${CLUSTER}/keepalive_delay_ms
+ if [ -n "$O2CB_KEEPALIVE_DELAY_MS" ]; then
+ if [ -f "$O2CB_KEEPALIVE_DELAY_MS_FILE" ]; then
+ echo "$O2CB_KEEPALIVE_DELAY_MS" > "$O2CB_KEEPALIVE_DELAY_MS_FILE"
+ fi
+ fi
+
+ O2CB_RECONNECT_DELAY_MS_FILE=$(configfs_path)/cluster/${CLUSTER}/reconnect_delay_ms
+ if [ -n "$O2CB_RECONNECT_DELAY_MS" ]; then
+ if [ -f "$O2CB_RECONNECT_DELAY_MS_FILE" ]; then
+ echo "$O2CB_RECONNECT_DELAY_MS" > "$O2CB_RECONNECT_DELAY_MS_FILE"
+ fi
+ fi
+}
+
+show_timeouts()
+{
+
+ O2CB_HEARTBEAT_THRESHOLD_FILE_OLD=/proc/fs/ocfs2_nodemanager/hb_dead_threshold
+ O2CB_HEARTBEAT_THRESHOLD_FILE=$(configfs_path)/cluster/${CLUSTER}/heartbeat/dead_threshold
+ if [ -f "$O2CB_HEARTBEAT_THRESHOLD_FILE" ]; then
+ VAL=`cat "$O2CB_HEARTBEAT_THRESHOLD_FILE"`
+ echo "Heartbeat dead threshold = ${VAL}"
+ elif [ -f "$O2CB_HEARTBEAT_THRESHOLD_FILE_OLD" ]; then
+ VAL=`cat "$O2CB_HEARTBEAT_THRESHOLD_FILE_OLD"`
+ echo " Heartbeat dead threshold: ${VAL}"
+ fi
+
+ O2CB_IDLE_TIMEOUT_MS_FILE=$(configfs_path)/cluster/${CLUSTER}/idle_timeout_ms
+ if [ -f "$O2CB_IDLE_TIMEOUT_MS_FILE" ]; then
+ VAL=`cat "$O2CB_IDLE_TIMEOUT_MS_FILE"`
+ echo " Network idle timeout: ${VAL}"
+ fi
+
+ O2CB_KEEPALIVE_DELAY_MS_FILE=$(configfs_path)/cluster/${CLUSTER}/keepalive_delay_ms
+ if [ -f "$O2CB_KEEPALIVE_DELAY_MS_FILE" ]; then
+ VAL=`cat "$O2CB_KEEPALIVE_DELAY_MS_FILE"`
+ echo " Network keepalive delay: ${VAL}"
+ fi
+
+ O2CB_RECONNECT_DELAY_MS_FILE=$(configfs_path)/cluster/${CLUSTER}/reconnect_delay_ms
+ if [ -f "$O2CB_RECONNECT_DELAY_MS_FILE" ]; then
+ VAL=`cat "$O2CB_RECONNECT_DELAY_MS_FILE"`
+ echo " Network reconnect delay: ${VAL}"
+ fi
+}
+
+#
# configure_ask()
#
# Ask configuration questions, setting the shell vars.
@@ -210,37 +334,19 @@
esac
done
- while :
- do
- if [ -z $O2CB_HEARTBEAT_THRESHOLD ]
- then
- CUR=$MIN_O2CB_HEARTBEAT_THRESHOLD
- else
- CUR=$O2CB_HEARTBEAT_THRESHOLD
- fi
- echo -n "Specify heartbeat dead threshold (>=$MIN_O2CB_HEARTBEAT_THRESHOLD) [$CUR]: "
- read LINE
- case "$LINE" in
- "")
- break
- ;;
+ read_timeout "heartbeat dead threshold" "$O2CB_HEARTBEAT_THRESHOLD" "$MIN_O2CB_HEARTBEAT_THRESHOLD"
+ O2CB_HEARTBEAT_THRESHOLD="$RET_VAL"
- *[^0-9]*)
- echo "Invalid heartbeat dead threshold value: $LINE" >&2
- ;;
- *)
- if [ $LINE -lt $MIN_O2CB_HEARTBEAT_THRESHOLD ]
- then
- echo "Heartbeat dead threshold cannot be less than $MIN_O2CB_HEARTBEAT_THRESHOLD" >&2
- else
- O2CB_HEARTBEAT_THRESHOLD="$LINE"
- break
- fi
- ;;
- esac
- done
+ read_timeout "network idle timeout in ms" "$O2CB_IDLE_TIMEOUT_MS" "$MIN_O2CB_IDLE_TIMEOUT_MS"
+ O2CB_IDLE_TIMEOUT_MS="$RET_VAL"
- # XXX ask about mount point base
+ read_timeout "network keepalive delay in ms" "$O2CB_KEEPALIVE_DELAY_MS" "$MIN_O2CB_KEEPALIVE_DELAY_MS"
+ O2CB_KEEPALIVE_DELAY_MS="$RET_VAL"
+
+ read_timeout "network reconnect delay in ms" "$O2CB_RECONNECT_DELAY_MS" "$MIN_O2CB_RECONNECT_DELAY_MS"
+ O2CB_RECONNECT_DELAY_MS="$RET_VAL"
+
+ # XXX ask about mount point base
}
@@ -629,18 +735,7 @@
OUTPUT="`o2cb_ctl -H -n "${CLUSTER}" -t cluster -a online=yes 2>&1`"
if [ $? = 0 ]
then
- O2CB_HEARTBEAT_THRESHOLD_FILE_OLD=/proc/fs/ocfs2_nodemanager/hb_dead_threshold
- O2CB_HEARTBEAT_THRESHOLD_FILE=$(configfs_path)/cluster/${CLUSTER}/heartbeat/dead_threshold
- if [ -n "$O2CB_HEARTBEAT_THRESHOLD" ]; then
- if [ -f "$O2CB_HEARTBEAT_THRESHOLD_FILE" ]; then
- echo "$O2CB_HEARTBEAT_THRESHOLD" > "$O2CB_HEARTBEAT_THRESHOLD_FILE"
- elif [ -f "$O2CB_HEARTBEAT_THRESHOLD_FILE_OLD" ]; then
- echo "$O2CB_HEARTBEAT_THRESHOLD" > "$O2CB_HEARTBEAT_THRESHOLD_FILE_OLD"
- else
- echo "WARNING: Unable to set heartbeat dead threshold" >&2
- fi
- fi
-
+ set_timeouts
echo "OK"
return
else
@@ -799,6 +894,8 @@
return 0;
fi
+ show_timeouts
+
echo -n "Checking O2CB heartbeat: "
check_heartbeat $CLUSTER
if [ $? = 2 ]
More information about the Ocfs2-tools-commits
mailing list