Your SlideShare is downloading. ×
  • Like
Alta disponibilidade com dbrd e heartbeat
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×

Now you can save presentations on your phone or tablet

Available for both IPhone and Android

Text the download link to your phone

Standard text messaging rates apply

Alta disponibilidade com dbrd e heartbeat

  • 203 views
Published

 

Published in Technology
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
    Be the first to like this
No Downloads

Views

Total Views
203
On SlideShare
0
From Embeds
0
Number of Embeds
2

Actions

Shares
Downloads
6
Comments
0
Likes
0

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. Alta disponibilidade utilizando Heartbeat e DRBD Alexandre Mulatinho <alex@mulatinho .net> 2012/2 Abstract. This article have as principal objective describe the high avaiability function on linux using tools like heartbeat and drbd also show some characteristics and specific configurations of this solution in an virtual environment. Resumo. Este artigo tem como principal objetivo descrever o funcionamento da alta disponibilidade no linux utilizando as ferramentas heartbeat e o drbd, além de mostrar algumas características e configurações específicas desta solução num ambiente virtual. 1. Conceitos Básicos A alta dispo nibilidade no s dias de ho je to rna-se um fato r crucial tanto para pequeno s, médio s e grandes negócio s que envo lvem sistemas essenciais, sistemas co mo o s de saúde, banco s e do go verno em geral po r exemplo tem necessidade de estarem o nline 24 (vinte e quatro ) ho ras durante o s 7 (sete) dias da semana devido sua criticidade e po r isso cada minuto em que ficam de fo ra eles são respo nsabilizado s de fo rma severa. Para que não haja do wntime nesses serviço s é necessário a implementação de ambientes descentralizado s co ntendo uma co leção de co mputado res independentes que apresentem ao usuário um sistema único e independente [Tanenbaum 2002]. Neste artigo iremo s mo strar um exemplo de co mo implementar este co nceito utilizando co mo exemplo uma máquina linux que tenha co mo serviço critico um banco de dado s mysql e um so ftware de mo nito ração de desempenho chamado cacti. 1.1 Definições Principais O heartbeat é a principal ferramenta do co nceito de alta dispo no bilidade no linux, ele age co mo gesto r do cluster e de seus serviço s enviando perio dicamento sinais (paco tes ICMP) através do pro to co lo UDP para o s nós do cluster (máquinas e/o u serviço s), estes sinais são chamado s de hearbeats (batidas de co ração ), e tem co mo principal o bjetivo identificar um sinal po sitivo o u a ausência do sinal o que faz co m que o heartbeat marque o servido r co mo parado e to me as atitudes para que o s serviço s não fiquem indispo níveis para o s usuário s, nós iremo s ver isso mais detalhadamente depo is. O DRBD é um acrônimo em inglês que traduzido significa dispo sitivo de blo co s distribuido s e replicado s, ele co nsiste principalmente de um módulo desenvo lvido para o kernel do linux e alguns scripts que tem a função de replicar diretório s e arquivo s (sistema de arquivo s) entre várias máquinas distintas, isto é co mpartilhando seus recurso s.2. Cenário Para exemplificar melho r esta so lução vamo s fo rnecer um passo a passo de instalação e co nfiguração dessa so lução para que po ssamo s discutir melho r as técnicas e as tecno lo gias utilizadas nesta so lução . Utilizaremo s duas máquinas: Máquina-01: 192.168.5.1 (CentOS 5.7) co m o MySQL 5 e o Cacti instalado s. Máquina-02: 192.168.5.2 (CentOS 5.7) co m o MySQL 5 e o Cacti instalado s.
  • 2. Figura 1: Cluster utilizando heartbeat e o drbd co mpartilhando o diretório /data Co mo po de ser visto na figura 1, para o usuário que está na internet to da a so lução de alta dispo nibilidade é transparente po is ele sempre irá acessar, enviar e receber o s dado s através do IP 192.168.5.100. O que ele não sabe é que internamente existem do is servido res que tem a mesma função : fo rnecer o serviço do cacti e o banco de dado s mesmo que uma destas máquinas parem, isso se to rna crucial para sistemas crítico s po is permite que caso aco nteça algum sinistro co m um destes servido res (pro blemas de hardware, so ftware, energia, etc.) o o utro assuma. 2.1. Configurando o HeartBeat O principal respo nsável po r esta so lução é o heartbeat, ele age co mo um gerenciado r do cluster co ntro lando o s nós (máquinas clientes) e fo rnecendo ao usuário final a sensação de transparência e principalmente garantindo dispo nibilidade do serviço . O principal arquivo de co nfiguração chama-se “/etc/ha.d/ha.cf” e po de ser visto abaixo : 1. debugfile /var/lo g/ha-debug 2. lo gfile /var/lo g/ha-lo g 3. lo gfacility lo cal0 4 . keepalive 2 (Segundo s) 5. deadtime 30 (Segundo s) 6. bcast eth0 7. udppo rt 694 # po rta UDP utilizada para intra-cluster# co mmunicatio n 8. auto _failback yes # Reto rna serviço para master 9. no de maquina-01 # no me das máquinas do cluster 10. no de maquina-02 # no me das máquinas do cluster (1) define lo g de debug; (2) define arquivo de lo g; (3) define tipo de lo g; (4 ) Intervalo entre o s heartbeats; (5) Define quando um nó está o ffline; (6) Qual interface o s heartbeats serão enviado s; (7) Utilizando po rta UDP 694 para co municação ; (8) Sempre tenta reto rnar serviço para master; (9,10) define o s no mes das máquinas que serão o s nós do cluster e devem estar co ntido s no arquivo “/etc/ho sts”.
  • 3. O arquivo “/etc/ha.d/hareso urces” co ntém as info rmações do s recurso s que serão co mpartilhado s na alta dispo nibilidade, neste caso nós info rmamo s a ele que precisamo s co mpartilhar um disco via drbd e do is serviço s: o httpd e o mysql, co nfo rme po de ser visto na primeira linha abaixo : maquina-01 192.168.5.3 drbddisk Filesystem::/dev/drbd0::/o pt/ha::ext3 httpd mysqld (nó principal do cluster; ip do cluster; sistema de arquivo s; serviço s co mpartilhado s;) Apartir daí basta inicializar o serviço do heartbeat que ele vai tentar se co municar co m o s do is nós e tentar inicializar o s recurso s citado s acima na máquina principal do cluster, mas antes precisamo s co nfigurar o DRBD. 2.2. Configurando o DRBD O principal arquivo de co nfiguração do DRBD é o “/etc/drbd.co nf”, nele po de-se fazer diversas co nfigurações alternativas e a maio ria delas po de ser enco ntrada na página de manual do “drbd.co nf”, no no sso caso nós iremo s apenas adicio nar do is nós que co mpartilham um mesmo sistema de arquivo s através do dispo sitivo de blo co s drbd0. 1. reso urce httpd { 2. pro to co l C; 3. o n maquina-01 { 4 . device /dev/drbd0; 5. disk /dev/sdb1; 6. address 192.168.5.1:7788; 7. meta-disk internal; 8. } 9. o n maquina-02 { 10. device /dev/drbd0; 11. disk /dev/sdb1; 12. address 192.168.5.2:7788; 13. meta-disk internal; 14 . } 15. } (1) info rmas um no me para catego ria principal; (2) define que a entrada/saída de dado s será replicada tanto lo calmente co mo remo tamente; (3,9) define o no me da maquina a ser usada, deve estar no “/etc/ho sts”; (4 ,10) info rma o dispo sitivo de blo co a ser utilizado ; (5) info rma a partição usada; (6) registra o ip do s nós e a po rta de co municação do drbd; (7,13) diz ao drbd que a última parte do disco será para a escrita do s meta-dado s; 2.2. Analisando uma parada e uma inicialização Após inicializar o s serviço s co rretamente nós po demo s ver abaixo a saída do lo g “/var/lo g/ha-lo g” em duas situações diferentes, a primeira é o nde nós simulamo s a parada da maquina-01 semelhante ao que o co rreria em caso de uma queda de energia, pro blema de hardware e/o u so ftware. O lo g então registra a máquina indo para baixo : 1. heartbeat[9952]: 2012/05/23_00:55:28 info : maquina-01 wants to go standby [all] 2. heartbeat[9952]: 2012/05/23_00:55:28 info : standby: maquina-02 can take o ur all reso urces 3. heartbeat[11307]: 2012/05/23_00:55:28 info : give up all HA reso urces (standby).4 .
  • 4. …........................................................................................................................ 5. IPaddr[11591]: 2012/05/23_00:55:36 INFO: ifco nfig eth0:0 do wn 6. IPaddr[11574 ]: 2012/05/23_00:55:36 INFO: Success 7. heartbeat[11307]: 2012/05/23_00:55:36 info : all HA reso urce release co mpleted (standby). Do o utro lado a maquina-02 verificando a ausência de heartbeats da primeira maquina co nfirma que existe algum pro blema e co meça a iniciar o pro cedimento de to mada de recurso s, isso quer dizer que ago ra a máquina principal do cluster que recebe as requisições não é mais a maquina-01. Veja a máquina o btendo acesso : 1. harc[10080]: 2012/05/23_00:4 1:13 info : Running /etc/ha.d/rc.d/ip-request-resp ip-request-resp 2. ip-request-resp[10080]: 2012/05/23_00:4 1:13 received ip-request-resp 192.168.5.3 OK yes 3. Reso urceManager[10101]: 2012/05/23_00:4 1:13 info : Acquiring reso urce gro up: maquina-01 192.168.5.3 drbddisk Filesystem::/dev/drbd0::/o pt/ha::ext3 httpd mysqld 4 . Reso urceManager[10101]: 2012/05/23_00:4 1:14 info : Running /etc/ha.d/reso urce.d/IPaddr 192.168.5.3 start 5. IPaddr[10204 ]: 2012/05/23_00:4 1:15 INFO: Using calculated nic fo r 192.168.5.3: eth0 6. IPaddr[10204 ]: 2012/05/23_00:4 1:15 INFO: Using calculated netmask fo r 192.168.5.3: 255.255.255.0 7. IPaddr[10204 ]: 2012/05/23_00:4 1:15 INFO: eval ifco nfig eth0:0 192.168.5.3 netmask 255.255.255.0 bro adcast 192.168.5.255 8. IPaddr[10187]: 2012/05/23_00:4 1:16 INFO: Success (2,4 ) Co meça o pro cedimento de aquisição do IP virtual do cluster para a maquina lo cal; (3) Também dá inicio a aquisição do recurso de disco do drbd na maquina-02; (8) Co nfirma o recebimento do IP virtual; O DRBD então age dispo nibilizando o disco remo to e o mo ntando lo calmente: 1. Reso urceManager[10101]: 2012/05/23_00:4 1:16 info : Running /etc/ha.d/reso urce.d/drbddisk start 2. Reso urceManager[10101]: 2012/05/23_00:4 1:17 info : Running /etc/ha.d/reso urce.d/Filesystem /dev/drbd0 /o pt/ha ext3 start 3. Filesystem[104 28]: 2012/05/23_00:4 1:17 INFO: Running start fo r /dev/drbd0 o n /o pt/ha 4 . Filesystem[104 17]: 2012/05/23_00:4 1:18 INFO: Success (1) Inicia co mando que to ma o disco para maquina lo cal; (2,3,4 ) Co nfirma a mo ntagem do disco na máquina lo cal utilizando um script dentro do hearbeat que se co munica co m o DRBD. Os serviço s são inicializado s lo calmente, 1. Reso urceManager[10101]: 2012/05/23_00:4 1:18 info : Running /etc/init.d/httpd start 2. Reso urceManager[10101]: 2012/05/23_00:4 1:19 info : Running /etc/init.d/mysqld start Po r fim, inicia o s serviço s que nós listamo s no arquivo de co nfiguração “hareso urces”. Aco ntece então a mensagem final no lo g de co nfirmação de aquisição do s recurso s, 1. heartbeat[11660]: 2012/05/23_00:57:00 info : lo cal HA reso urce acquisitio n co mpleted (standby). 2. heartbeat[9952]: 2012/05/23_00:57:00 info : Standby reso urce acquisitio n do ne [fo reign]. 3. heartbeat[9952]: 2012/05/23_00:57:00 info : remo te reso urce transitio n co mpleted. E pro nto !! A máquina co nfirma através do s lo gs do heartbeat que to do s o s recurso s co mpartilhado s ago ra pertencem a máquina lo cal deixando não havendo po rtanto nenhum do wntime no s serviço s.
  • 5. 3. Conclusão O co nceito de Alta Dispo nibilidade (High Availability, o u simplesmente HA) não deve, e nem po de, ser uma no vidade para o s administrado res de sistemas, principalmente em ambientes co mputacio nais o nde a dispo nibilidade é uma característica crítica. Esse co nceito , que não é recente, está sendo amplamente disseminado , alcançando impo rtância diretamente pro po rcio nal a influência que o s sistemas de co mputação exercem nas empresas o u entidades que sustentam. Em meio a algumas so luções pro prietárias para co nstruir um ambiente de alta dispo nibilidade, o Heartbeat e o DRBD co nseguem junto s excelentes resultado s para sistemas Linux, e sem abso lutamente nenhum custo po r se tratarem de so ftwares livres. A maturidade desses so ftwares atingiu um certo nível que venceu determinadas desco nfianças presentes no rigo ro so mercado co rpo rativo . Po rtanto to rna-se essencial para uma empresa séria implementar recurso s de alta dispo nibilidade afim de garantir que o s seus serviço s e servido res nunca fiquem fo r a do ar. 4. Bibliografia [Tanenbaum 1995] Distributed Operating Systems. A. S. Tanenbaum. Prentice-Hall, 1995. ISBN 0-13-219908-4 . [Linux-HA] The definitive reference guide fo r users o f the Heartbeat http://www.linux-ha.o rg/do c/users-guide/users-guide.html