Horms,
The ip_vs_dest structure does not exist in ip_vs_sync_conn. That is, when
sync daemon starts, this ip_vs_dest structure do not sync to the backup ip_vs.
For we use apache server as web server, and need persistent connection
visiting. When a connection comes and it already exists in connection entry
hash table, it would use ip_vs_sched_persist function to schedule this
connection. In this function, it uses ip_vs_check_template function to check
connection's dest and schedule it. In normal case, there is no problem. But if
master/backup ip_vs server switchover in some case. For master server do not
sync one connection's ip_vs_dest part to the backup server(currently it is
master server), ip_vs_check_template would find "dest is null" and reset the
persistent connection port to 65535 and a new connection entry is created. That
causes newly-coming connections is re-scheduled again. The persistent mechanism
does not work at that time.
So I think we need sync ip_vs_dest to the peer to avoid such case.
Welcome your comments,
BR,
Kingston,
-----Original Message-----
From: Horms [mailto:horms@xxxxxxxxxxxx]
Sent: 2006年6月30日 15:16
To: LinuxVirtualServer.org users mailing list.
Cc: Kingston Wang
Subject: Re: a question in ipvs sync persistent connection info
Kingston Wang wrote:
> Hi,
> There is a question in ipvs sync connection data from master ipvs to
> backup one. The sync thread is running, if you use watch -n1 "ipvsadm
> -lcn", you can know that the current persistent connection is synced
> to the peer. But if at that time, active ipvs is down, and a
> persistent request coming, the standby ipvs would take over and serves
> as a master one. But the synced persistent connection table is not
> enough for this http request, and this request is scheduled again. That's a
> big issue:
> if we use it to apache server which needs keep session key, it would
> not work.
>
> Can anybody know why ipvs does not sync the whole ip_vs_conn info to
> the peer? Can we change the codes to support it?
What information do you think needs to be syncronised that isn't?
I'm pretty sure that all the iformation that is needed is there.
Also what is a "session key", and what makes you think LVS knows anything about
them?
--
Horms
H: http://www.vergenet.net/~horms/ W: http://www.valinux.co.jp/en/
|