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

Installation of Windows Server 2003 Domain Controller and DNS Server Setup
Installation of Windows Server 2003 Domain Controller and DNS Server SetupInstallation of Windows Server 2003 Domain Controller and DNS Server Setup
Installation of Windows Server 2003 Domain Controller and DNS Server Setup
► Supreme Mandal ◄
 

Mais procurados (20)

User management
User managementUser management
User management
 
[오픈소스컨설팅]레드햇계열리눅스7 운영자가이드 - 기초편
[오픈소스컨설팅]레드햇계열리눅스7 운영자가이드 - 기초편[오픈소스컨설팅]레드햇계열리눅스7 운영자가이드 - 기초편
[오픈소스컨설팅]레드햇계열리눅스7 운영자가이드 - 기초편
 
Openstack SPICE console (icehouse) verification
Openstack SPICE console (icehouse) verificationOpenstack SPICE console (icehouse) verification
Openstack SPICE console (icehouse) verification
 
Installation of Windows Server 2003 Domain Controller and DNS Server Setup
Installation of Windows Server 2003 Domain Controller and DNS Server SetupInstallation of Windows Server 2003 Domain Controller and DNS Server Setup
Installation of Windows Server 2003 Domain Controller and DNS Server Setup
 
CNIT 152: 9 Network Evidence
CNIT 152: 9 Network Evidence CNIT 152: 9 Network Evidence
CNIT 152: 9 Network Evidence
 
MySQL/MariaDB Proxy Software Test
MySQL/MariaDB Proxy Software TestMySQL/MariaDB Proxy Software Test
MySQL/MariaDB Proxy Software Test
 
Primeiros passos com a API do Zabbix
Primeiros passos com a API do ZabbixPrimeiros passos com a API do Zabbix
Primeiros passos com a API do Zabbix
 
DNS High-Availability Tools - Open-Source Load Balancing Solutions
DNS High-Availability Tools - Open-Source Load Balancing SolutionsDNS High-Availability Tools - Open-Source Load Balancing Solutions
DNS High-Availability Tools - Open-Source Load Balancing Solutions
 
install active directory and configure domain controller
install active directory and configure domain controllerinstall active directory and configure domain controller
install active directory and configure domain controller
 
MyDUMPER : Faster logical backups and restores
MyDUMPER : Faster logical backups and restores MyDUMPER : Faster logical backups and restores
MyDUMPER : Faster logical backups and restores
 
[발표자료] 오픈소스 Pacemaker 활용한 zabbix 이중화 방안(w/ Zabbix Korea Community)
[발표자료] 오픈소스 Pacemaker 활용한 zabbix 이중화 방안(w/ Zabbix Korea Community) [발표자료] 오픈소스 Pacemaker 활용한 zabbix 이중화 방안(w/ Zabbix Korea Community)
[발표자료] 오픈소스 Pacemaker 활용한 zabbix 이중화 방안(w/ Zabbix Korea Community)
 
Red Hat OpenStack 17 저자직강+스터디그룹_4주차
Red Hat OpenStack 17 저자직강+스터디그룹_4주차Red Hat OpenStack 17 저자직강+스터디그룹_4주차
Red Hat OpenStack 17 저자직강+스터디그룹_4주차
 
User and groups administrator
User  and  groups administratorUser  and  groups administrator
User and groups administrator
 
DHCP & DNS
DHCP & DNSDHCP & DNS
DHCP & DNS
 
Windows Server 2008 Active Directory
Windows Server 2008 Active DirectoryWindows Server 2008 Active Directory
Windows Server 2008 Active Directory
 
MySQL_MariaDB로의_전환_기술요소-202212.pptx
MySQL_MariaDB로의_전환_기술요소-202212.pptxMySQL_MariaDB로의_전환_기술요소-202212.pptx
MySQL_MariaDB로의_전환_기술요소-202212.pptx
 
Igor Nicoli: External scripts O poder do Zabbix em suas mãos
Igor Nicoli: External scripts O poder do Zabbix em suas mãosIgor Nicoli: External scripts O poder do Zabbix em suas mãos
Igor Nicoli: External scripts O poder do Zabbix em suas mãos
 
Faster, better, stronger: The new InnoDB
Faster, better, stronger: The new InnoDBFaster, better, stronger: The new InnoDB
Faster, better, stronger: The new InnoDB
 
Apresentacao zabbix
Apresentacao zabbixApresentacao zabbix
Apresentacao zabbix
 
SR-IOV+KVM on Debian/Stable
SR-IOV+KVM on Debian/StableSR-IOV+KVM on Debian/Stable
SR-IOV+KVM on Debian/Stable
 

Destaque

Aula 3 (alta disponibilidade)
Aula 3 (alta disponibilidade)Aula 3 (alta disponibilidade)
Aula 3 (alta disponibilidade)
Evandro Júnior
 
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
elliando dias
 
ProxySQL Tutorial - PLAM 2016
ProxySQL Tutorial - PLAM 2016ProxySQL Tutorial - PLAM 2016
ProxySQL Tutorial - PLAM 2016
Derek 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 tuning
OSSCube
 

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 em Linux com Heartbeat e Drbd

Aula14 vsftp de-introopenldap
Aula14 vsftp de-introopenldapAula14 vsftp de-introopenldap
Aula14 vsftp de-introopenldap
Roberto Castro
 

Semelhante a Alta Disponibilidade em Linux 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 em Linux
Cluster de Alta Disponibilidade em LinuxCluster de Alta Disponibilidade em Linux
Cluster de Alta Disponibilidade em Linux
 
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...
 

Mais de Frederico 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
 

Último

Apresentação Power Embedded - Descubra uma nova forma de compartilhar relatór...
Apresentação Power Embedded - Descubra uma nova forma de compartilhar relatór...Apresentação Power Embedded - Descubra uma nova forma de compartilhar relatór...
Apresentação Power Embedded - Descubra uma nova forma de compartilhar relatór...
Dirceu Resende
 

Último (11)

ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docxATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
 
EAD Curso - CIÊNCIA DE DADOS NA INDÚSTTRIA
EAD Curso - CIÊNCIA DE DADOS NA INDÚSTTRIAEAD Curso - CIÊNCIA DE DADOS NA INDÚSTTRIA
EAD Curso - CIÊNCIA DE DADOS NA INDÚSTTRIA
 
[ServiceNow] Upgrade de versão - 2ª edição (Revisada, atualizada e ampliada)
[ServiceNow] Upgrade de versão - 2ª edição (Revisada, atualizada e ampliada)[ServiceNow] Upgrade de versão - 2ª edição (Revisada, atualizada e ampliada)
[ServiceNow] Upgrade de versão - 2ª edição (Revisada, atualizada e ampliada)
 
Apostila e caderno de exercicios de WORD
Apostila e caderno de exercicios de  WORDApostila e caderno de exercicios de  WORD
Apostila e caderno de exercicios de WORD
 
Apresentação Power Embedded - Descubra uma nova forma de compartilhar relatór...
Apresentação Power Embedded - Descubra uma nova forma de compartilhar relatór...Apresentação Power Embedded - Descubra uma nova forma de compartilhar relatór...
Apresentação Power Embedded - Descubra uma nova forma de compartilhar relatór...
 
Palestras sobre Cibersegurança em Eventos - Paulo Pagliusi
Palestras sobre Cibersegurança em Eventos - Paulo PagliusiPalestras sobre Cibersegurança em Eventos - Paulo Pagliusi
Palestras sobre Cibersegurança em Eventos - Paulo Pagliusi
 
COI CENTRO DE OPERAÇÕES INDUSTRIAIS NAS USINAS
COI CENTRO DE OPERAÇÕES INDUSTRIAIS NAS USINASCOI CENTRO DE OPERAÇÕES INDUSTRIAIS NAS USINAS
COI CENTRO DE OPERAÇÕES INDUSTRIAIS NAS USINAS
 
From_SEH_Overwrite_with_Egg_Hunter_to_Get_a_Shell_PT-BR.pdf
From_SEH_Overwrite_with_Egg_Hunter_to_Get_a_Shell_PT-BR.pdfFrom_SEH_Overwrite_with_Egg_Hunter_to_Get_a_Shell_PT-BR.pdf
From_SEH_Overwrite_with_Egg_Hunter_to_Get_a_Shell_PT-BR.pdf
 
ATIVIDADE 1 - CÁLCULO DIFERENCIAL E INTEGRAL II - 52_2024.docx
ATIVIDADE 1 - CÁLCULO DIFERENCIAL E INTEGRAL II - 52_2024.docxATIVIDADE 1 - CÁLCULO DIFERENCIAL E INTEGRAL II - 52_2024.docx
ATIVIDADE 1 - CÁLCULO DIFERENCIAL E INTEGRAL II - 52_2024.docx
 
Entrevistas, artigos, livros & citações de Paulo Pagliusi
Entrevistas, artigos, livros & citações de Paulo PagliusiEntrevistas, artigos, livros & citações de Paulo Pagliusi
Entrevistas, artigos, livros & citações de Paulo Pagliusi
 
ATIVIDADE 1 - GESTÃO DE PESSOAS E DESENVOLVIMENTO DE EQUIPES - 52_2024.docx
ATIVIDADE 1 - GESTÃO DE PESSOAS E DESENVOLVIMENTO DE EQUIPES - 52_2024.docxATIVIDADE 1 - GESTÃO DE PESSOAS E DESENVOLVIMENTO DE EQUIPES - 52_2024.docx
ATIVIDADE 1 - GESTÃO DE PESSOAS E DESENVOLVIMENTO DE EQUIPES - 52_2024.docx
 

Alta Disponibilidade em Linux 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