Escolar Documentos
Profissional Documentos
Cultura Documentos
Resumo
A dependncia de sistemas computacionais se tornou visvel nos dias de hoje,
e a possibilidade de indisponibilidade dos servios providos pelos sistemas se
tornou intolervel. J imaginou o tamanho do prejuzo para as empresas se o
sistema da bolsa de valores sair do ar? Ou o sistema da folha de pagamento
da sua empresa parar de funcionar no dia do seu pagamento? O objetivo desse
projeto construir um ambiente clusterizado e altamente disponvel, utilizando
software livre.
Introduo
HA (High availability) Alta disponibilidade - Tcnica de projetar sistemas de
forma que os servios fornecidos por eles cumpram os requisitos de estarem
acessveis por um perodo mnimo definido por um contrato de nvel de servio
ou SLA (Service Level Agreement).
Os sistemas computacionais podem ser divididos em quatro categorias:
Sistemas Gerais: So aqueles em que falhas e interrupes curtas de servio
so tolerveis desde que o sistema volte a funcionar posteriormente.
Sistemas Altamente Disponveis: Disponibilidade crtica, medida a maneira
de se determinar a qualidade dos servios, sendo inaceitvel a falha do
sistema como um todo. Ex. Sistemas bancrios, telecomunicaes.
Sistemas Computacionais Crticos: Podem comprometer a segurana de
pessoas ou ter um alto impacto econmico. Exemplos: Sistema Areo,Militar,
Industriais.
Sistemas de Longa Vida: A confiabilidade prioridade mxima e normalmente
impossvel realizar manuteno no-planejada. Exemplos: Satlites,
Controladores de Vo Espacial.
Todo sistema possui uma taxa de confiabilidade, que a probabilidade do
mesmo realizar suas funes em dado perodo de tempo, utilizada para
calcular o SLA. Bem comuns so o MTBF (Medium Time Between Failures) e o
MTTR ( Medium Time to Repair).
Downtime Tempo que determinado servio ou sistema ficou indisponvel,
podendo ocorrer de duas formas: planejada e no-planejada. Perodos no
planejados so decorrentes de falhas no controladas e devem ser evitadas
atravs de tcnicas de alta disponibilidade. Perodos planejados so
normalmente perodos de manuteno agendados de maneira a minimizar o
Disponibilidade
(%)
90%
99%
99,9%
99,9999%
Downtime Anual
36,5 dias
3,65 dias
8,76 horas
31,5 segundos
Downtime
Mensal
72 horas
7,2 horas
43,2 minutos
2,59 segundos
Downtime
Semanal
16,8 horas
1,68 horas
10,1 minutos
0,6 segundos
Causas de Indisponibilidade
Pesquisas realizadas em 2010 apontam os maiores causadores de
indisponibilidade:
1. Falta de boas praticas de gerencia de mudanas.
2. Falta de boas praticas de monitorao dos componentes dos sistemas.
3. Falta de boas praticas de definio de requisitos.
4. Falta de boas praticas de procedimentos operacionais.
5. Falta de boas praticas em evitar falhas de rede.
6. Falta de boas praticas em evitar problemas internos com aplicaes.
7. Falta de boas praticas em evitar falha de servios externos.
8. Ambiente fsico inadequado.
9. Falta de boas praticas de modelo de redundncia de rede.
10. Falta de soluo de backup.
11. Falta de boas praticas na escolha da localizao do Datacenter.
12. Falta de redundncia de infra-estrutura.
13. Falta de redundncia de arquitetura de Storage.
Modelos de Alta disponibilidade
Um ambiente que contem computadores redundantes ou Ns, chamado de
cluster. Seu principio de funcionamento que caso um dos ns falhe, o outro
n assumir o lugar do outro de forma transparente at que seja realizado o
reparo. A utilizao de redundncia visa eliminar a necessidade de interveno
humana no ambiente para que o mesmo continue em funcionamento em caso
de falhas.
Ambiente Proposto:
Abaixo poderemos visualizar como ficar nosso ambiente clusterizado com os
servidores reais, para isso utilizaremos o modelo LVS (NAT). A topologia NAT
permite uma grande latitude na utilizao de hardware existente, mas limitado
em sua capacidade de lidar com grandes cargas devido ao fato de que todos
os pacotes passaro pelo roteador LVS.
real=10.240.0.21:80 masq
real=10.240.1.20:80 masq
real=10.240.1.21:80 masq
fallback=127.0.0.1:80 gate
fallbackcommand="/etc/init.d/apache2"
service=http
request=".testpage"
receive="test page"
scheduler=rr
protocol=tcp
checktype=negotiate
Uma explicao mais detalhada de cada diretiva de servio:
Virtual: Define um servio indicado por endereo IP, porta e/ou marca de
firewall.
Real: Define o realserver que ir atender requisies deste servidor virtual.
Note que a diretiva masq aps o endereo, especifica que ser realizado
mascaramento de endereo.
Fallback: Endereo para o qual sero enviadas as solicitaes caso haja falha
em todos os Realservers. Normalmente utilizada como feedback para o cliente.
FallbackCommand: Comando que sera executado com parametro start caso
todos os realservers estejam indisponiveis e com o parametro stop quando o
primeiro realserver se tornar disponivel.
Service: Tipo de service que esta sendo verificado. Tipos validos so:
dns,ftp,http,https,http_proxy,imap,imaps,ldap,mysql,nntp,Oracle,pgsql,pop,pops
,radius,simpletcp,sip,smtp, para servios genricos utilizamos o simpletcp.
Request: URI do objeto que ser solicitado para verificao.
Receive: Resposta (conteudo) que esperada apos solicitor o objeto na
solicitao acima.
Scheduler: Forma que a carga ser distribuda entre os realservers do cluster.
Alguns dos agendadores possveis so:
o RR: Round Robin, distribui conexes igualmente entre os servidores a
medida que so feitas.
Adicionando o segundo N
A configurao e instalao do Heartbeat ser a mesma para o n primario,
aps a instalao necessario copiar a chave de autenticao entre os ns:
# scp -p /etc/ha.d/authkeys root@lvs02:/etc/ha.d/
Inicie o Heartbeat no segundo n e verifique o log de erros:
# tail -f /var/log/ha-debug.log
Testes de funcionamento do cluster
Para testar a redundancia vamos parar o Heartbeat no n primario e verificar
se os servios migraro para o n secundrio.
Concluso
Neste mini-curso conseguimos em um curto espao de tempo criar um
balanceamento de carga de servios entre servidores e tambm configurar a
alta disponibilidade dos mesmos, como sempre, no existe uma frmula
mgica para calcular o ponto ideal ( justamente por isso que existem
consultores e analistas), mas sempre prudente ter pelo menos um nvel
mnimo de redundncia, nem que seja apenas um backup atualizado, que
permita restaurar o servidor (usando outra mquina) caso alguma tragdia
acontea.
Referncias
http://www.linuxvirtualserver.org/VS-NAT.html
http://www.austintek.com/LVS/LVS-HOWTO/HOWTO/LVS-HOWTO.LVS-NAT.html
https://access.redhat.com/knowledge/docs/ptBR/Red_Hat_Enterprise_Linux/5/html/Virtual_Server_Administration/ch-lvs-setupVSA.html
http://www.vivaolinux.com.br/artigo/Alta-disponibilidade-com-Debian-Lenny-+Heartbeat-+-DRBD8-+-OCFS2-+-MONIT-+-LVS
Curso 426 HA Alta disponibilidade (4linux)