Red Hat Linux Virtual Server
(LVS)
1
1 - Visão Geral do Linux Virtual
Server
•
•
•
•
Configuração básica do LVS
Uma configuração em três camadas
Visão geral do escalonador do LVS
Métodos de Roteamento
– NAT (Network Address Translator)
– Direct Routing (DR)
• Persistência e Firewall Marks
• LVS – Diagrama de Blocos
2
Uma configuração básica do LVS
3
Visão Geral do Linux Virtual Server
(LVS)
• LVS é um conjunto integrado de
componentes de software para balancear
a carga de pacotes IP através de um
conjunto de servidores reais.
• O LVS roda em um par de computadores
configurados igualmente: um que
representa o roteador LVS ativo (active
LVS router) e um que é o backup LVS
router.
4
Linux Virtual Server (LVS)
• LVS desempenha balanceamento de
carga através técnicas de roteamento
especializadas que disparam o tráfego a
um conjunto de servidores
5
Algoritmos de Escalonamento
•
•
•
•
•
•
Round-Robin Scheduling
Weighted Round-Robin Scheduling
Least-Connection
Weighted Least-Connection (default)
Locality-Based Least-Connection Scheduling
Locality-Based Least-Connection Scheduling
with Replication Scheduling
• Destination Hash Scheduling
• Source Hash Scheduling
6
Topologias
• NAT LVS Network
– Vantagens
– desvantagens
• LVS via Direct Routing
– Vantagens
• mais rápido
– Desvantages
• Problema com o ARP (usar o arptables_jf ou
iptables ...)
7
Persistence e Firewall Marks
Em certas situações, é desejável que o cliente
reconecte repetidamente ao mesmo servidor
real. Exemplos de tais situações incluem:
formulários web de várias páginas, cookies,
conexões SSL e FTP
Nesses casos, o cliente não funcionará
apropriadamente a menos que a transação seja
manuseada pelo mesmo servidor a fim de
manter o contexto.
LVS provê duas features diferentes para
manusear isso: persistência e firewall marks
8
Persistence
• A persistência age como um temporizador, quando habilitada.
• Quando um cliente conecta-se a um serviço, o LVS lembra-se a
última conexão por um tempo especificado.
• Se o mesmo cliente usando o mesmo endereço IP conectar-se
novamente dentro do período especificado, ele é enviado ao
mesmo servidor conectado previamente - sobrepondo o mecanismo
de balanceamento de carga
• Quando a conexão ocorre fora do período de tempo especificado,
ele é tratado de acordo com as regras de escalonamento que
estiverem em vigor.
• Grouping connections destinadas a diferentes portas podem ser
importante para protocolos que usam mais de uma porta de
comunicação, como o protocolo FTP (usa as portas 20 e 21)
9
Firewall Marks
• Firewall Marks  é uma maneira fácil e eficiente para agrupar
portas usadas por um protocolo ou grupo de protocolos
relacionados
• Por exemplo, se um LVS é distribuído para executar uma aplicação
de e-commerce, firewall marks pode ser usado para “empacotar” as
conexões usando as portas 80 (HTTP) e 443 (HTTPS)
• Atribuindo o mesmo firewall mark ao servidor virtual para cada
protocolo, a informação de estado para a transação pode ser
preservada porque o roteador LVS encaminha todas as requisições
ao mesmo servidor real depois que a conexão é aberta
• Pela sua eficiencia e facilidade de uso, os administrador do LVS
devem usar Firewall Marks ao invés de Persistence sempre que
possivel para agrupar as conexões. Contudo, os administradores
devem ainda adicionar persistencia aos servidores virtuais em
conjunto com firewall marks para garantir que os clientes são
reconectados ao mesmo servidor por um tempo adequado de
tempo
10
Componentes do LVS
O LVS usa uma coleção de programas para monitorar os membros e
serviços de um cluster
• pulse  é um deamon que executa tanto no nó principal quanto no
nó backup. É responsável pelo controle dos outros deamons e
manipula o failover entre “as caixas de roteamento” do IPVS
• lvs  é um deamon que roda no nó ativo; ele gerencia a tabela de
roteamento do IPVS através da ferramenta ipvsadm
• ipvsadm  IP Virtual Server Administrator
• nanny  esse processo verifica o estado de um serviço
configurado em um servidor real e diz ao deamon lvs se o serviço
estiver com problemas.
• /etc/sysconfig/ha/lvs.cf  é o arquivo de configuração do LVS
• Piranha Configuration Tool (piranha-gui)
• send_arp
11
Componentes do LVS
12
2 – Configuração inicial do LVS
• Configurando os serviços nos roteadores
LVS
• Configurando a password para o Piranha
• Iniciando o Piranha
• Limitando o acesso ao Piranha
• Ligando o encaminhamento de pacotes
• Configurando os Serviços nos servidores
reais
13
Configuração de Serviços
• Há três serviços que precisam ser
habilitados durante o boot:
– O serviço piranha-gui (apenas no nó primário)
– O serviço pulse
– O serviço sshd (normalmente já está
instalado)
14
Configurando os serviços para
iniciarem durante o boot
# /sbin/chkconfig --level 35 daemon on
Onde daemon deve ser substituido por cada um
dos serviços (pulse, piranha-gui)
# /sbin/chkconfig --level 35 pulse on
# /sbin/chkconfig --level 35 piranha-gui on
Use o comando:
# /sbin/chkconfig --list
Para obter uma lista de todos os serviços
disponíveis
15
Piranha
Antes de usarmos o Piranha, é necessário
definir um password.
Para isso, uso o comando:
# /usr/sbin/piranha-passwd
16
Piranha - Inicialização
• Inicie ou reinicie o serviço piranha-gui
localizado em
/etc/rc.d/init.d/piranha-gui
• Use o comando:
# /sbin/service piranha-gui start|restart
Para inicializar o serviço.
• Para acessar o software, abra o browser
em http://localhost:3636
17
Habilitando o encaminhamento de
pacotes
• Faça
# /sbin/sysctl net.ipv4.ip_forward=1
Verifique
# /sbin/sysctl net.ipv4.ip_forward
#1
18
3 – Setting Up LVS
•
•
•
•
•
•
A rede NAT LVS
LVS via Direct Routing
Colocando as configurações juntas
Serviços multiportas e LVS
Configurando o FTP
Armazenando as configurações do
Network Packet Filter
19
Configurando o LVS
• O LVS consiste de dois grupos fundamentais:
– Grupo de roteadores LVS
• Active LVS
• Backup LVS (modo Hot standby)
– Grupo de servidores reais
• Servidor real 1
• ...
• Servidor real n
Obs: para prevenir um ponto único de falha, cada
grupo deve conter pelo menos dois membros no
sistema
20
The NAT LVS Network
• Layout da Rede (Network layout)
• Hardware
• Software
21
LVS via Direct Routing (DR)
• Layout da Rede (Network Layout)
• Hardware
• Software
22
Serviços que usam múltiplas portas
e o LVS
23
Configurando o FTP
• Como o FTP trabalha
• Como isso afeta o roteamento do LVS
• Criando Network Packet Filter Rules
– Regras para Active Connections
– Regras para Passive Connections
24
Como o FTP trabalha
• Porta de Controle do FTP: 21
Dois tipos de conexão de dados:
• Active Connection
• Passive Connection
O cliente determina o tipo da conexão e não
o servidor.
25
Gravando a configuração do
Network Packet Filter
• /sbin/service iptables save
Este comando armazena a configuração
em: /etc/sysconfig/iptables
de forma que que esta configuração seja
restabelecida em tempo de boot
/sbin/sevice iptables start | stop
26
4 – Configurando os roteadores
LVS o Piranha
•
•
•
•
•
•
Softwares necessários
Logando na Piranha
Controlando/Monitorando
Settings globais
Servidores Virtuais
Sincronizando os arquivos de
configuração
• Iniciando o LVS
27
Softwares Necessários
• O software piranha-gui deve estar
rodando no roteador LVS primário
• Verifique através do comando:
# service piranha-gui status
28
Logando na Ferramenta de
Configuração Piranha
• http://localhost:3636
• Username: piranha
• Password: piranha
29
Control/Monitoring
• O painel Control/Monitoring apresenta um
status limitado da execução do LVS
• Ele exibe:
– Status do daemon pulse
– A tabela de roteamento do LVS
– Processos nanny espalhados pelo LVS (LVSspanned nanny processes)
30
Controle de Monitoramento
31
Painel Control/Monitoring
• Auto update
• Update information now
• Change Password
32
Global Settings
33
Parâmetros Globais
• O painel GLOBAL SETTINGS é onde você
define os detalhes de rede para as
interfaces pública e privada do roteador do
LVS
34
Parâmetros Globais
• Primary server public IP: endereço IP real
do nó LVS primário
• Primary server private IP
• Use network type: selecione entre NAT e
Direct Routing (DR)
35
Configuração NAT
– NAT Router IP:
– NAT Router Netmask:
– NAT Router device:
36
Redundância
• O painel REDUNDANCY permite que
configuremos o endereço IP do nó backup
do roteador LVS
37
Redundância
38
Redundância
• Redundant server public IP: entre o endereço IP real e
público para o nó backup do roteador LVS
• Redundant server private IP:
• Heartbeat interval (seconds): estabelece o número de
segundos entre os heartbeats - é o intervalo que o nó
backup irá verificar o status funcional do nó primário do
LVS
• Assume dead after (seconds): se o nó LVS primário
não responder após esse número de segundos, então o
nó do roteador LVS backup irá iniciar o processo de
failover
• Heartbeat runs on port: estabelece a porta pela qual o
heartbeat comunica-se com o nó LVS primário
39
Servidores Virtuais
• O painel VIRTUAL SERVERS exibe
informações sobre cada servidor virtual
definido
• Cada entrada na tabela exibe o status do
servidor virtual, seu nome, o IP atribuído
ao servidor, a máscara do IP virtual, o nº
da porta através da qual o serviço se
comunica, o protocolo usado, e a interface
do dispositivo virtual
40
Virtual Servers
41
Virtual Servers
• Cada servidor exibido no painel VIRTUAL
SERVERS pode ser configurado em telas
ou subseções subsequentes
42
Sub-Sessões de Virtual Servers
• VIRTUAL SERVER
• REAL SERVER
• MONITORING SCRIPTS
43
VIRTUAL SERVER
• É um servidor altamente escalável e disponível
construído em um cluster (agrupamento) de
servidores reais
• A arquitetura do Server Cluster (agrupamento
de servidores) é completamente transparente
aos usuários finais, e os usuários interagem
com o sistema de cluster como se ele fosse
somente um único servidor virtual de alta
performance
44
Linux Virtual Server
45
Virtual Server
46
Virtual Server
•
•
•
•
•
•
•
•
•
•
•
•
•
•
Name: entre com um nome descritivo para identificar o servidor virtual
Application Port: entre o número atraves da qual o servidor de aplicação irá ouvir
Protocol: selecione um dos protocolos TCP ou UDP
Virtual IP Address: enter com o endereço VIP nesse campo
Virtual IP Network Mask: estabelece a máscara de rede para o servidor virtual
Firewall Mark
Device:
Re-entry Time
Service Timeout
Quiesce server
Load monitoring tool
Scheduling (Escalonamento): seleciona o tipo de algoritmo de escalonamento
Persistence
Persistence Network Mask
47
REAL SERVER
• É o servidor que fica na retaguarda e
executa os serviços reais de redes, tais
como: Web, FTP, DNS, streaming, LDAP,
VOIP
48
REAL SERVER
49
Configuração de Servidores Reais
• Clique no botão Add para adicionar um
novo servidor real
• Clique no botão Delete para remover um
servidor real
• Selecione o radio button e pressione o
botão Edit para alterar as informações
sobre um servidor real
• Clique no botão (De)activate para
ativar/desativar um servidor real
50
Real Server
51
Painel de configuração do servidor
real
• Name (Nome): um nome descritivo para o
servidor real (o nome não é o hostname
da máquina, portanto faça-o descritível e
de facilmente identificável)
• Address (Endereço IP): o endereço IP
real do servidor
• Weight (peso): um número inteiro que
indica a capacidade relativa desse host
com relação aos outros hosts do pool
52
MONITORING SCRIPTS
• São os scripts de monitoramento dos
serviços oferecidos pelo servidor
53
Script de Monitoramento
54
The edit monitoring scripts
• Sending Program:
• Send:
• Expect:
55
Sincronizando os arquivos de
configuração
Copiar a configuração do roteador ativo
para o roteador backup
Execute os comandos abaixo a partir do
servidor primário
# export BACKUP=<IP do roteador backup>
# scp /etc/sysconfig/ha/lvs.cf $BACKUP:
/etc/sysconfig/ha/lvs.cf
56
Iniciando o LVS
• Abra duas janelas de terminal como root
• Em um terminal monitore as mensagens
do log do kernel usando o comando:
# tail -f /var/log/messages
• No outro terminal, inicie o LVS
# /sbin/service pulse start
57
Iniciando o LVS (2)
• Monitore a janela de logs
• Quando a mensagem “gratuitous lvs arps
finished” aparecer significa que o daemon
pulse iniciou sem problemas
58
Iniciando o LVS - roteador backup
• Repita as mesma instruções executadas
para iniciar o LVS no roteador primário.
59
Apêndice A – Usando o LVS com o
Red Hat Cluster
60
Apêndice A – Usando LVS com o
Red Hat Cluster
• Roteadores LVS podem ser usados
juntamente com o Red Hat Cluster para
prover um site de e-commerce de alta
disponibilidade que provê balanceamento
de carga, integridade de dados e
disponibilidade da aplicação
61
Configurações
• Uma configuração three-tier (3-camadas)
é requerida a fim de prover conteúdo
dinâmico
• Uma configuração two-tier (2-camadas) é
apropriado se o servidor web prover
somente conteúdo estático
62
Camadas
• Cada camada prove as seguintes funções:
– Primeira camada: roteadores LVS fazendo o
balanceamento de carga requisições web
distribuídas
– Segunda camada: um conjunto de servidores
Web para servir as requisições
– Terceira camada: um Cluster Red Hat para
prover dados aos servidores Web
63
Backup
64
Papéis desempenhados pela LVS
ativo e backup
Papéis do LVS ativo:
• Balancear a carga entre os servidores
reais
• Verificar a integridade de serviços da cada
servidor real
Papéis do LVS backup:
• Monitora o LVS ativo e toma o seu lugar
no caso dele falhar
65
Piranha
• É uma ferramenta de configuração gráfica
(GUI) usada para estabelecer, monitorar e
administrar um cluster LVS (Linux Virtual
Server)
66
Download

LVS - MLTech