Hi all, I am using ipvs since years, and I am really happy with it - so first of all a big thank you for that stuff!
I have a host running ipvs, using 1.2.3.4 as external address, and using 192.168.1.254 as internal address. I have 3 hosts in that network, providing the real services. 192.168.1.1,.2,.3. Each of them is providing services via TCP on ports 2000, 2001 and 2002. This is a propietary protocol, and the clients are connecting via the IPVS server to that hosts. The TCP session stay for longer time, usually for around 24 hours. My setup: /sbin/ipvsadm -A -t 1.2.3.4:2000 /sbin/ipvsadm -a -t 1.2.3.4:2000 -r 192.168.1.1:2000 -w 10 -m /sbin/ipvsadm -a -t 1.2.3.4:2000 -r 192.168.1.2:2000 -w 10 -m /sbin/ipvsadm -a -t 1.2.3.4:2000 -r 192.168.1.3:2000 -w 10 -m /sbin/ipvsadm -A -t 1.2.3.4:2001 /sbin/ipvsadm -a -t 1.2.3.4:2001 -r 192.168.1.1:2001 -w 10 -m /sbin/ipvsadm -a -t 1.2.3.4:2001 -r 192.168.1.2:2001 -w 10 -m /sbin/ipvsadm -a -t 1.2.3.4:2001 -r 192.168.1.3:2001 -w 10 -m /sbin/ipvsadm -A -t 1.2.3.4:2002 /sbin/ipvsadm -a -t 1.2.3.4:2002 -r 192.168.1.1:2002 -w 10 -m /sbin/ipvsadm -a -t 1.2.3.4:2002 -r 192.168.1.2:2002 -w 10 -m /sbin/ipvsadm -a -t 1.2.3.4:2002 -r 192.168.1.3:2002 -w 10 -m We are killing all connections each day at 8 am. The clients are going to reconnect then. This is working fine for services ports 2000 and 2001, but for 2002 I have a problem with wrong redirected clients. Let's say this is the output of ipvsadm -L TCP 1.2.3.4:2000 wlc -> 192.168.1.1:2002 Masq 11 20 0 -> 192.168.1.2:2002 Masq 11 18 0 -> 192.168.1.2:2002 Masq 11 20 0 Now 10 new clients are connecting - this is what happens. TCP 1.2.3.4:2000 wlc -> 192.168.1.1:2002 Masq 11 20 0 -> 192.168.1.2:2002 Masq 11 18 10 -> 192.168.1.2:2002 Masq 11 20 0 And, 1 or 2 seconds later: TCP 1.2.3.4:2000 wlc -> 192.168.1.1:2002 Masq 11 20 0 -> 192.168.1.2:2002 Masq 11 28 0 -> 192.168.1.2:2002 Masq 11 20 0 But I would like to have: TCP 1.2.3.4:2000 wlc -> 192.168.1.1:2002 Masq 11 23 0 -> 192.168.1.2:2002 Masq 11 22 0 -> 192.168.1.2:2002 Masq 11 23 0 or something like that. I hope it is clear enough where my problem is. The clients are track & trace units for vehicle fleet management services. The difference between those 3 services is the manufacturer of the "client". But I don't know what to ask him, since the units are doing as expected. Much more I think there is a trick I am not aware of right now, so I can tell the loadbalancer not to schedule connections based on active connection count, much more I feel the director should consider the number of waiting connections too. The real machine is running as VM on a ESX, hosted at an Intel Modular server. There are enough resources, so this shouldn't be the issue. The ipvs OS is OpenSuSE 10.3 64b, the kernel is the standard one. The loadbalancer is not carrying those few connections as in the example, much more it is handling around 5000-7000 connections, splitted for 5 services - again I reduced the number for the example to keep it more simple. Only 1 out of those 5 services is showing the problems I described. Could be very well the units on that problematic port are more aggressive in connecting, so more "parallel" connection tries happen here. Any help is appreciated much. -- Kind regards Peter _______________________________________________ Please read the documentation before posting - it's available at: http://www.linuxvirtualserver.org/ LinuxVirtualServer.org mailing list - [email protected] Send requests to [email protected] or go to http://lists.graemef.net/mailman/listinfo/lvs-users
