Alta disponibilidade com GNU/Linux - Revista Infra Magazine 2

Você precisa estar logado para dar um feedback. Clique aqui para efetuar o login
Para efetuar o download você precisa estar logado. Clique aqui para efetuar o login
Confirmar voto
0
 (0)  (1)

Este artigo trata de como planejar e executar as configurações necessárias para montar uma estrutura de alta disponibilidade para serviços, quer sejam de Internet ou não, utilizando GNU/Linux.

Atenção: esse artigo tem um vídeo complementar. Clique e assista!

Do que se trata o artigo:

Este artigo trata de como planejar e executar as configurações necessárias para montar uma estrutura de alta disponibilidade para serviços, quer sejam de Internet ou não, utilizando GNU/Linux.


Para que serve:

Serve para garantir que os serviços (banco de dados, servidores web etc.) estejam disponíveis para uso pelos Clientes mesmo quando da ocorrência de problemas graves, tais como instabilidade ou falhas de hardware.


Em que situação o tema é útil:

Quando você for responsável por manter um serviço que não pode parar (24 h e 7 d) e/ou o mesmo tiver um alto número de acessos e você desejar minimizar os impactos que uma manutenção ou problema de hardware venha causar.

No ambiente atual, a demanda para que os serviços estejam disponíveis 24x7 é maior e cada vez mais presente em todos os segmentos, da indústria ao varejo. Se antes era um requisito existente ou recurso disponível apenas para grandes ambientes, por conta de seu custo, hoje já é possível torná-lo acessível para uma audiência muito maior através de ferramentas open source.

Neste contexto, este artigo apresentará como implementar um ambiente de alta disponibilidade utilizando apenas soluções open source. Contudo, antes de apresentarmos as ferramentas que estão à nossa disposição, é preciso introduzir alguns termos comuns na área e esclarecer os limites da solução proposta.

Alta disponibilidade e escalabilidade

A alta disponibilidade e escalabilidade são requisitos desejáveis em qualquer sistema, e apesar de serem vistas com frequência juntas, as soluções que visam prover alta disponibilidade não implicam em escalabilidade e vice-versa. Para fins deste artigo, podemos definir que:

Alta disponibilidade é a capacidade de um sistema/servidor estar disponível por grandes períodos de tempo;

Escalabilidade é a capacidade de oferecer serviços com qualidade aceitável mesmo com uma demanda crescente.

Este artigo abordará apenas o primeiro item, uma vez que o segundo requer um conhecimento muito mais específico da aplicação que se deseja atender.

Paralisações

Uma vez que um serviço é colocado à disposição dos usuários, uma pressão, antes inexistente, se manifesta: o serviço deve estar disponível sempre que necessário!

Infelizmente, em qualquer ambiente temos que conviver com eventos que atuam para impedir o objetivo acima de ser satisfeito. Estes eventos são as paralisações dos servidores/serviços.

Para minimizarmos seus impactos temos que entender os tipos de paralisações. Estas podem ser divididas em duas categorias:

Não planejadas: são o resultado de falhas aleatórias (imprevisíveis) dos sistemas, associadas a componentes de hardware ou software. Como exemplo, temos discos rígidos com defeitos físicos, memórias com erros, fontes de alimentação queimadas, entre outros;

Planejadas (ou manutenções): associadas a paralisações agendadas para promover a atualização de hardware ou software. Costumam oferecer menor impacto ao negócio por normalmente serem realizadas em momentos de menor tráfego.

No caso das paralisações não planejadas, você pode ter uma postura preventiva, trocando, por exemplo, componentes antes do tempo médio do aparecimento de problemas. Entretanto, tal atitude não é uma garantia de que o componente não apresentará problemas antes dessa data.

Mas qual o impacto de uma paralisação? Apesar de não ser fácil quantificar o prejuízo de uma paralisação, é possível realizar um simples exercício para se entender o potencial que um problema pode alcançar.

Suponha que você tenha um servidor que demora 5 minutos para completar o processo de reinicialização. Se ele é responsável por atender a 100 requisições por segundo, isso significa que teremos 5 minutos x 60 segundos x 100 requisições por segundo = 30.000 requisições não atendidas!

Níveis de disponibilidade

Apesar do desejo de termos uma disponibilidade de 100%, este valor não é realizável na prática. Por conta disso, precisamos definir qual o nível de disponibilidade, conhecido como SLA (Service Level Agreement – que define os níveis aceitáveis para um serviço), antes de desenharmos a nossa solução.

Um SLA é um acordo negociado entre duas partes, onde uma é o Cliente e outra é o fornecedor de um serviço. Ele registra os parâmetros mínimos de qualidade sobre serviços, prioridades, responsabilidades e garantias.

Usualmente iniciamos estimando o tempo máximo desejável de parada (downtime) durante um ano de operação medido em minutos, e encontramos qual a classe de disponibilidade que satisfaz o requisito utilizando a seguinte fórmula:

  D = (1 - R) x 365 x 24 x 60 

Onde D é o tempo máximo de parada em minutos e R é a razão entre o tempo disponível e o indisponível. No mercado é comum encontrarmos os níveis conforme a Tabela 1.

Disponibilidade (%)

Tempo de parada no ano

99

3,65 dias

99,9"

A exibição deste artigo foi interrompida :(
Este post está disponível para assinantes MVP

 
Você precisa estar logado para dar um feedback. Clique aqui para efetuar o login
Receba nossas novidades
Ficou com alguma dúvida?