您可以手動關閉整個 vSAN 叢集,以執行維護或疑難排解。

除非您的工作流程需要手動關閉,否則請使用 [關閉叢集] 精靈。手動關閉 vSAN 叢集時,請勿在叢集上停用 vSAN

備註: 如果您具有 vSphere with Tanzu 環境,則在關閉或啟動元件時,必須遵循指定的順序。如需詳細資訊,請參閱 《VMware Validated Design 說明文件》中的〈關閉 vSphere with Tanzu 工作負載網域〉。

程序

  1. 關閉 vSAN 叢集。
    1. 檢查 vSAN 健全狀況服務,以確認叢集狀況良好。
    2. 在 vCenter Server 未裝載於 vSAN 叢集時,關閉該叢集中正在執行的所有虛擬機器 (VM)。如果 vCenter Server 裝載於 vSAN 叢集中,請不要關閉 vCenter Server 虛擬機器的電源。
    3. 按一下設定索引標籤,然後關閉 HA。如此一來,該叢集便不會將主機關閉登錄為故障。

      對於 vSphere 7.0 U1 及更新版本,請啟用 vCLS 撤回模式。如需詳細資訊,請參閱 VMware 知識庫文章,網址為:https://kb.vmware.com/s/article/80472

    4. 確認所有重新同步工作均已完成。
      按一下 監控索引標籤,然後選取 vSAN > 重新同步物件
    5. 如果 vCenter Server 裝載於 vSAN 叢集,請關閉 vCenter Server 虛擬機器的電源。
      記下執行 vCenter Server 虛擬機器的主機。它是您必須重新啟動 vCenter Server 虛擬機器所在的主機。
    6. 在叢集中的 ESXi 主機上執行下列命令,以停用叢集成員從 vCenter Server 的更新。確保在所有主機上執行下列命令。
      esxcfg-advcfg -s 1 /VSAN/IgnoreClusterMemberListUpdates
    7. 登入叢集中除了見證主機以外的任何主機。
    8. 僅在該主機上執行下列命令。如果同時在多個主機上執行命令,可能會導致競爭情形,進而造成非預期的結果。
      python /usr/lib/vmware/vsan/bin/reboot_helper.py prepare

      命令會傳回並列印下列內容:

      叢集準備已完成。
      備註:
      • 該命令成功完成後,叢集會進行完整磁碟分割。
      • 如果發生錯誤,請根據錯誤訊息解決問題,然後再次嘗試啟用 vCLS 撤回模式。
      • 如果叢集中有狀況不良或已中斷連線的主機,請移除這些主機,然後重試命令。
    9. 將所有主機置於具有無動作的維護模式。如果 vCenter Server 已關閉電源,請使用下列命令將 ESXi 主機置於具有無動作的維護模式。
      esxcli system maintenanceMode set -e true -m noAction
      在所有主機上執行此步驟。
      若要避免同時在多台主機上使用 無動作,接著將多台主機同時重新開機時造成資料無法使用的風險,請參閱 VMware 知識庫文章,網址為 https://kb.vmware.com/s/article/60424。若要使用內建工具將叢集中的所有主機同時重新開機,請參閱 VMware 知識庫文章,網址為 https://kb.vmware.com/s/article/70650
    10. 所有主機均成功進入維護模式後,請執行任何必要的維護工作,並關閉主機的電源。
  2. 重新啟動 vSAN 叢集。
    1. 開啟 ESXi 主機的電源。
      ESXi 安裝所在的實體機箱開啟電源。 ESXi 主機在啟動後會尋找虛擬機器,並正常運作。
      如果有任何主機無法重新啟動,您必須手動復原這些主機,或將有問題的主機移出 vSAN 叢集外。
    2. 如果所有主機在開啟電源後都恢復正常,請將所有主機退出維護模式。如果 vCenter Server 已關閉電源,請在 ESXi 主機上使用下列命令,以退出維護模式。
      esxcli system maintenanceMode set -e false
      在所有主機上執行此步驟。
    3. 登入叢集中除了見證主機以外的其中一個主機。
    4. 僅在該主機上執行下列命令。如果同時在多個主機上執行命令,可能會導致競爭情形,進而造成非預期的結果。
      python /usr/lib/vmware/vsan/bin/reboot_helper.py recover

      命令會傳回並列印下列內容:

      已成功完成叢集重新開機/電源開啟!
    5. 在每個主機上執行下列命令,以確認叢集中的所有主機均可供使用。
      esxcli vsan cluster get
    6. 在叢集中的 ESXi 主機上執行下列命令,以啟用 vCenter Server 的叢集成員更新。確保在所有主機上執行下列命令。
      esxcfg-advcfg -s 0 /VSAN/IgnoreClusterMemberListUpdates
    7. 如果 vCenter Server 虛擬機器已關閉電源,請將其重新啟動。等待 vCenter Server 虛擬機器開啟電源並開始執行。若要停用 vCLS 撤回模式,請參閱 VMware 知識庫文章,網址為 https://kb.vmware.com/s/article/80472
    8. 在每個主機上執行下列命令,以再次確認所有主機皆參與 vSAN 叢集。
      esxcli vsan cluster get
    9. 透過 vCenter Server 重新啟動剩餘的虛擬機器。
    10. 檢查 vSAN 健全狀況服務,並解決任何待處置的問題。
    11. (選用) 如果 vSAN 叢集已啟用 vSphere 可用性,則必須手動重新啟動 vSphere 可用性,以避免發生下列錯誤:找不到 vSphere HA 主要代理程式
      若要手動重新啟動 vSphere 可用性,請選取 vSAN 叢集,並導覽至:
      1. 設定 > 服務 > vSphere 可用性 > 編輯 > 停用 vSphere HA
      2. 設定 > 服務 > vSphere 可用性 > 編輯 > 啟用 vSphere HA
  3. 如果叢集中有狀況不良或已中斷連線的主機,請從 vSAN 叢集中復原或移除主機。務必在 vSAN 健全狀況服務顯示所有可用的主機皆處於綠色狀態之後,再重試上述命令。
    如果您有三節點的 vSAN 叢集,則在一個主機發生故障的情況下,命令 reboot_helper.py recover 便無法正常運作。請以管理員身分執行下列操作:
    1. 從單點傳播代理程式清單中暫時移除失敗主機資訊。
    2. 在執行下列命令後新增主機。
      reboot_helper.py recover
    以下是在 vSAN 叢集中移除和新增主機的命令:
    #esxcli vsan cluster unicastagent remove -a <IP Address> -t node -u <NodeUuid>
    #esxcli vsan cluster unicastagent add -t node -u <NodeUuid> -U true -a <IP Address> -p 12321