Programas Livres para a Alta Disponibilidade em … · probabilidade de que este sistema esteja...
Transcript of Programas Livres para a Alta Disponibilidade em … · probabilidade de que este sistema esteja...
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
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
● 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
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
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
DRBD
● Desenvolvido por Philipp Reisner (2000)● Versão atual 8.x● Replicação de discos entre 2 nós, através
da rede
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
● 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
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 - 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.
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