El RAID 1 o ZFS Mirror es una de las configuraciones de almacenamiento más utilizadas en servidores Proxmox gracias a su sencillez y a la redundancia que aporta. Analizamos las principales ventajas y desventajas de usar un pool en mirror y mostramos cómo desplegar un pool con dos discos en RAID 1 (Mirror).

Ventajas e inconvenientes de usar RAID 1/Mirror en Proxmox

Si disponemos de discos suficientes en nuestro entorno de virtualización Proxmox y queremos dotar a nuestra infraestructura de alta disponibilidad en el almacenamiento, podremos desplegar un pool de discos ZFS en RAID (Mirror). En este ejemplo, disponemos de dos discos duros SATA de 1TB, por lo que formaremos un pool con estos dos discos. Algunas de las ventajas de montar un pool de discos RAID 1 (Mirror) son:

  • Redundancia y disponibilidad: almacenar los discos de las máquinas virtuales en este pool en RAID 1 significa que los datos estarán protegidos ante la falla de un disco. Si uno se daña, el servidor aún podrá operar con normalidad.
  • Rendimiento (IOPS): un mirror duplica la velocidad de lectura de las máquinas virtuales porque el sistema puede leer datos de ambos discos simultáneamente, lo que es ideal para cargas de trabajo intensivas.
  • Reemplazo de discos: en el futuro, si un disco falla, el proceso para reemplazarlo y restaurar el mirror se realiza principalmente con comandos como zpool replace.

Por supuesto, como casi todo, este despliegue en mirror tiene algunas desventajas:

  • Pérdida del 50% del espacio de almacenamiento. Para este estudio de caso, donde usaremos dos discos de 1TB, perderemos 1TB. Cada dato se escribe dos veces (una en cada disco). Esto significa que con dos discos de 1TB, solo quedará 1TB útil. El otro TB es la copia de seguridad.
  • Rendimiento de escritura limitado al de un solo disco. En un mirror, cada escritura debe confirmarse en ambos discos, pero el cuello de botella es el disco más lento. Como los datos se escriben en paralelo, la velocidad de escritura efectiva es aproximadamente la de un solo disco.
  • Para operaciones intensivas en escritura (múltiples VMs escribiendo logs, bases de datos transaccionales), el rendimiento será equivalente al de un solo disco, no al doble.
  • RAID 1 protege exclusivamente contra fallos de hardware de un disco. No protegerá contra borrado accidental de archivos (el borrado se replica instantáneamente), ni contra infección por ransomware (el cifrado se replicará), ni contra un formateo.
  • El proceso de reemplazo de disco no es automático ni inmediato.
  • Escalado complejo y costoso: para ampliar capacidad, no se puede añadir un solo disco. Se debe añadir otro mirror completo (2 discos), lo que duplica el costo de expansión.
  • No es una solución para entornos con varios nodos. El mirror RAID 1 que se configure ahora no será útil en un cluster. Si se decide migrar a hiperconvergencia Ceph, se necesitará empezar de cero con discos independientes que Ceph pueda gestionar.

Por supuesto, si se dispone de más discos, lo ideal es desplegar un RAID 10 (mirror + stripe) o un RAID-Z2, porque estas configuraciones permiten combinar la redundancia del mirror con la velocidad del stripe (en RAID 10) o tolerar la falla de hasta dos discos simultáneamente con un uso más eficiente del espacio (en RAID-Z2). Con 4 discos, un RAID 10 ofrece el doble de velocidad de lectura y escritura que un mirror simple, además de mantener la tolerancia a fallos. Con 6 o más discos, un RAID-Z2 proporciona un excelente equilibrio entre espacio usable, rendimiento y seguridad ante múltiples fallos. En entornos profesionales o con requisitos exigentes, estas alternativas superan ampliamente las limitaciones de un mirror básico de dos discos.

Crear pool ZFS en RAID 1 (Mirror) en Proxmox

En este estudio de caso disponemos de dos discos duros de 1TB de capacidad, SATA. En este tipo de despliegues lo recomendable, por rendimiento, es que los discos sean del mismo tipo, de la misma capacidad y, a ser posible, mismo modelo y fabricante.

Crearemos el pool ZFS, desde la interfaz web de Proxmox, pulsaremos en el nodo y en «Disks», revisaremos que los discos aparecen y que no están en uso (Usage = No):

Pulsaremos en «ZFS» (dentro de «Disks») y en «Create: ZFS»:

Indicaremos los siguientes datos:

  • Name: elegiremos un nombre identificativo y sin espacios. Por ejemplo, raid1-1tb.
  • RAID Level: en el desplegable, seleccionaremos la opción Mirror.
  • Devices: seleccionaremos los dos discos duros limpios de 1TB que usaremos para el RAID.
  • Ashift: dejaremos el valor por defecto, 12.
  • Compression: seleccionaremos lz4, que suele ser una buena opción, ya que ahorra espacio sin penalizar el rendimiento, incluso para discos rotacionales.
  • Add Storage: dejaremos marcada esta casilla. Esto hará que Proxmox configure automáticamente el pool como un almacenamiento utilizable.

Pulsaremos en «Create»:

En unos segundos, el pool ZFS RAID 1 (Mirror) habrá quedado creado y disponible para las máquinas virtuales:

Como hemos marcado «Add Storage», el almacenamiento quedará disponible para las máquinas virtuales. Podemos comprobar que aparece como almacenamiento en «Datacenter» – «Storage»:

Y si agregamos una nueva máquina virtual en Proxmox, debe aparecer en el desplegable de Storage: