6.11. 监控 OVN 数据库状态

您可以使用 ovs-appctl 命令监控 OVN 数据库服务器之间的连接。

先决条件

  • 使用 ML2/OVN 作为网络服务(neutron)默认机制驱动程序的 RHOSP 部署。

流程

  1. 以具有访问 OVN 容器所需的权限的用户身份登录到 Controller 主机。

    单一 Controller 主机上的服务器监控提供了验证基本集群健康状况和诊断许多类型问题所需的信息。对于非常全面的分析,请在所有 Controller 上执行这个步骤。

    示例

    $ ssh tripleo-admin@compute-0

  2. 运行 ovs-appctl 命令。

    示例:北向数据库

    $ ovs-appctl -t /var/lib/openvswitch/ovn/ovnnb_db.ctl cluster/status OVN_Northbound

    示例:南向数据库

    ovs-appctl -t /var/lib/openvswitch/ovn/ovnsb_db.ctl cluster/status OVN_Southbound

  3. 检查输出,它类似于以下输出:

    输出示例:南向数据库

    此示例输出是在服务器 1114 上生成的,此时是后续。

    1114
    Name: OVN_Southbound
    Cluster ID: 017a (017add73-58f1-4fcd-ae35-bacc0f07ce57)
    Server ID: 1114 (1114865d-4f42-443a-b758-d4431fc35748)
    Address: tcp:[fd00:fd00:fd00:2000::4a]:6644
    Status: cluster member
    Role: follower
    Term: 90
    Leader: ca6e
    Vote: ca6e
    
    Last Election started 27881511 ms ago, reason: leadership_transfer
    Last Election won: 27881503 ms ago
    Election timer: 16000
    Log: [51470, 51737]
    Entries not yet committed: 0
    Entries not yet applied: 0
    Connections: ->ca6e ->0f90 <-ca6e <-0f90
    Disconnections: 0
    Servers:
        1114 (1114 at tcp:[fd00:fd00:fd00:2000::4a]:6644) (self)
        ca6e (ca6e at tcp:[fd00:fd00:fd00:2000::18f]:6644) last msg 5141 ms ago
        0f90 (0f90 at tcp:[fd00:fd00:fd00:2000::2e0]:6644) last msg 22106129 ms ago

    诊断显示示例输出

    右点箭头(→)代表从这个服务器到另一个 A left-pointing 箭头(netobserv)的出站连接代表从其他服务器到这个服务器的入站连接。

    所有服务器都处于活动状态且已连接

    connections: ->ca6e ->0f90 <-ca6e <-0f90

    此三节点集群显示为健康。服务器 1114 具有与其他两台服务器的入站和出站连接,即 ca6e 和 0f90。

    服务器与集群断开连接

    connections: ->ca6e (->0f90)<-ca6e

    服务器 0f90 的传入连接没有列出。传出连接的括号表示出站消息到 0f90 失败。在大多数情况下,连接到集群中的任何服务器会提供足够信息来确定集群是否存在问题。在所有服务器上运行诊断提供了更详细的信息,并可能会检测您无法从单一服务器检测的问题。

    集群丢失仲裁
    Role: candidate
    ...
    Leader: unknown

    此服务器是候选服务器,领导机未知。

    ovsdb-server 在此节点上停机
    2024-03-27T22:10:28Z|00001|unixctl|WARN|failed to connect to /var/lib/openvswitch/ovn/ovnsb_db.ctl
    ovs-appctl: cannot connect to "/var/lib/openvswitch/ovn/ovnsb_db.ctl" (Connection refused)
    
    <exits with non-zero status>

    在这种情况下,您无法从单一服务器获取您需要的所有信息。例如,您无法确定其他服务器是否正在运行。如果服务器停机,请在另一台服务器上运行 ovs-appctl。

    从每个后续者中的最后一个消息到领导的时间(只在领导中更新)
    Servers:
        1114 (1114 at tcp:[fd00:fd00:fd00:2000::4a]:6644) next_index=51737 match_index=51736 last msg 224 ms ago
        ca6e (ca6e at tcp:[fd00:fd00:fd00:2000::18f]:6644) (self) next_index=51470 match_index=51736
        0f90 (0f90 at tcp:[fd00:fd00:fd00:2000::2e0]:6644) next_index=51737 match_index=51736 last msg 224 ms ago

    登录集群领导主机并运行 ovs-appctl。请注意,可以随时选择新的领导。

其他资源

  • ovs-appctl --help 命令