📄 [2025-08-26] Cluster PCS LVM | Filesystem
Resumen
Este manual documenta cómo crear un recurso de tipo LVM y sistema de archivos en un clúster RH10 utilizando PCS. Se parte de la base del entorno creado en la sección de instalación.
Para la creación de un recurso LVM, es necesario crear primero un dispositivo de bloque iSCSI accesible desde ambos nodos del clúster. Este manual no profundiza en cómo crear un dispositivo de estas características.
Este documento se basa en la guía oficial de Red Hat.
1. Importar disco iSCSI
Para este laboratorio, he creado un tercer servidor que actúa como servidor de almacenamiento. Este servidor ejecuta TrueNAS, el cual exporta un dispositivo de bloque de 10 GB. Este disco será accesible desde ambos nodos. En un entorno de producción, estos recursos de almacenamiento deben estar redundados, pero en este caso lo omitiremos.
A continuación, se presentan los comandos que he utilizado para añadir el nuevo dispositivo de bloque iSCSI:
# Descubrir y listar IQNs disponibles
root@node1:~# iscsiadm -m discovery -t sendtargets -p 10.10.10.7
10.10.10.7:3260,1 iqn.2005-10.org.freenas.ctl:extent1
# Acceso y login al export
root@node1:~# iscsiadm -m node -T iqn.2005-10.org.freenas.ctl:extent1 -p 10.10.10.7 -l
Logging in to [iface: default, target: iqn.2005-10.org.freenas.ctl:extent1, portal: 10.10.10.7,3260]
Login to [iface: default, target: iqn.2005-10.org.freenas.ctl:extent1, portal: 10.10.10.7,3260] successful.
# Login automático en boot
root@node1:~# iscsiadm -m node -T iqn.2005-10.org.freenas.ctl:extent1 -p 10.10.10.7 --op update -n node.startup -v automatic
Una vez conectado al servidor, el disco debería aparecer disponible.
root@node1:~# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
sda 8:0 0 50G 0 disk
├─sda1 8:1 0 600M 0 part /boot/efi
├─sda2 8:2 0 1G 0 part /boot
└─sda3 8:3 0 48.4G 0 part
├─almalinux-root 253:0 0 43.4G 0 lvm /
└─almalinux-swap 253:1 0 5G 0 lvm [SWAP]
sdb 8:16 0 10G 0 disk
sr0 11:0 1 6.8G 0 rom
root@node2:~# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
sda 8:0 0 50G 0 disk
├─sda1 8:1 0 600M 0 part /boot/efi
├─sda2 8:2 0 1G 0 part /boot
└─sda3 8:3 0 48.4G 0 part
├─almalinux_192-root 253:0 0 43.4G 0 lvm /
└─almalinux_192-swap 253:1 0 5G 0 lvm [SWAP]
sdb 8:16 0 10G 0 disk
sr0 11:0 1 6.8G 0 rom
Aquí tienes el texto corregido y mejorado:
2. Crear LVM y sistema de archivos
En primer lugar, se debe añadir la siguiente línea de configuración en /etc/lvm/lvm.conf
.
El SystemID en LVM es un identificador que restringe el acceso a un VG a un solo host, evitando que múltiples hosts utilicen el VG simultáneamente. Esta característica es útil cuando los VGs se colocan en dispositivos de almacenamiento compartido, asegurando que solo el host con el ID del sistema coincidente pueda acceder al VG.
# Configuration option global/system_id_source.
system_id_source = "uname"
Comprobación de la configuración.
root@node1:~# lvm dumpconfig
-------
activation {
}
global {
system_id_source="uname"
}
shell {
}
------
root@node1:~# lvm systemid
system ID: node1
Crear PV, VG, LV
Los siguientes comandos se ejecutarán únicamente en un nodo, dado que el disco es el mismo para ambos nodos.
PV | VG | LV |
---|---|---|
/dev/sdb | vg01 | my_lv |
"La opción --setautoactivation n
durante la creación del VG se utiliza para evitar que el sistema active los recursos al arrancar por defecto. Enlace a la documentación."
# Crear PV
root@node1:~# pvcreate /dev/sdb
Physical volume "/dev/sdb" successfully created.
root@node1:~# pvs
PV VG Fmt Attr PSize PFree
/dev/sda3 almalinux lvm2 a-- 48.41g 0
/dev/sdb lvm2 --- 10.00g 10.00g
# Crear VG
root@node1:~# vgcreate --setautoactivation n vg01 /dev/sdb
Volume group "vg01" successfully created with system ID node1
root@node1:~# vgs -o+systemid
VG #PV #LV #SN Attr VSize VFree System ID
almalinux 1 2 0 wz--n- 48.41g 0
vg01 1 0 0 wz--n- 10.00g 0 node1
# Crear LV
root@node1:~# lvcreate -n my_lv -l 100%FREE vg01
Logical volume "my_lv" created.
Crear y montar FS
root@node1:~# mkfs.xfs /dev/vg01/my_lv
specified blocksize 4096 is less than device physical sector size 16384
switching to logical sector size 4096
meta-data=/dev/vg01/my_lv isize=512 agcount=4, agsize=639488 blks
Una vez creado el sistema de archivos, monta el sistema de archivos y añadir la web que debe estar en alta disponibilidad.
3. Crear los recursos de cluster
# Crear recurso LVM-activate
pcs resource create my_lvm ocf:heartbeat:LVM-activate vgname=vg01 vg_access_mode=system_id --group apachegroup
# Crear recurso Filesystem
pcs resource create my_fs Filesystem device="/dev/vg01/my_lv" directory="/var/www" fstype="xfs" --group apachegroup
root@node1:~# lsblk
--------
sdb 8:16 0 9.8G 0 disk
└─vg01-my_lv 253:2 0 9.8G 0 lvm /var/www
--------
root@node1:~# pcs resource status
* Resource Group: apachegroup:
* VirtualIP (ocf:heartbeat:IPaddr2): Started node1
* my_lvm (ocf:heartbeat:LVM-activate): Started node1
* my_fs (ocf:heartbeat:Filesystem): Started node1
* Clone Set: Website-clone [Website]:
* Started: [ node1 node2 ]
Si accedemos a la web desde la VIP, deberíamos ver la web activa. Para comprobar que el balanceo funciona correctamente, ejecutar pcs node unstandby node1
.