本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
對 AWS PCS 中的運算節點引導和註冊問題進行故障診斷
當運算節點無法開機或向 AWS PCS 叢集正確註冊時,您可能會遇到下列症狀:
-
任務未啟動
-
您無法連線到 中的執行個體 AWS Systems Manager
-
執行個體意外關閉
-
執行個體會持續取代
這些故障可能是由 EC2 執行個體啟動期間或 AWS PCS 運算節點引導程序期間的問題所造成。本主題說明在 AWS PCS 節點引導程序期間協助您疑難排解問題的程序。如需有關對 EC2 執行個體啟動進行故障診斷的詳細資訊,請參閱《Amazon Elastic Compute Cloud 使用者指南》中的對 Amazon EC2 執行個體啟動問題進行故障診斷。
當 EC2 執行個體成功啟動,但在加入 AWS PCS 叢集的過程中失敗時,就會發生引導失敗。引導程序包含兩個主要階段:
-
節點註冊 – EC2 執行個體會呼叫 RegisterComputeNodeGroupInstance AWS PCS API 動作,以向 AWS PCS 服務註冊。由於下列問題,可能會發生失敗:
-
Slurm 整合 – 執行個體會執行
slurmd並加入 Slurm 叢集。由於下列問題,可能會發生失敗:-
許可
-
自訂 AMI 設定
-
Slurm 如何在 AWS PCS 上運作
這可能有助於您將標準 Slurm 的運作方式與 Slurm 在 AWS PCS 上的運作方式進行比較。
標準 Slurm 任務處理
標準 Slurm 任務處理中會發生下列步驟:
-
當您提交任務時, 會
slurmctld驗證任務並排入佇列。 -
當資源可用時, 會
slurmctld配置現有的節點。 -
slurmd精靈會在配置的節點上執行任務。
AWS PCS 上的 Slurm 任務處理
AWS PCS 任務處理中會發生下列步驟:
-
當您提交任務時, 會
slurmctld驗證任務並排入佇列。 -
當需要額外容量時, AWS PCS 會使用運算節點群組的啟動範本來啟動新的 EC2 執行個體。
-
叢集中的新執行個體引導:
-
執行個體向 AWS PCS 註冊。
-
執行個體會加入 Slurm 叢集。
-
-
當資源準備就緒時, 會
slurmctld配置節點 (包括新啟動的節點)。 -
slurmd精靈會在配置的節點上執行任務。
擷取執行個體日誌
疑難排解運算節點引導問題的第一步是擷取執行個體日誌。您可以使用下列其中一種方法:
從執行個體 ID 擷取 VPC/Subnet/Security群組
若要疑難排解運算節點的問題,您可能需要擷取與執行個體相關聯之 VPC、子網路和安全群組的相關資訊。如果您不知道執行個體 IDs,請參閱 在 AWS PCS 中尋找運算節點群組執行個體。
節點註冊問題
節點註冊是運算節點在引導期間執行的第一個動作。節點會呼叫 AWS PCS API 端點來向 AWS PCS 註冊。註冊失敗通常會顯示類似以下的錯誤訊息:
<13>Nov 13 16:23:50 user-data: [2025-11-13T16:23:50.510+00:00] - /opt/aws/pcs/bin/pcs_bootstrap_init.sh: INFO: Registering node to cluster <clusterId> <13>Nov 13 16:24:18 user-data: [2025-11-13T16:24:18.192+00:00] - /opt/aws/pcs/bin/pcs_bootstrap_init.sh: INFO: Retriable exception detected. <13>Nov 13 16:24:18 user-data: [2025-11-13T16:24:18.193+00:00] - /opt/aws/pcs/bin/pcs_bootstrap_init.sh: INFO: Response is [specific error message] <13>Nov 13 16:24:18 user-data: [2025-11-13T16:24:18.194+00:00] - /opt/aws/pcs/bin/pcs_bootstrap_init.sh: INFO: Retrying in 31 seconds... <13>Nov 13 16:24:18 user-data: [2025-11-13T16:24:18.192+00:00] - /opt/aws/pcs/bin/pcs_bootstrap_init.sh: INFO: Retriable exception detected. ... <13>Nov 13 16:25:18 user-data: [2025-11-13T16:25:18.195+00:00] - /opt/aws/pcs/bin/pcs_bootstrap_init.sh: INFO: Registration timeout (600 seconds) reached. Exiting. <13>Nov 13 16:25:18 user-data: [2025-11-13T16:25:18.200+00:00] - /opt/aws/pcs/bin/pcs_bootstrap_init.sh: ERROR: Error: (2) occurred on line 1 when running /opt/aws/pcs/bin/pcs_bootstrap_init.sh. Shutting down instance.
錯誤的執行個體描述檔
如果節點因為執行個體描述檔錯誤而無法註冊,您會看到下列錯誤:
<13>Nov 13 18:43:08 user-data: [2025-11-13T18:43:08.268+00:00] - /opt/aws/pcs/bin/pcs_bootstrap_init.sh: INFO: Response is {
<13>Nov 13 18:43:08 user-data: "__type": "com.amazon.coral.service#AccessDeniedException",
<13>Nov 13 18:43:08 user-data: "Message": "User: arn:aws:sts::<accountId>:assumed-role/<roleName>/<instanceId> is not authorized to perform: pcs:RegisterComputeNodeGroupInstance on resource: arn:aws:pcs:<regionCode>:<accountId>:cluster/<clusterId> as either the resource does not exist, some policy explicitly denies access, or no policy grants access",
<13>Nov 13 18:43:08 user-data: "nodeID": null
<13>Nov 13 18:43:08 user-data: }
確認與運算節點相關聯的執行個體描述檔具有 pcs:RegisterComputeNodeGroupInstance許可。如需如何建立有效執行個體描述檔的詳細資訊,請參閱 建立 AWS PCS 的執行個體描述檔。
無法連線至 AWS PCS 端點
如果您的運算節點位於私有子網路中,請確定您已為 AWS PCS 設定 VPC 端點,或子網路具有路由至 NAT 閘道以進行網際網路存取。如需詳細資訊,請參閱下列內容:
-
《Amazon Virtual Private Cloud AWS PrivateLink指南》中的使用介面 VPC 端點存取 AWS 服務。
-
《Amazon Virtual Private Cloud 使用者指南》中的將您的 VPC 連線到其他網路
設定錯誤的 AWS PCS 端點
如果您看到類似以下的錯誤訊息,請驗證與您的 AWS PCS VPC 端點相關聯的政策:
com.amazon.coral.security.AccessDeniedException: User: arn:aws:sts::xxx:assumed-role/<roleName>/<instanceId> is not authorized to perform: pcs:RegisterComputeNodeGroupInstance on resource: arn:aws:pcs:<regionCode>:<accountId>:cluster/<clusterId> as either the resource does not exist, some policy explicitly denies access, or no policy grants access
如需如何設定 AWS PCS VPC 介面端點的詳細資訊,請參閱 AWS Parallel Computing 服務 使用界面端點存取 (AWS PrivateLink)。
沒有公有 IP 的公有子網路中的執行個體
如果您的子網路未啟用自動指派公有 IP,且您的路由組態使用網際網路閘道,則執行個體無法與 AWS PCS API 通訊。
子網路中具有網際網路閘道的執行個體必須具有公有 IP 地址。若要解決此問題,請選擇下列其中一個選項:
-
將 AWS PCS 的 VPC 端點新增至叢集 VPC。這可讓執行個體與 AWS PCS 通訊,而不需要公有 IP 地址即可通過網際網路閘道。
-
搭配 NAT 閘道使用私有子網路,因此不需要公有 IP 地址。
-
透過子網路或啟動範本啟用自動公有 IP 地址指派,讓執行個體可以透過網際網路閘道聯絡 API。請注意,此選項不適用於多網路介面執行個體。
公有子網路中的多 NIC 執行個體
如果您使用的執行個體類型具有多個網路介面 (NICs),則必須使用私有子網路。
AWS 公有 IP 地址只能指派給使用單一網路介面啟動的執行個體。如需 IP 地址的詳細資訊,請參閱《Amazon EC2 Linux 執行個體使用者指南》中的在執行個體啟動期間指派公有 IPv4 地址。
多 NIC 執行個體類型需要子網路中的 NAT 閘道或內部代理才能存取 AWS PCS 端點。或者,您可以將 AWS PCS 的 VPC 端點新增至叢集 VPC。
Slurm 叢集聯結問題
節點註冊成功後,運算節點會嘗試加入 Slurm 叢集。節點上的slurmd協助程式會聯絡 Slurm 控制器以向叢集註冊。Slurm 聯結失敗通常會顯示類似以下的錯誤訊息:
<13>Nov 5 17:20:29 user-data: [2024-11-05T17:20:28+00:00] FATAL: Mixlib::ShellOut::ShellCommandFailed: service[slurmd] (aws-pcs-slurm::finalize_slurm line 18) had an error: Mixlib::ShellOut::ShellCommandFailed: Expected process to exit with [0], but received '1' <13>Nov 5 17:20:29 user-data: ---- Begin output of ["/usr/bin/systemctl", "--system", "start", "slurmd"] ---- <13>Nov 5 17:20:29 user-data: STDOUT: <13>Nov 5 17:20:29 user-data: STDERR: Job for slurmd.service failed because the control process exited with error code. See "systemctl status slurmd.service" and "journalctl -xe" for details. <13>Nov 5 17:20:29 user-data: ---- End output of ["/usr/bin/systemctl", "--system", "start", "slurmd"] ----
安全群組組態
確認您的安全群組已正確設定,以允許運算節點和 Slurm 控制器之間的通訊。安全群組必須允許下列流量:
-
slurmd用於與 通訊的連接埠 6817slurmctld -
slurmctld用於 ping 的連接埠 6818slurmd
如需安全群組需求的詳細資訊,請參閱下列主題:
重要
您在叢集建立期間與叢集相關聯的叢集安全群組也必須在運算節點群組安全群組中設定,以允許運算節點與控制器通訊。
缺少 NVIDIA 驅動程式
如果執行個體引導正確,但任務未啟動,而且您在執行個體日誌中看到類似以下的錯誤訊息,您可能會缺少 NVIDIA 驅動程式:
<13>Dec 2 13:52:00 user-data: [2024-12-02T13:52:00.094+00:00] - /opt/aws/pcs/bin/pcs_bootstrap_config_always.sh: INFO: nvidia-smi not found! ... <13>Dec 2 13:54:10 user-data: Job for slurmd.service failed because the control process exited with error code. See "systemctl status slurmd.service" and "journalctl -xe" for details. <13>Dec 2 13:54:12 user-data: [2024-12-02T13:54:12.718+00:00] - /opt/aws/pcs/bin/pcs_bootstrap_finalize.sh: INFO: systemctl could not start slurmd!
如果您連線到執行個體並檢查slurmd協助程式狀態,您可能會看到類似以下的錯誤:
$ systemctl status slurmd ... fatal: can't stat gres.conf file /dev/nvidia0: No such file or directory
若要解決此問題,請在您的自訂 AMI 上安裝 NVIDIA 驅動程式。如需詳細資訊,請參閱步驟 4 – (選用) 安裝其他驅動程式、程式庫和應用程式軟體。
已達到 ResumeTimeout
如果運算節點及其 EC2 執行個體因節點運作狀態不佳而終止, AWS PCS 可能不支援 AMI 或可能有網路問題。EC2 執行個體會執行約 30 分鐘,直到達到 Slurm 的 ResumeTimeout,並將節點標記為 DOWN。
如果執行個體未正確引導,且未向 AWS PCS 註冊 (不RegisterComputeNodeGroupInstance呼叫 EC2 執行個體),請檢查您的執行個體日誌是否有類似以下的錯誤訊息:
/opt/aws/pcs/bin/pcs_bootstrap_init.sh: No such file or directory
此錯誤表示 AWS PCS 引導軟體不屬於 AMI。若要解決此問題,請確定您的自訂 AMI 包含 AWS PCS 引導軟體。如需詳細資訊,請參閱AWS PCS 的自訂 Amazon Machine Image AMIs)。
Slurmctld 無法 ping 運算節點
如果執行個體正確執行引導程序,並已向 AWS PCS 註冊,但slurmctld無法查看它並向其提交任務,執行個體會在一段時間DOWN後設定為 ,然後終止。
這可能是因為設定錯誤的安全群組所造成。例如,如果啟用連接埠 6817 以允許 與 slurmd通訊slurmctld,但連接埠 6818 遺失以允許 slurmctld ping slurmd。
確認您的安全群組包含所有必要的規則,如 中所述安全群組需求和考量事項。