Selbstverwalteten Slurm-Cluster mit einer A4-VM erstellen
Auf dieser Seite wird beschrieben, wie Sie mit der gcloud CLI und dem Cluster Toolkit schnell einen KI-optimierten Slurm-Cluster mit A4-Maschinentypen erstellen und bereitstellen, die für Beschleuniger optimiert sind.
Beschleunigungsoptimierte A4-Maschinentypen sind mit NVIDIA B200-GPUs ausgestattet und wurden speziell für intensive KI-Berechnungen entwickelt, damit Ihr Slurm-Cluster umfangreiches Modelltraining und Inferenz effizient ausführen kann. Weitere Informationen zu beschleunigeroptimierten A4-Maschinentypen auf Google Cloudfinden Sie unter GPU-Maschinentypen.
Alternativ können Sie mit Cluster Director einen A4-basierten Slurm-Cluster erstellen. Cluster Director ist ein verwalteter Dienst, der die Clusterbereitstellung vereinfacht und automatisiert und so den operativen Aufwand reduziert. Weitere Informationen finden Sie unter Vollständig verwalteten Slurm-Cluster mit zwei A4-VMs erstellen.
Eine detaillierte Anleitung dazu finden Sie direkt in der Google Cloud Console. Klicken Sie dazu einfach auf Anleitung:
Anleitungsübersicht
In dieser Anleitung wird beschrieben, wie Sie einen KI-optimierten Slurm-Cluster mit A4-beschleunigungsoptimierten Maschinentypen einrichten. Sie richten einen Cluster mit Compute Engine-VMs ein, erstellen einen Cloud Storage-Bucket zum Speichern der erforderlichen Terraform-Module und richten eine Filestore-Instanz zum Bereitstellen Ihres Slurm-Clusters ein. Für die Schritte in dieser Anleitung gehen Sie so vor:
- Richten Sie Ihr Google Cloud -Projekt mit den erforderlichen Berechtigungen für diesen Leitfaden und den Umgebungsvariablen zum Reservieren Ihrer Maschine ein.
- Cloud Storage-Bucket erstellen
- Richten Sie die Umgebungsvariablen für den Speicher ein.
- Cluster Toolkit einrichten
- Wechseln Sie in das Cluster Toolkit-Verzeichnis.
- Erstellen Sie eine YAML-Datei für die Slurm-Bereitstellung.
- Stellen Sie einen Slurm-Cluster mithilfe eines Blueprints bereit.
- Stellen Sie eine Verbindung zum Slurm-Cluster her.
Hinweis
- Reservieren Sie einen Kapazitätsblock für eine
a4-highgpu-8g-Maschine. Prüfen Sie, ob Sie genügend Filestore-Kontingent haben, um den Slurm-Cluster bereitzustellen. Sie benötigen mindestens 10.240 GiB an zonaler Kapazität (auch als SSD-Kapazität mit hoher Skalierung bezeichnet).
Wenn Sie Ihr Filestore-Kontingent prüfen möchten, rufen Sie in der Google Cloud Console Kontingente und Systemlimits auf und filtern Sie die Tabelle so, dass nur Filestore-Ressourcen angezeigt werden.
- Eine detaillierte Anleitung zum Prüfen von Filestore-Kontingenten finden Sie unter API-spezifische Kontingente aufrufen.
- Wenn Sie nicht genügend Kontingent haben, fordern Sie eine Kontingenterhöhung an.
Achten Sie darauf, dass die Abrechnung für Ihr Projekt in Google Cloud aktiviert ist.
Aktivieren Sie die Compute Engine API, die Filestore API, die Cloud Storage API, die Service Usage API und die Cloud Resource Manager API:
Erforderliche Rollen
Bitten Sie Ihren Administrator, Ihnen die folgenden IAM-Rollen zuzuweisen, um die Berechtigungen zu erhalten, die Sie zum Bereitstellen eines Slurm-Clusters benötigen:
- Storage-Administrator (
roles/storage.admin) für Ihr Projekt - Compute Instance Admin (v1) (
roles/compute.instanceAdmin.v1) für Ihr Projekt - Dienstkontonutzer (
roles/iam.serviceAccountUser) für das Dienstkonto selbst
Weitere Informationen zum Zuweisen von Rollen finden Sie unter Zugriff auf Projekte, Ordner und Organisationen verwalten.
Sie können die erforderlichen Berechtigungen auch über benutzerdefinierte Rollen oder andere vordefinierte Rollen erhalten.
Kosten
Die Kosten für die Ausführung dieser Anleitung variieren je nach Abschnitt, z. B. für die Einrichtung der Anleitung oder die Ausführung von Jobs. Sie können die Kosten mit dem Preisrechner berechnen.
Verwenden Sie die folgenden Spezifikationen, um die Kosten für die Einrichtung dieser Anleitung zu schätzen:
- Filestore (Standard-)Kapazität pro Region:10.240 GiB.
- Nichtflüchtiger Standardspeicher: 50 GB
pd-standardfür den Slurm-Anmeldeknoten. - Leistungsstarke (SSD) nichtflüchtige Speicher: 50 GB
pd-ssdfür den Slurm-Controller. - VM-Instanz: 1
a4-highgpu-8g.
Cloud Shell starten
In dieser Anleitung verwenden Sie Cloud Shell, eine Shell-Umgebung für die Verwaltung von Ressourcen, die in Google Cloudgehostet werden.
Die Google Cloud CLI ist in Cloud Shell vorinstalliert. Die gcloud CLI bietet die primäre Befehlszeile für Google Cloud. Cloud Shell aufrufen
Zur Google Cloud Console.
Klicken Sie in der oberen rechten Ecke der Console auf den Button Cloud Shell aktivieren:

Eine Cloud Shell-Sitzung wird gestartet und eine Eingabeaufforderung wird angezeigt.
In dieser Shell führen Sie gcloud- und Cluster Toolkit-Befehle aus.
Variablen für die Kapazität von Maschinenreservierungen festlegen
Legen Sie in Cloud Shell die folgenden Umgebungsvariablen für die Reservierungskapazität fest. Mit diesen Umgebungsvariablen werden Platzhalterwerte für die Konfiguration Ihres Projekts für den Zugriff auf Ihre reservierte a4-highgpu-8g-Maschine festgelegt.
export A4_RESERVATION_PROJECT_ID=A4_RESERVATION_PROJECT_ID export A4_RESERVATION_NAME=A4_RESERVATION_NAME export A4_DEPLOYMENT_NAME=A4_DEPLOYMENT_NAME export A4_REGION=A4_REGION export A4_ZONE=A4_ZONE export A4_DEPLOYMENT_FILE_NAME=A4_DEPLOYMENT_FILE_NAME
Ersetzen Sie Folgendes:
A4_RESERVATION_PROJECT_ID: die Google CloudProjekt-ID, für die der Reservierungsblock für den A4-Maschinentyp gewährt wurde.A4_RESERVATION_NAME: Der Name der GPU-Reservierung, die in Ihrem Projekt verwendet wird. Beispiel:a4high-exr.A4_DEPLOYMENT_NAME: Eindeutiger Name für die Bereitstellung des Slurm-Clusters. Beispiel:my-slurm-cluster-deployment.A4_REGION: Die Region, in der der reservierte Reservierungsblock für den A4-Maschinentyp ausgeführt wird. Beispiel:us-central1.A4_ZONE: Die Zone, die die reservierten Maschinen enthält. Dieser String muss sowohl die Region als auch die Zone enthalten. Beispiel:us-central1-aA4_DEPLOYMENT_FILE_NAME: Ein eindeutiger Name für die YAML-Datei des Slurm-Blueprints. Wenn Sie dieses Tutorial mehrmals durchlaufen, wählen Sie jedes Mal einen eindeutigen Bereitstellungsnamen.
Zu Ihrem für A4 genehmigten Projekt wechseln
Wechseln Sie zum Google Cloud -Projekt, das den genehmigten Reservierungsblock für den A4-Maschinentyp hat:
gcloud config set project ${A4_RESERVATION_PROJECT_ID}Cloud Storage-Bucket erstellen
Wenn Sie einen Blueprint und seine Module bereitstellen, erstellt Terraform eine Zustandsdatei, die Ihren Blueprint Ihren Ressourcen in der Cloud zuordnet. Um einen zuverlässigen Datensatz Ihrer Infrastruktur zu erhalten, empfiehlt es sich, Ihre Terraform-Zustandsdateien an einem Remote-Speicherort mit aktivierter Versionsverwaltung zu speichern, z. B. in einem Cloud Storage-Bucket mit aktivierter Versionsverwaltung.
Erstellen Sie in Cloud Shell einen Cloud Storage-Bucket mit aktivierter Versionsverwaltung, um die Statusdatei zu speichern:
gcloud storage buckets create gs://${BUCKET_NAME} \
--project=${A4_RESERVATION_PROJECT_ID} \
--default-storage-class=STANDARD \
--location=${BUCKET_LOCATION} \
--uniform-bucket-level-access
gcloud storage buckets update gs://${BUCKET_NAME} --versioning
Ersetzen Sie Folgendes:
BUCKET_NAME: Der Name des neuen Cloud Storage-Bucket, der den Anforderungen für Bucket-Namen entsprechen muss.A4_RESERVATION_PROJECT_ID: die Google CloudProjekt-ID, für die der Reservierungsblock für den A4-Maschinentyp gewährt wurde.BUCKET_LOCATION: die Google Cloud Region, in der Sie Ihren Cloud Storage-Bucket erstellen möchten, z. B.us-central1. Terraform speichert Ihre Zustandsdatei an diesem Speicherort.
Variablen für die Speicherkapazität festlegen
Erstellen Sie in Cloud Shell die Umgebungsvariablen für den Bucket, den Sie im vorherigen Schritt erstellt haben.
export BUCKET_NAME=BUCKET_NAME export BUCKET_LOCATION=BUCKET_LOCATION
Ersetzen Sie Folgendes:
BUCKET_NAME: der Name Ihres Buckets.BUCKET_LOCATION: die Region, in der sich der Bucket befindet.
Cluster Toolkit einrichten
Wenn Sie einen Slurm-Cluster in einem Google Cloud -Projekt erstellen möchten, können Sie das Cluster Toolkit verwenden, um den Cluster bereitzustellen und zu provisionieren. Cluster Toolkit ist eine Open-Source-Software von Google Cloud, mit der sich die Bereitstellung von Arbeitslasten in Google Cloudvereinfachen lässt.
Gehen Sie so vor, um Cluster Toolkit einzurichten.
Cluster Toolkit installieren
Laden Sie zum Installieren des Cluster-Toolkits das vorkompilierte Binärprogramm-Bundle herunter und extrahieren Sie es. Es sind sowohl ZIP- als auch TAR-Archive (.tgz) verfügbar.
Rufen Sie die Seite mit den Cluster-Toolkit-Releases auf GitHub auf.
Laden Sie das Bundle herunter, das Ihrer Plattform und Architektur entspricht. Wenn Sie beispielsweise Cloud Shell verwenden, laden Sie
gcluster_bundle_linux_amd64.zipodergcluster_bundle_linux_amd64.tar.gzherunter.Extrahieren Sie die Bundle-Dateien in Ihrem Terminal in ein neues Verzeichnis
cluster-toolkit:Wenn Sie ein ZIP-Bundle heruntergeladen haben, extrahieren Sie die Dateien mit dem Befehl
unzip:unzip BUNDLE_FILENAME -d cluster-toolkit
Wenn Sie ein TAR-Bundle heruntergeladen haben, extrahieren Sie die Dateien mit dem Befehl
tar:mkdir -p cluster-toolkit tar -xzf BUNDLE_FILENAME -C cluster-toolkit
Ersetzen Sie
BUNDLE_FILENAMEdurch den Namen des heruntergeladenen Bundles.Wechseln Sie in das Verzeichnis
cluster-toolkit:cd cluster-toolkit
Installation prüfen:
./gcluster --version
Nachdem Sie das Binärprogramm installiert haben, können Sie Cluster bereitstellen, um Ihre Jobs oder Arbeitslasten auszuführen.
Bereitstellungsdatei erstellen
Erstellen Sie im Cluster Toolkit-Verzeichnis die YAML-Datei für die Slurm-Bereitstellung.
nano ${A4_DEPLOYMENT_FILE_NAME}.yamlFügen Sie den folgenden Inhalt in die YAML-Datei ein.
--- terraform_backend_defaults: type: gcs configuration: bucket: BUCKET_NAME vars: deployment_name: A4_DEPLOYMENT_FILE_NAME project_id: A4_RESERVATION_PROJECT_ID region: A4_REGION zone: A4_ZONE a4h_reservation_name: A4_RESERVATION_NAME a4h_cluster_size: 1Drücken Sie zum Speichern und Beenden der Datei Strg + O > Eingabetaste > Strg + X.
Slurm-Cluster bereitstellen
Führen Sie den folgenden Bereitstellungsbefehl aus, um den Slurm-Cluster bereitzustellen. Mit diesem Befehl wird der Slurm-Cluster mit der Blueprint-Datei examples/machine-learning/a4-highgpu-8g/a4high-slurm-blueprint.yaml bereitgestellt.
Starten Sie die Clustererstellung in Cloud Shell.
./gcluster deploy -d ${A4_DEPLOYMENT_FILE_NAME}.yaml examples/machine-learning/a4-highgpu-8g/a4high-slurm-blueprint.yaml --auto-approve
Mit dem Cluster verbinden
Stellen Sie nach der Bereitstellung eine Verbindung zur Google Cloud Console her, um Ihren Cluster aufzurufen.
Rufen Sie in derGoogle Cloud Console die Seite Compute Engine > VM-Instanzen auf.
Suchen Sie den Anmeldeknoten (
a4high-login-001oder ähnlich).Klicken Sie auf SSH, um eine Verbindung herzustellen.
Bereinigen
Mit den folgenden Schritten vermeiden Sie, dass Ihrem Google Cloud -Konto die auf dieser Seite verwendeten Ressourcen in Rechnung gestellt werden:
Slurm-Cluster löschen
Wir empfehlen, Ressourcen zu bereinigen, wenn sie nicht mehr benötigt werden.
Standardmäßig wird durch die A4 High-Blaupausen der Löschschutz für die Filestore-Instanz aktiviert. Wenn Sie den Slurm-Cluster löschen möchten, müssen Sie den Löschschutz deaktivieren, bevor Sie den Löschbefehl ausführen.
Löschschutz deaktivieren
Verwenden Sie einen Befehl ähnlich dem folgenden, um den Löschschutz beim Aktualisieren einer Instanz zu deaktivieren:
gcloud filestore instances update INSTANCE_NAME \
--no-deletion-protection
Ersetzen Sie INSTANCE_NAME durch den Namen der Instanz, die Sie bearbeiten möchten. Beispiel: my-genomics-instance.
Sie können INSTANCE_NAME mit dem Befehl gcloud filestore instances
list abrufen. Mit diesem Befehl werden alle Filestore-Instanzen in Ihrem aktuellen Google Cloud -Projekt aufgelistet, einschließlich ihrer Namen, Standorte (Zonen), Stufen, Kapazität und Status.
Suchen Sie nach dem Ausführen des Befehls die Filestore-Instanz, die mit der a4-highgpu-8g-Maschine in dieser Anleitung übereinstimmt.
Slurm-Cluster löschen
Bevor Sie den Löschbefehl ausführen, wechseln Sie zum Stammverzeichnis des Cluster Toolkit-Verzeichnisses. Standardmäßig befindet sich
DEPLOYMENT_FOLDERim Stammverzeichnis des Cluster Toolkit-Verzeichnisses.Cluster dauerhaft löschen:
./gcluster destroy DEPLOYMENT_FOLDER --auto-approve
Ersetzen Sie
DEPLOYMENT_FOLDERdurch den Namen des Bereitstellungsordners. Er entspricht in der RegelDEPLOYMENT_NAME.
Wenn das Löschen abgeschlossen ist, wird eine Meldung wie diese angezeigt:
Destroy complete! Resources: xx destroyed.
Storage-Bucket löschen
Löschen Sie den Cloud Storage-Bucket, nachdem Sie sich vergewissert haben, dass der vorherige Befehl ohne Fehler beendet wurde:
gcloud storage buckets delete gs://${BUCKET_NAME}
Fehlerbehebung
Fehler: Cloud Shell kann den Cluster nicht bereitstellen, da kein Speicherplatz mehr vorhanden ist.
Dieser Fehler kann auftreten, wenn Sie Cloud Shell häufig verwenden und der Speicherplatz nicht mehr ausreicht.
Informationen zur Behebung dieses Problems finden Sie unter Cloud Shell deaktivieren oder zurücksetzen.
Fehler: Der Cluster- oder Blueprint-Name ist bereits vorhanden.
Dieser Fehler kann auftreten, wenn Sie ein Projekt verwenden, in dem die in dieser Anleitung verwendeten Dateinamen bereits verwendet wurden. Das ist beispielsweise der Fall, wenn eine andere Person in Ihrer Organisation dieses Tutorial vollständig durchlaufen hat.
Um dieses Problem zu beheben, führen Sie das Tutorial noch einmal durch und wählen Sie einen eindeutigen Namen für die Bereitstellungsdatei aus. Führen Sie dann den Befehl zum Bereitstellen des Slurm-Clusters mit der neuen Bereitstellungsdatei noch einmal aus.
Nächste Schritte
- Erweiterte Slurm-Aufgaben:
- So verwalten Sie Hostereignisse:
- Topologie einer Compute-Instanz ansehen
- Compute-Instanzen in Ihrem Slurm-Cluster überwachen
- Fehlerhaften Host melden