Articulo de referencia

Diseño de archivo para escritura en cualquier lugar

{{Cite web|url=https://library.netapp.com/ecmdocs/ECMP1196906/html/GUID-AA1419CF-50AB-41FF-A73C-C401741C847C.html|title=Storage limits|website=library.netapp.com}} "},"dates_rec...

El sistema de archivos Write Anywhere File Layout ( WAFL ) es un sistema de archivos propietario que admite matrices RAID grandes y de alto rendimiento , reinicios rápidos sin comprobaciones de coherencia prolongadas en caso de fallo o corte de energía, y permite aumentar rápidamente el tamaño de los sistemas de archivos. Fue diseñado por NetApp para su uso en sus dispositivos de almacenamiento como NetApp FAS, AFF , Cloud Volumes ONTAP y ONTAP Select .

Su autor afirma que WAFL no es un sistema de archivos, aunque incluye uno. [ 3 ] Rastrea los cambios de manera similar a los sistemas de archivos con registro de transacciones como registros (conocidos como NVLOGs) en un dispositivo de almacenamiento de memoria dedicado de memoria de acceso aleatorio no volátil , denominado NVRAM o NVMEM. WAFL proporciona mecanismos que permiten una variedad de sistemas de archivos y tecnologías que desean acceder a bloques de disco .

Diseño

Estructura de inodo WAFL, metadatos almacenados junto con los datos

WAFL almacena metadatos, además de datos, en archivos; los metadatos, como los inodos y los mapas de bloques que indican qué bloques del volumen están asignados, no se almacenan en ubicaciones fijas del sistema de archivos. El archivo de nivel superior de un volumen es el archivo de inodos, que contiene los inodos de todos los demás archivos; el inodo del propio archivo de inodos, denominado inodo raíz, se almacena en un bloque con una ubicación fija. Un inodo para un archivo suficientemente pequeño contiene el contenido del archivo; de lo contrario, contiene una lista de punteros a bloques de datos del archivo o una lista de punteros a bloques indirectos que contienen listas de punteros a bloques de datos del archivo, y así sucesivamente, con tantas capas de bloques indirectos como sean necesarias, formando un árbol de bloques. Todos los bloques de datos y metadatos del sistema de archivos, excepto el bloque que contiene el inodo raíz, se almacenan en archivos del sistema de archivos. Por lo tanto, el inodo raíz se puede utilizar para localizar todos los bloques de todos los archivos, excepto el archivo de inodos. [ 4 ]

La memoria principal se utiliza como caché de páginas para los bloques de los archivos. Cuando se modifica un bloque de un archivo, la copia en la caché de páginas se actualiza y se marca como modificada, y la diferencia se registra en la memoria no volátil en un archivo de registro llamado NVLOG . Si el bloque modificado en la caché de páginas se va a escribir en el almacenamiento permanente, no se reescribe en el bloque del que se leyó; en su lugar, se asigna un nuevo bloque en el almacenamiento permanente, el contenido del bloque se escribe en la nueva ubicación y el inodo o bloque indirecto que apuntaba al bloque en cuestión se actualiza en la memoria principal. Si el bloque que contiene el inodo, o el bloque indirecto, se va a escribir en el almacenamiento permanente, también se escribe en una nueva ubicación, en lugar de sobrescribirse en su posición anterior. A esto se refiere la expresión "Write Anywhere" en "Write Anywhere File Layout". [ 4 ]

Como todos los bloques, excepto el que contiene el inodo raíz, se encuentran a través del inodo raíz, ninguno de los cambios escritos en la memoria permanente es visible en ella hasta que se actualiza el inodo raíz. El inodo raíz se actualiza mediante un proceso llamado punto de consistencia , en el que todos los bloques modificados que aún no se han escrito en la memoria permanente se escriben en ella, y se escribe un nuevo inodo raíz que apunta a los bloques de la nueva versión del archivo de inodos. En ese momento, todos los cambios en el sistema de archivos son visibles en la memoria permanente, utilizando el nuevo inodo raíz. Las entradas de NVLOG correspondientes a los cambios que ahora son visibles se descartan para dejar espacio para las entradas de registro de los cambios posteriores. Los puntos de consistencia se realizan periódicamente o cuando la memoria no volátil está a punto de llenarse de entradas de registro. [ 4 ]

Si el servidor falla antes de que todos los cambios realizados en un sistema de archivos sean visibles en un punto de consistencia, los cambios que no se hayan hecho visibles seguirán estando en el NVLOG; cuando el servidor se reinicia, reproduce todas las entradas del NVLOG, volviendo a realizar los cambios registrados en el NVLOG, de modo que no se pierdan.

Características

Como se mencionó anteriormente, WAFL no almacena datos ni metadatos en ubicaciones predeterminadas del disco. En cambio, coloca automáticamente los datos utilizando la localidad temporal para escribir los metadatos junto con los datos del usuario, de manera que se minimice la cantidad de operaciones de disco necesarias para confirmar los datos en un almacenamiento de disco estable mediante RAID basado en paridad simple y doble.

El uso de una ubicación de datos basada en la localidad temporal de referencia puede mejorar el rendimiento de la lectura de conjuntos de datos que se leen de forma similar a como se escribieron (por ejemplo, un registro de base de datos y su entrada de índice asociada); sin embargo, también puede causar fragmentación desde la perspectiva de la localidad espacial de referencia. En los discos duros tradicionales , esto no afecta negativamente a los archivos que se escriben secuencialmente, se leen aleatoriamente o se leen posteriormente utilizando el mismo patrón temporal, pero sí afecta a los patrones de acceso a datos espaciales de lectura secuencial después de escritura aleatoria, ya que el cabezal magnético solo puede estar en una posición a la vez para leer datos del plato, mientras que la fragmentación no tiene efecto en las unidades SSD .

Las versiones de ONTAP desde la 7.3.1 han incluido varias técnicas para optimizar la distribución espacial de los datos, como el comando `reallocate` para realizar la desfragmentación programada y manual , y la opción de volumen `Write after Reading`, que detecta y corrige automáticamente los patrones de acceso a datos subóptimos causados ​​por la fragmentación espacial. Las versiones de ONTAP 8.1.1 incluyen otras técnicas para optimizar automáticamente el espacio libre contiguo dentro del sistema de archivos, lo que también ayuda a mantener distribuciones de datos óptimas para la mayoría de los patrones de acceso a datos. Antes de la versión 7G, el comando `wafl scan reallocate` debía invocarse desde un nivel de privilegio avanzado y no podía programarse. Las versiones de ONTAP desde la 9.1 han incluido varias técnicas para optimizar el uso de SSD, como la compactación de datos en línea (en la versión 9.1), comenzando con la funcionalidad FabricPool de ONTAP 9.2 para la estratificación automática de datos poco frecuentes al almacenamiento S3 lento y viceversa si es necesario para los agregados SSD , y la deduplicación de volumen cruzado dentro de un agregado con un máximo de 800 TiB para cada agregado. [ 5 ]

Instantáneas

Copia de seguridad de datos in situ mediante la técnica tradicional de copia en escritura (COP ON)
Copia de seguridad in situ de datos NetApp RoW Snapshot

WAFL admite instantáneas , que son copias de solo lectura de un sistema de archivos. Las instantáneas se crean realizando las mismas operaciones que se realizan en un punto de consistencia, pero, en lugar de actualizar el inodo raíz correspondiente al estado actual del sistema de archivos, se guarda una copia del inodo raíz. Dado que todos los datos y metadatos de un sistema de archivos se pueden encontrar en el inodo raíz, todos los datos y metadatos de un sistema de archivos, en el momento en que se crea la instantánea, se pueden encontrar en la copia del inodo raíz de la instantánea. No es necesario copiar ningún otro dato para crear una instantánea. [ 4 ]

Los bloques se asignan al escribir utilizando un mapa de bloques, que mantiene un registro de qué bloques están en uso y cuáles están libres. Una entrada en el mapa de bloques contiene un bit que indica si el bloque está en uso en la versión actual del sistema de archivos y varios bits, uno por instantánea, que indican si el bloque está en uso en la instantánea. Esto garantiza que los datos en una instantánea no se sobrescriban hasta que la instantánea se elimine. Usando el mapa de bloques, todas las nuevas escrituras y reescrituras se escriben en nuevos bloques vacíos, WAFL solo informa que la reescritura del bloque fue exitosa, pero en realidad no ocurren reescrituras, este enfoque se llama técnica de redirección en escritura (ROW). [ 4 ] ROW es mucho más rápido en operaciones de reescritura en comparación con Copia en escritura, donde el bloque de datos antiguo que se va a reescribir en el lugar y se captura en una instantánea debe copiarse primero al espacio asignado para la reserva de instantáneas para preservar los datos originales, esto genera operaciones de copia de datos adicionales una vez que el sistema obtiene reescrituras en ese bloque.

Las instantáneas proporcionan copias de seguridad en línea a las que se puede acceder rápidamente, a través de directorios ocultos especiales en el sistema de archivos, lo que permite a los usuarios recuperar archivos que se hayan eliminado o modificado accidentalmente. [ 4 ]

El sistema operativo Data ONTAP Release 7G de NetApp admite una función de instantánea de lectura y escritura llamada FlexClone . Las instantáneas son la base de tecnologías como SnapMirror , SnapVault y Online Volume Move, mientras que funciones como FlexClone , SnapLock y SnapRestore, que se asemejan a las instantáneas, aprovechan las capacidades y propiedades de WAFL, como la manipulación de inodos. A partir de ONTAP 9.4, el número máximo de instantáneas admitidas para cada FlexVol es de 1024, mientras que en versiones anteriores el límite máximo era de 255.

A partir de ONTAP 9.5, se agregó la funcionalidad de compartir instantáneas para ejecutar un análisis de deduplicación en el sistema de archivos activo y las instantáneas. El ahorro resultante de la deduplicación es proporcional al número de instantáneas. Antes de la versión 9.5, los datos no deduplicados bloqueados en una instantánea no podían ser utilizados por el proceso de deduplicación, que solo se ejecutaba en el sistema de archivos activo.

Modelo de archivos y directorios

Una característica importante de WAFL es su compatibilidad con un modelo de archivos y directorios de estilo Unix para clientes NFS y un modelo de archivos y directorios de estilo Microsoft Windows para clientes SMB . WAFL también admite ambos modelos de seguridad, incluyendo un modo donde diferentes archivos en el mismo volumen pueden tener diferentes atributos de seguridad asociados. Unix puede usar [ 6 ] listas de control de acceso (ACL) o una máscara de bits simple, mientras que el modelo más reciente de Windows se basa en listas de control de acceso. Estas dos características permiten escribir un archivo en un sistema de archivos en red de tipo SMB y acceder a él posteriormente a través de NFS desde una estación de trabajo Unix. Además de archivos ordinarios, WAFL puede contener contenedores de archivos llamados LUN con atributos especiales necesarios, como el número de serie LUN para dispositivos de bloques, a los que se puede acceder mediante protocolos SAN que se ejecutan en el software ONTAP OS.

FlexVol

Diseño WAFL FlexVol: bloques y metadatos de inodos junto con datos de usuario.

Cada Volumen Flexible (FlexVol) es un sistema de archivos WAFL independiente, ubicado en un agregado y distribuido entre todos los discos del mismo. Cada agregado puede contener, y generalmente contiene, varios volúmenes FlexVol. Durante el proceso de optimización de datos, incluido el "Tetris" que finaliza con Puntos de Consistencia (ver NVRAM ), ONTAP está programado para distribuir uniformemente los bloques de datos en cada volumen FlexVol entre todos los discos del agregado, de modo que cada FlexVol pueda utilizar potencialmente todo el rendimiento disponible de todos los discos de datos del agregado. Con este enfoque de distribución uniforme de bloques de datos entre todos los discos de datos de un agregado, la limitación del rendimiento para un FlexVol se puede realizar dinámicamente con QoS de almacenamiento y no requiere agregados dedicados ni grupos RAID para cada FlexVol para garantizar el rendimiento y proporcionar el rendimiento no utilizado a un volumen FlexVol que lo requiera. Cada FlexVol se puede configurar como espacio de aprovisionamiento grueso o delgado y posteriormente se puede cambiar sobre la marcha en cualquier momento. El acceso a dispositivos de bloques con protocolos de red de área de almacenamiento (SAN) como iSCSI , Fibre Channel (FC) y Fibre Channel over Ethernet (FCoE) se realiza mediante emulación de LUN, similar a la técnica de dispositivo Loop , sobre un volumen FlexVol. De esta forma, cada LUN en el sistema de archivos WAFL aparece como un archivo, pero con propiedades adicionales necesarias para dispositivos de bloques. Los LUN también se pueden configurar con aprovisionamiento grueso o ligero , y se pueden modificar posteriormente sobre la marcha. Debido a la arquitectura WAFL, los FlexVol y los LUN pueden aumentar o disminuir el uso del espacio configurado sobre la marcha. Si un FlexVol contiene datos, el espacio interno se puede reducir en la misma cantidad que el espacio utilizado. Aunque el tamaño del LUN con datos se puede reducir en el sistema de archivos WAFL, ONTAP desconoce la estructura de bloques de nivel superior debido a la arquitectura SAN, por lo que podría truncar los datos y dañar el sistema de archivos en ese LUN. Por lo tanto, el host debe migrar los bloques que contienen los datos a un nuevo límite de LUN para evitar la pérdida de datos. Cada FlexVol puede tener sus propias políticas de QoS , FlashPool , FlasCache o FabricPool .

Si se crean dos volúmenes FlexVol, cada uno en dos agregados pertenecientes a dos controladores diferentes, y el administrador del sistema necesita usar espacio de estos volúmenes mediante un protocolo NAS, entonces creará dos recursos compartidos de archivos, uno en cada volumen. En este caso, lo más probable es que el administrador incluso cree direcciones IP diferentes; cada una se usará para acceder a un recurso compartido de archivos dedicado. Cada volumen tendrá una única afinidad de escritura y habrá dos depósitos de espacio. Sin embargo, incluso si dos volúmenes residen en un solo controlador, por ejemplo, en un solo agregado (por lo que si existe un segundo agregado, no se usará en este caso) y se accede a ambos volúmenes a través de una sola dirección IP, seguirá habiendo dos afinidades de escritura, una en cada volumen, y siempre habrá dos depósitos de espacio separados. Por lo tanto, cuantos más volúmenes tenga, más afinidades de escritura tendrá (mejor paralelización y, por lo tanto, mejor utilización de la CPU), pero entonces tendrá varios volúmenes (y varios depósitos de espacio, por lo que habrá varios recursos compartidos de archivos).

Plexos

Replicación de SyncMirror mediante plexos

De forma similar a RAID 1 , los plexos en los sistemas ONTAP pueden mantener datos duplicados en dos ubicaciones, pero mientras que el RAID-1 convencional debe existir dentro de los límites de un sistema de almacenamiento, dos plexos pueden distribuirse entre dos sistemas de almacenamiento. Cada agregado consta de uno o dos plexos. Los sistemas de almacenamiento HA convencionales tienen solo un plexo por cada agregado, mientras que las configuraciones locales de SyncMirror o MetroCluster pueden tener dos plexos por cada agregado. Por otro lado, cada plexo incluye espacio de almacenamiento subyacente de uno o más grupos RAID de NetApp o LUN de sistemas de almacenamiento de terceros (consulte FlexArray ) en un solo plexo de forma similar a RAID 0. Si un agregado consta de dos plexos, uno se considera maestro y el segundo esclavo; los esclavos deben constar exactamente de la misma configuración RAID y unidades. Por ejemplo, si tenemos un agregado formado por dos plexos donde el plexo maestro consta de 21 unidades de datos y 3 unidades de paridad SAS de 1,8 TB en RAID-TEC, entonces el plexo esclavo debe constar de 21 unidades de datos y 3 unidades de paridad SAS de 1,8 TB en RAID-TEC. El segundo ejemplo, si tenemos un agregado formado por dos plexos donde el plexo maestro consta de una unidad RAID 17 de datos y 3 unidades de paridad SAS de 1,8 TB configurada como RAID-TEC y el segundo RAID en el plexo maestro es RAID-DP con 2 unidades de datos y 2 unidades de paridad SSD de 960 GB. El segundo plexo debe tener la misma configuración: una unidad RAID 17 de datos y 3 unidades de paridad SAS de 1,8 TB configurada como RAID-TEC, y el segundo RAID en el plexo esclavo es RAID-DP con 2 unidades de datos y 2 unidades de paridad SSD de 960 GB. Las configuraciones de MetroCluster utilizan la tecnología SyncMirror para la replicación síncrona de datos. Existen dos opciones de SyncMirror: MetroCluster y Local SyncMirror, ambas empleando la misma técnica de plex para la replicación síncrona de datos entre dos plexes. Local SyncMirror crea ambos plexes en un único controlador y se suele utilizar para mayor seguridad, evitando fallos en toda una unidad de disco de un sistema de almacenamiento. MetroCluster permite replicar datos entre dos sistemas de almacenamiento. Cada sistema puede constar de un controlador o configurarse como un par de alta disponibilidad (HA) con dos controladores. En un par HA, es posible tener dos controladores en chasis separados, con una distancia de decenas de metros entre ellos, mientras que en la configuración de MetroCluster la distancia puede alcanzar los 300  km.

Memoria no volátil

Duplicación de caché de memoria no volátil en un MetroCluster y alta disponibilidad

Al igual que muchos competidores, los sistemas NetApp ONTAP utilizan la memoria como un medio de almacenamiento mucho más rápido para aceptar y almacenar en caché datos de los hosts y, lo que es más importante, para la optimización de datos antes de las escrituras, lo que mejora considerablemente el rendimiento de dichos sistemas de almacenamiento. Mientras que los competidores utilizan ampliamente la memoria de acceso aleatorio no volátil (NVRAM) para preservar los datos durante eventos inesperados como un reinicio, tanto para el almacenamiento en caché de escritura como para la optimización de datos, los sistemas NetApp ONTAP utilizan memoria de acceso aleatorio (RAM) convencional para la optimización de datos y NVRAM o NVDIMM dedicada para el registro de los datos iniciales en un estado inalterado tal como provienen de los hosts, de forma similar al registro de transacciones que se realiza en las bases de datos relacionales . Por lo tanto, en caso de desastre, la RAM se borrará automáticamente después del reinicio, y los datos almacenados en la memoria no volátil en forma de registros llamados NVLOGs sobrevivirán después del reinicio y se utilizarán para restaurar la consistencia. Todos los cambios y optimizaciones en los sistemas ONTAP se realizan únicamente en la RAM, lo que ayuda a reducir el tamaño de la memoria no volátil para los sistemas ONTAP. Después de las optimizaciones, los datos de los hosts se estructuran de forma similar al Tetris, se optimizan y preparan pasando por varias etapas (es decir, WAFL y RAID) para escribirse en los discos subyacentes en grupos RAID en el agregado donde se almacenarán los datos. Después de las optimizaciones, los datos se escribirán secuencialmente en los discos como parte de la transacción del Punto de Consistencia (CP). Los datos escritos en los agregados contendrán los metadatos WAFL necesarios y la paridad RAID , por lo que no se producirán operaciones adicionales de lectura de discos de datos, cálculo y escritura en discos de paridad como con los grupos RAID-6 y RAID-4 tradicionales. El CP primero crea una instantánea del sistema en un agregado donde se escribirán los datos, luego optimiza y prepara los datos desde la RAM y los escribe secuencialmente como una sola transacción en el agregado. Si falla, toda la transacción falla en caso de un reinicio repentino, lo que permite que el sistema de archivos WAFL siempre sea consistente. En caso de una transacción CP exitosa, se propaga un nuevo punto del sistema de archivos activo y se borran los NVLOG correspondientes. Todos los datos siempre se escribirán en una nueva ubicación y no se pueden producir reescrituras. Los bloques de datos eliminados por los hosts marcados como libres para que puedan usarse más adelante en los siguientes ciclos de CP y el sistema no se quedará sin espacio con la política de WAFL de escribir siempre datos nuevos en una nueva ubicación. Solo los NVLOG en los sistemas de almacenamiento HA se replican de forma síncrona entre dos controladores para la capacidad de conmutación por error del sistema de almacenamiento HA, lo que ayuda a reducir la sobrecarga general de protección de la memoria del sistema. En un sistema de almacenamiento con dos controladores en configuración HA o MetroClusterCon un controlador en cada sitio, cada uno de los dos controladores divide su propia memoria no volátil en dos partes: local y de su socio. En la configuración de MetroCluster con cuatro nodos, cada memoria no volátil se divide en las siguientes partes: local, del socio local y del socio remoto. [ 7 ]

A partir del sistema All-Flash FAS A800, NetApp sustituyó el módulo PCI NVRAM por módulos NVDIMM conectados al bus de memoria, lo que aumentó el rendimiento.

Véase también

Notas

  1. "Límites de almacenamiento" . library.netapp.com .
  2. "NetApp Volume Encryption, The Nitty Gritty | IOPS.ca" . 30 de noviembre de 2016.
  3. "¿Es WAFL un sistema de archivos?" . Blogs.netapp.com. Archivado del original el 15 de julio de 2014.
  4. 1 2 3 4 5 6 Dave Hitz ; James Lau; Michael Malcolm (19 de enero de 1994). Diseño de sistema de archivos para un dispositivo servidor de archivos NFS (PDF) . USENIX Invierno de 1994.
  5. Parisi, Justin (14 de julio de 2017). "¿Ejecutando VMware en ONTAP? Por qué debería considerar actualizar a ONTAP 9.2" .
  6. "Listas de control de acceso POSIX en Linux" . Suse.de. Archivado del original el 24/01/2007 . Consultado el 24/01/2007 .
  7. "Clustered Data ONTAP® 8.3. Guía de administración y recuperación ante desastres de MetroCluster™: duplicación de caché NVRAM y NVMEM en una configuración de MetroCluster" . NetApp. 1 de septiembre de 2015. Archivado del original (url) el 24 de enero de 2018. Consultado el 24 de enero de 2018 .
  • Sitio web oficial
  • Diseño del sistema de archivos para un servidor de archivos NFS (PDF)
  • Patente estadounidense 5,819,292 - Método para mantener estados consistentes de un sistema de archivos y para crear copias de solo lectura accesibles al usuario de un sistema de archivos - 6 de octubre de 1998