Cuando montamos un servidor de virtualización de un solo nodo (Single Node) con Proxmox, ZFS es el sistema ideal para gestionar el almacenamiento. Si partimos de un escenario con 4 discos duros de 1 TB, el instalador nos ofrece varias topologías. La decisión se reduce a qué valoramos más: la velocidad bruta, la capacidad o la seguridad de nuestros datos. Indicamos en este tutorial las diferencias (ventanas/inconvenientes) de cada RAID y explicamos paso a paso cómo desplegar RAID 10.

Almacenamiento en Proxmox ¿Qué RAID elegir?

En este estudio de caso disponemos de 4 discos duros de 1TB de capacidad cada uno. Vamos a mostrar las ventajas/inconvenientes de cada tipo de RAID, según queramos dar prioridad a disponer de más capacidad o disponer de más disponibilidad (posibilidad de avería de más discos).

La comparativa para el caso de disponer de 4 discos de 1TB:

ZFSCapacidad útilTolerancia a fallosVelocidad (IOPS)
RAID 0 (Stripe)4 TB (100%)Ninguna (0 discos)Extremadamente alta
RAID 10 (Mirror)2 TB (50%)Muy alta, 1 disco por par (hasta 2 discos)Excelente
RAIDZ-1 (RAID 5)3 TB (75%)Media, 1 disco cualquieraBuena (lenta en escritura)
RAIDZ-2 (RAID 6)2 TB (50%)Muy alta, 2 discos cualesquieraRegular

Explicamos más en detalle cada RAID ZFS:

ZFS RAID 0 (Stripe)

Suma el espacio de todos los discos y reparte los datos entre ellos.

  • Ventajas: se obtiene el 100% del espacio (4 TB) y la máxima velocidad de lectura/escritura.
  • Inconvenientes: cero redundancia. Si falla un solo disco, se pierde absolutamente todo el contenido de los 4 discos. No recomendado para producción bajo ningún concepto.

ZFS RAIDZ-1 (Equivalente a RAID 5)

Usa un disco para la paridad y los otros tres para datos.

  • Ventajas: excelente equilibrio entre capacidad y seguridad. Se obtien 3 TB útiles y soporta el fallo de un disco.
  • Inconvenientes: el cálculo de paridad penaliza mucho las operaciones de escritura aleatoria (IOPS), lo cual es precisamente lo que más hacen las máquinas virtuales. Además, al reconstruir un disco dañado, los discos restantes sufren mucho estrés.

ZFS RAIDZ-2 (Equivalente a RAID 6)

Usa dos discos para paridad y dos para datos.

  • Ventajas: máxima seguridad. Pueden fallar hasta dos discos de golpe y no se pierde información.
  • Inconvenientes: solo quedan 2 TB útiles (igual que en RAID 10), pero con un rendimiento de escritura notablemente inferior debido al doble cálculo de paridad.

ZFS RAID 10 (Mirror)

Crea dos parejas de discos idénticos (espejos) y luego suma el espacio de ambas parejas.

  • Inconvenientes: sacrifica la mitad del almacenamiento, quedándo con 2 TB útiles.
  • Ventajas: el rendimiento de IOPS es muy bueno, ideal para el estrés constante de lectura y escritura de múltiples máquinas virtuales y bases de datos. No hay cálculos de paridad pesados.

Creación de un pool ZFS RAID 10 desde la interfaz de Proxmox

En este escenario, donde ya tenemos Proxmox VE instalado y ejecutándose en el servidor, vamos a utilizar nuestros 4 discos duros de 1 TB para crear un almacenamiento secundario dedicado exclusivamente a Máquinas Virtuales y Contenedores (LXC).

Para lograr el máximo rendimiento en la lectura y escritura de nuestras VM, así como para tener el máximo de disponibilidad, configuraremos estos discos en RAID 10.

Limpiar discos para RAID

Antes de empezar, nos aseguraremos de que los 4 discos estén completamente limpios y no contengan particiones previas. Si los discos fueron usados antes, se pueden limpiar desde Proxmox, desde la consola web, pulsando en «Disk», seleccionaremos el disco a limpiar y pulsaremos en «Wipe Disk» (Borrar disco). Por supuesto, aplicaremos el limpiado con MUCHA PRECAUCIÓN, dado que este proceso elimina todos los datos de los discos.

Crear pool ZFS RAID 10 en Proxmox

Tras limpiar los discos, pulsaremos en «ZFS» (dentro de «Disks») y pulsaremos en «Create: ZFS»:

Dentro de la ventana «Create: ZFS», rellenaremos los siguientes campos:

  • Name: nombre descriptivo del almacenamiento. Por ejemplo: zfs-raid10.
  • RAID Level: seleccionaremos RAID10.
  • Compression: elegiremos «on» (por defecto usa LZ4). Esto comprime los datos de las máquinas virtuales de forma transparente, ahorrando espacio y, en muchos casos, mejorando la velocidad de lectura.
  • ashift: lo dejaremos en 12 (es el valor óptimo para la gran mayoría de discos modernos de sectores de 4K).
  • Marcaremos la casilla «Add Storage«. Esto es muy importante, ya que le indica a Proxmox que, además de crear el pool de discos, lo configure automáticamente en el sistema para que pueda usarse directamente.
  • En la lista inferior de esa misma ventana aparecerán los discos disponibles. Marcaremos la casilla de verificación de los 4 discos de 1 TB que vamos a destinar a este pool.

Una vez introducidos todos los datos pulsaremos en «Create»:

Transcurridos unos segundos el pool ZFS RAID10 quedará disponible, indicando que hay 2TB de espacio disponible:

A partir de este momento, cuando creemos una nueva máquina virtual o un contenedor, en la pestaña de Disks podremos desplegar el menú de almacenamiento y seleccionar el nuevo pool en RAID 10. Las vm dispondrán de la tolerancia a fallos de ZFS y de la velocidad de un sistema espejado y segmentado.