LVS
lvs-users
Google
 
Web LinuxVirtualServer.org

[PATCH] ipvs_syncd master/backup & SyncID support

To: Wensong Zhang <wensong@xxxxxxxxxxxx>
Subject: [PATCH] ipvs_syncd master/backup & SyncID support
Cc: lvs-users@xxxxxxxxxxxxxxxxxxxxxx
Cc: Julian Anastasov <ja@xxxxxx>
From: Alexandre Cassen <Alexandre.Cassen@xxxxxxxxxx>
Date: Tue, 03 Jun 2003 00:44:55 +0200
Hello Wensong,

I have just ported previous code to 2.5 branch as we discussed last day.

Some details on the enhancements brought by this patch :

1. SYNOPSYS :

ipvsadm --start-daemon state [--mcast-interface interface] [--syncid sid]
ipvsadm --stop-daemon master|backup

. interface : default is eth0
. sid part of the range : [0..255], 255 is default.

2. Description :

Added ipvs_syncd support to be master and slave at a time.
Usefull for active/active director wanting connection table
synchronization for both master directors.

On the other hand, the code support different mcast-interface
specification for both master & backup syncd. That way an
ipvs_syncd can be master and send conn message threw an interface
and receive remote conn messages from a different interface.
As previous code if interface is omitted default is used (eth0).

An other important new functionnality is the support of a
synchronization ID called SyncID. The syncd message format
is so :

   0                   1                   2                   3
   0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  |  Count Conns  |   SyncID    |             Size                |
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  |                                                               |
  |                    IPVS Sync Connection (1)                   |
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  |                            .                                  |
  |                            .                                  |
  |                            .                                  |
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  |                                                               |
  |                    IPVS Sync Connection (n)                   |
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

This SyncID offer filtering capability at the backup ipvs_syncd point.
if ipvs_syncd backup receives message and the SyncID field value differ
from the local defined value, then this message is simply ignored and
connections are not append to local connection table.
When starting ipvs_syncd daemon if SyncID is omitted then it
use default value of '255' which means no filtering at all.
This functionnality can be usefull if you have multiple LVS director
and you want to define connection synchronization regions. As for
multicast this SyncID extension provide group vision of the ipvs
conn messages.

3. Example :

. Topology :

 ------------------------------------------------------------------
       |               |         |         |               |
  .....|eth0...........|eth0..   |    .....|eth0...........|eth0..
  . +------+        +------+ .   |0   . +------+        +------+ .
  . | LVS1 |        | LVS2 | .  LVS5  . | LVS3 |        | LVS4 | .
  . +------+        +------+ .   |1   . +------+        +------+ .
  .    |eth1           |eth1 .   |    .    |eth1           |eth1 .
  .....|...............|......   |    .....|...............|......
 ------------------------------------------------------------------

. Configuration LVS1

ipvsadm --start-daemon master --mcast-interface eth1 --syncid 50
ipvsadm --start-daemon backup --mcast-interface eth1 --syncid 50

. Configuration LVS2

ipvsadm --start-daemon master --mcast-interface eth1 --syncid 50
ipvsadm --start-daemon backup --mcast-interface eth1 --syncid 50

. Configuration LVS3

ipvsadm --start-daemon master --mcast-interface eth1 --syncid 100
ipvsadm --start-daemon backup --mcast-interface eth1 --syncid 100

. Configuration LVS4

ipvsadm --start-daemon master --mcast-interface eth1 --syncid 100
ipvsadm --start-daemon backup --mcast-interface eth1 --syncid 100

. Configuration LVS5

ipvsadm --start-daemon backup --mcast-interface eth1

. Description : This configuration define 2 synchronizations groups.
                LVS1 & LVS2 define first one configured using syncid
                50. LVS3 & LVS4 define the other one with syncid 100.
                Each group process incoming conn messages coming from
                director part of the same group. Additionnaly LVS5
                accept any conn message and can be viewed as the
                global connection state backup.

4. Advanced:

  Additionnaly we can imagine a configuration with VRRP that will
takeover the LVS VIP to the global backup LVS5. If one LVS group is
down then LVS5 takeover VIPs and connection are active on LVS5.


I have attached 2 patches, one for stable 2.4 branch and other for
2.5 devel branch.

Any comments are welcome.

Best regards,
Alexandre

Attachment: ipvs-1.1.5-syncd.patch.gz
Description: GNU Zip compressed data

Attachment: ipvs-1.0.9-syncd.patch.gz
Description: GNU Zip compressed data

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