temos vários farms de back-end (HTTP, FTP, etc), basicamente um farm para cada cliente, e estamos prestes a reconstruir nossa infraestrutura de balanceamento de carga, passando de Piranha
para HAProxy
.
Como estamos usando vários farms de servidores de backend , a configuração do Piranha atualmente é assim (o exemplo mostra o farm webserv01 , o segundo farm webserv02 usa a mesma configuração , mas IP virtual diferente):
virtual webserv01 {
active = 1
address = 10.11.11.1 eth2:30
vip_nmask = 255.255.255.0
port = 80
send = "GET / HTTP/1.0\r\n\r\n"
expect = "HTTP"
use_regex = 0
load_monitor = none
scheduler = rr
protocol = tcp
timeout = 6
reentry = 15
quiesce_server = 0
server webserv01v {
address = 192.168.101.64
active = 1
port = 80
weight = 1
}
server webserv02v {
address = 192.168.102.64
active = 1
port = 80
weight = 1
}
server webserv05v {
address = 192.168.101.65
active = 1
port = 80
weight = 1
}
server webserv06v {
address = 192.168.102.65
active = 1
port = 80
weight = 1
}
}
(por exemplo, o cliente 1 tem seu próprio farm de servidores da web usando vIP 10.11.11.1:80, o cliente 2 tem um farm usando vIP 10.11.11.2:80). Estou curioso para saber se uma única instância HAProxy é capaz de manipular vários farms do mesmo serviço usando diferentes endereços vIP exclusivos.
A configuração básica ficaria assim:
2 instâncias de HAProxy (com failover)
4 fazendas de backend HTTP (uma para cada cliente)
2 fazendas FTP |
Para tornar as coisas mais claras, por favor, encontre o exemplo de configuração HAProxy em anexo para 2 farms do servidor web. Observe os diferentes IPs virtuais:
#---------------------------------------------------------------------
# LB: VIRTUAL WEBSERVER POOL #01
#---------------------------------------------------------------------
frontend vWEB-LB-01
bind 10.11.11.1:80
mode http
default_backend vWEB-Pool-01
backend vWEB-Pool-01
mode http
balance roundrobin
server webserv01v 192.168.101.64:80 check weight 100 inter 1000
server webserv02v 192.168.102.64:80 check weight 100 inter 1000
server webserv05v 192.168.101.65:80 check weight 100 inter 1000
server webserv06v 192.168.102.65:80 check weight 100 inter 1000
#---------------------------------------------------------------------
# LB: VIRTUAL WEBSERVER POOL #02
#---------------------------------------------------------------------
frontend vWEB-LB-02
bind 10.11.11.2:80
mode http
default_backend vWEB-Pool-02
backend vWEB-Pool-02
mode http
balance roundrobin
server webserv01v 192.168.101.75:80 check weight 100 inter 1000
server webserv02v 192.168.101.76:80 check weight 100 inter 1000
server webserv05v 192.168.101.68:80 check weight 100 inter 1000
server webserv06v 192.168.101.69:80 check weight 100 inter 1000
HAProxy e / ou keeoalived podem lidar com isso da maneira mostrada? Se sim, como eu abordaria isso?
Eu gostaria de usar keepalived
para propósitos de failover entre as duas instâncias de HAProxy e fazer com que eles façam o balanceamento de carga para os farms de backend. Meio confuso agora sobre os vários endereços IP virtuais que eu preciso usar, qualquer insight seria muito apreciado!