Azure Native Qumulo ahora disponible en la UE, el Reino Unido y Canadá: Más información

Cómo implementar la codificación de borrado

Escrito por:

Esta historia le llega como parte 2 de 2 en una serie corta que cubre codificación de borrado y RAID, dos de los métodos más conocidos para la protección de datos en sistemas de almacenamiento. A continuación, explicaremos cómo el sistema de archivos distribuido de Qumulo está modernizando los métodos de almacenamiento de codificación de borrado con protección basada en bloques, y exploraremos cómo implementar la codificación de borrado en un sistema de almacenamiento de archivos. 

Qumulo Core, el base del sistema de archivos distribuido de Qumulo, proporciona un almacenamiento de datos extremadamente confiable (medido en decenas de miles de años de confiabilidad). Logramos esto en parte a través de una codificación de borrado eficiente, que es uno de los muchos servicios de datos que vienen de serie con Qumulo Core, diseñado para mantener sus datos seguros.

Implementación de la codificación de borrado en sistemas de almacenamiento de archivos

Hay muchas consideraciones prácticas a tener en cuenta al implementar codificación de borrado en sistemas de almacenamiento de archivos. Para facilitar el proceso de escritura de los bloques de paridad necesarios (y restaurar datos cuando falla un disco), Tienda de bloques escalables (SBS) divide su espacio de direcciones virtuales de bloques de paridad 4K en segmentos lógicos llamados tiendas protegidas o pstores.

 

SBS administra cada pstore individualmente, lo que hace que el esquema de mapeo que asocia el espacio de direcciones protegido a los discos sea más flexible. Todas las pstores son del mismo tamaño. La protección de datos se implementa por completo en el nivel de pstore del sistema. Se puede pensar en un pstore como una tabla que asigna rangos de direcciones de bloque virtual protegidas a regiones contiguas de almacenamiento que residen en discos virtuales de los nodos del clúster de Qumulo.

Las regiones contiguas se llaman bstores. El mapa de pstores a bstores es almacenado por cada nodo del cluster.

pstore vs bstore, cual es la diferencia?
  • pstore: Espacio de direcciones virtual dividido en bloques 4K.
  • btienda: Regiones contiguas de los bloques virtuales. (psstores map to bstores.)[/box]

Para mayor confiabilidad, los nodos del clúster utilizan un algoritmo distribuido llamado Paxos para mantener el consenso sobre el conocimiento compartido globalmente, como el mapa pstore-to-bstore. El clúster forma un quórum de nodos para garantizar la seguridad de las estructuras de datos críticas del clúster. Cada bstore utiliza un segmento de un disco virtual específico (es decir, el bstore está asociado con un par de SSD y HDD en particular).

A cada bstore se le asigna un espacio contiguo en su HDD asociado, mientras que el espacio en el SDD asociado del bstore se asigna dinámicamente. Los metadatos sobre un bstore también existen en su SSD asociado. Los metadatos de Bstore incluyen información como las direcciones en uso y un mapa que indica qué direcciones de bloque en el almacenamiento SSD de referencia de bstore y cuáles están en el disco duro.

Durante una lectura o escritura, pstore se utiliza para decidir a qué bstores se debe acceder. Cuando un cliente del sistema de archivos inicia una operación de escritura, ingresa a SBS como un flujo de datos sin procesar. El sistema determina en qué bstores escribir los datos, calcula los datos de paridad y escribe tanto los datos brutos como los datos de paridad en los SSD al mismo tiempo, incluso si los SSD están en muchos nodos diferentes. Una vez que se escriben los datos, el cliente recibe un reconocimiento de que se ha realizado la escritura.

Los bloques de datos que contienen datos de usuario y bloques de paridad se escriben en bstores. Un bstore en particular, durante su vida útil, contiene bloques de paridad o bloques de datos, pero no ambos. Debido a que la codificación de borrado se implementa en la capa pstore de SBS, bstores que contienen bloques de paridad y bstores que contienen bloques de datos se comportan de manera idéntica. La cantidad de almacenamiento asignada a un bstore depende del esquema de codificación de borrado implementado. Para mantener el tamaño de pstore consistente, el tamaño de bstore del sistema cambia de acuerdo con el esquema de codificación. Por ejemplo, si el pstore es de 70 GB, entonces, con la codificación 6,4, cada bstore tiene aproximadamente 17.5 GB, lo que divide el pstore en 4 bstores. Para la codificación 10,8, las bstores tendrán aproximadamente la mitad de ese tamaño.

En la nube, Qumulo utiliza el mismo esquema de protección de datos que utiliza localmente, con una excepción. En las instalaciones, el esquema de protección de datos requiere que haya al menos cuatro nodos en un clúster. En la nube, es posible tener un clúster de un solo nodo, porque el sistema de archivos de Qumulo puede usar la duplicación incorporada que se encuentra en cada bloque de almacenamiento elástico. Los clústeres de Qumulo de un solo nodo en la nube utilizan la codificación de borrado 5,4.

Nunca abajo para la cuenta

Los tiempos de reconstrucción de Qumulo se miden en horas. Por el contrario, los sistemas de almacenamiento heredados diseñados para cargas de trabajo con muchos menos datos, tienen tiempos de reconstrucción que se miden en días y algunos más.

Un gran número de archivos, cargas de trabajo mixtas y una mayor densidad de disco han contribuido a la crisis en los tiempos de reconstrucción de los dispositivos de almacenamiento heredados. La espectacular ventaja de Qumulo es un resultado directo de la protección avanzada basada en bloques de SBS. La protección basada en bloques es ideal para las cargas de trabajo modernas de hoy donde hay petabytes de datos y millones o miles de millones de archivos, muchos de los cuales son pequeños.

El sistema de protección SBS no necesita realizar largas caminatas de árbol ni operaciones de reconstrucción archivo por archivo. En cambio, las operaciones de reconstrucción funcionan en los pstores. El resultado es que los tiempos de reconstrucción no se ven afectados por el tamaño del archivo. Los archivos pequeños se manejan de manera tan eficiente como los archivos grandes, y proteger miles de millones de archivos es completamente factible. Además, el sistema de archivos de Qumulo está diseñado para que los tiempos de reconstrucción no se vean afectados negativamente por el tamaño del clúster. De hecho, lo opuesto es verdad. Con Qumulo, los clústeres más grandes en realidad tienen tiempos de reconstrucción más rápidos que los clústeres más pequeños.

[tipo de cuadro = "sombra"]NOTA: A diferencia del almacenamiento heredado, Qumulo distribuye los esfuerzos de reconstrucción entre los nodos del clúster, lo que da como resultado tiempos de reconstrucción más rápidos que el almacenamiento heredado. Y cuanto más grande sea el clúster, más rápida será la reconstrucción.[/box]

La razón de esto es que SBS distribuye el esfuerzo de cálculo de reconstrucción entre los nodos del clúster. Cuantos más nodos, menos trabajo debe realizar cada nodo durante una reconstrucción. Los dispositivos de almacenamiento heredados con tiempos de reconstrucción lentos corren el riesgo de perder datos si incurren en fallas adicionales durante el tiempo en que el sistema ya es vulnerable durante un proceso de reconstrucción prolongado.

En otras palabras, los tiempos de reconstrucción lentos tienen un impacto negativo en la confiabilidad. Por lo general, los administradores compensan esto con un aprovisionamiento excesivo (es decir, disminuyendo la eficiencia agregando redundancia de datos). Con los rápidos tiempos de reconstrucción de Qumulo, los administradores pueden mantener su Tiempo medio hasta la pérdida de datos (MTTDL) objetivos sin una gran cantidad de redundancia de datos, lo que ahorra tiempo y dinero.

Reconstrucción de pstores en caso de falla de la unidad

Cuando falla un disco, el almacén protegido sigue existiendo. Siempre se puede leer y escribir desde. Sin embargo, algunos pstores tendrán bstores faltantes o dañados. Estos se llaman pstores degradados. Debido a la codificación de borrado, puede continuar leyendo los pstores degradados, pero los datos ya no están completamente protegidos. En otras palabras, en la primera falla, todavía tiene integridad de datos pero es uno falla de la unidad más cerca de la pérdida de datos. Para volver a proteger los datos, el sistema trabaja pstore por pstore (en lugar de archivo por archivo en sistemas RAID heredados) para reconstruir los bstores que estaban ubicados en la unidad de disco defectuosa.

SBS asigna una pequeña cantidad de espacio adicional en disco, por lo que hay espacio para hacer esto. A esto se le llama moderación. Dado que el mapa global de pstore a bstore contiene el ID del disco virtual asociado de bstore, esta información facilita saber qué pstores necesitan procesarse cuando falla un disco en particular. Dado que el mapa que asocia pstores con bstores es lo suficientemente pequeño como para residir en la memoria de cada nodo, los nodos pueden traducir rápidamente direcciones de bloques virtuales de pstore a bstore.

Durante el proceso de reconstrucción, SBS lee y escribe bstores secuencialmente. Dado que los almacenes b se distribuyen de forma contigua en el disco, los almacenes ps degradados se pueden reconstruir muy rápidamente. Las operaciones secuenciales son mucho más rápidas que muchas operaciones de E / S pequeñas, que pueden ser lentas y provocar contención del disco. El proceso de reconstrucción de SBS es eficiente: los discos están involucrados exactamente en una secuencia de lectura o escritura a la vez durante el proceso de reconstrucción. No se requieren E / S aleatorias.

Además, los bstores son lo suficientemente pequeños para que el trabajo de re-protección se distribuya de manera eficiente en todo el clúster.

Trabajar como de costumbre, incluso durante las reconstrucciones

En los sistemas de archivos heredados, la contención de bloqueo afecta los tiempos de reconstrucción y ralentiza las operaciones estándar del sistema de archivos durante la reconstrucción. Esto se debe a que estas operaciones de archivos compiten con los subprocesos de reconstrucción / protección. Qumulo utiliza capas de escritura con esquemas de bloqueo independientes para que las operaciones de reconstrucción no compitan con el uso normal del sistema de archivos.

Cuando hay una falla, no tiene sentido escribir en el conjunto incompleto de bstores en los pstores degradados. Las nuevas escrituras no estarían completamente protegidas y complicaría el trabajo de reconstrucción de bstore. Sin embargo, el clúster no debe experimentar tiempo de inactividad durante la operación de reconstrucción y, como resultado, las operaciones de escritura iniciadas por el usuario no pueden esperar a que se vuelva a proteger un pstore. Para realizar esas escrituras, el sistema agrega una nueva capa de bstores virtuales al pstore degradado. A esto se le llama "empujar una capa". Las escrituras van a la nueva capa de bstores y las lecturas combinan los valores de cada capa.

Las nuevas escrituras van a la capa superior de bstores. Una lectura combina los valores de la capa superior y la capa inferior mediante el uso de codificación de borrado. Una vez que se reconstruye el bstore, la capa de inserción desaparece. Las capas se construyen utilizando componentes del sistema de transacciones de SBS de manera que no se bloqueen.

Eficiencia de almacenamiento de archivos pequeños

Debido a que el sistema de archivos Qumulo utiliza protección basada en bloques, los archivos pequeños son tan eficientes como los archivos grandes.

Pueden compartir franjas con otros archivos y pueden compartir la protección. Cada archivo consta de los bloques de datos, al menos un bloque de inodo y cualquier otro bloque que se requiera. Los archivos muy pequeños están alineados en el bloque de inodo. El sistema utiliza bloques 4K y todos los bloques están protegidos en la relación de protección del sistema.

De qumulo eficiencia de almacenamiento con archivos pequeños es una gran ventaja en comparación con los dispositivos de almacenamiento heredados, que utilizan una duplicación ineficaz para archivos pequeños y metadatos del sistema. Los sistemas de almacenamiento heredados también utilizan un tamaño de bloque de 8K, que, con archivos pequeños, puede crear grandes ineficiencias.

Es su almacenamiento: use el 100%

Los archivos de usuario de Qumulo pueden ocupar 100 por ciento de la capacidad aprovisionada, mientras que la escalabilidad horizontal heredada recomienda usar solo del 80 al 85 por ciento. La protección basada en bloques de Qumulo no requiere capacidad provista por el usuario para la re-protección, aparte de una pequeña cantidad de espacio para ahorrar, que está excluida de la capacidad provista por el usuario.

Por el contrario, los dispositivos de almacenamiento heredados implementan protección con grupos RAID fijos o con codificación de borrado archivo por archivo, lo que significa que la re-protección también ocurre a nivel de archivo y requiere capacidad provista por el usuario para recuperarse. (Ver Explicación de la codificación de borrado vs RAID para obtener más detalles). Además, el sistema de archivos Qumulo informa con precisión la capacidad disponible para los archivos del usuario.

Una vez más, esta previsibilidad es una consecuencia de la protección basada en bloques. En los sistemas heredados, el uso del almacenamiento depende del tamaño del archivo, por lo que estos sistemas solo pueden informar sobre el espacio en bruto; los administradores deben adivinar cuánto espacio tienen realmente. Al comparar Qumulo con sistemas heredados, querrá considerar cuánta capacidad de provisión de usuarios está realmente disponible para usar en cada tipo de sistema.

Nota del editor: Publicado originalmente el 11 de noviembre de 2021, esta historia se ha actualizado para mayor precisión y exhaustividad.

Artículos Relacionados

Ir al Inicio