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