On Wednesday 19 November 2008 16:49:55 KAD_USER wrote:
> Hi,
>
> Running SLES10.2 we have the following setup:
>
> Node1:
> - eth0 and eth1 are bonded into bond0, eth3 is used for heartbeat.
> - LINUX HA has been setup with one resource which uses bond0 to provide
> another virtual IP-address has been setup.
>
> Node2:
> - eth0 and eth1 are bonded into bond0, eth3 is used for heartbeat.
> - LINUX HA has been setup and all resources are inherited from Node1.
>
> Issue:
> When someone pulls the ethernet cable on eth0 the node continues to work,
> but when someone pulls both eth0 and eth1 and no data can leave or enter
> the system one would expect the resource which uses bond0 to fail and
> perform a failover of resources as would a default installation of a
> Windows Cluster do!
>
> Is there a way to monitor resources like link status on ethernet cards and
> then perform a failover once it is down?

Hi,

I don't know if there is a script or resource agent ready for that, but here 
are my 2 bits of code that are a simple LSB script that can help you monitor 
this resource.

I hope you will like the script. You should be able to configure this script 
as a standard LSB resource in cib.xml.

#!/bin/bash
#
# link-state
#
# chkconfig: - 26 74
# description: Network Interfaces link state monitoring script

### BEGIN INIT INFO
# Provides:             link-state
# Required-Start:
# Required-Stop:
# Default-Start:
# Default-Stop:
# Short-Description:    provides monitoring and reconfiguration
# Description:          provides monitoring and reconfiguration
#                                               for various network interfaces 
with easy
#                                               configuration, portable on 
different
#                                               distributions
### END INIT INFO

# set secure PATH
PATH="/bin:/usr/bin:/sbin:/usr/sbin"


interfaces='eth0 eth1'
ip[0]='10.0.0.1'
ip[1]='10.0.0.5'
netmask[0]='255.255.255.252'
netmask[1]='255.255.255.252'

function ifstatus() {
        for iface in $interfaces; do
                link_status=$(ethtool $iface|awk '/Link/{print $3}')
                echo -n "Checking link status on interface $iface "
                if [ "$iface" == "yes" ]; then
                        echo -ne "\\033[60G[\\033[0;32m  OK  \\033[0;39m]\r\n"
                else
                        echo -ne "\\033[60G[\\033[1;38mFAILED\\033[0;39m]\r\n"
                        exit 1
                fi
        done
}
function ifstop() {
        for iface in $interfaces; do
                echo -n "Stoping interface $iface "
                ifconfig $iface down
                if [ "$?" == 0 ]; then
                        echo -ne "\\033[60G[\\033[0;32m  OK  \\033[0;39m]\r\n"
                else
                        echo -ne "\\033[60G[\\033[1;38mFAILED\\033[0;39m]\r\n"
                        exit 1
                fi
        done
}
function ifstart() {
        count=0
        for iface in $interfaces; do
                echo -n "Starting interface $iface "
                ifconfig $iface ${ip[$count]} netmask ${netmask[$count]}
        if [ "$?" == 0 ]; then
            echo -ne "\\033[60G[\\033[0;32m  OK  \\033[0;39m]\r\n"
        else
            echo -ne "\\033[60G[\\033[1;38mFAILED\\033[0;39m]\r\n"
            exit 1
        fi
        done
}

case "$1" in
        start)
                ifstart
        ;;
        stop)
                ifstop
        ;;
        restart)
                ifstop
                ifstart
        ;;
        status)
                ifstatus
        ;;
        *)
                echo "Usage: $0 start|stop|restart|status"
                exit 1
esac
exit 0
_______________________________________________
Linux-HA mailing list
[email protected]
http://lists.linux-ha.org/mailman/listinfo/linux-ha
See also: http://linux-ha.org/ReportingProblems

Reply via email to