Delen via


CycleCloud-clusters

In CycleCloud beschrijft het termcluster een groep verbonden computers (knooppunten) die samenwerken als één systeem. Clusters kunnen gecombineerd worden. Een rekencluster dat bestaat uit een Hoofdknooppunt van de Grid Engine-planner en rekenknooppunten kan bijvoorbeeld een BeeGFS-cluster koppelen dat bestaat uit verschillende metagegevens en opslagservers. Zowel de rekenclusters als de opslagclusters smelten samen tot één bovenliggend HPC-cluster of -systeem.

Overzichtsdiagram

Knooppunten en knooppuntmatrices

Clusters bestaan in wezen uit knooppunten, die elk een specifieke rol in het HPC-systeem uitvoeren. De termenknooppunt en VM worden af en toe door elkaar gebruikt, maar zijn semantisch gescheiden in CycleCloud. Knooppunten waaruit een cluster bestaat, zijn virtuele machines in Azure die het voorbereidings- en configuratieproces voltooien. Met andere woorden, u maakt VM's op basis van de Azure-infrastructuurservicelagen. Nadat u de software hebt geïnstalleerd en de configuratiestappen hebt voltooid, zijn de VM'sknooppunten van een HPC-cluster.

Architectuurdiagram

CycleCloud heeft twee typen knooppunten: zelfstandige knooppunten en knooppuntmatrices. Een knooppuntmatrix is een verzameling identiek geconfigureerde knooppunten. Het onderscheid tussen knooppunt versus knooppuntarray volgt de Analogie van DevOps Huisdieren versus Vee. Zelfstandige knooppunten worden samengesteld op basis van één VIRTUELE machine in Azure. Knooppuntarrays komen overeen met virtuele machineschaalsets.

Er zijn echter cruciale verschillen tussen knooppuntmatrices en virtuele-machineschaalsets. Een matrix met één knooppunt kan bestaan uit meerdere virtuele-machineschaalsets. Met deze configuratie kan één knooppuntmatrix worden gebouwd op basis van VM's met verschillende grootten of zelfs verschillende VM-families. De enige beperking is dat alle knooppunten in een knooppuntmatrix dezelfde rol in het cluster uitvoeren. Alle knooppunten bieden bijvoorbeeld bronnen aan één wachtrij van een taakplanner.

Cluster sjablonen

Definieer de topologie of de indeling van knooppunten in een CycleCloud-cluster in tekstsjablonen. Met de sjablonen worden de relaties tussen knooppunten van een cluster ingedeeld. Als er geneste clusters zijn, definiëren de sjablonen de relatie tussen bovenliggende en onderliggende clusters. De sjablonen definiëren ook de rol van elk knooppunt.

Clustersjablonen definiëren met de INI-indeling. Gebruik secties [die zijn uitgelijnd met vierkante haken en ] om clusters, knooppunten en knooppuntmatrices te definiëren. De basiselementen van INI-bestanden zijn sleutel-waardepaarverklaringen die de configuratiedetails van elke sectie bieden. Deze configuratiegegevens bieden contextuele informatie voor het maken van elk knooppunt van een cluster, zoals de afbeelding van de virtuele machine om de virtuele machine op te starten en het subnet voor de virtuele machine. Zie CycleCloud-clustersjablonen voor meer informatie.

Knooppuntvoorbereiding en -configuratie

CycleCloud levert VM's uit basis-VM-afbeeldingen die zijn gedefinieerd in de clustersjabloon. Via een reeks stappen die worden beheerd door de CycleCloud-agent (Jetpack) tijdens het opstartproces, wordt het besturingssysteem op de VM geïnitialiseerd en geconfigureerd om het te converteren naar een werkend HPC-knooppunt. Deze stappen variëren van scripts om de planningssoftware te installeren en configureren, tot de laatste-mijlconfiguratie voor het koppelen van een bestandssysteem.

Diagram voor voorbereiding van knooppunten

U kunt bepalen hoe knooppunten worden aangepast tijdens het opstarten door een aangepast cluster-init-project te maken. Een project bevat de scripts en andere bestanden die nodig zijn om een knooppunt aan te passen, gescheiden in specificaties voor de verschillende soorten rollen in een cluster. Een project voor een batchplanner zoals Slurm bestaat bijvoorbeeld uit minimaal drie specificaties: een voor de scheduler-hoofdknooppunten, een voor de rekenknooppunten en een voor de aanmeldingsknooppunten. Lees meer over de CycleCloud-projecten.

In de knooppuntdefinitie verwijst u naar de specificaties die op dat knooppunt moeten worden uitgevoerd. Jetpack gebruikt deze specificaties voor opstarten om een knooppunt voor te bereiden op de rol in het cluster. De spec-bestanden zijn afkomstig van het Blob Storage-account van de gebruiker en worden gefaseerd van de CycleCloud-toepassingsserver naar het opslagaccount voordat knooppunten worden gestart.

Opmerking

De specificaties voor ingebouwde sjablonen (zoals het Slurm-clustertype) worden opgeslagen in GitHub. CycleCloud downloadt deze automatisch naar het opslagaccount van de gebruiker wanneer het knooppunt wordt gestart.

Wanneer een knooppunt wordt opgestart, downloadt Jetpack de specificaties die zijn gedefinieerd op het knooppunt met de [[[cluster-init]]] sectie en verwerkt deze om het knooppunt te convergeren naar een werkende status (bijvoorbeeld om een rekenknooppunt te zijn).

Knooppuntindeling

Afhankelijk van de scheduler en services die in een cluster worden gebruikt, moet CycleCloud soms de voorbereidingsfase van knooppunten in een cluster organiseren door verschillende knooppunten te coördineren. Voor sommige schedulers is bijvoorbeeld vereist dat elk rekenknooppunt zichzelf registreert bij de scheduler-daemon. Deze vereiste betekent dat de rekenknooppunten op de hoogte moeten zijn van het adres van het hoofdknooppunt. De rekenknooppunten moeten ook herkennen dat het hoofdknooppunt volledig is voorbereid en moeten wachten als dat niet het geval is.

CycleCloud maakt gebruik van dit element van Service Discovery voor server-clientrelaties van het bestandssysteem.

Meer informatie