Openfiler · 5 min read · Jan 31, 2026

Instalação e Configuração do Openfiler com DRBD e Heartbeat

Instalação e Configuração do Openfiler com DRBD e Heartbeat

Introdução

Openfiler é um sistema operacional de alto desempenho projetado para uso como um dispositivo SAN/NAS. Esta configuração permitirá que dois dispositivos Openfiler funcionem em um cenário de alta disponibilidade Ativo/Passivo.

Requisitos

Hardware

  • 2 x caixas que atendam às especificações mínimas de hardware do Openfiler.
  • 2 x interfaces ethernet em cada caixa
  • Mídia de instalação do Openfiler 2.3.
  • Ambas as caixas devem ter discos do mesmo tamanho em cada uma para evitar inconsistências de replicação.

Software

Instale o Openfiler 2.3 em ambas as caixas utilizando uma configuração de disco como a seguinte:

  • 3 GB de partição raiz (“/”)
  • 2 GB de partição “swap”
  • 512 MB de partição “/meta” (usada para DRBD0)
  • Partição de dados configurada como um LVM não montado (usada para DRBD1)

Configuração

Rede

Cada dispositivo Openfiler terá duas NICs: uma para se comunicar com a LAN, a outra para se comunicar com o outro SAN (via cabo direto). A primeira será usada para administração, para se comunicar diretamente com cada nó.

Uma terceira interface “virtual” é usada pelo serviço de heartbeat e é o que será usado pelos computadores na LAN.

Abaixo está o que é utilizado:

filer01

  • Interface LAN (eth0) 192.168.1.18
  • Interface de Replicação (eth1) 10.188.188.1

filer02

  • Interface LAN (eth0) 192.168.1.19
  • Interface de Replicação (eth1) 10.188.188.2

Endereço HA NAS/SAN (eth0) 192.168.1.17

  • Isso é configurado no arquivo cluster.xml (não tente configurar em outro lugar)

Configuração do Nome do Host

Para que ambos os nós possam se reconhecer pelo nome, configure o arquivo hosts em cada computador.
Modifique nosso /etc/hosts (em filer01):

# Não remova a linha a seguir, ou vários programas
# que requerem funcionalidade de rede falharão.
127.0.0.1 filer01 localhost.localdomain localhost
10.188.188.2 filer02

Modifique nosso /etc/hosts (em filer02):

# Não remova a linha a seguir, ou vários programas
# que requerem funcionalidade de rede falharão.
127.0.0.1 filer02 localhost.localdomain localhost
10.188.188.1 filer01

Chaves SSH Compartilhadas

Para permitir que os dois dispositivos Openfiler se comuniquem entre si sem precisar usar uma senha, use chaves SSH compartilhadas.

Em filer01:

  root@filer01 ~# ssh-keygen -t dsa

Pressione enter nas solicitações (não defina uma senha na chave).

Em filer02:

  root@filer02 ~# ssh-keygen -t dsa

Pressione enter nas solicitações (não defina uma senha na chave).

O comando acima gerará um arquivo chamado “id_dsa.pub” em ~/.ssh/, que é a chave pública que precisará ser copiada para o outro nó:

root@filer01 ~# scp .ssh/id_dsa.pub root@filer02:~/.ssh/authorized_keys2
root@filer02 ~# scp .ssh/id_dsa.pub root@filer01:~/.ssh/authorized_keys2

Configurar DRBD

DRBD é o que manterá os dados entre os dois nós consistentes.

Em filer01:

  root@filer01 ~# mv /etc/drbd.conf /etc/drbd.conf.org

Em seguida, modifique drbd.conf (versão 8) de acordo com o seguinte:

global {
 # minor-count 64;
 # dialog-refresh 5; # 5 segundos
 # disable-ip-verification;
 usage-count ask;
}

common {
 syncer { rate 100M; }
}

resource cluster_metadata {
 protocol C;
 handlers {
  pri-on-incon-degr "echo O > /proc/sysrq-trigger ; halt -f";
  pri-lost-after-sb "echo O > /proc/sysrq-trigger ; halt -f";
  local-io-error "echo O > /proc/sysrq-trigger ; halt -f";
  # outdate-peer "/usr/sbin/drbd-peer-outdater";
 }
 
 startup {
  # wfc-timeout 0;
  degr-wfc-timeout 120; # 2 minutos.
 }

 disk {
  on-io-error detach;
 }

 net {
  after-sb-0pri disconnect;
  after-sb-1pri disconnect;
  after-sb-2pri disconnect;
  rr-conflict disconnect;
 }

 syncer {
  # rate 10M;
  # after "r2";
  al-extents 257;
 }

 on filer01 {
  device /dev/drbd0;
  disk /dev/sda3;
  address 10.188.188.1:7788;
  meta-disk internal;
 }

 on filer02 {
  device /dev/drbd0;
  disk /dev/sda3;
  address 10.188.188.2:7788;
  meta-disk internal;
 }
}

resource vg0drbd {
 protocol C;
 startup {
  wfc-timeout 0; ## Infinito!
  degr-wfc-timeout 120; ## 2 minutos.
 }

 disk {
  on-io-error detach;
 }

 net {
  # timeout 60;
  # connect-int 10;
  # ping-int 10;
  # max-buffers 2048;
  # max-epoch-size 2048;
 }

 syncer {
  after "cluster_metadata";
 }

 on filer01 {
  device /dev/drbd1;
  disk /dev/sda5;
  address 10.188.188.1:7789;
  meta-disk internal;
 }

 on filer02 {
  device /dev/drbd1;
  disk /dev/sda5;
  address 10.188.188.2:7789;
  meta-disk internal;
 }
}

Ambos os hosts precisam do mesmo drbd.conf, então o arquivo drbd.conf de filer01 será copiado para filer02:

  root@filer01 ~# scp /etc/drbd.conf root@filer02:/etc/drbd.conf

Inicialize os metadados em /dev/drbd0 (cluster_metadata) e /dev/drbd1 (vg0drbd) em ambos os nós:

root@filer01 ~# drbdadm create-md cluster_metadata
root@filer01 ~# drbdadm create-md vg0drbd
root@filer02 ~# drbdadm create-md cluster_metadata
root@filer02 ~# drbdadm create-md vg0drbd

Nota: se os comandos acima gerarem erros sobre a necessidade de zerar o sistema de arquivos, use o seguinte comando:

  root@filer01 ~# dd if=/dev/zero of=/dev/sda3

Tenha cuidado com este comando e certifique-se de que está no disco correto.

Antes de iniciar o serviço DRBD, certifique-se de que a partição usada para drbd0 (no recurso cluster_metadata no arquivo drbd.conf) não esteja montada (o que estará por padrão se foi criada durante a instalação).

  root@filer01 ~# umount /dev/sda3

Agora, inicie o DRBD em ambos os hosts:

root@filer01 ~# service drbd start
  root@filer02 ~# service drbd start

Se tudo correr bem, eles devem se conectar e executar “service drbd status” deve apresentar uma saída semelhante à seguinte:

  root@filer1 /# service drbd status

drbd driver carregado OK; status do dispositivo:
versão: 8.0.12 (api:86/proto:86)
GIT-hash: 5c9f89594553e32adb87d9638dce591782f947e3 compilado por phil@mescal, 2008-04-24 13:29:44
m:res cs st ds p montado fstype
0:cluster_metadata Conectado Secundário/Secundário Inconsistente/Inconsistente C
1:vg0drbd Conectado Secundário/Secundário Inconsistente/Inconsistente C

Uma vez que ambos os recursos drbd estejam conectados e ambos os nós estejam no estado Secundário (como acima), defina um nó Primário:

root@filer01 ~# drbdsetup /dev/drbd0 primary -o
root@filer01 ~# drbdsetup /dev/drbd1 primary -o

Isso deve lhe dar um resultado de status semelhante ao seguinte:

  root@filer1 /# service drbd status

drbd driver carregado OK; status do dispositivo:
versão: 8.0.12 (api:86/proto:86)
GIT-hash: 5c9f89594553e32adb87d9638dce591782f947e3 compilado por phil@mescal, 2008-04-24 13:29:44
m:res cs st ds p montado fstype
… sincronizado: 17.9% (247232/297152)K
0:cluster_metadata SyncSource? Primário/Secundário Atualizado/Inconsistente C
1:vg0drbd PausadoSyncS? Primário/Secundário Atualizado/Inconsistente C

Nota: se o LVM vg0drbd for grande, levará muito tempo para sincronizar (talvez durante a noite).

Ative o DRBD para iniciar na inicialização:

root@filer01 ~# chkconfig –level 2345 drbd on
root@filer02 ~# chkconfig –level 2345 drbd on

Agora crie o sistema de arquivos cluster_metadata. Use esta partição de 512 MB para manter todos os dados de configuração do Openfiler e os dados para os serviços que devem estar disponíveis em HA (por exemplo, NFS, iSCSI, SMB).

  root@filer01 ~# mkfs.ext3 /dev/drbd0

Não adicione esta partição a um /etc/fstab, pois isso é gerenciado pelo Heartbeat (e será configurado em breve).

Share: X/Twitter LinkedIn

Receba novas postagens na sua caixa de entrada

Sem spam. Cancele a assinatura a qualquer momento.