¿Qué es ZFS?
ZFS (Zettabyte File System) es un sistema de archivos escalable y de alto rendimiento desarrollado por Sun Microsystems. Además, ofrece características como integridad de datos, instantáneas, agrupación y separación dinámica de datos, etc. Se utiliza habitualmente en entornos empresariales y es popular en sistemas que requieren una sólida protección de datos y una gestión eficaz del almacenamiento.
Historia de ZFS
Z File System (ZFS) fue creado por Matthew Ahrens y Jeff Bonwick en 2001. ZFS fue diseñado para ser un sistema de archivos de nueva generación para OpenSolaris de Sun Microsystems. En 2008, ZFS fue portado a FreeBSD. Ese mismo año se inició un proyecto para portar ZFS a Linux.
Poco después de que Oracle comprara Sun Microsystems, OpenSolaris pasó a ser de código cerrado. Todo el desarrollo posterior de ZFS también se convirtió en código cerrado. Muchos de los desarrolladores de ZFS no estaban contentos con este giro de los acontecimientos. Dos tercios de los principales desarrolladores de ZFS, incluidos Ahrens y Bonwick, abandonaron Oracle debido a esta decisión. Se unieron a otras empresas y crearon el proyecto OpenZFS en septiembre de 2013. El proyecto ha encabezado el desarrollo de código abierto de ZFS.
Para leer más tarde...
Ventajas
Como tal, tiene muchas características interesantes:
- Almacenamiento agrupado: a diferencia de la mayoría de los sistemas de archivos, ZFS combina las características de un sistema de archivos y un gestor de volúmenes. Esto significa que, a diferencia de otros sistemas de archivos, ZFS puede crear un sistema de archivos que abarque una serie de unidades o un pool. No sólo eso, sino que puedes añadir almacenamiento a un pool añadiendo otra unidad. ZFS se encargará de las particiones y el formateo.
- Copia en escritura: en la mayoría de los sistemas de archivos, cuando los datos se sobrescriben, se pierden para siempre. En ZFS, la nueva información se escribe en un bloque diferente. Una vez completada la escritura, los metadatos del sistema de archivos se actualizan para apuntar a la nueva información. Esto garantiza que si el sistema se bloquea (o sucede cualquier otra cosa) mientras se realiza la escritura, se conservarán los datos antiguos. También significa que el sistema no necesita ejecutar fsck después de un fallo del sistema.
- Instantáneas o snapshots: ZFS utiliza instantáneas para realizar un seguimiento de los cambios en el sistema de archivos. “La instantánea contiene la versión original del sistema de archivos, y el sistema de archivos en vivo contiene cualquier cambio realizado desde que se tomó la instantánea. No se utiliza espacio adicional. A medida que se escriben nuevos datos en el sistema de ficheros activo, se asignan nuevos bloques para almacenar estos datos”. Si se elimina un archivo, también se elimina la referencia de la instantánea. Por lo tanto, las instantáneas están diseñadas principalmente para realizar un seguimiento de los cambios en los archivos, pero no de la adición y creación de archivos. Las instantáneas pueden montarse como sólo lectura para recuperar una versión pasada de un archivo. También es posible revertir el sistema activo a una instantánea anterior. Todos los cambios realizados desde la instantánea se perderán.
- Verificación de la integridad de los datos y reparación automática: cada vez que se escriben nuevos datos en ZFS, se crea una suma de comprobación para esos datos. Cuando se leen esos datos, se verifica la suma de comprobación. Si la suma de comprobación no coincide, ZFS sabe que se ha detectado un error. ZFS intentará corregir el error automáticamente.
- RAID-Z: ZFS puede gestionar RAID sin necesidad de software o hardware adicional. Como era de esperar, ZFS tiene su propia implementación de RAID: RAID-Z. RAID-Z es en realidad una variación de RAID-5. Sin embargo, está diseñado para superar el error de agujero de escritura de RAID-5, “en el que los datos y la información de paridad se vuelven inconsistentes tras un reinicio inesperado”. Para utilizar el nivel básico de RAID-Z (RAID-Z1) se necesitan al menos dos discos para almacenamiento y uno para paridad. RAID-Z2 requiere al menos dos discos para almacenamiento y dos para paridad. RAID-Z3 requiere al menos dos unidades de almacenamiento y tres unidades para la paridad. Cuando se añaden unidades a los pools RAID-Z, tienen que añadirse en múltiplos de dos.
- Tamaño máximo de archivo de 16 Exabytes: en una época en la que la mayoría de los sistemas de archivos eran de 64 bits, los creadores de ZFS decidieron saltar directamente a los 128 bits para garantizar su futuro. Esto significa que ZFS un almacenamiento máximo de 256 Cuatrillones de Zettabytes unos 16 billones de billones de veces la capacidad de los sistemas de 32 o 64 bits.
¿Cómo instalar ZFS?
Si quieres usar ZFS desde el principio, tendrás que instalar FreeBSD o un sistema operativo que use el kernel illumos (un fork o bifurcación del kernel OpenSolaris). De hecho, el soporte para ZFS es una de las principales razones por las que algunos usuarios experimentados de Linux optan por BSD.
Aun así, algunas distribuciones como Ubuntu ya permiten instalarlo bastante facilidad.