Una inmersión profunda en el diseño de clústeres flexibles

Esta es la segunda parte de una serie de blogs de cinco partes que analizará más de cerca nuestro nuevo conjunto de servicios de datos que ayudará a nuestros clientes a simplificar radicalmente la gestión de datos de archivos a escala. Nosotros hablamos acerca de Rendimiento en caché de NVMe en nuestra publicación anterior. Aquí, proporcionamos una descripción general de Dynamic Scale. Los futuros blogs de esta serie profundizarán en los otros nuevos servicios de datos incluidos en este anuncio.

Al diseñar Qumulo's plataforma de datos de archivo, tomamos en consideración continuamente los problemas que nuestros clientes intentan resolver. Nuestros clientes son nuestros campo magnéticoe impulsan el desarrollo y la innovación de nuestros productos.

Para ayudarlos en sus misiones, lanzamos rápidamente nuevas funciones de software y plataformas que mejoran tanto los costos como el rendimiento para nuestros clientes. De hecho, recientemente anunciamos un nuevo conjunto de servicios de datos para ayudar a simplificar radicalmente la forma en que nuestros clientes administran cantidades masivas de datos de archivos.

Nuestro objetivo es hacer que sea simple y rentable para las organizaciones empresariales y gubernamentales escalar, asegurar y lograr un alto rendimiento en sus complejos entornos de datos no estructurados.

Innovación sin limitación

Para garantizar que nuestros clientes puedan aprovechar las mejoras en la tecnología de hardware sin migración de datos, Qumulo mejora continuamente nuestra plataforma de datos de archivos para que los clientes puedan combinar nodos de diferentes tipos en un solo clúster. Creemos que no se le debe impedir el acceso a la última tecnología.

Recientemente presentamos Qumulo Dynamic Scale, que permite a los administradores aprovechar plataformas de hardware recientemente calificadas con los últimos procesadores, dispositivos de memoria y almacenamiento sin la necesidad de actualizaciones de montacargas, migraciones de datos o administración compleja de grupos de almacenamiento. Los usuarios de Qumulo ahora pueden agregar nuevas plataformas calificadas en entornos existentes sin necesidad de administrar diferentes grupos de almacenamiento o realizar una migración de datos. Las nuevas plataformas simplemente se agregan al entorno existente, los datos se redistribuyen automáticamente y el rendimiento y la capacidad mejorados se ponen a disposición de los usuarios y las aplicaciones automáticamente.

Entonces, ¿qué hizo el equipo de ingeniería de Qumulo para habilitar nodos de diferentes tipos en un solo clúster? Es algo que llamamos "compatibilidad de nodos".

Nuestro primer paso en este trabajo fue admitir nodos de agrupación en clústeres con cantidades similares de almacenamiento, de modo que los clientes que utilizan servidores HPE Apollo pudieran agregar nodos HPE Gen10 a sus clústeres HPE Gen9.

Compatibilidad de nodo: comprensión de la arquitectura de protección de datos

Desde el primer día, Qumulo se centró en diseñar y desarrollar una plataforma de datos de archivos que proporcionaría a nuestros clientes la última tecnología, sin crear limitaciones artificiales en la funcionalidad de la plataforma de datos de archivos. La plataforma de datos de archivos de Qumulo está diseñada para que la capa del sistema de archivos no necesite saber nada sobre las dimensiones subyacentes del hardware; toda esa acción tiene lugar más abajo en la pila.

Para que los diferentes tipos de nodos funcionen juntos, el equipo de ingeniería de Qumulo necesitaba trabajar en los componentes responsables de diseñar los objetos internos del sistema (que no deben confundirse con el almacenamiento de objetos del usuario final) en los recursos de almacenamiento del clúster. Los diseños están optimizados para proteger contra la pérdida de datos y garantizar la disponibilidad de los datos. Esto es importante para que, en caso de que falle un disco o se caiga un nodo, el cliente pueda seguir utilizando el clúster y seguir accediendo a sus datos.

El trabajo se centró en dos componentes clave: el restrictor, que establece las tiendas protegidas (o "PStores") que almacenan los datos y metadatos del sistema de archivos (parte del sistema de protección en el diagrama anterior); y el DKV, que proporciona un almacén de valor clave distribuido rápido para que lo utilice el sistema de protección y el sistema de transacciones.

El limpiador

El reiniciador es responsable de asegurarse de que los datos estén seguros después de la falla de un componente. Toma decisiones sobre en qué discos viven los PStores en el sistema. Una PStore consta de varias tiendas en bloque ("BStores"), cada una de las cuales se encuentra en un disco específico. Los datos se codifican en los BStores mediante un esquema llamado Codificación de Borrado, de modo que el sistema pueda tolerar un cierto número de fallas de unidades y / o nodos, al tiempo que proporciona tanto espacio utilizable como sea posible.

En caso de pérdida de una unidad, el reiniciador es el componente que se ocupa de reconstruir los datos que estaban en la unidad perdida. Con ese fin, Qumulo mantiene algo de espacio libre en todas las demás unidades del sistema para este propósito.

frigorífico

En la imagen de arriba, vemos un clúster con 8 HDD de 8 TB, cada uno de los cuales tiene 1 TB de espacio libre a un lado. Si falla una unidad, podemos reconstruir los 7 TB de datos que ahora faltan utilizando el espacio libre; Los tiempos de reprotección se minimizan al tener el espacio libre distribuido uniformemente en el sistema de archivos.

El DKV

El DKV almacena datos de pares clave-valor que deben estar disponibles globalmente, además de ser grabables y legibles desde cualquier nodo. Los valores que almacena son esencialmente una serie de bytes, con un tamaño máximo de poco menos de 4 KiB. El uso principal del DKV es almacenar metadatos de PStore, incluido en cuál de los discos se encuentran los BStores de cada PStore.

El espacio de la clave DKV se divide en varias particiones de igual tamaño que llamamos fragmentos. Cada fragmento se refleja en varios volúmenes KV. Cuando el sistema de archivos Qumulo escribe en una clave DKV, escribe los datos en todos los espejos antes de que vuelva la llamada API. De esa forma, cuando el sistema lee desde una clave DKV, puede leer desde un espejo arbitrario.

El espacio de la clave DKV se divide en varias particiones de igual tamaño que llamamos fragmentos. Cada fragmento se refleja en varios volúmenes KV, que son los artefactos físicos que viven en los SSD del clúster.

DKV

Un quórum en Qumulo es el conjunto de recursos físicos que el clúster puede usar actualmente: es el conjunto de nodos y discos en línea. Cuando ese conjunto de recursos cambia, digamos que es necesario reemplazar un disco o un nodo se desconecta, el quórum actual se abandona rápidamente, se detienen varias tareas que se están ejecutando en el sistema y luego volvemos a poner el sistema en línea en un nuevo quórum con el nuevo conjunto de recursos. La plataforma de datos de archivos Qumulo reconoce los cambios en los recursos y ejecuta varias operaciones de recuperación para asegurarse de que los datos en el clúster permanezcan disponibles, mientras siguen estando protegidos contra futuras fallas de recursos.

Recuperar el DKV después de un cambio de quórum es realmente sencillo. Para cada fragmento, elegimos un espejo disponible arbitrario como nuestra fuente y hacemos copias nuevas e idénticas de ese espejo para usar en el nuevo quórum. Por lo tanto, incluso si una escritura en curso solo se había escrito en un subconjunto de los espejos cuando finalizó el quórum anterior, el nuevo conjunto de espejos será coherente porque se copiaron del mismo espejo de origen.

Qumulo solo usa SSD que admiten escrituras atómicas de 4 KiB (incluso ante una pérdida de energía inesperada), por lo que también podemos garantizar que para cualquier escritura en vuelo, veremos estrictamente el valor anterior o el nuevo valor: no ganó ' t ser cualquier bloque parcialmente escrito. Los SSD que usamos tampoco descartan escrituras reconocidas (nuevamente, incluso ante una pérdida de energía), por lo que podemos garantizar que veremos el nuevo valor para cualquier escritura que se registre como completada.

Lograr la compatibilidad de nodos para el restrictor

Ahora que entendemos la arquitectura de protección de datos de nivel bajo, el desafío para el equipo del proyecto Qumulo fue lograr que esta arquitectura funcionara en diferentes sistemas que un cliente puede incluir en un solo clúster. Cada nodo necesita averiguar la "geometría" del clúster haciendo que un nodo le pregunte a cada uno de los demás que le digan cuántos discos tiene, qué tamaño tienen, etc.

¿Recuerda ese espacio libre que guardamos en cada viaje? Necesitamos que ese espacio se distribuya de manera uniforme, de modo que la reconstrucción de los datos de una unidad perdida pueda realizarse lo más rápido posible, sin sobrecargar las unidades individuales en el sistema. El algoritmo codicioso en el reiniciador se escribió para ser codiciosos en términos del espacio utilizado en los discos. Entonces, si los discos fueran de diferentes tamaños, el objetivo sería colocar la misma cantidad de BStores en cada disco.

Pero claramente eso no es lo que queremos. Esto haría que reprotect tuviera que escribir más datos reconstruidos en los discos más grandes del sistema, porque tienen más espacio libre. Eso ralentizará la reprotección o tendríamos que tener un mayor impacto en la carga de trabajo del cliente para mantener el mismo tiempo.

compatibilidad de nodo

Arreglar esto fue bastante sencillo: simplemente modificamos el algoritmo para ser codiciosos en términos de espacio libre. Este enfoque tiene limitaciones y solo funciona para nodos de tamaño similar, pero fue un cambio incremental rápido que nos permitió brindar beneficios a algunos clientes rápidamente.

Lograr la compatibilidad de nodos para el DKV

Como se discutió, el uso principal del DKV es almacenar datos sobre dónde se encuentran los PStores.

Históricamente, el equipo de ingeniería de Qumulo optó por reservar una pequeña cantidad de claves al comienzo del espacio de claves para otros casos de uso futuros, pero todo lo que sigue a una determinada clave es una PStore. Cuando diseñamos el DKV por primera vez, queríamos que la cantidad de fragmentos de DKV fuera una función trivial del tamaño del clúster, por lo que decidimos hacer que cada fragmento fuera lo suficientemente grande como para almacenar una cantidad determinada de nodos de PStores. Se agregan nuevos fragmentos al DKV a medida que se agregan nodos al clúster, según la cantidad de nodos.

Si agregamos nodos de diferentes tamaños a un clúster, este cálculo no funcionará de la misma manera. Cuando los nuevos nodos son más grandes que los nodos existentes, necesitaremos agregar fragmentos DKV más rápidamente. Pero con un solo volumen KV por SSD, esto no siempre es posible, al tiempo que se conserva nuestra capacidad para recuperarnos de las pérdidas de disco y nodos.

Para que el DKV sea flexible sobre cuándo agregamos más fragmentos para tener en cuenta los nodos de almacenamiento de diferentes tamaños, también necesitábamos aprovisionar volúmenes KV adicionales en los SSD en el clúster. Debido a que los volúmenes en sí son pequeños (menos de 100 MB), optamos por usar un número constante de volúmenes por SSD, aunque esto ahora sobreaprovisionaría el espacio por un margen relativamente mayor en algunos casos. Esto simplifica el código de diseño, a expensas de consumir una pequeña cantidad de espacio SSD.

Agregar nuevos volúmenes de KV en el tiempo de recuperación de DKV no es una opción, por lo que proporcionamos una API a la que el restringidor puede llamar para hacer más espacio, una vez que el sistema está en funcionamiento. Esta negociación de tamaño ocurre cuando el restrictor se está preparando para crear PStores, ya sea justo después de la creación inicial del clúster o la adición de nuevos nodos. Una vez que el sistema de protección ha determinado cuántos PStores debe tener el sistema, el restrictor llama a la API de negociación para solicitar el espacio. Si se necesitan nuevos fragmentos, se agregarán volúmenes KV adicionales si es necesario, y se buscará un diseño para los nuevos fragmentos y se agregará al diseño actual de DKV. Una vez que se ha distribuido el nuevo fragmento, el nuevo fragmento está disponible para su uso en todo el clúster. Al final de una negociación exitosa, el restrictor retoma el control y agrega los nuevos PStores, lo que entrega la capacidad utilizable al cliente.

Es interesante que aunque lo que sucede bajo las mantas es complejo, la interacción entre el frigorífico y el DKV es muy sencilla. Y las capas ya no están enredadas. El DKV no sabe nada sobre cuántos PStores debería tener un clúster en particular. Los nuevos clústeres simplemente arrancan un solo fragmento que puede almacenar una cantidad determinada de claves: todas las plataformas de hardware usan el mismo tamaño de volumen inicial, y luego, cuando el sistema de protección sabe cuántos PStores quiere, simplemente solicita el espacio.

El diseño del DKV proporciona una enorme cantidad de flexibilidad, flexibilidad que Qumulo utiliza para abordar los desafíos de nuestros clientes. Combinado con nuestra simple mejora al restador, pudimos abrir un camino hacia adelante para que los clientes con clústeres HPE Apollo Gen9 pudieran continuar expandiendo sus clústeres cuando ya no pudieran comprar nodos Gen9.

En el futuro, generalizaremos la compatibilidad de nodos para que todos nuestros clientes puedan aprovechar la nueva tecnología, a medida que continúe llegando al mercado, y los volúmenes de datos de los clientes continúen aumentando, y estamos seguros de que nuestros sistemas de diseño flexible se puede adaptar para manejar lo que sea a continuación.

CONOCE MÁS

Para ver estos nuevos servicios de datos en acción, regístrese en nuestro Evento virtual exclusivo de Q-Connect 8-16 de diciembre! En Q-Connect, los asistentes tendrán la oportunidad de conectarse en vivo con nuestros expertos técnicos y clientes de Qumulo para ver cómo nuestra plataforma de datos de archivos simplifica radicalmente la gestión de datos empresariales.

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.

¡PD! El equipo de ingeniería de Qumulo está contratación y tenemos varios puestos vacantes; échales un vistazo aquí y aprender más sobre la vida en Qumulo.

Comparta este artículo