Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

附录B:节点重启和健康检查

有时,您需要手动重新启动所有节点(虚拟机和虚拟机管理程序)。更新软件包不会自动触发后续重新启动;您必须手动重新启动节点。附录 B 中提供的重新启动顺序有助于确保将对服务的中断降至最低。在恢复每个服务时检查其运行状况同样重要。这是为了维护高可用性群集的健康节点仲裁。

以下过程详细介绍了用于重新启动和检查每个服务和节点的正确顺序和命令。该过程涵盖适用于 HA 环境的瞻博网络 Contrail 组件和红帽组件。

先决条件

重新启动节点之前:

  • 部署软件更新:Contrail 云更新脚本(逐个角色)。

更新并重新启动控制平面节点

按从非虚拟 IP (VIP) 节点开始的顺序运行该过程,然后对具有 VIP 的节点重复此过程。

注意:

示例输出列表特定于部署。您的列表会显示特定于您的 Contrail 云部署的输出。

与控制主机的所有 SSH 连接都需要从跳转主机完成,以确保使用正确的 SSH 密钥。

  1. (控制主机:非 VIP 节点到 VIP 节点)标识与虚拟机管理程序关联的所有虚拟机:

    从跳转主机运行以下命令:

    192.168.213.10 是以下示例中控制主机的地址。

  2. 关闭心脏起搏器服务。

    Pacemaker 可确保群集的高可用性,并在节点仲裁中断时采取措施。重新启动节点会中断节点的仲裁,这就是您需要在重新启动过程中使 Pacemaker 安静的原因。

    1. 在停止心脏起搏器服务之前禁用心脏起搏器资源:

      注意:

      应尽快恢复心脏起搏器,以保持 HA 群集的完整性。

    2. 使用以下命名格式(overcloud-ctrlXXX-N)标识节点。

      通过 SSH 连接到节点并停止 pcs 群集:

  3. 更新步骤 1 中返回的每个地址的包:
  4. 关闭之前更新的每个 VM:
  5. 从跳转主机禁用 VM 的自动启动:
  6. 关闭所有虚拟机后,请更新虚拟机管理程序。

    从跳转主机,建立与控制主机的 SSH 连接并运行更新:

  7. 为 VM 启用自动启动:
  8. 重新启动虚拟机管理程序。

    从跳转主机,建立与控制主机的 SSH 连接并运行更新:

    注意:

    重新启动后,虚拟机监控程序会启动与其关联的所有虚拟机以及 Pacemaker 服务。

    尽管 Pacemaker 服务在虚拟机监控程序重新启动后启动,但 Pacemaker 仍处于 群集停止 状态。验证所有服务正常运行后,必须启动 Pacemaker 群集。

  9. 在上述步骤中重新启动每个角色的实例后,验证所有服务是否正常运行。验证所有服务正常运行后,请对其余虚拟机管理程序和关联的 VM 重复上述过程。

重新启动云下和跳转主机:

重新启动云上层后,您需要重新启动云下并跳转主机。

  1. 关闭您的底层云。从底层:

  2. 从跳转主机以用户身份 contrail 关闭 Contrail 命令:

  3. 以用户身份 root 关闭并重新引导跳转主机:

重新引导跳转主机后,所有服务都会恢复。

验证仲裁和节点运行状况

目的

验证群集高可用性状态以及群集中所有控制节点的运行状况非常重要。此序列验证是否存在正常节点的仲裁,以及群集是否返回到正常运行状态。

行动

此过程需要在目标主机上执行。建立与节点的 SSH 连接,完成这些步骤,然后退出。

要验证 HA 群集的所有组件,请执行以下操作:

  1. 重新启动虚拟机管理程序后,以用户身份 contrail 从跳转主机运行系统状态检查。运行此检查,直到返回正常状态:

  2. 验证所有 VM 是否已正确启动,并且没有 VM 处于失败状态:

  3. 从底层对节点上的每个项目运行服务检查,直到返回正常状态:

    1. 检查 OpenStack 控制器。

      验证服务的运行状况 systemd

    2. 从 OpenStack 控制器验证 Pacemaker 的运行状况:

      验证:

      • 所有群集节点都处于联机状态。

      • 任何群集节点上都不会停止任何资源。

      • 没有失败的心脏起搏器操作。

    3. 从 OpenStack 控制器验证 Ceph 的状态:

  4. 验证 Contrail 控制器的状态。从 Contrail 控制器节点运行以下命令:

  5. 验证 Contrail Analytics 的状态。从 Contrail 分析节点运行以下命令:

  6. 验证 Contrail 分析数据库的状态:

  7. 验证 AppFormix 的状态:

    成功后,这将返回代码 200。返回的任何其他代码都应被视为失败。

    API 输出还包含 AppFormix 版本。这有助于验证是否安装了正确的版本。请参阅以下示例:

    注意:

    AppFormix 和 MongoDB 容器在重新启动后需要大约 60 秒才能正确启动并相互同步。

  8. 要检查 MongoDB 集群状态,请执行以下操作:

  9. 验证 ToR 服务节点 (TSN) 的状态:

    注意:

    TSN 节点是一项可选功能,您的环境中可能不存在。

  10. 在对下一个虚拟机管理程序执行下一个重新启动周期后,重复此过程。

    注意:

    在继续下一个虚拟机管理程序的重新启动过程之前,请始终验证服务和节点是否正常运行。

  11. 启动之前停止的起搏器群集。

    最后启动起搏器群集。这是在执行了所有更新和重新启动之后。此时所有节点都必须启动,以便起搏器检测到仲裁。这也假定所有验证和运行状况检查都以正确的状态返回。

    1. 启动起搏器群集(云XXX上 ctrl-N):

    2. 启用心脏起搏器服务:

重新启动 Ceph 存储节点

按照此过程正确重新启动 Ceph 存储节点。

首先,禁用 Ceph 存储集群,选择一个存储节点,然后重新启动它。重新启动后,验证节点的状态。对所有 Ceph 存储节点重复重新启动过程。启用群集,然后运行最终状态报告以验证群集运行状况是否正常。

  1. 从底层云登录到 OpenStack 控制器节点(云XXX上 ctrl-N),然后禁用 Ceph 存储集群重新平衡:
  2. 选择要重新启动的存储节点,然后从底层云中重新启动该节点:
  3. 等待存储节点重新启动,然后从 OpenStack 控制器验证状态:
    注意:

    群集需要时间才能恢复正常。在群集恢复正常状态之前,请勿继续此过程。

    检查 pgmap 是否将所有归置组 (PG) 报告为正常(活动且干净)。

  4. 重复步骤 2 和步骤 3,直到重新启动所有存储节点。仅当步骤 3 返回“活动+干净”状态时,才继续操作。
    注意:

    在继续重新启动其他存储节点之前,必须确保 Ceph 运行良好。

  5. 重新启动所有存储节点后,登录到 OpenStack 控制器节点,并启用 Ceph 存储群集重新平衡:
    注意:

    仅当步骤 3 返回“活动 + 干净”状态时,才重新平衡。

  6. 在 OpenStack 控制器上执行最终状态检查,以验证集群的运行状况:

重新启动计算节点

按照此过程正确重新启动计算节点。

首先,选择要重启的计算节点,然后将其禁用,以便它不会预配新实例。将所有实例迁移到另一个计算节点。重新启动计算节点,并在重新启动完成后启用它。

  1. stack 用户身份登录底层云。
  2. 查看部署中所有计算节点的列表。
  3. 找到要重新启动的计算节点。
  4. 从底层云中选择计算节点,然后将其禁用。
  5. 将所有实例迁移出计算节点。通过拉取列表来识别所有实例。
  6. 选择以下最符合您需求的方法之一来迁移实例。
    1. 将实例迁移到特定主机:
    2. 让我们 nova-scheduler 自动选择计算节点:
    3. 一次实时迁移所有实例:
  7. 等待迁移完成,然后确认迁移成功:
  8. 完成实例迁移,直到从计算节点中删除所有实例。
  9. 从底层云登录到计算节点,然后重新启动:
  10. 等到重新启动完成,然后启用计算节点:
  11. 验证计算节点是否已启用:
  12. 对部署中的所有剩余计算节点重复此操作。