SISTEMAS DE ARCHIVO - SUN - ZFS

ZFS es un sistema de archivos desarrollado por Sun Microsystems para su sistema operativo Solaris.
ZFS destaca por su gran capacidad, integración de los conceptos anteriormente separados de sistema de ficheros y administrador de volúmenes en un solo producto, nueva estructura sobre el disco, sistemas de archivos ligeros, y una administración de espacios de almacenamiento sencilla.
Una de las características novedosas de ZFS es que ubican en un único dispositivo y, por lo tanto, requieren de un administrador de volúmenes cuando se quiere trabajar con más de un dispositivo, éste sistema se apoya en virtual storage pools (espacios de almacenamiento virtual) llamados “zpools”. Éstos están formados por virtual devices (dispositivos virtuales), “vdevs”, que a su vez se componen de block devices (dispositivos de bloques): archivos, particiones o discos enteros. De esta forma, se pueden configurar RAIDs de distinto tipo. Además de los tradicionales RAID-0 (dividido o data stripping) y RAID-1 (espejo o data mirroring), ZFS ofrece una variante del RAID-5 (dividido con paridad distribuida) llamada RAID-Z que evita un problema conocido llamado “agujero de escritura” (corrupción de las divisiones por perdida de energía entre la actualización de la información y las partes).
En cuanto a la capacidad de almacenamiento y su escalabilidad, ZFS fue diseñado para tener límites que nunca fueran alcanzados (el tipo de proposición que sabemos que a la ciencia le encanta hacer para poder romper algunos años más tarde). Algunos límites teóricos de ZFS son:
248 — Número de snapshots en cualquier sistema de ficheros (2 × 1014)
248 — Número de ficheros en un sistema de ficheros (2 × 1014)
16 exabytes — Tamaño máximo de un sistema de ficheros
16 exabytes — Tamaño máximo de un fichero
16 exabytes — Tamaño máximo de cualquier atributo
3 × 1023 petabytes — Tamaño máximo de un zpool
256 — Número de atributos de un fichero (realmente limitado a 248 que es el número de ficheros que puede contener un sistema de ficheros ZFS)
256 — Número de ficheros en un directorio (realmente limitado a 248 que es el número de ficheros que puede contener un sistema de ficheros ZFS)
264 — Número de dispositivos en cualquier zpool
264 — Número de zpools en un sistema
264 — Número de sistemas de ficheros en un zpool
Otra característica muy interesante que agrega ZFS es un modelo transaccional llamado copy-on-write ( “copia al escribir”). Este modelo, que se aplica a todas las transacciones, implica que todos los punteros de bloque tienen un checksum de 256 bits que se verifica cada vez que se accede a él. Además, cada los bloques que contienen información activa no son nunca sobreescritos, sino que la información modificada se ubica en otros bloques nuevos, y estos últimos son agrupados en grupos transaccionales para reducir el overhead que esto podría producir. Esto permite una preservación casi perfecta de la información, que hace que no sea necesario ejecutar fsck sobre filesystems ZFS. Además, en configuraciones de discos donde la información es replicada (mirroring), la información es self-healing (los bloques corruptos se reparan automáticamente en función de la información previamente almacenada).
Al utilizar el modelo de copy-on-write, se preservan los bloques con información antigua, con lo cual es posible crear snapshots ( “instantáneas”) de la información, las cuales se crean rápidamente y en una forma que es eficiente desde el punto de vista del espacio. Éstas permiten restaurar el sistema con los datos existentes en determinada fecha (lo que hace Time Slider). También se pueden crear snapshots escribibles llamadas clones, lo cual resulta en un par de sistemas de archivos independientes que comparten algunos bloques.
ZFS utiliza ARC (Adaptive Replacement Cache), un algoritmo que resulta más eficiente que el tradicional sistema de memoria virtual page cache que implementaba Solaris.

ZFS implementa un motor de I/O (Input/Output o Entrada/Salida) segmentado ( pipelined I/O engine, basado en el concepto de las CPU pipelines). Esto le brinda una serie de características (scoreboarding, priorities, deadline scheduling, out-of-order issue y I/O aggregation), que hacen que ZFS soporte tranquilamente cargas de entrada y salida que otros filesystems no pueden manejar.
Existen una serie de limitaciones:
ZFS no soporta la definición de quotas por grupo o por usuario. En cambio, como los filesystems ZFS son muy livianos, uno crea filesystems para cada usuario con sus propias limitaciones de espacio. Sin embargo, no hay una solución para cuando un mismo filesystem debe ser compartido por varios usuarios con quotas distintas.
Por el momento, no es posible reducir la cantidad de vdevs en un zpool, ni reducir la capacidad de un zpool.
No se puede agregar un disco a un vdev de un RAID-Z o de un RAID-Z2, pero sí se puede agregar otro vdev al mismo zpool.
No se pueden mezclar vdevs de distintos tipos en un mismo pool.
ZFS no es un sistema nativo de cluster, distribuido, ni un sistema paralelo de archivos y no puede proveer acceso concurrente para múltiples hosts porque ZFS es un filesystem local.

No hay comentarios:

Publicar un comentario