Posteado por: diclonius | octubre 13, 2007

Sistema de ficheros “ZFS”

ZFS es una nueva clase de sistema de ficheros que proporciona una administración simple, semántica transaccional, integridad de los datos, y una inmensa escalabilidad. ZFS no es una mejora incremental de la tecnología existente; es fundamentalmente un nuevo acercamiento a la administración/gestión de datos.

ZFS presenta un modelo reunido de almacenamiento que elimina totalmente el concepto de volúmenes y los problemas asociados de particiones, del aprovisionamiento, del ancho de banda perdido y del almacenamiento inmovilizado. Los millares de sistemas de ficheros pueden escribirse en un pool de almacenamiento común, cada uno consumiendo sólamente tanto espacio como realmente necesite.

El ancho de banda combinado de E/S de todos los dispositivos en el pool está siempre disponible para todos los sistemas de ficheros. Todas las operaciones son transacciones ‘copia-en-escritura’, así que el estado de los datos en disco son siempre válidos. No es necesario realizar fsck(1M) en ZFS, nunca. Cada bloque es comprobado para prevenir la corrupción silenciosa de datos y éstos son comprobados en (duplicado espejo ó en RAID) configuraciones replicadas. Si se daña una copia, ZFS la detectará y utilizará otra copia para repararla.

ZFS introduce un nuevo modelo de replicación de datos llamado RAID-Z. Es similar al RAID-5, pero emplea anchura variable para eliminar el agujero de escritura que deja RAID-5 (corrupción debido a pérdida de energía entre los datos y las actualizaciones de paridad). Todo el RAID-Z escribe en full-stripe. NO hay ninguna imposición de lectura-modificación-escritura, no hay agujeros en la escritura, y -la mejor parte-, ninguna necesidad de NVRAM en hardware. A ZFS le gustan los discos baratos.

Pero los discos baratos pueden fallar, así que ZFS proporciona “fregado” del disco. Al igual que la memoria ECC, la idea es leer todos los datos para detectar errores latentes mientras éstos puedan ser corregidos. Un “fregado” atraviesa el pool entero del almacenamiento para leer cada copia de cada bloque, validarla contra la suma de comprobación 256-bit, y repararla en caso de necesidad. Todo ésto sucederá mientras el pool de almacenamiento siga vivo y en uso.

ZFS tiene un motor canalizado de E/S, similar en concepto a las tuberías de la CPU. La tubería funciona sobre dependencias de E/S y proporciona scoreboarding, prioridad, programación de plazo, out-of-order y agregación de E/S . La carga de E/S que traen otros sistemas de ficheros a sus rodillas son manejadas con facilidad por la tubería de E/S de ZFS.

ZFS proporciona snapshots ilimitados y clonaciones. Un snapshot es una copia inalterable de un punto en el tiempo de un sistema de ficheros, mientras que una copia es una copia escribible de un snapshot. Las clonaciones proporcionan una manera extremadamente eficiente de almacenar muchas copias de datos sobre volúmenes compartidos, tales como espacios de trabajo (workspaces), instalaciones de software, y clientes diskless (sin discos).

Las copias de seguridad (backups) y el restaurado (restore) ZFS son realizados a través de snapshots. Cualquier snapshot puede generar un backup completo, y cualquier par de snapshot puede generar un backup incremental. Los backups incrementales son tan eficientes que pueden ser utilizados para la réplicados remotos -por ejemplo transmitir una actualización incremental cada 10 segundos-.

No hay límites arbitrarios en ZFS. Puedes tener tantos ficheros como desees; offsets de 64-bit del fichero; enlaces/links ilimitados, entradas de directorio, snapshots, etcétera.

ZFS proporciona compresión incorporada. Además de reducir uso del espacio en x2 ó x3, la compresión también reduce la cantidad de E/S de 2 a 3 veces. Por ésta razón, permitir la compresión hace realmente que algunas cargas de trabajo vayan más rápidamente. Además de sistemas de ficheros, los pools de almacenamiento ZFS pueden proporcionar volúmenes para usos que necesitan la semántica crudo-dispositivo (raw-device). Por ejemplo, los volúmenes de ZFS se pueden utilizar como dispositivos de intercambio ó swap. Y si permitimos la compresión en un volumen de intercambio/swap, ahora tendríamos memoria virtual comprimida.

La administración de ZFS es simple y poderosa. Mira por favor las página de manual zpool(1M) y zfs(1M) para más información, y échale un vistazo a la sección Comenzando con ZFS para un pequeño tutorial.

ZFS es ya absolutamente rapidísimo en la mayoría de cargas de trabajo, y eso que estamos empezando…

¿Qué ofrece, entonces, ZFS?

Igual que pasar de números de 32 bits a números de 64 bits permitió pasar de 2GB de tamaño máximo a 16 mil millones de GB… ZFS utiliza números de 128 bits para los tamaños de sus archivos, de modo que estaríamos hablando de trillones —millones de millones de millones— de GB… Tantos, que se considera prácticamente imposible que exista ningún medio de almacenamiento que pueda ser mayor que lo que se puede gestionar con ZFS, porque el número de partículas del universo es inferior… y de algo habrá que hacer los discos duros😉

La capacidad de direccionar información de ZFS es tan grande, que lo que se hace es distribuir los archivos en diferentes pools, o zonas de almacenamiento, que son transparentes a la hora de acceder al sistema de archivos. Sun dice que ZFS es a los sistemas de archivos como la memoria virtual es a la memoria.

Otra capacidad, posiblemente la más interesante, es la de GARANTIZAR la integridad de los datos. En un sistema ZFS, un dato que está en disco siempre se graba bien… y se puede comprobar que no está bien, o que ha sido alterado de forma ajena al sistema de archivos —algo que sólo puede ser un error— en la primera relectura que se haga del archivo. No pueden existir errores “silenciosos”.

Además, también se garantiza la escritura por transacciones. Esto significa que no hay que llevar un registro de operaciones en disco que reconstruir en caso de fallo: el estado del disco siempre es coherente. Un apagón no puede dejar ningún disco ZFS en un estado incoherente. Y una subida de tensión, que alterase bits en los datos, sería registrada.

Aún mejor: ZFS dispone de un sistema de instantáneas (snapshots) del sistema de archivos, que permite retroceder al estado que tenía el sistema de archivos en cualquier momento pasado. Y por la forma en que se hacen las escrituras, y se garantiza la coherencia, es más sencillo mantener esas instantáneas que descartarlas. Y como las instantáneas contienen información suficiente no sólo para detectar errores, sino también para repararlos… la mayoría de los fallos que se pueden producir en un disco ZFS son recuperables, y en el peor de los casos, una versión anterior del fichero es recuperable. Esas instantáneas, además, sólo se producen de los archivos que cambian. Los archivos que no cambian no ocupan espacio adicional en disco.

Todo lo anterior tiene pinta de hacer el sistema de archivos muy lento. Y lo sería, para aplicaciones que accediesen al disco a bajo nivel. Pero ZFS organiza las escrituras y lecturas de forma que se agrupan previamente las operaciones, acelerando las escrituras, y todos los pasos necesarios para las verificaciones exhaustivas propias de ZFS.

Por último, y posiblemente lo más importante desde un punto de vista de tecnología con toque Apple, ZFS abstrae completamente del usuario, e incluso del administrador, una vez configurado, la noción de disco y volumen, y todo vive en un mismo pool de información. Imaginad que le pudierais poner un disco duro externo al portátil, y automáticamente tuviéseis más capacidad en un único “disco”, y que en cuanto se desconectase dejaseis de tenerla de forma transparente. Adiós a las particiones, salvo las que no existiesen dentro de ZFS, y que fueran necesarias para otros sistemas operativos, menos avanzados…

Lo que no ofrece ZFS

Pues, en primer lugar, por todo lo que implementa, ZFS no es el sistema de archivos más rápido del mundo para operaciones por bloques… aunque sí es el más rápido que ofrece sus características (algo que es tautológico, puesto que ninguno ofrece lo mismo😉 ),

Además, la ocupación del disco es mucho mayor que con cualquier otro sistema, debido al sistema de imágenes, y la ocupación de memoria también, por la necesidad de crear en RAM todas las transacciones antes de intentar realizarlas en disco.

Lo que esto quiere decir es que, probablemente, no sea algo que vaya a sustituir a HFS+ como sistema de archivos estándar, pero sí puede ser una opción, especialmente en Mac OS X Server, y para la gestión de grandes volúmenes de datos, como los que puede manejar Xsan. De hecho, Xsan se queda en los 2 PB de tamaño de archivo (2 millones de GB).

Aún así, es muy interesante que Apple se interese en ZFS, tanto para usarlo como sistema de archivos alternativo —o como base para un Xsan 2.0—, como para utilizar partes de ZFS para evolucionar HFS+… Y en todo caso, no creo que vaya a formar parte de Leopard (Mac OS X 10.5), pero muy posiblemente sí de Mac OS X 10.6, si no se trata, como ya he dicho, de algo exclusivo para Xsan.


Responses

  1. Imaginense un sistema de archivos de 1.024 Bits; que pequeño es el Universo ¿no?.

  2. “porque el número de partículas del universo es inferior… y de algo habrá que hacer los discos duros”

    _ERROR

    La Tierra está conformada por alrededor de 10^50 átomos y el sistema ZFS permite 2,4*10^48 Bits, sería 1/41 de la Tierra.

    Si es duro, lo reconozco pero cuando podamos convertir materia en energia y luego a materia (ya se logró con un trozito de materia) podríamos transformar planetas en memorias.

  3. Hice cálculos y vi que con 256 Bits necesitaríamos el 1% de las partículas del Universo, siempre y cuando cada dirección sea 1 Bit.
    256 Bits 10^77 vs Partículas en el Universo 10^79
    ¿soy el único que le interesa este tema del almacenamiento?.


Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

Categorías

A %d blogueros les gusta esto: