您可以手動關閉整個 vSAN 叢集,以執行維護或疑難排解。
除非您的工作流程需要手動關閉,否則請使用 [關閉叢集] 精靈。當您手動關閉 vSAN 叢集時,請勿在叢集上停用 vSAN。
備註: 如果您具有 vSphere with Tanzu 環境,則在關閉或啟動元件時,必須遵循指定的順序。如需詳細資訊,請參閱
《VMware Cloud Foundation 作業指南》中的〈關閉和啟動 VMware Cloud Foundation〉。
程序
- 關閉 vSAN 叢集。
- 檢查 vSAN Skyline Health,以確認叢集狀況良好。
- 如果 vCenter Server 未裝載於 vSAN 叢集上時,請關閉該叢集中正在執行的所有虛擬機器 (VM) 的電源。如果 vCenter Server 裝載於 vSAN 叢集中,請不要關閉 vCenter Server 使用的 vCenter Server 虛擬機器或服務虛擬機器 (例如 DNS、Active Directory) 的電源。
- 如果在 vSAN 叢集中啟用了 vSAN 檔案服務,則必須停用該檔案服務。停用 vSAN 檔案服務會移除空的檔案服務網域。如果您要在重新啟動 vSAN 叢集後保留空的檔案服務網域,必須先建立 NFS 或 SMB 檔案共用,然後再停用 vSAN 檔案服務。
- 按一下設定索引標籤,然後關閉 HA。如此一來,該叢集便不會將主機關閉登錄為故障。
對於 vSphere 7.0 U1 及更新版本,請啟用 vCLS 撤回模式。如需詳細資訊,請參閱 VMware 知識庫文章,網址為:https://kb.vmware.com/s/article/80472。
- 確認所有重新同步工作均已完成。
按一下 監控索引標籤,然後選取 vSAN > 重新同步物件。
- 如果 vCenter Server 裝載於 vSAN 叢集,請關閉 vCenter Server 虛擬機器的電源。
記下執行 vCenter Server 虛擬機器的主機。它是您必須重新啟動 vCenter Server 虛擬機器所在的主機。
- 在叢集中的 ESXi 主機上執行下列命令,以停用 vCenter Server 的叢集成員更新。確保在所有主機上執行下列命令。
esxcfg-advcfg -s 1 /VSAN/IgnoreClusterMemberListUpdates
- 登入叢集中除了見證主機以外的任何主機。
- 僅在該主機上執行下列命令。如果同時在多個主機上執行命令,可能會導致競爭情形,進而造成非預期的結果。
python /usr/lib/vmware/vsan/bin/reboot_helper.py prepare
命令會傳回並列印下列內容:
叢集準備已完成。備註:- 該命令成功完成後,叢集會進行完整磁碟分割。
- 如果發生錯誤,請根據錯誤訊息解決問題,然後再次嘗試啟用 vCLS 撤回模式。
- 如果叢集中有狀況不良或已中斷連線的主機,請移除這些主機,然後重試命令。
- 將所有主機置於具有無動作的維護模式。如果 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。 - 所有主機均成功進入維護模式後,請執行任何必要的維護工作,並關閉主機的電源。
- 重新啟動 vSAN 叢集。
- 開啟 ESXi 主機的電源。
將 ESXi 安裝所在的實體機箱開啟電源。 ESXi 主機在啟動後會尋找虛擬機器,並正常運作。如果有任何主機無法重新啟動,您必須手動復原這些主機,或將有問題的主機移出 vSAN 叢集外。
- 如果所有主機在開啟電源後都恢復正常,請將所有主機退出維護模式。如果 vCenter Server 已關閉電源,請在 ESXi 主機上使用下列命令,以退出維護模式。
esxcli system maintenanceMode set -e false
在所有主機上執行此步驟。 - 登入叢集中除了見證主機以外的其中一個主機。
- 僅在該主機上執行下列命令。如果同時在多個主機上執行命令,可能會導致競爭情形,進而造成非預期的結果。
python /usr/lib/vmware/vsan/bin/reboot_helper.py recover
命令會傳回並列印下列內容:
已成功完成叢集重新開機/電源開啟! - 在每個主機上執行下列命令,以確認叢集中的所有主機均可供使用。
esxcli vsan cluster get
- 在叢集中的 ESXi 主機上執行下列命令,以啟用 vCenter Server 的叢集成員更新。確保在所有主機上執行下列命令。
esxcfg-advcfg -s 0 /VSAN/IgnoreClusterMemberListUpdates
- 如果 vCenter Server 虛擬機器已關閉電源,請將其重新啟動。等待 vCenter Server 虛擬機器開啟電源並開始執行。若要停用 vCLS 撤回模式,請參閱 VMware 知識庫文章,網址為 https://kb.vmware.com/s/article/80472。
- 在每個主機上執行下列命令,以再次確認所有主機皆參與 vSAN 叢集。
esxcli vsan cluster get
- 透過 vCenter Server 重新啟動剩餘的虛擬機器。
- 檢查 vSAN Skyline Health,並解決任何待處置的問題。
- (選用) 啟用 vSAN 檔案服務。
- (選用) 如果 vSAN 叢集已啟用 vSphere 可用性,則必須手動重新啟動 vSphere 可用性,以避免發生下列錯誤:找不到 vSphere HA 主要代理程式。
若要手動重新啟動 vSphere 可用性,請選取 vSAN 叢集,並導覽至:
- 設定 > 服務 > vSphere 可用性 > 編輯 > 停用 vSphere HA
- 設定 > 服務 > vSphere 可用性 > 編輯 > 啟用 vSphere HA
- 開啟 ESXi 主機的電源。
- 如果叢集中有狀況不良或已中斷連線的主機,請從 vSAN 叢集中復原或移除主機。如果 vCenter Server 使用 DNS 或 Active Directory 等服務虛擬機器,請在 [關閉叢集] 精靈中,將其標註為例外虛擬機器。
務必在 vSAN Skyline Health 顯示所有可用的主機皆處於綠色狀態之後再重試上述命令。如果您有三節點的 vSAN 叢集,則在一個主機發生故障的情況下,命令 reboot_helper.py recover 便無法正常運作。請以管理員身分執行下列操作:
- 從單點傳播代理程式清單中暫時移除失敗主機資訊。
- 在執行下列命令後新增主機。
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