Intro

En nuestro cluster hemos decidido incluir dos discos SSD para contener las imágenes de los discos duros de las máquinas virtuales.

En estos discos no vamos a emplear lvm. Emplearemos la siguiente estrategia:

Crear la partición a compartir en los discos SSD

Crear el módulo ssd en drbd

Formatear la partición como GFS2

Incluir el módulo como recurso del cluster

 

Crear la partición a compartir en los discos SSD

Para ver que device le ha asignado el sistema (lo normal es que le haya asignado /dev/sdb) hacemos parted -l, de donde extraemos la siguiente información:

 

De aquí se desprende que le ha asignado el device /dev/sdb

Creamos la partición:

# parted -a optimal /dev/sdb

De la salida anterior de parted -l vemos que el disco no tiene tabla de particiones, así que lo primero que haremos será crearle una. Como no vamos a arrancar desde él, decidimos crearle una tabla de particiones gpt, aunque no supera los 2TB ni por asomo:

(parted) mklabel gpt

Si ahora hacemos un print free:

(parted) print free
Model: ATA Crucial_CT250MX2 (scsi)
Disk /dev/sdb: 250GB
Sector size (logical/physical): 512B/4096B
Partition Table: gpt
Disk Flags:

Numero  Inicio  Fin    Tamaño  Sistema de ficheros  Nombre  Banderas
17,4kB  250GB  250GB   Free Space

 

Vemos que ya reconoce la tabla de particiones, con lo que podemos crear nuestra prartición:

(parted) mkpart primary 1GB 250GB

Para verla:

(parted) print
Model: ATA Crucial_CT250MX2 (scsi)
Disk /dev/sdb: 250GB
Sector size (logical/physical): 512B/4096B
Partition Table: gpt
Disk Flags:

Numero  Inicio  Fin    Tamaño  Sistema de ficheros  Nombre   Banderas
1      1000MB  250GB  249GB                        primary

Sospecho que en los discos SSD no será necesario alinear las particiones, pero por si acaso:

(parted) align-check opt 1
1 aligned

Hacemos lo mismo en el otro nodo.

 

Añadir el módulo a drbd

Crear el archivo de configuración del nuevo módulo

El nuevo módulo se llamará ssd. Para crearlo copiaremos en el directorio /etc/drbd.d el archivo discodatos.res a discossd.res y lo editaremos para que quede como sigue:

Hemos de cambiar el puerto por el que se comunicarán los discos de este módulo respecto de los que había en el módulo datos, de otro modo, el sistema se quejará.

Checkeamos la configuración con drbdadm dump.

 

Inicializar el módulo

Para inicializar el módulo hemos de hacer lo siguiente en ambos nodos:

# drbdadm create-md ssd

Luego, también en ambos nodos, hemos de levantar el módulo:

# drbdadm up ssd

La salida de drbd-overview:

1:ssd/0    Connected Secondary/Secondary Inconsistent/Inconsistent C r—–

 

Marcar un nodo como primario

Para marcar uno de los nodos como primario, debemos de hacer:

# drbdadm primary –force ssd

De este modo en el nodo en el que se ejecuta se marca el módulo como primario y se comienza a replicar en el otro nodo.

 

Configurar los recursos

 

Configurar las restricciones

# pcs cluster cib cons
# pcs -f cons constraint order start dlm-clone then promote drbd_ssd-clone
Adding dlm-clone drbd_ssd-clone (kind: Mandatory) (Options: first-action=start then-action=promote)

De este  modo evitamos que se ponga como master el drbd_ssd antes de que arranque dlm

# pcs -f cons constraint order start clvmd-clone then start ssdFS-clone kind=Serialize
Adding clvmd-clone ssdFS-clone (kind: Serialize) (Options: first-action=start then-action=start)
# pcs -f cons constraint colocation add master drbd_ssd-clone with dlm-clone
# pcs -f cons constraint colocation add ssdFS-clone clvmd-clone

Así evitamos que trate de montar el sistema de ficheros ssd antes de tener el directorio /dev/vg_ssd

# pcs cluster cib-push cons