Instalação e implantação Lvs + keepalived
- O objetivo do projeto do Keepalived é construir um cluster de balanceamento de carga LVS altamente disponível.Você pode chamar a ferramenta ipvsadm para criar servidores virtuais e gerenciar pools de servidores, não apenas hot standby de máquina dupla. Vantagens: Keepalived implementa comutação hot standby para o agendador de carga lvs, melhora a disponibilidade, executa verificações de saúde em nós no pool de servidores, remove automaticamente nós com falha e reingressa após a recuperação.
- A estrutura de cluster lvs implementada com base em lvs + keepalived inclui pelo menos dois agendadores de carga hot standby. Ao usar o keepalived para construir um cluster lvs, a ferramenta de gerenciamento ipvsadm também é necessária, mas a maior parte do trabalho será feito automaticamente pelo keepalived e não há necessidade de executar manualmente o ipvsadm (exceto para visualizar e monitorar o cluster).
- O cluster LVS é um projeto de balanceamento de carga desenvolvido para o kernel Linux, utiliza VIP baseado na virtualização de endereços IP e propõe uma solução eficiente de balanceamento de carga baseado em endereços IP e distribuição de requisições de conteúdo. Você pode usar a ferramenta de gerenciamento ipvsadm. Por meio da integração de vários servidores comuns relativamente baratos, o mesmo serviço é fornecido para o exterior com o mesmo endereço.
- Modo de roteamento direto de balanceamento de carga. Chamado de modo de trabalho DR, o programador de carregamento serve apenas como portal de acesso do cliente.Cada servidor de nó e o programador estão localizados na mesma rede física e o servidor de nó responde diretamente à solicitação do cliente sem passar pelo programa de carregamento.
- Keepalived é uma ferramenta auxiliar poderosa projetada especificamente para LVS. É usada principalmente para fornecer funções de failover e verificação de integridade - para determinar a disponibilidade de agendadores de carga LVS e servidores de nó, isolá-los no tempo e substituí-los por novos Servidor, reingressar no cluster quando o host com falha se recuperar.
LVS (DR — RR) + configuração KEEPALIVE
Informações de configuração:
Funções | IP | sistema operacional |
---|---|---|
LVS-DR-MASTER | 192.168.153.140 | centos6.5_x64 |
LVS-DR-BACKUP | 192.168.153.131 | centos6.5_x64 |
LVS-DR-VIP | 192.168.153.100 | centos6.5_x64 |
WEB1-Realserver | 192.168.153.139 | centos6.5_x64 |
WEB2-Realserver | 192.168.153.133 | centos6.5_x64 |
Nota: Ignore o endereço IP e tome o do seu ambiente como o principal.
Lembre-se: desligue o firewall e selinux
A operação começa:
Operação LVS-DR:
Instale no LVS mestre e escravo, respectivamente, da seguinte forma:
[root@DB ~]# yum -y install keepalived ipvsadm
Configure o principal keepalived:
insira o diretório especificado e modifique o arquivo de configuração
[root@DB ~]# cd /etc/keepalived/
[root@DB keepalived]# vim keepalived.conf
O ícone completo antes da modificação: Linhas 1-56: não se preocupe com as linhas após 56, você também pode excluí-las diretamente
Gráfico de comparação antes e depois da modificação - o número da linha pode ser confuso, portanto, você deve consultar principalmente a operação antes da modificação com seu próprio entendimento:
1.
Operação: exclua 8 linhas da quarta linha
—————————————————————————————————
2 、
Operação: exclua duas linhas da linha 18 e, em seguida, altere a única linha, aqui está o endereço VIP
—————————————————————————————————
3 、
Operação:
Linha 22: Altere o IP e a porta do VIP.
Linha 25: Altere o modo lvs para DR.
Linha 27: Exclua a
linha 30: Altere o IP do servidor real e a porta. Após
modificar a linha 31, exclua a linha 8 da linha 32 e
depois TCP_CHECK Adicione uma linha de conteúdo entre as chaves e
finalmente copie o conteúdo da linha real_server9, cole-o na última chave e modifique o IP no
final. O ícone completo após a modificação:
O arquivo de configuração principal de keepalived é modificado,
inicie e verifique se o VIP foi bem sucedido
[root@DB keepalived]# service keepalived start
[root@DB keepalived]# ip a
Configure o modo de espera keepalived
diretamente, use scp para transferir o arquivo de configuração principal de keepalived para o modo de espera, modifique um ou dois
[root@DB2 keepalived]# scp 192.168.153.140:/etc/keepalived/keepalived.conf ./
Finalmente comece a manter vivo
Configuração do Node Web Server
Nota: as operações WEB1 e WEB2 são exatamente iguais, exceto que a página de teste é diferente. A
página de teste é diferente para mostrar visualmente o efeito de carregamento
- Ao usar o modo DR, o servidor do nó também precisa configurar o endereço VIP e ajustar os parâmetros de resposta ARP do kernel para evitar que o endereço MAC VIP seja atualizado e evitar conflitos.
[root@THREE ~]# cd /etc/sysconfig/network-scripts/
[root@THREE network-scripts]# cp ifcfg-lo ifcfg-lo:0
[root@THREE network-scripts]# vim ifcfg-lo:0
Comece e verifique
[root@THREE network-scripts]# ifup lo:0
[root@THREE network-scripts]# ifconfig lo:0
A figura abaixo é um sucesso
- Adicionar roteamento de acesso local VIP (restringir o acesso aos dados VIP para serem locais para evitar distúrbios de comunicação)
[root@THREE ~]# vim /etc/rc.local
Operação de linha de comando
[root@THREE ~]# route add -host 192.168.153.100 dev lo:0
- Modifique os parâmetros do kernel
[root@THREE ~]# vim /etc/sysctl.conf
Depois de inserir o arquivo de configuração, adicione 6 linhas à linha inferior
net.ipv4.conf.all.arp_ignore = 1
net.ipv4.conf.all.arp_announce = 2
net.ipv4.conf.default.arp_ignore = 1
net.ipv4.conf. default.arp_announce = 2
net.ipv4.conf.lo.arp_ignore = 1
net.ipv4.conf.lo.arp_announce = 2
Nota:
- Quando arp_announce for 2: Apenas responda à placa de rede com pacotes ARP que correspondam ao segmento de rede.
- arp_ignore é 1: responde apenas a solicitações arp cujo endereço IP de destino é o endereço local na placa de rede receptora, que é principalmente para proibir responder a solicitações ARP.
[root@THREE ~]# sysctl -p
- Instale httpd, crie cluster lvs de teste de página da web
[root@THREE ~]# yum -y install httpd
[root@THREE ~]# echo web1 > /var/www/html/index.html
[root@THREE ~]# service httpd start
teste:
Você pode ver visualmente o efeito do balanceamento de carga visitando o endereço VIP na página da web, conforme mostrado na figura abaixo
Acessando diretamente o endereço IP virtual de fora, você pode acessar as informações do site no nó correspondente. Quando o agendador principal falhar, ele mudará automaticamente para o agendador de backup. O número de visitas do site é calculado de acordo com o peso e algoritmo.
Para visualizar a distribuição da carga, você pode executar o seguinte comando (verifique no principal Keeoalived)
[root@DB ~]# ipvsadm -lnc
IPVS connection entries
pro expire state source virtual destination
TCP 01:57 FIN_WAIT 192.168.153.1:64206 192.168.153.100:80 192.168.153.139:80
TCP 01:56 FIN_WAIT 192.168.153.1:64199 192.168.153.100:80 192.168.153.139:80
TCP 01:57 FIN_WAIT 192.168.153.1:64204 192.168.153.100:80 192.168.153.139:80
TCP 01:56 FIN_WAIT 192.168.153.1:64201 192.168.153.100:80 192.168.153.133:80
TCP 14:59 ESTABLISHED 192.168.153.1:64209 192.168.153.100:80 192.168.153.139:80
TCP 01:54 FIN_WAIT 192.168.153.1:64195 192.168.153.100:80 192.168.153.133:80
TCP 01:57 FIN_WAIT 192.168.153.1:64205 192.168.153.100:80 192.168.153.133:80
TCP 01:56 FIN_WAIT 192.168.153.1:64202 192.168.153.100:80 192.168.153.139:80
TCP 01:57 FIN_WAIT 192.168.153.1:64203 192.168.153.100:80 192.168.153.133:80
TCP 01:57 FIN_WAIT 192.168.153.1:64207 192.168.153.100:80 192.168.153.133:80
Programador de teste:
após interromper o keepalived principal, continue visitando a
página http://192.168.20.100 sem ser afetado pelo sucesso
Verifique se o VIP foi transferido
[root@DB2 ~]# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether 00:0c:29:c7:ce:80 brd ff:ff:ff:ff:ff:ff
inet 192.168.153.131/24 brd 192.168.153.255 scope global eth0
inet 192.168.153.100/32 scope global eth0
inet6 fe80::20c:29ff:fec7:ce80/64 scope link
valid_lft forever preferred_lft forever