LVS
lvs-users
Google
 
Web LinuxVirtualServer.org

Re: Keepalived Director failover, LVS-TUN

To: lvs-users@xxxxxxxxxxxxxxxxxxxxxx
Subject: Re: Keepalived Director failover, LVS-TUN
From: Graeme Fowler <graeme@xxxxxxxxxxx>
Date: Mon, 6 Feb 2006 14:51:35 +0000
Hi

On Mon 06 Feb 2006 14:38:11 GMT , Matt Chan <engineuity@xxxxxxxxx> wrote:
I am still having problems getting my director failover to work.  With this
configuration, I can see the states transition perfectly, but the connection
does not (If director1 is unplugged, director2 will pick up the connection,
but when director1 is plugged in again it does not resume the connection.
The states do transition though.). I am trying to get around this by having
the notify scripts bring down an interface when it is a BACKUP and bring it
up when it is a MASTER. I cannot get the notify_master, notify_backup or
notify_fault scripts to run though. They are simple ifconfig statements.
Even an echo statement, or touch does not work in the script.
<snip>

1. Are the scripts executable?

2. If you down the interface, how are the VRRP announcements going to be seen by the application? Yes, you'll be able to see them if run tcpdump (if the interface is brought up using "ifconfig eth0 up") but the application won't see them at all.

In your case, if D1 is MASTER and D2 is BACKUP normally, then the following *should* happen:

D1 running, D2 running
D1 unplugged
<<< D1 runs "notify_fault" script
D2 misses 3 announcements from D1
D2 becomes MASTER
<<< D2 runs "notify_master" script
...time passes, friend...
D1 reconnected
D1 announces, D2 detects
D2 announces, D1 detects, D1 forces election
D1 becomes MASTER, D2 returns to BACKUP.
<<< D1 runs "notify_master" script
<<< D2 runs "notify_backup" script

Now - if, when D1 runs the "notify_fault" script, it downs the interface administratively, when you reconnect D1 it has no way to (a) announce itself, and (b) listen for announcements. So the status quo remains, D1 in FAULT and D2 in MASTER.

Also, I notice that there's a bit of a puzzler with your config - all your VRRP instances are bound to eth0 using the interface statement, but VI_1 binds the virtual_ipaddress to eth1. When you unplug a cable, which one are you disconnection? eth0, or eth1?

Graeme


<Prev in Thread] Current Thread [Next in Thread>