LVS
lvs-users
Google
 
Web LinuxVirtualServer.org

Re: [PATCH] ipvs_syncd master/backup & SyncID support

To: Alexandre Cassen <Alexandre.Cassen@xxxxxxxxxx>
Subject: Re: [PATCH] ipvs_syncd master/backup & SyncID support
Cc: lvs-users@xxxxxxxxxxxxxxxxxxxxxx
Cc: Julian Anastasov <ja@xxxxxx>
From: Wensong Zhang <wensong@xxxxxxxxxxxx>
Date: Wed, 4 Jun 2003 00:14:21 +0800 (CST)

Hello Alexandre,

Thanks for porting the change to 2.5 branch. I will merge your patch and
probably make a release of ipvs 1.1.6 in a couple of days.

BTW, I see that it is probably good to show the syncid in the command of 
"ipvsadm -L --daemon", I will do some slight change while merging your 
code.

Thanks again,

Wensong


On Tue, 3 Jun 2003, Alexandre Cassen wrote:

> 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
> 

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