1

Agregar almacenamiento iSCSI multipath al Clúster Proxmox VE 9.1.2 configuración avanzada

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 😉

Jose Ramon Ramos Gata

Técnico Superior STI

Un comentario

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.