Compartilhamento de tecnologia

Cluster lvs, modo NAT e modo DR, keepalive

2024-07-12

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

Índice

conceito de cluster lvs

Tipos de clusters: três tipos

Índice de confiabilidade do sistema

Terminologia no cluster lvs

Como funciona o lvs

Modo NAT

ferramentas lvs

algoritmo

experimentar

fluxo de dados

etapa

1. Configuração do agendador (test1 192.168.233.10)

2. Configuração RS (nginx1 e nginx2)

3. Tradução de endereços (test1 192.168.233.10)

Resultados experimentais

Modo DR

conceito

Diagrama de fluxo de dados

pergunta:

1. Conflito de endereço VIP

2. Quando a mensagem é retornada, o endereço VIP ainda está lá. Como o cliente pode receber a resposta?

Implementação do modo DR

etapa

1. Configuração do agendador (test1 192.168.233.10)

2. Configuração RS (nginx1 e nginx2) [deve ser modificada ambas as vezes]

Resultados experimentais

Resumir

Experiência resumida

LVS implementa encaminhamento de quatro camadas + nginx implementa encaminhamento de sete camadas (dinâmico). Acessar o endereço VIP do LVS pode obter separação dinâmica e estática.

Diagrama de fluxo de dados

Etapas experimentais

Resultados experimentais

Três modos de trabalho de lvs

Arquitetura HA altamente disponível

conceito

experimento de manutenção de atividade

Etapas experimentais

hospedar

Editar

Preparar

Resultados experimentais


conceito de cluster lvs

O nome completo é servidor virtual Linux, que é um software que implementa balanceamento de carga no nível do kernel Linux.

Função principal: Forme vários servidores back-end em um cluster de servidores altamente disponível e de alto desempenho e distribua solicitações de clientes para servidores back-end por meio de algoritmos de balanceamento de carga para obter alta disponibilidade e balanceamento de carga.

O saldo de loab do servidor SLB do Alibaba é implementado usando lvs+keepalive.

Clusterizado e distribuído

Como expandir o sistema:

Dimensionamento vertical: Aumento da escala para construir computadores mais capazes.Gargalos: limitações dos próprios equipamentos do computador; gargalos de desempenho do próprio hardware;

Expansão horizontal: Expanda para fora e adicione equipamentos.Execute vários serviços em paralelo e conte com a rede para resolver problemas de comunicação interna, cluster cluster

Cluster: Um sistema único formado pela combinação de vários computadores para resolver um problema específico

Tipos de clusters: três tipos

LIBRA: balanceamento de carga cluster de balanceamento de carga, composto por vários hosts, cada host suporta apenas parte das solicitações de acesso

AH : alta disponibilidade: Ao projetar o sistema, certas medidas são tomadas para garantir que, se um componente ou parte do sistema falhar, todo o sistema ainda poderá funcionar normalmente.Para manter a disponibilidade, confiabilidade e tolerância a falhas do sistema

HPC:cluster de computação de alto desempenho, com requisitos mais elevados de tempo de resposta e poder de processamento

Índice de confiabilidade do sistema

MINHA MELHOR AMIGA:Tempo médio entre falhas Tempo médio entre falhas

MTTR:Tempo Médio de Reparo de Recuperação Tempo Médio de Recuperação

Um = MTBF/(MTBF+MTTR)

O índice A deve estar entre 0 e 1. O índice A é uma medida da disponibilidade do sistema. 0 significa que o sistema está menos disponível, 1 significa que o sistema está mais disponível.

O indicador A deve estar infinitamente próximo de 1 (98%-99% qualificados; 90%-95% não qualificados)

Todos estão em horas (8.760 horas em 1 ano, 365 dias)

O tempo de inatividade e o tempo planejado não estão incluídos

O tempo não planejado, ou seja, o tempo de falha, é o tempo total desde a ocorrência da falha até a resolução da falha, é um indicador ao qual devemos prestar atenção.

Cenários aplicáveis ​​ao LVS:

Clusters pequenos não precisam usar lvs, use nginx, clusters grandes usam lvs

Terminologia no cluster lvs

VS: O nome lógico do serviço lvs do servidor virtual, que é o endereço IP e a porta que usamos ao acessar o cluster lvs externamente.

DS: O servidor principal no cluster lvs do servidor diretor, ou seja, o agendador (ou seja, o servidor proxy nginx), é o núcleo do cluster. O agendador é usado para aceitar solicitações do cliente e encaminhá-las para o back-end. servidor.

RS: O servidor real no cluster lvs do servidor real, o servidor back-end, é usado para aceitar solicitações encaminhadas pelo DS e responder aos resultados.

CIP: client ip O endereço do cliente, ou seja, o endereço do cliente que iniciou a solicitação

VIP: endereço IP virtual usado pelo cluster lvs, endereço IP virtual que fornece acesso ao cluster externo

DIP: diretor ip é o endereço do agendador no cluster, usado para comunicação com RS

RIP: real ip O endereço IP do servidor back-end no cluster

Como funciona o lvs

Modo NAT: O modo é respondido ao cliente pelo agendador (tradução de endereço)

Modo DR (modo de roteamento direto): o servidor real responde diretamente ao cliente

Modo TUN: modo túnel

Modos comumente usados: modo NAT e modo DR

Modo NAT

No modo NAT, o LVS modificará o endereço IP e a porta de destino na mensagem de solicitação do cliente para o endereço IP e a porta dentro do LVS e, em seguida, encaminhará a solicitação para o servidor back-end.

Quando o resultado da resposta é retornado ao cliente, a mensagem de resposta é processada por lvs e o IP e a porta de destino são modificados para o endereço IP e a porta do cliente.

Princípio: Primeiro, quando o balanceador de carga recebe o pacote de solicitação do cliente, ele determina para qual servidor real backend (RS) enviar a solicitação com base no algoritmo de agendamento.
O balanceador de carga então altera o endereço IP de destino e a porta do pacote de solicitação enviado pelo cliente para o endereço IP (RIP) do servidor real back-end.
Depois que o servidor real responde à solicitação, ele verifica a rota padrão e envia o pacote de dados de resposta ao balanceador de carga. Após receber o pacote de resposta, o balanceador de carga.
Altere o endereço de origem do pacote para um endereço virtual (VIP) e envie-o de volta ao cliente.

Vantagens: Os servidores no cluster podem usar qualquer sistema operacional que suporte TCP/IP, desde que o balanceador de carga tenha um endereço IP legal.

Desvantagens: Escalabilidade limitada Quando os nós do servidor crescem muito, já que todas as solicitações e respostas precisam passar pelo balanceador de carga.
Portanto, o balanceador de carga se tornará o gargalo de todo o sistema.

Caracterizado pela tradução de endereço

Tradução de endereço: rede interna - rede externa, o endereço IP de origem é convertido SNAT

Rede externa-rede interna converte o endereço IP de destino DNAT

ferramentas lvs

ipvsadmFerramentas para configurar e gerenciar clusters lvs

-A adiciona servidor virtual vip

-D excluir endereço do servidor virtual

-s especifica o algoritmo de agendamento de balanceamento de carga

-a adiciona servidor real

-d excluir servidor real

-t especifica o endereço VIP e a porta

-r especifica o endereço e a porta do rip

-m Usar modo NAT

-g Use o modo DR

-i Use o modo túnel

-w define o peso

-p 60 mantém a conexão por 60s Define o tempo de espera da conexão

-l visualização de lista

-n display digital

algoritmo

Enquete rr

Pesquisa ponderada

Conexão mínima lc

link mínimo ponderado wlc

experimentar

fluxo de dados

nginx 1 RS1 192.168.233.20

nginx2 RS2 192.168.233.30

agendador test1 ens33 192.168.233.10 ens36 12.0.0.1

cliente test2 12.0.0.10

etapa
1. Configuração do agendador (test1 192.168.233.10)

yum -y instalar ipvsadm* -y

Configurar ens33

systemctl reiniciar rede

Configurar ens36

cd /etc/sysconfig/network-scripts/

cp ifcfg-ens33 ifcfg-ens36

vim ifcfg-ens36

systemctl reiniciar rede

2. Configuração RS (nginx1 e nginx2)

Configurar nginx1 192.168.233.20 Modificar gateway

systemctl reiniciar rede

Configurar nginx2 192.168.233.30 Modificar gateway

systemctl reiniciar rede

vim /usr/local/nginx/html/index.html

Modifique o conteúdo da página visitada

Verifique se o acesso está conectado

3. Tradução de endereços (test1 192.168.233.10)

iptables -t nat -vnL Verifique se a tabela nat tem uma política

1.

iptables -t nat -A POSTROUTING -s 192.168.233.0/24 -o ens36 -j SNAT --para 12.0.0.1

O endereço do dispositivo de 192.168.233.0/24 é convertido para 12.0.0.1

2.

ipvsadm -C limpa a política original

ipvsadm -A -t 12.0.0.1:80 -s rr Especifique o endereço VIP e a porta

Primeiro adicione o VIP, o IP e a porta do servidor virtual e depois adicione o servidor real

3.

ipvsadm -a -t 12.0.0.1:80 -r 192.168.233.20:80 -m

-a adicionar servidor real

-t especifica o endereço VIP

-r especifica o endereço e a porta do servidor real

-m especifica o modo como modo nat

ipvsadm -ln visualizar

4.

ipvsadm-save salvar

ipvsadm -D -t 192.168.233.10:80 política de exclusão

ipvsadm -d -r 192.168.233.20: -t 12.0.0.1:80 excluir servidor de nó

5. Habilite a função de roteamento e encaminhamento

vim /etc/sysctl.conf

net.ipv4.ip_forward=1

4. Cliente (test2 12.0.0.10)

Modifique o endereço IP e gateway do test2

Resultados experimentais

sondagem ponderada

Modo DR

conceito

é o modo de roteamento direto

Modo NAT: O agendador é o mais importante em todo o cluster LVS. No modo NAT, é responsável por receber solicitações, encaminhar o tráfego de acordo com o algoritmo de balanceamento de carga e enviar respostas ao cliente.

Modo DR: O escalonador ainda é responsável por receber solicitações, e também encaminha o tráfego para RS de acordo com o algoritmo de balanceamento de carga, e a resposta é enviada diretamente ao cliente pelo RS.

Roteamento direto: É um modo de encaminhamento da Camada 2 que encaminha quadros de dados e os encaminha com base no endereço MAC de origem e no endereço MAC de destino sem modificar o IP de origem e o IP de destino do pacote de dados. Encaminhar com base no endereço MAC do pacote de dados.

No modo DR, o LVS também mantém um endereço IP virtual, e todas as solicitações são enviadas para este VIP. Como o encaminhamento da camada 2 é usado, quando a solicitação do cliente chega ao agendador, um RS é selecionado de acordo com o algoritmo de balanceamento de carga e o servidor VIP. é modificado. O mac de destino se torna o endereço mac do RS. Depois que o RS processa a solicitação, ele pode enviar a resposta diretamente ao cliente com base no endereço mac de origem do cliente na mensagem, sem passar pelo agendador.

Princípio: Primeiro, quando o balanceador de carga recebe o pacote de solicitação do cliente, ele determina para qual servidor real backend (RS) enviar a solicitação com base no algoritmo de agendamento.
O balanceador de carga então altera o endereço MAC de destino do pacote de solicitação enviado pelo cliente para o endereço MAC do servidor real backend (R-MAC).
Depois que o servidor real responde à solicitação, ele verifica a rota padrão e envia o pacote de resposta diretamente ao cliente, sem passar pelo balanceador de carga.

Vantagens: O balanceador de carga é responsável apenas por distribuir pacotes de solicitação para servidores de nós back-end, enquanto o RS envia pacotes de resposta diretamente aos usuários.
Portanto, a grande quantidade de fluxo de dados através do balanceador de carga é reduzida. O balanceador de carga não é mais o gargalo do sistema e pode lidar com uma grande quantidade de solicitações.

Desvantagens: Tanto o balanceador de carga quanto o servidor real RS precisam ter uma placa de rede conectada ao mesmo segmento de rede física e devem estar no mesmo ambiente LAN.

Diagrama de fluxo de dados

pergunta:
1. Conflito de endereço VIP

Motivo: O agendador está configurado com VIP e o RS também está configurado com endereço VIP. O conflito de endereço VIP, porque o agendador e o RS estão no mesmo segmento de rede, causará distúrbios na comunicação ARP. Como é transmitido por toda a LAN, todos os dispositivos o recebem.

Como bloquear a resposta de loopback de lo para que apenas o endereço IP físico desta máquina responda.

Solução: Modifique os parâmetros do kernel:arp_ignore=1

Somente o endereço IP físico do sistema responderá às solicitações ARP, e a interface de loopback lo não responderá às solicitações ARP.

2. Quando a mensagem é retornada, o endereço VIP ainda está lá. Como o cliente pode receber a resposta?

Solução:arp_announce=2

O sistema não usa o endereço de origem do pacote IP para responder à solicitação ARP, mas envia diretamente o endereço IP da interface física.

Implementação do modo DR

nginx1 RS (ip real) 192.168.233.20

nginx2 RS 192.168.233.30

vip 192.168.233.100

Agendador 192.168.233.10

Cliente 192.168.233.40

etapa
1. Configuração do agendador (test1 192.168.233.10)

yum -y instalar ipvsadm* -y

Adicionar placa de rede virtual ens33:0

Modifique os parâmetros de resposta do agendador

vim /etc/sysctl.conf

net.ipv4.ip_forward=0
net.ipv4.conf.all.send_redirects=0
net.ipv4.conf.default.send_redirects=0
net.ipv4.conf.ens33.send_redirects=0
 

sysctl -p

Adicionar política

cd /optar

ipvsadm -A -t 192.168.233.100:80 -s rr

ipvsadm -a -t 192.168.233.100:80 -r 192.168.233.20:80 -g

ipvsadm -a -t 192.168.233.100:80 -r 192.168.233.30:80 -g

ipvsadm-save >/etc/sysconfig/ipvsadm

systemctl reiniciar ipvsadm

ipvsadm -ln

2. Configuração RS (nginx1 e nginx2) [deve ser modificada ambas as vezes]

Modifique o conteúdo de exibição de páginas estáticas

vim /usr/local/nginx/html/index.html

systemctl reiniciar nginx

Adicionar endereço de loopback

cd /etc/sysconfig/network-scripts/

cp ifcfg-lo ifcfg-lo:0

vim ifcfg-lo:0

Adicionar interface lo:0 como vip

rota adicionar -host 192.168.233.100 dev lo:0

Defina o endereço IP como 192.168.233.100 e adicione-o à interface de loopback como VIP de lvs. Ele é encaminhado para RS através do modo de roteamento, que permite ao VIP identificar o servidor real.

Modifique a resposta do kernel do servidor real RS

vim /etc/sysctl.conf

net.ipv4.conf.lo.arp_ignore=1
net.ipv4.conf.lo.arp_announce=2
net.ipv4.conf.all.arp_ignore=1
net.ipv4.conf.all.arp_announce=2

Resultados experimentais

Modificar algoritmo de votação VIP

Modifique o peso nas pesquisas de política

Resumir

A diferença entre lvs e nginx para balanceamento de carga

LVS é um encaminhamento de quatro camadas, usando o modo kernel ip + port, e só pode ser usado como um proxy de quatro camadas.

Proxy nginx de quatro camadas ou proxy de sete camadas

Experiência resumida

lvs (modo DR)+nginx+tomcat

LVS implementa encaminhamento de quatro camadas + nginx implementa encaminhamento de sete camadas (dinâmico). Acessar o endereço VIP do LVS pode obter separação dinâmica e estática.

Diagrama de fluxo de dados

Etapas experimentais

Com base nos experimentos acima no modo DR, é alcançada a separação dinâmica e estática.

1. Parte do Tomcat

1. Crie páginas dinâmicas em Tomcat1 e Tomcat2 respectivamente

<%@ página idioma="java" importação="java.util.*" pageEncoding="UTF-8"%>
<html>
<head>
<title>Página de teste JSP 1</title>
</head>
<body>
&lt;% out.println("Página dinâmica 1, http://www.test1.com");%&gt;
</body>
</html>

2. Adicione sites ao Tomcat1 e Tomcat2 respectivamente

cd conf

servidor vim.xml

Exclua o site original primeiro

<Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false">
    <Context docBase="/usr/local/tomcat/webapps/test" path="" reloadable="true" />

Verifique se a porta foi iniciada

Visite 192.168.233.40:8080/index.jsp

2. parte nginx

Configurar nginx2 e nginx3

cd /usr/local/nginx/conf/

cp nginx.conf nginx.conf.bak.2024.07.08

vim nginx.conf

gato a montante {
servidor 192.168.233.40:8080 peso=1;
servidor 192.168.233.50:8080 peso=1;
}

localização ~ .*.jsp$ {
proxy_pass http://tomcat;
proxy_set_header HOST $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Encaminhado-Para $proxy_add_x_forwarded_for;
        }

Então systemctl reinicie o nginx

Configurar proxy nginx1

Seja um agente de quatro níveis

cd /usr/local/nginx/conf

vim nginx.conf

Então systemctl reinicie o nginx

Resultados experimentais

Visite a página estática 192.168.100:81

Visite a página dinâmica 192.168.233.100:82/index.jsp

Três modos de trabalho de lvs

NAT DR TUN

Vantagens: Tradução de endereços, configuração simples, WAN de melhor desempenho, pode alcançar encaminhamento de pacotes de dados de longa distância

Desvantagens Gargalo de desempenho Não suporta canais dedicados de segmento de rede cruzada, requer a abertura de uma VPN (custa dinheiro)

Requisitos RS: Nenhuma restrição de respostas ARP em interfaces não físicas deve ser suportada.

Quantidade de RS 10-20 unidades 100 unidades 100 unidades

Questões de entrevista:

1. Descreva resumidamente os três modos e diferenças de lvs

tabela acima

2. Como resolver o cérebro dividido no keepalive

Arquitetura HA altamente disponível

conceito

É uma arquitetura de alta disponibilidade no cluster vs, apenas para a alta disponibilidade do agendador

Implementar os agendadores principais e de backup baseados em vrp

Agendador principal e agendador de backup (múltiplas unidades)

Quando o agendador principal está funcionando normalmente, o backup fica totalmente em estado redundante (standby) e não participa da operação do cluster. Somente quando o agendador primário falhar, o servidor de backup assumirá o trabalho do agendador primário. Se o escalonador principal retomar sua função, o escalonador principal continuará servindo como entrada para o cluster, e o standby continuará em estado redundante, o que não depende necessariamente da prioridade.

Keepalive é baseado no protocolo vrp para implementar solução de alta disponibilidade lvs

1. Endereço multicast

224.0.0.18 comunica-se com base no endereço multicast e envia mensagens entre os dispositivos primário e secundário.Determine se o oponente está vivo

2. Determinar as posições de primário e secundário com base na prioridade

3. Failover, se o servidor primário falhar, o servidor de backup continuará funcionando.O Senhor se recuperou e está de prontidão

4. A troca entre primário e secundário é a troca do endereço VIP

Keepalive aparece especificamente para LVS, mas não é exclusivo para LVS.

módulo principal: o módulo principal do keepalive, responsável pela inicialização e manutenção do processo principal e pelo carregamento dos arquivos de configuração globais

Módulo vrrp: o módulo que implementa o protocolo vrrp, que é o módulo de função principal

módulo de verificação: responsável pela verificação de integridade, podendo também verificar o status do servidor real em segundo plano

experimento de manutenção de atividade

test1 192.168.233.10 mais

test2 192.168.233.50 em

vip 192.168.233.100

nginx1 192.168.233.20

nginx2 192.168.233.30

Cliente 192.168.233.40

Etapas experimentais

1. As operações primárias e secundárias devem ser realizadas da mesma maneira.

yum -y instalar ipvsadm keepalived

vim /etc/sysctl.conf

net.ipv4.ip_forward=0
net.ipv4.conf.all.send_redirects=0
net.ipv4.conf.default.send_redirects=0
net.ipv4.conf.ens33.send_redirects=0

sysctl -p

ipvsadm -C

ipvsadm -A -t 192.168.233.100:80 -s rr

ipvsadm -a -t 192.168.233.100:80 -r 192.168.233.20:80 -g

ipvsadm -a -t 192.168.233.100:80 -r 192.168.233.30:80 -g

ipvsadm-save &gt;/etc/sysconfig/ipvsadm

systemctl reiniciar ipvsadm

ipvsadm -ln

hospedar

cd /etc/keepalive

vim keepalived.conf

Preparar

Resultados experimentais