21.6. 载入内核模块

Red Hat OpenStack Platform (RHOSP)中的一些功能需要加载某些内核模块。例如,OVS 防火墙驱动程序要求您加载 nf_conntrack_proto_gre 内核模块来支持两个虚拟机实例之间的 GRE 隧道。

通过使用特殊的编排服务(heat)参数 ExtraKernelModules,您可以确保 heat 存储有关 GRE 隧道等功能所需的内核模块的配置信息。之后,在常规模块管理过程中会加载这些所需的内核模块。

流程

  1. 在 undercloud 主机上,以 stack 用户身份登录,创建一个自定义 YAML 环境文件。

    示例

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

    提示

    Heat 使用一组称为 template 的计划来安装和配置您的环境。您可以使用自定义环境文件 自定义 overcloud 的各个方面,它是为 heat 模板 提供自定义 的特殊模板类型。

  2. parameter_defaults 下的 YAML 环境文件中,将 ExtraKernelModules 设置为您要载入的模块的名称。

    示例

    ComputeParameters:
      ExtraKernelModules:
        nf_conntrack_proto_gre: {}
    ControllerParameters:
      ExtraKernelModules:
        nf_conntrack_proto_gre: {}

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

    重要

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

    示例

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

验证

  • 如果 heat 正确载入了该模块,您应该在 Compute 节点上运行 lsmod 命令时看到输出:

    示例

    sudo lsmod | grep nf_conntrack_proto_gre