Sistema de archivos ZFS

De Departamento de Informatica
Saltar a: navegación, buscar

Contenido

Introducción

El sistema de archivos ZFS vino del acrónimo Zetta-byte File System (ver [1]) el cual fue desarrollado por la empresa Sun Microsystems, con la intención de ser utilizado en Solaris. De hecho, el nombre ZFS se había patentado bajo el dominio de Oracle (ver [2]), dado que Oracle compró Sun en el año 2010, pero dicha patente expiró el 20 de Septiembre de 2011.

El ZFS fue anunciado el 14 de Septiembre de 2004, cuyo desarrollo e implementación fue dirigida por Jeff Bonwick de Sun Microsystems, quien en su oportunidad dijo “Hemos replanteado todo y lo hemos rediseñado. Hemos tirado 20 años de tecnología que estaba basada en suposiciones que actualmente ya no rigen” (ver [3-4]).

El ZFS se destaca por sobre los demás sistemas de archivos, en integrar los conceptos de sistemas de archivos y administrador de volumenes (que anteriormente se encontraban separados) y constante chequeo de integridad y reparación automática.

Cabe notar que si bien un zettabyte equivale a 270 bytes (ver [5]), lo cual es lo suficientemente grande para todo propósito práctico, existe una unidad aún más grande, llamada yottabyte que equivale a 280 bytes (ver [6]).

Características de ZFS

A continuación se mencionan las principales características del sistema de archivos ZFS (ver [7]):

  • Integridad de datos comprobable: Esta característica permite que los datos en el archivo se mantengan siempre correctamente, siendo capaz de detectar datos corruptos y repararlo automáticamente. Esto se logra gracias a un modelo transaccional de archivos (ver [8]).
  • Modelo transaccional: Un modelo transaccional de archivos implica el almacenamiento de eventos o transacciones. Para esto se utiliza la técnica conocida como copy-on-write, de forma que cuando se modifican datos en el disco, estos no son sobreescritos, para lo que se crean nuevos bloques donde estos datos son grabados y luego se modifican las estructuras correspondientes para que apunten a estos nuevos bloques.
  • Snapshots: Los snapshots corresponden a copias del sistema de archivos en algún determinado momento. Son de creación muy rápida, permitiendo hacer respaldos o copias de seguridad de forma casi inmediata, con la salvedad que estas copias son de sólo lectura.
  • Clones: De forma similar a los snapshots, los clones son copias del sistema de archivos en algún determinado momento, pero en los cuales se permite realizar escritura. Este sistema de archivos que se crea, comparte bloques en el disco con el original, con el fin de ahorrar espacio, pero se manejan de forma independiente.
  • Espacios de almacenamiento: ZFS hace uso de espacios de almacenamiento virtual (o virtual storage pool, o zpools), a diferencia de los sistemas de archivo tradicionales que se encuentran en un solo dispositivo y requieren un gestor de volumenes (ver figura). Un zpool se construye a partir de dispositivos virtuales (o conocidos como vdevs) que a su vez se construyen a partir de bloques de dispositivos (particiones de disco duro, o discos completos). Además, la capacidad de almacenamiento de todos los vdevs se encuentra disponible para todas las instancias del sistema de archivos en el zpool.
Sistema de archivos tradicional
Sistema de archivos ZFS
  • Creación de sistemas de archivos livianos: Dado que la gestión de los sistemas de archivo es mucho más sencilla que en otros sistemas existentes, hace la tarea de creación de estos sistemas una operación muy ligera. Además, no existen cuotas de espacio por cada usuario, sino que existen cuotas por sistema de archivos, así se crean sistemas de archivos por cada usuario en vez de carpetas dentro de un mismo sistema de archivos.
  • Compresión: esto permite maximizar el espacio en el disco, removiendo los pequeños fragmentos de disco que no están siendo utilizados, y producto de esto, muchas veces maximizar la velocidad de lectura.

Capacidad

ZFS es un sistema de archivos de 128 bits (ver [9]) por lo que tiene mucho mayor capacidad de almacenamiento que otros sistemas de 64 bits, como por ejemplo NTFS. ZFS fue diseñado de forma que los límites fuesen tan grandes, que fuesen encontrados sólo teóricamente en vez de en la práctica.

Así, los límites teóricos son:

  • número de entradas en una carpeta : 248
  • número de atributos en un archivo: 248
  • bytes como tamaño máximo de un archivo: 264
  • número de dispositivos en un zpool: 264
  • número máximo de zpool en un sistema: 264
  • número máximo de sistemas de archivos en un zpool: 264
  • bytes como tamaño máximo de algún zpool: 278

Compatibilidad

ZFS es propio y viene incluido dentro del sistema operativo Solaris, pero dado que el código para este sistema de archivos es de libre acceso (open-source) puede ser (y ha sido) llevado a otras plataformas, como por ejemplo FreeBSD, en el que incluso se escribió un artículo de como se logró llevar ZFS a esta plataforma, indicando las bondades de realizar este porte (ver [10]). Algunas de las plataformas que dan soporte a ZFS se listan a continuación:

  • Solaris 10
  • Solaris 11
  • OpenSolaris (Las versiones 2008.05 y 2009.06 usan ZFS por defecto)
  • OpenIndiana (Las versiones 148 y 151 usan la versión 28 de ZFS)
  • FreeBSD (utiliza ZFS a partir de su versión 7.0)

Referencias

Herramientas personales
Espacios de nombres
Variantes
Acciones
Navegación
Herramientas