Na infraestrutura de TI, chega um momento em que confiar em um único servidor físico — por mais robusto e caro que ele seja — deixa de ser uma opção viável. O hardware falha, discos queimam, placas de rede travam e manutenções exigem reboots. Se o seu sistema não pode parar durante esses eventos, você precisa de um Cluster.

Trabalhar com clusters é elevar o nível do seu datacenter. Vamos desmistificar quando você realmente precisa dessa arquitetura e como instalar o motor de clusterização padrão da indústria (Pacemaker + Corosync) nas principais distribuições Linux.

Quando (e Por Que) Usar um Cluster?

Um cluster nada mais é do que um conjunto de servidores (chamados de "nós" ou nodes) que trabalham juntos como se fossem um único sistema. Na prática do dia a dia de um sysadmin, usamos clusters principalmente para dois cenários:

  1. Alta Disponibilidade (High Availability - HA): O cenário mais clássico. Se o Servidor A (Ativo) sofrer uma falha de hardware ou kernel panic, o Servidor B (Passivo) assume instantaneamente o IP, os serviços e a montagem dos discos. O usuário final mal percebe a queda. Ideal para bases de dados críticas (PostgreSQL, MySQL/Galera) e servidores de arquivos vitais.

  2. Balanceamento de Carga (Load Balancing): Quando o tráfego é muito alto para uma única máquina. O cluster distribui as requisições entre vários nós simultaneamente. Comum em servidores web (fazendas de Nginx/Apache) e microsserviços.

Dica da Trincheira: Não monte um cluster se a aplicação não for crítica. A complexidade do ambiente aumenta drasticamente. Você precisará lidar com conceitos como Split-Brain (quando os nós perdem comunicação entre si e ambos tentam assumir o controle) e STONITH (fencing - a capacidade de um nó "atirar na cabeça" do outro e desligá-lo à força para evitar corrupção de dados).

Procedimento de Instalação (Pacemaker e Corosync)

Para criar um cluster de Alta Disponibilidade padrão no Linux, a dupla dinâmica é o Corosync (que cuida da comunicação e do heartbeat entre os nós) e o Pacemaker (o cérebro que decide onde e como os recursos/serviços vão rodar). Hoje em dia, usamos a ferramenta pcs (Pacemaker Configuration System) para gerenciar tudo de forma mais simples.

Para este laboratório, assumimos que você tem pelo menos dois servidores (node1 e node2) com IPs fixos e que eles conseguem resolver os nomes um do outro via /etc/hosts.

1. Instalação no Ecossistema Red Hat (RHEL, AlmaLinux, Rocky Linux)

Nestas distros, o Pacemaker é amplamente utilizado e muito bem suportado.

Bash
# Execute em todos os nós do cluster
sudo dnf install pacemaker corosync pcs -y

# Libere as portas no firewall
sudo firewall-cmd --permanent --add-service=high-availability
sudo firewall-cmd --reload

# Inicie e habilite o serviço PCS
sudo systemctl enable --now pcsd

Ao instalar o pcs, o sistema cria automaticamente um usuário chamado hacluster. Você precisa definir uma senha para ele (use a mesma senha em todos os nós):

Bash
sudo passwd hacluster

2. Instalação no Ecossistema Debian / Ubuntu Server

A lógica é a mesma, mudando apenas o gerenciador de pacotes e pequenos detalhes de serviço.

Bash
# Execute em todos os nós do cluster
sudo apt update
sudo apt install pacemaker corosync pcs -y

# Inicie e habilite o serviço PCS
sudo systemctl enable --now pcsd

No Debian/Ubuntu, o usuário hacluster também é criado. Defina a senha:

Bash
sudo passwd hacluster

Criando e Iniciando o Cluster (Universal)

A partir daqui, os comandos do pcs são iguais para qualquer distribuição. Escolha apenas um dos nós (por exemplo, o node1) e execute os passos abaixo.

Passo 1: Autenticar os nós Isso fará com que o node1 consiga se comunicar e enviar configurações para o node2.

Bash
sudo pcs host auth node1 node2 -u hacluster -p sua_senha_aqui

Passo 2: Criar o Cluster Vamos criar um cluster chamado cluster_infra contendo os dois nós.

Bash
sudo pcs cluster setup cluster_infra node1 node2

Passo 3: Iniciar o Cluster e Habilitar no Boot

Bash
sudo pcs cluster start --all
sudo pcs cluster enable --all

Passo 4: Verificar o Status

Bash
sudo pcs status

Se tudo correu bem, você verá um painel informando que o cluster está online e ambos os nós estão ativos e prontos para receber recursos.

O Próximo Passo

A partir deste ponto, o motor do cluster está rodando. O próximo passo em um ambiente real seria desativar o STONITH temporariamente (apenas para laboratórios locais: sudo pcs property set stonith-enabled=false), adicionar um IP Virtual (VIP) que flutuará entre os nós, e amarrar serviços como o Apache ou o banco de dados ao cluster.

Gerenciar clusters é uma arte que exige testes rigorosos de falha. A regra de ouro é: puxe o cabo de rede ou desligue o servidor primário de propósito na homologação. Se o cluster não se recuperar sozinho, ele não está pronto para a produção.

Você já teve que "puxar a tomada" para testar se o seu HA estava funcionando? Como foi a experiência?