Conectar servidor de virtualización Proxmox a una cabina de almacenamiento SAN mediante fibra (FC Fibre Channel). Instalar adaptador HBA de fibra en servidor, conectar con la cabina, crear host y LUN en cabina y crear volumen LVM en Proxmox, para agregar almacenamiento y poder ser usado por las máquinas virtuales.
- Instalar adaptador HBA de FC en servidor PROXMOX y conectar con cabina de almacenamiento SAN.
- Crear host y LUN en cabina de almacenamiento SAN.
- Acceso a la LUN de la SAN FC desde nodo Proxmox.
- Crear volúmenes y almacenamiento LVM sobre LUN FC en Proxmox.
- Crear una máquina virtual sobre almacenamiento LVM sobre FC.
Instalar adaptador HBA de FC en servidor PROXMOX y conectar con cabina de almacenamiento SAN
Instalaremos el adaptador HBA FC en el servidor Proxmox. En el caso de este tutorial usaremos un adaptador dual, que incorpora doble puerto de fibra. Lo recomendable es que cada servidor de Proxmox incorpore dos adaptadores de fibra independientes.

Si la cabina permite conexión directa y si no disponemos de switch de fibra, cablearemos cada adaptador HBA de cada servidor Proxmox con los puertos de la cabina SAN de almacenamiento correspondientes.
Si disponemos de un switch de fibra intermediario, tendremos que cablear estos adaptadores HBA de los servidores Proxmox al switch. El switch lo tendremos debidamente cableado a la cabina de almacenamiento. En este caso, deberemos crear las zonas correspondientes para dar acceso a cada servidor Proxmox en el switch de fibra, como indicamos en este tutorial:
Lo recomendable es que cada puerto de cada HBA vaya a una controladora diferente de la cabina, para conseguir HA y tolerancia a fallos. De forma que, tanto si cae una controladora de la cabina de almacenamiento como si cae un adaptador de fibra de un servidor Proxmox, la disponibilidad del servicio no se verá afectada porque seguirá habiendo conectividad por el otro adaptador de fibra o por la otra controladora de la cabina.
Crear host y LUN en cabina de almacenamiento SAN
Si disponemos de adaptador HBA dual (con doble puerto) o bien doble adaptador HBA, nos deben aparecer dos WWN (Word Wide Name) en la cabina de almacenamiento, en la sección de «Initiators». Si disponemos sólo de uno, nos aparecerá únicamente este iniciador. En este caso, no habría opción de multipath ni de HA a nivel de conectividad SAN (no es lo recomendable). Lo recomendable, siempre que sea posible, es que cada nodo de Proxmox tenga doble adaptador dual con conexión a cada puerto de cada controladora de la cabina (que debe tener dos controladoras en HA). De esta forma, tanto si cae una controladora de la SAN como si cae un adaptador HBA del servidor, siempre tendremos redundancia y tolerancia a fallos por el otro adaptador o por la otra controladora de la SAN (como hemos indicado en el punto anterior):

Agregaremos un nuevo Host en la cabina de almacenamiento, desde la sección «Hosts»:

Introduciremos los datos del host (servidor con Proxmox): un nombre para identificarlo, sistema operativo Linux y la dirección IP):

En «Initiators» del host, seleccionaremos los iniciadores anteriormente mencionados. Si el servidor Proxmox tiene dos «cables» de fibra conectados a la cabina, nos mostrará dos iniciadores. Los seleccionaremos:

Finalizaremos el alta del host revisando los datos introducidos:

Repetiremos este proceso por cada nodo del clúster Proxmox de que dispongamos y queramos agregar al almacenamiento.

Añadiremos una LUN en la cabina de almacenamiento. Para ello, desde la sección «Block», pulsaremos en añadir una nueva LUN:

Introduciremos los datos de la LUN: el número de LUN, el nombre, el tamaño, Thin, Data Reduction, etc.):

Estableceremos los permisos de acceso a esta LUN para los hosts de Proxmox agregados anteriormente. Pulsaremos en el botón de agregar nuevo hosts de acceso:

Seleccionaremos todos los hosts de Proxmox que queramos que «vean» esta LUN:

La LUN se creará y se le asignarán los hosts de acceso elegidos:

Quedará disponible y visible para todos los host Proxmox agregados.

Acceso a la LUN de la SAN FC desde nodo Proxmox
Necesitaremos algunas herramientas en el servidor Proxmox, que instalaremos desde su consola, o bien desde la ventana de consola web o bien accediendo por SSH con algún cliente como PuTTY:

Instalaremos (puede que ya vengan instaladas) las herramientas scsitools, en cada nodo del clúster Proxmox, con los comandos:
1 2 |
apt-get update apt-get install scsitools |

Nos aseguraremos de tener instalados los paquetes lvm2 y multipath-tools (en cada nodo del clúster Proxmox). Los podremos instalar con el comando:
1 |
apt-get install lvm2 multipath-tools |

Instalaremos el paquete multipath-tools-boot, con:
1 |
apt install multipath-tools-boot |
En primer lugar, lo conveniente es reiniciar los servidores con PROXMOX. Si no es posible reiniciarlo, intentaremos reescanear las unidades FC, abriendo una ventana de consola y ejecutando el comando (en cada nodo):
1 |
rescan-scsi-bus.sh |
Nos devolverá las unidades agregadas. En este caso, puesto que ya habíamos reiniciado el servidor, no nos agregará unidades nuevas:

Si tenemos posibilidad de reiniciar el servidor Proxmox para que «vea» la LUN asignada en la cabina, si tenemos máquinas virtuales, antes de reiniciarlo, las apagaremos de forma controlada. Si disponemos de un clúster con varios nodos, reubicaremos las máquinas en otro nodo. Desde la consola web de gestión podremos reiniciarlo pulsando en «Reiniciar»:

Desde la línea de comandos de cada nodo Proxmox comprobaremos detecta correctamente el adaptador de fibra HBA. Para ello, ejecutaremos el comando:
1 |
lspci | grep -i fibre |
Nos devolverá el adaptador de fibra instalado en el equipo:

Una vez reiniciados los nodos (o reescaneadas las unidades) y comprobado el adaptador, revisaremos que ha detectado la LUN, o bien desde el modo gráfico, en «Discos»:

Anotando la ruta del dispositivo asignada, en este caso /dev/sdb.
O bien por comando, abriendo una ventana de consola y ejecutando el comando:
1 |
lsblk |

Revisaremos que hay conectividad del servidor Proxmox con la cabina de almacenamiento SAN, ejecutando el siguiente comando, que nos devolverá los WWW de cada puerto de la HBA de cada nodo del clúster:
1 |
cat /sys/class/fc_host/host*/port_name |

Agregaremos el multipath de cada puerto del adaptador HBA (si es dual tendrá dos). Esto permitirá que el servidor Proxmox elija un camino u otro para acceder a la cabina de almacenamiento, tendrá efecto si dispondemos de dos puertos de conexión por fibra (como hemos indicado anteriormente). Para ello, previamente, obtendremos el WWID, ejecutando el comando:
1 |
/lib/udev/scsi_id -g -u -d /dev/sdb |
En este caso, la ruta de la LUN asignada es /dev/sdb. Nos devolverá el WWID de cada puerto conectado. Anotaremos este valor:

Para agregar el puerto al multipath, ejecutaremos este comando (pasándole el WWID obtenido anteriormente):

Nos indicará que el WWID ha sido añadido al multipath. Para aplicar los cambios ejecutaremos el comando:
1 |
multipath -r |
Repetiremos este proceso por cada puerto del adaptador HBA y por cada nodo del clúster.
Para verificar que el multipath está activo, ejecutaremos el comando:
1 |
multipath -ll |
Que nos devolverá:

Crear volúmenes y almacenamiento LVM sobre LUN FC en Proxmox
Antes de crear un storage (datastore, almacenamiento), es muy recomendable analizar el tipo de almacenamiento que asignaremos. Proxmox admite varios tipos: LVM, LVM-Thin, ZFS, Directory, Ceph, etc. En función del uso que queramos darle al almacenamiento elegiremos uno u otro. Para desplegar Proxmox en clúster con varios nodos y alta disponibilidad, lo recomendable es usar un almacenamiento compartido (que vean todos los nodos del clúster). En este caso usaremos LVM sobre FC, pero no tiene por qué ser el mejor tipo de almacenamiento ni el más adecuado para todas las circunstancias.
Antes de continuar, conviene indicar que el tipo de almacenamiento LVM sobre FC no admite creación de snapshots, aunque sí podremos crear respaldos de las máquinas virtuales en otro almacenamiento del servidor Proxmox que sí lo permita. A todos los efectos, este respaldo es igual a un snapshot.
Una vez establecidas las conexiones con la cabina de almacenamiento y habiendo conseguido la visibilidad de la LUN (como hemos indicado anteriormente), desde uno de los nodos Proxmox, crearemos los volúmenes LVM sobre la LUN. Para ello, ejecutaremos el siguiente comando (pasándole la ruta de la LUN, que hemos obtenido en el paso anterior, en este caso /dev/sdb) para inicializar el disco (la LUN):
1 |
pvcreate /dev/sdb |
Crearemos un grupo de volumen sobre el disco anterior, lo llamaremos «vg_san_disco_1», con el comando:
1 |
vgcreate vg_san_disco_1 /dev/sdb |

Por último, crearemos el datastore LVM para uso de las máquinas virtuales desde la consola web de Promox, pulsando en «Centro de datos» [1] y el «Almacenamiento» [2]. Pulsaremos en «Agregar» [3] y elegiremos «LVM» [4]:

Introduciremos los datos para el almacenamiento LVM:
- ID: nombre que identificará el almacenamiento, cuando tenemos varios, es conveniente establecer un nombre descriptivo, por ejemplo «lvm_san_disco_1».
- Almacenamiento de base: elegiremos «Grupos de volumen existente».
- Grupo del volumen: si hemos creado correctamente el grupo, nos debe aparecer en el desplegable, en este caso «vg_san_disco_1.
- Nodos: si tenemos un clúster Proxmox con varios nodos y queremos que todos vean este almacenamiento, elegiremos «Todo (Sin restricción)».
- Activar: marcaremos esta opción.
- Compartido: marcaremos esta opción si queremos que este almacenamiento esté disponible para el resto de nodos del clúster Proxmox.
Introduciremos los datos y pulsaremos «Agregar»:

Una vez creado el almacenamiento, lo tendremos disponible para uso de los nodos del clúster Proxmox.

Crear una máquina virtual sobre almacenamiento LVM sobre FC
Una vez creado el almacenamiento LVM sobre LUN de SAN en FC, como hemos indicado anteriormente, podremos usarlo para almacenar máquinas virtuales. Si queremos crear una máquina virtual que lo use, pulsaremos con el botón derecho del ratón sobre el nodo Proxmox y elegiremos «Crear VM»:

Introduciremos el nombre para la máquina virtual, por ejemplo «srproyectoa»:

Elegiremos el almacenamiento donde se encuentre el ISO para la instalación del sistema operativo, en este caso Rocky Linux 9.5:

Elegiremos el adaptador de gráficos y otros datos del sistema (dejaremos los de defecto):

En discos, muy importante, en «Almacenamiento», elegiremos el almacenamiento creado anteriormente de LVM sobre FC, en nuestro caso con el nombre «lvm_san_disco_1» y el tamaño del disco duro virtual que se asignará a la máquina (32GiB):

Elegiremos la vCPU asignada a la máquina virtual (zócalos y núcleos):

Elegiremos la memoria RAM asignada a la máquina virtual:

Por último, elegiremos el adaptador de red asignado a la máquina virtual:

Si todo es correcto, marcaremos «Iniciar después de la creación» y pulsaremos «Finalizar» para crear la máquina virtual en el almacenamiento LVM sobre Fibre Channel:

Pulsaremos en «Consola» y en «noVNC» para mostrar la consola para interactuar con el equipo virtual:

Procederemos a instalar el sistema operativo (en este caso Rocky Linux 9.5) de forma normal:

Si queremos crear un snapshot, como hemos indicado, para el almacenamiento LVM no se permiten directamente, pero podremos crear respaldos, pulsando en «Respaldar ahora» y eligiendo un almacenamiento que los permita y el modo «Snapshot»:
