Übung: Hinzufügen eines Datenträgers zum Planerknoten eines HPC-Clusters
Azure CycleCloud basiert auf Vorlagen zum Definieren von Clusterkonfigurationen. Seine Standardimplementierung enthält integrierte Vorlagen für die am häufigsten verwendeten Scheduler, aber Sie können mehrere andere im Azure CycleCloud GitHub-Repository finden.
Denken Sie daran, dass Sie den Prozess der Implementierung eines Clusters mithilfe einer angepassten Azure CycleCloud-Vorlage testen wollten. Zu diesem Zweck nutzen Sie das Azure CycleCloud GitHub-Repository, das das von Microsoft kuratierte Slurm-Projekt hostet. Sie ändern eine vorhandene Clustervorlage aus diesem Repository, indem Sie die Speicherkonfiguration des Planerknotens ändern, die neu geänderte Vorlage in Ihre Azure CycleCloud-Anwendung importieren, die grafische Benutzeroberfläche der Anwendung verwenden, um einen Cluster zu erstellen und schließlich die Änderung der Speicherkonfiguration zu überprüfen.
Von Bedeutung
Um Übungen in diesem Modul durchzuführen, müssen Sie die folgenden Voraussetzungen erfüllen:
- Verfügen Sie über ein Azure-Abonnement mit Verfügbarkeit von vCPU-Kernen in den drei Gruppen von VM-Größen:
- mindestens 4 vCPU-Kerne der DSv3-Serie
- mindestens 100 vCPU-Kerne der FSv2-Serie
- mindestens 48 vCPU-Kerne der NC-Serie
- Sie verfügen über ein Microsoft-Konto oder ein Microsoft Entra-Konto mit der Rolle "Besitzer" oder "Mitwirkender" im Azure-Abonnement.
- Stellen Sie eine Azure CycleCloud-Anwendung auf eine Azure-VM bereit, auf die mit einer öffentlichen IP-Adresse zugegriffen werden kann, die der Netzwerkschnittstelle zugeordnet ist.
- Konfigurieren Sie die Azure CycleCloud-Anwendung mit dem Rollenebenenzugriff "Besitzer" oder "Mitwirkender" auf das Azure-Abonnement.
- Verwenden Sie ein Azure CycleCloud-Anwendungsbenutzerkonto mit der Administratorrolle.
- Erstellen Sie ein virtuelles Azure-Netzwerk-Subnetz, in dem Sie Clusterknoten bereitstellen können.
- Verwenden Sie den privaten Schlüssel des SSH-Schlüsselpaars, um die Azure CycleCloud-Anwendung zu konfigurieren.
Hinweis
Informationen zum Identifizieren und Erhöhen der vCPU-Kontingente in einem Azure-Abonnement finden Sie in der folgenden Dokumentation:
Hinweis
In der letzten Übung dieses Moduls benötigen Sie den privaten Schlüssel, um eine direkte Verbindung mit den Clusterknoten herzustellen.
In dieser Übung führen Sie die folgenden Aufgaben durch:
- Aufgabe 1: Installieren und Konfigurieren der Azure CycleCloud CLI
- Aufgabe 2: Konfigurieren eines Azure CycleCloud Slurm-Projekts
- Aufgabe 3: Implementieren einer benutzerdefinierten Azure CycleCloud-Vorlage
- Aufgabe 4: Starten eines neuen Clusters und Untersuchen der Speicherkonfiguration
Aufgabe 1: Installieren und Konfigurieren der Azure CycleCloud CLI
Die meisten Verwaltungsaufgaben in diesen und nachfolgenden Übungen verwenden Azure CycleCloud CLI, sodass Sie damit beginnen, sie zu installieren und mit Ihrer Azure CycleCloud-Anwendung zu verbinden. Um die ersteinrichtung zu vereinfachen, verwenden Sie Azure Cloud Shell.
Hinweis
Alternativ können Sie sich bei der Azure-VM anmelden, auf der die Azure CycleCloud-Anwendung gehostet wird, auf der die Azure CycleCloud CLI bereits installiert ist.
Starten Sie auf Ihrem Computer einen beliebigen azure portalkompatiblen Webbrowser, navigieren Sie zum Azure-Portal, und authentifizieren Sie sich bei einem Microsoft-Konto oder einem Microsoft Entra-Konto, das über die Rolle "Mitwirkender" oder "Besitzer" im Azure-Abonnement verfügt, das Sie in diesem Modul verwenden.
Hinweis
Das Azure-Portal unterstützt die gängigsten modernen Webbrowser, einschließlich der aktuellen Versionen von Microsoft Edge, Google Chrome, Mozilla Firefox und Apple Safari.
Öffnen Sie im Azure-Portal die Cloud Shell , indem Sie ihr Symbol in der Symbolleiste neben dem Suchtextfeld auswählen.
Wählen Sie bei Aufforderung zur Auswahl von Bash oder PowerShell die Option Bash aus.
Hinweis
Wenn Sie Azure Cloud Shell zum ersten Mal starten und Ihnen die Meldung "Sie haben keinen Speicher bereitgestellt" angezeigt wird, wählen Sie das Abonnement aus, das Sie in dieser Aufgabe verwenden, und wählen Sie dann "Speicher erstellen" aus.
Führen Sie in der Bash-Sitzung im Azure Cloud Shell-Bereich den folgenden Befehl aus, um den Wert einer Variablen auf die öffentliche IP-Adresse des Azure CycleCloud-Anwendungsservers festzulegen (ersetzen Sie den Platzhalter
<public_ip_address>durch die tatsächliche öffentliche IP-Adresse):PIP=<public_ip_address>Führen Sie den folgenden Befehl aus, um die .zip Datei mit dem instanzspezifischen Cli-Installationsprogramm von Azure CycleCloud herunterzuladen:
curl -O --insecure https://$PIP/static/tools/cyclecloud-cli.zipFühren Sie die folgenden Befehle nacheinander aus, um das Skript zu extrahieren und auszuführen, das die Azure CycleCloud CLI-Installation ausführt:
unzip ./cyclecloud-cli.zip cd ./cyclecloud-cli-installer ./install.shHinweis
Ignorieren Sie alle Meldungen bezüglich der Pfadumgebungsvariable, und fahren Sie mit dem nächsten Schritt fort.
Führen Sie den folgenden Befehl aus, um eine Verbindung mit der Azure CycleCloud-Instanz herzustellen, in der die Platzhalter
<username>und<password>die Zugangsdaten Ihres Azure CycleCloud-Anwendungsbenutzerkontos mit Administratorrolle bezeichnen.cyclecloud initialize --batch --url=https://$PIP --username=<username> --password=<password> --verify-ssl=falseHinweis
Der auf
falseeingestellte--verify-ssl-Parameter ermöglicht Szenarien, in denen die Azure CycleCloud-Anwendung mit einem selbstsignierten Zertifikat oder einem Zertifikat von einer nicht vertrauenswürdigen Zertifizierungsstelle konfiguriert ist.Führen Sie den folgenden Befehl aus, um die Verbindung mit der Azure CycleCloud-Instanz zu überprüfen, indem Sie die Schließfachkonfiguration anzeigen:
cyclecloud locker listHinweis
Die Ausgabe sollte die Namen der Schließfächer für jedes bei CycleCloud registrierte Azure-Abonnement und die entsprechenden Container in einzelnen Azure Storage-Konten enthalten. Sie sollten den Namen des Schließfachs aufzeichnen, das dem Azure-Abonnement entspricht, das Sie für dieses Labor verwenden möchten, da Sie es später in dieser Übung benötigen. Die Ausgabe des Befehls weist das folgende Format auf (wobei der
<locker-name>Platzhalter den Namen des Schließfachs darstellt, stellt der<storage_account_name>Platzhalter den Namen des Speicherkontos dar, das dieses Schließfach hostet, und der<container_name>Platzhalter stellt den Namen des Schließfachcontainers innerhalb dieses Speicherkontos dar):<locker-name> (az://<storage_account_name>/<container_name>)
Aufgabe 2: Konfigurieren eines Azure CycleCloud Slurm-Projekts
Als Nächstes konfigurieren Sie ein Azure CycleCloud Slurm-Beispielprojekt. Sie nutzen ein vorhandenes Slurm-Projekt aus dem Azure CycleCloud GitHub-Repository. Sie rufen es in Ihr Heimverzeichnis in Azure Cloud Shell ab und laden es dann in den Azure CycleCloud Locker hoch.
Führen Sie auf Ihrem Computer innerhalb der Bash-Sitzung im Azure Cloud Shell-Bereich die folgenden Befehle aus, um ein Projektverzeichnis zu erstellen und ein Slurm-Projekt aus dem entsprechenden GitHub-Repository darin abzurufen.
mkdir ~/cyclecloud-slurm && cd ~/cyclecloud-slurm cyclecloud project fetch https://github.com/Azure/cyclecloud-slurm .Hinweis
Achten Sie darauf, dass Sie den nachstehenden Punkt am Ende des zweiten Befehls setzen.
Führen Sie den folgenden Befehl aus, um das Standardschließfach festzulegen und das Projekt darin hochzuladen (ersetzen Sie den Platzhalter
<locker_name>durch den Namen des Schließfachs, das Sie im vorherigen Vorgang identifiziert haben, zcc-lab-subscription-storage. B.):cyclecloud project default_locker <locker_name> cyclecloud project uploadHinweis
Alternativ können Sie
cyclecloud project upload <locker_name>ausführen, wobei der Platzhalter<locker_name>den Namen des Schließfachs angibt.Hinweis
Ignorieren Sie die azcopy-bezogene Fehlermeldung, die
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/containergefolgt vonUpload failed!besagt, solange die einzelnen Kopien der Projektdateien erfolgreich sind. Um dies zu bestätigen, stellen Sie sicher, dass der endgültige Auftragsstatus alsCompletedaufgeführt ist und dass keine Übertragungen fehlgeschlagen sind.
Aufgabe 3: Implementieren einer benutzerdefinierten Azure CycleCloud-Vorlage
Jetzt laden Sie die Azure CycleCloud-Beispielvorlage herunter und ändern sie, die mit dem abgerufenen GitHub-basierten Projekt kompatibel ist. Sie verwenden es, um eine benutzerdefinierte Speicherkonfiguration zu definieren, die einen zusätzlichen Datenträger enthält, der mit dem Planerknoten verbunden ist und über das Netzwerkdateisystem (NETWORK File System, NFS) exportiert wird. Nach dieser Änderung importieren Sie sie in Ihre Azure CycleCloud-Anwendung.
Hinweis
Sie können den Inhalt der Vorlage mit einem Webbrowser untersuchen, indem Sie zum Azure/cyclecloud-slurm-Repository navigieren.
Führen Sie auf Ihrem Computer im Webbrowserfenster, in dem die Bash-Sitzung im Azure Cloud Shell-Bereich angezeigt wird, den folgenden Befehl aus, um das Arbeitsverzeichnis in das neu abgerufene Repository zu ändern:
cd ~/cyclecloud-slurm/templatesFühren Sie die folgenden Befehle aus, um eine Sicherung der ursprünglichen Clustervorlage zu erstellen:
cp slurm.txt slurm.bak.txtFühren Sie den folgenden Befehl aus, um die heruntergeladene Vorlage im Nano-Editor zu öffnen:
nano slurm.txtHinweis
Statt des Nano-Editors können Sie jeden anderen text-Editor verwenden, der Ihnen zur Verfügung steht, einschließlich des integrierten Azure Cloud Shell-Editors.
Wechseln Sie innerhalb der Nano-Editor-Schnittstelle zum
[[node scheduler]]Abschnitt. Suchen Sie in diesem Abschnitt den[[[volume shared]]]Unterabschnitt, wechseln Sie zur ZeilePersistent = ${NFSType == "Builtin"}, und fügen Sie danach den folgenden Inhalt hinzu:# 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 = 0Hinweis
Wenn Sie einen Windows-Computer verwenden, können Sie den Inhalt der Zwischenablage mithilfe der Tastenkombination UMSCHALT+EINFG einfügen.
Hinweis
Durch Ihre Änderungen werden zwei Storage Premium-Datenträger mit 128 GB auf einem Stripesetvolume definiert, das während der Bereitstellung automatisch auf dem Hauptknoten eingebunden wird. Das Volume verwendet den /mnt/exports/mountpoint und wird automatisch als ext4-Dateisystem formatiert. Die
Persistent = trueEinstellung gibt an, dass die Datenträger beibehalten werden, wenn Sie den Cluster beenden, aber sie werden automatisch gelöscht, wenn Sie den Cluster löschen.Hinweis
Azure CycleCloud implementiert die Volumes als von Azure verwaltete Datenträger.
Wählen Sie in der Nano-Editor-Benutzeroberfläche die Tastenkombination STRG+O aus, wählen Sie die EINGABETASTE aus, und wählen Sie dann die Tastenkombination STRG+X aus, um die von Ihnen vorgenommenen Änderungen zu speichern und die Datei zu schließen.
Hinweis
An diesem Punkt können Sie Ihre Verbindung mit der Azure CycleCloud-Anwendung über CLI verwenden, um die Vorlage zu importieren.
Führen Sie den folgenden Befehl aus, um die Vorlage zu importieren, die Sie in der vorherigen Aufgabe in die Azure CycleCloud-Anwendung geändert haben:
cyclecloud import_template -f ~/cyclecloud-slurm/templates/slurm.txtHinweis
Der Befehl zeigt den Namen der importierten Vorlage, den Status des Schedulers (
scheduler: Off -- --) und die Anzahl der Gesamtknoten (Total nodes: 1) an.
Aufgabe 4: Starten eines neuen Clusters und Untersuchen der Speicherkonfiguration
Um diese Übung abzuschließen, stellen Sie sicher, dass die Vorlage, die Sie in die Azure CycleCloud-Anwendung importiert haben, die beabsichtigte Funktionalität bereitstellt, indem Sie einen neuen Cluster erstellen und die Speicherkonfiguration des Kopfknotens überprüfen, um sicherzustellen, dass er ein Volume enthält, das aus zwei beständigen Datenträgern besteht.
Öffnen Sie auf Ihrem Computer ein anderes Browserfenster, und navigieren Sie zur HTTPS://< IP_address-URL> (ersetzen Sie den <IP_address> Platzhalter durch die öffentliche IP-Adresse des Azure CycleCloud-Anwendungsservers). Wenn Sie dazu aufgefordert werden, bestätigen Sie, dass Sie fortfahren möchten.
Wenn Sie zur Authentifizierung aufgefordert werden, melden Sie sich an, indem Sie Anmeldeinformationen desselben Azure CycleCloud-Anwendungsbenutzerkontos angeben, das Sie zum Konfigurieren der Azure CycleCloud CLI verwendet haben.
Navigieren Sie in der grafischen Benutzeroberfläche von Azure CycleCloud zur Seite "Cluster ", und wählen Sie " +.
Wählen Sie auf der Seite " Neuen Cluster erstellen" das Symbol mit der Bezeichnung "Slurm " in Form eines Isosceles-Dreiecks mit kleinen Kreisen an den einzelnen Scheitelpunkten aus.
Gehen Sie zur Registerkarte "Über" auf der Seite "Neuer Slurm-Cluster" und geben Sie "contoso-custom-slurm-lab-cluster" in das Textfeld "Clustername" ein.
Konfigurieren Sie auf der Registerkarte "Erforderliche Einstellungen " auf der Seite "Neuer Slurm-Cluster " die folgenden Einstellungen (lassen Sie andere mit ihren Standardwerten ab), und wählen Sie "Weiter" aus:
Konfiguration Wert Region Wählen Sie den Namen der Azure-Region aus, in der Sie den Cluster in dieser Übung bereitstellen möchten. Vm-Typ des Scheduler Wählen Sie im Popupfenster "Maschinentyp auswählen" die Option "Auswählen" aus. Geben Sie im Textfeld "SKU-Suche " D4s_v3 ein. Aktivieren Sie in der Liste der Ergebnisse das Kontrollkästchen neben dem Eintrag D4s_v3, und klicken Sie dann auf Anwenden. Hinweis
Stellen Sie sicher, dass Sie die VM-Größe auswählen, die die Premium-Ebene von Azure Storage unterstützt, die zum Bereitstellen von Datenträgern des Kopfknotens gemäß Ihrer benutzerdefinierten Konfiguration erforderlich ist.
Konfiguration Wert Max. HPC-Kerne Geben Sie 100 ein. Max. HTC-Kerne Geben Sie 100 ein. Max. VMs pro Skalierungsgruppe Geben Sie 40 ein. Subnetz-ID Wählen Sie cyclecloud-rg: cyclecloud-rg-vnet-contoso-slurm-lab-cluster-subnet. Überprüfen Sie auf der Registerkarte " Network Attached Storage " auf der Seite "Neuer Slurm-Cluster ", ob der NFS-Typ auf "Builtin" festgelegt ist, übernehmen Sie den Standardwert "Size (GB) " auf "100", und wählen Sie "Weiter" aus.
Überprüfen Sie auf der Registerkarte "Erweiterte Einstellungen " auf der Seite "Neuer Slurm-Cluster " die verfügbaren Optionen, ohne Änderungen vorzunehmen, und wählen Sie "Weiter" aus.
Überprüfen Sie auf der Registerkarte "Cloud-init " auf der Seite "Neuer Slurm-Cluster " die verfügbaren Optionen, ohne Änderungen vorzunehmen, und wählen Sie " Speichern" aus.
Wählen Sie auf der Seite contoso-custom-slurm-lab-cluster den Link "Start" aus. Wenn eine Bestätigung angefordert wird, klicken Sie auf OK.
Überwachen Sie den Startvorgang.
Hinweis
Der Prozess umfasst die Bereitstellung der Azure-VM, die die Rolle des Masterknotens im Cluster übernimmt, die Installation und Konfiguration des Swarm-Schedulers sowie das Erstellen und Einbinden von Datenträgervolumes. Dies kann etwa fünf Minuten dauern.
Nachdem sich der Status des Planerknotens in Bereit geändert hat, wählen Sie dessen Eintrag auf der Registerkarte Knoten aus und klicken Sie dann auf Details anzeigen, um die Detailansicht anzuzeigen.
Wechseln Sie im Popupfenster Planer wird in contoso-custom-slurm-lab-cluster angezeigt zur Registerkarte Knoten, scrollen Sie zum Abschnitt Volumes, und stellen Sie sicher, dass die Einträge nfs-1 und nfs-2 in der Liste der Volumes angezeigt werden.
Glückwunsch! Sie haben die erste Übung dieses Moduls erfolgreich abgeschlossen. In dieser Übung haben Sie einen Cluster basierend auf einer angepassten Azure CycleCloud-Vorlage implementiert. Sie haben Azure CycleCloud CLI verwendet, um ein Beispielprojekt zu importieren, das im Azure CycleCloud GitHub-Repository gehostet wird, einschließlich einer angepassten Kopie einer seiner Vorlagen. Als Nächstes haben Sie einen Cluster basierend auf der importierten Vorlage mit der grafischen Benutzeroberfläche von Azure CycleCloud erstellt, gestartet und überprüft, ob die benutzerdefinierte Änderung wirksam wurde.
Hinweis
Löschen Sie die in dieser Übung bereitgestellten und konfigurierten Ressourcen nicht, wenn Sie die nächste Übung in diesem Modul ausführen möchten. Diese Ressourcen sind erforderlich, um die nächste Übung abzuschließen.