21.2. 调整 keepalived 以避免 VRRP 数据包丢失


如果单个主机上的高可用性(HA)路由器数量很高,当 HA 路由器发生时,虚拟路由器冗余协议(VRRP)消息可能会溢出 IRQ 队列。这个溢出会阻止 Open vSwitch (OVS)响应和转发这些 VRRP 信息。

为了避免 VRRP 数据包过载,您必须使用 Controller 角色的 ExtraConfig 部分中的 ha_vrrp_advert_int 参数来增加 VRRP 公告间隔。

流程

  1. 以 stack 用户身份登录 undercloud,再提供 stackrc 文件,以启用 director 命令行工具。

    示例

    $ source ~/stackrc

  2. 创建自定义 YAML 环境文件。

    示例

    $ vi /home/stack/templates/my-neutron-environment.yaml

    提示

    Red Hat OpenStack Platform Orchestration 服务(heat)使 用一组名为 template 的计划来安装和配置您的环境。您可以使用自定义环境文件 自定义 overcloud 的各个方面,这是为 heat 模板 提供自定义 的特殊模板。

  3. 在 YAML 环境文件中,使用 ha_vrrp_advert_int 参数以及特定于您的站点的值来增加 VRRP 广告间隔。(默认值为 2 秒。)

    您还可以为 gratuitous ARP 消息设置值:

    ha_vrrp_garp_master_repeat
    过渡到 master 状态后一次发送的 gratuitous ARP 消息数量。(默认值为 5 消息。)
    ha_vrrp_garp_master_delay

    在以 master 状态接收较低优先级广告后,第二个 gratuitous ARP 消息的延迟。(默认值为 5 秒。)

    示例

    parameter_defaults:
      ControllerExtraConfig:
        neutron::agents::l3::ha_vrrp_advert_int: 7
        neutron::config::l3_agent_config:
          DEFAULT/ha_vrrp_garp_master_repeat:
            value: 5
          DEFAULT/ha_vrrp_garp_master_delay:
            value: 5

  4. 运行 openstack overcloud deploy 命令,并包含核心 heat 模板、环境文件以及新的自定义环境文件。

    重要

    但是,环境文件的顺序非常重要,因为后续环境文件中定义的参数和资源更为优先。

    示例

    $ openstack overcloud deploy --templates \
    -e [your-environment-files] \
    -e /usr/share/openstack-tripleo-heat-templates/environments/services/my-neutron-environment.yaml

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.