diff options
author | Jakub Jirutka <jakub@jirutka.cz> | 2017-11-14 01:43:08 +0100 |
---|---|---|
committer | Jakub Jirutka <jakub@jirutka.cz> | 2017-11-14 01:43:08 +0100 |
commit | f10ea8df610c3be33ff846a4e92ab4e846f79d05 (patch) | |
tree | 314b71fd453e9c9b9dbe50b99b5f164c1092883e /main/ocfs2-tools/ocfs2-tools.initd | |
parent | 3def523fc023119ccede55509bc982562437b9db (diff) | |
download | aports-f10ea8df610c3be33ff846a4e92ab4e846f79d05.tar.bz2 aports-f10ea8df610c3be33ff846a4e92ab4e846f79d05.tar.xz |
unmaintained/ocfs2-tools: move from main
This aport is disabled for several years.
Diffstat (limited to 'main/ocfs2-tools/ocfs2-tools.initd')
-rw-r--r-- | main/ocfs2-tools/ocfs2-tools.initd | 193 |
1 files changed, 0 insertions, 193 deletions
diff --git a/main/ocfs2-tools/ocfs2-tools.initd b/main/ocfs2-tools/ocfs2-tools.initd deleted file mode 100644 index b6d43ddc13..0000000000 --- a/main/ocfs2-tools/ocfs2-tools.initd +++ /dev/null @@ -1,193 +0,0 @@ -#!/sbin/openrc-run - -: ${OCFS2_FSCK:="-fy"} - -depend() { - need net localmount - before netmount - after drbd -} - -pseudofs() { - [ -n "`mount -t $1`" ] && return 0 - ewarn "OCFS2: Pseudo-filesystem $1 are not mounted." - ewarn "Make sure you have following lines in your /etc/fstab:" - ewarn "none $2 $1 defaults 0 0" - - # Why not? - ebegin "Mounting $1" - mount -t $1 none $2 && [ -n "`mount -t $1`" ] - eend $? || return 1 -} - -fmod() { - [[ -e "$1" ]] && return 0 - modprobe -s $2 && [[ -e "$1" ]] && return 0 - eerror "OCFS2: Module '$2' failed, '$1' not found" - return 1 -} - -# unsure about possibility to keep heartbeat unclean after correct umount -# but Oracle do so -clean_heartbeat(){ - local err=0 id - for i in "/sys/kernel/config/cluster/$1/heartbeat"/*; do - [[ -d "$i" ]] || continue - id="${i##*/}" - ebegin "Cleaning OCFS2 heartbeat region $1/$id" - [[ "`/sbin/ocfs2_hb_ctl -I -u "$id" | grep -o " [0-9]* refs$"`" == " 0 refs" ]] && /sbin/ocfs2_hb_ctl -K -u "$id" || ! [[ -d "$i" ]] - eend $? || err=1 - done - return $err -} - -UUID(){ - local dev fs stack uuid label - /sbin/mounted.ocfs2 -d|while read dev fs stack uuid label; do - [[ "$stack" == "o2cb" ]] && echo "$uuid" - done|sort -u -} - -clusters(){ - [[ -z "${OCFS2_CLUSTER}" ]] && for i in /sys/kernel/config/cluster/*; do - OCFS2_CLUSTER="${OCFS2_CLUSTER} ${i##*/}" - done - echo "${OCFS2_CLUSTER}" -} - -stop_cluster(){ - if clean_heartbeat $1 || [[ "${OCFS2_FORCE_STOP}" == yes ]]; then - ebegin "Stopping OCFS2 cluster '$1'" - /sbin/o2cb_ctl -H -n $1 -t cluster -a online=no >/dev/null - eend $? || return 1 - else - return 1 - fi -} - -online(){ - local cluster - for cluster in ${*:-$(clusters)}; do - grep -q "^1\$" /sys/kernel/config/cluster/$cluster/node/*/local 2>/dev/null || return 1 - done - return 0 -} - -start() { - ( fmod /sys/fs/ocfs2 ocfs2 && - fmod /sys/fs/ocfs2/cluster_stack ocfs2_stackglue && - pseudofs configfs /sys/kernel/config && - pseudofs ocfs2_dlmfs /dlm - ) || return 1 - echo o2cb >/sys/fs/ocfs2/cluster_stack 2>/dev/null - if [[ "`cat /sys/fs/ocfs2/cluster_stack`" != "o2cb" ]]; then - eerror "OCFS2: Stack 'o2cb' not loaded. Check your kernel config." - return 1 - fi - - # autodetect - : ${OCFS2_CLUSTER:=$(UUID)} - - for cluster in $(clusters); do - ebegin "Starting OCFS2 cluster '${cluster}'" - online $cluster || /sbin/o2cb_ctl -H -n ${cluster} -t cluster -a online=yes >/dev/null - if ! eend $? ; then - local OCFS2_FORCE_STOP=no - stop_cluster $cluster - return 1 - fi - - # Some heartbeat tweaks to prevent self-fencing quite so much during heavy load. - # http://oss.oracle.com/projects/ocfs2/dist/documentation/ocfs2_faq.html - - # How long to wait before a node is considered dead from lack of network activity. - echo $OCFS2_IDLE_TIMEOUT_MS > /sys/kernel/config/cluster/${cluster}/idle_timeout_ms - # How often we should attempt to send heartbeats. - echo $OCFS2_KEEPALIVE_DELAY_MS > /sys/kernel/config/cluster/${cluster}/keepalive_delay_ms - echo $OCFS2_RECONNECT_DELAY_MS > /sys/kernel/config/cluster/${cluster}/reconnect_delay_ms - # How many interations before a node is considered dead from lack of IO activity. - # (dead_threshold - 1) * 2s - echo $OCFS2_DEAD_THRESHOLD > /sys/kernel/config/cluster/${cluster}/heartbeat/dead_threshold - done - - local i - for i in 9 8 7 6 5 4 3 2 1 0; do - online && break - echo -n "$i" - sleep 1 - done - # usure: IMHO locking not starts here -# let i=OCFS2_RECONNECT_DELAY_MS*2/1000 -# sleep $i - - # Voluntary fsck. Will be happened only ondemand - - # on both unmounted/double fault, placed in fstab. - [[ "$OCFS2_FSCK_SWAPOFF" == "yes" ]] && swapoff -a - for i in `mount -invfat ocfs2 2>/dev/null|sed -e 's: .*::g'` ; do - [[ -e "$i" ]] || continue - einfo "OCFS2: Trying 'fsck.ocfs2 $OCFS2_FSCK $i' (fs check if possible)" - /sbin/fsck.ocfs2 $OCFS2_FSCK "$i" 2>/dev/null - done - [[ "$OCFS2_FSCK_SWAPOFF" == "yes" ]] && swapon -a - - # Any behaviour - ebegin "Mounting OCFS2 filesystems" - mount -at ocfs2 - eend $? - return $? -} - -_fuser(){ - fuser -"${OCFS2_UMOUNT_KILL}" -v"${OCFS2_UMOUNT_KILL:+k}" $* - return $? -} - -_umount(){ - local i m - i=`umount $* 2>&1` && { - echo -n "$i" - return 0 - } - echo "$i" - _fuser -mM `echo "$i"|grep "^umount: .* device is busy\.\$"|sed -e 's%^umount: \([^ ]*\): device is busy\.$%\1%g'` || return 1 - [[ -z "${OCFS2_UMOUNT_KILL}" ]] && return 1 - umount $* && return 0 - sleep 1 - umount $* - return $? -} - -stop() { - local ret=0 dev m i - # now umount only clusters - under heartbeat. others later -# ebegin "Unmounting OCFS2 filesystems" -# _umount -at ocfs2 -# eend $? -# ret=$? - - for cluster in $(clusters); do - for dev in `cat /sys/kernel/config/cluster/$cluster/heartbeat/*/dev 2>/dev/null`; do - m=`grep "/dev/$dev " /proc/mounts|sed -e 's:^[^ ]* \([^ ]*\) .*$:\1:g'` - [[ -z "$m" ]] && continue - ebegin "Unmounting OCFS2 cluster '$cluster' filesystems '$dev' from '$m'" - if _umount $m; then - eend 0 - continue - elif umount $m; then - einfon "Lazy unmounted. Waiting " - for i in 9 8 7 6 5 4 3 2 1 0; do - ( /sbin/ocfs2_hb_ctl -I -d /dev/$dev || break ) | grep -q " 0 refs\$" && break - echo -n "$i" - _fuser $m - sleep 1 - done - echo - [[ "$i" != 0 ]] && continue - fi - eend 1 - ret=1 - done - stop_cluster $cluster || ret=1 - done - return $ret -} |