¿Es Qumulo un sistema de archivos estructurado por registros?

Sistema de archivos de estructura de registro

A veces nos preguntan si Qumulo es un sistema de archivos estructurado por registros. La respuesta corta es "No", pero hay una historia interesante. Resulta que algunos de los aspectos innovadores del diseño de Qumulo se basan en una serie de técnicas innovadoras que se han desarrollado para los sistemas de archivos a lo largo de los años, incluidos los sistemas de archivos con estructura de registro. Para explicar esto, daremos un poco de historia sobre cómo los sistemas de archivos históricamente han asegurado la consistencia en el caso de paradas impuras, como fallas en el suministro eléctrico.

¿No tienes tiempo para la historia? Descargar la descripción general de la arquitectura de software

Luego, profundizaremos en cómo los ingenieros de Qumulo resolvieron algunos de los problemas de los sistemas de archivos heredados mediante el uso de un nuevo enfoque llamado tienda de bloques escalable (SBS).

Breve historia de los sistemas de archivos

Los primeros sistemas de disco requerían un recorrido completo de todas las estructuras de datos con utilidades como fsck para devolver el sistema de archivos a un estado coherente después de una interrupción, como un fallo de alimentación. Aunque las utilidades como fsck consumen mucho tiempo y mantienen el sistema de archivos fuera de línea, su enfoque de caminar y reparar era aceptable porque los discos eran pequeños.

A medida que aumentaba el tamaño de los discos, el tiempo de interrupción causado por la reparación y reparación se hizo demasiado largo. Hubo un deseo de una recuperación más rápida a un estado consistente después de una caída.

Registrando sistemas de archivos

El primer intento de resolver el cuello de botella en la marcha y reparación ocurrió en los 1980 con la introducción de los sistemas de archivos de registro por diario. Un diario es un historial de modificaciones recientes a un sistema de archivos. Los sistemas de archivos de registro por diario garantizan la consistencia del sistema de archivos después de una caída con una cantidad de trabajo mucho más pequeña que una operación completa de reparación y reparación porque el diario registra todos los cambios recientes. La reparación de las estructuras de datos del sistema de archivos se puede hacer rápidamente porque el sistema solo necesita leer las entradas de diario más recientes para hacer el trabajo. El registro en diario también mejoró las posibilidades de que los datos escritos recientemente se puedan recuperar después de un bloqueo.

Sistemas de archivos log-estructurados

Uno de los problemas de los sistemas de archivos de registro por diario fue que cada operación de escritura requería el doble de esfuerzo porque el sistema tenía que escribir en el almacén de datos y en el diario. El deseo de eliminar la doble escritura motivó algunos nuevos enfoques. Por ejemplo, el primer sistema de archivos con estructura de registro, concebido en 1988, eliminó la penalización de escritura doble de un diario con un diario que era el sistema de archivos. En otras palabras, un sistema de archivos con estructura de registro se colocó en el disco como un gran diario secuencial, o historial de modificaciones de archivos. Escribir en el diario fue la misma operación que escribir en el sistema de archivos. Al igual que con el registro en diario, dicho sistema de archivos solo requería una pequeña cantidad de cómputo para llevar al sistema a un estado consistente después de una falla. A diferencia del registro por diario, el enfoque estructurado de registro no requería operaciones de escritura dual.

El sistema de archivos con estructura de registro también mejoró el rendimiento de escritura en discos magnéticos giratorios. Dado que los cambios siempre se adjuntaron al final del registro, una secuencia de cambios en el sistema de archivos se podría almacenar en un solo disco y escribir en una sola operación de escritura en disco, reduciendo la necesidad de operaciones de búsqueda que requieren mucho tiempo. La mejora en el rendimiento de escritura se notó notablemente al escribir en archivos pequeños.

Por supuesto, el enfoque de registro estructurado incluyó compensaciones, como una complejidad adicional para indexar el registro para un rendimiento de lectura posterior aceptable y la necesidad de implementar la recolección automática de basura para recuperar el espacio de almacenamiento no utilizado y reducir la fragmentación.

Si bien el enfoque estructurado por registros, tal como se concibió originalmente, no se utiliza actualmente en ningún sistema de archivos de producción hoy en día, su concepto central de usar estructuras de datos cuidadosamente diseñadas como una forma de prevenir inconsistencias y evitar las penalidades de escritura doble del periodismo fue muy influyente. Su influencia se puede ver en los enfoques de "actualización suave" y "copia en escritura" que siguieron.

Actualizaciones blandas

Al igual que los sistemas de archivos con estructura de registro, las actualizaciones de software se han intentado como una forma de evitar el requisito de doble escritura del registro en diario. Este enfoque utiliza un patrón restringido y cuidadosamente diseñado de actualizaciones ordenadas que, si son interrumpidas por un bloqueo, siempre dejan el sistema de archivos en un estado consistente. Las actualizaciones suaves solucionan el problema de escritura dos veces, pero pueden tener el inconveniente de que no se puede acceder a un almacenamiento no utilizado. Para curar esta fuga de almacenamiento, los sistemas de archivos con actualizaciones suaves vienen con una complejidad adicional a veces llamada "fsck en segundo plano". También son extremadamente difíciles de implementar de manera confiable.

Sistemas de archivos de copia en escritura

Al igual que los sistemas de archivos con estructura de registro, los sistemas de archivos de copia en escritura siempre escriben datos fuera de lugar, es decir, en bloques de almacenamiento recién asignados, para evitar actualizaciones en el lugar de los metadatos de archivos. La diferencia es que los sistemas de archivos con estructura de registro se escriben secuencialmente en un registro, mientras que los sistemas de copia en escritura utilizan una magia de puntero no destructiva para incorporar los nuevos datos en lo que es conceptualmente una nueva versión de todo el sistema de archivos. Para hacer esto, usan estructuras de datos conocidas (confusamente) como estructuras de datos persistentes (o como estructuras de datos inmutables) para representar los metadatos del sistema de archivos. WAFL y ZFS son ejemplos de sistemas de archivos que utilizan técnicas de copia en escritura.

Donde encaja el sistema de archivos Qumulo

En términos generales, Qumulo sigue el espíritu de los sistemas de archivos estructurados por registros y los sistemas de archivos de copia en escritura para evitar el problema de doble escritura de los sistemas de archivos de registro por diario. En Qumulo, todos los datos nuevos se escriben en bloques nuevos. Los bloques viejos no se sobrescriben. Los sistemas de archivos con estructura de registro, los sistemas de archivos de copia en escritura y Qumulo comparten la característica de escribir datos nuevos fuera de lugar. Sin embargo, ahí es donde terminan las similitudes.

A diferencia de los sistemas de archivos estructurados por registros y los sistemas de archivos de copia en escritura, Qumulo fue diseñado desde cero para distribuirse en muchas computadoras para un rendimiento escalable y capacidad escalable, con protección de datos incorporada basada en eficientes codificación de borrado. Como resultado, el sistema de archivos Qumulo se ubica sobre una capa virtual transaccional de bloques de almacenamiento protegidos llamada Scalable Block Store (SBS).

A continuación se muestra un diagrama del SBS.

log-estructurado-sistema de archivos

Diagrama de la tienda de bloques escalables (SBS).

El SBS define regiones de almacenamiento contiguas que residen en discos virtuales de los nodos del clúster Qumulo. Estas regiones se llaman bstores. Los bstores consisten principalmente en dos componentes, un árbol de bloques y un registro de escritura anticipada (WAL). Qumulo inicialmente escribe a WAL como parte de una transacción. Todos los bloques de datos están escritos fuera de lugar. Cuando se completa la transacción y es hora de verificar los datos del punto de control de WAL, Qumulo actualiza el árbol de bloques como una estructura de datos persistente. Conceptualmente, actualizar el árbol de bloques es como crear una nueva versión de todo el sistema de archivos, pero se implementa a muy bajo costo. Los bloques de WAL no se copian en el árbol de bloques, solo se hace referencia a ellos.

La WAL es una lista vinculada (no es una verdadera estructura de datos persistentes), pero cuando SBS se agrega a la WAL, solo sobrescribe el valor nulo de terminación. La sobrescritura de la cola del WAL como una operación atómica es un espíritu de actualizaciones suaves porque el orden de escritura está diseñado cuidadosamente para no causar daños en los datos si una falla de alimentación interrumpe las escrituras. Las escrituras en vivo en la WAL solo durante un corto período de tiempo hasta que se completen los cambios en el árbol de bloques.

Todas las escrituras en Qumulo van a los SSD, lo que significa que Qumulo SBS puede asignar bloques arbitrariamente sin la penalización de rendimiento de las búsquedas de disco. Cuando el número de bloques libres en los SSD del sistema se vuelve bajo, el SBS utiliza discos duros como un almacén de respaldo (excepto, por supuesto, en entornos totalmente flash). Al pasar de SSD a HDD, el SBS utiliza patrones de escritura secuencial altamente eficientes que maximizan el rendimiento de los HDD.

Entonces, de alguna manera, los bstores en el Qumulo SBS son similares a los sistemas de archivos basados ​​en registros, excepto que solo asignan bloques arbitrariamente en el SSD y no necesitan mantener un búfer circular. En otras formas, los bstores de Qumulo son similares a los sistemas de copia en escritura, excepto que operan a nivel de bloque y no a nivel de archivo, y escriben en bloques virtuales que siempre están liderados por SSD. Finalmente, el SBS WAL usa técnicas similares a las actualizaciones de software para brindar protección en caso de una interrupción inesperada, como la pérdida de energía. Estamos, como dicen, sobre los hombros de gigantes.

Para conocer cómo funciona el SBS, descargue el Descripción general técnica de la plataforma de datos de archivos Qumulo.

Contáctanos aquí si quieres programar una reunión o solicitar una demostración. Y suscríbase a nuestro blog para obtener mejores prácticas y recursos más útiles.

Pruebe Qumulo gratis

Pruebe Qumulo gratis

Explore un entorno Qumulo completamente funcional, directamente en su navegador.

Prueba Demo

Comparta este artículo