linux-kernel-test/include
Rumen G. Bogdanovski 1e356f9cdf [IPVS]: Bind connections on stanby if the destination exists
This patch fixes the problem with node overload on director fail-over.
Given the scenario: 2 nodes each accepting 3 connections at a time and 2
directors, director failover occurs when the nodes are fully loaded (6
connections to the cluster) in this case the new director will assign
another 6 connections to the cluster, If the same real servers exist
there.

The problem turned to be in not binding the inherited connections to
the real servers (destinations) on the backup director. Therefore:
"ipvsadm -l" reports 0 connections:
root@test2:~# ipvsadm -l
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn
TCP  test2.local:5999 wlc
  -> node473.local:5999           Route   1000   0          0
  -> node484.local:5999           Route   1000   0          0

while "ipvs -lnc" is right
root@test2:~# ipvsadm -lnc
IPVS connection entries
pro expire state       source             virtual            destination
TCP 14:56  ESTABLISHED 192.168.0.10:39164 192.168.0.222:5999
192.168.0.51:5999
TCP 14:59  ESTABLISHED 192.168.0.10:39165 192.168.0.222:5999
192.168.0.52:5999

So the patch I am sending fixes the problem by binding the received
connections to the appropriate service on the backup director, if it
exists, else the connection will be handled the old way. So if the
master and the backup directors are synchronized in terms of real
services there will be no problem with server over-committing since
new connections will not be created on the nonexistent real services
on the backup. However if the service is created later on the backup,
the binding will be performed when the next connection update is
received. With this patch the inherited connections will show as
inactive on the backup:

root@test2:~# ipvsadm -l
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn
TCP  test2.local:5999 wlc
  -> node473.local:5999           Route   1000   0          1
  -> node484.local:5999           Route   1000   0          1

rumen@test2:~$ cat /proc/net/ip_vs
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
  -> RemoteAddress:Port Forward Weight ActiveConn InActConn
TCP  C0A800DE:176F wlc
  -> C0A80033:176F      Route   1000   0          1
  -> C0A80032:176F      Route   1000   0          1

Regards,
Rumen Bogdanovski

Acked-by: Julian Anastasov <ja@ssi.bg>
Signed-off-by: Rumen G. Bogdanovski <rumen@voicecho.com>
Signed-off-by: Simon Horman <horms@verge.net.au>
2007-11-07 04:15:09 -08:00
..
acpi ACPI: Fan: Drop force_power_state acpi_device option 2007-10-25 16:31:31 -04:00
asm-alpha Add CONFIG_DEBUG_SG sg validation 2007-10-22 21:20:03 +02:00
asm-arm [ARM] 4634/1: DaVinci GPIO header build fix 2007-10-31 15:21:52 +00:00
asm-avr32 AVR32: Fix sg_page breakage 2007-10-24 10:16:02 +02:00
asm-blackfin Blackfin arch: use a less common define name in BF549 2007-10-30 12:04:53 +08:00
asm-cris Add CONFIG_DEBUG_SG sg validation 2007-10-22 21:20:03 +02:00
asm-frv SG: Change sg_set_page() to take length and offset argument 2007-10-24 11:20:47 +02:00
asm-generic Linux Kernel Markers 2007-10-19 11:53:54 -07:00
asm-h8300 Add CONFIG_DEBUG_SG sg validation 2007-10-22 21:20:03 +02:00
asm-ia64 [IA64] fix typo in per_cpu_offset 2007-10-29 11:21:45 -07:00
asm-m32r Add CONFIG_DEBUG_SG sg validation 2007-10-22 21:20:03 +02:00
asm-m68k Add CONFIG_DEBUG_SG sg validation 2007-10-22 21:20:03 +02:00
asm-m68knommu m68knommu: fix pread/pwrite defines 2007-11-05 15:12:33 -08:00
asm-mips Use i8253.c lock for PC speaker on MIPS, too. 2007-11-02 19:39:18 -07:00
asm-parisc parisc: fix sg_page() fallout 2007-10-23 09:49:31 +02:00
asm-powerpc cpm_load_patch() - declartion conflict 2007-11-05 11:38:29 -08:00
asm-ppc ppc: fix AT_VECTOR_SIZE on arch/ppc 2007-10-22 19:18:54 -07:00
asm-s390 Merge branch 'for-linus' of git://git390.osdl.marist.edu/pub/scm/linux-2.6 2007-10-22 19:23:34 -07:00
asm-sh sh: Decouple 4k and soft/hardirq stacks. 2007-11-02 12:16:51 +09:00
asm-sh64 sh64: fix dma_cache_sync() compilation 2007-10-30 13:09:01 +09:00
asm-sparc [SPARC32]: __inline__ --> inline 2007-10-27 00:17:01 -07:00
asm-sparc64 [SPARC64]: Fix linkage of enormous kernels. 2007-10-31 15:30:56 -07:00
asm-um x86 merge fallout: uml 2007-10-29 07:41:32 -07:00
asm-v850 Add CONFIG_DEBUG_SG sg validation 2007-10-22 21:20:03 +02:00
asm-x86 lguest: make async_hcall() static 2007-11-05 21:53:29 +11:00
asm-xtensa xtensa: dma-mapping.h is using linux/scatterlist.h functions, so include it 2007-10-24 13:28:40 +02:00
crypto
keys
linux [TTY]: Fix network driver interactions with TCGET/SET calls. 2007-11-07 04:14:19 -08:00
math-emu
media [PATCH] Fix breakage after SG cleanups 2007-10-23 12:02:39 -07:00
mtd
net [IPVS]: Bind connections on stanby if the destination exists 2007-11-07 04:15:09 -08:00
pcmcia
rdma cleanup asm/scatterlist.h includes 2007-11-02 08:47:06 +01:00
rxrpc
scsi SCSI: add asynchronous event notification API 2007-11-03 22:23:02 -04:00
sound [ALSA] version 1.0.15 2007-10-23 08:09:20 +02:00
video Make asm-x86/bootparam.h includable from userspace. 2007-10-23 15:49:47 +10:00
xen
Kbuild