LVS
lvs-users
Google
 
Web LinuxVirtualServer.org

Detection Schemes for failover

To: "'linux-virtualserver@xxxxxxxxxxxx'" <linux-virtualserver@xxxxxxxxxxxx>
Subject: Detection Schemes for failover
From: Richard Betel <mto@xxxxxxx>
Date: Wed, 3 Feb 1999 20:38:57 -0500
I just discovered this project, and I haven't gotten too far into the
documentation, but what I've read so far indicates that there is not too
much in the way of automatic failovers. Obviously, some simple ping scripts
would go a long way, but I wanted to suggest to people the method used by
Cisco's Pix.

The Pix is in fact just a PC running a custom OS. Our Pix is a P2-266 on an
intel 440AX motherboard, with phoenix bios (we dropped in an AGP video card
to see what sort of bios it used). The ethernet cards are just 3com 3c905
PCI cards (ie vortex cards). The only weird things about the unit are a
special card that contains flash memory emulating a harddrive, and custom
metalwork.

One very cool PIX feature is the failover detection cable. The primary and
secondary pix'en will ping each other over both ethernets, but there is also
a special cable running between the two boxes for improved failover
detection. An added benefit is that NO CONFIGURATION need be done on the
second pix. You configure the first pix as a standalone, and then add the
line "failover <interface> <address>". The second pix learns its entire
configuration from the first. I assumed the cable was funky, with special
hardware or something, but it turns out its connected to com2 on the
motherboard (com1 is the console). Installation of the failover cable port
on older pices is described in Doc. No. 78-3749-04. On newer PIx'en, like
mine, the failover port is directly mounted on the Flash memory card. Cable
pinouts:

Primary side                            Secondary side
Power detect          1
----------------------------------------------------------------- 10

Rx Data                 2
----------------------------------------------------------------- 3

Tx Data                  3
----------------------------------------------------------------- 2

Plug Driver              4
----------------------------------------------------------------- 6     --|

Foreign Plug Detect 9
----------------------------------------------------------------- 14   --|
Loopback inside Chassis   
Power Source
10---------------------------------------------------------------- 1

Local Plug Detect    11----|
                                     |
Primary Select        12----|

Ground                   5
-----------------------------------------------------------------5
                |---- 6
---------------------------------------------------------------- 4
                        |
                        |---- 14
-------------------------------------------------------------- 9

The failover port uses a DB15 connector, but since the connector goes
stright to com2 on the older pix'en, 2 of the eleven used pins are obviously
in the cabling. I'll hazard a guess at that being pins 6 and 14. So here is
what we've got:

4 is held high, and if a logic high is detected on port 9, then we have
detected the remote plug. 1 and 10 are there so you can detect the other
unit's power state. 11 and 12 are used for primary/secondary selection. The
cable is directional! Its how cisco avoids the need for "failover primary"
and "failover secondary" configuration commands. 

Pins 2 and 3 are crossed over, just like a null modem.

I figure we can recycle these ideas no problem. Eliminate the
primary/secondary select, and you can use off the shelf parts. Run PPP on
the serial line, and do pings, and you've got a remote system failure
detect.

Falure conditions:
        - Remote system down: No ping responses on cable
        - Remote system powered down: Logic low on pin 1
        - remote system non-existant: logic low on pin 9.

A simple management program could do all the pings, monitor the power and
cable detect pins, AND copy configurations to/from the remote machine, so
that all you'd need to do on the secondary is fire up the management
program, with enough information to realize its the secondary.

This setup is so amazingly simple, I'm realy suprised you don't see it more.


Anyhow, that's my two cents. If I have the time, I'll code a simple cable
manager one of these months...

Richard Betel
mto@xxxxxxx

<Prev in Thread] Current Thread [Next in Thread>
  • Detection Schemes for failover, Richard Betel <=