ZFS sobre iSCSI Unraid y Proxmox
Llevo más de un año ampliando mi homelab, y Proxmox se ha convertido en una pieza clave de mi infraestructura. Sin embargo, al explorar las opciones de almacenamiento compartido, me encontré con ciertas limitaciones, especialmente en lo referente a instantáneas en máquinas virtuales. Después de investigar, descubrí que ZFS sobre iSCSI es la mejor solución para superar estas barreras.
Aquí es donde Unraid se vuelve primordial en mi configuración. Gracias al plugin iSCSI Target, puedo crear volúmenes ZFS y aprovechar las ventajas de este sistema. Además, Unraid destaca por su capacidad para mezclar discos de diferentes tamaños en un solo array, algo que no es posible con un NAS convencional. Esta flexibilidad de almacenamiento es una de las razones principales por las que opté por Unraid, ya que me permite gestionar el espacio de manera eficiente y adaptable, sin comprometer el rendimiento ni la capacidad de expansión.
Lo primero es tener un pool ZFS en Unraid, entiendo que llegados a este punto deberiais haber creado el pool seleccionando el formato del disco cuando creais un grupo de almacenamiento, deberiais ver en el propio grupo de almacenamiento algo asi.
Para los siguientes paso recomiendo usar una sesión de ssh contra Unraid en vez de usar la interfaz grafica, también doy por hecho que en la seccion de Plugins teneis ya instalado el iSCSI Targel en vuestro Unraid, de lo contrario los comandos no os van a funcionar.
Si ejecutáis en la consola un zpool status vereis la misma informacion que en la imagen superior, con el nombre de vuestro pool y el estado. Ahora ejecutaremos un targetcli y seguidamente un ls de esta manera podemos ver nuestra configuración iSCSI.
Como solo queremos crear un destino y asegurarnos de que Promox pueda acceder a el. No necesitamos ningún backstore ni nada, ya que Proxmox se encargara de todo esto.
Ahora debemos ejecutar un /iscsi create para crear el iqn.
Como vemos nos crea el iqn ahora debemos acceder a este iqn: cd /iscsi/iqn.2003-01.org.linux-iscsi.gotham.x8664:sn.7e920a343d6e/tgp1 y deshabilitar la autenticacion de este recurso con el siguiente comando set attribute authentication=0 demo_mode_write_protect=0 generate_node_acls=1 cache_dynamic_acls=1
Debería darnos un resultado así
Llegados a este punto tenemos Unraid preparado.
Antes de que podamos agregar el nuevo servidor de almacenamiento a Proxmox, necesitamos crear una clave SSH que Proxmox usará para iniciar sesión en el servidor de datos para configurar los volúmenes.
Ejecutamos estos comandos, tener en cuenta que la IP es la IP de vuestro Unraid
mkdir /etc/pve/priv/zfs
ssh-keygen -f /etc/pve/priv/zfs/192.168.20.8_id_rsa
ssh-copy-id -i /etc/pve/priv/zfs/192.168.20.8_id_rsa.pub root@192.168.20.8
ssh -i /etc/pve/priv/zfs/192.168.20.8_id_rsa root@192.168.20.8
Esto genera las claves en todos nuestros nodos de cluster, pero el ultimo comando ssh -i debéis ejecutarlo en todos los nodos activos de vuestro cluster donde vayáis a publicar el almacenamiento.
Ahora lo unico que queda es agregar a nuestro Proxmox el almacenamiento
Configuración | Qué es | Mis valores |
---|---|---|
ID | El nombre del almacenamiento en Proxmox | nombrequequerais |
Portal | La IP o nombre de host del servidor iSCSI | 192.168.20.8 |
Conjunto | El nombre del grupo ZFS en el servidor | cache |
Tamaño del bloque | Tamaño de bloque iSCSI | 4k |
Destino | El «objetivo» generado por targetcli | iqn.2003-01.org.linux-iscsi.gotham.x8664:sn.7e920a343d6e |
Nodos | Puede limitar este proveedor de almacenamiento a solo algunos de sus nodos si lo desea. | harley, jocker |
Proveedor iSCSI | Debe configurarse en «LIO» (Linux IO) si se utiliza «targetcli» | LIO |
Aprovisionamiento fino | Las máquinas virtuales ocuparán solo el espacio que realmente utilicen. | Desactivado |
Grupo de portales de destino | El grupo generado por el comando «crear». Normalmente será tpg1, verifica con targetcli lssi si no estás seguro | tpg1 |
Después de hacer esto deberías ver ya disponible el almacenamiento en tus nodos soportando las instantáneas en las VM, recordar que los LXC no están soportados en este almacenamiento.