Por alguma razão, o ipvsadm não parece estar equilibrando as conexões entre meus servidores reais ao usar os escalonadores wlc ou lc. Um servidor real recebe absolutamente pedidos, enquanto os outros recebem relativamente poucas conexões.
Meu arquivo ldirectord.cf tem esta aparência:
quiescent = yes
autoreload = yes
checktimeout = 10
checkinterval = 10
# *.example.com http
virtual = 192.0.2.111:http
real = 10.10.10.1:http ipip 10
real = 10.10.10.2:http ipip 10
real = 10.10.10.3:http ipip 10
real = 10.10.10.4:http ipip 10
real = 10.10.10.5:http ipip 10
scheduler = lc
protocol = tcp
service = http
checktype = negotiate
request = "/lb"
receive = "Up and running"
virtualhost = "site.com"
fallback = 127.0.0.1:http
A coisa estranha que eu acho que esteja causando o problema (mas eu não tenho certeza) é que o ipvsadm não parece estar rastreando as conexões ativas corretamente, todas elas aparecem como conexões inativas
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
-> RemoteAddress:Port Forward Weight ActiveConn InActConn
TCP 192.0.2.111:http lc
-> 10.10.10.1:http Tunnel 10 0 10
-> 10.10.10.2:http Tunnel 10 0 18
-> 10.10.10.3:http Tunnel 10 0 3
-> 10.10.10.4:http Tunnel 10 0 10
-> 10.10.10.5:http Tunnel 10 0 5
Se eu fizer ipvsadm -Lnc
, vejo muitas conexões, mas somente em ESTABLISHED & Estados FIN_WAIT.
Eu estava usando o ldirectord anteriormente em um balanceador de carga baseado no Gentoo e o ativamento costumava ser preciso, já que mudar para o Ubuntu 10.4 LTS parece ser algo diferente.
# ipvsadm -v
ipvsadm v1.25 2008/5/15 (compiled with popt and IPVS v1.2.1)
Portanto, o ipvsadm não está rastreando as conexões ativas corretamente e, portanto, fazendo o balanceamento de carga funcionar incorretamente e, em caso afirmativo, como faço para que ele funcione corretamente novamente?
Editar: É mais estranho, se eu cat /proc/net/ip_vs
, parece que as configurações ativas corretas estão lá:
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
-> RemoteAddress:Port Forward Weight ActiveConn InActConn
TCP C000026F:0050 rr
-> 0AB42453:0050 Tunnel 10 1 24
-> 0AB4321D:0050 Tunnel 10 0 23
-> 0AB426B2:0050 Tunnel 10 2 25
-> 0AB4244C:0050 Tunnel 10 2 22
-> 0AB42024:0050 Tunnel 10 2 23