H4D-Slurm-Cluster mit erweiterten Verwaltungsfunktionen erstellen

Auf dieser Seite wird beschrieben, wie Sie einen HPC-Slurm-Cluster (High Performance Computing) erstellen, der RDMA (Remote Direct Memory Access) mit H4D-VMs und erweiterten Clusterverwaltungsfunktionen verwendet. Sie verwenden die gcloud CLI und Cluster Toolkit um den Cluster zu konfigurieren.

Die H4D-Maschinenserie wurde speziell für die Anforderungen anspruchsvoller HPC-Arbeitslasten entwickelt. H4D bietet Instanzen mit verbesserter Arbeitslastskalierbarkeit durch Cloud RDMA-Netzwerke mit einem Durchsatz von 200 Gbit/s. Weitere Informationen zu computing-optimierten H4D Maschinentypen auf Google Cloud, siehe H4D-Maschinenserie.

Hinweis

Bevor Sie einen Slurm-Cluster erstellen, führen Sie die folgenden Schritte aus, falls noch nicht geschehen:

  1. Nutzungsoption auswählen: Die von Ihnen ausgewählte Option bestimmt, wie Sie vCPU-Ressourcen beziehen und verwenden möchten.
  2. Kapazität beziehen: Beziehen Sie Kapazität für die ausgewählte Nutzungsoption.
  3. Weitere Informationen finden Sie unter Nutzungsoption auswählen und Kapazität beziehen.

  4. Prüfen Sie, ob Sie genügend Filestore-Kapazitätskontingent haben: Sie müssen in Ihrer Zielregion genügend Filestore-Kontingent haben, bevor Sie die Bereitstellung durchführen. Die erforderliche Mindest Kapazität hängt von den Maschinentypen in Ihrem Cluster ab:
    • A4, A4X, A3 Ultra und A3 Mega: Erfordert mindestens 10 TiB (10.240 GiB) HIGH_SCALE_SSD-Kapazität (zonal).
    • A3 High: Erfordert mindestens 2,5 TiB (2.560 GiB) BASIC_SSD-Kapazität (Standard).

    Informationen zum Prüfen des Kontingents oder zum Anfordern einer Kontingenterhöhung finden Sie unter:

  5. Cluster Toolkit installieren: Zum Bereitstellen von Slurm-Clustern müssen Sie Cluster Toolkit Version v1.62.0 oder höher verwenden.

    Informationen zum Installieren des Cluster Toolkits finden Sie unter Cluster Toolkit einrichten.

Aktivieren Sie Cloud Shell in der Google Cloud Console.

Cloud Shell aktivieren

Unten in der Google Cloud Console wird eine Cloud Shell Sitzung gestartet und eine Eingabeaufforderung angezeigt. Cloud Shell ist eine Shell-Umgebung in der das Google Cloud CLI bereits installiert ist und Werte für Ihr aktuelles Projekt bereits festgelegt sind. Das Initialisieren der Sitzung kann einige Sekunden dauern.

Storage-Bucket einrichten

Cluster-Blueprints verwenden Terraform-Module, um die Cloud-Infrastruktur bereitzustellen. Als Best Practice für die Arbeit mit Terraform empfiehlt es sich, den Status remote in einer versionsfähigen Datei zu speichern. Auf Google Cloudkönnen Sie einen Cloud Storage Bucket mit aktivierter Versionierung erstellen.

Führen Sie die folgenden Befehle aus, um diesen Bucket zu erstellen und die Versionierung über die CLI zu aktivieren:

gcloud storage buckets create gs://BUCKET_NAME \
    --project=PROJECT_ID \
    --default-storage-class=STANDARD --location=BUCKET_REGION \
    --uniform-bucket-level-access
gcloud storage buckets update gs://BUCKET_NAME --versioning

Ersetzen Sie Folgendes:

Cluster Toolkit-Verzeichnis öffnen

Prüfen Sie mit dem folgenden Befehl, ob Sie sich im Cluster Toolkit-Verzeichnis befinden:

cd cluster-toolkit

Für diese Clusterbereitstellung ist Cluster Toolkit v1.70.0 oder höher erforderlich. Sie können Ihre Version mit dem folgenden Befehl prüfen:

./gcluster --version

Bereitstellungsdatei erstellen

Erstellen Sie eine Bereitstellungsdatei, um den Cloud Storage-Bucket anzugeben, Namen für Ihr Netzwerk und Subnetzwerk festzulegen und Bereitstellungsvariablen wie Projekt-ID, Region und Zone festzulegen.

Führen Sie die Schritte für den Maschinentyp H4D aus, um eine Bereitstellungsdatei zu erstellen:

Die Parameter, die Sie Ihrer Bereitstellungsdatei hinzufügen müssen, hängen von der Nutzungsoption ab, die Sie für Ihre Bereitstellung verwenden. Wählen Sie den Tab aus, der Ihrer gewünschten Nutzungsoption entspricht.

Reservierungsgebunden

Erstellen Sie mit einem Texteditor eine YAML-Datei mit dem Namen h4d-slurm-deployment.yaml und fügen Sie den folgenden Inhalt hinzu, um Ihre Bereitstellungsdatei zu erstellen.


terraform_backend_defaults:
  type: gcs
  configuration:
    bucket: BUCKET_NAME

vars:
  deployment_name: DEPLOYMENT_NAME
  project_id: PROJECT_ID
  region: REGION
  zone: ZONE
  h4d_cluster_size: NUMBER_OF_VMS
  h4d_reservation_name: RESERVATION_NAME

Ersetzen Sie Folgendes:

  • BUCKET_NAME: Der Name Ihres Cloud Storage-Buckets, den Sie im vorherigen Abschnitt erstellt haben.
  • DEPLOYMENT_NAME: Ein Name für Ihre Bereitstellung. Wenn Sie mehrere Cluster erstellen, wählen Sie für jeden Cluster einen eindeutigen Namen aus.
  • PROJECT_ID: Ihre Projekt-ID.
  • REGION: Die Region mit den reservierten Maschinen.
  • ZONE: Die Zone, in der Sie den Cluster bereitstellen möchten. Wenn Sie eine reservierungsbasierte Nutzungsoption verwenden, wurden die Informationen zu Region und Zone von Ihrem Kontoteam bei der Bereitstellung der Kapazität angegeben.
  • NUMBER_OF_VMS: Die Anzahl der VMs, die Sie für den Cluster benötigen.
  • RESERVATION_NAME: Der Name Ihrer Reservierung.

Flex-Start

Erstellen Sie mit einem Texteditor eine YAML-Datei mit dem Namen h4d-slurm-deployment.yaml und fügen Sie den folgenden Inhalt hinzu, um Ihre Bereitstellungsdatei zu erstellen.


terraform_backend_defaults:
  type: gcs
  configuration:
    bucket: BUCKET_NAME

vars:
  deployment_name: DEPLOYMENT_NAME
  project_id: PROJECT_ID
  region: REGION
  zone: ZONE
  h4d_cluster_size: NUMBER_OF_VMS
  h4d_dws_flex_enabled: true

Ersetzen Sie Folgendes:

  • BUCKET_NAME: Der Name Ihres Cloud Storage-Buckets, den Sie im vorherigen Abschnitt erstellt haben.
  • DEPLOYMENT_NAME: Ein Name für Ihre Bereitstellung. Wenn Sie mehrere Cluster erstellen, wählen Sie für jeden Cluster einen eindeutigen Namen aus.
  • PROJECT_ID: Ihre Projekt-ID.
  • REGION: Die Region, in der Sie den Cluster bereitstellen möchten.
  • ZONE: Die Zone, in der Sie den Cluster bereitstellen möchten.
  • NUMBER_OF_VMS: Die Anzahl der VMs, die Sie für den Cluster benötigen.

Bei dieser Bereitstellung werden statische Compute-Knoten bereitgestellt. Das bedeutet, dass der Cluster immer eine festgelegte Anzahl von Knoten hat. Wenn Sie stattdessen Autoscaling für Ihren Cluster aktivieren möchten, verwenden Sie die Datei examples/h4d/hpc-slurm-h4d.yaml und bearbeiten Sie die Werte von node_count_static und node_count_dynamic_max so, dass sie den folgenden Werten entsprechen:

      node_count_static: 0
      node_count_dynamic_max: $(vars.h4d_cluster_size)

Spot

Erstellen Sie mit einem Texteditor eine YAML-Datei mit dem Namen h4d-slurm-deployment.yaml und fügen Sie den folgenden Inhalt hinzu, um Ihre Bereitstellungsdatei zu erstellen.


terraform_backend_defaults:
  type: gcs
  configuration:
    bucket: BUCKET_NAME

vars:
  deployment_name: DEPLOYMENT_NAME
  project_id: PROJECT_ID
  region: REGION
  zone: ZONE
  h4d_cluster_size: NUMBER_OF_VMS
  h4d_enable_spot_vm: true

Ersetzen Sie Folgendes:

  • BUCKET_NAME: Der Name Ihres Cloud Storage-Buckets, den Sie im vorherigen Abschnitt erstellt haben.
  • DEPLOYMENT_NAME: Ein Name für Ihre Bereitstellung. Wenn Sie mehrere Cluster erstellen, wählen Sie für jeden Cluster einen eindeutigen Namen aus.
  • PROJECT_ID: Ihre Projekt-ID.
  • REGION: Die Region, in der Sie den Cluster bereitstellen möchten.
  • ZONE: Die Zone, in der Sie den Cluster bereitstellen möchten.
  • NUMBER_OF_VMS: Die Anzahl der VMs, die Sie für den Cluster benötigen.

H4D-Slurm-Cluster bereitstellen

Cluster Toolkit stellt den Cluster basierend auf der Bereitstellungsdatei, die Sie im vorherigen Schritt erstellt haben, und dem Standard-Cluster-Blueprint bereit. Weitere Informationen zur Software, die vom Blueprint installiert wird, finden Sie unter Weitere Informationen zu benutzerdefinierten Slurm-Images.

In Cloud Shell können Sie den Cluster über das Verzeichnis, in dem Sie Cluster Toolkit installiert und die Bereitstellungsdatei erstellt haben, mit dem folgenden Befehl bereitstellen, der die H4D-Slurm-Blueprint-Dateiverwendet. Dieser Schritt dauert etwa 20 bis 30 Minuten.

./gcluster deploy -d h4d-slurm-deployment.yaml examples/hpc-slurm-h4d/hpc-slurm-h4d.yaml --auto-approve

Verbindung zum Slurm-Cluster herstellen

Um auf Ihren Cluster zuzugreifen, müssen Sie sich im Slurm-Anmeldeknoten anmelden. Sie können sich entweder über die Google Cloud Console oder die Google Cloud CLI anmelden.

Console

  1. Rufen Sie die Seite Compute Engine > VM-Instanzen auf.

    Zur Seite „VM-Instanzen"

  2. Suchen Sie den Anmeldeknoten. Er sollte einen Namen mit dem Muster DEPLOYMENT_NAME +login-001 haben.

  3. Klicken Sie in der Spalte Verbinden des Anmeldeknotens auf SSH.

gcloud

So stellen Sie eine Verbindung zum Anmeldeknoten her:

  1. Identifizieren Sie den Anmeldeknoten mit dem gcloud compute instances list Befehl.

    gcloud compute instances list \
      --zones=ZONE \
      --filter="name ~ login" --format "value(name)"
    

    Wenn in der Ausgabe mehrere Slurm-Cluster aufgeführt sind, können Sie Ihren Anmeldeknoten anhand des von Ihnen angegebenen DEPLOYMENT_NAME identifizieren.

  2. Verwenden Sie den gcloud compute ssh Befehl um eine Verbindung zum Anmeldeknoten herzustellen.

    gcloud compute ssh LOGIN_NODE \
      --zone=ZONE --tunnel-through-iap
    

    Ersetzen Sie Folgendes:

    • ZONE: Die Zone, in der sich die VMs für Ihren Cluster befinden.
    • LOGIN_NODE: Der Name des Anmeldeknotens, den Sie im vorherigen Schritt identifiziert haben.

Slurm-Cluster neu bereitstellen

Wenn Sie die Anzahl der Compute-Knoten erhöhen oder Ihrem Cluster neue Partitionen hinzufügen müssen, müssen Sie möglicherweise die Konfigurationen für Ihren Slurm-Cluster aktualisieren, indem Sie ihn neu bereitstellen.

So stellen Sie den Cluster mit einem vorhandenen Image neu bereit:

  1. Verbindung zum Cluster herstellen

  2. Führen Sie dazu diesen Befehl aus:

    ./gcluster deploy -d h4d-slurm-deployment.yaml examples/h4d/h4d-slurm-deployment.yaml --only cluster-env,cluster --auto-approve -w
    

    Dieser Befehl ist nur für die erneute Bereitstellung mit einem bereits vorhandenen Image vorgesehen. Er stellt nur den Cluster und seine Infrastruktur neu bereit.

Slurm-Cluster löschen

So entfernen Sie den Slurm-Cluster und die darin enthaltenen Instanzen:

  1. Trennen Sie die Verbindung zum Cluster, falls noch nicht geschehen.

  2. Bevor Sie den Löschbefehl ausführen, wechseln Sie zum Stammverzeichnis des Cluster Toolkit-Verzeichnisses. Standardmäßig befindet sich DEPLOYMENT_FOLDER im Stammverzeichnis des Cluster Toolkit-Verzeichnisses.

  3. Führen Sie den folgenden Befehl aus, um den Cluster zu löschen:

    ./gcluster destroy DEPLOYMENT_FOLDER --auto-approve

    Ersetzen Sie Folgendes:

    • DEPLOYMENT_FOLDER: Der Name des Bereitstellungsordners. Er entspricht in der Regel DEPLOYMENT_NAME.

Wenn das Entfernen des Clusters abgeschlossen ist, sollte eine Meldung wie die folgende angezeigt werden:

  Destroy complete! Resources: xx destroyed.

Informationen zum sauberen Löschen der Infrastruktur und eine detaillierte Anleitung zur manuellen Bereitstellung finden Sie im Bereitstellungsordner im Stammverzeichnis des Cluster Toolkit-Verzeichnisses: DEPLOYMENT_FOLDER/instructions.txt

Nächste Schritte