SlideShare uma empresa Scribd logo
1 de 26
Baixar para ler offline
Frederico Madeira
                                            LPIC­1, LPIC­2, CCNA
                                             fred@madeira.eng.br
                                              www.madeira.eng.br




Sistemas Distribuídos
Alta Disponibilidade utilizando Heartbeat
+ drbd
Definição – Alta Disponibilidade

“Um sistema de alta disponibilidade é aquele que utiliza
mecanismos de detecção, recuperação e mascaramento de
falhas, visando manter o funcionamento dos serviços durante o
máximo de tempo possível, inclusive no decurso de
manutenções programadas”
Definição – Disponibilidade

“Disponibilidade refere-se a capacidade de um usuário de
determinado sistema acessar, incluir ou modificar os dados
existentes em qualquer intervalo de tempo. Caso, por qualquer
que seja o motivo, um usuário não tenha acesso, é dito então
que ele está indisponível, sendo o tempo total de
indisponibilidade conhecido pelo termo downtime.”
•Níveis de Disponibilidade


   Geralmente, quanto maior a disponibilidade,
   maior a redundância e custo das soluções: tudo
   depende do tipo de serviço que se pretende
   disponibilizar
Definição - Heartbeat
“Heartbeat é um deamon que provê uma infraestrutura de
serviço de cluster (comunicação e associação de membros)
para seus clientes. Ele permite que os clientes tomem
conhecimento sobre a presença (ou desaparecimento) dos
processos em outras máquinas (peers/nodes) e de forma fácil,
trocar mensagens com ele.


           - http://www.linux-ha.org/doc/ch-fundamentals.html
Funcionamento

“Através de um meio de comunicação, que pode ser Ethernet
ou Serial, um servidor redundante verifica a disponibilidade do
servidor em produção. Essa checagem é feita entre as duas
instâncias do Heartbeat instaladas nos dois servidores. Se o
servidor em produção não responder, ele será considerado
indisponível, e então o Heartbeat do servidor redundante
providencia a configuração e inicialização dos serviços locais,
além de outros recursos, como o endereço IP, partições de
disco, etc.
Funcionamento

                IP VIRTUAL
 IP’s FIXOS
Considerações
➔
    Evita qualquer tipo de conflito que possa afetar o
    correto funcionamento do sistema.

➔
    Não é seu objetivo garantir a sincronia e a
    integridade dos dados entre os servidores.

➔
    Necessário atuar em conjunto com algum software
    que se encarregue de manter os mesmos arquivos
    do servidor em produção também no servidor
    redundante. Essa será justamente a função do
    DRBD.
Instalação
➔
    Para instalar o heartbeat utilizando o yum, basta
    executar o comando abaixo:


      yum install heartbeat

      Irá instalar os pacotes abaixo:

        ✔
            heartbeat-2.1.3-3.el5.centos
        ✔
            heartbeat-pils-2.1.3-3.el5.centos
        ✔
            heartbeat-stonith-2.1.3-3.el5.centos
Configuração

➔
    Toda instalação do heartbeat deve conter os
    seguintes arquivos de configuração:

    ➔
        /etc/ha.d/ha.cf — Arquivo global de
        configuração do cluster

    ➔
        /etc/ha.d/authkeys — Arquivo que contem
        chaves para autenticação mútua entre os
        nodos da rede

    ➔
        /etc/ha.d/haresources — Arquivo que contem
         os recursos que queremos habilitar no cluster
Configuração ha.cf
➔
    Uma configuração básica para ha.cf é:


logfile /var/log/ha-log
logfacility local0
Keepalive 2 # Intervalo entre os heartbeats
Deadtime 30 # Define quando um nó está offline
Initdead 120 # Declara que o node está offline após
             #o startup. Deve ser alto
bcast bond0 # Qual interface os heartbeats serão
            # enviados
Udpport 694 # porta UDP utilizada para intra-cluster
            # communication
auto_failback on # Retorna serviço para master
node server3 # nome das máquinas do cluster
node server4 # nome das máquinas do cluster
Configuração authkeys
➔
    Este arquivo possui as chaves de autenticação a
    serem utilizadas pelos nodes. Abaixo está um
    exemplo deste arquivo:


auth 1
1 sha1 8499ffe31ca6edc6998ec54ac99c009b



➔
    Este arquivo deverá ser legível apenas pelo root,
    para tanto:


chmod 600 /etc/ha.d/authkeys
Configuração haresources
➔
    Este arquivo possui a lista dos recursos que serão
    movidos de um nó para o outro quando um nó
    entra no status de falha ou quando ele se
    recupera
➔
    Este arquivo deve ser igual para todos os nós do
    cluster
➔
    Cada linha indica um grupo de recursos que estará
    ativo.


Exemplo:
server3     192.168.15.50     httpd
Server4     192.168.15.51     vsftpd
Testando
No Nó 1:
echo "Apache ativo no node01" > /var/www/html/index.html
No Nó 2:
echo "Apache ativo no node02" > /var/www/html/index.html
Forçando a Falha do nó 1:
/etc/init.d/heartbeat start   ou ainda:
[root@server3 ha.d]# /usr/share/heartbeat/hb_standby
2010/04/18_14:09:14 Going standby [all].
Automaticamente será detectada a falha do nó 1 e o heartbeat ativará
os serviços no nó2.
Recuperando a Falha do nó 1:
[root@server3 ha.d]# /usr/share/heartbeat/hb_takeover
Definição -DRBD
O DRBD (Distributed Replicated Block Device) consiste em um
módulo para o kernel Linux que faz o espelhamento dos dados
de um dispositivo de bloco (partições de disco) entre diferentes
servidores, interligados geralmente através de uma rede
Ethernet.


                  DRBD = RAID 1 via Rede
Funcionamento
➔
    Cada dispositivo de bloco envolvido na configuração do
    DRBD tem um estado, que pode ser primário ou secundário.

➔
    Operações de escrita feitas no primário são replicadas para o
    secundário

➔
    O protocolo padrão de replicação garante a sincronia e a
    integridade dos dados replicados.

➔
    Operações de leitura, são sempre realizadas localmente.
Funcionamento




                Escrita
Instalação
➔
    Para instalar o drbd utilizando o yum, basta
    executar o comando abaixo:


      yum install kmod-drbd drbd

      Irá instalar o pacote abaixo:

       ✔
           kmod-drbd-8.0.16-5.el5_3.i686.rpm
       ✔
           drbd-8.0.16-5.el5.centos.i386.rpm
Configuração
➔
    Toda instalação do drbd deve conter o seguinte
    arquivo de configuração: /etc/drbd.conf
    Usando o exemplo anterior, teríamos:
resource web {
     protocol C;
     on webserver1 {
         device    /dev/drbd0;
         disk     /dev/sdb1;
         address 9.8.7.1:7788;
         meta-disk internal;
      }
     on webserver-bkp {
         device /dev/drbd0;
         disk    /dev/sdb1;
         address 9.8.7.2:7788;
         meta-disk internal;
      }
}
Configuração
➔
    Toda instalação do drbd deve conter o seguinte
    arquivo de configuração: /etc/drbd.conf
    Usando o exemplo anterior, teríamos:
resource web {
     protocol C;
     on webserver1 {
         device    /dev/drbd0;
         disk     /dev/sdb1;
         address 9.8.7.1:7788;
         meta-disk internal;
      }
     on webserver-bkp {
         device /dev/drbd0;
         disk    /dev/sdb1;
         address 9.8.7.2:7788;
         meta-disk internal;
      }
}
Configuração
➔
    Criando o device a ser compartilhado (deve
    ser feito nas duas máquinas):
    [root@server3 etc]# drbdadm create-md web
➔
    Iniciando o serviço nas duas máquinas:
    [root@server3 etc]# /etc/init.d/drbd start
➔
    Definindo o nó primário:
    [root@server3 etc]# drbdadm -- -o primary web
➔
    Criando um sistema de arquivos
    [root@server3 etc]# mkfs.ext3 /dev/drbd0
➔
    Montando o device
    [root@server3 etc]# mount /dev/drbd0 /opt/web/
➔
    Checando Status
    [root@server3 opt]# cat /proc/drbd
Testando
➔
    Copie alguns dados para o device do DRBD
➔
    Faça um switch over do device no nó 1 para
    secundário:
    [root@server3 opt]# drbdadm secondary web
➔
    Faça um switch over do device no nó 2 para
    primário:
    [root@server4 ~]# drbdadm primary web
➔
    Montando o device
    [root@server4 etc]# mount /dev/drbd0 /opt/web/
➔
    Verifique o conteúdo do diretório, deve ser
    igual ao que existia em server3
    [root@server4 opt]# ls /opt/web
Integrando o drbd ao heartbeat
➔
    Edite o arquivo haresources e modifique a
    linha abaixo:


    server3 192.168.15.50 httpd


    para:


    server3        192.168.15.50        drbddisk
    Filesystem::/dev/drbd0::/opt/web::ext3 httpd

➔
    Reinicie o heartbeat nas duas máquinas
    [root@server3 opt]# /etc/init.d/heartbeat restart
Testando
➔
    No nó 1, o device /dev/drbd0 deve estar
    como primary e no nó 2 como secondary
Testando

➔
    Coloque o nó 1 em standby e observe que o
    a pasa /opt/web está vazia. No nó 2 ela será
    montada com todo o conteúdo apresentado
    no nó 1 antes do standby.
[root@server3 opt]# /usr/share/heartbeat/hb_standby



➔
    Faça com que o nó 1 reassuma. Verifique o
    status do device /dev/drbd0 e dos dados na
    pasta /opt/web
[root@server3 opt]# /usr/share/heartbeat/hb_takeover
Frederico Madeira
                                            LPIC­1, LPIC­2, CCNA
                                             fred@madeira.eng.br
                                              www.madeira.eng.br




Sistemas Distribuídos
Alta Disponibilidade utilizando Heartbeat
+ drbd

Mais conteúdo relacionado

Mais procurados

Placas de expansão
Placas de expansãoPlacas de expansão
Placas de expansãoAndré Lopes
 
Moving to PCI Express based SSD with NVM Express
Moving to PCI Express based SSD with NVM ExpressMoving to PCI Express based SSD with NVM Express
Moving to PCI Express based SSD with NVM ExpressOdinot Stanislas
 
Virtualization using VMWare Workstation
Virtualization using VMWare WorkstationVirtualization using VMWare Workstation
Virtualization using VMWare WorkstationHitesh Gupta
 
Présentation Veritas Backup Exec 16
Présentation Veritas Backup Exec 16Présentation Veritas Backup Exec 16
Présentation Veritas Backup Exec 16Aymen Mami
 
ApresentaçãO2 Sistema Operacional
ApresentaçãO2  Sistema OperacionalApresentaçãO2  Sistema Operacional
ApresentaçãO2 Sistema OperacionalCláudia Costa
 
Administração de servidores Linux
Administração de servidores LinuxAdministração de servidores Linux
Administração de servidores LinuxJoão Sá
 
Introduction to Virtualization
Introduction to Virtualization Introduction to Virtualization
Introduction to Virtualization Wellshop.pk
 
VMware vSphere technical presentation
VMware vSphere technical presentationVMware vSphere technical presentation
VMware vSphere technical presentationaleyeldean
 
Amandaで始めるかんたんバックアップ
Amandaで始めるかんたんバックアップAmandaで始めるかんたんバックアップ
Amandaで始めるかんたんバックアップVirtualTech Japan Inc.
 
Virtualisation de Machines avec Windows Hyper V
Virtualisation de Machines avec Windows Hyper VVirtualisation de Machines avec Windows Hyper V
Virtualisation de Machines avec Windows Hyper Vfabricemeillon
 

Mais procurados (20)

Placas de expansão
Placas de expansãoPlacas de expansão
Placas de expansão
 
Moving to PCI Express based SSD with NVM Express
Moving to PCI Express based SSD with NVM ExpressMoving to PCI Express based SSD with NVM Express
Moving to PCI Express based SSD with NVM Express
 
Server training
Server trainingServer training
Server training
 
VMware
VMware VMware
VMware
 
Virtualization using VMWare Workstation
Virtualization using VMWare WorkstationVirtualization using VMWare Workstation
Virtualization using VMWare Workstation
 
Vmware overview
Vmware overviewVmware overview
Vmware overview
 
DHCP PROTOCOL
DHCP PROTOCOLDHCP PROTOCOL
DHCP PROTOCOL
 
Aula 3 - Software
Aula 3 - SoftwareAula 3 - Software
Aula 3 - Software
 
Présentation Veritas Backup Exec 16
Présentation Veritas Backup Exec 16Présentation Veritas Backup Exec 16
Présentation Veritas Backup Exec 16
 
ApresentaçãO2 Sistema Operacional
ApresentaçãO2  Sistema OperacionalApresentaçãO2  Sistema Operacional
ApresentaçãO2 Sistema Operacional
 
Administração de servidores Linux
Administração de servidores LinuxAdministração de servidores Linux
Administração de servidores Linux
 
Introduction to Virtualization
Introduction to Virtualization Introduction to Virtualization
Introduction to Virtualization
 
Sistemas de Arquivos do Windows
Sistemas de Arquivos do WindowsSistemas de Arquivos do Windows
Sistemas de Arquivos do Windows
 
Intel y amd
Intel y amdIntel y amd
Intel y amd
 
virtual machine.ppt
virtual machine.pptvirtual machine.ppt
virtual machine.ppt
 
VMware vSphere technical presentation
VMware vSphere technical presentationVMware vSphere technical presentation
VMware vSphere technical presentation
 
Amandaで始めるかんたんバックアップ
Amandaで始めるかんたんバックアップAmandaで始めるかんたんバックアップ
Amandaで始めるかんたんバックアップ
 
Linux
LinuxLinux
Linux
 
Tc1 paso2
Tc1 paso2Tc1 paso2
Tc1 paso2
 
Virtualisation de Machines avec Windows Hyper V
Virtualisation de Machines avec Windows Hyper VVirtualisation de Machines avec Windows Hyper V
Virtualisation de Machines avec Windows Hyper V
 

Destaque

Aula 3 (alta disponibilidade)
Aula 3 (alta disponibilidade)Aula 3 (alta disponibilidade)
Aula 3 (alta disponibilidade)Evandro Júnior
 
Maria DB Galera Cluster for High Availability
Maria DB Galera Cluster for High AvailabilityMaria DB Galera Cluster for High Availability
Maria DB Galera Cluster for High AvailabilityOSSCube
 
Replicação MySQL e PHP
Replicação MySQL e PHPReplicação MySQL e PHP
Replicação MySQL e PHPMySQL Brasil
 
High Availability Solutions with MySQL
High Availability Solutions with MySQLHigh Availability Solutions with MySQL
High Availability Solutions with MySQLArvids Godjuks
 
Alta Disponibilidade na Prática utilizando servidores Linux
Alta Disponibilidade na Prática utilizando servidores LinuxAlta Disponibilidade na Prática utilizando servidores Linux
Alta Disponibilidade na Prática utilizando servidores Linuxelliando dias
 
The OSSCube MySQL High Availability Tutorial
The OSSCube MySQL High Availability TutorialThe OSSCube MySQL High Availability Tutorial
The OSSCube MySQL High Availability TutorialOSSCube
 
ProxySQL Tutorial - PLAM 2016
ProxySQL Tutorial - PLAM 2016ProxySQL Tutorial - PLAM 2016
ProxySQL Tutorial - PLAM 2016Derek Downey
 
Indexing the MySQL Index: Key to performance tuning
Indexing the MySQL Index: Key to performance tuningIndexing the MySQL Index: Key to performance tuning
Indexing the MySQL Index: Key to performance tuningOSSCube
 
Treinamentos engenharia manutencao
Treinamentos engenharia manutencaoTreinamentos engenharia manutencao
Treinamentos engenharia manutencaoDiego Silva
 
Supriya Shailaja Latest Gallery
 Supriya Shailaja Latest Gallery Supriya Shailaja Latest Gallery
Supriya Shailaja Latest Gallerytelugustop.com
 
MySQL High Availability Sprint: Launch the Pacemaker
MySQL High Availability Sprint: Launch the PacemakerMySQL High Availability Sprint: Launch the Pacemaker
MySQL High Availability Sprint: Launch the Pacemakerhastexo
 
Engenharia de Manutenção
Engenharia de Manutenção Engenharia de Manutenção
Engenharia de Manutenção Marcos Abreu
 
MySQL High Availability Deep Dive
MySQL High Availability Deep DiveMySQL High Availability Deep Dive
MySQL High Availability Deep Divehastexo
 
OSSCube MySQL Cluster Tutorial By Sonali At Osspac 09
OSSCube MySQL Cluster Tutorial By Sonali At Osspac 09OSSCube MySQL Cluster Tutorial By Sonali At Osspac 09
OSSCube MySQL Cluster Tutorial By Sonali At Osspac 09OSSCube
 

Destaque (17)

Aula 3 (alta disponibilidade)
Aula 3 (alta disponibilidade)Aula 3 (alta disponibilidade)
Aula 3 (alta disponibilidade)
 
Maria DB Galera Cluster for High Availability
Maria DB Galera Cluster for High AvailabilityMaria DB Galera Cluster for High Availability
Maria DB Galera Cluster for High Availability
 
Replicação MySQL e PHP
Replicação MySQL e PHPReplicação MySQL e PHP
Replicação MySQL e PHP
 
High Availability Solutions with MySQL
High Availability Solutions with MySQLHigh Availability Solutions with MySQL
High Availability Solutions with MySQL
 
Apresenta[1]..
Apresenta[1]..Apresenta[1]..
Apresenta[1]..
 
Alta Disponibilidade na Prática utilizando servidores Linux
Alta Disponibilidade na Prática utilizando servidores LinuxAlta Disponibilidade na Prática utilizando servidores Linux
Alta Disponibilidade na Prática utilizando servidores Linux
 
The OSSCube MySQL High Availability Tutorial
The OSSCube MySQL High Availability TutorialThe OSSCube MySQL High Availability Tutorial
The OSSCube MySQL High Availability Tutorial
 
ProxySQL Tutorial - PLAM 2016
ProxySQL Tutorial - PLAM 2016ProxySQL Tutorial - PLAM 2016
ProxySQL Tutorial - PLAM 2016
 
Indexing the MySQL Index: Key to performance tuning
Indexing the MySQL Index: Key to performance tuningIndexing the MySQL Index: Key to performance tuning
Indexing the MySQL Index: Key to performance tuning
 
Aula 1. gestão estratégica tpm
Aula 1. gestão estratégica   tpmAula 1. gestão estratégica   tpm
Aula 1. gestão estratégica tpm
 
Treinamentos engenharia manutencao
Treinamentos engenharia manutencaoTreinamentos engenharia manutencao
Treinamentos engenharia manutencao
 
Supriya Shailaja Latest Gallery
 Supriya Shailaja Latest Gallery Supriya Shailaja Latest Gallery
Supriya Shailaja Latest Gallery
 
MySQL High Availability Sprint: Launch the Pacemaker
MySQL High Availability Sprint: Launch the PacemakerMySQL High Availability Sprint: Launch the Pacemaker
MySQL High Availability Sprint: Launch the Pacemaker
 
Engenharia de Manutenção
Engenharia de Manutenção Engenharia de Manutenção
Engenharia de Manutenção
 
MySQL High Availability Deep Dive
MySQL High Availability Deep DiveMySQL High Availability Deep Dive
MySQL High Availability Deep Dive
 
OSSCube MySQL Cluster Tutorial By Sonali At Osspac 09
OSSCube MySQL Cluster Tutorial By Sonali At Osspac 09OSSCube MySQL Cluster Tutorial By Sonali At Osspac 09
OSSCube MySQL Cluster Tutorial By Sonali At Osspac 09
 
Manutenção
ManutençãoManutenção
Manutenção
 

Semelhante a Alta Disponibilidade com Heartbeat e DRBD

Alta Disponibilidade utilizando Pacemaker e DRBD
Alta Disponibilidade utilizando Pacemaker e DRBDAlta Disponibilidade utilizando Pacemaker e DRBD
Alta Disponibilidade utilizando Pacemaker e DRBDFrederico Madeira
 
Opennebula instalação
Opennebula instalaçãoOpennebula instalação
Opennebula instalaçãoLuís Eduardo
 
Cluster de Alta disponibilidade
Cluster de Alta disponibilidadeCluster de Alta disponibilidade
Cluster de Alta disponibilidadeMarcelo Garcia
 
Project HA
Project HAProject HA
Project HAKarpv
 
Tutorial do shell script para Clonar HDs WIN7 usando Linux
Tutorial do shell script para Clonar HDs WIN7 usando LinuxTutorial do shell script para Clonar HDs WIN7 usando Linux
Tutorial do shell script para Clonar HDs WIN7 usando LinuxLuiz Francisco Bozo
 
Aula14 vsftp de-introopenldap
Aula14 vsftp de-introopenldapAula14 vsftp de-introopenldap
Aula14 vsftp de-introopenldapRoberto Castro
 
Minicurso GNU/Linux básico - Aula2 - Semana Sistemas de Informação 2015 - UNI...
Minicurso GNU/Linux básico - Aula2 - Semana Sistemas de Informação 2015 - UNI...Minicurso GNU/Linux básico - Aula2 - Semana Sistemas de Informação 2015 - UNI...
Minicurso GNU/Linux básico - Aula2 - Semana Sistemas de Informação 2015 - UNI...Marlon Willrich
 
Tutorial servidor debian linux ocs invetory
Tutorial servidor debian linux ocs invetory Tutorial servidor debian linux ocs invetory
Tutorial servidor debian linux ocs invetory gigadrop
 
Minicurso GNU/Linux básico - Aula1 - Semana Sistemas de Informação 2015 - UNI...
Minicurso GNU/Linux básico - Aula1 - Semana Sistemas de Informação 2015 - UNI...Minicurso GNU/Linux básico - Aula1 - Semana Sistemas de Informação 2015 - UNI...
Minicurso GNU/Linux básico - Aula1 - Semana Sistemas de Informação 2015 - UNI...Marlon Willrich
 

Semelhante a Alta Disponibilidade com Heartbeat e DRBD (20)

Alta Disponibilidade utilizando Pacemaker e DRBD
Alta Disponibilidade utilizando Pacemaker e DRBDAlta Disponibilidade utilizando Pacemaker e DRBD
Alta Disponibilidade utilizando Pacemaker e DRBD
 
GlusterFs
GlusterFsGlusterFs
GlusterFs
 
Opennebula instalação
Opennebula instalaçãoOpennebula instalação
Opennebula instalação
 
Cluster de Alta disponibilidade
Cluster de Alta disponibilidadeCluster de Alta disponibilidade
Cluster de Alta disponibilidade
 
Apache proxy
Apache proxyApache proxy
Apache proxy
 
Project HA
Project HAProject HA
Project HA
 
Dispositivos de Bloco
Dispositivos de BlocoDispositivos de Bloco
Dispositivos de Bloco
 
Dhcp com controle_ip_compartilhamento
Dhcp com controle_ip_compartilhamentoDhcp com controle_ip_compartilhamento
Dhcp com controle_ip_compartilhamento
 
Ha pohlmann
Ha pohlmannHa pohlmann
Ha pohlmann
 
Trab linux+sarg
Trab linux+sargTrab linux+sarg
Trab linux+sarg
 
Tutorial do shell script para Clonar HDs WIN7 usando Linux
Tutorial do shell script para Clonar HDs WIN7 usando LinuxTutorial do shell script para Clonar HDs WIN7 usando Linux
Tutorial do shell script para Clonar HDs WIN7 usando Linux
 
Aula14 vsftp de-introopenldap
Aula14 vsftp de-introopenldapAula14 vsftp de-introopenldap
Aula14 vsftp de-introopenldap
 
Minicurso GNU/Linux básico - Aula2 - Semana Sistemas de Informação 2015 - UNI...
Minicurso GNU/Linux básico - Aula2 - Semana Sistemas de Informação 2015 - UNI...Minicurso GNU/Linux básico - Aula2 - Semana Sistemas de Informação 2015 - UNI...
Minicurso GNU/Linux básico - Aula2 - Semana Sistemas de Informação 2015 - UNI...
 
IntroduçãO Ao Linux
IntroduçãO Ao LinuxIntroduçãO Ao Linux
IntroduçãO Ao Linux
 
PHP e Redis
PHP e RedisPHP e Redis
PHP e Redis
 
Servidores linux
Servidores linuxServidores linux
Servidores linux
 
Tutorial servidor debian linux ocs invetory
Tutorial servidor debian linux ocs invetory Tutorial servidor debian linux ocs invetory
Tutorial servidor debian linux ocs invetory
 
Squid proxy
Squid proxySquid proxy
Squid proxy
 
Minicurso GNU/Linux básico - Aula1 - Semana Sistemas de Informação 2015 - UNI...
Minicurso GNU/Linux básico - Aula1 - Semana Sistemas de Informação 2015 - UNI...Minicurso GNU/Linux básico - Aula1 - Semana Sistemas de Informação 2015 - UNI...
Minicurso GNU/Linux básico - Aula1 - Semana Sistemas de Informação 2015 - UNI...
 
MigraçãO
MigraçãOMigraçãO
MigraçãO
 

Mais de Frederico Madeira

Introdução a Cloud Computing
Introdução a Cloud ComputingIntrodução a Cloud Computing
Introdução a Cloud ComputingFrederico Madeira
 
SI - Processos, Threads, Virtualização e Migração de Código
SI - Processos, Threads, Virtualização e Migração de CódigoSI - Processos, Threads, Virtualização e Migração de Código
SI - Processos, Threads, Virtualização e Migração de CódigoFrederico Madeira
 
SI - SAD - Sistemas de Arquivos Distribuídos
SI - SAD  - Sistemas de Arquivos DistribuídosSI - SAD  - Sistemas de Arquivos Distribuídos
SI - SAD - Sistemas de Arquivos DistribuídosFrederico Madeira
 
SI - Introdução a Sistemas Distribuidos
SI - Introdução a Sistemas DistribuidosSI - Introdução a Sistemas Distribuidos
SI - Introdução a Sistemas DistribuidosFrederico Madeira
 
SI - Sistemas Distribuídos - Apresentação da disciplina
SI - Sistemas Distribuídos - Apresentação da disciplinaSI - Sistemas Distribuídos - Apresentação da disciplina
SI - Sistemas Distribuídos - Apresentação da disciplinaFrederico Madeira
 
Linux - Instalação de Programas
Linux - Instalação de ProgramasLinux - Instalação de Programas
Linux - Instalação de ProgramasFrederico Madeira
 
Proteja seus dados em casa e na internet
Proteja seus dados em casa e na internetProteja seus dados em casa e na internet
Proteja seus dados em casa e na internetFrederico Madeira
 
Linux e o modelo open source
Linux e o modelo open sourceLinux e o modelo open source
Linux e o modelo open sourceFrederico Madeira
 
Redes VoIP - O Futuro da Telefonia
Redes VoIP - O Futuro da TelefoniaRedes VoIP - O Futuro da Telefonia
Redes VoIP - O Futuro da TelefoniaFrederico Madeira
 
Open Virtualization - Virtualização em Software Livre
Open Virtualization - Virtualização em Software LivreOpen Virtualization - Virtualização em Software Livre
Open Virtualization - Virtualização em Software LivreFrederico Madeira
 
Redes NGN - Next Generation Networks
Redes NGN - Next Generation NetworksRedes NGN - Next Generation Networks
Redes NGN - Next Generation NetworksFrederico Madeira
 
Ferramentas para Detecção de Problemas em Redes
Ferramentas para Detecção de Problemas em RedesFerramentas para Detecção de Problemas em Redes
Ferramentas para Detecção de Problemas em RedesFrederico Madeira
 
Arquiteturas de Gerência de Redes
Arquiteturas de Gerência de RedesArquiteturas de Gerência de Redes
Arquiteturas de Gerência de RedesFrederico Madeira
 
Introdução a Gerência de Redes
Introdução a Gerência de RedesIntrodução a Gerência de Redes
Introdução a Gerência de RedesFrederico Madeira
 

Mais de Frederico Madeira (20)

WebServices
WebServicesWebServices
WebServices
 
IoT - Internet of Things
IoT -  Internet of ThingsIoT -  Internet of Things
IoT - Internet of Things
 
Introdução a Cloud Computing
Introdução a Cloud ComputingIntrodução a Cloud Computing
Introdução a Cloud Computing
 
SI - Comunicação
SI - ComunicaçãoSI - Comunicação
SI - Comunicação
 
SI - Processos, Threads, Virtualização e Migração de Código
SI - Processos, Threads, Virtualização e Migração de CódigoSI - Processos, Threads, Virtualização e Migração de Código
SI - Processos, Threads, Virtualização e Migração de Código
 
SI - Arquiteturas
SI - ArquiteturasSI - Arquiteturas
SI - Arquiteturas
 
SI - SAD - Sistemas de Arquivos Distribuídos
SI - SAD  - Sistemas de Arquivos DistribuídosSI - SAD  - Sistemas de Arquivos Distribuídos
SI - SAD - Sistemas de Arquivos Distribuídos
 
SI - Introdução a Sistemas Distribuidos
SI - Introdução a Sistemas DistribuidosSI - Introdução a Sistemas Distribuidos
SI - Introdução a Sistemas Distribuidos
 
SI - Sistemas Distribuídos - Apresentação da disciplina
SI - Sistemas Distribuídos - Apresentação da disciplinaSI - Sistemas Distribuídos - Apresentação da disciplina
SI - Sistemas Distribuídos - Apresentação da disciplina
 
Linux - Instalação de Programas
Linux - Instalação de ProgramasLinux - Instalação de Programas
Linux - Instalação de Programas
 
Proteja seus dados em casa e na internet
Proteja seus dados em casa e na internetProteja seus dados em casa e na internet
Proteja seus dados em casa e na internet
 
Linux e o modelo open source
Linux e o modelo open sourceLinux e o modelo open source
Linux e o modelo open source
 
Redes VoIP - O Futuro da Telefonia
Redes VoIP - O Futuro da TelefoniaRedes VoIP - O Futuro da Telefonia
Redes VoIP - O Futuro da Telefonia
 
Open Virtualization - Virtualização em Software Livre
Open Virtualization - Virtualização em Software LivreOpen Virtualization - Virtualização em Software Livre
Open Virtualization - Virtualização em Software Livre
 
Redes NGN - Next Generation Networks
Redes NGN - Next Generation NetworksRedes NGN - Next Generation Networks
Redes NGN - Next Generation Networks
 
MRTG - SNMP na Prática
MRTG - SNMP na PráticaMRTG - SNMP na Prática
MRTG - SNMP na Prática
 
Introdução ao SNMP
Introdução ao SNMPIntrodução ao SNMP
Introdução ao SNMP
 
Ferramentas para Detecção de Problemas em Redes
Ferramentas para Detecção de Problemas em RedesFerramentas para Detecção de Problemas em Redes
Ferramentas para Detecção de Problemas em Redes
 
Arquiteturas de Gerência de Redes
Arquiteturas de Gerência de RedesArquiteturas de Gerência de Redes
Arquiteturas de Gerência de Redes
 
Introdução a Gerência de Redes
Introdução a Gerência de RedesIntrodução a Gerência de Redes
Introdução a Gerência de Redes
 

Alta Disponibilidade com Heartbeat e DRBD

  • 1. Frederico Madeira LPIC­1, LPIC­2, CCNA fred@madeira.eng.br www.madeira.eng.br Sistemas Distribuídos Alta Disponibilidade utilizando Heartbeat + drbd
  • 2. Definição – Alta Disponibilidade “Um sistema de alta disponibilidade é aquele que utiliza mecanismos de detecção, recuperação e mascaramento de falhas, visando manter o funcionamento dos serviços durante o máximo de tempo possível, inclusive no decurso de manutenções programadas”
  • 3. Definição – Disponibilidade “Disponibilidade refere-se a capacidade de um usuário de determinado sistema acessar, incluir ou modificar os dados existentes em qualquer intervalo de tempo. Caso, por qualquer que seja o motivo, um usuário não tenha acesso, é dito então que ele está indisponível, sendo o tempo total de indisponibilidade conhecido pelo termo downtime.”
  • 4. •Níveis de Disponibilidade Geralmente, quanto maior a disponibilidade, maior a redundância e custo das soluções: tudo depende do tipo de serviço que se pretende disponibilizar
  • 5. Definição - Heartbeat “Heartbeat é um deamon que provê uma infraestrutura de serviço de cluster (comunicação e associação de membros) para seus clientes. Ele permite que os clientes tomem conhecimento sobre a presença (ou desaparecimento) dos processos em outras máquinas (peers/nodes) e de forma fácil, trocar mensagens com ele. - http://www.linux-ha.org/doc/ch-fundamentals.html
  • 6. Funcionamento “Através de um meio de comunicação, que pode ser Ethernet ou Serial, um servidor redundante verifica a disponibilidade do servidor em produção. Essa checagem é feita entre as duas instâncias do Heartbeat instaladas nos dois servidores. Se o servidor em produção não responder, ele será considerado indisponível, e então o Heartbeat do servidor redundante providencia a configuração e inicialização dos serviços locais, além de outros recursos, como o endereço IP, partições de disco, etc.
  • 7. Funcionamento IP VIRTUAL IP’s FIXOS
  • 8. Considerações ➔ Evita qualquer tipo de conflito que possa afetar o correto funcionamento do sistema. ➔ Não é seu objetivo garantir a sincronia e a integridade dos dados entre os servidores. ➔ Necessário atuar em conjunto com algum software que se encarregue de manter os mesmos arquivos do servidor em produção também no servidor redundante. Essa será justamente a função do DRBD.
  • 9. Instalação ➔ Para instalar o heartbeat utilizando o yum, basta executar o comando abaixo: yum install heartbeat Irá instalar os pacotes abaixo: ✔ heartbeat-2.1.3-3.el5.centos ✔ heartbeat-pils-2.1.3-3.el5.centos ✔ heartbeat-stonith-2.1.3-3.el5.centos
  • 10. Configuração ➔ Toda instalação do heartbeat deve conter os seguintes arquivos de configuração: ➔ /etc/ha.d/ha.cf — Arquivo global de configuração do cluster ➔ /etc/ha.d/authkeys — Arquivo que contem chaves para autenticação mútua entre os nodos da rede ➔ /etc/ha.d/haresources — Arquivo que contem os recursos que queremos habilitar no cluster
  • 11. Configuração ha.cf ➔ Uma configuração básica para ha.cf é: logfile /var/log/ha-log logfacility local0 Keepalive 2 # Intervalo entre os heartbeats Deadtime 30 # Define quando um nó está offline Initdead 120 # Declara que o node está offline após #o startup. Deve ser alto bcast bond0 # Qual interface os heartbeats serão # enviados Udpport 694 # porta UDP utilizada para intra-cluster # communication auto_failback on # Retorna serviço para master node server3 # nome das máquinas do cluster node server4 # nome das máquinas do cluster
  • 12. Configuração authkeys ➔ Este arquivo possui as chaves de autenticação a serem utilizadas pelos nodes. Abaixo está um exemplo deste arquivo: auth 1 1 sha1 8499ffe31ca6edc6998ec54ac99c009b ➔ Este arquivo deverá ser legível apenas pelo root, para tanto: chmod 600 /etc/ha.d/authkeys
  • 13. Configuração haresources ➔ Este arquivo possui a lista dos recursos que serão movidos de um nó para o outro quando um nó entra no status de falha ou quando ele se recupera ➔ Este arquivo deve ser igual para todos os nós do cluster ➔ Cada linha indica um grupo de recursos que estará ativo. Exemplo: server3 192.168.15.50 httpd Server4 192.168.15.51 vsftpd
  • 14. Testando No Nó 1: echo "Apache ativo no node01" > /var/www/html/index.html No Nó 2: echo "Apache ativo no node02" > /var/www/html/index.html Forçando a Falha do nó 1: /etc/init.d/heartbeat start ou ainda: [root@server3 ha.d]# /usr/share/heartbeat/hb_standby 2010/04/18_14:09:14 Going standby [all]. Automaticamente será detectada a falha do nó 1 e o heartbeat ativará os serviços no nó2. Recuperando a Falha do nó 1: [root@server3 ha.d]# /usr/share/heartbeat/hb_takeover
  • 15. Definição -DRBD O DRBD (Distributed Replicated Block Device) consiste em um módulo para o kernel Linux que faz o espelhamento dos dados de um dispositivo de bloco (partições de disco) entre diferentes servidores, interligados geralmente através de uma rede Ethernet. DRBD = RAID 1 via Rede
  • 16. Funcionamento ➔ Cada dispositivo de bloco envolvido na configuração do DRBD tem um estado, que pode ser primário ou secundário. ➔ Operações de escrita feitas no primário são replicadas para o secundário ➔ O protocolo padrão de replicação garante a sincronia e a integridade dos dados replicados. ➔ Operações de leitura, são sempre realizadas localmente.
  • 17. Funcionamento Escrita
  • 18. Instalação ➔ Para instalar o drbd utilizando o yum, basta executar o comando abaixo: yum install kmod-drbd drbd Irá instalar o pacote abaixo: ✔ kmod-drbd-8.0.16-5.el5_3.i686.rpm ✔ drbd-8.0.16-5.el5.centos.i386.rpm
  • 19. Configuração ➔ Toda instalação do drbd deve conter o seguinte arquivo de configuração: /etc/drbd.conf Usando o exemplo anterior, teríamos: resource web { protocol C; on webserver1 { device /dev/drbd0; disk /dev/sdb1; address 9.8.7.1:7788; meta-disk internal; } on webserver-bkp { device /dev/drbd0; disk /dev/sdb1; address 9.8.7.2:7788; meta-disk internal; } }
  • 20. Configuração ➔ Toda instalação do drbd deve conter o seguinte arquivo de configuração: /etc/drbd.conf Usando o exemplo anterior, teríamos: resource web { protocol C; on webserver1 { device /dev/drbd0; disk /dev/sdb1; address 9.8.7.1:7788; meta-disk internal; } on webserver-bkp { device /dev/drbd0; disk /dev/sdb1; address 9.8.7.2:7788; meta-disk internal; } }
  • 21. Configuração ➔ Criando o device a ser compartilhado (deve ser feito nas duas máquinas): [root@server3 etc]# drbdadm create-md web ➔ Iniciando o serviço nas duas máquinas: [root@server3 etc]# /etc/init.d/drbd start ➔ Definindo o nó primário: [root@server3 etc]# drbdadm -- -o primary web ➔ Criando um sistema de arquivos [root@server3 etc]# mkfs.ext3 /dev/drbd0 ➔ Montando o device [root@server3 etc]# mount /dev/drbd0 /opt/web/ ➔ Checando Status [root@server3 opt]# cat /proc/drbd
  • 22. Testando ➔ Copie alguns dados para o device do DRBD ➔ Faça um switch over do device no nó 1 para secundário: [root@server3 opt]# drbdadm secondary web ➔ Faça um switch over do device no nó 2 para primário: [root@server4 ~]# drbdadm primary web ➔ Montando o device [root@server4 etc]# mount /dev/drbd0 /opt/web/ ➔ Verifique o conteúdo do diretório, deve ser igual ao que existia em server3 [root@server4 opt]# ls /opt/web
  • 23. Integrando o drbd ao heartbeat ➔ Edite o arquivo haresources e modifique a linha abaixo: server3 192.168.15.50 httpd para: server3 192.168.15.50 drbddisk Filesystem::/dev/drbd0::/opt/web::ext3 httpd ➔ Reinicie o heartbeat nas duas máquinas [root@server3 opt]# /etc/init.d/heartbeat restart
  • 24. Testando ➔ No nó 1, o device /dev/drbd0 deve estar como primary e no nó 2 como secondary
  • 25. Testando ➔ Coloque o nó 1 em standby e observe que o a pasa /opt/web está vazia. No nó 2 ela será montada com todo o conteúdo apresentado no nó 1 antes do standby. [root@server3 opt]# /usr/share/heartbeat/hb_standby ➔ Faça com que o nó 1 reassuma. Verifique o status do device /dev/drbd0 e dos dados na pasta /opt/web [root@server3 opt]# /usr/share/heartbeat/hb_takeover
  • 26. Frederico Madeira LPIC­1, LPIC­2, CCNA fred@madeira.eng.br www.madeira.eng.br Sistemas Distribuídos Alta Disponibilidade utilizando Heartbeat + drbd