24
 UNIVERSIDAD DE SANTIAGO DE CHILE FACULTAD DE INGENIERIA DEPARTAMENTO DE INFORMATICA INFORME N° I ESTRUCTURAS DE ARCHIVOS ZFS – ZETTABYTE FILE SYSTEM Autores: Daniel Bravo Díaz Juan Reyes Ramírez Sergio González Celis Docente: Paulo Quinsacara J.

Trabajo II-Particion ZFS

Embed Size (px)

Citation preview

Page 1: Trabajo II-Particion ZFS

5/11/2018 Trabajo II-Particion ZFS - slidepdf.com

http://slidepdf.com/reader/full/trabajo-ii-particion-zfs 1/24

 

UNIVERSIDAD DE SANTIAGO DE CHILE

FACULTAD DE INGENIERIA

DEPARTAMENTO DE INFORMATICA

INFORME N° I

ESTRUCTURAS DE ARCHIVOS

ZFS – ZETTABYTE FILE SYSTEM

Autores: Daniel Bravo Díaz

Juan Reyes Ramírez

Sergio González Celis

Docente: Paulo Quinsacara J.

Page 2: Trabajo II-Particion ZFS

5/11/2018 Trabajo II-Particion ZFS - slidepdf.com

http://slidepdf.com/reader/full/trabajo-ii-particion-zfs 2/24

 

Santiago, 20 de Octubre de 2011

Tabla de contenido

INTRODUCCION.................................................................................................................4

VIVISION GENERAL DEL SISTEMA DE ARCHIVOS ZFS........................................5

 Novedades de ZFS...............................................................................................................6

FUNDAMENTOS DE LA ARQUITECTURA ZFS..........................................................7

CARACTERISTICAS DE GESTION DE ZFS.................................................................8

Caracteristicas del pool....................................................................................................9

Gestion del pool...............................................................................................................9

PROPIEDADES DEL SISTEMA DE ARCHIVOS ZFS................................................11

LIMITACIONES DE ZFS.................................................................................................12

ESTADOS DE ZFS.............................................................................................................12

COMPONENTES DE ZFS.................................................................................................13

ESTRUCTURA DEL SISTEMA DE ARCHIVOS..........................................................13

SPA (Storage Pool Allocator)........................................................................................14

DSL (Dataset and Snapshot Layer)..............................................................................14

DMU (Data Management Layer)..................................................................................14ZAP (ZFS Attribute Processor).....................................................................................15

ZPL (ZFS Posix Layer)..................................................................................................15

ZIP (ZFS Posix Layer)...................................................................................................15ZVOL (ZFS Volume)....................................................................................................16

LA GESTION DE LOS DATOS........................................................................................17

LECTURA Y ESCRITURA...............................................................................................18

Protocolos de Escritura..................................................................................................19

Protocolos de Lectura....................................................................................................21

CONCLUSION....................................................................................................................23

FUENTES Y REFERENCIAS...........................................................................................24

2

Page 3: Trabajo II-Particion ZFS

5/11/2018 Trabajo II-Particion ZFS - slidepdf.com

http://slidepdf.com/reader/full/trabajo-ii-particion-zfs 3/24

 

3

Page 4: Trabajo II-Particion ZFS

5/11/2018 Trabajo II-Particion ZFS - slidepdf.com

http://slidepdf.com/reader/full/trabajo-ii-particion-zfs 4/24

 

INTRODUCCION

La informática ha logrado generar distintos tipos de tecnologías, las que son

adoptadas por las compañías realizando sus propios esquemas de manejo de

información. Microsoft, Sun y Apple son corporaciones que manejan sistemas y

estructuras propios buscando la seguridad, velocidad y fiabilidad de la información. Apple

diseñó un sistema de archivos llamado Hierarquical File System – Sistema de archivos

  jerárquico (HFS) el cual fue reemplazado para trabajar con discos duros de mayor 

capacidad, conocido como HFS+ (Hierarquical File System Plus), luego de esto se ha

intentado implementar ZFS en las arquitecturas de Apple, específicamente en Mac OS x

leopard, el presente trabajo fue pensado para abordar ésta implementación sin embargo

Apple no lo ha implementado por un tema de licencias por lo que se abordará ZFS como

sistema de archivo de Solaris abarcando caracteristicas y generalidades que permitan

comprender el proceso de Lectura y escritura de éste sistema de archivos

ZFS (Zettabyte File System), Es una nueva “clase” de sistema de archivos

incorporado inicialmente a Solaris 10 y que La compañía Ten’s Complement LLC 

pretendía incorporar a Mac OS X, éste revolucionario sistema de archivos aporta una

forma de administración más simple, manejando escalabilidad y una fortaleza única en la

integridad de los datos con funciones y ventajas que no hay en ningún otro sistema de

archivos actual, ZFS no es precisamente el sistema de archivos más rápido del mundo y

puede considerarse como "lento" para operaciones por bloques, además, la ocupación del

disco es mucho mayor que con cualquier otro sistema, debido al sistema de imágenes, yademás, la ocupación de memoria también, por la necesidad de crear en RAM todas las

transacciones antes de intentar realizarlas en disco por lo que probablemente, no

sustituya a HFS+ como sistema de archivos estándar en Mac, pero sí podría ser una

opción, especialmente en Mac OS X Server, sin embargo es importante aclarar que ZFS

4

Page 5: Trabajo II-Particion ZFS

5/11/2018 Trabajo II-Particion ZFS - slidepdf.com

http://slidepdf.com/reader/full/trabajo-ii-particion-zfs 5/24

 

no es una mejora incremental de la tecnología existente; es fundamentalmente un nuevo

acercamiento a la administración/gestión de datos.

UNA VISION GENERAL DE ZFS

ZFS se basa en el concepto de “grupos de almacenamiento” para administrar el

almacenamiento físico. Desde siempre, los sistemas de archivos se estructuran a partir de

un solo único dispositivo físico. Para poder ocuparse de varios dispositivos y ofrecer 

redundancia de datos, se incorporó el concepto del administrador de volúmenes, con el fin

de ofrecer un único dispositivo y evitar que los sistemas de archivos tuvieran que

modificarse para aprovechar las ventajas de varios dispositivos. Este diseño significabaotro nivel de complejidad y obstaculizaba determinados avances en los sistemas de

archivos, al carecer de control sobre la ubicación física de los datos en los volúmenes

virtualizados.

 

El Cuando el cambio de 32 bits a 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

 

se habla de trillones —millones de millones de millones— de GB.

 

Tantos, que se considera prácticamente imposible que exista algún medio de

almacenamiento que pueda ser mayor que lo que se puede gestionar con ZFS

La capacidad de direccionar información de ZFS es tan grande, que lo que se hace es

distribuir los archivos en diferentes pools, o recursos de almacenamiento, que son

transparentes a la hora de acceder al sistema de archivos.

 

Es tanto asi que una referencia sobre la capacidad de ZFS en Wikipedia indica que si un

usuario crease 1000 ficheros por segundo, tardaría unos 9000 años en alcanzar el límite

impuesto por el número de ficheros.”.

ZFS elimina la gestión de volúmenes en conjunto. En vez de tener que crear 

volúmenes virtualizados, ZFS agrega dispositivos a un grupo de almacenamiento. El

grupo de almacenamiento describe las características físicas del almacenamiento

(organización del dispositivo, redundancia de datos, etc.) y actúa como almacén de datos

5

Page 6: Trabajo II-Particion ZFS

5/11/2018 Trabajo II-Particion ZFS - slidepdf.com

http://slidepdf.com/reader/full/trabajo-ii-particion-zfs 6/24

 

arbitrario en el que se pueden crear sistemas de archivos. Los sistemas de archivos ya se

limitan a dispositivos individuales y les permite compartir espacio con todos los sistemas

de archivos del grupo. Ya no es necesario predeterminar el tamaño de un sistema de

archivos, ya que el tamaño de los sistemas de archivos crece automáticamente en el

espacio asignado al grupo de almacenamiento. Al incorporar un nuevo almacenamiento,

todos los sistemas de archivos del grupo pueden usar de inmediato el espacio adicional

sin procesos complementarios. En muchos sentidos, el grupo de almacenamiento actúa

como sistema de memoria virtual. Si se agrega al sistema un módulo de memoria DIMM,

el sistema operativo no obliga a invocar algunos comandos para configurar la memoria y

asignarla a determinados procesos. Todos los procesos del sistema utilizan

automáticamente la memoria adicional.

Novedades de ZFS 

En ZFS se efectúa una suma de comprobación de todos los datos y metadatos

mediante un algoritmo seleccionable por el usuario. Los sistemas de archivos

tradicionales con suma de comprobación la efectúan por bloques obligatoriamente debido

a la capa de administración de volúmenes y la disposición del sistema de archivos

tradicional. El diseño tradicional significa que algunos modos de errores, por ejemplo la

escritura de un bloque completo en una ubicación incorrecta, pueden hacer que los datos

cuya suma de comprobación sea correcta no lo esté en realidad. Las sumas de

comprobación de ZFS se almacenan de forma que estos modos de error se detecten y

haya una recuperación eficaz. La recuperación de todos los datos y las sumas de

comprobación se efectúa en la capa del sistema de archivos, y es transparente para todas

las aplicaciones.

Asimismo, ZFS ofrece soluciones para la reparación automática de datos. Además

admite grupos de almacenamiento con diversos niveles de redundancia de datos que

incluyen la duplicación y un nuevo modelo de replicación de datos llamado RAID-Z, una

variación similar a RAID-5. Si se detecta un bloque de datos incorrecto, ZFS recupera los

6

Page 7: Trabajo II-Particion ZFS

5/11/2018 Trabajo II-Particion ZFS - slidepdf.com

http://slidepdf.com/reader/full/trabajo-ii-particion-zfs 7/24

 

datos correctos de otra copia redundante y repara los datos anómalos sustituyéndolos por 

la copia buena.

Figura 1 : Detección y recuperación de errores

FUNDAMENTOS DE ARQUITECTURA DE ZFS

• No más particiones

• El Pool de almacenamiento contiene discos y una estrategia de RAID

• El Sistemas de archivos está en pools

• Propiedades Adicionales del sistema de archivo :

• Maneja puntos de Montaje

• Permite exportar o no

• Posee opción de compresion o no

• Manejo de cuotas

• Reserva de Ancho de banda.

7

Page 8: Trabajo II-Particion ZFS

5/11/2018 Trabajo II-Particion ZFS - slidepdf.com

http://slidepdf.com/reader/full/trabajo-ii-particion-zfs 8/24

 

CARACTERISTICAS DE GESTION DE ZFS:

∗ Tamaño máximo de 256 cuatrillones de zettabytes (Un zettabyte es una unidad de almacenamientode información cuyo símbolo es el ZB, equivale a 1021 bytes.

∗  Administración 

sencilla por comandos o web.

(nos olvidamos de comandos como format, newfs, mount, vfstab, etc.)

∗ Copy-on-write

 (ZFS no sobrescribe los nuevos datos directamente, crea los datos en un nuevo

bloque y posteriormente cambia los punteros de datos y realiza la escritura

definitiva. Con este método siempre esta garantizada la integridad de los datos y

no es necesario el uso de utilidades como fsck ), Evita la secuencia de Leer –

Modificar – Escribir 

∗ Snapshots (capturas).

Podemos sacar un “foto” de forma rápida a todo un sistema de ficheros. Podemos

instalar un paquete en el sistema y si este no cumple nuestras expectativas

podemos realizar un rollback para volver al estado anterior.

∗ Comprensión.

Podemos definir un sistema de ficheros donde toda la información este

comprimida.

∗ Mirror y Raid-Z :

Se pueden definir de forma muy sencilla mirroring (Reflejo) entre discos y RAID-Z.

Actualmente cuando se trabaja con herramientas como Solaris Volume Manager 

hay que crear las particiones (slice), agrupar discos y crear la base de datos que

alberga la configuración y estado de todos los volúmenes. Todo esto implica la

ejecución de comandos como  prtvtoc , fmthard , metadb,metainit  y metaroot  sin

contar las modificaciones en el fcihero /etc/vfstab.

8

Page 9: Trabajo II-Particion ZFS

5/11/2018 Trabajo II-Particion ZFS - slidepdf.com

http://slidepdf.com/reader/full/trabajo-ii-particion-zfs 9/24

 

Con ZFS todo se resume a dos comandos zfs y zpool. Tal como podemos ver en

la figura 2, ZFS trabaja con un pool que está formado por todos los

dispositivos físicos.

Fig. 2: Comparación de almacenamientos

Las características del POOL son:

∗ El pool esta formado por dispositivos de almacenamiento de igual o

diferentes capacidades.

∗ El pool puede crecer y encoger añadiendo y quitando discos.

∗ Los sistemas de ficheros ZFS comparten el pool y se puede definir cuotas y

reservar de espacio para un solo sistema de ficheros.

ZFS abarca el concepto de hybrid storage pool el cual detectará automáticamente el tipo

de discos instalados y utilizará cada uno de ellos en función a sus propias características,

(y lo más interesante es que no debemos hacer nada para ello) - figura 3 -

9

Page 10: Trabajo II-Particion ZFS

5/11/2018 Trabajo II-Particion ZFS - slidepdf.com

http://slidepdf.com/reader/full/trabajo-ii-particion-zfs 10/24

 

  Figura 3 : conjunto de almacenamiento hibrido

Gestión del POOL

El pool esta formado por dispositivos de almacenamiento de igual o diferentes

capacidades, puede crecer y encoger añadiendo y quitando discos y los sistemas de

ficheros ZFS comparten el pool y se puede definir cuotas y reservar de espacio para un

solo sistema de ficheros.

Opciones de gestion:

• Añadir nuevos discos al pool para ampliar el espacio disponible en un pool

tenemos que añadir nuevos discos a la máquina o utilizar particiones (slices) no

usada en otro disco.

• Quitar discos al pool que forma parte del pool

• Eliminar un pool por completo y dejar los dispositivos libres para otro uso

• Reemplazar un disco del pool, en caso de que uno de los discos falle

• Crear un mirror (Raid 1)

• Crear un mirror desde un disco existente.

• Reemplazar un disco del mirror en caso de que uno de los discos falle y se tenga

que reemplazar 

• Crear RAID-Z, ZFS permite la creación de RAID-Z muy similar a RAID 5, el

cual se compone como mínimo de tres discos y en cada uno de ellos se reserva un

10

Page 11: Trabajo II-Particion ZFS

5/11/2018 Trabajo II-Particion ZFS - slidepdf.com

http://slidepdf.com/reader/full/trabajo-ii-particion-zfs 11/24

 

espacio con información de paridad. RAID-Z cuenta con ventajas como la paridad

distribuida simple y doble. La doble paridad permite asumir errores en uno dos

discos que componen el RAIDZ.

• Snapshots, son fotos de los datos de un sistema de ficheros, esto se hace de

forma instantánea y comparte el espacio de los datos no modificados. Tiene gran

utilidad para realizar modificaciones sobre servicios y si no funcionan realizar un

rollback de forma sencilla.

PROPIEDADES DE ZFS

Los sistemas de ficheros ZFS tienen propiedades que pueden ser activadas o

desactivadas según nuestras necesidades, algunas de ellas son:

∗ Creación cuotas y reserva de espacio

Realizar una reserva de espacio no implica un limite de cuota para el sistema de

ficheros este puede utilizar todo el tamaño del pool además se pueden combinar 

las opciones de cuota y reserva para un sistema de ficheros.

∗ Sistema de ficheros comprimido

∗ Sistema de ficheros de solo lectura 

∗ Permite cambiar el punto de montaje

Nota:

Los sistemas de ficheros creados con ZFS se montan automáticamente y de forma

persistente

11

Page 12: Trabajo II-Particion ZFS

5/11/2018 Trabajo II-Particion ZFS - slidepdf.com

http://slidepdf.com/reader/full/trabajo-ii-particion-zfs 12/24

 

LIMITACIONES DE ZFS

Existen una serie de limitaciones que están mejor explicadas en la entrada en inglés de la

wikipedia. Reproduzco algunas aquí.

• 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.

Estados de ZFS

Los estados posibles son:

• ONLINE: el dispositivo está operando normalmente.

• DEGRADED: el dispositivo virtual tiene fallos pero continúa en funcionamiento.

Este caso de puede dar cuando falla un dispositivo que forma parte de un RAIDZ.

Hay que sustituir lo antes posible dispositivo dañado.

• OFFLINE: dispositivo parado manualmente por el administrador.

• UNAVAILABLE: dispositivo no disponible. Este estado es el siguiente a

DEGRADED cuando finalmente el dispositivo es inaccesible.

12

Page 13: Trabajo II-Particion ZFS

5/11/2018 Trabajo II-Particion ZFS - slidepdf.com

http://slidepdf.com/reader/full/trabajo-ii-particion-zfs 13/24

 

COMPONENTES DE ZFS

ZFS tiene seis componentes:

• Un front-end (FE)

(De forma general, front-end hace referencia al estado inicial de un proceso)

• Una memoria caché de cooperación (CACHE)

• Un administrador de archivos (FMGR)

• Un administrador de concesiones (LMGR)

• Un gestor de transacciones (TMGR)

• y Un almacén de objetos (OBS).

Estos componentes trabajan juntos para proporcionar interacción a aplicaciones/usuarios

en un sistema de archivos distribuido.

ESTRUCTURA DEL SISTEMA DE ARCHIVOS ZFS

ZFS administra los sistemas de archivos a través de una jerarquía que permite la

administración simplificada de propiedades como cuotas, reservas, compresión y puntos

de montaje. En este modelo, los sistemas de archivos se convierten en el punto central de

control. Los sistemas de archivos son muy sencillos (equivalen a un nuevo directorio), de

manera que se recomienda crear un sistema de archivos para cada usuario, proyecto,

espacio de trabajo, etc. Este diseño permite definir los puntos de administración de forma

detallada.

ZFS está compuesto de 7 diferentes piezas:

SPA (Storage Pool Allocator)

DSL (Dataset and Snapshot Layer)

DMU (Data Management Layer)

ZAP (ZFS Attribute Processor)

ZPL (ZFS Posix Layer)

ZIL (ZFS Intent Log)

13

Page 14: Trabajo II-Particion ZFS

5/11/2018 Trabajo II-Particion ZFS - slidepdf.com

http://slidepdf.com/reader/full/trabajo-ii-particion-zfs 14/24

 

ZVOL (ZFS Volume)

Fig. 4: Diagrama de ZFS - (Almacenamiento General)

SPA (Pool de configuración)

Mientras que la capa entera del conjunto de almacenamiento

 

la piscina se refiere a

menudo como el SPA

 

(Becario de agrupaciones de almacenamiento), la parte de

configuración es realmente la interfaz pública. Es responsable de encolar las capas ZIO

 

y

 

 /vdev  en un objeto de grupo consistente. Incluye rutinas para crear y destruir los pool

 

piscinas de su información de configuración, así como sincronizar los datos

 

a la /

 

vdevs a

intervalos regulares. 

DSL (conjunto de datos y la capa de instantáneas)

Los agregados DSL DMU objsets en un espacio de nombres jerárquico, con las

propiedades heredadas, así como las cuotas y la aplicación de reservas. También es

responsable de la gestión de instantáneas y clones de objsets.

DMU (Unidad de Gestión de Datos)

La DMU es responsable de presentar un modelo de objeto transaccional,

construido sobre el espacio de direcciones plano presentado por la SPA. Los

 

consumidores usuarios interactúan con la DMU a través de objsets, objetos, y las

transacciones. Un objset es una colección de objetos, donde cada objeto es una pieza

arbitraria de almacenamiento de la SPA. Cada transacción es una serie de operaciones

que deben estar comprometidos en el disco como un grupo, sino que es fundamental para

la consistencia en el disco de ZFS.

14

Page 15: Trabajo II-Particion ZFS

5/11/2018 Trabajo II-Particion ZFS - slidepdf.com

http://slidepdf.com/reader/full/trabajo-ii-particion-zfs 15/24

 

ZAP (procesador de ZFS atributo)

El ZAP se encuentra encima de la DMU, utiliza algoritmos hash escalable para

crear 

 

en forma arbitraria (nombre, objeto) las asociaciones dentro de un objset. Es más

comúnmente usado para implementar directorios dentro de la ZPL, pero también se utiliza

ampliamente en todo el DSL, así como un método para almacenar todas las propiedades

del conjunto de almacenamiento.

 

la piscina propiedades. Hay dos algoritmos ZAP muy

diferentes, diseñados para diferentes tipos de directorios. El "zapping micro" se utiliza

cuando el número de entradas es relativamente pequeño y cada entrada es

razonablemente corta. El "zapping grasa" se utiliza para grandes directorios, o los que

tienen nombres muy largos.

ZPL (ZFS POSIX Layer)

La ZPL es la interfaz principal para interactuar con ZFS como sistema de archivos.

Se trata de una capa

 

de delgada (relativamente) que se sienta encima de la DMU y

presenta una abstracción del sistema de ficheros de archivos y directorios. Es el

responsable de cerrar la brecha entre los interfaces de OpenSolaris VFS y las interfaces

DMU subyacente. También es responsable de hacer cumplir las ACL (Access Control List)

las normas, así como la semántica síncrona (O_DSYNC).

ZIL (ZFS Intent Log)

Mientras que ZFS proporciona datos consistentes siempre en el disco, se sigue la

semántica tradicional sistema de ficheros donde la mayoría de los datos no se escriben en

el disco inmediatamente, de lo contrario el rendimiento sería patológicamente lento. Sin

embargo, hay aplicaciones que requieren una semántica más estrictas en el que se

garantiza que los datos que en el disco en el momento de la lectura (2) o write (2)

devuelve la llamada. Para aquellas aplicaciones que requieren este comportamiento

(especificado con O_DSYNC), el ZIL ofrece la semántica necesaria utilizando un eficiente

por conjunto de datos de registro de transacciones que se pueden reproducir en el caso

de un accidente.

15

Page 16: Trabajo II-Particion ZFS

5/11/2018 Trabajo II-Particion ZFS - slidepdf.com

http://slidepdf.com/reader/full/trabajo-ii-particion-zfs 16/24

 

ZVOL ( 

 

controlador - emulador de volumen ZFS)

ZFS incluye la capacidad de presentar los dispositivos de

 

primas respaldado por 

espacio de una agrupación de almacenamiento. Estos son conocidos como 'zvols' dentro

del código fuente, y se lleva a cabo por un único archivo en la fuente de ZFS.

ZFS puede reconocerse por 3 componentes: ZPL (ZFS POSIX Layer - Capa POSIX ZFS),

DMU  (Data Management Unit – Unidad administradora de datos) y SPA  (Storage Pool

Allocator – Localizador de grupo de almacenamiento). Estos servicios incluyen una

estructura interna más compleja.

Fig. 5: Vision General de capas y procesos de ZFS.

16

Page 17: Trabajo II-Particion ZFS

5/11/2018 Trabajo II-Particion ZFS - slidepdf.com

http://slidepdf.com/reader/full/trabajo-ii-particion-zfs 17/24

 

LA GESTION DE LOS DATOS

En primer lugar, todos los filesystems ofrecen métodos para crear, borrar, mover,

copiar y renombrar archivos y directorios. A eso se agregan otras características muy

importantes como la gestión de permisos, enlaces (hard links y symbolic links),

mecanismos para evitar la fragmentación, mecanismos para asegurar la integridad de los

datos (como el journaling, utilizado por ext3, ext4, NTFS, ReiserFS, entre otros), y

métodos de gestión de RAIDs entre otras cosas. Como indica la gente de Sun, ZFS es

una nueva aproximación a la organización de la información, orientada a evitar conceptos

obsoletos y reducir la complejidad de código, produciendo un sistema de archivos sencillo

de administrar, con énfasis en la integridad de los datos y la escalabilidad.

Una de las características principales de ZFS es que la estructura en el disco del

sistema de archivos se mantiene siempre, siempre, siempre válida. Da igual en qué

momento quites el cable eléctrico del ordenador mientras lo usas: ZFS te garantiza que la

estructura del sistema de archivos será siempre válida. Es técnicamente imposible

encontrar un momento en el que sea posible tirar del cable y encontrar algún problema.

No se trata de journaling: (Un sistema de archivos con journaling si que deja el sistema de

archivos en estados inconsistentes, pero deja un “journal” de operaciones no finalizadas

que permite reparar esas inconsistencias en pocos segundos). ZFS jamás puede llegar a

un estado de inconsistencia, por eso no usa journaling: no lo necesita (y se gana algo de

rendimiento con ello).

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 uno de 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.

17

Page 18: Trabajo II-Particion ZFS

5/11/2018 Trabajo II-Particion ZFS - slidepdf.com

http://slidepdf.com/reader/full/trabajo-ii-particion-zfs 18/24

 

LECTURA Y ESCRITURA

ZFS consigue que lo anterior sea así porque los cambios al sistema de archivos se

hacen de forma transaccional:

Cuando se modifica un archivo, a diferencia de un sistema de archivos tradicional, que

trata de reescribir los datos antiguos, lo que se hace es escribir el archivo modificado a

una parte del disco que no esté siendo utilizada, y una vez que está escrito ese archivo,

se modifica de forma atómica el “puntero” que apuntaba al viejo archivo hacia el nuevo.

Esa modificación o se lleva a cabo o no, nunca se queda a la mitad, por tanto en caso de

fallo, el sistema de archivos se quedará apuntando al viejo archivo o al nuevo, pero no

habrá inconsistencias. Por eso, jamás se reescriben los bloques utilizados por el archivo

viejo, se escriben siempre en un sitio nuevo y vacío (algo que, por cierto, implica

fragmentación).

Además si unimos a esto el checksumming que se mantienen de todas las estructuras de

datos del disco y el Raid-Z con autocuración, es posible visualizar que en una

configuración Raid-Z todo el sistema de archivos está duplicado en más de un sistema de

archivos -incluso puede activarse la duplicación dentro de un mismo sistema de archivos-,

y si se encuentra un fallo al comprobar el checksum, se sabe que ha ocurrido un error y

se corrige con una de las copias.

El complejo formato de punteros de bloque también proporciona que los metadatos del

sistema de ficheros se almacenen de manera adaptada al Endianness de la máquina,

permitiendo en un almacenamiento que contiene un pool ZFS se mueva entre sistemas

que utilizan diferente orden para los bytes. Los bloques individuales de metadatos se

escriben con el orden de bytes nativo del sistema que escribe el bloque.

Cuando se lee, si el endianness no coincide, los bytes del metadato se intercambian en

memoria. Como cabe esperar en los sistemas POSIX, desde el punto de vista de las

aplicaciones, los ficheros son arrays de bytes, de manera que las aplicaciones siguen

18

Page 19: Trabajo II-Particion ZFS

5/11/2018 Trabajo II-Particion ZFS - slidepdf.com

http://slidepdf.com/reader/full/trabajo-ii-particion-zfs 19/24

 

siendo responsables de copiar los datos de los ficheros con cualquier intercambio de

bytes que sea necesario.

ZFS tiene una tabla simple de control de prioridades de lectura/escribir, se da una

mayor prioridad a la lectura, con limitaciones para evitar cuelgues en la escritura, la

mayoría de lo que se escribe va a la caché y se vuelcan por los servicios y/o procesos

(daemons ) de fondo mientras que lee aplicaciones de bloque.

Protocolo para la Lectura de archivos

La operación se detalla a continuación:

• FE mira hacia arriba “nodo superior” a travéz del puntero de archivos “fsptr ”

• Si la lectura puede ser completada por los bloques de archivos almacenados

localmente en caché entonces los datos solicitados se devuelven al usuario y

retorna.

• Una peticion de lectura se envía a la FMGR del archivo y la FE, y la caché espera

que la peticion sea satisfecha.

• La FMGR controla y si es necesario asegura los bloques solicitados

• La FMGR controla si otros cachés contienen los bloques solicitados del archivo y

hace lo siguiente:

Si es Verdad

- Reenvia por sobre el rango de byte asegurando la solicitud de lectura y la

direccion solicitando FE (front-end)

- Deja al solicitante en la cache

- FE (hace referencia al estado inicial del proceso ) en el host que soporta

los bloque solicitados

De lo contrario

- Reenvia por sobre el rango de byte asegurando la solicitud de lectura y la

direccion solicitando FE (front-end)

- El solicitante, en el OSD solicita la contencion los bloque solicitados

19

Page 20: Trabajo II-Particion ZFS

5/11/2018 Trabajo II-Particion ZFS - slidepdf.com

http://slidepdf.com/reader/full/trabajo-ii-particion-zfs 20/24

 

• La FE/Cache en el Host o el OSD envía los bloques de datos que se solicitan y

confirma si fueron segurados al solicitante.

Definimos los escenarios anteriores como la comunicación de tercero, es decir la parte

que pasa los datos reales no pertenecen al mismo grupo de datos que fue solicitado.

La Figura 6 muestra el control y canales de información para la lectura (de archivos, etc.)

y en ambos casos la solicitud se envíaa la FMGR mientras los datos lleguen bien de otro

caché o desde el OSD

componetes de zfs

20

Page 21: Trabajo II-Particion ZFS

5/11/2018 Trabajo II-Particion ZFS - slidepdf.com

http://slidepdf.com/reader/full/trabajo-ii-particion-zfs 21/24

 

Figura 6: Proceso de Lectura

Protocolo de Escritura de archivos

Sobre el supuesto de que se llevaron a cabo las operaciones de lectura por varios

usuarios en el archivo y que algunos de sus bloques de datos residen en varios cachés.

Después de un periodo de tiempo, un usuario desea escribir el fichero, el proceso es el

siguiente:

(a) FE envia la peticion de escritura a FMgr 

(b) Fmgr chequea si otros cachés tienen bloques del archivo y hacen lo siguiente:

(1) Revocar todas las concesiones de lectura en el objeto ( archivo) cuya area de

distribución se sobrepone con el area de lectura, para tal efecto se envían

Messages a los varios cachés. Se debe tener en cuenta que se debe esperar para

el reconocimiento desde el o los cachés, de lo contrario los clientes pueden leer 

datos incorrectos

(2) Revocar todas las concesiones de escribir sobrepuestas, ésto puede requerir 

la limpieza del buffers en el disco-objeto

(3) Crea una regla para una zona segura de escritura para el rango especificado

21

Page 22: Trabajo II-Particion ZFS

5/11/2018 Trabajo II-Particion ZFS - slidepdf.com

http://slidepdf.com/reader/full/trabajo-ii-particion-zfs 22/24

 

(c) si el bloque de datos no está en el caché local ( completamente) y los datos no se

ajustan a los limites de las paginas entonces se lee en las paginas apropiadas dentro de

la caché.

(d) Escribe los datos en el bloque de la caché correcto

(e) Retorna los resultados correctos ( numero de bytes escritos o codigo de error o

codigos de error como la semántica de la escritura requiere) hacia la FE que le pasa al

usuario.

La Figura 7 muestra el control y canales de información para la operación de Escritura.

Figura 7 : Proceso de escritura

22

Page 23: Trabajo II-Particion ZFS

5/11/2018 Trabajo II-Particion ZFS - slidepdf.com

http://slidepdf.com/reader/full/trabajo-ii-particion-zfs 23/24

 

C ONCLUSION

En el desarrollo del trabajo realizado, se ha dado a conocer un sistema de gestión

de archivos tecnología revolucionaria que supera los actuales límites de almacenamiento

 

dando origen a formatos de información que requieren bastante procesamiento para su 

 

uso por lo que para que un sistema opere con ZFS necesita de emuladores para operar 

 

en las capas intermedias dado que las tecnologías aún no manejan de manera nativa el 

 

número de 128 bits.

ZFS es hoy el sistema de gestión de ficheros mas avanzado y flexible dado sus

características, entre las que destacan la integridad tanto de los ficheros como de los

metadatos, la flexibilidad en la gestión el rendimiento, los snapshots automáticos y un

largo repertorio de características, facilita el almacenamiento de grandes cantidades de

datos e integra conceptos como la gestión de volúmenes a los tradicionales de la gestión

de archivos. Es un sistema bastante reciente, lo que le permite lidiar bien con problemas

tradicionales que presentan otros sistemas de ficheros cuyos orígenes se remontan más

atrás en el tiempo y que han tenido que incorporar mejoras conforme los tiempos y las

necesidades cambiaban

Una de las caracteristicas que más llamó la antención en éste trabajo de

investigación es el hecho de poder adicionar en cualquier momento diversos medios de

23

Page 24: Trabajo II-Particion ZFS

5/11/2018 Trabajo II-Particion ZFS - slidepdf.com

http://slidepdf.com/reader/full/trabajo-ii-particion-zfs 24/24

 

almacenamientos masivo al pool de almacenamiento siendo capaz de poder trabajar con

cada uno de ellos independiente de sus caracteristicas y manteniendo su integridad.

Respecto al proceso de Lectura y Escritura es quizas hoy en dia el único sistema

de archivos capaz de garantizar los datos independientemente de los errores que se

generen

 

Creemos que el desafío está en profundizar cada uno de los tópicos que se mencionaron

y otros aspectos que no se consideraron quizas por salirse del marco de investigación

establecido durante la presentación y en la confección de este informe.

FUENTES Y REFERENCIAS

http://es.wikipedia.org/wiki/ZFS_(sistema_de_archivos)

http://hub.opensolaris.org/bin/view/Community+Group+zfs/source

http://download.oracle.com/docs/cd/E24842_01/html/820-2314/gbchy.html

http://wiki.genunix.org/wiki/index.php/ZFS#Operaciones_entrada_y_salida

http://www.faq-mac.com/42313/zfs-retorna-mac-os-x-mano-ten-s-complement-llc

http://haruhismo.wordpress.com/2007/10/13/sistema-de-ficheros-zfs/

24