minhas informações de contato
Correspondência[email protected]
2024-07-12
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
Índice
Índice de confiabilidade do sistema
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)
1. Configuração do agendador (test1 192.168.233.10)
2. Configuração RS (nginx1 e nginx2) [deve ser modificada ambas as vezes]
Arquitetura HA altamente disponível
experimento de manutenção de atividade
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
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
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
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
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
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
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
Enquete rr
Pesquisa ponderada
Conexão mínima lc
link mínimo ponderado wlc
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
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
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
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
sondagem ponderada
é 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.
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.
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.
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
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
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
Modificar algoritmo de votação VIP
Modifique o peso nas pesquisas de política
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
lvs (modo DR)+nginx+tomcat
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>
<% out.println("Página dinâmica 1, http://www.test1.com");%>
</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
Visite a página estática 192.168.100:81
Visite a página dinâmica 192.168.233.100:82/index.jsp
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
É 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
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
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 >/etc/sysconfig/ipvsadm
systemctl reiniciar ipvsadm
ipvsadm -ln
cd /etc/keepalive
vim keepalived.conf