programas livres para a alta disponibilidade em … fileprogramas livres para a alta disponibilidade...

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: trinhtruc

Post on 18-Sep-2018

220 views

Category:

Documents


0 download

TRANSCRIPT

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

Agenda● Alta disponibilidadeAlta disponibilidade

– conceito

– calculo/medida da disponibilidade

– classificação

– ambiente HA

● ProgramasProgramas

– heartbeat

– drbd

– mon

– hapm

● ConclusãoConclusão

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.”

Calculo da disponibilidade

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

A=MTTF

MTTFMTTR

medida da disponibilidade

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

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

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

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.

HeartBeat

● Cluster: Alta Disponibilidade;Cluster: Alta Disponibilidade;

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

● Cluster: Alta Performance;Cluster: Alta Performance;

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;

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;

HeartBeat

HeartBeat

Master Slave

10.0.0.1010.0.0.10 10.0.0.1110.0.0.11

HeartBeat

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

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

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

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

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

HeartBeat

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

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

HeartBeat

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

HeartBeat

● Interface Virtual na MASTERMASTER:

HeartBeat

● Interface virtual no SLAVESLAVE quando o MASTER foi desligado:

HeartBeat - Teste

HeartBeat - Teste

● --> Na MASTER

[Distributed Replicated Block Device]

DRBD

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

da rede

DRBD

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

DRBD

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)

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 }

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

Service Monitoring Daemon

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.

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.

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.

MON – Váriosmonitores

MON – Componentes

● Servidor● Clientes● Monitores● Trap● Alertas

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

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,

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,

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

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.

[High Availability Port Monitor]

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

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

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.

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

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

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