Compartir a través de


Clústeres de CycleCloud

En CycleCloud, el término clúster describe un grupo de equipos conectados (nodos) que funcionan juntos como un único sistema. Los clústeres se pueden anidar. Por ejemplo, un clúster de proceso que consta de un nodo principal del programador del motor de cuadrícula y nodos de proceso puede montar un clúster BeeGFS que consta de varios servidores de metadatos y almacenamiento. Los clústeres de proceso y almacenamiento se unen en un único clúster o sistema de HPC primario.

Diagrama de información general

Nodos y matrices de nodos

Los clústeres componen fundamentalmente nodos, cada uno de los cuales realiza un rol específico en el sistema HPC. Los términos node y VM se usan ocasionalmente indistintamente, pero semánticamente independientes en CycleCloud. Los nodos que componen un clúster son máquinas virtuales en Azure que completan el proceso de preparación y configuración. En otras palabras, se crean máquinas virtuales a partir de las capas de servicio de infraestructura de Azure. Después de instalar el software y completar los pasos de configuración, las máquinas virtuales son nodos de un clúster de HPC.

Diagrama de arquitectura

CycleCloud tiene dos tipos de nodos: nodos independientes y matrices de nodos. Una matriz de nodos es una colección de nodos configurados de forma idéntica. La distinción entre un nodo y una matriz de nodos sigue la analogía de DevOps de Mascotas vs Ganado. Los nodos independientes se construyen a partir de máquinas virtuales únicas en Azure. Las matrices de nodos se asignan a Virtual Machine Scale Sets.

Sin embargo, existen diferencias cruciales entre matrices de nodos y conjuntos de escalado de máquinas virtuales. Una matriz de un solo nodo puede incluir varios conjuntos de escalado de máquinas virtuales. Esta configuración permite crear una matriz de nodo único a partir de máquinas virtuales de diferentes tamaños o incluso diferentes familias de máquinas virtuales. La única restricción es que todos los nodos de una matriz de nodos realizan el mismo rol en el clúster. Por ejemplo, todos los nodos proporcionan recursos a una única cola de una programación.

Plantillas de clúster

Defina la topología o cómo se organizan los nodos en un clúster de CycleCloud, en plantillas de texto. Las plantillas presentan las relaciones entre los nodos de un clúster. Si hay clústeres anidados, las plantillas definen la relación de elementos primarios y secundarios de los clústeres. Las plantillas también definen el rol de cada nodo.

Defina plantillas de clúster en formato INI. Use secciones delineadas con corchetes y [ para definir clústeres], nodos y matrices de nodos. Los elementos básicos de los archivos INI son aserciones de par clave-valor que proporcionan los detalles de configuración de cada sección. Estos detalles de configuración proporcionan información contextual para crear cada nodo de un clúster, como la imagen de máquina virtual para arrancar la máquina virtual y la subred de la máquina virtual. Para más información, consulte Plantillas de clúster de CycleCloud.

Preparación y configuración del nodo

CycleCloud aprovisiona máquinas virtuales a partir de imágenes de máquina virtual base definidas en la plantilla de clúster. A través de una serie de pasos administrados por el agente cycleCloud (Jetpack) durante el proceso de arranque, inicializa y configura el sistema operativo en la máquina virtual para convertirlo en un nodo de HPC en funcionamiento. Estos pasos van desde scripts para instalar y configurar el software de programación hasta la configuración de última milla para montar un sistema de archivos.

Diagrama de preparación de nodos

En la sección de configuración de cada nodo, se definen las especificaciones cluster-init. Las máquinas virtuales de arranque usan estas especificaciones para prepararse para un rol específico en el clúster. CycleCloud usa Chef como plataforma de automatización de la infraestructura para preparar y configurar cada nodo. Cada especificación cluster-init se asigna a uno o varios roles de Chef o recetas de cocina que deben ejecutarse en la VM en proceso de arranque.

CycleCloud usa Chef en un modo independiente que no depende de un servidor de Chef centralizado. En su lugar, todo el conjunto de cookbooks de Chef necesarios para preparar cada máquina virtual se descarga de una cuenta de Azure Storage que pertenece al usuario durante la fase de arranque de la máquina virtual. Este conjunto de cookbooks se almacena en caché desde el servidor de aplicaciones CycleCloud en la cuenta de almacenamiento durante la fase de creación del clúster.

Después de descargar estos libros de cocina, Chef procesa la lista de recetas definidas en las especificaciones cluster-init del nodo. Desencadena una fase de preparación y configuración que convierte la máquina virtual en un nodo de HPC en funcionamiento.

Las especificaciones se crean como colecciones lógicas denominadas proyectos. Por ejemplo, un proyecto para un programador por lotes, como Slurm, consta de un mínimo de dos especificaciones: una para los nodos principales del programador y la otra para los nodos de proceso. Obtenga más información sobre los proyectos de CycleCloud.

Orquestación de nodos

Según el programador y los servicios usados en un clúster, CycleCloud a veces necesita organizar la fase de preparación de los nodos de un clúster mediante la coordinación de distintos nodos. Por ejemplo, algunos programadores requieren que cada nodo de ejecución se registre con el demonio del programador. Este requisito significa que los nodos de cómputo deben conocer la dirección del nodo principal. Los nodos de cómputo también deben reconocer que el nodo principal está totalmente preparado y esperar si no lo está.

CycleCloud usa este elemento de Service Discovery para las relaciones de cliente-servidor del sistema de archivos.

Información adicional