AWS ParallelCluster 疑難排解 - AWS ParallelCluster

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

AWS ParallelCluster 疑難排解

AWS ParallelCluster 社群會維護 Wiki 頁面,該頁面在 AWS ParallelCluster GitHub Wiki 上提供許多疑難排解提示。如需已知問題的清單,請參閱已知問題

擷取和保留日誌

日誌是疑難排解問題的有用資源。在使用日誌對 AWS ParallelCluster 資源問題進行疑難排解之前,您應該先建立叢集日誌的封存。請遵循 AWS ParallelCluster GitHub Wiki建立叢集日誌封存主題中所述的步驟,以啟動此程序。

如果其中一個執行中的叢集遇到問題,您應該先執行 pcluster stop <cluster_name>命令,將叢集置於 STOPPED 狀態,然後再開始疑難排解。這可防止產生任何非預期的成本。

如果 pcluster 停止運作,或如果您仍保留其日誌時要刪除叢集,請執行 pcluster delete —keep-logs <cluster_name>命令。執行此命令會刪除叢集,但會保留存放在 Amazon 中的日誌群組 CloudWatch。如需此命令的詳細資訊,請參閱 pcluster delete 文件。

對堆疊部署問題進行故障診斷

如果您的叢集無法建立並復原堆疊建立,您可以查看下列日誌檔案來診斷問題。您想要在這些日誌ROLLBACK_IN_PROGRESS中尋找 的輸出。失敗訊息應如下所示:

$ pcluster create mycluster Creating stack named: parallelcluster-mycluster Status: parallelcluster-mycluster - ROLLBACK_IN_PROGRESS Cluster creation failed. Failed events: - AWS::EC2::Instance MasterServer Received FAILURE signal with UniqueId i-07af1cb218dd6a081

若要診斷問題,請使用 再次建立叢集pcluster create,包括 --norollback旗標。然後,SSH在叢集中:

$ pcluster create mycluster --norollback ... $ pcluster ssh mycluster

登入主機節點後,您應該會找到三個主要日誌檔案,可用來找出錯誤。

  • /var/log/cfn-init.logcfn-init指令碼的日誌。首先檢查此日誌。您可能會在此日誌Command chef failed中看到類似 的錯誤。如需與錯誤訊息連線的詳細資訊,請參閱此行前面的行。如需詳細資訊,請參閱 cfn-init

  • /var/log/cloud-init.logcloud-init 的日誌。如果您在 中沒有看到任何內容cfn-init.log,請嘗試在下一步檢查此日誌。

  • /var/log/cloud-init-output.logCloud-init 執行的命令輸出。這包括來自 的輸出cfn-init。在大多數情況下,您不需要查看此日誌來疑難排解此類問題。

對多個佇列模式叢集的問題進行疑難排解

本節與使用 2.9.0 版及更新 AWS ParallelCluster 版本搭配 所安裝的叢集相關 Slurm 任務排程器。如需多個佇列模式的詳細資訊,請參閱 多重佇列模式

金鑰日誌

下表提供主機節點金鑰日誌的概觀:

/var/log/cfn-init.log

這是 AWS CloudFormation 初始日誌。它包含設定執行個體時執行的所有命令。有助於對初始化問題進行疑難排解。

/var/log/chef-client.log

這是 Chef 用戶端日誌。它包含透過 Chef/ 執行的所有命令CINC。有助於對初始化問題進行疑難排解。

/var/log/parallelcluster/slurm_resume.log

這是ResumeProgram日誌。它啟動動態節點的執行個體,有助於疑難排解動態節點啟動問題。

/var/log/parallelcluster/slurm_suspend.log

這是SuspendProgram日誌。當動態節點的執行個體終止時稱為 ,有助於疑難排解動態節點終止問題。檢查此日誌時,您也應該檢查clustermgtd日誌。

/var/log/parallelcluster/clustermgtd

這是clustermgtd日誌。它作為集中常駐程式執行,管理大多數叢集操作動作。它有助於對任何啟動、終止或叢集操作問題進行疑難排解。

/var/log/slurmctld.log

這是 Slurm control daemon log. AWS ParallelCluster doesn 不會做出擴展決策。相反地,它只會嘗試啟動資源來滿足 Slurm 要求。它適用於擴展和分配問題、任務相關問題,以及任何排程器相關的啟動和終止問題。

以下是運算節點的關鍵備註:

/var/log/cloud-init-output.log

這是 Cloud-init 日誌。它包含設定執行個體時執行的所有命令。有助於對初始化問題進行疑難排解。

/var/log/parallelcluster/computemgtd

這是computemgtd日誌。它會在每個運算節點上執行,以監控頭節點上clustermgtd常駐程式離線的罕見事件中的節點。有助於疑難排解非預期的終止問題。

/var/log/slurmd.log

這是 Slurm 運算常駐程式日誌。它有助於對初始化和運算失敗相關問題進行疑難排解。

對節點初始化問題進行故障診斷

本節說明如何對節點初始化問題進行疑難排解。這包括節點無法啟動、開啟電源或加入叢集的問題。

主節點:

適用的日誌:

  • /var/log/cfn-init.log

  • /var/log/chef-client.log

  • /var/log/parallelcluster/clustermgtd

  • /var/log/parallelcluster/slurm_resume.log

  • /var/log/slurmctld.log

檢查 /var/log/cfn-init.log/var/log/chef-client.log 日誌。這些日誌應包含設定主機節點時執行的所有動作。在設定期間發生的大多數錯誤都應在/var/log/chef-client.log日誌中顯示錯誤訊息。如果在叢集的組態中指定預先安裝或安裝後指令碼,請再次檢查指令碼是否透過日誌訊息成功執行。

建立叢集時,主機節點需要等待運算節點加入叢集,才能加入叢集。因此,如果運算節點無法加入叢集,則主機節點也會失敗。您可以根據使用的運算備註類型,遵循以下一組程序之一,以對此類問題進行疑難排解:

動態運算節點:

  • 搜尋運算節點名稱的ResumeProgram日誌 (/var/log/parallelcluster/slurm_resume.log),以查看是否ResumeProgram曾經使用節點呼叫 。(如果ResumeProgram從未呼叫 ,您可以檢查slurmctld日誌 (/var/log/slurmctld.log) 以確定是否 Slurm 曾經嘗試ResumeProgram使用節點呼叫 。)

  • 請注意,不正確的 許可ResumeProgram可能會導致 靜音ResumeProgram失敗。如果您使用自訂AMI搭配修改進行ResumeProgram設定,請檢查 ResumeProgram 是否為slurm使用者所有,並具有 744rwxr--r--) 許可。

  • 如果 ResumeProgram 已呼叫 ,請檢查是否已為節點啟動執行個體。如果未啟動任何執行個體,您應該能夠看到描述啟動失敗的錯誤訊息。

  • 如果執行個體已啟動,則設定程序期間可能會發生問題。您應該會從ResumeProgram日誌中看到對應的私有 IP 地址和執行個體 ID。此外,您可以查看特定執行個體的對應設定日誌。如需使用運算節點疑難排解設定錯誤的詳細資訊,請參閱下一節。

靜態運算節點:

  • 檢查 clustermgtd/var/log/parallelcluster/clustermgtd) 日誌,查看是否啟動節點的執行個體。如果未啟動,應該會出現明確錯誤訊息,詳細說明啟動失敗。

  • 如果啟動執行個體,則設定過程中會出現一些問題。您應該會從ResumeProgram日誌中看到對應的私有 IP 地址和執行個體 ID。此外,您可以查看特定執行個體的對應設定日誌。

  • 運算節點:

    • 適用的日誌:

      • /var/log/cloud-init-output.log

      • /var/log/slurmd.log

    • 如果啟動運算節點,請先檢查 /var/log/cloud-init-output.log,其中應包含類似於主機節點上日誌的設定/var/log/chef-client.log日誌。在設定期間發生的大多數錯誤都應在/var/log/cloud-init-output.log日誌中顯示錯誤訊息。如果在叢集組態中指定預先安裝或安裝後指令碼,請檢查它們是否已成功執行。

    • 如果您使用AMI修改為 的自訂 Slurm 組態,則可能會有 Slurm 相關錯誤,導致運算節點無法加入叢集。如需排程器相關錯誤,請檢查/var/log/slurmd.log日誌。

對非預期節點替換和終止進行故障診斷

本節繼續探索如何疑難排解節點相關問題,特別是當節點意外更換或終止時。

  • 適用的日誌:

    • /var/log/parallelcluster/clustermgtd (主節點)

    • /var/log/slurmctld.log (主節點)

    • /var/log/parallelcluster/computemgtd (運算節點)

  • 節點意外更換或終止

    • 檢查clustermgtd日誌 (/var/log/parallelcluster/clustermgtd) 中的 ,查看 是否clustermgtd採取 動作來取代或終止節點。請注意, clustermgtd會處理所有一般節點維護動作。

    • 如果clustermgtd已取代或終止節點,則應該會出現一則訊息,詳細說明為什麼在節點上採取此動作。如果原因與排程器相關 (例如,因為節點位於 中DOWN),請在 slurmctld 日誌中查看詳細資訊。如果原因與 Amazon EC2相關,應該會有資訊性訊息詳細說明需要替換的 Amazon EC2相關問題。

    • 如果 clustermgtd未終止節點,請先檢查這是否為 Amazon 的預期終止EC2,更具體而言是 位置終止。如果 clustermgtd 確定為運作狀態不佳,computemgtd則在運算節點上執行的 也可以採取 動作來終止節點。檢查computemgtd日誌 (/var/log/parallelcluster/computemgtd) 以查看節點是否computemgtd終止。

  • 節點失敗

    • 簽入slurmctld日誌 (/var/log/slurmctld.log) 以查看任務或節點失敗的原因。請注意,如果節點失敗,任務會自動重新排入佇列。

    • 如果slurm_resume報告啟動節點,並在幾分鐘後clustermgtd報告EC2該節點的 Amazon 中沒有對應的執行個體,則節點可能會在設定期間失敗。若要從運算 (/var/log/cloud-init-output.log) 擷取日誌,請執行下列步驟:

      • 提交任務以允許 Slurm 啟動新的節點。

      • 節點啟動後,使用此命令啟用終止保護。

        aws ec2 modify-instance-attribute --instance-id i-xyz --disable-api-termination
      • 使用此命令從節點擷取主控台輸出。

        aws ec2 get-console-output --instance-id i-xyz --output text

更換、終止或關閉問題執行個體和節點的電源

  • 適用的日誌:

    • /var/log/parallelcluster/clustermgtd (主節點)

    • /var/log/parallelcluster/slurm_suspend.log (主節點)

  • 在大多數情況下, 會clustermgtd處理所有預期的執行個體終止動作。請檢查clustermgtd日誌,了解為何無法取代或終止節點。

  • 對於失敗的動態節點scaledown_idletime,請檢查SuspendProgram日誌,查看 是否SuspendProgram以特定節點作為引數slurmctld呼叫 。請注意, 實際上SuspendProgram不會執行任何動作。相反地,它只會在呼叫時記錄。所有執行個體終止和NodeAddr重設都由 完成clustermgtd。Slurm SuspendTimeout 會自動將節點置於 之後POWER_SAVING的狀態。

對其他已知節點和任務問題進行故障診斷

另一種已知問題類型是 AWS ParallelCluster 可能無法配置任務或做出擴展決策。對於此類問題, AWS ParallelCluster 僅根據 啟動、終止或維護資源 Slurm 指示。針對這些問題,請檢查slurmctld日誌以疑難排解這些問題。

對單一佇列模式叢集的問題進行疑難排解

注意

從 2.11.5 版開始, AWS ParallelCluster 不支援使用 SGE 或 Torque 排程器。

本節適用於沒有多個佇列模式的叢集,具有下列兩種組態之一:

  • 使用 2.9.0 及 之前的 AWS ParallelCluster 版本啟動 SGE, Torque、 或 Slurm 任務排程器。

  • 使用 2.9.0 AWS ParallelCluster 版或更新版本啟動,以及 SGE 或 Torque 任務排程器。

金鑰日誌

下列日誌檔案是主機節點的金鑰日誌。

對於 AWS ParallelCluster 2.9.0 版或更新版本:

/var/log/chef-client.log

這是 CINC(chef) 用戶端日誌。它包含透過 執行的所有命令CINC。它有助於對初始化問題進行疑難排解。

對於所有 AWS ParallelCluster 版本:

/var/log/cfn-init.log

這是cfn-init日誌。它包含設定執行個體時執行的所有命令,因此有助於對初始化問題進行疑難排解。如需詳細資訊,請參閱 cfn-init

/var/log/clustermgtd.log

這是 的clustermgtd日誌 Slurm 排程器。 會作為集中常駐程式clustermgtd執行,以管理大多數叢集操作動作。它有助於對任何啟動、終止或叢集操作問題進行疑難排解。

/var/log/jobwatcher

這是 的jobwatcher日誌 SGE 以及 Torque 排程器。 會jobwatcher監控排程器佇列並更新 Auto Scaling 群組。它有助於疑難排解與擴展節點相關的問題。

/var/log/sqswatcher

這是 的sqswatcher日誌 SGE 以及 Torque 排程器。 會在成功初始化後sqswatcher處理運算執行個體傳送的執行個體就緒事件。它也會將運算節點新增至排程器組態。此日誌有助於疑難排解節點或節點無法加入叢集的原因。

以下是運算節點的金鑰日誌。

AWS ParallelCluster 2.9.0 版或更新版本

/var/log/cloud-init-output.log

這是 Cloud init 日誌。它包含設定執行個體時執行的所有命令。它有助於對初始化問題進行疑難排解。

AWS ParallelCluster 2.9.0 之前的版本

/var/log/cfn-init.log

這是 CloudFormation 初始日誌。它包含設定執行個體時執行的所有命令。它有助於對初始化問題進行疑難排解

所有版本

/var/log/nodewatcher

這是使用 nodewatcher 時在每個運算節點上執行的 nodewatcher log. 精靈 SGE 以及 Torque 排程器。如果節點處於閒置狀態,它們會縮減節點。此日誌對於任何與縮減資源相關的問題很有用。

故障診斷失敗的啟動和聯結操作

  • 適用的日誌:

    • /var/log/cfn-init-cmd.log (主節點和運算節點)

    • /var/log/sqswatcher (主節點)

  • 如果節點無法啟動,請在/var/log/cfn-init-cmd.log日誌中查看特定錯誤訊息。在大多數情況下,節點啟動失敗是由於設定失敗所致。

  • 如果運算節點在設定成功後仍無法加入排程器組態,請檢查/var/log/sqswatcher日誌,查看是否sqswatcher處理事件。在大多數情況下,這些問題都是因為 sqswatcher 未處理事件。

對擴展問題進行故障診斷

  • 適用的日誌:

    • /var/log/jobwatcher (主節點)

    • /var/log/nodewatcher (運算節點)

  • 擴展問題:針對主節點,請檢查/var/log/jobwatcher日誌,查看jobwatcher常駐程式是否計算了適當數量的必要節點,並更新了 Auto Scaling 群組。請注意, 會jobwatcher監控排程器佇列並更新 Auto Scaling 群組。

  • 縮減問題規模:對於運算節點,請檢查問題節點上的/var/log/nodewatcher日誌,以了解節點縮減的原因。請注意,nodewatcher如果常駐程式處於閒置狀態,則會縮減運算節點。

一個已知問題是大規模叢集上的隨機運算備註失敗,特別是具有 500 個或更多運算節點的叢集。此問題與單一佇列叢集擴展架構的限制有關。如果您想要使用大規模叢集,使用 AWS ParallelCluster 2.9.0 版或更新版本,則使用 Slurm,並且想要避免此問題,您應該升級並切換到支援多個佇列模式的叢集。您可以執行 來執行此操作pcluster-config convert

對於超大型叢集,可能需要對系統進行額外的調校。如需詳細資訊,請聯絡 AWS Support。

置放群組和執行個體啟動問題

若要取得最低節點間延遲,請使用置放群組 。置放群組可確保您的執行個體位於相同的網路骨幹上。如果提出請求時沒有足夠的執行個體可用,則會傳回InsufficientInstanceCapacity錯誤。若要降低在使用叢集置放群組時收到此錯誤的可能性,請將 placement_group 參數設定為 ,DYNAMIC並將 placement 參數設定為 compute

如果您需要高效能共用檔案系統,請考慮使用 FSx for Lustre

如果主機節點必須位於置放群組中,請同時針對主機和所有運算節點使用相同的執行個體類型和子網路。透過執行此操作, compute_instance_type 參數具有與 master_instance_type 參數相同的值, placement 參數設定為 cluster,並且compute_subnet_id參數未指定。使用此組態時, master_subnet_id 參數的值會用於運算節點。

如需詳細資訊,請參閱 Amazon EC2使用者指南中的對執行個體啟動問題和置放群組角色和限制進行故障診斷 https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/placement-groups.html#concepts-placement-groups

無法取代的目錄

下列目錄會在節點之間共用,且無法取代。

/home

這包括預設的使用者主資料夾 (/home/ec2_user在 Amazon Linux 上,在 /home/centos上 CentOS、 和 /home/ubuntu 於 Ubuntu).

/opt/intel

這包括 Intel MPI、Intel Parallel Studio 和相關檔案。

/opt/sge
注意

從 2.11.5 版開始, AWS ParallelCluster 不支援使用 SGE 或 Torque 排程器。

這包括 Son of Grid Engine 和相關檔案。(有條件,僅在 scheduler = sge 的時候。)

/opt/slurm

這包括 Slurm Workload Manager 和相關檔案。(有條件,僅在 scheduler = slurm 的時候。)

/opt/torque
注意

從 2.11.5 版開始, AWS ParallelCluster 不支援使用 SGE 或 Torque 排程器。

這包括 Torque Resource Manager 和相關檔案。(有條件,僅在 scheduler = torque 的時候。)

對 Amazon 中的問題進行故障診斷 DCV

Amazon 的日誌 DCV

Amazon 的日誌DCV會寫入 /var/log/dcv/目錄中的檔案。檢閱這些日誌有助於對問題進行疑難排解。

Amazon DCV執行個體類型記憶體

執行個體類型至少要有 1.7 GB (GiB ) RAM才能執行 Amazon DCV。Nano 以及 micro 執行個體類型沒有足夠的記憶體來執行 Amazon DCV。

Ubuntu Amazon DCV問題

透過 Ubuntu 上的DCV工作階段執行 Gnome 終端機時,您可能無法自動存取透過登入 Shell AWS ParallelCluster 提供的使用者環境。使用者環境提供 Openmpi 或 intelmpi 等環境模組,以及其他使用者設定。

Gnome Terminal 的預設設定可防止 Shell 作為登入 Shell 啟動。這表示系統不會自動取得 Shell 設定檔,也不會載入 AWS ParallelCluster 使用者環境。

若要正確取得 Shell 設定檔並存取 AWS ParallelCluster 使用者環境,請執行下列其中一項操作:

  • 變更預設終端機設定:
    1. 選擇 Gnome 終端機中的編輯選單。

    2. 選取偏好設定 ,然後選取設定檔

    3. 選擇 命令,然後選擇 執行命令 作為登入 shell

    4. 開啟新的終端機。

  • 使用命令列來尋找可用的設定檔:

    $ source /etc/profile && source $HOME/.bashrc

透過整合對叢集 AWS Batch 中的問題進行故障診斷

本節與具有 AWS Batch 排程器整合的叢集相關。

頭節點問題

與主機節點相關的設定問題可以與單一佇列叢集相同的方式進行故障診斷。如需有關這些問題的詳細資訊,請參閱對單一佇列模式叢集的問題進行疑難排解

AWS Batch 多節點平行任務提交問題

如果您在使用 AWS Batch 作為任務排程器時提交多節點平行任務時遇到問題,您應該升級至 2.5.0 AWS ParallelCluster 版。如果不可行,您可以使用主題中詳述的解決方法:自行修補用於透過 提交多節點平行任務的叢集 AWS Batch

運算問題

AWS Batch 管理服務的擴展和運算層面。如果您遇到運算相關問題,請參閱故障 AWS Batch 診斷文件以取得協助。

任務失敗

如果任務失敗,您可以執行 awsbout命令來擷取任務輸出。您也可以執行 awsbstat -d命令,以取得 Amazon 所儲存之任務日誌的連結 CloudWatch。

資源無法建立時的故障診斷

本節與叢集資源在無法建立時有關。

當資源無法建立時, 會 ParallelCluster 傳回如下錯誤訊息。

pcluster create -c config my-cluster Beginning cluster creation for cluster: my-cluster WARNING: The instance type 'p4d.24xlarge' cannot take public IPs. Please make sure that the subnet with id 'subnet-1234567890abcdef0' has the proper routing configuration to allow private IPs reaching the Internet (e.g. a NAT Gateway and a valid route table). WARNING: The instance type 'p4d.24xlarge' cannot take public IPs. Please make sure that the subnet with id 'subnet-1234567890abcdef0' has the proper routing configuration to allow private IPs reaching the Internet (e.g. a NAT Gateway and a valid route table). Info: There is a newer version 3.0.3 of AWS ParallelCluster available. Creating stack named: parallelcluster-my-cluster Status: parallelcluster-my-cluster - ROLLBACK_IN_PROGRESS Cluster creation failed. Failed events: - AWS::CloudFormation::Stack MasterServerSubstack Embedded stack arn:aws:cloudformation:region-id:123456789012:stack/parallelcluster-my-cluster-MasterServerSubstack-ABCDEFGHIJKL/a1234567-b321-c765-d432-dcba98766789 was not successfully created: The following resource(s) failed to create: [MasterServer]. - AWS::CloudFormation::Stack parallelcluster-my-cluster-MasterServerSubstack-ABCDEFGHIJKL The following resource(s) failed to create: [MasterServer]. - AWS::EC2::Instance MasterServer You have requested more vCPU capacity than your current vCPU limit of 0 allows for the instance bucket that the specified instance type belongs to. Please visit http://aws.amazon.com/contact-us/ec2-request to request an adjustment to this limit. (Service: AmazonEC2; Status Code: 400; Error Code: VcpuLimitExceeded; Request ID: a9876543-b321-c765-d432-dcba98766789; Proxy: null) }

例如,如果您看到上一個命令回應中顯示的狀態訊息,則必須使用不超過目前 vCPU 限制的執行個體類型,或請求更多 v CPU容量。

您也可以使用 CloudFormation 主控台來查看 "Cluster creation failed" 狀態的相關資訊。

從主控台檢視 CloudFormation 錯誤訊息。

  1. 登入 AWS Management Console 並導覽至 https://console.aws.amazon.com/cloudformation

  2. 選取名為 parallelcluster- 的堆疊cluster_name.

  3. 選擇事件索引標籤。

  4. 透過按邏輯 ID 捲動資源事件清單,檢查無法建立的資源狀態。如果子任務無法建立,請向後工作以尋找失敗的資源事件。

  5. AWS CloudFormation 錯誤訊息的範例:

    2022-02-07 11:59:14 UTC-0800 MasterServerSubstack CREATE_FAILED Embedded stack arn:aws:cloudformation:region-id:123456789012:stack/parallelcluster-my-cluster-MasterServerSubstack-ABCDEFGHIJKL/a1234567-b321-c765-d432-dcba98766789 was not successfully created: The following resource(s) failed to create: [MasterServer].

對IAM政策大小問題進行故障診斷

請參閱 IAM 和 AWS STS 配額、名稱要求和字元限制,以驗證連接到角色的受管政策的配額。如果受管政策大小超過配額,請將政策分割為兩個或更多政策。如果您超過附加至IAM角色的政策數量配額,請建立其他角色並在這些角色之間分發政策以符合配額。

其他支援

如需已知問題的清單,請參閱 GitHub Wiki 主頁面或問題頁面。如有更緊急的問題,請聯絡 AWS Support 或開啟新 GitHub問題