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/mountpointInstalar herramientas OCFS2 (ambos nodos):
Cargar módulos OCFS2 del kernel en ambos nodos:nodo0X> apt-get install ocfs2-tools ocfs2console
nodo0X> modprobe ocfs2Configurar 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{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.
[...]
allow-two-primaries;
[...]
}
net {
[...]
after-sb-0pri discard-zero-changes;
after-sb-1pri discard-secondary;
after-sb-2pri disconnect;
[...]
}
Recargar DRBD para aplicar los cambiosPoner 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/drbd0OCFS2 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 configureReiniciar los servicios de OCFS2 en ambos nodos:
ó
dpkg-reconfigure ocfs2-tools
nodo01> /etc/init.d/o2cb restartMontar el filesystem OCFS2 en ambos nodos:
nodo01> /etc/init.d/ocfs2 restart
nodo02> /etc/init.d/o2cb restart
nodo02> /etc/init.d/ocfs2 restart
nodo01> mount /dev/drbd0 /mnt/punto_montajeEl acceso concurrente a los ficheros de DRBD es seguro en términos de consistencia de datos.
nodo02> mount /dev/drbd0 /mnt/punto_montaje