21.2. 调整 keepalived 以避免 VRRP 数据包丢失
如果单个主机上的高可用性(HA)路由器数量很高,当 HA 路由器发生时,虚拟路由器冗余协议(VRRP)消息可能会溢出 IRQ 队列。这个溢出会阻止 Open vSwitch (OVS)响应和转发这些 VRRP 信息。
为了避免 VRRP 数据包过载,您必须使用 Controller 角色的 ExtraConfig
部分中的 ha_vrrp_advert_int
参数来增加 VRRP 公告间隔。
流程
以 stack 用户身份登录 undercloud,再提供
stackrc
文件,以启用 director 命令行工具。示例
$ source ~/stackrc
创建自定义 YAML 环境文件。
示例
$ vi /home/stack/templates/my-neutron-environment.yaml
提示Red Hat OpenStack Platform Orchestration 服务(heat)使 用一组名为 template 的计划来安装和配置您的环境。您可以使用自定义环境文件 自定义 overcloud 的各个方面,这是为 heat 模板 提供自定义 的特殊模板。
在 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
运行
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
其他资源
- RFC 4541 中的 2.1.2 Data Forwarding Rules, Subsection 2
- 自定义 Red Hat OpenStack Platform 部署 指南中的环境文件 https://access.redhat.com/documentation/zh-cn/red_hat_openstack_platform/17.1/html/customizing_your_red_hat_openstack_platform_deployment/assembly_configuring-the-overcloud-with-the-orchestration-service#con_environment-files_understanding-heat-templates
- 自定义 Red Hat OpenStack Platform 部署 指南中的在 overcloud 创建中包含环境文件