Alta Disponibilidade

Quanto mais atividades que temos a fazer durante o dia menor é a nossa disponibilidade perante aos demais afazeres diários. Mas quando falamos em servidores esta relação tem que ser inversa, pois quanto maior a quantidade de serviços e dependendo dos tipos de serviços que os mesmos disponibilizam, maior deve ser a disponibilidade dos servidores.

O termo chamado Alta Disponibilidade ou High Availability (HA) já existe há muito tempo, porém poucos utilizavam. Afinal a HA aumenta os gastos financeiros e exigem maiores conhecimentos, pois não é algo simples de ser aplicado e ainda exige redundância de hadware.

Porém atualmente cada vez mais a HA está fazendo parte das grandes e médias empresas que necessitam que seus serviços estejam sempre disponíveis aos seus usuários e clientes. Além disto, os custos de Hardware reduziram substancialmente. Vamos entender um pouco mais como funciona este sistema, e conhecer alguns serviços que disponibilizam efetuar HA na sua empresa.

Alta Disponibilidade

 
Conceitos de HA

O conceito principal da Alta Disponibilidade está explicito no seu próprio nome, afinal o que ela propõe é a disponibilidade dos serviços envolvidos em sua totalidade pelo período máximo de tempo. Não estamos falando de um sistema que deve funcionar por 12 horas sem parar durante um dia, mas sim de um sistema que pode ficar no máximo 43 minutos por mês fora do ar (Downtime) que equivale a 99,9% de disponibilidade mensal ou até 52 minutos por ANO de Downtime, isso mesmo por ANO, isto é 99,99% do tempo com os serviços de um servidor disponível no ano, marcas como estas são difíceis de serem alcançadas e os 99,999% então é praticamente como alcançar os 100% de disponibilidade.

Como a palavra “nunca” é extremamente complexa de ser utilizada, ainda mais quando se trata de tecnologia, então vamos dizer que é improvável que um sistema tenha 100% de disponibilidade.

Níveis

Os níveis mostrados na tabela acima são resultados de cálculos matemáticos considerando o tempo médio entre falhas o chamado MTBF (Mean Time Between Failures) e o tempo médio de recuperação, chamado de MTTR (Mean Time To Repair).

Alta Disponibilidade

Considerando os valores mostrados acima, devemos pensar nas seguintes questões, quanto maior a disponibilidade, maiores são os custos, pois maior será a redundância, e a necessidade da disponibilidade varia muito de acordo com os serviços disponíveis, um CallCenter de emergência (Polícia, SAMU) por exemplo, exige que seus operadores estejam com seus sistemas disponíveis 24 horas por dia, ou seja, estes sistemas devem estar no mínimo dentro da faixa de 99,9% ou mais.

Para calcular a disponibilidade utiliza-se a seguinte fórmula:

Disponibilidade = MTBF / (MTBF + MTTR)

Failover

O processo chamado de Failover acontece quando um dos serviços envolvido tem uma falha e é substituído por outro manualmente ou automaticamente, visto que a segunda opção é a mais esperada dos sistemas de Alta Disponibilidade.

Alta Disponibilidade

A Figura acima mostra uma topologia utilizando um sistema de redundância simples, onde o Primary Server (Servidor Principal) sofreu uma falha qualquer, e o Backup Server (Servidor de Backup) passou a atender as requisições dos usuários da rede. Lembrando que a máquina envolvida que substituirá o servidor com falhas deve ter um Hardware equivalente e suportar as necessidades do servidor que sofreu as falhas.

Failback

Já o processo chamado de Failback é o resultado após solucionar em sua totalidade, os problemas ocorridos com o servidor que foi substituído no processo de Failover. Ou seja, o processo de Failback nada mais é que colocar de volta em funcionamento o servidor que sofreu as falhas com as mesmas já corrigidas.

Lembrando que para o servidor principal possa voltar ao seu lugar de origem, ele precisará ser atualizado com todos os novos dados que possivelmente sofreu alguma alteração no servidor de backup, isso se o sistema não utiliza uma Storage, por exemplo, onde os dados são compartilhados em um sistema de armazenamento único.

Soluções para HA

Atualmente existem muitas soluções voltadas para este mercado, grandes empresas do setor como a IBM, HP, DELL, contam com soluções próprias, com Hardware próprio e utilizando sistemas para criação de clusters de terceiros, como o Microsoft Cluster Service e o projeto Linux HA que veremos com mais detalhes agora.

Projeto Linux HA

O Projeto Linux HA tem como objetivo desenvolver as aplicações necessárias para a criação de clusters de alta disponibilidade. Deste projeto nasceram os dois mais conhecidos sistemas com este objetivo, o Heartbeat e o DRDB, atualmente ele são muito utilizados em provedores de hospedagem, servidores de arquivos e também servidores com Asterisk e o OpenSER destinados a telefonia VOIP. Vamos conhecer um pouco mais destes dois sistemas que nasceram do Projeto Linux HA.

Heartbeat

O Heartbeat é um serviço desenvolvido para sistemas de alta disponibilidade e tem como responsabilidade monitorar os servidores e seus recursos presentes em um cluster, desta forma caso ocorra alguma falha com o servidor primário, o Heartbeat é o serviço responsável por sincronizar todos os recursos, inclusive a substituição do IP do servidor de Backup pelo IP do servidor principal (IP Virtual). Veja na figura abaixo uma topologia simples com Heartbeat:

Alta Disponibilidade

Este serviço funciona através de mensagens enviadas por uma instância do serviço no servidor secundário para outra instância no servidor primário, esta comunicação pode ser feita através de uma conexão Ethernet ou Serial, caso algum problema seja detectado e a mensagem não estiver dentro dos padrões, o servidor secundário assumirá os serviços. Mas o Heartbeat não faz todo o trabalho sozinho, ele trabalha em conjunto com outro serviço o DRDB.

DRBD

O nome DRBD significa Distributed Replicated Block Device, este serviço faz parte do Kernel Linux como um módulo, e tem como objetivo a sincronização (espelhamento) dos dados entre os HDs dos servidores presentes no cluster. Ele é conhecido como um sistema RAID 1 de HD via rede. Veja abaixo a topologia anterior agora atualizada com o DRDB:

Alta Disponibilidade

O sistema funciona com um HD como principal e os demais sendo como secundários, onde todos os dados do HD principal são replicados para os HDs secundários. Acima da versão 8.0 do DRBD o mesmo ganhou uma nova função, com a possibilidade de termos dois HDs como primários, podemos agora nos beneficiar do balanceamento de carga e ao invés de termos apenas um servidor como ativo e o segundo como backup, temos a capacidade de dividir a carga dos serviços entre dois servidores.

Mas para que possamos nos beneficiar de um sistema de alta disponibilidade com balanceamento de cargas, precisaremos utilizar um sistema de arquivos distribuídos como o GFS ou OCFS2, este processo dará muito mais trabalho para ser implantado e é assunto para outro artigo.

Tecnologias voltadas para HA

Assim como temos muitos softwares desenvolvidos para tentar manter por mais tempo a disponibilidade dos sistemas, tecnologias de hardware também foram desenvolvidas para beneficiar ainda mais a alta disponibilidade. Vamos ver alguns exemplos.

Fontes Redundantes

Nos computadores domésticos exceto os notebooks que contam com baterias, a queima da fonte faz seu sistema parar por completo assim que este problema ocorre. O mesmo ocorre com servidores. Porém atualmente cada vez mais servidores de médio e grande porte dispõe de fontes redundantes.

Alta Disponibilidade

Estas fontes têm como características a possibilidade da troca a quente conhecido como HotSwap, obviamente você não consegue trocar a fonte se ela for a única no sistema, para que as fontes redundantes funcione assim como os exemplos de servidores redundantes mostrados acima, faz-se necessário duas ou mais fontes.

Outras características interessantes destas fontes é que elas podem balancear o consumo de energia, assim reduzindo os desgastes de uma única fonte, além de contar com tecnologias como PFC ativo, onde as fontes reduzem sua potência de acordo com a necessidade do sistema e assim aumentar a eficiência energética da fonte, e desta forma economizam energia.

RAID

Um dos sistemas de redundância mais conhecido e utilizado em servidores é o RAID, o mesmo tem um papel importante na segurança dos dados há muitos anos. Porém há alguns anos vem sendo utilizado por quem adora jogos, visando um aumento no desempenho do sistema.

O RAID (Redundant Array of Independent Disks), conhecido também como matriz de discos rígidos, tem como função unir dois ou mais disco de diversas formas, visando, desempenho, confiabilidade ou os dois juntos.

Com alguns tipos de arranjos disponíveis, entre eles os mais conhecidos, RAID 0 e RAID 1 para usuários domésticos e pequenas empresas, e o RAID 5 e 10 para médias e grandes empresas, é um dos sistemas que mais da dor de cabeça para alguns mas que já deve ter salvo muitas “vidas” ou diria “emprego” pelo mundo a fora.

Digo dor de cabeça, pois quem precisa recuperar dados de um arranjo RAID como o RAID 0 por exemplo sofre muito e dificilmente terá todos os dados de volta. Mas para que teve uma falha em um dos HDs em um RAID 5, ufa, deixou de perder dados e manteve o sistema funcionando graças a essa tecnologia. Veja as principais características de cada arranjo:

Alta Disponibilidade

RAID 0: Mais utilizado por entusiasta e jogadores, esse arranjo soma os espaços de dois HDs e deixa seu sistema como tivesse apenas um HD, e de quebra ainda aumenta a taxa de transferência consideravelmente, porém não tem nenhuma redundância, em caso de falha de um dos HDs seu sistema vai todo por água a baixo.

RAID 1: Podemos considerar que o RAID 1 é o oposto do RAID 0, com dois HDs teremos apenas o espaço de um disponível , pois um será o seu sistema e o segundo uma cópia fiel do primeiro, com isso temos redundância e em caso de falha do HD principal o segundo automaticamente assumira o lugar do HD com defeito. Neste caso já é comum o uso de HDs com suporte a HotSwap.

RAID 5: O RAID 5 funciona com três discos ou mais e independentemente da quantidade de discos no sistema, apenas um terá seu espaço inutilizado pelo sistema. Em caso de falha de um dos HDs ainda teremos um disponível para substituição. Porém se dois disco sofrerem falhas o sistema não terá capacidade de se recuperar e seu sistema irá parar. O RAID 5 é uma espécie de RAID 0 com um pouco redundância.

RAID 6: O RAID 6 elimina o principal problema do RAID 5, evitado que caso um segundo HD falhe o sistema pare. Neste caso quando mais discos estiverem disponíveis no sistema menor será o espaço reduzido do total, porém o RAID 6 exige algoritmos bastante complexos e poucas são as controladoras que disponibilizam esse arranjo.

RAID 10:Este arranjo funciona com quatro HDs ou qualquer outra quantidade desde que seja par. Neste modo metade serão unidos como no RAID 0, enquanto a outra metade será o espalhamento da primeira metade, unindo desempenho com redundância.

JBOD: Podemos dizer que o JBOD (Just a Bunch Of Disks) é como um RAID 0, mas que não fragmenta arquivos, ou seja não tem ganho de desempenho, apenas faz uma junção de todo o espaço disponível nos HDs tornando um único disco. Ele também não conta com nenhum sistema de confiabilidade.

Active Memory

Até agora falamos em redundância de servidores inteiros, troca de fontes e HDs sem deixar o sistema inoperante, tudo isto em busca da maior disponibilidade possível dos serviços. Agora já ouviram falar em memórias HotSwap? Isso mesmo, uma tecnologia que possibilita a troca de memórias RAM com o sistema ligado está disponível em alguns servidores da linha High End da IBM (Outros fabricantes como HP contam com uma tecnologia parecida).

Conhecida com o nome de Active Memory, assim como as demais tecnologias citadas neste artigo, a troca de memória a quente só esta disponível quando existe redundância de hardware. Neste caso um servidor com 12GB de memória RAM instalada terá disponível para o sistema apenas 6GB.

Alta Disponibilidade

X445 Servidor IBM com suporte a HotSwap de memória.

A tecnologia Active Memory funciona da seguinte forma, todos os outros sistemas utilizam 8 bits do pacote de 72 bits dados para ECC e os demais 64 bits são para dados, porém o ECC pode trabalhar apenas com 6 bits deixando livres dois bits. E é com estes dois bits que a IBM trabalhou este tecnologia, enviando informações adicionais do estado das memórias. Assim o controlador de memória poderá redirecionar o fluxo de dados entre as memórias adicionais caso uma ou mais estiverem com problemas.

Outra tecnologia da IBM é o Memory Scrubbing, responsável por efetuar um teste diário de possíveis erros nas memórias antes mesmo que este erro possa prejudicar o funcionamento do sistema. O Memory scrubbing não necessita da redundância para funcionar, ele funciona da seguinte forma, caso algum erro seja detectado, o sistema tentará corrigir, caso seja possível a correção será efetuada, caso não seja recuperável o erro na memória, o sistema para de enviar informações para o módulo problemático e toda informação será copiada para outro espaço nos módulos disponíveis. Em seguida uma falha será relatada ao administrador que poderá efetuar a manutenção preventiva.

Conclusão

Sistemas bancários, hospitalares, energéticos e outra série de serviços que transmitem milhares de dados diariamente pela Internet e pelas redes locais, não é nada agradável deixar estes serviços foram do ar.

Com diversas tecnologias disponíveis, onde cada uma cabe no bolso sem dúvida da sua necessidade e no quão critico é o serviço para a empresa e seus usuários, a alta disponibilidade é essencial no mundo atual, infelizmente neste mundo querer não é poder, afinal os custos aumentam consideravelmente a cada 9 adicionado após a virgula. Felizmente com a redução nos custos de Hardware e sistemas robustos e gratuitos como o projeto Linux HA, podemos montar tranquilamente um sistema redundante e garantir uma maior disponibilidade dos serviços e menor dor de cabeça para o setor de TI e principalmente para quem depende e ganha dinheiro com os serviços disponíveis.

Fonte: Alexandre Inácio

About these ads

Tags:

Deixe uma resposta

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s

Seguir

Obtenha todo post novo entregue na sua caixa de entrada.

Junte-se a 423 outros seguidores

%d blogueiros gostam disto: