Instalación Openfiler · 5 min read · Jan 31, 2026

Instalación y Configuración de Openfiler con DRBD y Heartbeat

Instalación y Configuración de Openfiler con DRBD y Heartbeat

Introducción

Openfiler es un sistema operativo de alto rendimiento diseñado para su uso como un dispositivo SAN/NAS. Esta configuración permitirá que dos dispositivos Openfiler trabajen en un escenario de alta disponibilidad Activo/Pasivo.

Requisitos

Hardware

  • 2 x cajas que cumplan con las especificaciones mínimas de hardware de Openfiler.
  • 2 x interfaces de ethernet en cada caja
  • Medios de instalación de Openfiler 2.3.
  • Ambas cajas deben tener discos del mismo tamaño en cada una para evitar inconsistencias en la replicación.

Software

Instalar Openfiler 2.3 en ambas cajas utilizando una configuración de disco como la siguiente:

  • 3 GB de partición raíz (“/”)
  • 2 GB de partición “swap”
  • 512 MB de partición “/meta” (utilizada para DRBD0)
  • Partición de datos configurada como un LVM no montado (utilizada para DRBD1)

Configuración

Red

Cada dispositivo Openfiler tendrá dos NIC: una para comunicarse con la LAN, la otra para comunicarse con el otro SAN (a través de cable directo). La primera se utilizará para la administración, para comunicarse directamente con cada nodo.

Una tercera interfaz “virtual” es utilizada por el servicio de heartbeat y es la que será utilizada por las computadoras en la LAN.

A continuación se muestra lo que se utiliza:

filer01

  • Interfaz LAN (eth0) 192.168.1.18
  • Interfaz de replicación (eth1) 10.188.188.1

filer02

  • Interfaz LAN (eth0) 192.168.1.19
  • Interfaz de replicación (eth1) 10.188.188.2

Dirección HA NAS/SAN (eth0) 192.168.1.17

  • Esto se configura en el archivo cluster.xml (no intente configurarlo en ningún otro lugar)

Configuración del Nombre de Host

Para que ambos nodos puedan reconocerse entre sí por nombre, configure el archivo de hosts en cada computadora.
Modifique nuestro /etc/hosts (en filer01):

# No elimine la siguiente línea, o varios programas
# que requieren funcionalidad de red fallarán.
127.0.0.1 filer01 localhost.localdomain localhost
10.188.188.2 filer02

Modifique nuestro /etc/hosts (en filer02):

# No elimine la siguiente línea, o varios programas
# que requieren funcionalidad de red fallarán.
127.0.0.1 filer02 localhost.localdomain localhost
10.188.188.1 filer01

Claves Compartidas SSH

Para permitir que los dos dispositivos Openfiler se comuniquen entre sí sin tener que usar una contraseña, utilice claves compartidas SSH.

En filer01:

  root@filer01 ~# ssh-keygen -t dsa

Presione enter en los mensajes (no establezca una contraseña en la clave).

En filer02:

  root@filer02 ~# ssh-keygen -t dsa

Presione enter en los mensajes (no establezca una contraseña en la clave).

El comando anterior generará un archivo llamado “id_dsa.pub” en ~/.ssh/, que es la clave pública que deberá copiarse al otro nodo:

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 es lo que mantendrá los datos entre los dos nodos consistentes.

En filer01:

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

Luego modifique drbd.conf (versión 8) según lo siguiente:

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 hosts necesitan el mismo drbd.conf, así que el archivo drbd.conf de filer01 se copiará a filer02:

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

Inicialice los metadatos en /dev/drbd0 (cluster_metadata) y /dev/drbd1 (vg0drbd) en ambos nodos:

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: si los comandos anteriores generan errores sobre la necesidad de poner a cero el sistema de archivos, use el siguiente comando:

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

Tenga cuidado con este comando y asegúrese de que esté en el disco correcto.

Antes de iniciar el servicio DRBD, asegúrese de que la partición utilizada para drbd0 (en el recurso cluster_metadata en el archivo drbd.conf) no esté ya montada (que lo estará por defecto si se creó durante la instalación).

  root@filer01 ~# umount /dev/sda3

Ahora, inicie DRBD en ambos hosts:

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

Si todo va bien, deberían conectarse y ejecutar “service drbd status” debería presentar una salida similar a la siguiente:

  root@filer1 /# service drbd status

drbd driver loaded OK; device status:
version: 8.0.12 (api:86/proto:86)
GIT-hash: 5c9f89594553e32adb87d9638dce591782f947e3 build by phil@mescal, 2008-04-24 13:29:44
m:res cs st ds p mounted fstype
0:cluster_metadata Connected Secondary/Secondary Inconsistent/Inconsistent C
1:vg0drbd Connected Secondary/Secondary Inconsistent/Inconsistent C

Una vez que ambos recursos drbd estén conectados y ambos nodos estén en estado Secundario (como arriba), establezca un nodo Primario:

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

Esto debería darle un resultado de estado similar a lo siguiente:

  root@filer1 /# service drbd status

drbd driver loaded OK; device status:
version: 8.0.12 (api:86/proto:86)
GIT-hash: 5c9f89594553e32adb87d9638dce591782f947e3 build by phil@mescal, 2008-04-24 13:29:44
m:res cs st ds p mounted fstype
… sync’ed: 17.9% (247232/297152)K
0:cluster_metadata SyncSource? Primary/Secondary UpToDate/Inconsistent C
1:vg0drbd PausedSyncS? Primary/Secondary UpToDate/Inconsistent C

Nota: si el LVM vg0drbd es grande, tomará mucho tiempo sincronizar (quizás toda la noche).

Habilite DRBD para que se inicie al arrancar:

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

Ahora cree el sistema de archivos cluster_metadata. Use esta partición de 512 MB para mantener todos los datos de configuración de Openfiler y los datos para los servicios que deberían estar disponibles en HA (por ejemplo, NFS, iSCSI, SMB).

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

No agregue esta partición a un /etc/fstab, ya que esto es gestionado por Heartbeat (y se configurará en breve).

Share: X/Twitter LinkedIn

Recibe nuevas publicaciones en tu bandeja de entrada.

No spam. Cancela la suscripción en cualquier momento.