Alta Disponibilidade em Ambientes Linux




                  Alta Disponibilidade em Ambientes Linux

                                     Felipe Buarque de Queiroz
                                   Jorge Fernando Matsudo Iwano
                                 {felipe.buarque, jorge.iwano}@gmail.com

                   Fundação de Amparo a Pesquisa do Estado de Alagoas - FAPEAL
                        Unidade Gestora de Tecnologia da Informação - UGTI


                                           Agosto de 2009




                                                                                 1 / 32
Alta Disponibilidade em Ambientes Linux
  Introdução



      Conteúdo I
       1   Introdução
              Conceitos
              Definição
              Processos Organizacionais
       2   SPOFs
       3   Soluções em HA
             Fontes Redudantes
             Links Redundantes
             Monitoração de Nós
             Replicação de discos
             Sistemas de Arquivos
             Monitoração de Serviços
       4   Estudo de caso - FAPEAL
                                          2 / 32
Alta Disponibilidade em Ambientes Linux
  Introdução
    Conceitos


      Tipos de disponibilidade


              Disponibilidade Básica: encontrada em máquinas comuns,
              sem nenhum mecanismo especial em software ou hardware.
              Disponibilidade de 99% a 99, 9%
              Alta Disponibilidade: adiciona-se mecanismos de detecção,
              recuperação e mascaramento de falhas. Disponibilidade de
              99, 99% a 99, 999%
              Disponibilidade Contínua: cada vez mais próximo de 100%
              de disponibilidade. Tempo de inoperância desprezível. Todas
              as paradas são mascaradas.




                                                                            3 / 32
Alta Disponibilidade em Ambientes Linux
  Introdução
    Conceitos


      Falha, Erro e Defeito




              Falha: Ocorre no universo físico, nível mais baixo do hardware
              Erro: Representação da falha no universo informacional
              Defeito: Informação errônea não percebida e não tratada.
              Percebido no universo do usuário como travamento,
              mensagens de erro ou perda de dados




                                                                               4 / 32
Alta Disponibilidade em Ambientes Linux
  Introdução
    Conceitos


      Failover e Failback



              Failover: Processo no qual um recurso assume os serviços de
              outro similar quando este último apresenta falha. Pode ser
              automático ou manual, sendo o primeiro desejado em um
              ambiente de alta disponibilidade
              Failback: Após a manutenção e correção, sendo recuperado
              do estado de falha, o recurso é colocado em serviço, e então
              se realiza o processo inverso ao de failover. Pode ser
              automático ou manual, sendo este segundo muitas vezes
              desejado de forma a não haver nova interrupção nos serviços




                                                                             5 / 32
Alta Disponibilidade em Ambientes Linux
  Introdução
    Conceitos


      Estatísticas




              MTBF (Mean Time Between Failure): Tempo total de
              operação / Número total de falhas
              MTTR (Mean Time To Repair)
              Disponibilidade: MTBF / (MTBF + MTTR)




                                                                 6 / 32
Alta Disponibilidade em Ambientes Linux
  Introdução
    Conceitos


      Os “noves”




                                          7 / 32
Alta Disponibilidade em Ambientes Linux
  Introdução
    Definição


      O que é Alta Disponibilidade (HA)?



       HA
       Projeto e desenho de todo o sistema e sua implementação
       correspondente, de modo a possuir um grau absoluto de
       continuidade operacional durante um período determinado

              NÃO é um produto ou aplicação, é uma característica do
              sistema




                                                                       8 / 32
Alta Disponibilidade em Ambientes Linux
  Introdução
    Definição


      O que é Alta Disponibilidade (HA)?



       HA
       Projeto e desenho de todo o sistema e sua implementação
       correspondente, de modo a possuir um grau absoluto de
       continuidade operacional durante um período determinado

              NÃO é um produto ou aplicação, é uma característica do
              sistema




                                                                       8 / 32
Alta Disponibilidade em Ambientes Linux
  Introdução
    Processos Organizacionais


      Processos Organizacionais



              Identificar picos de demanda
              Estabelecer metas de disponibilidade
              Construir ambiente físico apropriado
              Criar processos automatizados
              Utilizar ambiente de desenvolvimento e testes
              Manter estoque de peças sobressalentes
              Contratar capacidade por demanda




                                                              9 / 32
Alta Disponibilidade em Ambientes Linux
  Introdução
    Processos Organizacionais


      Processos Organizacionais




              Definir um processo de escalonamento
              Realizar um planejamento para desastres
              Treinar a equipe para administração do sistema em HA
              Realizar testes periodicamente
              Documentar todo e qualquer detalhe




                                                                     10 / 32
Alta Disponibilidade em Ambientes Linux
  SPOFs



      Conteúdo I
       1   Introdução
              Conceitos
              Definição
              Processos Organizacionais
       2   SPOFs
       3   Soluções em HA
             Fontes Redudantes
             Links Redundantes
             Monitoração de Nós
             Replicação de discos
             Sistemas de Arquivos
             Monitoração de Serviços
       4   Estudo de caso - FAPEAL
                                          11 / 32
Alta Disponibilidade em Ambientes Linux
  SPOFs



      Single Points of Failure - SPOFs




              Recurso do sistema em que, caso falhe, provoca a
              indisponibilidade de todo o sistema
              Reduzir os SPOFs exige custos e adiciona um considerável
              grau de complexidade na infra-estrutura
              Um bom design de HA elimina pontos simples de falha




                                                                         12 / 32
Alta Disponibilidade em Ambientes Linux
  SPOFs



      SPOF - Exemplo




                                          13 / 32
Alta Disponibilidade em Ambientes Linux
  SPOFs



      Eliminando os SPOFs


              Conexão LAN
              Interface LAN
              Discos do sistema (ROOT disk)
              Discos dos dados
              Fonte de energia
              Interface com os discos
              Sistema Operacional
              Programas aplicativos




                                              14 / 32
Alta Disponibilidade em Ambientes Linux
  Soluções em HA



      Conteúdo I
       1   Introdução
              Conceitos
              Definição
              Processos Organizacionais
       2   SPOFs
       3   Soluções em HA
             Fontes Redudantes
             Links Redundantes
             Monitoração de Nós
             Replicação de discos
             Sistemas de Arquivos
             Monitoração de Serviços
       4   Estudo de caso - FAPEAL
                                          15 / 32
Alta Disponibilidade em Ambientes Linux
  Soluções em HA
    Fontes Redudantes


      Fontes Redudantes

              Possibilidade de substituição “a quente”
              Fases de energia distintas
              Disponibilidade de gerador




                                                         16 / 32
Alta Disponibilidade em Ambientes Linux
  Soluções em HA
    Links Redundantes


      Links Redundantes




              Links de operadoras distintas
              Autonomous Systems
              Virtual Router Redundancy Protocol (VRRP)




                                                          17 / 32
Alta Disponibilidade em Ambientes Linux
  Soluções em HA
    Links Redundantes


      Links Redundantes




                                          18 / 32
Alta Disponibilidade em Ambientes Linux
  Soluções em HA
    Monitoração de Nós


      Heartbeat
              Núcleo do ambiente de HA
              Monitoramento dos servidores em produção
              Coordena as ações de failover e failback




                                                         19 / 32
Alta Disponibilidade em Ambientes Linux
  Soluções em HA
    Monitoração de Nós


      KeepAlived
              Adiciona facilidades ao LVS Project
              Monitoramento dos servidores do pool LVS
              Implementa o VRRP v2 para coordenar ações de failover




                                                                      20 / 32
Alta Disponibilidade em Ambientes Linux
  Soluções em HA
    Replicação de discos


      Redundant Array of Independent Drives - RAID

              Subsistema de armazenamento composto de vários discos
              individuais
              2 objetivos básicos: desempenho e segurança
              Implementação via hardware ou software
              Técnicas:
                      RAID     0
                      RAID     1
                      RAID     2
                      RAID     3
                      RAID     4
                      RAID     5
                      RAID     6
                      RAID     10
                      RAID     50
                      RAID     100
                                                                      21 / 32
Alta Disponibilidade em Ambientes Linux
  Soluções em HA
    Replicação de discos


      RAID




                                          Figura: Exemplo de RAID 10

                                                                       22 / 32
Alta Disponibilidade em Ambientes Linux
  Soluções em HA
    Replicação de discos


      Distributed Replicated Block Device - DRBD
              Espelhamento de dados, entre servidores, em partições
              Conhecido como RAID 1 via rede




                                                                      23 / 32
Alta Disponibilidade em Ambientes Linux
  Soluções em HA
    Sistemas de Arquivos


      Sistemas de Arquivos




              Sistema de arquivo consistente
              Compatível com o esquema de journaling - EXT3
              Opções: ZFS, GFS...




                                                              24 / 32
Alta Disponibilidade em Ambientes Linux
  Soluções em HA
    Monitoração de Serviços


      Mon




              Responsável pelo monitoramento de serviços
              Envia alertas ao administrador da rede sobre quedas de serviço
              Permite customização de scripts de alertas




                                                                               25 / 32
Alta Disponibilidade em Ambientes Linux
  Soluções em HA
    Monitoração de Serviços


      HAProxy
              Responsável por balancear a carga entre servidores de um
              cluster
              Provê suporte a failover e controle de sessão
              Provê relatórios do sistema na web




                                                                         26 / 32
Alta Disponibilidade em Ambientes Linux
  Estudo de caso - FAPEAL



      Conteúdo I
       1   Introdução
              Conceitos
              Definição
              Processos Organizacionais
       2   SPOFs
       3   Soluções em HA
             Fontes Redudantes
             Links Redundantes
             Monitoração de Nós
             Replicação de discos
             Sistemas de Arquivos
             Monitoração de Serviços
       4   Estudo de caso - FAPEAL
                                          27 / 32
Alta Disponibilidade em Ambientes Linux
  Estudo de caso - FAPEAL



      Ambiente




              2 servidores HP DL360 virtualizados - XEN
              Máquinas virtuais rodando Debian 5.0 64bits
              Disponibilidade de links redundantes: RNP / Embratel
              Serviços essenciais: página da FAPEAL, webmail, BCCT




                                                                     28 / 32
Alta Disponibilidade em Ambientes Linux
  Estudo de caso - FAPEAL



      Estado atual

              Heartbeat + DRBD




                                          29 / 32
Alta Disponibilidade em Ambientes Linux
  Estudo de caso - FAPEAL



      Planos futuros

              HAProxy + KeepAlived + Heartbeat + DRBD + Mon




                                                              30 / 32
Alta Disponibilidade em Ambientes Linux
  Estudo de caso - FAPEAL



      Links Interessantes




              Linux HA - http://www.linux-ha.org/
              LVS Project - http://www.linuxvirtualserver.org/




                                                                 31 / 32
Alta Disponibilidade em Ambientes Linux
  Estudo de caso - FAPEAL




                                          Perguntas?




                                                       32 / 32

Alta Disponibilidade em Ambientes Linux

  • 1.
    Alta Disponibilidade emAmbientes Linux Alta Disponibilidade em Ambientes Linux Felipe Buarque de Queiroz Jorge Fernando Matsudo Iwano {felipe.buarque, jorge.iwano}@gmail.com Fundação de Amparo a Pesquisa do Estado de Alagoas - FAPEAL Unidade Gestora de Tecnologia da Informação - UGTI Agosto de 2009 1 / 32
  • 2.
    Alta Disponibilidade emAmbientes Linux Introdução Conteúdo I 1 Introdução Conceitos Definição Processos Organizacionais 2 SPOFs 3 Soluções em HA Fontes Redudantes Links Redundantes Monitoração de Nós Replicação de discos Sistemas de Arquivos Monitoração de Serviços 4 Estudo de caso - FAPEAL 2 / 32
  • 3.
    Alta Disponibilidade emAmbientes Linux Introdução Conceitos Tipos de disponibilidade Disponibilidade Básica: encontrada em máquinas comuns, sem nenhum mecanismo especial em software ou hardware. Disponibilidade de 99% a 99, 9% Alta Disponibilidade: adiciona-se mecanismos de detecção, recuperação e mascaramento de falhas. Disponibilidade de 99, 99% a 99, 999% Disponibilidade Contínua: cada vez mais próximo de 100% de disponibilidade. Tempo de inoperância desprezível. Todas as paradas são mascaradas. 3 / 32
  • 4.
    Alta Disponibilidade emAmbientes Linux Introdução Conceitos Falha, Erro e Defeito Falha: Ocorre no universo físico, nível mais baixo do hardware Erro: Representação da falha no universo informacional Defeito: Informação errônea não percebida e não tratada. Percebido no universo do usuário como travamento, mensagens de erro ou perda de dados 4 / 32
  • 5.
    Alta Disponibilidade emAmbientes Linux Introdução Conceitos Failover e Failback Failover: Processo no qual um recurso assume os serviços de outro similar quando este último apresenta falha. Pode ser automático ou manual, sendo o primeiro desejado em um ambiente de alta disponibilidade Failback: Após a manutenção e correção, sendo recuperado do estado de falha, o recurso é colocado em serviço, e então se realiza o processo inverso ao de failover. Pode ser automático ou manual, sendo este segundo muitas vezes desejado de forma a não haver nova interrupção nos serviços 5 / 32
  • 6.
    Alta Disponibilidade emAmbientes Linux Introdução Conceitos Estatísticas MTBF (Mean Time Between Failure): Tempo total de operação / Número total de falhas MTTR (Mean Time To Repair) Disponibilidade: MTBF / (MTBF + MTTR) 6 / 32
  • 7.
    Alta Disponibilidade emAmbientes Linux Introdução Conceitos Os “noves” 7 / 32
  • 8.
    Alta Disponibilidade emAmbientes Linux Introdução Definição O que é Alta Disponibilidade (HA)? HA Projeto e desenho de todo o sistema e sua implementação correspondente, de modo a possuir um grau absoluto de continuidade operacional durante um período determinado NÃO é um produto ou aplicação, é uma característica do sistema 8 / 32
  • 9.
    Alta Disponibilidade emAmbientes Linux Introdução Definição O que é Alta Disponibilidade (HA)? HA Projeto e desenho de todo o sistema e sua implementação correspondente, de modo a possuir um grau absoluto de continuidade operacional durante um período determinado NÃO é um produto ou aplicação, é uma característica do sistema 8 / 32
  • 10.
    Alta Disponibilidade emAmbientes Linux Introdução Processos Organizacionais Processos Organizacionais Identificar picos de demanda Estabelecer metas de disponibilidade Construir ambiente físico apropriado Criar processos automatizados Utilizar ambiente de desenvolvimento e testes Manter estoque de peças sobressalentes Contratar capacidade por demanda 9 / 32
  • 11.
    Alta Disponibilidade emAmbientes Linux Introdução Processos Organizacionais Processos Organizacionais Definir um processo de escalonamento Realizar um planejamento para desastres Treinar a equipe para administração do sistema em HA Realizar testes periodicamente Documentar todo e qualquer detalhe 10 / 32
  • 12.
    Alta Disponibilidade emAmbientes Linux SPOFs Conteúdo I 1 Introdução Conceitos Definição Processos Organizacionais 2 SPOFs 3 Soluções em HA Fontes Redudantes Links Redundantes Monitoração de Nós Replicação de discos Sistemas de Arquivos Monitoração de Serviços 4 Estudo de caso - FAPEAL 11 / 32
  • 13.
    Alta Disponibilidade emAmbientes Linux SPOFs Single Points of Failure - SPOFs Recurso do sistema em que, caso falhe, provoca a indisponibilidade de todo o sistema Reduzir os SPOFs exige custos e adiciona um considerável grau de complexidade na infra-estrutura Um bom design de HA elimina pontos simples de falha 12 / 32
  • 14.
    Alta Disponibilidade emAmbientes Linux SPOFs SPOF - Exemplo 13 / 32
  • 15.
    Alta Disponibilidade emAmbientes Linux SPOFs Eliminando os SPOFs Conexão LAN Interface LAN Discos do sistema (ROOT disk) Discos dos dados Fonte de energia Interface com os discos Sistema Operacional Programas aplicativos 14 / 32
  • 16.
    Alta Disponibilidade emAmbientes Linux Soluções em HA Conteúdo I 1 Introdução Conceitos Definição Processos Organizacionais 2 SPOFs 3 Soluções em HA Fontes Redudantes Links Redundantes Monitoração de Nós Replicação de discos Sistemas de Arquivos Monitoração de Serviços 4 Estudo de caso - FAPEAL 15 / 32
  • 17.
    Alta Disponibilidade emAmbientes Linux Soluções em HA Fontes Redudantes Fontes Redudantes Possibilidade de substituição “a quente” Fases de energia distintas Disponibilidade de gerador 16 / 32
  • 18.
    Alta Disponibilidade emAmbientes Linux Soluções em HA Links Redundantes Links Redundantes Links de operadoras distintas Autonomous Systems Virtual Router Redundancy Protocol (VRRP) 17 / 32
  • 19.
    Alta Disponibilidade emAmbientes Linux Soluções em HA Links Redundantes Links Redundantes 18 / 32
  • 20.
    Alta Disponibilidade emAmbientes Linux Soluções em HA Monitoração de Nós Heartbeat Núcleo do ambiente de HA Monitoramento dos servidores em produção Coordena as ações de failover e failback 19 / 32
  • 21.
    Alta Disponibilidade emAmbientes Linux Soluções em HA Monitoração de Nós KeepAlived Adiciona facilidades ao LVS Project Monitoramento dos servidores do pool LVS Implementa o VRRP v2 para coordenar ações de failover 20 / 32
  • 22.
    Alta Disponibilidade emAmbientes Linux Soluções em HA Replicação de discos Redundant Array of Independent Drives - RAID Subsistema de armazenamento composto de vários discos individuais 2 objetivos básicos: desempenho e segurança Implementação via hardware ou software Técnicas: RAID 0 RAID 1 RAID 2 RAID 3 RAID 4 RAID 5 RAID 6 RAID 10 RAID 50 RAID 100 21 / 32
  • 23.
    Alta Disponibilidade emAmbientes Linux Soluções em HA Replicação de discos RAID Figura: Exemplo de RAID 10 22 / 32
  • 24.
    Alta Disponibilidade emAmbientes Linux Soluções em HA Replicação de discos Distributed Replicated Block Device - DRBD Espelhamento de dados, entre servidores, em partições Conhecido como RAID 1 via rede 23 / 32
  • 25.
    Alta Disponibilidade emAmbientes Linux Soluções em HA Sistemas de Arquivos Sistemas de Arquivos Sistema de arquivo consistente Compatível com o esquema de journaling - EXT3 Opções: ZFS, GFS... 24 / 32
  • 26.
    Alta Disponibilidade emAmbientes Linux Soluções em HA Monitoração de Serviços Mon Responsável pelo monitoramento de serviços Envia alertas ao administrador da rede sobre quedas de serviço Permite customização de scripts de alertas 25 / 32
  • 27.
    Alta Disponibilidade emAmbientes Linux Soluções em HA Monitoração de Serviços HAProxy Responsável por balancear a carga entre servidores de um cluster Provê suporte a failover e controle de sessão Provê relatórios do sistema na web 26 / 32
  • 28.
    Alta Disponibilidade emAmbientes Linux Estudo de caso - FAPEAL Conteúdo I 1 Introdução Conceitos Definição Processos Organizacionais 2 SPOFs 3 Soluções em HA Fontes Redudantes Links Redundantes Monitoração de Nós Replicação de discos Sistemas de Arquivos Monitoração de Serviços 4 Estudo de caso - FAPEAL 27 / 32
  • 29.
    Alta Disponibilidade emAmbientes Linux Estudo de caso - FAPEAL Ambiente 2 servidores HP DL360 virtualizados - XEN Máquinas virtuais rodando Debian 5.0 64bits Disponibilidade de links redundantes: RNP / Embratel Serviços essenciais: página da FAPEAL, webmail, BCCT 28 / 32
  • 30.
    Alta Disponibilidade emAmbientes Linux Estudo de caso - FAPEAL Estado atual Heartbeat + DRBD 29 / 32
  • 31.
    Alta Disponibilidade emAmbientes Linux Estudo de caso - FAPEAL Planos futuros HAProxy + KeepAlived + Heartbeat + DRBD + Mon 30 / 32
  • 32.
    Alta Disponibilidade emAmbientes Linux Estudo de caso - FAPEAL Links Interessantes Linux HA - http://www.linux-ha.org/ LVS Project - http://www.linuxvirtualserver.org/ 31 / 32
  • 33.
    Alta Disponibilidade emAmbientes Linux Estudo de caso - FAPEAL Perguntas? 32 / 32