您可以手动关闭整个 vSAN 集群以执行维护或故障排除。

除非工作流要求手动关闭,否则请使用“关闭集群”向导。手动关闭 vSAN 集群时,请勿在集群上禁用 vSAN

注: 如果您具有 vSphere with Tanzu 环境,则在关闭或启动组件时必须遵循指定的顺序。有关详细信息,请参见 《VMware Cloud Foundation 操作指南》中的“关闭和启动 VMware Cloud Foundation”。

过程

  1. 关闭 vSAN 集群。
    1. 检查 vSAN 运行状况服务以确认集群处于正常运行状态。
    2. 如果 vSAN 集群中未托管 vCenter Server,请关闭该集群中运行的所有虚拟机的电源。如果 vSAN 集群中托管 vCenter Server,请勿关闭 vCenter Server 虚拟机的电源。
    3. 单击配置选项卡,然后关闭 HA。因此,集群不会将主机关机事件登记为故障。

      对于 vSphere 7.0 U1 和更高版本,请启用 vCLS 撤回模式。有关详细信息,请参见相应的 VMware 知识库文章,网址为 https://kb.vmware.com/s/article/80472

    4. 确认所有重新同步任务已完成。
      单击 监控选项卡,然后选择 vSAN > 重新同步对象
    5. 如果 vSAN 集群中托管 vCenter Server,请关闭 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

      该命令将返回并打印以下内容:

      集群准备完成 (Cluster preparation is done)。
      注:
      • 成功执行该命令后,集群将完全分区。
      • 如果遇到错误,请根据错误消息解决问题,然后再次尝试启用 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

      该命令将返回并打印以下内容:

      已成功完成集群重新引导/打开电源操作 (Cluster reboot/power-on is completed successfully)!
    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 主代理 (Cannot find vSphere HA master agent)
      要手动重新启动 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