Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

在 OpenStack 中安装 vMX

阅读本主题可了解如何在 OpenStack 环境中安装 vMX 实例。

准备 OpenStack 环境以安装 vMX

运行任何 OpenStack 命令之前,请确保 openstackrc 文件是来源的。

要准备 OpenStack 环境以安装 vMX,请执行以下任务:

创建 neutron Networks

启动 vMX 实例之前,您必须创建 vMX 使用的 neutron 网络。公共网络是用于管理 (fxp0) 网络的 neutron 网络。WAN 网络是添加 vMX WAN 接口的中子网络。

要显示 neutron 网络名称,请使用 neutron net-list 命令。

注意:

您必须识别和创建 OpenStack 配置中所需的网络类型。

您可以使用这些命令作为创建公共网络的一种方式:

  • 例如:

  • 对于 virtio,您可以使用这些命令作为一种方法来创建 WAN 网络:

    例如:

  • 对于 SR-IOV,您可以使用这些命令作为一种方法来创建 WAN 网络:

    例如:

准备控制器节点

准备 vMX 的控制器节点

要准备控制器节点:

  1. scheduler_default_filters /etc/nova/nova.conf文件中编辑参数,配置控制器节点以启用"巨大页面"和 CPU 亲和性。确保存在以下过滤器:

    使用此命令重新启动时间表服务。

    • 对于红帽: systemctl restart openstack-nova-scheduler.service

    • 对于 Ubuntu(从 Junos OS 17.2R1 版开始): service nova-scheduler restart

  2. 更新默认设置。
    注意:

    我们建议使用这些默认值,但如果它们适合您的环境,您可以使用不同的值。确保默认默认默认设置具有足够的分配资源。

    使用 命令验证 nova quota-defaults 更改。

  3. 确保热包装为 5.0.1-6 或更高版本。此软件包是rhel-7-server-openstack-8-rpms 的一部分

    使用 命令验证 rpm -qa | grep heat 版本。

    使用此命令更新热包。

    • 对于红帽: yum update openstack-heat-engine

    • 对于 Ubuntu(从 Junos OS 17.2R1 版开始): apt-get install heat-engine

  4. 确保已安装 lsb(redhat-lsb-core 或 lsb-release)和 numactl 软件包。
    • 对于红帽:

    • 对于 Ubuntu(从 Junos OS 17.2R1 版开始):

为 virtio 接口配置控制器节点

要配置 virtio 接口:

  1. vlan type_drivers /etc/neutron/plugins/ml2/ml2_conf.ini文件中添加参数,以启用 VLAN 机制驱动程序。
  2. 添加以下行,将桥接映射添加到/etc/neutron/plugin/ml2/ml2_conf.ini文件中:

    例如,使用以下设置为映射到 OVS 网桥 br-vlan 的物理网络 physnet1 添加桥接映射。

  3. /etc/neutron/plugins/ml2/ml2_conf.ini文件中配置用于物理网络的 VLAN 范围,其中是您为 physical-network-name virtio WAN网络创建的 neutron 网络的名称。

    例如,使用以下设置配置用于物理网络 physnet1 的 VLAN 范围。

  4. 重新启动 neutron 服务器。
    • 对于红帽: systemctl restart neutron-server

    • 对于 Ubuntu(从 Junos OS 17.2R1 版开始): service neutron-server restart

  5. 添加已映射到物理网络和 virtio 接口 (eth2) 的 OVS 网桥。

    例如,使用以下命令添加 OVS 网桥 br-vlan 和 eth2 接口:

为 SR-IOV 接口配置控制器节点

注意:

如果您有多个 SR-IOV 接口,则需要为每个附加的 SR-IOV 接口提供一个专用物理 10G 接口。

注意:

在 SRIOV 模式中,使用 VLAN 提供商 OVS 网络上 virtio 接口,将启用路由引擎 (RE) 和数据包转发引擎之间的通信。因此,给定物理接口不能同时属于 VirtIO 和 SR-IOV 网络。

要配置 SR-IOV 接口,请进行以下操作:

  1. 编辑/etc/neutron/plugins/ml2/ml2_conf.ini文件以作为机制驱动程序添加,并添加用于物理网络的 sriovnicswitch VLAN 范围。

    例如,使用以下设置配置用于物理网络 physnet2 的 VLAN 范围。

    如果添加更多 SR-IOV 端口,则必须添加每个物理网络使用的 VLAN 范围(用逗号分隔)。例如,在配置两个 SR-IOV 端口时,使用以下设置。

  2. 编辑/etc/neutron/plugins/ml2/ml2_conf_sriov.ini文件以添加关于 PCI 设备的详细信息。
  3. –-config-file /etc/neutron/plugins/ml2/ml2_conf_sriov.ini 突出显示添加至 neutron 服务器文件。
    • 对于红帽:

      /usr/lib/systemd/system/neutron-server.service 文件编辑为突出显示。

      使用 systemctl restart neutron-server 命令重新启动服务。

    • 对于 Ubuntu(从 Junos OS 17.2R1 版开始):

      突出显示方式编辑 /etc/init/neutron-server.conf 文件。

      使用 service neutron-server restart 命令重新启动服务。

  4. 为允许正确计划 SR-IOV 设备,计算时间表必须使用带 PciPassthroughFilter过滤器的 Filter Scheduler。

    确保 PciPassthroughFilter 过滤器配置在控制器节点上的 /etc/nova/nova.conf 文件中。

    重新启动时间表服务。

    • 对于红帽: systemctl restart openstack-nova-scheduler

    • 对于 Ubuntu(从 Junos OS 17.2R1 版开始): service nova-scheduler restart

准备计算节点

准备 vMX 的计算节点

注意:

您不再需要配置计算节点以将元数据传递给 vMX 实例,方式为将参数包括 config_drive_format=vfat 到 /etc/nova/nova.conf 文件中。

要准备计算节点:

  1. 配置每个计算节点以支持启动时和重新启动时的巨大页面。
    • 对于 Red Hat:添加巨大的页面配置。

      使用 mount | grep boot 命令确定启动设备名称。

    • 对于 Ubuntu(从 Junos OS 17.2R1 版开始):在参数下将庞大的页面配置添加到 /etc/default/grub GRUB_CMDLINE_LINUX_DEFAULT

    重新启动后,验证是否分配了"巨大页面"。

    "巨大页面"的数量取决于 VFP 的内存量、"巨大页面"的大小以及 VFP 实例的数量。要计算"大页面"的数量: ( memory-for-vfp / huge-pages-size ) * number-of-vfp

    例如,如果使用 12G 内存和 2M 大页面大小在性能模式下运行四个 vMX 实例(四个 VCP),则按公式计算得出的大页面数为 (12G/2M)*4 或 24576。

    注意:

    从 Junos OS 15.1F6 版和更高版本开始,性能模式是默认操作模式。有关详细信息,请参阅 启用性能模式或 Lite 模式

    注意:

    确保计算节点上具有足够的物理内存。它必须大于分配给"巨大页面"的内存量,因为不使用"巨大页面"的任何其他应用程序均受"巨大页面"分配后剩余的内存量所限制。例如,如果分配 24576 个庞大的页面和 2M 巨大的页面大小,则需要 24576*2M 或 48G 内存来表示庞大的页面。

    您可以使用 命令并查看总内存和使用的内存值,以验证不使用"大页面"的其他应用程序还有多少 vmstat -s 内存。

  2. /etc/default/grub文件中启用 GRUMU。将 intel_iommu=on 字符串附加到参数的任何现有 GRUB_CMDLINE_LINUX 文本。

    重新生成 grub 文件。

    • 对于红帽: grub2-mkconfig -o /boot/grub2/grub.cfg

    • 对于 Ubuntu(从 Junos OS 17.2R1 版开始): update-grub

    重新启动计算节点。

  3. 为 Virtio 网络添加网桥,并配置 physnet1:

    例如,添加了一个 OVS br-vlan 网桥。(与控制器上的 br-vlan bridge_mappings.ini ml2_conf 中添加的相同。请参阅 为 virtio 接口配置控制器节点)。要桥接,请添加 eth2 接口,可用于 VM 之间的 Virtio 通信。

    在 /etc/neutron/plugins/ml2/openvswitch_agent.ini 中,附加 physnet1:br-vlan 字符串:

    重新启动 neutron 服务。

    • Redhat:

      systemctl restart neutron-openvswitch-agent.service

      systemctl restart openstack-nova-compute.service

    • Ubuntu

      service nova-compute restart

      service neutron-plugin-openvswitch-agent restart

为 SR-IOV 接口配置计算节点

注意:

如果您有多个 SR-IOV 接口,则需要为每个附加的 SR-IOV 接口提供一个物理 10G 以太网 NIC 卡。

要配置 SR-IOV 接口,请进行以下操作:

  1. 加载修改后的 IXGBE 驱动程序。

    在编译驱动程序之前,请确保已安装 gcc 和 make。

    • 对于红帽:

    • 对于 Ubuntu(从 Junos OS 17.2R1 版开始):

    卸载默认 IXGBE 驱动程序,编译修改的瞻博网络驱动程序,并加载修改后的 IXGBE 驱动程序。

    验证 eth4 接口上的驱动程序版本。

    例如,在下面的示例中,命令显示驱动程序版本 (3.19.1):

  2. 在物理设备上创建虚拟功能 (VF)。vMX 当前为每个 SR-IOV 接口仅支持一个 VF(例如 eth4)。

    指定每个 NIC 上的 VF 数量。以下行指定 eth2 没有 VF(第一个 NIC)和一个 eth4 VF(带 SR-IOV 接口的第二个 NIC)。

    要验证 VF 是否创建,命令 ip link show eth4 的输出中包含以下行:

    要确保接口已启动且 SR-IOV 流量可以通过它们,请执行这些命令来完成配置。

  3. 安装 SR-IOV 代理。
    • 对于红帽: sudo yum install openstack-neutron-sriov-nic-agent

    • 对于 Ubuntu(从 Junos OS 17.2R1 版开始): sudo apt-get install neutron-plugin-sriov-agent

  4. 添加以下行,将物理设备映射添加到/etc/neutron/plugin/ml2/sriov_agent.ini文件中:

    例如,使用以下设置为映射到 SR-IOV 接口 eth4 的物理网络 physnet2 添加桥接映射。

    如果添加更多 SR-IOV 端口,则必须为每个物理网络添加桥接映射(用逗号分隔)。例如,为物理网络 physnet3 添加 SR-IOV 接口 eth5 时,请使用以下设置。

  5. 编辑 SR-IOV 代理服务文件以突出显示 –-config-file /etc/neutron/plugins/ml2/sriov_agent.ini 添加。
    • 对于红帽:

      /usr/lib/systemd/system/neutron-sriov-nic-agent.service 文件编辑为突出显示。

      启用并启动 SR-IOV 代理。

      使用 systemctl status neutron-sriov-nic-agent.service 命令验证代理是否已成功启动。

    • 对于 Ubuntu(从 Junos OS 17.2R1 版开始):

      突出显示方式编辑 /etc/init/neutron-plugin-sriov-agent.conf 文件。

      确保 /etc/neutron/plugins/ml2/sriov_agent.ini 具有正确的权限,neutron 是此文件的组。

      使用 service neutron-plugin-sriov-agent start 命令启动 SR-IOV 代理。

      使用 service neutron-plugin-sriov-agent status 命令验证代理是否已成功启动。

  6. 编辑 /etc/nova/nova.conf 文件,为 SR-IOV设备添加 PCI 通过列表条目。

    例如,此条目会为物理网络 physnet2 的 SR-IOV 接口 eth4 添加一个条目。

    如果添加更多 SR-IOV 端口,则必须为每个 SR-IOV 接口添加 PCI 通过允许列表条目(用逗号分隔)。例如,为物理网络 physnet3 添加 SR-IOV 接口 eth5 时,请使用以下设置。

    重新启动计算节点服务。

    • 对于红帽: systemctl restart openstack-nova-compute

    • 对于 Ubuntu(从 Junos OS 17.2R1 版开始): service nova-compute restart

安装 vMX

准备 OpenStack 环境后,您必须为 VCP 和 VFP VM 创建 nova 风格和概览图像。脚本根据启动配置文件中提供的信息创建风格和图像。

设置 vMX 配置文件

在启动配置文件中定义了配置 vMX 所需的参数。

要设置配置文件:

  1. 从 vMX 页面下载vMX KVM 软件包,然后解压缩软件包。

    tar xvf package-name

  2. 将目录更改为文件的位置。

    cd package-location/openstack/scripts

  3. 使用文本编辑器编辑 vmx.conf文本文件,为单个 vMX 实例营造不同风格。

    根据您的要求,确保 vMX 配置文件中正确设置以下参数:

    • re-flavor-name

    • pfe-flavor-name

    • vcpus

    • memory-mb

    有关 参数的信息, 请参阅 指定 vMX 配置文件参数 。

    vMX 启动配置文件示例

    以下是用于 OpenStack 的 vMX 启动配置文件示例:

指定 vMX 配置文件参数

配置 vMX 所需的参数在启动配置文件 (scripts/vmx.conf) 中定义。启动配置文件会生成一个用于创建各种方式的文件。要使用不同的或参数创建新风格, vcpus memory-mb 必须先更改相应的或参数,然后才能 re-flavor-name pfe-flavor-name 创建新方式。

要自定义配置,请执行以下任务:

配置主机

要配置主机,请导航到 HOST 并指定以下参数:

  • virtualization-type— 操作模式;必须为 openstack

  • compute—(可选)用于以逗号分隔列表运行 vMX 实例的计算节点的名称。如果指定了此参数,则必须是一个有效的计算节点。如果指定了此参数,则以不同方式启动的 vMX 实例只会在指定的计算节点上运行。

    如果未指定此参数,则 nova 虚拟机管理程序列表命令的输出将提供要运行 vMX 实例的计算节点列表。

配置 VCP 虚拟机

要配置 VCP VM,必须提供特色名称。

注意:

我们为参数推荐唯一 re-flavor-name 值,因为 OpenStack 可以创建多个名称相同的条目。

要配置 VCP VM,请导航 CONTROL_PLANE 并指定以下参数:

  • re-flavor-name—nova 风格的名称。

  • vcpus— VCP 的 v CPU 数量;最低为 1。

    注意:

    如果更改了该值,则必须先更改该值,然后再运行 re-flavor-name 脚本以创建不同风格。

  • memory-mb— VCP 的内存量;最低为 4 GB。

    注意:

    如果更改了该值,则必须先更改该值,然后再运行 re-flavor-name 脚本以创建不同风格。

配置 VFP 虚拟机

要配置 VFP VM,必须提供名称。根据您的要求,您可能需要更改 v CPU 的内存和数量。请参阅 最低硬件要求 ,了解最低硬件要求。

要配置 VFP VM,请导航 FORWARDING_PLANE 并指定以下参数:

  • pfe-flavor-name—nova 风格的名称。

  • memory-mb— VFP 的内存量;最小为 12 GB(性能模式)和 4 GB(精简模式)。

    注意:

    如果更改了该值,则必须先更改该值,然后再运行 pfe-flavor-name 脚本以创建不同风格。

  • vcpus— VFP 的 v CPU 数量;最小为 7(性能模式)和 3(精简模式)。

    注意:

    如果指定不到 7 个 v CPU,VFP 将自动切换到精简模式。

    注意:

    如果更改了该值,则必须先更改该值,然后再运行 pfe-flavor-name 脚本以创建不同风格。

创建 OpenStack 特色

要为 VCP 和 VFP 创建不同风格,您必须在 vMX 启动配置文件 (vmx.conf) 上执行脚本

要创建 OpenStack 特色:

  1. 使用 vmx_osp_create_flavor.py 启动配置文件运行 ,以生成 vmx_osp_flavors.sh 可产生不同风格的文件。

    ./vmx_osp_create_flavor.py vmx.conf

  2. 执行 以 vmx_osp_flavors.sh 创建特色。

    sh vmx_osp_flavors.sh

安装 VCP 和 VFP 的 vMX 映像

要安装 VCP 和 VFP 的 vMX OpenStack 概览映像,可以执行 vmx_osp_images.sh 脚本。该脚本以 qcow2 格式添加 VCP 映像,以 vmdk 格式添加 VFP 文件。

要安装 VCP 和 VFP 映像:

  1. 从 vMX 页面下载vMX KVM 软件包,然后解压缩软件包。

    tar xvf package-name

  2. 从未压缩的 vMX 软件包中验证软件映像的位置。请参阅vMX 软件包内容

    ls package-location/images

  3. 将目录更改为 vMX OpenStack 脚本文件的位置。

    cd package-location/openstack/scripts

  4. 运行 vmx_osp_images.sh 脚本以安装概览图像。

    sh vmx_osp_images.sh vcp-image-name vcp-image-location vfp-image-name vfp-image-location

    注意:

    您必须按此顺序指定参数。

    • vcp-image-name—概览图像的名称。

    • vcp-image-location—junos-vmx-x86-64*.qcow2文件的绝对路径,用于启动 VCP。

    • vfp-image-name—概览图像的名称。

    • vfp-image-location—vFPC-*.img文件的绝对路径,用于启动 VFP。

例如,此命令会从 /var/tmp/junos-vmx-x86-64-17.1R1.8.qcow2 文件和 VFP 映像作为 fpc-test 从 /var/tmp/vFPC-20170117.img 文件中重新安装 VCP 映像。

sh vmx_osp_images.sh re-test /var/tmp/junos-vmx-x86-64-17.1R1.8.qcow2 fpc-test /var/tmp/vFPC-20170117.img

要查看概览图像,请使用 glance image-list 命令。

启动 vMX 实例

要启动 vMX 实例,请执行以下任务:

修改 Junos OS 初始配置

启动 vMX 实例时,将加载 package-location /openstack/vmx-components/vms/vmx_baseline.conf 中发现的 Junos OS 配置文件。如果您需要更改此配置,请对此文件进行更改,然后再启动 vMX。

注意:

如果您创建自己的文件或移动该文件,请确保 vmx_baseline.conf package-location /openstack/vmx-components/vms/re.yaml 引用正确的路径。

启动 vMX 实例

要创建并启动 vMX 实例,

  1. package-location /openstack/1vmx.env环境文件中修改这些参数,用于配置。环境文件采用 YAML 格式,从 Junos OS 版本 17.4R1 开始。
    • net_id1—用于 WAN 端口的现有 neutron 网络的网络 ID。使用 neutron net-list 命令显示网络 ID。

    • public_network—用于管理 (fxp0) 端口的现有 neutron 网络的网络 ID。使用 neutron net-list | grep public 命令显示网络 ID。

    • fpc_img—将此参数更改为 linux-img 。VFP 概览图像的名称;与运行脚本 vfp-image-name 以安装 vMX 映像时指定的参数相同。

    • vfp_image—VFP 概览图像的名称;与运行脚本以安装 vMX 映像时指定的参数相同( vfp-image-name 适用于 Junos OS 17.3R1 和早期版本)。

    • fpc_flav—将此参数更改为 linux-flav 。VFP 新风格的名称;与 pfe-flavor-name vMX 配置文件中指定的参数相同。

    • vfp_flavor— VFP 新一型技术的名称;与 vMX 配置文件中指定的参数相同( pfe-flavor-name 适用于 Junos OS 版本 17.3R1 和更早版本)。

    • junos_flav— VCP 新一型技术的名称;与 re-flavor-name vMX 配置文件中指定的参数相同。

    • vcp_flavor— VCP 新一型技术的名称;与 vMX 配置文件中指定的参数相同( re-flavor-name 适用于 Junos OS 版本 17.3R1 和更早版本)。

    • junos_img— VCP 概览图像的名称;与运行脚本 vcp-image-name 以安装 vMX 映像时指定的参数相同。

    • vcp_image— VCP 概览图像的名称;与运行脚本以安装 vMX 映像时指定的参数相同( vcp-image-name 适用于 Junos OS 17.3R1 和早期版本)。

    • project_name—任何项目名称。所有资源都将使用此名称作为前缀。

    • gateway_ip—网关 IP 地址。

  2. 使用 命令启动 vMX heat stack-create –f 1vmx.yaml –e 1vmx.env vmx-name 实例。

    此配置示例从一个 WAN 端口和一个 FPC 启动单个 vMX 实例。

  3. 验证是否使用 命令创建 vMX heat stack-list | grep vmx-name 实例。
  4. 验证 VCP 和 VFP VM 是否与 命令 nova-list 一同存在。
  5. 使用 命令访问 VCP 或 VFP VM,命令输出中显示的 nova get-vnc-console nova-id novnc nova-id 实例 ID nova-list 在哪里。
注意:

使用 request system halt 命令重新启动主机服务器之前,必须关闭 vMX 实例。