Conceitos sobre Disponibilidade - Parte I
Por Robson Brandão, MVP
Existem três itens que andam juntos quando falamos sobre servidores: Desempenho, Segurança e Disponibilidade. Nesse artigo vou falar um pouco sobre disponibilidade.
De forma bem simples, podemos definir disponibilidade como sendo o tempo que seu servidor fica no ar durante o ano.
Existem dois aspectos principais a considerar quando se pensa em disponibilidade: Prevenção e Disaster Recovery.
Prevenção
É qualquer coisa que usamos para reduzir o risco de uma catástrofe incluindo pessoas, processos e tecnologias.
Algumas ações para prevenção de desastres:
Implementar sistemas redundantes, onde um ou mais servidores possam assumir as responsabilidades do Primary Server caso algum problema grave aconteça e sempre ter pelo menos 2 cópias exatas do seu banco de dados de produção colocadas em dois data centers diferentes (redundância).
Reduzir pontos de falhas. Os data centers devem ser colocados em lugares estratégicos longe de terremotos, enchentes e outros fenômenos.
Creio que com essas ações os servidores estarão sempre disponíveis e você poderá ficar tranqüilo. Será? Vocês conhecem a história do Titanic? Ele tinha 16 compartimentos à prova d'água e teoricamente, mesmo que 4 compartimentos inundassem ele não afundaria e mesmo assim ele afundou.
Isso nos leva a pensar que o inesperado pode acontecer e que outros cuidados devem ser tomados. Um bom planejamento e administração dos servidores também são vitais. Não basta ter redundância dos servidores. É preciso ler os logs, testar os backups, verificar os discos e a memória, medir o desempenho e analisar a segurança.
Disaster Recovery
Mesmo tomando todas as precauções, desastres acontecem e um plano de emergência deve ser criado antes que isso ocorra. Voltando ao exemplo do Titanic, se tivesse botes salva-vidas para todos, ninguém teria morrido e esse é o objetivo de quem trabalha com servidores, mesmo que uma catástrofe aconteça, precisamos ter recursos para recuperar os servidores e disponibilizar nossos dados.
Calculando a Disponibilidade
Existe uma fórmula muito simples para se calcular a Disponibilidade de um servidor:
DISPONIBILIDADE = (Total de Unidade de Tempo - Downtime) / Total de Unidade de Tempo
Exemplo:
Vamos calcular a disponibilidade de um servidor num período de 1 ano considerando 3 horas de downtime para aplicação de service packs ou outro tipo de manutenção.
Total de Unidade de Tempo = 1 ano ( 8760 horas)
Downtime = 3 horas
DISPONIBILIDADE = ( 8760 horas - 3 horas) / 8760 = 99,9658 %
Conseguir 100% de disponibilidade é algo quase impossível por diversos fatores. Um desses fatores é a vida útil de alguns componentes da máquina como por exemplo um HD. Digamos que um certo HD tem uma vida útil de 15.000 horas. Isso quer dizer que a cada 15.000 devemos substituí-lo.
Exemplo prático:
Você instalou um SQL Server em seu ambiente. De tempos em tempos a Microsoft lança Service Packs. A cada aplicação de service packs, o SQL Server fica em single-user mode. Dependendo do seu hardware, a aplicação do Service pack pode durar alguns minutos, digamos 15. Após instalar é preciso um reboot e vamos supor que o boot demore 5 minutos. No total teremos 20 minutos de indisponibilidade planejada por ano. Fazendo as contas: 99,9962% de disponibilidade.
É claro que tudo depende do ambiente que você tem. Se por exemplo, você tem uma empresa aqui no Brasil com filiais em várias cidades e durante dia precisa de disponibilidade total, pode usar a madrugada para um eventual downtime. Mas se a empresa tem filiais no mundo inteiro, inclusive no oriente, e seu banco precisa estar disponível 24x7, o downtime deve ser programado com muito cuidado.
O Downtime ( tempo que o servidor fica indisponível ) é medido em porcentagem. Quanto mais 9 (noves) tiver no cálculo da disponibilidade, menor downtime você terá. A tabela a seguir demonstra o número de noves e tempo que o servidor fica indisponível.
O Significado dos NOVES
% |
Downtime (por ano) |
---|---|
100 |
Nenhum downtime |
99,999 (5 noves) |
Menos de 5,26 min. |
99,99 (4 noves) |
De 5,26 a 52 min. |
99,9 (3 noves) |
De 52 min. a 8 horas e 45 min. |
99 ( 2 noves) |
De 8 horas e 45 min. a 87 horas e 56 min |
90,0 - 98,9 (1 nove) |
87 horas e 56 min a 875 horas 54 min |
Apresentando o significado dos noves ao CEO, CFO, CIO ou CTO, é claro que vão querer sempre os 5 noves ou 24x7 uptime, isso aumenta nossas responsabilidades na Implementação da solução.
Soluções da Microsoft
A Microsoft possui tecnologias para prover soluções de missão crítica permitindo alcançar os 5 noves. Essas tecnologias são:
Windows Server 2003
Server Clusters
Network Load Balancing Cluster
SQL Server
Failover clustering
Log Shipping
Replication
Backup e Restore
Cada uma das soluções tem uma complexidade muito grande e deverá ser tratada em outros artigos.