使用 Slurm 手動取代或重新啟動節點 - Amazon SageMaker AI

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

使用 Slurm 手動取代或重新啟動節點

本節討論何時應手動重新啟動或取代節點,並說明如何執行兩者。

手動重新啟動或取代節點的時機

HyperPod 自動繼續功能會監控 Slurm 節點的狀態是否變成 faildown。您可以執行 sinfo 來檢查 Slurm 節點的狀態。

如果節點仍然卡住或沒有回應,且自動恢復程序無法復原,您可以手動啟動復原。重新啟動和取代節點之間的選擇取決於問題的性質。遇到暫時性或軟體相關問題時,請考慮重新啟動,例如系統停止運作、記憶體流失、GPU 驅動程式問題、核心更新或停止程序。不過,如果您遇到持續性或硬體相關問題,例如 GPUs 失敗、記憶體或聯網故障、重複運作狀態檢查失敗,或多次重新開機嘗試後仍沒有回應的節點,則節點取代是更適當的解決方案。

手動重新啟動或取代節點的方法

SageMaker HyperPod 提供兩種手動節點復原的方法。偏好的方法是使用 SageMaker HyperPod 重新啟動和取代 APIs,它提供更快速、更透明的復原程序,適用於所有協調程式。或者,您可以使用傳統的 Slurm 命令,例如 scontrol update,雖然此舊版方法需要直接存取 Slurm 的控制器節點。這兩種方法都會啟用相同的 SageMaker HyperPod 復原程序。

使用重新啟動 API 手動重新啟動節點

您可以使用 BatchRebootClusterNodes 手動重新啟動 SageMaker HyperPod 叢集中的故障節點。

以下是使用 在叢集的兩個執行個體上執行重新啟動操作的範例 AWS 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

使用取代 API 手動取代節點

您可以使用 BatchReplaceClusterNodes 手動取代 SageMaker HyperPod 叢集中的故障節點。

以下是使用 在叢集的兩個執行個體上執行取代操作的範例 AWS 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

使用 Slurm 手動重新啟動節點

您也可以使用 scontrol Slurm 命令來觸發節點復原。這些命令會直接與 Slurm 控制平面互動,並叫用相同的基礎 SageMaker HyperPod 復原機制。

在下列命令 中,將 <ip-ipv4> 取代為您要重新啟動之故障執行個體的 Slurm 節點名稱 (主機名稱)。

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

這會將節點標記為具有指定原因的失敗。SageMaker HyperPod 偵測到此情況並重新啟動執行個體。避免在操作期間變更節點狀態或重新啟動 Slurm 控制器。

使用 Slurm 手動取代節點

您可以使用 scontrol 更新命令來取代節點,如下所示。

在下列命令中,將 <ip-ipv4>取代為您要取代之故障執行個體的 Slurm 節點名稱 (主機名稱)。

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

執行此命令後,節點將進入 fail 狀態,等待目前執行中的任務完成,以運作狀態良好的執行個體取代,並以相同的主機名稱復原。此程序需要一些時間,取決於可用區域中的可用執行個體,以及執行生命週期指令碼所需的時間。在更新和取代過程中,避免再次手動變更節點狀態或重新啟動 Slurm 控制器;這樣做可能會導致取代失敗。如果節點長時間未復原也未變成 idle 狀態,請聯絡 AWS Support

手動強制變更節點

如果故障節點持續卡在 fail 狀態,您可以嘗試的最後手段是手動強制將節點狀態變更為 down。這需要管理員權限 (sudo 許可)。

警告

在執行下列命令之前,請謹慎進行,因為它會強制刪除所有任務,而且您可能會失去所有未儲存的工作。

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