Transcript
Page 1: Alta Disponibilidade na Prática utilizando servidores Linux

Programas Livres para a Alta Disponibilidade em Servidores

HugoHugoRogerRogerCleberCleber

ClauzioClauzio

Serviços em Redes de ComputadoresServiços em Redes de ComputadoresProfº João Eriberto Mota FilhoProfº João Eriberto Mota Filho

Page 2: Alta Disponibilidade na Prática utilizando servidores Linux

Agenda● Alta disponibilidadeAlta disponibilidade

– conceito

– calculo/medida da disponibilidade

– classificação

– ambiente HA

● ProgramasProgramas

– heartbeat

– drbd

– mon

– hapm

● ConclusãoConclusão

Page 3: Alta Disponibilidade na Prática utilizando servidores Linux

Conceito

● HAHA não é apenas um produto ou não é apenas um produto ou aplicaçãoaplicação

● HAHA é uma característica de sistema é uma característica de sistema computacionalcomputacional

““A disponibilidade de um sistema A disponibilidade de um sistema computacional, indicada por A(t), é a computacional, indicada por A(t), é a probabilidade de que este sistema probabilidade de que este sistema esteja funcionando e pronto para uso esteja funcionando e pronto para uso em um dado instante t.”em um dado instante t.”

Page 4: Alta Disponibilidade na Prática utilizando servidores Linux

Calculo da disponibilidade

● VariáveisVariáveis– MTTF (Tempo médio até apresentar falha)– MTTR (Tempo médio de reparo)

A=MTTF

MTTFMTTR

Page 5: Alta Disponibilidade na Prática utilizando servidores Linux

medida da disponibilidade

Page 6: Alta Disponibilidade na Prática utilizando servidores Linux

Classificação

● A disponibilidade de um sistema A disponibilidade de um sistema computacional pode ser dividida em computacional pode ser dividida em três classes:três classes:– Disponibilidade básica

● 99%

– Alta disponibilidade● 99,9%; 99,99%; 99,999%...

– Disponibilidade contínua● 1

Page 7: Alta Disponibilidade na Prática utilizando servidores Linux

Ambiente HA

● HardwareHardware: redundância de máquinas, : redundância de máquinas, linkslinks, conexão dedicada e de alta , conexão dedicada e de alta velocidadevelocidade

● Espelhamento de dados: dados Espelhamento de dados: dados espelhados em tempo realespelhados em tempo real

● Controle de serviços: o sistema deve ser Controle de serviços: o sistema deve ser autônomo e capaz de reconfigurar-seautônomo e capaz de reconfigurar-se

● Monitoração: o sistema deve monitorar Monitoração: o sistema deve monitorar seus serviços e disparar uma seus serviços e disparar uma reconfiguração em caso de defeitosreconfiguração em caso de defeitos

Page 8: Alta Disponibilidade na Prática utilizando servidores Linux

HeartBeat (Linux - HA)HeartBeat (Linux - HA)

Page 9: Alta Disponibilidade na Prática utilizando servidores Linux

HeartBeat

● O HeartbeatHeartbeat é um dos componentes do projeto Linux-HA (High-Availability Linux);

● Roda nas plataformas Linux, FreeBSD e Solaris;

● DetectaDetecta a morte de um 'host' e gerênciagerência cluster.

Page 10: Alta Disponibilidade na Prática utilizando servidores Linux

HeartBeat

● Cluster: Alta Disponibilidade;Cluster: Alta Disponibilidade;

● Cluster: Balanceamento de Carga;Cluster: Balanceamento de Carga;

● Cluster: Alta Performance;Cluster: Alta Performance;

Page 11: Alta Disponibilidade na Prática utilizando servidores Linux

HeartBeat

● Segmentos UDPSegmentos UDP são enviados regulamente entre os hosts;

● Se o segmento não for recebido;● Será detectadodetectado que um host está com

problema;● E é tomada uma ação;

Page 12: Alta Disponibilidade na Prática utilizando servidores Linux

HeartBeat

● Quando o serviço HeartBeat é iniciado em um host uma Interface VirtualInterface Virtual sobe;

● Essa Interface Virtual será acessada pelos clientesclientes;

● Se esse host falhar, então será detectadodetectado e a interface do outro host subirá como o mesmo IP;

● Um ARP gratuitoARP gratuito é enviado para todas máquinas;

Page 13: Alta Disponibilidade na Prática utilizando servidores Linux

HeartBeat

Page 14: Alta Disponibilidade na Prática utilizando servidores Linux

HeartBeat

Master Slave

10.0.0.1010.0.0.10 10.0.0.1110.0.0.11

HeartBeat

Page 15: Alta Disponibilidade na Prática utilizando servidores Linux

HeartBeat

IP VirtualIP Virtual10.0.0.2010.0.0.20

Master Slave

10.0.0.1010.0.0.10 10.0.0.1110.0.0.11

Page 16: Alta Disponibilidade na Prática utilizando servidores Linux

HeartBeat

Master Slave

10.0.0.1010.0.0.10 10.0.0.1110.0.0.11UDPUDP

IP VirtualIP Virtual10.0.0.2010.0.0.20

Page 17: Alta Disponibilidade na Prática utilizando servidores Linux

HeartBeat

Master Slave

10.0.0.1010.0.0.10 10.0.0.1110.0.0.11UDPUDP

IP VirtualIP Virtual10.0.0.2010.0.0.20

Page 18: Alta Disponibilidade na Prática utilizando servidores Linux

HeartBeat

Master Slave

10.0.0.1010.0.0.10 10.0.0.1110.0.0.11UDPUDP

IP VirtualIP Virtual10.0.0.2010.0.0.20

Page 19: Alta Disponibilidade na Prática utilizando servidores Linux

HeartBeat

● Problema:Problema: o MAC está amarrado no SWITCHSWITCH e na Tabela ARPTabela ARP das Máquinas;

Master Slave

10.0.0.1010.0.0.10 10.0.0.1110.0.0.11UDPUDP

IP VirtualIP Virtual10.0.0.2010.0.0.20

Page 20: Alta Disponibilidade na Prática utilizando servidores Linux

HeartBeat

● Solução:Solução: ARP gratuito;

Page 21: Alta Disponibilidade na Prática utilizando servidores Linux

HeartBeat

Master Slave

10.0.0.1010.0.0.10 10.0.0.1110.0.0.11ARPARP

IP VirtualIP Virtual10.0.0.2010.0.0.20

Page 22: Alta Disponibilidade na Prática utilizando servidores Linux

HeartBeat

● Tráfego UDP entre o MASTERMASTER e o SLAVESLAVE:

Page 23: Alta Disponibilidade na Prática utilizando servidores Linux

HeartBeat

● Interface Virtual na MASTERMASTER:

Page 24: Alta Disponibilidade na Prática utilizando servidores Linux

HeartBeat

● Interface virtual no SLAVESLAVE quando o MASTER foi desligado:

Page 25: Alta Disponibilidade na Prática utilizando servidores Linux

HeartBeat - Teste

Page 26: Alta Disponibilidade na Prática utilizando servidores Linux

HeartBeat - Teste

● --> Na MASTER

Page 27: Alta Disponibilidade na Prática utilizando servidores Linux

[Distributed Replicated Block Device]

Page 28: Alta Disponibilidade na Prática utilizando servidores Linux

DRBD

● Desenvolvido por Philipp Reisner (2000)● Versão atual 8.x● Replicação de discos entre 2 nós, através

da rede

Page 29: Alta Disponibilidade na Prática utilizando servidores Linux

DRBD

Page 30: Alta Disponibilidade na Prática utilizando servidores Linux

DRBD

● Trabalha com journaling file system (ext3, XFS, JFS, etc...)

● Possui 3 protocolos de integridade dados

● Master/Slave, somente um sistema pode lêr/escrever em um determinado tempo

● Quando o servidor master falha o servidor slave assume

● Possui mecanismo de “resync” inteligente

● Necessário integração com Heartbeat

Page 31: Alta Disponibilidade na Prática utilizando servidores Linux

DRBD

Page 32: Alta Disponibilidade na Prática utilizando servidores Linux

DRBD

● Instalação

tar -zxvf drbd-8.0.4.tar.gz

cd drbd-0.8.0.4/drbd

make clean all; make; make install

● Configuração

carrega módulo no kernel (modprobe drbd)

cria dispositivo drbd (mknod /dev/drbd0 b 147; mkfs.ext3 /dev/drbd0)

configura drbd.conf e inicia o serviço (init.d/drbd start)

configura servidor drbd primario no master (drbdadmin primary all)

sincroniza discos (drbdadmin –overwrite-data-of-peer primary all)

monta disco no servidor master (mount -t ext3 /dev/drbd0 /ha_backup)

Page 33: Alta Disponibilidade na Prática utilizando servidores Linux

DRBD# drbd.conf (deve ser copiado nos 2 servidores)

resource drbd0 {                 #primeiro espelhamento   protocol=C                         #protocolo usado (A-B-C)   fsck-cmd=fsck.ext2 -p -y     #se necessário

  disk {                                   #dados do disco    do-panic                             #se erro, um kernel panic para maquina    disk-size=4096543             #se discos não iguais  }

on server1 { #primeiro nodo device=/dev/drbd0 #dispositivo de drbd disk=/dev/hda3 #dispositivo de bloco address=192.168.1.2:7789 # endereço IP/porta }

on server2 { #primeiro nodo device=/dev/drbd0 #dispositivo de drbd disk=/dev/hda3 #dispositivo de bloco address=192.168.1.3:7789 #endereço IP/porta }

Page 34: Alta Disponibilidade na Prática utilizando servidores Linux

DRBD# haresources (arquivo de configuração do heartbeat)

server1 192.168.1.4 drbddisk Filesystem::/dev/drbd0::/ha_backup::ext3 servicos

onde:

server1 #servidor master 192.168.1.4 #ip virtual drbddisk #torna o dispositivo como primário Filesystem::/dev/drbd0::/ha_backup::ext3 #monta file system servicos #inicia em ordem os servicos que utilizam o file system

Page 35: Alta Disponibilidade na Prática utilizando servidores Linux

Service Monitoring Daemon

Page 36: Alta Disponibilidade na Prática utilizando servidores Linux

MON - ?● É uma ferramenta para monitorar a

disponibilidade dos serviços e enviar alertas,

● Desenvolvido e mantido por Jim Trocki(Unisys)

● GNU GLP,

● Simples, contudo muito adaptável aos projetos,

● Simples de adicionar alertas e monitores,

● Quando um alerta é dado, os dados são recolhidos para a da geração de relatório de uso geral,

● Propósito Geral: se você pode testar com software, você pode monitorá-lo.

Page 37: Alta Disponibilidade na Prática utilizando servidores Linux

MON - Características● Portátil (escrito em Perl),

● Linux, Solaris, Cygwin (Windows),

● Pode monitorar vários servidores,

● Configurável, extensível, integra com outros sistemas,

● Os arquivos de configuração são feitos de acordo com as outras ferramentas que irá intergrar.

Page 38: Alta Disponibilidade na Prática utilizando servidores Linux

MON – Váriosmonitores

● http, lpd, smtp, ldap, imap, pop3, telnet, dns,

● Msql, mysql, oracle, postgres, informix, sybase

● reboot, processes, rpc, clock, espaço em disco,

● traceroutes, router ,● interfaces, ipsec tunnels, ● NT services, samba, printers.

Page 39: Alta Disponibilidade na Prática utilizando servidores Linux

MON – Váriosmonitores

Page 40: Alta Disponibilidade na Prática utilizando servidores Linux

MON – Componentes

● Servidor● Clientes● Monitores● Trap● Alertas

Page 41: Alta Disponibilidade na Prática utilizando servidores Linux

MON - Funções

● Servidor- Programação e execução dos monitores(quando necessário),gerência alertas(envia alertas durante períodos específicos), logs, aceita traps remotos,

● Clientes- Pergunta e controla o servidor, mostrar relatórios

Page 42: Alta Disponibilidade na Prática utilizando servidores Linux

MON - Funções● Monitores

- Testa a condição de um serviço- Os testes são definidos pelos usuários,- Possibilita teste em nível de aplicação,- Comunica com os sistemas monitorados através do HTTP, do SNMP, etc.

● Trap- Emiti notificações para o servidor mon ou para outras entidades externas,

Page 43: Alta Disponibilidade na Prática utilizando servidores Linux

MON - Funções● Alertas

- Executar ações em casos de falhas, em servidor de pagina, de email, na ação corretiva (HA fail-over), etc.- Chama processos separadamente,- Simples de escrever,

Page 44: Alta Disponibilidade na Prática utilizando servidores Linux

MON - Configuração● cfbasedir   = /etc/ha.d/mon/etc

alertdir    = /usr/lib/mon/alert.dmondir      = /usr/lib/mon/mon.dmaxprocs    = 20 historicfile = /var/log/mon.loghostgroup servers 10.5.12.254 10.5.12.253

● watch serversservice ping interval 1mmonitor fping.monitor -aperiod wd {Mon-Fri}alert mail.alert root@localhost

Page 45: Alta Disponibilidade na Prática utilizando servidores Linux

MON - Comandos

● mon - monitorar os serviços para a disponibilidade, emitindo alarmes em cima das falhas.

● moncmd - emitir comandos ao daemon do mon e mostrar os resultados.

● monshow - mostrar o status operacional do usuário do mon.

Page 46: Alta Disponibilidade na Prática utilizando servidores Linux

[High Availability Port Monitor]

Page 47: Alta Disponibilidade na Prática utilizando servidores Linux

HAPM

● Desenvolvido por Alexandre Antônio, João Eriberto e Rosemeri Dantas

● Verifica status de portas TCP/UDP (nó Master)

● Trabalha com o daemon Heartbeat

Page 48: Alta Disponibilidade na Prática utilizando servidores Linux

HAPM

# hapm.conf

socket=127.0.0.1:25 # ip e porta do serviço a ser monitoradosocket=10.0.0.1:80socket=10.0.0.1:22 time=1 # intervalo entre as checagensheartbeat=/etc/init.d/heartbeat # daemon do heartbeat

Page 49: Alta Disponibilidade na Prática utilizando servidores Linux

CONCLUSÃO

Como pôde ser visto neste trabalho é possível ter um sistema de alta disponibilidade baseado em ferramentas open-source, sem

gastar muito dinheiro no quesito software.

Um fator muito importante que se deve levar em consideração durante a implantação de um servidor de alta disponibilidade é

justamente o custo x beneficio,

quando maior o grau de disponibilidade maior será o recurso financeiro necessário para implementação de tal.

Page 50: Alta Disponibilidade na Prática utilizando servidores Linux

Referências Bibliográficas

● http://www.linux-ha.org

● http://hapm.sourceforge.net/

● http://www.ultramonkey.org

● http://www.pruonckk.org/wiki/index.php/Alta_Disponibilidade_Howto

● http://ha.linuxchix.org.br/drbd.html

● http://www.drbd.org/

● http://mon.wiki.kernel.org/index.php/Main_Page

Page 51: Alta Disponibilidade na Prática utilizando servidores Linux

EXTRAS – Arquivos de Configuração máq. MASTER (HeartBeat)

Page 52: Alta Disponibilidade na Prática utilizando servidores Linux

EXTRAS – Arquivos de Configuração máq. SLAVE (HeartBeat)


Top Related