Saltar al contenido principal

Almacenamiento ZFS

Special gracias

Nos gustaría expresar nuestro agradecimiento a Ed Rawlings (Spaceinvader One) por la experiencia y la guía de la que esta documentación de almacenamiento de ZFS ha sido adaptada. Sus tutoriales y perspectivas han asistido a innumerables usuarios de Unraid en dominar técnicas avanzadas de almacenamiento. Apreciamos sus continuas contribuciones a la comunidad de Unraid.

ZFS trae integridad de datos avanzada, configuraciones de almacenamiento flexibles y alto rendimiento a su sistema Unraid. Esta guía explica los conceptos básicos de ZFS y lo guía a través de la administración de pools de ZFS directamente desde el WebGUI de Unraid. Ya sea configurando nuevo almacenamiento ZFS o integrando un pool existente, encontrará los pasos y el contexto que necesita para comenzar con confianza.


¿Por qué ZFS?

ZFS es un sistema de archivos moderno y un administrador de volúmenes diseñado para proteger sus datos, prevenir la corrupción y simplificar la gestión de almacenamiento.

Con ZFS, obtienes:

  • Verificaciones automáticas de integridad de datos y autoreparación
  • Soporte integrado para RAID (espejos, RAIDZ)
  • Snapshots y clones para copias de seguridad y restablecimientos fáciles
  • ZFS envía/recibe para una replicación eficiente
  • Compresión en tiempo real

Unraid supports ZFS for any storage pool. You can create a new ZFS pool, import one from another system, or use Unraid’s unique hybrid ZFS setup: add a ZFS-formatted disk directly to the Unraid array (not a pool) and combine ZFS features with Unraid’s parity protection.

Example

Puede usar snapshots de ZFS y replicación en un solo disco como un objetivo de copia de seguridad, o replicar un pool rápido ZFS SSD a un disco ZFS en la array protegido por la parity de Unraid, obteniendo lo mejor de ambos mundos.

nota

The hybrid ZFS-in-array approach is helpful for specific backup or replication scenarios but is not a replacement for a full ZFS pool. ZFS disks in the array are managed individually; you do not get the combined performance, redundancy, or self-healing of a true multi-disk ZFS pool. For full ZFS functionality, always use dedicated ZFS pools.

Pools, vdevs y redundancia

Un pool de ZFS (denominado "zpool") está compuesto por uno o más vdevs (dispositivos virtuales). Cada vdev es un grupo de discos físicos con su propio nivel de redundancia. ZFS escribe datos a través de los vdevs, pero cada vdev es responsable de su tolerancia a fallos.

precaución

La redundancia siempre es por vdev. Si falla algún vdev, todo el pool falla, incluso si otros vdevs están en buen estado. ¡Planee sus vdevs con cuidado!


Creación de un grupo ZFS

Para crear un grupo ZFS usando el WebGUI:

  1. Detenga el array.
  2. Haga clic en Agregar Grupo.

  1. Elija un nombre para su grupo (por ejemplo, raptor).
  2. Configure el número de ranuras para coincidir con el número de discos que desea en sus vdev(s) de datos primarios.
nota

Este conteo inicial de ranuras es solo para vdevs de datos. Los vdevs de soporte (como unidades de registro o caché) se pueden agregar por separado después de crear el pool.

  1. Asigne discos al grupo (el orden de los discos no importa).

  1. Haga clic en el nombre del grupo (por ejemplo, raptor) para abrir su pantalla de configuración.
  2. Establezca el tipo de sistema de archivos a zfs o zfs-encrypted (para cifrado LUKS).

  1. Elija su perfil de asignación: esto determina la redundancia y el rendimiento de su grupo.
consejo

Antes de finalizar, revise las secciones sobre perfiles de asignación y topología para tomar una decisión informada.

  1. Habilite la compresión si lo desea (recomendado para la mayoría de las cargas de trabajo).
  2. Haga clic en Hecho, luego inicie el array.

Agregar un disco ZFS al array (Configuración híbrida)

Puede agregar un disco ZFS independiente a su array de Unraid (no un grupo ZFS) para combinar características de ZFS con la protección de paridad de Unraid.

What esto permite
  • Protección de paridad: El disco ZFS está protegido por la parity de la array de Unraid, asegurando que sus datos estén seguros contra fallos de disco simples (o múltiples, dependiendo de sus parity drives).

  • Integridad de datos: ZFS proporciona verificaciones de integridad a nivel de bloque (checksums). Si bien un solo disco no puede autocurarse de bit rot, ZFS detectará corrupción y le alertará, permitiéndole restaurar desde una copia de seguridad antes de que ocurra la pérdida de datos silenciosa.

  • Características de ZFS: Puede utilizar snapshots y replicación de ZFS en este disco, lo que lo hace ideal para objetivos de respaldo, conjuntos de datos específicos o escenarios donde desea características de ZFS junto con el almacenamiento tradicional de Unraid.

Para añadir un disco ZFS al array:

  1. Vaya a la pestaña Principal en el WebGUI.
  2. Detenga el array.
  3. Haga clic en una ranura vacía bajo Dispositivos del Array.
  4. Seleccione el disco que desea agregar.

  1. Bajo Sistema de archivos, elija zfs o zfs-encrypted.

  1. Haga clic en Aplicar.
  2. Inicie el array y permita que el disco sea formateado si es necesario.

Elegir un perfil de asignación

Cuando configura un pool de ZFS, su perfil de asignación determina cómo se protege su datos, cómo funciona su pool, y cómo puede expandirlo. Aquí hay una comparación simple para ayudarle a decidir qué perfil se adapta a sus necesidades:

PerfilRedundanciaRendimientoExpansiónEficiencia EspacialCaso de uso típico
RayaNingunoRápido, pero arriesgadoAgregar más discos100%Almacenamiento temporal/de borrador
Espejo1:1 (estilo %%RAID 1raid1%%)Excelente para I/O aleatorioAgregar más espejos50%
RAIDZ11 disco por vdevRápido para archivos grandes. No es ideal para escrituras pequeñas o aleatorias.Agregar nuevos vdevsAltoUso general, tolerancia a fallas de 1 disco
RAIDZ22 discos por vdevComo Z1, pero con escrituras un poco más lentas (paridad adicional)Agregar nuevos vdevsModeradoDatos importantes, tolerancia a fallas de 2 discos
RAIDZ33 discos por vdevComo Z2, con más sobrecarga de escritura (para máxima seguridad)Agregar nuevos vdevsBajoCrítico para la misión, tolerancia a fallas de 3 discos
How elegir
  • Use Espejo si quiere el mejor rendimiento y expansión fácil y flexible, y está de acuerdo en utilizar más espacio en disco para la redundancia.
  • Elija RAIDZ1/2/3 si desea maximizar el espacio utilizable y almacenar archivos grandes, pero tenga en cuenta que la expansión es menos flexible y el rendimiento de escrita aleatoria es inferior.
  • Raya solo es adecuada para datos no críticos y temporales; si falla un disco, se pierde todo.

Topología y expansión

Cómo agrupar discos en vdevs afecta tanto la seguridad de los datos como la velocidad.

  • Si coloca todos sus discos en un gran vdev RAIDZ2, puede perder dos discos sin perder datos. Sin embargo, la expansión significa agregar otro vdev completo.
  • Obtendrá mejor rendimiento en paralelo si divide discos en varios vdevs RAIDZ1 más pequeños. Tenga cuidado; si dos discos fallan en el mismo vdev, perderá todo el pool.
  • ZFS stripes data across vdevs, not individual disks, so more vdevs can lead to better performance for workloads with many small files or random I/O.
  • Expandir un grupo ZFS generalmente significa agregar un nuevo vdev con la misma disposición, no solo un disco.
consejo

Planifique la disposición de su pool para que se adapte a sus necesidades y crecimiento futuro. A diferencia del array de Unraid, no puede agregar un solo disco a un vdev existente usando el WebGUI.


Compresión y RAM

ZFS ofrece características avanzadas que pueden mejorar significativamente la eficiencia y rendimiento del almacenamiento de Unraid. Dos temas comunes de interés son la compresión y los requisitos de memoria.

La compresión ZFS es transparente: opera en segundo plano, reduciendo los datos antes de que lleguen al disco.

Esto ofrece dos beneficios importantes:

  • Uso reducido del disco: Se consume menos espacio de almacenamiento.
  • Mejor rendimiento: Escribir y leer menos datos puede llevar a operaciones más rápidas, especialmente en CPUs modernas.

consejo

Active la compresión ZFS para la mayoría de los pools ZFS de Unraid. Es segura, eficiente y rara vez afecta la compatibilidad o estabilidad.

El mito de la RAM en ZFS - Haga clic para expandir/contraer

Es posible que haya encontrado el consejo obsoleto: “ZFS requiere 1 GB de RAM por 1 TB de almacenamiento”. Esto ya no es aplicable para la mayoría de los usuarios. ZFS utiliza la RAM para su Caché de Reemplazo Adaptativo (ARC), lo que acelera las lecturas accedidas frecuentemente.

Unraid limita automáticamente ZFS al uso de una porción razonable de la RAM de su sistema (usualmente 1/8 del total de RAM). Esto permite que ZFS funcione bien sin afectar los contenedores Docker, VMs, o el sistema operativo de Unraid.

información

ZFS se escala bien con la memoria disponible. Más RAM puede mejorar el rendimiento de la caché, pero ZFS funciona de manera fiable con hardware modesto. No deje que las recomendaciones antiguas le impidan usar ZFS en Unraid.


Importando grupos ZFS creados en otros sistemas

Unraid puede importar grupos ZFS creados en otras plataformas sin grandes complicaciones.

Cómo importar un pool de ZFS - Haga clic para expandir/contraer
  1. Detenga el array: Asegúrese de que su array de Unraid esté detenido.
  2. Añadir una nueva piscina: Haz clic en Añadir Piscina.
  3. Asigne todas las unidades:
    • Configure Número de ranuras de datos al número total de unidades en su grupo ZFS (incluidos los vdevs de datos y los vdevs de soporte).
    • Asigna cada disco a la ranura correcta.
    • Ejemplo: Para un pool con un vdev espejado de 4 unidades y un vdev L2ARC de 2 unidades, configure 6 ranuras y asigne las seis unidades.
  4. Configure el sistema de archivos a "Auto": Haga clic en el nombre del grupo (por ejemplo, raptor) y configure Sistema de Archivos en Auto.
  5. Finalice e inicie el array: Haga clic en Hecho, luego inicie el array.
Detección automática

Unraid detectará e importará automáticamente el pool ZFS. Los vdevs de soporte (como log, caché/L2ARC, especial/dedup) se listan bajo Subpools en el WebGUI. No hay necesidad de agregar subpools por separado después de iniciar la importación. Unraid los importará automáticamente junto con los discos de datos principales cuando se asignen todas las unidades requeridas.

Después de importar, es altamente recomendado ejecutar un scrub para verificar la integridad de los datos.

  • Haz clic en el nombre del pool (por ejemplo, raptor) para abrir su configuración.
  • En Estado del Pool, verifica el estado y haz clic en Scrub.


Vdevs de soporte (subpools)

Unraid se refiere a los vdevs de soporte de ZFS como subpools. La mayoría de los usuarios no necesitan estos, pero es posible que los usuarios avanzados se encuentren con ellos:

Vdev de soporte (subpool)PropósitoRiesgo/Notas
Vdev especialAlmacena metadatos y archivos pequeñosLa agrupación se vuelve ilegible si se pierde.
Vdev de duplicación por eliminaciónHabilita la duplicación por eliminaciónRequiere grandes cantidades de RAM; es arriesgado para la mayoría de los usuarios. Evitar a menos que se tengan necesidades técnicas.
Vdev de registro (SLOG)Mejora el rendimiento de escritura síncronaOpcional. Solo es beneficioso para ciertas cargas de trabajo.
Vdev de cache (L2ARC)Proporciona cache de lectura basado en SSDOpcional. Puede mejorar la velocidad de lectura para conjuntos de trabajo grandes.
Vdev de repuestoNo soportado en Unraid (a partir de la versión 7.1.2)
precaución

La mayoría de los usuarios de Unraid deberían evitar los vdevs/subpools de soporte a menos que tenga una necesidad específica y bien entendida. Están diseñados para cargas de trabajo especializadas y pueden introducir complejidad o riesgo si se utilizan incorrectamente.


Unidades de soporte críticas de vdev no asignadas durante la importación

Cuando importe un pool de ZFS en Unraid, debe asignar cada unidad de su pool original, incluidas las utilizadas para los vdevs de soporte, a los slots del pool. Unraid reconocerá automáticamente el rol de cada unidad (datos, registro, caché, especial o dedup) una vez que comience el array. No es necesario especificar manualmente qué unidad sirve para qué propósito.

Si olvidas incluir una unidad que formaba parte de un vdev de soporte durante la importación, el resultado dependerá de la función del vdev:

Tipo de vdevSi falta una unidad durante la importaciónResultado
Vdev especial o de deduplicaciónEl pool no se importará o será inutilizableThese vdevs store critical metadata or deduplication tables. Without them, ZFS cannot safely mount the pool.
Vdev de registro (SLOG)El pool se importa, pero el rendimiento de escritura síncrona disminuye.El pool sigue siendo accesible, pero puedes notar un menor rendimiento en los flujos de trabajo que dependen de escrituras síncronas.
Vdev de caché (L2ARC)El pool se importa, pero se pierde el caché de lecturaEl pool funciona normalmente, pero se pierde el aumento de rendimiento de la caché L2ARC. No se pierde ningún dato.
consejo

Always assign every physical drive from your original ZFS pool, including all support vdevs, when importing into Unraid. This ensures smooth detection and integration. For new pools created in Unraid, support vdevs are optional and generally not needed for most users.


Expansión de almacenamiento

ZFS es poderoso, pero es importante entender cómo funciona su expansión de almacenamiento - especialmente si estás planificando un crecimiento futuro.

Históricamente, los vdevs ZFS tienen un ancho fijo. No puede agregar un disco a un vdev RAIDZ existente para hacerlo más grande.

Formas de expandir tu pool incluyen:

  • Añadiendo un nuevo vdev: Crezca su pool agregando otro vdev (como un nuevo espejo o grupo RAIDZ). Esto aumenta la capacidad, pero debe agregar discos en conjuntos que coincidan con la configuración del vdev.
  • Reemplazo de unidades con unidades más grandes: Reemplace cada unidad en un vdev, una a la vez, por un disco más grande. Consulte reemplazo de discos para procedimientos detallados. Después de que todas las unidades sean reemplazadas y el pool se resuelva, la capacidad del vdev aumenta.
  • Crear un nuevo pool: Iniciar un nuevo pool de ZFS mantiene las cosas organizadas e independientes para diferentes tipos de datos o cargas de trabajo.
Planning adelante

Antes de construir su pool, considere cuánta almacenamiento necesitará, no solo hoy, sino en el futuro. ZFS recompensa la buena planificación, especialmente si desea evitar actualizaciones disruptivas más adelante.


Usar pools ZFS en un servidor Unraid existente

Si estás ejecutando un array tradicional de Unraid y quieres añadir pools de ZFS, aquí hay algunas formas efectivas de integrarlos:

Caso de usoDescripciónDetalles / Ejemplos
Pool SSD/NVMe rápido para appdata y DockerStore the appdata share for fast, responsive containers and databases. This supports snapshots for easy rollbacks and can also host VMs for high I/O.Muchos usuarios eligen un espejo de ZFS de 2 unidades para esto. Es fácil de expandir y ofrece un rendimiento sólido.
Pool ZFS para datos importantesUse un espejo ZFS o un pool RAIDZ2 para archivos insustituibles como fotos, registros de impuestos y datos de user share. ZFS verifica la corrupción y se autocura con redundancia.Esta configuración protege datos críticos con comprobaciones de integridad automáticas y capacidades de auto-saneamiento.
Objetivo de respaldo o replicación diariaUse un disco ZFS (incluso dentro del array de Unraid) como un objetivo de replicación. Puede replicar otros pools localmente o desde otro servidor Unraid.Utiliza zfs send/receive o herramientas como Syncoid para respaldos y restauraciones rápidas y confiables.
Snapshot-based recovery poolKeep point-in-time snapshots of critical data or containers. snapshots can be auto-scheduled and are space-efficient.Esta característica permite una rápida recuperación de eliminaciones accidentales o configuraciones erróneas.

Evitar errores comunes de ZFS

ZFS es un poderoso sistema de archivos, pero hay varios errores comunes que pueden socavar sus beneficios. Es importante tener en cuenta los siguientes puntos antes de configurar su pool para una experiencia más fluida:

  • Desajuste de tamaño de discos en RAIDZ: ZFS trata todos los discos en un vdev RAIDZ como del tamaño del más pequeño. Para asegurar la mejor eficiencia, use siempre discos de tamaño idéntico dentro de cada vdev.

  • Expansión de vdevs RAIDZ a través del WebGUI: Mientras que Unraid 7.1.x y versiones más nuevas admiten la expansión de RAIDZ a través de la línea de comandos, esta función aún no está disponible en el WebGUI. Por el momento, expanda a través del CLI o agregue nuevos vdevs a través del GUI.

  • ZFS disk vs. full zpool: A single ZFS-formatted disk in the Unraid array does not offer the redundancy or features of a dedicated ZFS pool. To leverage advanced functionality, use standalone pools.

  • Deduplicación sin RAM adecuada: La deduplicación requiere memoria significativa, y habilitarlo sin suficiente RAM puede impactar gravemente el rendimiento. Solo habilite la deduplicación si comprende completamente los requisitos.

  • La redundancia de vdev es local: La redundancia en ZFS es local para cada vdev y no se comparte a través del pool. Asegúrese de planear el diseño de su vdev para lograr el nivel de resiliencia que necesita.