Skip to main content

Cluster OCFS2

Cluster OCFS2

Creación de un cluster con OCFS2, esta configuración es ideal cuando contamos con un sólo dispositivo de almacenamiento (por ejemplo una cabina) y queremos compartir los archivos entre dos o más servidores

Requisitos previos:

Dos o más servidores con sistema operativo Debian

Una vez instalados los servidores, comprobamos que existe conectividad entre ellos y procedemos a instalar los paquetes necesarios:

ntp, ocfs2-tools, y si es necesario open-iscsi.

Fichero hosts

Editaremos el fichero de hosts (/etc/hosts) para que todos los servidores sean visibles a nivel de nombre

127.0.0.1       localhost
192.168.2.85  cluster001.ateinco.net        cluster001
192.168.2.86  cluster002.ateinco.net        cluster002
192.168.2.87  cluster003.ateinco.net        cluster003
192.168.2.88  cluster004.ateinco.net        cluster004

# The following lines are desirable for IPv6 capable hosts
::1     localhost ip6-localhost ip6-loopback
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters

Instalamos los paquetes necesarios

apt-get install ntp
apt-get install open-iscsi
apt-get install ocfs2-tools

Configuración del cluster

Procedemos con la configuración del cluster. Ejecutaremos los siguientes comandos en uno de los nodos

o2cb add-cluster archivos
o2cb add-node archivos cluster001 cluster002 cluster003 cluster004

Esto nos generará un fichero de configuración como el que aparece en el ejemplo en la carpeta /etc/ocfs2/cluster.conf

cluster:
        heartbeat_mode = local
        node_count = 5
        name = archivos

node:
        number = 0
        cluster = archivos
        ip_port = 7777
        ip_address = 192.168.2.85
        name = cluster001

node:
        number = 1
        cluster = archivos
        ip_port = 7777
        ip_address = 192.168.2.86
        name = cluster002

node:
        number = 2
        cluster = archivos
        ip_port = 7777
        ip_address = 192.168.2.87
        name = cluster003

node:
        number = 3
        cluster = archivos
        ip_port = 7777
        ip_address = 192.168.2.88
        name = cluster004

Copiaremos este fichero en el resto de los nodos, si queremos generar un heartbeat para el servicio del disco, ejecutaremos

o2cb add-heartbeat archivos /dev/sda1

Con lo cual el fichero de configuración ahora reflejará el heartbeart, repetiremos esto para cada uno de los discos.

cluster:
        heartbeat_mode = local
        node_count = 5
        name = archivos

node:
        number = 0
        cluster = archivos
        ip_port = 7777
        ip_address = 192.168.2.85
        name = cluster001

node:
        number = 1
        cluster = archivos
        ip_port = 7777
        ip_address = 192.168.2.86
        name = cluster002

node:
        number = 2
        cluster = archivos
        ip_port = 7777
        ip_address = 192.168.2.87
        name = cluster003

node:
        number = 3
        cluster = archivos
        ip_port = 7777
        ip_address = 192.168.2.88
        name = cluster004

heartbeat:
        cluster = archivos
        region = 7C128C1702BC41FB84E2004C2931DBBB

Ahora prepararemos los equipos una vez copiado el archivo de configuración del cluster en el resto de nodos

Ejecutamos la configuración de los parámetros del cluster

dpkg-reconfigure ocfs2-tools

Aparecerá una pantalla que nos pregunta si queremos iniciar OCFS2 en el arranque, respondemos que sí

Ahora nos pedirá el nombre del cluster, en nuestro caso archivos

Y los demás parámetros por defecto

Habilitar el sevicio OCFS2

Habilitamos el servicio y lo reiniciamos

systemctl enable o2cb
service o2cb restart

Por último comprobamos que el servicio está iniciado

/etc/init.d/o2cb status
● o2cb.service - Load o2cb Modules
   Loaded: loaded (/lib/systemd/system/o2cb.service; enabled; vendor preset: enabled)
   Active: active (exited) since Fri 2019-09-13 13:20:59 CEST; 35min ago
     Docs: man:o2cb(7)
           man:o2cb.sysconfig(5)
  Process: 358 ExecStart=/usr/lib/ocfs2-tools/o2cb start (code=exited, status=0/SUCCESS)
 Main PID: 358 (code=exited, status=0/SUCCESS)
    Tasks: 1 (limit: 1149)
   Memory: 4.7M
   CGroup: /system.slice/o2cb.service
           └─494 o2hbmonitor

sep 13 13:20:58 cluster001 systemd[1]: Starting Load o2cb Modules...
sep 13 13:20:59 cluster001 o2cb[358]: checking debugfs...
sep 13 13:20:59 cluster001 o2cb[358]: Loading stack plugin "o2cb": OK
sep 13 13:20:59 cluster001 o2cb[358]: Loading filesystem "ocfs2_dlmfs": OK
sep 13 13:20:59 cluster001 o2cb[358]: Mounting ocfs2_dlmfs filesystem at /dlm: OK
sep 13 13:20:59 cluster001 o2cb[358]: Setting cluster stack "o2cb": OK
sep 13 13:20:59 cluster001 o2cb[358]: Registering O2CB cluster "correo": OK
sep 13 13:20:59 cluster001 o2cb[358]: Setting O2CB cluster timeouts : OK
sep 13 13:20:59 cluster001 o2hbmonitor[494]: Starting
sep 13 13:20:59 cluster001 systemd[1]: Started Load o2cb Modules.