Ersetzen Sie einen Knoten manuell mit Slurm oder starten Sie ihn neu - Amazon SageMaker KI

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.

Ersetzen Sie einen Knoten manuell mit Slurm oder starten Sie ihn neu

In diesem Abschnitt geht es darum, wann Sie einen Knoten manuell neu starten oder ersetzen sollten, und es gibt Anleitungen, wie Sie beides tun können.

Wann muss ein Knoten manuell neu gestartet oder ersetzt werden

Die HyperPod Auto-Resume-Funktion überwacht, ob der Status Ihrer Slurm-Knoten auf fail oder wechselt. down Sie können den Status der Slurm-Knoten überprüfen, indem Sie sinfo ausführen.

Wenn ein Knoten feststeckt oder nicht reagiert und der automatische Wiederaufnahmeprozess ihn nicht wiederherstellt, können Sie die Wiederherstellung manuell einleiten. Die Wahl zwischen dem Neustart und dem Ersetzen eines Knotens hängt von der Art des Problems ab. Ziehen Sie einen Neustart in Betracht, wenn temporäre oder softwarebezogene Probleme auftreten, wie z. B. Systemabstürze, Speicherlecks, Probleme mit GPU-Treibern, Kernel-Updates oder abgestürzte Prozesse. Wenn Sie jedoch auf anhaltende oder hardwarebezogene Probleme wie Ausfälle GPUs, Speicher- oder Netzwerkfehler, wiederholte Fehler bei der Integritätsprüfung oder Knoten stoßen, die nach mehreren Neustartversuchen nicht mehr reagieren, ist der Austausch von Knoten die geeignetere Lösung.

Möglichkeiten, Knoten manuell neu zu starten oder zu ersetzen

SageMaker HyperPod bietet zwei Methoden für die manuelle Wiederherstellung von Knoten. Der bevorzugte Ansatz ist die Verwendung von SageMaker HyperPod Reboot and Replace APIs, das einen schnelleren und transparenteren Wiederherstellungsprozess ermöglicht, der für alle Orchestratoren funktioniert. Alternativ können Sie herkömmliche Slurm-Befehle wie verwendenscontrol update, obwohl diese ältere Methode direkten Zugriff auf den Controller-Knoten des Slurms erfordert. Beide Methoden aktivieren dieselben SageMaker HyperPod Wiederherstellungsprozesse.

Starten Sie einen Knoten mithilfe der Reboot-API manuell neu

Sie können den verwenden BatchRebootClusterNodes, um einen fehlerhaften Knoten in Ihrem SageMaker HyperPod Cluster manuell neu zu starten.

Hier ist ein Beispiel für die Ausführung des Neustartvorgangs auf zwei Instanzen eines Clusters mithilfe vonAWS Command Line Interface:

aws sagemaker batch-reboot-cluster-nodes \ --cluster-name arn:aws:sagemaker:ap-northeast-1:123456789:cluster/test-cluster \ --node-ids i-0123456789abcdef0 i-0fedcba9876543210

Manuelles Ersetzen eines Knotens mithilfe der Replace-API

Sie können den verwenden BatchReplaceClusterNodes, um einen fehlerhaften Knoten in Ihrem SageMaker HyperPod Cluster manuell zu ersetzen.

Hier ist ein Beispiel für die Ausführung des Ersetzungsvorgangs auf zwei Instanzen eines Clusters mithilfe vonAWS Command Line Interface:

aws sagemaker batch-replace-cluster-nodes \ --cluster-name arn:aws:sagemaker:ap-northeast-1:123456789:cluster/test-cluster \ --node-ids i-0123456789abcdef0 i-0fedcba9876543210

Starten Sie einen Knoten manuell mit Slurm neu

Sie können auch die Slurm-Befehle von scontrol verwenden, um die Wiederherstellung des Knotens auszulösen. Diese Befehle interagieren direkt mit der Slurm-Steuerebene und rufen dieselben zugrunde liegenden Wiederherstellungsmechanismen auf. SageMaker HyperPod

Ersetzen Sie den Befehl im folgenden Befehl <ip-ipv4>durch den Slurm-Knotennamen (Hostnamen) der fehlerhaften Instanz, die Sie neu starten möchten.

scontrol update node=<ip-ipv4> state=fail reason="Action:Reboot"

Dadurch wird der Knoten mit dem angegebenen Grund als FAIL markiert. SageMaker HyperPod erkennt dies und startet die Instanz neu. Vermeiden Sie es, während des Vorgangs den Knotenstatus zu ändern oder den Slurm-Controller neu zu starten.

Ersetzen Sie einen Knoten manuell mithilfe von Slurm

Sie können den Befehl scontrol update wie folgt verwenden, um einen Knoten zu ersetzen.

Ersetzen Sie den Befehl im folgenden Befehl <ip-ipv4> durch den Slurm-Knotennamen (Hostnamen) der fehlerhaften Instanz, die Sie ersetzen möchten.

scontrol update node=<ip-ipv4> state=fail reason="Action:Replace"

Nach der Ausführung dieses Befehls wechselt der Knoten in den fail Status, wartet, bis die aktuell ausgeführten Jobs abgeschlossen sind, wird durch eine fehlerfreie Instanz ersetzt und mit demselben Hostnamen wiederhergestellt. Dieser Vorgang benötigt Zeit, abhängig von den verfügbaren Instances in Ihrer Availability Zone und der Zeit, die für die Ausführung Ihrer Lebenszyklusskripts benötigt wird. Vermeiden Sie es während des Aktualisierungs- und Austauschvorgangs, den Status des Knotens erneut manuell zu ändern oder den Slurm-Controller neu zu starten, da dies dazu führen kann, dass der Austausch fehlschlägt. Wenn der Knoten nicht wiederhergestellt wird oder nach langer Zeit nicht in den Status idle wechselt, wenden Sie sich an den AWS-Support.

Manuell die Änderung eines Knotens erzwingen

Wenn der fehlerhafte Knoten kontinuierlich in diesem Zustand verharrt, besteht als letzte Möglichkeit darin, den Knotenstatus manuell auf fail zu ändern. Dies erfordert Administratorrechte (Sudo-Berechtigungen).

Warnung

Gehen Sie vorsichtig vor, bevor Sie den folgenden Befehl ausführen, da dadurch alle Aufträge beendet werden und Sie möglicherweise alle nicht gespeicherten Arbeiten verlieren.

scontrol update node=<ip-ipv4> state=down reason="Action:Replace"