

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

# 嘗試更新叢集
<a name="troubleshooting-fc-v3-update-cluster"></a>

下節針對您嘗試更新叢集時可能發生的問題，提供可能的疑難排解解決方案。

## `pcluster update-cluster` 命令無法在本機執行
<a name="update-cluster-failure-cli-v3"></a>

如需失敗詳細資訊，`~/.parallelcluster/pcluster-cli.log`請參閱本機檔案系統中的 。

## 使用 `clusterStatus` `UPDATE_FAILED``pcluster describe-cluster`命令查看
<a name="update-cluster-failure-v3"></a>

### 根本原因
<a name="update-cluster-failure-v3-root-causing"></a>

為了識別失敗的根本原因，起點是查看叢集堆疊事件和前端節點`/var/log/chef-client.log`中的 。

可能的原因是至少有一個叢集節點未套用更新。您可以在 日誌`/var/log/chef-client.log`中尋找 ，以擷取無法在前端節點`Check cluster readiness`中更新之節點的清單。

檢查 [GitHub 上的 GitHub 已知問題](https://github.com/aws/aws-parallelcluster/wiki) AWS ParallelCluster 中是否提及您的問題。 GitHub

### 防止
<a name="update-cluster-failure-v3-preventing"></a>

如果叢集中至少有一個節點未成功套用更新，則叢集更新可能會失敗。為了降低叢集更新失敗的風險，建議您在啟動更新之前終止中斷的節點。可能中斷的節點範例是運算節點處於 `COMPLETING` 狀態的時間超過預期的 epilog 持續時間。若要偵測這些節點，您可以執行下列命令，根據您的需求調整 `threshold`值 （該值必須大於對 epilogs 預期的最長持續時間）。

```
$ scontrol show nodes --json | jq -r --argjson threshold 60 '
  .nodes[] | select(.state | index("COMPLETING")) |
  select((now - .last_busy.number) > $threshold) |
  .name
'
```

### 復原
<a name="update-cluster-failure-v3-recovering"></a>

如果更新失敗，復原是預期會復原叢集狀態的機制。

 如果轉返失敗，叢集狀態不是確定性的。在這種情況下，可能會`clustermgtd`停止以防止失敗的擴增。我們建議您在前端節點上執行下列命令來啟動它。將 Python 版本調整為與您的版本一起隨附的 AWS ParallelCluster 版本：

```
$ /opt/parallelcluster/pyenv/versions/{{3.12.11}}/envs/cookbook_virtualenv/bin/supervisorctl start clustermgtd
```

## 叢集更新逾時
<a name="update-cluster-failure-timeout-v3"></a>

這可能是與`cfn-hup`未執行相關的問題。如果`cfn-hup`魔抗被外部原因終止，則不會自動重新啟動。如果 `cfn-hup` 未執行，在叢集更新期間，CloudFormation 堆疊會如預期啟動更新程序，但前端節點上不會啟動更新程序，且堆疊部署最終會逾時。如需詳細資訊，請參閱 [在 `cfn-hup` 未執行時對叢集更新逾時進行故障診斷](troubleshooting-v3-cluster-update-timeout.md)以疑難排解並從問題中復原。