HowTo: Como criar Cluster Linux - Ativo/Passivo para Postgres com DRBD, Pacemaker e Corosync
Este artigo explica como configurar (e monitorar) um Cluster Linux Ativo/Passivo para PostgreSQL, usando Pacemaker, DRBD e Corosync.
Notas Preliminares
Este artigo explica como configurar (e monitorar) um Cluster PostgreSQL Ativo/Passivo, usando Pacemaker, Corosync e DRBD. Escrito por Rafael Marangoni, do time de Servidor Linux da BRLink.
Nós usamos dois nós, um ativo (que atende as requisições de usuários e aplicações) e outro nó em modo passivo. Se o nó ativo para, o passivo assume sua posição (tornando-se o nó ativo).
Um ponto importante na instalação é que utilizaremos o DRBD para replicação dos dados entre os nós. O DRBD requisita um disco ou uma partição exclusiva para esta ação de replicação, portanto se você não possui um disco específico para o DRBD, lembre de deixar uma partição exclusiva para o DRBD na instalação do CentOS.
Neste artigo, usamos dois nós físicos: node1.clusterbr.int e node2.clusterbr.int:
Como foi dito anteriormente, você pode usar somente um disco, se deixar uma partição exclusiva para o DRBD.
Nós usamos dois nós, um ativo (que atende as requisições de usuários e aplicações) e outro nó em modo passivo. Se o nó ativo para, o passivo assume sua posição (tornando-se o nó ativo).
Distribuição Linux
Estamos usando o CentOS 5.5 (64 bits), embora não testado, este artigo deverá funcionar no Fedora, e com certeza no RedHat Enterprise Linux). A instalação do CentOS é bastante simples e clássica: selecione os pacotes base (e outras coisas que você goste/precisa).Um ponto importante na instalação é que utilizaremos o DRBD para replicação dos dados entre os nós. O DRBD requisita um disco ou uma partição exclusiva para esta ação de replicação, portanto se você não possui um disco específico para o DRBD, lembre de deixar uma partição exclusiva para o DRBD na instalação do CentOS.
Topologia e hardware de rede
Nós usamos duas interfaces Gigabit por nó: a primeira interface (eth0) conecta o nó à rede local (LAN); a segunda interface (eth1) está conectando os dois nós, através de um cabo cross-over. A conexão cross-over aumenta a confiabilidade e performance do sistema, já que a conexão entre os nós não dependerá, por exemplo, de um switch externo que pode falhar.Neste artigo, usamos dois nós físicos: node1.clusterbr.int e node2.clusterbr.int:
- node1.clusterbr.int: Usa IP 10.0.0.191 (LAN) e IP 172.16.0.1 (cross-over)
- node2.clusterbr.int: Usa IP 10.0.0.192 (LAN) e IP 172.16.0.2 (cross-over)
- dbip.clusterbr.int: Este é o IP do Cluster, 10.0.0.190. Este é o IP que deverá ser utilizado para acesso ao banco de dados PostgreSQL.
Discos
Em nosso exemplo, cada um dos nós possui 2 discos físicos:- /dev/sda: para o SO
- /dev/sdb: para o DRBD
Como foi dito anteriormente, você pode usar somente um disco, se deixar uma partição exclusiva para o DRBD.
10!
;-))