Objetivo
Criação de um
cluster de
alta disponibilidade do tipo ativo/ativo em ambiente
Linux baseado na distribuição
SuSE 10 Enterprise Server SP2. O cluster primário será batizado com o nome de Torrenorte e o secundário Torresul. O servidor Torrenorte será responsável pelo Samba, sendo utilizado como servidor de arquivos e o Torresul pelo Firebird, sendo utilizado como servidor de banco de dados.
Componentes
Vamos entender quais os componentes necessários para funcionar nosso cluster. Precisamos do serviço de
heartbeat, que é o serviço responsável para monitorar os dois clusters. Através de uma ou mais interfaces dedicadas de rede, o heartbeat envia um pulso para cada servidor do cluster para checar se está on-line, caso uns dos servidores do cluster não responda a esse pulso, o heartbeat declara que o servidor está parado e inicializa os serviços deste servidor parado no outro servidor que está funcionando.
O heartbeat monitora o cluster e é o próprio responsável em iniciar os serviços como Samba e Firebird.
Outro componente fundamental é o DRBD, ele fica responsável em replicar as informações de um disco para o outro via rede. Por exemplo, temos o disco /storage montado no servidor Torrenorte, enquanto este trabalha o drbd replica os dados no mesmo disco no servidor Torresul, só que neste servidor ele não fica visível. Caso Torrenorte venha a falhar e cair, o heartbeat entra em ação e monta o disco /storage no servidor Torresul, assim mantendo o serviço funcionando.
Um recurso interessante que usaremos em nosso cluster é o
Channel Bonding (Rede Vinculada). Através de duas ou mais interfaces de rede temos uma união de canal, assim além de alta disponibilidade de interface, também temos balanceamento de carga. No nosso caso o Bond será usado exclusivamente para o heartbeat e o DRBD. Ele propicia uma segurança a mais em nosso cluster, protegendo-o contra o problema de
Split Brain (interface de monitoramento é rompida com o cluster funcionando, ocasionando uma parada crítica no sistema!).
Ambiente
Abaixo temos uma figura como o esquema de nosso cluster.
- 2 servidores usando Linux SuSE 10 Enterprise SP2;
- 3 placas de rede em cada servidor, eth0, eth1 e eth2. A placa eth0 é usada para a LAN/Rede Local e as placas eth1 e eth2 são ligadas através de cabo cross-over para uso exclusivo da comunicação e replicação do cluster, eth1 do servidor Torrenorte é conectada com o eth1 do servidor Torresul, assim também com o eth2;
- 3 discos rígidos em cada servidor.
Servidor Torrenorte:
- Serviços: heartbeat, drbd, mon, smb
- Rede local: Eth0 = 172.27.0.1 máscara 255.255.0.0
- Rede cluster: Bond0 = 10.27.1.101 máscara 255.255.255.0
- IP virtual: 172.27.1.101 máscara 255.255.0.0
- Disco Drbd: /dev/drbd0
- Ponto de montagem: /storage
Servidor Torresul:
- Serviços: heartbeat, drbd, mon, firebird
- Rede local: Eth0 = 172.27.0.2 máscara 255.255.0.0
- Rede cluster: Bond0 = 10.27.1.102 máscara 255.255.255.0
- IP virtual: 172.27.1.102 máscara 255.255.0.0
- Disco Drbd: /dev/drbd1
- Ponto de montagem: /database