Dieser Leitfaden enthält eine Anleitung zum Konfigurieren und Verwenden von Flex-Start-VMs mit Slurm auf der Gemini Enterprise Agent Platform. Mit dieser Integration können Sie flexible VM-Bereitstellungsmodelle für Ihre Trainingsarbeitslasten verwenden.
Konfiguration und Clustererstellung
Bevor Sie die Konfiguration des Clusters definieren, müssen Sie zuerst den folgenden einmaligen Schritt ausführen, um sicherzustellen, dass die erforderlichen Dienstkonten berechtigt sind, Flex-Start-Ressourcen zu verwalten.
Berechtigungen für den Google APIs-Dienst-Agent prüfen
- Kontext: Slurm auf der Gemini Enterprise Agent Platform verwendet verwaltete Instanzgruppen, um Flex-Start-VM-Instanzen dynamisch bereitzustellen und ihren Lebenszyklus zu verwalten. Der Google APIs-Dienst-Agent erstellt und verwaltet die zugrunde liegenden Compute Engine-Ressourcen für die verwaltete Instanzgruppe. Wie in der Dokumentation zu verwalteten Instanzgruppen und IAM, beschrieben, benötigt dieses Dienstkonto Berechtigungen zum Erstellen, Löschen und Auflisten von VM-Instanzen sowie die Berechtigung, ihnen eine Dienstkontoidentität zuzuweisen.
- Aktion: Prüfen Sie, ob Ihr Google APIs-Dienst-Agent
(
PROJECT_NUMBER@cloudservices.gserviceaccount.com) bereits die Rolle „Bearbeiter“ (roles/editor) hat.- Wenn „Ja“: Wahrscheinlich sind keine weiteren Maßnahmen erforderlich. Die Rolle „Bearbeiter“ enthält in der Regel alle erforderlichen Berechtigungen.
- Wenn „Nein“: Wenn die Standardrolle „Bearbeiter“ nicht gewährt wird, müssen Sie die folgenden Rollen explizit gewähren, damit die verwaltete Instanzgruppe funktionieren kann:
- Compute Instance Admin (Version 1) (
roles/compute.instanceAdmin.v1) – erforderlich zum Erstellen, Auflisten und Löschen von VM-Instanzen. - Dienstkontonutzer (
roles/iam.serviceAccountUser) – erforderlich, um den neuen VMs ein Dienstkonto zuzuweisen.
- Compute Instance Admin (Version 1) (
Slurm-Cluster mit dem Bereitstellungsmodell „Flex-Start“ erstellen
Wenn Sie einen Slurm-Cluster erstellen möchten, der das Bereitstellungsmodell „Flex-Start“ verwendet, müssen Sie provisioning_model in der Knotenpoolkonfiguration Ihrer Clusterspezifikation angeben, wenn Sie die Anfrage zur Clustererstellung über die API senden.
Beispielkonfigurations-Snippet:Speichern Sie die folgende JSON-Konfiguration in einer Datei mit dem Namen cluster_config.json. In diesem Beispiel wird explizit eine slurm_spec verwendet.
Ersetzen Sie die Platzhalter (z. B. <project-id>, <region>, <zone>)
durch Ihre tatsächlichen Werte.
{
"display_name": "flexvm",
"name": "projects/<project-id>/locations/<region>/modelDevelopmentClusters/",
"network": {
"network": "projects/<project-id>/global/networks/default",
"subnetwork": "projects/<project-id>/regions/<region>/subnetworks/default"
},
"node_pools": [
{
"id": "login",
"machine_spec": { "machine_type": "n2-standard-8" },
"scaling_spec": { "min_node_count": 1, "max_node_count": 1 },
"enable_public_ips": "true",
"zone": "<zone>",
"boot_disk": { "boot_disk_type": "pd-standard", "boot_disk_size_gb": 120 }
},
{
"id": "a3u",
"machine_spec": {
"machine_type": "a3-ultragpu-8g",
"accelerator_type": "NVIDIA_H200_141GB",
"accelerator_count": 8
},
"provisioning_model": "FLEX_START",
"flex_start_max_duration": "604800s",
"scaling_spec": { "min_node_count": 0, "max_node_count": 2 },
"zone": "<zone>",
"enable_public_ips": "true",
"boot_disk": { "boot_disk_type": "hyperdisk-balanced", "boot_disk_size_gb": 400 }
}
],
"orchestrator_spec": {
"slurm_spec": {
"home_directory_storage": "projects/<project-id>/locations/<zone>/instances/<filestore-id>",
"partitions": [ { "id": "a3u", "node_pool_ids": [ "a3u" ] } ],
"login_node_pool_id": "login"
}
}
}
Folgen Sie der Anleitung unter Slurm-Cluster erstellen, um sich zu authentifizieren und die Anfrage zu senden.
Maximale Flex-Start-Dauer:Optional können Sie die maximale Laufzeit für Ihre Flex-Start-Instanzen festlegen. Verwenden Sie dazu das Feld flex_start_max_duration in der Knotenpoolkonfiguration und geben Sie den Wert als String in Sekunden an, gefolgt von einem „s“ (z. B. „172800s“ für 2 Tage). Wenn Sie nichts angeben, wird standardmäßig 7 Tage verwendet.
Betriebslebenszyklus und Stabilität
Es ist wichtig, den Lebenszyklus von Flex-Start-Knoten in einer Slurm-Umgebung auf der Gemini Enterprise Agent Platform zu verstehen, um Ihre Jobs zu planen.
Einschränkungen für Flex-Start
Alle Flex-Start-VMs haben eine feste maximale Laufzeit, die durch die Einstellung flex_start_max_duration definiert wird.
- Dauerlimit: Standardmäßig ist
flex_start_max_durationauf 7 Tage festgelegt. Sie können dieses Limit überschreiben, indem Sie in der Knotenpoolkonfiguration eine benutzerdefinierteflex_start_max_durationzwischen 30 Sekunden und maximal 7 Tagen (604.800 Sekunden) angeben, um die erwarteten Laufzeiten Ihrer Jobs besser zu berücksichtigen. - Beendigung: Wenn dieses Limit erreicht ist, beendet Compute Engine die Instanz.
Knotenskalierungsverhalten
In den folgenden Abschnitten werden die beiden verfügbaren Skalierungsstrategien beschrieben: statisch und dynamisch.
Statischer Knoten
Mit statischen Knoten können Sie einen festen Pool von Ressourcen verwalten, die immer
verfügbar sind (z. B. min_node_count > 0).
- Bereitstellung: Knoten werden sofort nach der Clustererstellung oder Größenänderung angefordert, um die Mindestanzahl der Knoten zu erreichen.
- Ablauf und Wiederherstellung: Wenn ein statischer Flex-Start-Knoten seine
flex_start_max_durationerreicht und von Compute Engine beendet wird, versucht das System automatisch, den Knoten neu zu erstellen, um die definierte Clusterkapazität wiederherzustellen. Dieser Zyklus sorgt dafür, dass der statische Pool gefüllt bleibt, unabhängig davon, ob ein Slurm-Job auf die Knoten wartet.
Dynamischer Knoten
Mit dynamischen Knoten kann der Cluster nur bei Bedarf skaliert werden.
- Bereitstellung: Wenn ein Job in die Warteschlange gestellt wird (Status
PENDING), fordert der Slurm-Scheduler Ressourcen an, indem er eine verwaltete Instanzgruppe erstellt und eine Anfrage zur Größenänderung sendet. - Ablauf und Wiederherstellung: Nach Ablauf stellt das System nur dann einen neuen Flex-Start-Knoten bereit, wenn ein Slurm-Job auf die Knoten wartet.
Clusterstabilität und automatische Reparatur
Slurm auf der Gemini Enterprise Agent Platform überwacht den Knotenstatus in wichtigen Phasen des Joblebenszyklus. Systemdiagnosen werden sowohl vor dem Start eines Jobs (Prolog) als auch nach Abschluss (Epilog) ausgeführt, um die Jobstabilität zu gewährleisten.
- Umgang mit Hardwarefehlern: Wenn der Dienst kritische Hardwareprobleme (z. B. GPU-Fehler) erkennt, wird die fehlerhafte VM automatisch repariert.
- Automatischer Austausch: Wenn sich der Job noch im Status „PENDING“ befindet (oder aufgrund des Knotenausfalls wieder in die Warteschlange gestellt wurde), stellt das System automatisch eine neue Flex-Start-Instanz bereit, um die fehlerhafte VM zu ersetzen. So kann Ihre Arbeitslast ohne manuelle Eingriffe auf fehlerfreier Hardware ausgeführt werden.