Qué es ZFS y cómo protege tus datos
Autor: Redacción Domeny.ForSale Publicado
En pocas palabras: ZFS es un sistema de archivos que integra la gestión del espacio en disco. Verifica la integridad de los datos, permite crear instantáneas y agrupar unidades en conjuntos de almacenamiento. Resulta especialmente útil en servidores y dispositivos NAS, que comparten archivos a través de la red, pero no sustituye a las copias de seguridad.
Cómo funciona ZFS y en qué se diferencia de un sistema de archivos convencional
Un sistema de archivos determina cómo se guardan y localizan los datos en una unidad. ZFS también se encarga de funciones que en otras soluciones suelen corresponder a una capa independiente: agrupar discos, proporcionar redundancia de datos y asignar espacio. Así, tiene acceso directo tanto a la estructura de los archivos como a su ubicación de almacenamiento.
ZFS nació en Sun Microsystems. Actualmente, muchas soluciones basadas en Linux y FreeBSD utilizan OpenZFS, una implementación de ZFS desarrollada como software de código abierto. Las funciones disponibles y el procedimiento de instalación dependen del sistema y de la versión, por lo que las instrucciones de configuración deben elegirse para el entorno concreto.
El espacio en ZFS se organiza en varios niveles:
- Conjunto de almacenamiento (zpool): espacio de almacenamiento compartido formado por uno o varios grupos de dispositivos.
- Vdev: dispositivo lógico que forma parte del conjunto, como un disco individual, un espejo o un grupo RAID-Z.
- Dataset: sistema de archivos independiente dentro del conjunto, al que se pueden asignar ajustes propios, como la compresión y un límite de espacio.
Así, puedes crear datasets separados para documentos, contenido multimedia y copias de ordenadores sin dividir rígidamente los discos en particiones de tamaño fijo. Los datasets comparten el espacio libre, respetando los límites y las reservas configurados.
Cómo detecta ZFS la corrupción de datos
ZFS utiliza sumas de comprobación, es decir, valores calculados a partir del contenido de los datos. Durante la lectura, comprueba que los bloques almacenados coincidan con sus sumas de comprobación. Esto permite detectar, entre otros problemas, la corrupción silenciosa: casos en los que el dispositivo devuelve contenido incorrecto sin notificar un error de lectura.
Detectar un error no siempre significa poder repararlo. Si el conjunto dispone de la redundancia adecuada, por ejemplo, un espejo, ZFS puede obtener una copia correcta del bloque y reparar la dañada. En un disco individual puede detectar la corrupción de los datos de un archivo, pero no reconstruir su contenido sin otra copia correcta.
ZFS también utiliza el mecanismo copy-on-write, o copia en escritura: en lugar de sobrescribir un bloque en uso, guarda los datos modificados en una nueva ubicación y después actualiza las referencias. Esto ayuda a mantener una estructura coherente del sistema de archivos y es la base del funcionamiento de las instantáneas. Sin embargo, no garantiza que se conserven todos los últimos cambios de una aplicación tras un corte repentino de alimentación.
Para las comprobaciones periódicas se utiliza scrub, un proceso que verifica los datos almacenados frente a sus sumas de comprobación. Si hay redundancia disponible, también permite reparar los errores detectados. Scrub complementa la supervisión de los discos, pero no sustituye su diagnóstico ni las copias de seguridad.
Instantáneas, compresión y copias de seguridad
Una instantánea (snapshot) conserva el estado de un dataset en un momento determinado. Al principio ocupa poco espacio adicional; el espacio que necesita aumenta cuando debe conservar bloques antiguos de datos que se modifican o eliminan. Por eso, borrar un archivo grande no siempre libera espacio si una instantánea sigue conservando su contenido.
Por ejemplo, creas una instantánea antes de organizar las fotos familiares. Si borras una carpeta por error, puedes recuperar su versión anterior sin restaurar toda la colección desde un disco externo. Sin embargo, una instantánea que permanece en el mismo conjunto de almacenamiento no te ayudará si pierdes todas las unidades, si te roban el dispositivo o si un atacante con los permisos necesarios la elimina.
ZFS puede enviar instantáneas a otro conjunto de almacenamiento, también de forma incremental, es decir, transfiriendo los cambios respecto al estado anterior. Esto facilita la replicación. No obstante, la seguridad de esa copia depende de dónde se almacene, de los permisos y de las reglas de conservación de versiones anteriores.
También resulta útil la compresión durante la escritura. Puede ahorrar espacio y reducir el número de operaciones de disco, pero el resultado depende de los datos: el texto suele comprimirse mejor que los vídeos ya codificados o los archivos comprimidos. No debe confundirse con la deduplicación, que elimina los bloques repetidos, pero puede requerir mucha memoria y una planificación cuidadosa.
Espejo o RAID-Z: cómo elegir la configuración de los discos
Un espejo guarda los mismos datos en varios discos. Con dos unidades de igual capacidad, el espacio útil equivale aproximadamente a la capacidad de una de ellas, antes de descontar el espacio destinado a la gestión del sistema y el margen libre recomendado. Esta configuración puede seguir funcionando tras el fallo de un disco.
RAID-Z distribuye entre las unidades los datos y la información necesaria para reconstruirlos. Las variantes RAID-Z1, RAID-Z2 y RAID-Z3 toleran, respectivamente, el fallo de uno, dos o tres discos en un mismo vdev. La elección depende de la capacidad necesaria, la carga de trabajo y el riesgo aceptable.
La configuración del conjunto completo es fundamental: perder un vdev que almacena datos puede suponer perder todo el conjunto. Añadir un disco individual como otro vdev a un conjunto con un espejo protegido no extiende la protección del espejo a ese disco. Antes de ampliar el almacenamiento, comprueba también las posibilidades de tu versión de OpenZFS: no todos los cambios de configuración están disponibles ni son fáciles de revertir.
Cuándo conviene elegir ZFS
ZFS es una buena opción para almacenar documentos, archivos históricos y copias de seguridad cuando necesitas comprobar la integridad de los datos y disponer de instantáneas. Sin embargo, exige planificar la configuración de los discos, supervisar el estado del conjunto y mantener un margen de espacio libre. El rendimiento y las necesidades de RAM dependen de la carga de trabajo y de las funciones activadas; no existe una proporción universal entre memoria y capacidad de los discos.
La memoria ECC, que detecta y corrige determinados errores de la memoria principal, es beneficiosa en un servidor, pero no es un requisito indispensable para que ZFS funcione. Lo más recomendable es que ZFS acceda directamente a los discos, en lugar de ocultarlos detrás de una matriz RAID por hardware.
Antes de trasladar datos importantes, dibuja un esquema de los vdevs, decide dónde guardar una copia de seguridad independiente y prueba a recuperar una carpeta. Esa prueba te dirá más sobre si la configuración está lista que el simple hecho de haber creado correctamente el conjunto de almacenamiento.
Consulta también: ¿Qué es Linux?
