Hola a tod@s,
En este post vamos a ver cómo agregar almacenamiento iSCSI multipath al clúster Proxmox VE 9.0 con configuraciones más avanzadas y mejor preparadas para trabajar en clúster, esto nos va a permitir:
- Definir parámetros avanzados, como round-robin, no_path_retry, rr_min_io…
- Asignar alias legibles a nuestras LUNs.
- Evitaremos que multipath intente agrupar discos locales con la opción de blacklists.
- Aseguraremos un comportamiento idéntico en todos los nodos de nuestro clúster.
Recordamos la topología:
- Para empezar, vamos a instalar en cada nodo los paquetes para el iniciador iSCSI y DM-Multipath, para ello, ejecutamos, apt install -y open-iscsi y apt install -y multipath-tools:
- Habilitamos e iniciamos los servicios para iscsid, ejecutamos, systemctl enable –now iscsid.service y systemctl enable –now open-iscsi.service:
- Habilitamos e iniciamos los servicios para multipathd, ejecutamos, systemctl enable –now multipathd.service:
- Comprobamos el estado de ambos servicios con systemctl status iscsid.service y systemctl status multipathd.service:
- Ahora vamos a ajustar conf, Proxmox recomienda reducir node.session.timeo.replacement_timeout = 15 para iSCSI, por defecto en 120s, lo pasamos a 15s, y para que la sesión sea persistente al arranque modificamos node.startup = automatic, para ello, editamos nano /etc/iscsi/iscsid.conf, esta modificación ayuda a que los timeouts de sesión sean más ágiles y evita esperas largas cuando tenemos fallos:
- Reiniciamos el servicio iscsid, systemctl restart iscsid.service y systemctl restart open-iscsi.service:
- Ahora vamos a descubrir los targets (IQNs) que nos ofrece nuestra cabina en cada IP/portal, esto no cambia ficheros manualmente, sino que guarda la información de esos targets en el directorio /etc/iscsi/nodes/ automáticamente, iscsiadm -m discovery -t st -p 10.10.2.4 y iscsiadm -m discovery -t st -p 10.10.3.4:
- Hacemos login en ambos portales, iscsiadm -m node -T iqn.1991-05.com.microsoft:saniscsipve-iscsitarget1saniscsipve-target -p 10.10.2.4 -l y iscsiadm -m node -T iqn.1991-05.com.microsoft:saniscsipve-iscsitarget1saniscsipve-target -p 10.10.3.4 -l, con esto conectamos los nodos pve a la cabina a través de las dos redes iSCSI:
- Para que el login sea persistente y se reconecte en cada reinicio, debemos de ejecutar, iscsiadm -m node -T iqn.1991-05.com.microsoft:saniscsipve-iscsitarget1saniscsipve-target -p 10.10.2.4 -o update -n node.startup -v automatic y iscsiadm -m node -T iqn.1991-05.com.microsoft:saniscsipve-iscsitarget1saniscsipve-target -p 10.10.3.4 -o update -n node.startup -v automatic:
- Comprobamos que ambos caminos están activos con, iscsiadm -m session -P3:
- Si accedemos a nuestra cabina SAN iSCSI, podemos ver, que ya tenemos los discos, en este caso, las LUNs conectadas:
- Ejecutamos en cada nodo, ls -l /dev/disk/by-path | grep 10.10 y como vemos la LUN0 tiene dos caminos, por 10.10.2.4 que aparece como /sdf y por 10.10.3.4 que aparece como /sdh, la LUN1 tiene dos caminos, por 10.10.2.4 que aparece como /sdg y por 10.10.3.4 que aparece como /sdi:
- Ahora, Multipath se basa en el WWID único de cada LUN, para obtenerlo ejecutamos:
- Para LUN0, /lib/udev/scsi_id -g -u -d /dev/sdf y /lib/udev/scsi_id -g -u -d /dev/sdh, ambos deben devolver el mismo WWID:
- Para LUN1, /lib/udev/scsi_id -g -u -d /dev/sdg y /lib/udev/scsi_id -g -u -d /dev/sdi, ambos deben devolver el mismo WWID:
- Añadimos el WWID de cada LUN para que multipath lo gestione.
- Para LUN0, multipath -a 360003ff44dc75adcbda106c1b22f4b5b
- Para LUN1, multipath -a 360003ff44dc75adc922dc286607e2e6f
- Recargamos multipath con multipath -r:
- Verificamos multipath con multipath -ll, esto significa que multipath creó un dispositivo /dev/dm-2 que representa a la LUN1, y dentro están los dos caminos activos (sdg y sdi), y otro dispositivo /dev/dm-1 que representa a la LUN0, y dentro están los dos caminos activos (sdf y sdh):
- Si ejecutamos ls -l /dev/mapper/ vemos lo siguiente:
- 360003ff44dc75adc922dc286607e2e6f, es el WWID de la LUN1.
- 360003ff44dc75adcbda106c1b22f4b5b, es el WWID de la LUN0.
- Ambos son enlaces simbólicos a los dispositivos multipath, /dev/dm-1 y /dev/dm-2
- control, es el dispositivo de control interno de multipath.
- Ahora vamos a crear el fichero /etc/multipath.conf en nuestros tres nodos con este contenido:
defaults {
user_friendly_names no
find_multipaths strict
path_selector «round-robin 0»
path_checker tur
rr_min_io 100
failback immediate
no_path_retry 12
}
blacklist {
devnode «^sda»
devnode «^sr0»
}
multipaths {
multipath {
wwid «360003ff44dc75adcbda106c1b22f4b5b»
alias «iscsi_saniscsipve_lun0»
}
multipath {
wwid «360003ff44dc75adc922dc286607e2e6f»
alias «iscsi_saniscsipve_lun1»
}
}
- Con este fichero configuramos:
- Round-robin activado
- Alias legibles (iscsi_saniscsipve_lun0 y iscsi_ saniscsipve _lun1)
- Parámetros ajustados para clusters (retry, failback, tur)
- Disco local sda y cdrom sr0 excluidos
- Ahora verificamos que el fichero /etc/multipath/wwids es exactamente igual en los tres nodos:
- Ahora ejecutamos estos tres comandos en los tres nodos:
- systemctl restart multipathd para recargar multipath.
- multipath -r para releer dispositivos multipath.
- multipath -ll para verificar.
- Con el comando ls -l /dev/mapper/iscsi_saniscsipve_lun* verificamos que existen los nuevos dispositivos:
- Ahora, la creación del Physical Volumen (PV) y Volume Group (VG), solo la vamos a hacer en un nodo, en este caso en el nodo 1, pvelab01.
- Para LUN0, pvcreate /dev/mapper/iscsi_saniscsipve_lun0 y vgcreate vg_iscsi0 /dev/mapper/iscsi_saniscsipve_lun0
- Para LUN1, pvcreate /dev/mapper/iscsi_saniscsipve_lun1 y vgcreate vg_iscsi1 /dev/mapper/iscsi_saniscsipve_lun1
- En los otros dos nodos ejecutamos, pvscan –cache y vgscan para que detecte el Physical Volumen (PV) y el Volume Group (VG):
- Si accedemos a todos los nodos > Discos > LVM, vemos que se han creado los Volume Group:
- Para terminar, accedemos a Centro de datos > Almacenamiento > Agregar > LVM:
- Sobre General, le indicamos el ID, Almacenamiento de base, Grupo del volumen, Contenido, Nodos, Activar, Compartido (importante activar para las migraciones en vivo), Agregar, para agregar la LUN0:
- Agregamos también la otra LUN1:
- Como podemos ver en, Centro de datos > Almacenamiento, tenemos los dos datastores añadidos:
- Aquí vemos, que los tres nodos, ya disponen del almacenamiento compartido por iSCSI y con Multipath:
Saludos y espero que os resulte de ayuda 😉

