Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
Führen Sie benutzerdefinierte Skripts mit Node-Lifecycle-Aktionen in aus AWS STCK
Bei Aktionen im Lebenszyklus eines Knotens werden benutzerdefinierte Skripts an definierten Punkten im Lebenszyklus eines Rechenknotens ausgeführt. Verwenden Sie sie, um Dateisysteme zu mounten, Verzeichnisdiensten beizutreten, Software zu installieren oder die Überwachung einzurichten. Sie definieren Skripts in der Konfiguration der Compute-Node-Gruppe und verwenden sie in Rechenknotengruppen und Clustern wieder.
Eine Node-Lifecycle-Aktion ist ein Skript, das AWS PCS automatisch an einem bestimmten Punkt im Lebenszyklus eines Rechenknotens ausführt. Sie definieren Skripts in Ihrer Compute-Node-Gruppenkonfiguration: wo sich jedes Skript befindet (Amazon S3 oder HTTPS), welche Argumente übergeben werden müssen, in welcher Phase es ausgeführt wird, wann es beim Neustart erneut ausgeführt wird und was zu tun ist, wenn es fehlschlägt. AWS PCS ruft das Skript ab, speichert es auf der Instance, führt es als root aus und schreibt seine Ausgabe in eine dedizierte Protokolldatei.
Aktionen im Knotenlebenszyklus bieten:
-
Wiederverwendbarkeit — Verweisen Sie aus vielen Compute-Knotengruppen mit unterschiedlichen Argumenten auf dasselbe Skript.
-
Per-script Fehlerbehandlung — Beenden Sie den Knoten, stoppen Sie die Sequenz oder fahren Sie bei einem Ausfall fort.
-
API-native Konfiguration — Definieren und aktualisieren Sie Lebenszyklusaktionen über
UpdateComputeNodeGroup. Durch Änderungen an der Konfiguration werden vorhandene Knoten entleert und ersetzt. Weitere Informationen finden Sie unter Konfigurieren Sie Node-Lifecycle-Aktionen in AWS STCK.
Lebenszyklusphasen
AWS PCS unterstützt derzeit zwei Stufen. In jeder Phase werden die Skripts in der Reihenfolge ausgeführt, in der Sie sie definieren. Standardmäßig wird ein Skript nur beim ersten Start ausgeführt; setzen Sie es aufexecutionPolicy, EVERY_BOOT um es auch beim Neustart erneut auszuführen. Weitere Informationen finden Sie unter Konfigurieren Sie Node-Lifecycle-Aktionen in AWS STCK.
Stage |
Wenn es läuft |
Verfügbare Dienste |
Typischer Gebrauch |
|---|---|---|---|
Knoten bootstrapped () |
Wird ausgeführt, nachdem AWS PCS die Knoteneinrichtung abgeschlossen hat und vor dem Start |
Netzwerk und Amazon S3 sind aktiv und SSH, SSM, NTP (Chrony) und Cron sind für das Debuggen aktiv. AWS PCS-managed Die Einrichtung ist abgeschlossen (Slurm konfiguriert, Hyper-Threading deaktiviert), sodass Sie sich darauf verlassen können. Die Befehle des Slurm-Clients sind noch nicht verfügbar. |
Aufgaben, die abgeschlossen werden müssen, bevor der Knoten Jobs akzeptiert, wie z. B. das Mounten von gemeinsam genutztem Speicher, das Konfigurieren des Netzwerks oder das Installieren von Softwarepaketen. |
Knoten bereit ( |
Läuft nach dem |
Alles auf der |
Aufgaben, für die Slurm ausgeführt werden muss. |
NodeReady und das Job-Dispatch-Fenster
nodeReadySkripte werden nach dem slurmd Start ausgeführt. Es gibt also ein kurzes Fenster, in dem der Scheduler möglicherweise einen Job an den Knoten sendet, bevor Ihre Skripts fertig sind. nodeReady Wenn ein Skript abgeschlossen sein muss, bevor ein Job ausgeführt wird:
-
Verschiebe es auf die
nodeBootstrappedBühne, wenn es keine Slurm-Befehle benötigt. -
Benutze einen Slurm-Prolog.
Wie funktioniert die Hinrichtung
Beim ersten Start:
-
Der Knoten wird gestartet und der AWS PCS-Agent ruft an
RegisterComputeNodeGroupInstance. -
Der Agent speichert die Lebenszykluskonfiguration im Cache und lädt die Skripts herunter.
-
Die AWS PCS-Konfigurationsphase läuft (Slurm ist konfiguriert, Hyper-Threading ist deaktiviert usw.).
-
Node-Bootstrap-Skripte werden in der Reihenfolge ausgeführt, in der Sie sie definiert haben.
-
slurmdstartet und der Knoten registriert sich beim Slurm-Controller. Zu diesem Zeitpunkt ist der Knoten verfügbar, um Jobs anzunehmen. -
Node Ready-Skripts werden in der Reihenfolge ausgeführt, in der Sie sie definiert haben. Diese Skripts werden ausgeführt, nachdem der Knoten für die Annahme von Aufträgen verfügbar ist, sodass der Scheduler möglicherweise einen Job versendet, bevor die Ausführung abgeschlossen ist (sieheLebenszyklusphasen).
Beim Neustart wird dieselbe nodeBootstrapped → slurmd → nodeReady Sequenz ausgeführt. Nur Skripte, die als EVERY_BOOT erneut ausgeführt gekennzeichnet sind. Skripts, die auf FIRST_BOOT_ONLY (Standardeinstellung) gesetzt sind, werden übersprungen. Der scriptCachingPolicy steuert, ob Skripts erneut heruntergeladen werden. Weitere Informationen finden Sie unter Konfigurieren Sie Node-Lifecycle-Aktionen in AWS STCK.
Beschränkungen der Anzahl von Skripten pro Stufe, der Länge von Argument- und Skriptnamen sowie der maximalen Skriptgröße finden Sie UpdateComputeNodeGroup in der AWS PCS-API-Referenz.