Buscar en este blog

21.2.11

OCFS2 sobre DRBD (Debian 6)

Amplicación al post anterior:http://yoseman.blogspot.com/2011/02/drbd-replicacion-de-discos-via-red-en.html

Se dispone de una infraestructura DRBD operativa funcionando con ext3. Ya que este filesystem no soporta acceso concurrente, se desea sustituir por OCFS2 para permitir el montaje en varios nodos a la vez.

Suponiendo:
Un recurso DRBD con dos nodos, nodo01 y nodo02.
Dispositivo DRBD en ambos nodos: /dev/drbd0


Procedimiento:

Desmontar el dispositivo DRBD en el nodo que pudiera estar montado:
nodo0X> umount /mnt/mountpoint
Instalar herramientas OCFS2 (ambos nodos):

nodo0X> apt-get install ocfs2-tools ocfs2console
Cargar módulos OCFS2 del kernel en ambos nodos:
nodo0X> modprobe ocfs2
Configurar el cluster OCFS2. Editar el archivo "/etc/ocfs2/cluster.conf" en ambos nodos:

#/etc/ocfs2/cluster.conf
#Primer nodo ("drbd1")
node:

             ip_port = 7777                       #Puerto para comunicarse
             ip_address = 192.168.1.21   #IP de comunicación
             number = 0                            #Número de nodo
             name = drbd1                        #Hostname del nodo
             cluster = ocfs2                       #Nombre del cluster OCFS2


#Segundo nodo ("drbd2")
node:
             ip_port = 7777
             ip_address = 192.168.1.22
             number =1
             name = drbd2
             cluster = ocfs2

#Información del cluster de nombre "ocfs2"
cluster:
             node_count = 2               #Número de nodos que accederán al cluster
             name = ocfs2                   #Nombre del cluster

Añadir al archivo de configuración de DRBD (/etc/drbd.conf) la siguiente linea para permitir varios nodos primarios en DRBD. Esto permitirá el montaje del dispositivo en varias máquinas a la vez.
net{
      [...]
      allow-two-primaries;
      [...]
}
Añadir al archivo de configuración de DRBD (/etc/drbd.conf) las siguientes lineas en el  para que el sistema maneje correctamente los Splitted Brain.
net {
      [...]
      after-sb-0pri discard-zero-changes;
      after-sb-1pri discard-secondary; 
      after-sb-2pri disconnect;
      [...]
}
Recargar DRBD para aplicar los cambios
Poner ambos nodos como "primary"
nodo01> drbdsetup /dev/drbd0 primary
nodo02> drbdsetup /dev/drbd0 primary


Crear el filesystem OCFS2 desde uno cualquiera de los nodos:
nodo01> mkfs.ocfs2 /dev/drbd0
OCFS2 forma un cluster propio entre los nodos que pueden montar el FS compartido. OCFS2 tiene dos scripts de inicio. Uno es "/etc/init.d/ocfs2" y el otro es "/etc/init.d/o2cb". Este segundo se encarga de mantener los servicios en cluster.
Se puede reconfigurar (opcionalmente) los parámetros de OCFS2 relativos a timeout y arranque automático del cluster OCFS2. Para ello, se debe ejecutar en ambos nodos:
/etc/init.d/o2cb configure 
ó
dpkg-reconfigure ocfs2-tools
Reiniciar los servicios de OCFS2 en ambos nodos:
nodo01> /etc/init.d/o2cb restart
nodo01> /etc/init.d/ocfs2 restart


nodo02> /etc/init.d/o2cb restart
nodo02> /etc/init.d/ocfs2 restart
Montar el filesystem OCFS2 en ambos nodos:
nodo01> mount /dev/drbd0 /mnt/punto_montaje
nodo02> mount /dev/drbd0 /mnt/punto_montaje
El acceso concurrente a los ficheros de DRBD es seguro en términos de consistencia de datos.