implementação de um balanceador de carga utilizando … · o linux virtual server caciano machado...
TRANSCRIPT
![Page 1: Implementação de um balanceador de carga utilizando … · o Linux Virtual Server Caciano Machado ... Probes avançados e personalizáveis (Perl) ... Standby assume serviços ao](https://reader031.vdocuments.pub/reader031/viewer/2022021620/5bb751a909d3f2f7768d55b1/html5/thumbnails/1.jpg)
Implementação de um balanceador de carga utilizando
o Linux Virtual Server
Caciano MachadoEverton FoscariniFernando Macedo
![Page 2: Implementação de um balanceador de carga utilizando … · o Linux Virtual Server Caciano Machado ... Probes avançados e personalizáveis (Perl) ... Standby assume serviços ao](https://reader031.vdocuments.pub/reader031/viewer/2022021620/5bb751a909d3f2f7768d55b1/html5/thumbnails/2.jpg)
Roteiro● Conceitos básicos● Problemas/Motivações● Alternativas estudadas● Arquitetura da Solução● Topologia da Rede● Failover automático● Resultados● Conclusões
![Page 3: Implementação de um balanceador de carga utilizando … · o Linux Virtual Server Caciano Machado ... Probes avançados e personalizáveis (Perl) ... Standby assume serviços ao](https://reader031.vdocuments.pub/reader031/viewer/2022021620/5bb751a909d3f2f7768d55b1/html5/thumbnails/3.jpg)
Conceitos básicos
Balanceador de Carga● Clientes vêem apenas 1
servidor● permite redundância e
escalabilidade
● VIP - IP virtual - IP do serviço● Realserver - Servidor real -
destino do balanceamento
realservers
Clientes
![Page 4: Implementação de um balanceador de carga utilizando … · o Linux Virtual Server Caciano Machado ... Probes avançados e personalizáveis (Perl) ... Standby assume serviços ao](https://reader031.vdocuments.pub/reader031/viewer/2022021620/5bb751a909d3f2f7768d55b1/html5/thumbnails/4.jpg)
Problemas/Motivações● Entre 2004 e 2012 foi utilizada funcionalidade do
roteador principal da Universidade○ Enterasys ALB○ Cisco SLB
● Roteador não tem hardware dedicado para balanceamento
● Implementado através de NAT
● Comprometimento do roteador em picos de carga / DoS
● Cisco SLB não tem suporte ao IPv6
![Page 5: Implementação de um balanceador de carga utilizando … · o Linux Virtual Server Caciano Machado ... Probes avançados e personalizáveis (Perl) ... Standby assume serviços ao](https://reader031.vdocuments.pub/reader031/viewer/2022021620/5bb751a909d3f2f7768d55b1/html5/thumbnails/5.jpg)
Problemas/Motivações● Divulgação do Vestibular 2012 (Janeiro)
![Page 6: Implementação de um balanceador de carga utilizando … · o Linux Virtual Server Caciano Machado ... Probes avançados e personalizáveis (Perl) ... Standby assume serviços ao](https://reader031.vdocuments.pub/reader031/viewer/2022021620/5bb751a909d3f2f7768d55b1/html5/thumbnails/6.jpg)
Alternativas estudadas● Cisco Content Switching Module
○ Módulo do roteador Cisco utilizado na UFRGS● Prós:
○ Hardware dedicado○ Configurações semelhantes (familiaridade
para equipe)○ Contrato de suporte, consultoria para
configurações● Contras:
○ Ponto único de falha○ Não suporta IPv6○ Aprisionamento tecnológico○ Custo de aquisição
![Page 7: Implementação de um balanceador de carga utilizando … · o Linux Virtual Server Caciano Machado ... Probes avançados e personalizáveis (Perl) ... Standby assume serviços ao](https://reader031.vdocuments.pub/reader031/viewer/2022021620/5bb751a909d3f2f7768d55b1/html5/thumbnails/7.jpg)
Alternativas estudadas● Linux Virtual Server
○ Balanceador TCP/UDP implementado no Kernel Linux
● Prós:○ Suporta IPv6○ Custo zero○ Permite redundância○ 7 algoritmos de escalonamento○ Probes avançados e personalizáveis (Perl)
● Contras:○ Solução precisa ser customizada○ Custo operacional de desenvolvimento
![Page 8: Implementação de um balanceador de carga utilizando … · o Linux Virtual Server Caciano Machado ... Probes avançados e personalizáveis (Perl) ... Standby assume serviços ao](https://reader031.vdocuments.pub/reader031/viewer/2022021620/5bb751a909d3f2f7768d55b1/html5/thumbnails/8.jpg)
Algoritmos de escalonamento● Round-Robin Scheduling● Weighted Round-Robin Scheduling● Least-Connection Scheduling● Weighted Least-Connection Scheduling● Locality-Based Least-Connection Scheduling● Locality-Based Least-Connection with Replication Scheduling● Destination Hashing Scheduling● Source Hashing Scheduling● Shortest Expected Delay Scheduling● Never Queue Scheduling
![Page 9: Implementação de um balanceador de carga utilizando … · o Linux Virtual Server Caciano Machado ... Probes avançados e personalizáveis (Perl) ... Standby assume serviços ao](https://reader031.vdocuments.pub/reader031/viewer/2022021620/5bb751a909d3f2f7768d55b1/html5/thumbnails/9.jpg)
Arquitetura da Solução● LVS Primário + LVS Standby
○ Elimina ponto único de falha
● Replicação de estado○ Failover transparente para
clientes, conexões mantidas
● Monitoramento entre LVS○ Standby assume serviços
ao detectar falha do primário
![Page 10: Implementação de um balanceador de carga utilizando … · o Linux Virtual Server Caciano Machado ... Probes avançados e personalizáveis (Perl) ... Standby assume serviços ao](https://reader031.vdocuments.pub/reader031/viewer/2022021620/5bb751a909d3f2f7768d55b1/html5/thumbnails/10.jpg)
Topologia da rede● Topologia LVS-DR (Direct Routing)
● 2 segmentos de rede (VLANs)○ Roteador -> LVS○ LVS -> Realserver -> Roteador
● Pacote IP endereçado ao VIP○ Balanceamento feito em nível 2
● VIP está na interface loopback do LVS e de todos os RealServers
● Tráfego de retorno não passa pelo LVS
![Page 11: Implementação de um balanceador de carga utilizando … · o Linux Virtual Server Caciano Machado ... Probes avançados e personalizáveis (Perl) ... Standby assume serviços ao](https://reader031.vdocuments.pub/reader031/viewer/2022021620/5bb751a909d3f2f7768d55b1/html5/thumbnails/11.jpg)
Failover Automático● Implementado através de
SLA/Track○ Escolhido pela simplicidade
da implementação e menor acoplamento
● Roteador tem rotas para VIP com pesos diferentes
● LVS Standby muda rotaao subir interface eth0:0
● Outras soluções○ Heartbeat○ OSPF
![Page 12: Implementação de um balanceador de carga utilizando … · o Linux Virtual Server Caciano Machado ... Probes avançados e personalizáveis (Perl) ... Standby assume serviços ao](https://reader031.vdocuments.pub/reader031/viewer/2022021620/5bb751a909d3f2f7768d55b1/html5/thumbnails/12.jpg)
Serviços em produção
● www.ufrgs.br (3 realservers)● smtp.ufrgs.br (2)● radius (2)● LDAP (4)● matricula.ufrgs.br (3)
Próximos serviços● Intranet● proxy● webmail
![Page 13: Implementação de um balanceador de carga utilizando … · o Linux Virtual Server Caciano Machado ... Probes avançados e personalizáveis (Perl) ... Standby assume serviços ao](https://reader031.vdocuments.pub/reader031/viewer/2022021620/5bb751a909d3f2f7768d55b1/html5/thumbnails/13.jpg)
Especificações● Máquinas virtuais em hosts Citrix XenServer
○ 2 vCPUs com 512MB de RAM○ 2 interfaces de rede
● CentOS Linux 6
● ipvsadm (similar a iptables)
● ldirectord (probes, ativação e desativação de RealServer)
● Implementação de failover in-house
![Page 14: Implementação de um balanceador de carga utilizando … · o Linux Virtual Server Caciano Machado ... Probes avançados e personalizáveis (Perl) ... Standby assume serviços ao](https://reader031.vdocuments.pub/reader031/viewer/2022021620/5bb751a909d3f2f7768d55b1/html5/thumbnails/14.jpg)
Resultados
Teste de cargaLVS
Vestibular 2012Cisco SLB
![Page 15: Implementação de um balanceador de carga utilizando … · o Linux Virtual Server Caciano Machado ... Probes avançados e personalizáveis (Perl) ... Standby assume serviços ao](https://reader031.vdocuments.pub/reader031/viewer/2022021620/5bb751a909d3f2f7768d55b1/html5/thumbnails/15.jpg)
Resultados
Monitoramento do servidor LVS durante teste de carga
![Page 16: Implementação de um balanceador de carga utilizando … · o Linux Virtual Server Caciano Machado ... Probes avançados e personalizáveis (Perl) ... Standby assume serviços ao](https://reader031.vdocuments.pub/reader031/viewer/2022021620/5bb751a909d3f2f7768d55b1/html5/thumbnails/16.jpg)
Resultados
Tráfego de rede do serviço testado
![Page 17: Implementação de um balanceador de carga utilizando … · o Linux Virtual Server Caciano Machado ... Probes avançados e personalizáveis (Perl) ... Standby assume serviços ao](https://reader031.vdocuments.pub/reader031/viewer/2022021620/5bb751a909d3f2f7768d55b1/html5/thumbnails/17.jpg)
Resultados
Vestibular 2013
![Page 18: Implementação de um balanceador de carga utilizando … · o Linux Virtual Server Caciano Machado ... Probes avançados e personalizáveis (Perl) ... Standby assume serviços ao](https://reader031.vdocuments.pub/reader031/viewer/2022021620/5bb751a909d3f2f7768d55b1/html5/thumbnails/18.jpg)
Conclusões
● Aumento de 4 vezes no número de conexões por segundo
● Atingimos limite do pool de servidores web
● Nenhum impacto no desempenho dos equipamentos de rede
● Serviço web teve throughput de 1.5Gbit (2 servidores)
![Page 19: Implementação de um balanceador de carga utilizando … · o Linux Virtual Server Caciano Machado ... Probes avançados e personalizáveis (Perl) ... Standby assume serviços ao](https://reader031.vdocuments.pub/reader031/viewer/2022021620/5bb751a909d3f2f7768d55b1/html5/thumbnails/19.jpg)
Conclusões● LVSs redundantes permitem manutenções em
horário comercial
● Independência de hardware
● Controle total da solução
● Troubleshooting requer apenas conhecimento de TCP/IP e Linux
![Page 20: Implementação de um balanceador de carga utilizando … · o Linux Virtual Server Caciano Machado ... Probes avançados e personalizáveis (Perl) ... Standby assume serviços ao](https://reader031.vdocuments.pub/reader031/viewer/2022021620/5bb751a909d3f2f7768d55b1/html5/thumbnails/20.jpg)
Dúvidas
Caciano Machado - [email protected]
Everton Foscarini - [email protected]
Fernando Macedo - [email protected]
http://www.ufrgs.br/viiwticifes/