您可以手动关闭整个 vSAN 集群以执行维护或故障排除。
除非工作流要求手动关闭,否则请使用“关闭集群”向导。手动关闭 vSAN 集群时,请勿在集群上禁用 vSAN。
注: 如果您具有 vSphere with Tanzu 环境,则在关闭或启动组件时必须遵循指定的顺序。有关详细信息,请参见
《VMware Cloud Foundation 操作指南》中的“关闭和启动 VMware Cloud Foundation”。
过程
- 关闭 vSAN 集群。
- 检查 vSAN 运行状况服务以确认集群处于正常运行状态。
- 如果 vSAN 集群中未托管 vCenter Server,请关闭该集群中运行的所有虚拟机的电源。如果 vCenter Server 托管在 vSAN 集群中,请不要关闭 vCenter Server 使用的 vCenter Server 虚拟机或服务虚拟机(例如 DNS、Active Directory)的电源。如果在 vSAN 集群中启用了文件服务,请不要关闭“vSAN 文件服务节点 (x)”虚拟机的电源。
- 单击配置选项卡,然后关闭 HA。因此,集群不会将主机关机事件登记为故障。
对于 vSphere 7.0 U1 和更高版本,请启用 vCLS 撤回模式。有关详细信息,请参见相应的 VMware 知识库文章,网址为 https://kb.vmware.com/s/article/80472。
- 确认所有重新同步任务已完成。
单击 监控选项卡,然后选择 vSAN > 重新同步对象。
- 如果 vSAN 集群中托管 vCenter Server,请关闭 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
该命令将返回并打印以下内容:
集群准备完成 (Cluster preparation is done)。注:- 成功执行该命令后,集群将完全分区。
- 如果遇到错误,请根据错误消息解决问题,然后再次尝试启用 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
该命令将返回并打印以下内容:
已成功完成集群重新引导/打开电源操作 (Cluster reboot/power-on is completed successfully)! - 通过在每个主机上运行以下命令,确认所有主机在集群中均可用。
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 运行状况服务,并解决任何未解决的问题。
- (可选)如果 vSAN 集群已启用 vSphere 可用性,则必须手动重新启动 vSphere 可用性,以避免出现以下错误:找不到 vSphere HA 主代理 (Cannot find vSphere HA master agent)。
要手动重新启动 vSphere 可用性,请选择 vSAN 集群,然后导航到:
- 配置 > 服务 > vSphere 可用性 > 编辑 > 禁用 vSphere HA
- 配置 > 服务 > vSphere 可用性 > 编辑 > 启用 vSphere HA
- 打开 ESXi 主机的电源。
- 如果集群中存在不正常或已断开连接的主机,请从 vSAN 集群中恢复或移除这些主机。仅当 vSAN 运行状况服务显示所有可用主机均处于绿色状态后,才能重试上述命令。
如果具有三节点 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