Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

在 KVM vMX交换机

阅读本主题可了解如何在 KVM 环境中安装虚拟 MX 路由器。

准备 Ubuntu 主机以安装vMX

要准备 Ubuntu 主机系统以安装 vMX(从 Junos OS 版本15.1F6):

  1. 满足最低硬件和软件要求中所述 的最低软件和操作系统要求

  2. 请参阅 下面的 升级内核 和 升级到 libvirt 1.2.19 部分。

  3. 如果您使用 Intel XL710 PCI-Express 系列卡,请确保更新驱动程序。请参阅 更新 X710 设备驱动程序 NIC

  4. 在 BIOS 中启用 Intel VT-d。(建议您与供应商验证流程,因为不同的系统有不同的方法可启用 VT-d。)

    请参阅在 Intel 网站上启用 VT-d 的过程。

  5. KSM_ENABLED=0 /etc/default/qemu-kvm中设置 禁用 KSM 。

  6. 编辑 /etc/modprobe.d/qemu-system-x86.conf 文件并添加到包含 的行中,禁用 APIC enable_apicv=0 虚拟化 options kvm_intel

    options kvm_intel nested=1 enable_apicv=0

  7. 重新启动主机以禁用 KSM 和 APIC 虚拟化。

  8. 如果您使用 SR-IOV,则必须执行此步骤。

    注意:

    您必须在 /etc/network/interfaces 中卸下任何之前使用外部网桥的安装,然后恢复到原始管理接口。继续安装之前,请确保 命令不会显示 ifconfig -a 外部网桥。

    要确定是否显示外部网桥,请使用 ifconfig 命令查看管理接口。要确认此接口用于外部桥接组,请使用 命令查看管理接口 brctl show 是否列为外部网桥。

    打开 intel_iommu=on /etc/default/grub 目录中的 启用 SR-IOV 功能。

    GRUB_CMDLINE_LINUX_DEFAULT="intel_iommu=on"

    intel_iommu=on 字符串附加到参数的任何现有 GRUB_CMDLINE_LINUX_DEFAULT 文本。

    运行 update-grub 命令,然后运行 reboot 命令。

  9. 为获得最佳性能,建议将主机上的"巨大页面"大小配置为 1G,并确保 VFP 的 NUMA 节点至少有 16 个 1G 巨大页面。要配置"巨大页面"的大小,请添加以下行(in /etc/default/grub):

    GRUB_CMDLINE_LINUX="default_hugepagesz=1G hugepagesz=1G hugepages=number-of-huge-pages"

    巨大的页面数量必须至少为 (16G * number-of-numa-sockets )。

  10. modprobe kvm-intel 安装 之前运行 vMX。

注意:

从 Junos OS 18.2 及更高版本开始,支持 Ubuntu 16.04.5 LTS 和 Linux 4.4.0-62 通用版。

为了满足最低软件和操作系统要求,您可能需要执行以下任务:

升级内核

注意:

无需升级 Ubuntu 16.04 版本的 Linux 内核。

注意:

如果您使用 Ubuntu 14.04.1 LTS(附带 3.19.0-80 通用版本),可以跳过此步骤。Ubuntu 14.04 的内核版本(Linux 3.13.0-24 通用)比推荐版本 (Linux 3.19.0-80-generic) 更低。

要升级内核:

  1. 确定内核版本。

  2. 如果版本不同于步骤 1 中所示的版本,请运行以下命令:

  3. 重新启动系统。

升级到 libvirt 1.2.19

注意:

Ubuntu 16.04.5 支持 Libvirt 版本为 1.3.1。无需升级 Ubuntu 16.04 中的 libvirt。

Ubuntu 14.04 支持 libvirt 1.2.2(适用于 VFP lite 模式)。如果您使用 VFP 性能模式或使用 VFP lite 模式部署多个 vMX 实例,则必须升级到 libvirt 1.2.19。

要升级 libvirt:

  1. 请确保安装最低硬件和软件要求 中列出的 所有软件包

  2. 使用 命令导航到 /tmp cd /tmp 目录。

  3. 使用 libvirt-1.2.19 命令获取源代码 wget http://libvirt.org/sources/libvirt-1.2.19.tar.gz

  4. 使用 命令解压缩和解压缩 tar xzvf libvirt-1.2.19.tar.gz 文件。

  5. 使用 命令 导航到 libvirt-1.2.19 cd libvirt-1.2.19 目录。

  6. 使用 命令阻止 service libvirt-bin stop libvirtd。

  7. 运行 ./configure --prefix=/usr --localstatedir=/ --with-numactl 命令。

  8. 运行 make 命令。

  9. 运行 make install 命令。

  10. 确保 libvirt 守护程序正在运行。(使用 service libvirt-bin start 命令再次启动。如果尚未启动,请使用 /usr/sbin/libvirtd -d 命令。)

  11. 验证 libvirtd 和 virsh 的版本为 1.2.19。

    系统显示代码编译日志。

注意:

如果在升级 libvirt vMX无法部署该网桥,使用 命令关闭 virbr0 网桥,然后使用 ifconfig virbr0 down brctl delbr virbr0 命令删除网桥。

更新 X710 设备NIC

如果您使用 Intel XL710 PCI-Express 系列 NIC,请确保在安装卡之前更新vMX。

要更新驱动程序:

  1. 以 root vMX下载软件包,然后解压缩软件包。
  2. 从安装目录中安装 i40e 驱动程序。
  3. 安装 Intel 最新的 i40evf 驱动程序。

    例如,以下命令下载和安装版本 1.4.15:

  4. 使用驱动程序更新 Initrd。
  5. 激活新驱动程序。

安装其他必需软件包

使用以下命令在 Ubuntu 中安装 python-netifaces 软件包。

准备 Red Hat Enterprise Linux 主机以安装vMX

要准备运行 Red Hat Enterprise Linux 的主机系统vMX,请执行以下版本的任务:

准备 Red Hat Enterprise Linux 7.3 主机以安装 vMX

要准备运行 Red Hat Enterprise Linux 7.3 的主机系统以安装vMX:

  1. 满足最低硬件和软件要求中所述的最低软件和操作系统要求
  2. 在 BIOS 中启用超线程和 VT-d。

    如果您使用 SR-IOV,在 BIOS 中启用 SR-IOV。

    我们建议您与供应商验证流程,因为不同系统有不同的方法访问和更改 BIOS 设置。

  3. 在 OS 安装期间,选择虚拟化主机虚拟化平台软件集合。

    如果在 GUI 安装期间未选择这些软件集合,请使用以下命令安装它们:

  4. 使用 Red Hat 帐户凭据注册主机。启用相应的存储库。

    要为企业 Linux 7 (epel) 存储库安装额外软件包:

  5. 更新当前安装的软件包。
  6. 为获得最佳性能,建议将"巨大页面"的大小配置为主机上的 1G,并确保 VFP 的 NUMA 节点至少有 16 个 1G 巨大页面。要配置"巨大页面"的大小,请使用以下步骤:

    对于 Red Hat:添加巨大的页面配置。

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

    巨大的页面数量必须至少为 (16G * number-of-numa-sockets )。

  7. 安装所需的软件包。
  8. (可选)如果您使用 SR-IOV,则必须安装这些软件包并启用 SR-IOV 功能。

    重新启动并再次登录。

  9. qemu-kvm二进制链接到qemu-system-x86_64文件。
  10. 设置正确的 Python 版本的路径并安装 PyYAML 库。
  11. 如果您已安装任何 Red Hat OpenStack 库,则必须更改用作 script/templates/red_{vPFE, vRE}-ref.xml <type arch='x86_64' machine='pc-0.13'>hvm</type> 机器类型。
  12. 禁用 KSM。

    要验证 KSM 是否已禁用,请运行以下命令。

    输出中的值 0 表示禁用 KSM。

  13. 编辑/etc/modprobe.d/kvm.conf文件并添加到包含可用选项的行中,禁用 APIC enable_apicv=n kvm_intel。

    您也可以使用 enable_apicv=0

    重新启动主机以禁用 KSM 和 APIC 虚拟化。

  14. 停止并禁用网络管理器。

    如果无法阻止 Network Manager,可以防止 resolv.conf 被命令 chattr +I /etc/resolv.conf 覆盖。

  15. 确保 QEMU 用户可读该构建目录。

    或者,您可以将 QEMU 配置为作为 root 用户运行,方法为 将 /etc/libvirt/qemu.conf 文件 user="root" 设置为 。

您现在可安装 vMX。

注意:

使用 命令安装 vMX sh vmx.sh -lv --install 时,您可能会看到内核版本不匹配警告。您可以忽略此警告。

准备 Red Hat Enterprise Linux 7.2 主机以安装 vMX

要准备运行 Red Hat Enterprise Linux 7.2 的主机系统以安装vMX:

  1. 满足最低硬件和软件要求中所述的最低软件和操作系统要求
  2. 在 BIOS 中启用超线程和 VT-d。

    如果您使用 SR-IOV,在 BIOS 中启用 SR-IOV。

    我们建议您与供应商验证流程,因为不同系统有不同的方法访问和更改 BIOS 设置。

  3. 在 OS 安装期间,选择虚拟化主机虚拟化平台软件集合。

    如果在 GUI 安装期间未选择这些软件集合,请使用以下命令进行安装:

  4. 使用 Red Hat 帐户凭据注册主机。启用相应的存储库。
  5. 更新当前安装的软件包。
  6. 安装所需的软件包。
  7. 为获得最佳性能,建议将主机上的"巨大页面"大小配置为 1G,并确保 VFP 的 NUMA 节点至少有 16 个 1G 巨大页面。要配置"巨大页面"的大小,请使用以下步骤:

    对于 Red Hat:添加巨大的页面配置。

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

    巨大的页面数量必须至少为 (16G * number-of-numa-sockets )。

  8. (可选)如果您使用 SR-IOV,则必须安装这些软件包并启用 SR-IOV 功能。

    重新启动并再次登录。

  9. qemu-kvm二进制链接到qemu-system-x86_64文件。
  10. 设置正确的 Python 版本的路径并安装 PyYAML 库。
  11. 如果您已安装任何 Red Hat OpenStack 库,则必须更改用作 script/templates/red_{vPFE, vRE}-ref.xml <type arch='x86_64' machine='pc-0.13'>hvm</type> 机器类型。
  12. 禁用 KSM。

    要验证 KSM 是否已禁用,请运行以下命令。

    输出中的值 0 表示禁用 KSM。

  13. 编辑/etc/modprobe.d/kvm.conf文件并添加到包含可用选项的行中,禁用 APIC enable_apicv=n kvm_intel。

    您也可以使用 enable_apicv=0

    重新启动主机以禁用 KSM 和 APIC 虚拟化。

  14. 停止并禁用网络管理器。

    如果无法阻止 Network Manager,可以防止 resolv.conf 被 命令 chattr +I /etc/resolv.conf 覆盖。

  15. 确保 QEMU 用户可读该构建目录。

    或者,您可以将 QEMU 配置为作为 root 用户运行,方法为 将 /etc/libvirt/qemu.conf 文件 user="root" 设置为 。

您现在可安装 vMX。

注意:

使用 命令安装 vMX sh vmx.sh -lv --install 时,您可能会看到内核版本不匹配警告。您可以忽略此警告。

准备 CentOS 主机以安装vMX

要准备运行 CentOS 的主机系统以安装vMX:

  1. 满足最低硬件和软件要求中所述 的最低软件和操作系统要求
  2. 在 BIOS 中启用超线程和VT-d。

    如果您使用 SR-IOV,在 BIOS 中启用 SR-IOV。

    我们建议您与供应商验证流程,因为不同系统有不同的方法访问和更改 BIOS 设置。

  3. 在 OS 安装期间,选择 虚拟化主机虚拟化平台 软件集合。

    如果在 GUI 安装期间未选择这些软件集合,请使用以下命令安装它们:

  4. 启用相应的存储库。
  5. 更新当前安装的软件包。
  6. 安装所需的软件包。
  7. (可选)如果您使用 SR-IOV,则必须安装这些软件包并启用 SR-IOV 功能。

    重新启动并再次登录。

  8. qemu-kvm 二进制链接到 qemu-system-x86_64 文件。
  9. 设置正确的 Python 版本的路径并安装 PyYAML 库。
    注意:

    如果安装时出错,请使用以下解决方案:

  10. 禁用 KSM。

    要验证 KSM 是否已禁用,请运行以下命令。

    输出中的值 0 表示禁用 KSM。

  11. 编辑 /etc/modprobe.d/kvm.conf 文件并添加到包含可用选项的行中,禁用 APIC enable_apicv=0 kvm_intel。

    重新启动主机以禁用 KSM 和 APIC 虚拟化。

  12. 停止并禁用网络管理器。

    如果无法阻止 Network Manager,可以防止 resolv.conf 被命令 chattr +I /etc/resolv.conf 覆盖。

  13. 确保 QEMU 用户可读该构建目录。

    或者,您可以将 QEMU 配置为作为 root 用户运行,方法为 将 /etc/libvirt/qemu.conf 文件 user=root 设置为 。

  14. 将此行添加到 /etc/配置文件 的末尾。

您现在可安装 vMX。

注意:

使用 命令安装 vMX sh vmx.sh -lv --install 时,您可能会看到内核版本不匹配警告。您可以忽略此警告。

为vMX安装软件

对于特定vMX,安装软件会有所不同。表列出了某些用例的样本vMX要求。

表 1:用例的样本配置(Junos OS 18.3 到 18.4 版中支持)

用例

最小 v CPU

最低内存

NIC设备类型

实验室模拟

高达 100 Mbps 的性能

4:VCP 3 为 1(VFP)

5 GB:1 GB(VCP)4 GB(VFP)

virtio

低带宽应用程序

高达 3 Gbps 的性能

10:1(VCP 9)(VFP)

20 GB:4 GB(VCP)16 GB(VFP)

virtio

高带宽应用或性能测试

提供 3 Gbps 及性能提升

10:1(VCP 9)(VFP)

20 GB 4 GB(VCP)16 GB(VFP)

SR-IOV

双虚拟路由引擎

注意:

在单独的主机上部署时,必须在主机之间设置连接,供 VCP 相互通信。

部署两个 VCP 实例时,用于特定用例的 VCP 资源数量翻倍。

部署两个 VCP 实例时,用于特定用例的 VCP 资源数量翻倍。

virtio 或 SR-IOV

表 2:用例的样本配置(Junos OS 18.1 到 18.2 版中支持)

用例

最小 v CPU

最低内存

NIC设备类型

实验室模拟

高达 100 Mbps 的性能

4:VCP 3 为 1(VFP)

5 GB:1 GB(VCP)4 GB(VFP)

virtio

低带宽应用程序

高达 3 Gbps 的性能

8:VCP 7 为 1(VFP)

16 GB:4 GB(VCP)12 GB(VFP)

virtio

高带宽应用或性能测试

提供 3 Gbps 及性能提升

8:VCP 7 为 1(VFP)

16 GB 4 GB(VCP)12 GB(VFP)

SR-IOV

双虚拟路由引擎

注意:

在单独的主机上部署时,必须在主机之间设置连接,供 VCP 相互通信。

部署两个 VCP 实例时,用于特定用例的 VCP 资源数量翻倍。

部署两个 VCP 实例时,用于特定用例的 VCP 资源数量翻倍。

virtio 或 SR-IOV

表 3:用例的样本配置(Junos OS 17.4 版中支持)

用例

最小 v CPU

最低内存

NIC设备类型

实验室模拟

高达 100 Mbps 的性能

4:VCP 3 为 1(VFP)

5 GB:1 GB(VCP)4 GB(VFP)

virtio

低带宽应用程序

高达 3 Gbps 的性能

8:VCP 7 为 1(VFP)

16 GB:4 GB(VCP)12 GB(VFP)

virtio

高带宽应用或性能测试

提供 3 Gbps 及性能提升

8:VCP 7 为 1(VFP)

16 GB 4 GB(VCP)12 GB(VFP)

SR-IOV

表 4:用例的样本配置(Junos OS版本15.1F6 17.3 中支持)

用例

最小 v CPU

最低内存

NIC设备类型

实验室模拟

高达 100 Mbps 的性能

4:VCP 3 为 1(VFP)

5 GB:1 GB(VCP)4 GB(VFP)

virtio

低带宽应用程序

高达 3 Gbps 的性能

8:VCP 7 为 1(VFP)

16 GB:4 GB(VCP)12 GB(VFP)

virtio

高带宽应用或性能测试

提供 3 Gbps 及超过 3 Gbps 的性能

8:VCP 7 为 1(VFP)

16 GB 4 GB(VCP)12 GB(VFP)

SR-IOV

表 5:用例的配置示例(在Junos OS版本15.1F4支持15.1F3)

用例

最小 v CPU

最低内存

NIC设备类型

实验室模拟

高达 100 Mbps 的性能

4:VCP 3 为 1(VFP)

10 GB:2 GB(VCP)8 GB(VFP)

virtio

低带宽应用程序

高达 3 Gbps 的性能

4:VCP 3 为 1(VFP)

10 GB:2 GB(VCP)8 GB(VFP)

virtio 或 SR-IOV

高带宽应用或性能测试

对于 3 Gbps 及性能(至少两个 10Gb 以太网端口)

高达 80 Gbps 的原始性能

8:VCP 7 为 1(VFP)

16 GB 4 GB(VCP)12 GB(VFP)

SR-IOV

表 6:用例配置示例(Junos OS 14.1 中支持)

用例

最小 v CPU

最低内存

NIC设备类型

实验室模拟

高达 100 Mbps 的性能

4:VCP 3 为 1(VFP)

8 GB:2 GB(VCP)6 GB(VFP)

virtio

低带宽应用程序

高达 3 Gbps 的性能

4:VCP 3 为 1(VFP)

8 GB:2 GB(VCP)6 GB(VFP)

virtio 或 SR-IOV

高带宽应用或性能测试

对于 3 Gbps 及性能(至少两个 10Gb 以太网端口)

高达 80 Gbps 原始性能

5:1(VCP 4)(VFP)

8 GB 2 GB(VCP)6 GB(VFP)

SR-IOV

注意:

从 Junos OS 18.4R1 版(Ubuntu 主机)和 Junos OS 版本 19.1R1(RedHat 主机)中,您可以将值设置为 vMX 配置文件中的 true,为网络接口卡使用最新未修改的驱动程序vMX use_native_drivers 安装

要针对vMX安装应用程序,请执行以下任务之一:

安装vMX用于实验室模拟

从 Junos OS 14.1 版开始,实验室模拟用例使用 virtio NIC。

要针对vMX模拟(低于 100 Mbps)应用用例安装测试接口:

  1. 以 root vMX下载软件包,然后解压缩软件包。

    tar xzvf package-name

  2. 将目录更改为未压缩数据包vMX位置。

    cd package-location

  3. 使用文本编辑器编辑 config/vmx.conf文本文件,以配置单个vMX实例。

    确保默认配置文件中正确设置vMX参数:

    device-type : virtio

    请参阅 指定vMX配置文件参数

  4. 运行 ./vmx.sh -lv --install 脚本以部署由 config/vmx.conf vMX指定的服务器实例,并为文件提供详细的级别日志记录。请参阅 部署和管理 vMX
  5. 从 VCP,为 VFP 启用精简模式。

以下是使用 virtio vMX类型进行实验室模拟的启动配置文件示例:

为vMX应用程序安装新组件

从 Junos OS 14.1 版开始,低带宽应用程序的用例使用 virtio 或 SR-IOV NIC。

要针对vMX(高达 3 Gbps)应用用例安装应用程序代码:

  1. 以 root vMX下载软件包,然后解压缩软件包。

    tar xzvf package-name

  2. 将目录更改为未压缩数据包vMX位置。

    cd package-location

  3. 使用文本编辑器编辑 config/vmx.conf文本文件,以配置单个vMX实例。

    确保默认配置文件中正确设置vMX参数:

    device-type: virtiodevice-type: sriov

    请参阅 指定vMX配置文件参数

  4. 运行 ./vmx.sh -lv --install 脚本以部署由 config/vmx.conf vMX指定的服务器实例,并为文件提供详细的级别日志记录。请参阅 部署和管理 vMX
  5. 从 VCP,为 VFP 启用性能模式。

以下是使用 virtio vMX应用程序的 virtio 设备类型启动配置文件的示例:

为vMX应用程序安装新组件

从 Junos OS 14.1 版开始,高带宽应用程序的用例将使用 SR-IOV NIC。

要针对vMX(3 Gbps 以上)应用应用安装标准:

  1. 以 root vMX下载软件包,然后解压缩软件包。

    tar xzvf package-name

  2. 将目录更改为未压缩数据包vMX位置。

    cd package-location

  3. 使用文本编辑器编辑 config/vmx.conf文本文件,以配置单个vMX实例。

    确保默认配置文件中正确设置vMX参数:

    device-type: sriov

    请参阅 指定vMX配置文件参数

  4. 运行 ./vmx.sh -lv --install 脚本以部署 由 config/vmx.conf 启动配置文件vMX实例,并为文件提供详细的级别日志记录。请参阅 部署和管理 vMX
  5. 从 VCP,为 VFP 启用性能模式。

以下是使用 SR-IOV 设备vMX启动配置文件的示例:

有关详细信息,请参阅 示例:在 KVM 上的vMX实例上启用 SR-IOV

安装带vMX引擎的路由引擎

您可以在 vMX 启动配置文件(默认文件为 config/vmx.conf)的 CONTROL_PLANE CONTROL_PLANE 部分创建主 路由引擎 (re0) 和备份 路由引擎 (re1) ,在 vMX 服务器上设置冗余路由引擎。

注意:

在单独主机上部署路由引擎时,必须在主机之间设置连接,供 VCP 相互通信。

从 18 Junos OS 18.1 版开始,vMX用于双路由引擎用例:

  1. 以 root vMX下载软件包,然后解压缩软件包。

    tar xzvf package-name

  2. 将目录更改为未压缩数据包vMX位置。

    cd package-location

  3. 使用 文本编辑器编辑 config/vmx.conf 文本文件,以配置vMX实例。

    默认 CONTROL_PLANE 部分与一个接口条目类似:

    要设置冗余路由引擎:

    1. 导航 CONTROL_PLANE 并指定正确的 v CPU 数 ( vcpus ) 和内存量 memory-mb ( )。
    2. 从Junos OS版本18.1R1,添加参数以路由引擎 deploy 主机上部署的实例。如果不指定此参数,则主机上将部署所有实例 (0,1)。

      在单独主机上部署路由引擎时,必须在主机之间设置连接,供 VCP 相互通信。

    3. 修改要设置的参数 instance : 0 之后 type 添加的接口条目 re0

      指定 ipaddrmacaddr 参数。此地址是 VCP VM (fxp0) 的管理 IP 地址。

    4. 添加另一个条目,但指定 以设置 参数后 instance : 1 re1 指定 console_port re1 instance : 1 参数。

      指定 ipaddrmacaddr 参数。此地址是 VCP VM (fxp0) 的管理 IP 地址。

    CONTROL_PLANE 主机上部署 re0 的修订部分类似于以下示例,包含两个接口条目:

    请参阅 指定vMX配置文件参数

  4. 运行 ./vmx.sh -lv --install 脚本以部署由 config/vmx.conf vMX指定的服务器实例,并为文件提供详细的级别日志记录。请参阅 部署和管理 vMX
  5. 从 VCP,为 VFP 启用性能模式。
  6. 在单独主机上部署路由引擎时,必须在主机之间设置连接,供 VCP 相互通信。

    例如,要通过接口(如 eth1)在两台主机之间设置连接(如 br-int-vmx1),在两个主机上运行以下命令:

以下是用于vMX主机上第一个路由引擎实例的启动配置文件示例:

使用vMX WAN 接口安装软件

从 Junos OS 17.2 版开始,混合 WAN 接口的用例会使用 virtio 和 SR-IOV 接口。样本配置要求与使用 SR-IOV 设备类型相同。

要安装vMX接口的接口:

  1. 以 root vMX下载软件包,然后解压缩软件包。

    tar xzvf package-name

  2. 将目录更改为未压缩数据包vMX位置。

    cd package-location

  3. 使用文本编辑器编辑 config/vmx.conf文本文件,以配置单个vMX实例。

    确保默认配置文件中正确设置vMX参数:

    device-type: mixed

    配置接口时,请确保在 SR-IOV 接口之前指定 virtio 接口。参数 type 指定接口类型。

    请参阅 指定vMX配置文件参数

  4. 运行 ./vmx.sh -lv --install 脚本以部署由 config/vmx.conf vMX指定的服务器实例,并为文件提供详细的级别日志记录。请参阅 部署和管理 vMX
  5. 从 VCP,为 VFP 启用性能模式。

以下是使用混合vMX启动配置文件的示例: