Övning – Lägga till en disk i ett HPC-klusters scheduler-nod
Azure CycleCloud förlitar sig på mallar för att definiera klusterkonfigurationer. Standardimplementeringen innehåller inbyggda mallar för de vanligaste schemaläggarna, men du hittar flera andra i Azure CycleCloud GitHub-lagringsplatsen.
Kom ihåg att du ville testa processen med att implementera ett kluster med hjälp av en anpassad Azure CycleCloud-mall. För det här ändamålet använder du Azure CycleCloud GitHub-lagringsplatsen som är värd för Det Microsoft-kurerade Slurm-projektet. Du ändrar en befintlig klustermall från den här lagringsplatsen genom att ändra lagringskonfigurationen för scheduler-noden, importera den nyligen ändrade mallen till ditt Azure CycleCloud-program, använda programmets grafiska gränssnitt för att skapa ett kluster och slutligen verifiera ändringen av lagringskonfigurationen.
Viktigt!
För att slutföra övningarna i den här modulen måste du uppfylla följande krav:
- Ha en Azure-prenumeration med tillgänglighet för vCPU-kärnor i de tre grupperna av VM-storlekar:
- minst 4 vCPU-kärnor i DSv3-serien
- minst 100 vCPU-kärnor i FSv2-serien
- minst 48 vCPU-kärnor i NC-serien
- Ha ett Microsoft-konto eller ett Microsoft Entra-konto med rollen Ägare eller Deltagare i Azure-prenumerationen.
- Distribuera ett Azure CycleCloud-program till en virtuell Azure-dator som är tillgänglig med en offentlig IP-adress som är associerad med dess nätverksgränssnitt.
- Konfigurera Azure CycleCloud-programmet med rollnivån Ägare eller Deltagare till Azure-prenumerationen.
- Ha ett Azure CycleCloud-programanvändarkonto med administratörsrollen.
- Skapa ett undernät för virtuellt Azure-nätverk där du kan distribuera klusternoder.
- Ha den privata nyckeln för SSH-nyckelparet som används för att konfigurera Azure CycleCloud-programmet.
Kommentar
Information om hur du identifierar och ökar vCPU-kvoterna i en Azure-prenumeration finns i följande dokumentation:
Kommentar
Du behöver den privata nyckeln för att ansluta direkt till klusternoderna i den senaste övningen i den här modulen.
I den här övningen utför du följande uppgifter:
- Uppgift 1: Installera och konfigurera Azure CycleCloud CLI
- Uppgift 2: Konfigurera ett Azure CycleCloud Slurm-projekt
- Uppgift 3: Implementera en anpassad Azure CycleCloud-mall
- Uppgift 4: Starta ett nytt kluster och granska dess lagringskonfiguration
Uppgift 1: Installera och konfigurera Azure CycleCloud CLI
De flesta hanteringsuppgifter i den här och efterföljande övningarna använder Azure CycleCloud CLI, så du börjar med att installera det och ansluta det till ditt Azure CycleCloud-program. För att förenkla den inledande installationen använder du Azure Cloud Shell.
Kommentar
Du kan också logga in på den virtuella Azure-dator som är värd för Azure CycleCloud-programmet, där Azure CycleCloud CLI redan är installerat.
Starta en Azure-portalkompatibel webbläsare från datorn, gå till Azure-portalen och autentisera med ett Microsoft-konto eller ett Microsoft Entra-konto som har rollen Deltagare eller Ägare i azure-prenumerationen som du ska använda i den här modulen.
Kommentar
Azure-portalen stöder de vanligaste moderna webbläsarna, inklusive de aktuella versionerna av Microsoft Edge, Google Chrome, Mozilla Firefox och Apple Safari.
Öppna Cloud Shell i Azure-portalen genom att välja dess ikon i verktygsfältet bredvid söktextrutan.
Om du uppmanas att välja antingen Bash eller PowerShell väljer du Bash.
Kommentar
Om det här är första gången du startar Azure Cloud Shell och du får meddelandet Du har ingen lagringsmonterad väljer du den prenumeration som du använder i den här övningen och väljer sedan Skapa lagring.
I Bash-sessionen i Fönstret Azure Cloud Shell kör du följande kommando för att ange värdet för en variabel till den offentliga IP-adressen för Azure CycleCloud-programservern (ersätt platshållaren
<public_ip_address>
med den faktiska offentliga IP-adressen):PIP=<public_ip_address>
Kör följande kommando för att ladda ned .zip-filen som innehåller azure CycleCloud-instansspecifikt CLI-installationsprogram:
curl -O --insecure https://$PIP/static/tools/cyclecloud-cli.zip
Kör följande kommandon i följd för att extrahera och köra skriptet som utför Azure CycleCloud CLI-installationen:
unzip ./cyclecloud-cli.zip cd ./cyclecloud-cli-installer ./install.sh
Kommentar
Ignorera alla meddelanden om sökvägsmiljövariabeln och fortsätt till nästa steg.
Kör följande kommando för att upprätta en anslutning till Azure CycleCloud-instansen
<username>
, där platshållarna och<password>
anger autentiseringsuppgifterna för ditt Azure CycleCloud-programanvändarkonto med administratörsrollen:cyclecloud initialize --batch --url=https://$PIP --username=<username> --password=<password> --verify-ssl=false
Kommentar
Parametern
--verify-ssl
är inställd på attfalse
hantera scenarier där Azure CycleCloud-programmet har konfigurerats med ett självsignerat certifikat eller ett certifikat från en ej betrodd certifikatutfärdare.Kör följande kommando för att verifiera anslutningen till Azure CycleCloud-instansen genom att visa dess konfiguration av skåpet:
cyclecloud locker list
Kommentar
Utdata bör innehålla namnen på skåpen för varje Azure-prenumeration som registrerats med CycleCloud och deras respektive containrar i enskilda Azure Storage-konton. Du bör registrera namnet på det skåp som motsvarar den Azure-prenumeration som du tänker använda för det här labbet, eftersom du behöver det senare i den här övningen. Kommandots utdata är i följande format (där
<locker-name>
platshållaren representerar namnet på skåpet,<storage_account_name>
platshållaren representerar namnet på lagringskontot som är värd för skåpet och<container_name>
platshållaren representerar namnet på containern för skåpet i lagringskontot):<locker-name> (az://<storage_account_name>/<container_name>)
Uppgift 2: Konfigurera ett Azure CycleCloud Slurm-projekt
Därefter konfigurerar du ett Azure CycleCloud Slurm-exempelprojekt. Du använder ett befintligt Slurm-projekt från Azure CycleCloud GitHub-lagringsplatsen. Du hämtar den till din hemkatalog i Azure Cloud Shell och laddar sedan upp den till Azure CycleCloud-skåpet.
På datorn kör du följande kommandon i Bash-sessionen i Azure Cloud Shell-fönstret för att skapa en projektkatalog och hämta ett Slurm-projekt från motsvarande GitHub-lagringsplats till den.
mkdir ~/cyclecloud-slurm && cd ~/cyclecloud-slurm cyclecloud project fetch https://github.com/Azure/cyclecloud-slurm .
Kommentar
Se till att inkludera den avslutande perioden i slutet av det andra kommandot.
Kör följande kommando för att ange standardskåpet och ladda upp projektet till det (ersätt platshållaren
<locker_name>
med namnet på det skåp som du identifierade i föregående uppgift, till exempelcc-lab-subscription-storage
):cyclecloud project default_locker <locker_name> cyclecloud project upload
Kommentar
Du kan också köra
cyclecloud project upload <locker_name>
, där platshållaren<locker_name>
anger skåpets namn.Kommentar
Ignorera det azcopy-relaterade felmeddelandet
Cannot perform sync due to error: sync must happen between source and destination of the same type, e.g., either file <-> file, or directory/container <-> directory/container
följt avUpload failed!
så länge de enskilda kopiorna av projektfilerna lyckas. Bekräfta detta genom att kontrollera att den slutliga jobbstatusen visas somCompleted
, med noll misslyckade överföringar.
Uppgift 3: Implementera en anpassad Azure CycleCloud-mall
Nu ska du ladda ned och ändra Azure CycleCloud-exempelmallen som är kompatibel med det hämtade GitHub-baserade projektet. Du använder den för att definiera en anpassad lagringskonfiguration som innehåller en extra disk som är ansluten till scheduler-noden och som exporteras via nätverksfilsystemet (NFS). Efter den här ändringen importerar du den till ditt Azure CycleCloud-program.
Kommentar
Du kan granska innehållet i mallen med en webbläsare genom att navigera till azure/cyclecloud-slurm-lagringsplatsen.
I webbläsarfönstret på datorn som visar Bash-sessionen i Azure Cloud Shell-fönstret kör du följande kommando för att ändra arbetskatalogen till den nyligen hämtade lagringsplatsen:
cd ~/cyclecloud-slurm/templates
Kör följande kommandon för att skapa en säkerhetskopia av den ursprungliga klustermallen:
cp slurm.txt slurm.bak.txt
Kör följande kommando för att öppna den nedladdade mallen i nanoredigeraren:
nano slurm.txt
Kommentar
I stället för nanoredigeraren kan du använda valfri annan textredigerare som är tillgänglig för dig, inklusive den inbyggda Azure Cloud Shell-redigeraren.
Gå till avsnittet i nanoredigerarens
[[node scheduler]]
gränssnitt. I det avsnittet letar du upp underavsnittet[[[volume shared]]]
, flyttar till radenPersistent = ${NFSType == "Builtin"}
och lägger till följande innehåll efter det:# Add 2 premium disks in a RAID 0 configuration to the NFS export [[[volume nfs-1]]] Size = 128 StorageAccountType = Premium_LRS Mount = nfs Persistent = true [[[volume nfs-2]]] Size = 128 StorageAccountType = Premium_LRS Mount = nfs Persistent = true [[[configuration cyclecloud.mounts.nfs]]] mountpoint = /mnt/exports/lab fs_type = ext4 raid_level = 0
Kommentar
Om du använder en Windows-dator kan du klistra in innehållet i Urklipp med hjälp av tangentkombinationen Skift + Infoga .
Kommentar
Dina ändringar definierar två 128 GB Premium-lagringsdiskar i en stripe-baserad volym som automatiskt monteras på huvudnoden under etableringen. Volymen använder monteringspunkten /mnt/exports/ och formateras automatiskt som ext4-filsystemet. Inställningen
Persistent = true
anger att diskarna sparas när du avslutar klustret, men de tas bort automatiskt om du tar bort klustret.Kommentar
Azure CycleCloud implementerar volymerna som Azure-hanterade diskar.
I nanoredigerarens gränssnitt väljer du tangentkombinationen Ctrl + O , väljer tangenten Retur och väljer sedan tangentkombinationen Ctrl + X för att spara de ändringar du har gjort och stänga filen.
Kommentar
Nu kan du använda din anslutning till Azure CycleCloud-programmet via CLI för att importera mallen.
Kör följande kommando för att importera mallen som du ändrade i föregående uppgift till Azure CycleCloud-programmet:
cyclecloud import_template -f ~/cyclecloud-slurm/templates/slurm.txt
Kommentar
Kommandot visar namnet på den importerade mallen, schemaläggarens tillstånd (
scheduler: Off -- --
) och antalet totala noder (Total nodes: 1
).
Uppgift 4: Starta ett nytt kluster och granska dess lagringskonfiguration
För att slutföra den här övningen kontrollerar du att mallen som du importerade till Azure CycleCloud-programmet levererar de avsedda funktionerna genom att skapa ett nytt kluster och granska lagringskonfigurationen för huvudnoden för att säkerställa att den innehåller en volym som består av två beständiga diskar.
Öppna ett annat webbläsarfönster på datorn och gå till url:en https://< IP_address> (ersätt <platshållaren IP_address> med den offentliga IP-adressen för Azure CycleCloud-programservern). Bekräfta att du vill fortsätta om du uppmanas att göra det.
Om du uppmanas att autentisera loggar du in genom att ange autentiseringsuppgifter för samma Azure CycleCloud-programanvändarkonto som du använde för att konfigurera Azure CycleCloud CLI.
I det grafiska gränssnittet Azure CycleCloud navigerar du till sidan Kluster och väljer +.
På sidan Skapa ett nytt kluster väljer du ikonen med etiketten Slurm i form av en isosceles-triangel med små cirklar vid var och en av dess hörn.
På fliken Om på sidan Nytt Slurm-kluster anger du contoso-custom-slurm-lab-cluster i textrutan Klusternamn.
På fliken Obligatoriskt Inställningar på sidan Nytt Slurm-kluster konfigurerar du följande inställningar (lämnar andra med sina standardvärden) och väljer Nästa:
Inställning Värde Region Välj namnet på den Azure-region där du tänker distribuera klustret i den här övningen. Vm-typ för Scheduler Välj Välj i popup-fönstret Välj en datortyp . I textrutan SKU-sökning anger du D4s_v3. Markera kryssrutan bredvid posten D4s_v3 i listan med resultat och välj sedan Använd. Kommentar
Se till att du väljer den VM-storlek som stöder Premium-nivån för Azure Storage, vilket krävs för att etablera diskar för huvudnoden enligt din anpassade konfiguration.
Inställning Värde Maximalt antal HPC-kärnor Ange 100. Maximalt antal HTC-kärnor Ange 100. Maximalt antal virtuella datorer per skalningsuppsättning Ange 40. Undernäts-ID Välj cyclecloud-rg: cyclecloud-rg-vnet-contoso-slurm-lab-cluster-subnet. På fliken Nätverksansluten lagring på sidan Nytt Slurm-kluster kontrollerar du att NFS-typen är inställd på Inbyggd, accepterar att standardvärdet för Storlek (GB) är inställt på 100 och väljer Nästa.
På fliken Avancerat Inställningar på sidan Nytt Slurm-kluster granskar du de tillgängliga alternativen utan att göra några ändringar och väljer Nästa.
På fliken Cloud-init på sidan Nytt Slurm-kluster granskar du de tillgängliga alternativen utan att göra några ändringar och väljer Spara.
På sidan contoso-custom-slurm-lab-cluster väljer du startlänken. När du uppmanas att bekräfta väljer du OK.
Övervaka startprocessen.
Kommentar
Processen omfattar etablering av den virtuella Azure-datorn som hanterar rollen för klustrets huvudnod, installation och konfiguration av Swarm-schemaläggaren samt att skapa och montera diskvolymer. Det kan ta ungefär fem minuter.
När statusen för scheduler-noden har ändrats till Klar väljer du dess post på fliken Noder och väljer sedan Visa information för att visa dess detaljerade vy.
I popup-fönstret Visa schemaläggare i contoso-custom-slurm-lab-cluster-cluster växlar du till fliken Nod, bläddrar till avsnittet Volymer och kontrollerar att posterna nfs-1 och nfs-2 visas i listan med volymer.
Klar! Du har slutfört den första övningen i den här modulen. I den här övningen implementerade du ett kluster baserat på en anpassad Azure CycleCloud-mall. Du använde Azure CycleCloud CLI för att importera ett exempelprojekt som finns på Azure CycleCloud GitHub-lagringsplatsen, inklusive en anpassad kopia av en av dess mallar. Sedan skapade du ett kluster baserat på den importerade mallen med det grafiska Gränssnittet Azure CycleCloud, startade det och verifierade att den anpassade ändringen trädde i kraft.
Kommentar
Ta inte bort de resurser som du distribuerade och konfigurerade i den här övningen om du planerar att köra nästa övning i den här modulen. Dessa resurser krävs för att slutföra nästa övning.