Beskriva grunderna i Azure CycleCloud

Slutförd

Många organisationer vill överföra sina lokala HPC-arbetsbelastningar till Azure för att dra nytta av dess hyperskalafunktioner. De vill också minimera inlärningskurvan som är associerad med en sådan övergång och använda de kunskaper som är associerade med de befintliga distributionerna, till exempel en specifik HPC-schemaläggare. Slutligen söker de insikter om prestanda och kostnader för molnbaserade klusterresurser på det sätt som paralleller deras lokala miljöer.

Det är svårt att implementera en anpassad lösning som hanterar dessa behov. Det kräver djupgående kunskaper om Azure-beräknings-, nätverks- och lagringsresurser som fungerar som byggstenar i molnbaserade HPC-kluster. Utan ett motsvarande hanteringsgränssnitt skulle drift av en sådan lösning genom att förlita sig på vanliga Azure-hanteringsverktyg leda till betydande administrativa omkostnader.

Azure CycleCloud löser dessa problem, vilket ger ett enkelt, säkert och skalbart sätt att implementera HPC-schemaläggare i Azure. I den här lektionen får du lära dig mer om dess grundläggande funktioner.

Kommentar

Azure CycleCloud riktar in sig på distributionsscenarier som kräver användning av en specifik HPC-schemaläggare. Detta kompletterar Azure Batch, som tillhandahåller en schemaläggare som en tjänst i Azure.

Vad är Azure CycleCloud?

Azure CycleCloud är ett verktyg för att distribuera HPC-kluster i Azure och hantera deras arbetsbelastningar. Det erbjuder ett brett utbud av HPC-funktioner, inklusive:

  • Mallbaserad distribution av HPC-kluster. Azure CycleCloud innehåller inbyggda anpassningsbara mallar för att distribuera de vanligaste klusterschemaläggarna, inklusive Slurm, OpenPBS, LSF, Grid Engine och HTCondor. Många andra fördefinierade mallar, som du kan importera till din Azure CycleCloud-instans, är tillgängliga från CycleCloud GitHub-lagringsplatsen.

    Kommentar

    Mallar är INI-formaterade filer som använder deklarativ syntax för att beskriva hur noder organiseras i ett CycleCloud-kluster, inklusive deras respektive relationer. Mallar innehåller referenser till projekt som definierar nodkonfiguration.

  • Manuell och automatiserad skalning av klusternoder. Azure CycleCloud möjliggör manuell och automatiserad horisontell skalning av hanterade kluster enligt längden på jobbköer och styrningsprinciper. Det erbjuder också ett REST-API för att utveckla autoskalningskort för anpassade schemaläggare.

  • Nodkonfiguration via cloud-init-skript. Azure CycleCloud stöder konfigurationshantering baserat på anpassade skript som körs inom hanterade klusternoder före andra CycleCloud-specifika konfigurationsuppgifter.

  • Hantering av den interna och externa klusterlagringen. Med Azure CycleCloud kan du konfigurera klusterlagring genom att etablera, montera och formatera Hanterade Azure-diskar och nätverksansluten lagring, till exempel NFS-servrar eller BeeGFS-kluster.

  • Övervakning, loggning och aviseringar. Azure CycleCloud erbjuder inbyggd klusterövervakning och integreras med Azure Monitor. Det går också att lagra loggdata från CycleCloud-kluster till Log Analytics och skapa anpassade instrumentpaneler för mått. Dessutom kan du skapa anpassade aviseringar och e-postmeddelanden som utlöses av telemetridata. Alla Azure CycleCloud-aktiviteter loggas.

  • Autentisering och auktorisering. Azure CycleCloud stöder inbyggd lokal autentisering. Du kan också integrera den med Usluge domena aktivnog direktorijuma eller andra LDAP-baserade identitetsprovidrar (Lightweight Directory Access Protocol). Som standard har de lokalt definierade användarna åtkomst till operativsystemet på de hanterade klusternoderna, men det är möjligt att administrera klusteranvändare separat. För hantering av resurser i en Azure-prenumeration kan du använda tjänstens huvudnamn eller hanterade identitet i Microsoft Entra.

  • Kostnadsrapportering och kontroller i nära realtid. Azure CycleCloud spårar klusteranvändningen och beräknar motsvarande kostnad. Med den här funktionen kan du konfigurera budgetaviseringar som utlöses när klusterkostnaden överskrider det belopp som du har angett. Azure CycleCloud integreras också med Microsoft Cost Management.

Hur implementerar och använder du Azure CycleCloud?

CycleCloud implementeras som ett Linux-baserat webbprogram som du kan installera på valfri plats där du kan komma åt din Azure-miljö. Det enklaste sättet att konfigurera den är genom att distribuera en virtuell Azure-dator med hjälp av motsvarande Azure Marketplace-avbildning, med alternativet att automatisera distributionen med hjälp av en ARM-mall (Azure Resource Manager). Du kan också använda yum- eller apt-paket eller en containeravbildning som är tillgänglig från Microsoft Container Registry.

Under den inledande konfigurationen kan du ange en SSH-nyckel för att skydda åtkomsten till operativsystemet som är värd för CycleCloud-programmet och till de klusternoder som distribueras senare. Om du vill att CycleCloud-programmet ska interagera med Azure Resource Manager måste du välja en Microsoft Entra-identitet som tillhandahåller säkerhetskontext för den här interaktionen och tilldela den tillräckliga behörigheter i azure-målprenumerationen med hjälp av rollbaserad åtkomstkontroll i Azure (RBAC). Den här identiteten kan ha formen av ett huvudnamn för tjänsten eller en hanterad identitet om den är värd för Azure CycleCloud-programmet på en virtuell Azure-dator.

En Azure CycleCloud-instans kräver också ett Azure Storage-konto och en tillhörande blobcontainer. Den här containern, som kallas för ett skåp, tillhandahåller mellanlagringsområdet för distribution av projekt till klusternoder.

När det har installerats tillhandahåller Azure CycleCloud-programmet ett grafiskt användargränssnitt som gör det möjligt för en användare att hantera och övervaka HPC-system och ett kommandoradsgränssnitt (CLI) som underlättar automatisering och integrering av CycleCloud i befintliga arbetsflöden. Du kan också använda CLI för att importera mallar, automatisera klusteretablering och utföra mer avancerade hanteringsuppgifter.

Skärmbild av det grafiska gränssnittet för Azure CycleCloud-webbprogrammet.

Vilken arkitektur har Azure CycleCloud?

Azure CycleCloud tillhandahåller ett extra abstraktionslager jämfört med Azure Resource Manager, vilket minimerar användarnas behov av att hantera Azure-beräknings- och lagringsresurser direkt. Dess roll är att översätta konfigurationer på scheduler-nivå som är tillgängliga via det grafiska gränssnittet eller CLI till AZURE Resource Manager-API-anrop (ARM) som interagerar med virtuella Azure-datorer och Skalningsuppsättningar för virtuella Azure-datorer i användardefinierade virtuella nätverk och undernät. Dessa anrop omfattar även regionala vCPU-kvoter, klusterstorleksgränser och begränsningar för InfiniBand-nätverkstopologi. De underlättar också optimering av klusterprestanda med hjälp av sådana konstruktioner som närhetsplaceringsgrupper eller anslutning av klusternoder till samma InfiniBand-växel.

Kommentar

En närhetsplaceringsgrupp gör det möjligt att samla virtuella Azure-datorer nära varandra, men överväger inte InfiniBand-nätverk. Med Azure CycleCloud kan du använda en egen specifik konstruktion, som kallas PlacementGroupId , för att gruppera klusternoder i en enda Skalningsuppsättning för virtuella Azure-datorer som är ansluten till samma nätverksväxel. Du kan kombinera dessa två funktioner, men detta kan minska antalet noder som du kan etablera i samma Skalningsuppsättning för virtuella Azure-datorer.

Azure CycleCloud samordnar livscykeln för HPC-kluster, som vanligtvis består av en eller flera HPC-schemaläggarens huvudnoder och beräkningsnoder, men kan även innehålla nätverksansluten lagring, till exempel en NFS-server eller BeeGFS-kluster, Azure NetApp Files, Azure HPC Cache och Microsoft Entra Domain Services. Den innehåller ett internt NoSQL-datalager som cachelagrar kluster- och nodtillstånd. Dess nodövervakningssystem möjliggör aviseringar. Dess hanteringsfunktioner exponeras via REST API och är tillgängliga via webben och CLI.

Automatisk skalning av det hanterade klustret förlitar sig på kalkylatorn för efterfrågan och autoskalningsbiblioteket. Du får lära dig mer om deras egenskaper i nästa lektion i den här kursen.

Diagram över arkitekturen på hög nivå i Azure CycleCloud.

Vad är Livscykel för Azure CycleCloud-kluster?

Livscykeln för ett kluster börjar med att välja en mall som innehåller dess definition. Du kan välja att använda en av de inbyggda mallarna eller skapa en anpassad mall och importera den till CycleCloud-programmet. Mallen innehåller vanligtvis flera parametrar som gör att du kan anpassa klusterkonfigurationen när den skapas. Detaljerna i processen för att skapa kluster beror på om du använder webben eller CLI.

När du har skapat ett kluster kan du starta det. När du startar ett kluster utlöses en sekvens med uppgifter för varje nod som ingår i den klustermallbaserade definitionen. Den här sekvensen består av ett anrop till Azure Resource Manager som begär etablering av en virtuell Azure-dator, som kallas för anskaffningstillståndet . Detta följs av konfigurationen av den virtuella datorn, inklusive körningen av dess initiering som definierats i motsvarande projekt, körning av skript för att installera och konfigurera schemaläggningsprogramvaran samt etablering och montering av filsystemvolymer. När sekvensen är klar når noden tillståndet Startad . Eventuella ohanterade eller okända fel resulterar i feltillståndet.

När klusternoderna har körts är de fjärranslutna via SSH eller RDP, beroende på deras operativsystem. Du kan använda sådana anslutningar för att skicka klusterjobb. Beroende på klusterkonfigurationen kan detta utlösa skalning av klustret.

Du kan avsluta ett kluster när det har slutfört alla skickade jobb. När klustret avslutas stoppas och dess noder tas bort och eventuella icke-beständiga volymer tas bort, vilket lämnar klustret i tillståndet Av .