alta disponibilidade na prática utilizando servidores linux

52
Programas Livres para a Alta Disponibilidade em Servidores Hugo Hugo Roger Roger Cleber Cleber Clauzio Clauzio Serviços em Redes de Computadores Serviços em Redes de Computadores Profº João Eriberto Mota Filho Profº João Eriberto Mota Filho

Upload: elliando-dias

Post on 18-Dec-2014

4.930 views

Category:

Technology


1 download

DESCRIPTION

 

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)