Todos gostaríamos, mesmo quando não temos a necessidade real, de ter nossos servidores e sistemas disponíveis 100% do tempo.
No entanto, sabemos que isso é algo impossível na prática. Podemos chegar a uma porcentagem próxima de 100% e, na verdade, quanto mais próximo dos míticos 100% chegamos, mais cara e mais complexa a tecnologia que utilizamos para atingir tal disponibilidade se torna.
Porém, com software livre, podemos chegar bem próximo da tão desejada disponibilidade constante a um custo não proibitivo. Já há alguns anos existem ferramentas e softwares livres que nos permitem implementar soluções bastante confiáveis e que, somadas a uma boa infraestrutura, nos permitem ter sistemas com janelas de indisponibilidade quase imperceptíveis.
Recentemente, nos deparamos com a necessidade de um cliente que necessitava da disponibilidade mais alta possível para seus sistemas a um custo que não fosse altamente proibitivo. Estudos sobre qual estrutura seria a mais adequada foram feitos, bem como quais as soluções de software seriam utilizadas.
Após reuniões, decidimos por hardware IBM, uma vez que tratam-se de servidores que atenderiam com excelência a necessidade do cliente. O servidor de banco de dados anteriormente utilizado pelo cliente, Informix, foi mantido, mas teve sua versão atualizada para Informix IDS 10.
O sistema operacional escolhido, logicamente, foi GNU/Linux, mais especificamente Red Hat AS 4 em plataforma EM64T. São servidores multiprocessados e com tecnologia de 64 bits, discos SCSI internos com tecnologia RAID via hardware e os dados críticos armazenados em um storage IBM externo, acessado via fibra óptica.
O cliente possuía um sistema ERP sendo executado sob GNU/Linux. Para esse projeto, colocamos todo o sistema ERP, incluíndo o backend (Informix), funcionando sob um ambiente de alta disponibilidade.
A solução funcionou muito bem e, atualmente, temos o serguinte cenário :
- Servidor primário : possui os serviços em execução e dados críticos sendo acessados do storage;
- Servidor secundário : em standby, aguardando por qualquer problema com o servidor primário para entrar em ação e assumir o controle das operações;
Caso, por algum motivo (falha de hardware, falha de comunicação em rede, falha na execução de algum dos serviços, como o sistema ERP, banco de dados, etc), os serviços fiquem indisponíveis, o servidor secundário passa a fornecer a mesma funcionalidade anteriormente fornecida pelo servidor primário, inclusive utilizando os mesmos endereços IP do servidor primário, fornecendo os mesmos serviços e disponibilizado aos usuários exatamente os mesmos dados.
Dessa forma, fica imperceptível aos usuários se os serviços estão sendo fornecidos por um ou outro servidor específico. O fato é que os mesmos sempre terão os serviços que necessitam para trabalhar disponíveis.