Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

准备 Junos 节点切片设置

注意:

本部分中的主题仅适用于使用外部服务器模型设置的 Junos 节点切片。对于机箱内 Junos 节点切片,请继续转到将 MX 系列路由器配置为在机箱内模式下运行

在设置 Junos 节点切片(外部服务器型号)之前,您需要执行一些准备步骤,例如连接服务器和路由器、安装其他软件包、配置 x86 服务器 Linux GRUB 以及设置 x86 服务器 CPU 的 BIOS。

连接服务器和路由器

要设置 Junos 节点切片,您必须将一对外部 x86 服务器直接连接到 MX 系列路由器。除了 Linux 主机的管理端口外,每台服务器还需要两个额外的端口分别用于为 JDM 和 GNF VM 提供管理连接,以及两个端口用于连接到 MX 系列路由器。

注意:
  • 当 MX 系列路由器上启用了 Junos 节点切片时,请勿将环路电缆连接到外部控制板端口。此外,请确保外部控制板端口未连接到另一个控制板的外部端口。

  • 为了防止主机服务器受到任何 SSH 暴力攻击,我们建议您在主机服务器上添加 IPtables 规则。下面是一个示例:

    上例中的规则用于对传入 SSH 连接进行速率限制。它允许您在进行特定次数的 SSH 尝试时,在一段时间内阻止来自远程 IP 的连接。如上例所示,尝试 10 次后,来自远程 IP 的连接将被阻止 120 秒。

图 1 显示了 MX2020 路由器如何连接到一对 x86 外部服务器。

图 1:MX2020 路由器 - 外部 x86 服务器连接 Network diagram of MX 2020 system management setup with two servers, Server 0 and Server 1, connected to management interfaces and control boards CB0 and CB1. Connections include IPMI, Linux Host Management, JDM Management, GNF-1-n Management, em1, em2, em3, p3p1, p3p2, XGE-0, XGE-1, routing engines RE0 and RE1, and console serial ports, all linked to a management network for remote user access.

根据图 1 中的示例, em1em2em3 x86 服务器上分别是用于管理 Linux 主机、JDM 和 GNF 的端口。 p3p1 p3p2每台服务器上都有两个 10 Gbps 端口,它们连接到 MX 系列路由器的控制板。

注意:

要在控制板上启用 XGE 端口以进行 Junos 节点切片,必须配置 set chassis network-slicesset chassis network-slices guest-network-functions

注意:

服务器上的接口名称(如 em1p3p1 可能因服务器硬件配置而异。

有关 图 1 中提到的 MX 系列路由器控制板 (控制板) 的 XGE 端口的更多信息,请参阅:

注意:

使用命令 show chassis ethernet-switch 查看这些 XGE 端口。在 MX960 上的命令输出中,请参阅端口号 2426 查看 SCBE2 上的这些端口。在 MX2010 和 MX2020 上的命令输出中,请参阅端口号 26 ,并在 27 控制板路由引擎 (控制板-RE) 上查看这些端口。

x86 服务器 CPU BIOS 设置

对于 Junos 节点切片,应设置 x86 服务器 CPU 的 BIOS,如下所示:

  • 超线程被禁用。

  • CPU 内核始终以其额定频率运行。

  • CPU 内核设置为通过限制 C 状态的使用来减少抖动。

要查找服务器上 CPU 内核的额定频率,请运行 Linux host 命令 lscpu,然后检查字段 Model name的值。请参见以下示例:

要查找 CPU 内核当前运行的频率,请运行 Linux host 命令 grep MHz /proc/cpuinfo 并检查每个 CPU 内核的值。

在将 BIOS 设置为在其额定频率下运行 CPU 内核的服务器上,CPU 内核的观察值将都与额定频率匹配(或非常接近它),如以下示例所示。

在未将 BIOS 设置为以额定频率运行 CPU 内核的服务器上,观察到的 CPU 内核值与额定频率不匹配,并且这些值也可能随时间变化(您可以通过重新运行命令来检查这一点)。

要将 x86 服务器 BIOS 系统配置文件设置为以额定频率运行 CPU 内核、减少抖动并禁用超线程,请咨询服务器制造商,因为这些设置因服务器型号和 BIOS 版本而异。

实现此目的的典型 BIOS 系统配置文件设置包括:

  • Logical processor:设置为“已禁用”。

  • CPU power management:设置为“最大性能”。

  • Memory frequency:设置为“最大性能”。

  • Turbo boost:设置为“已禁用”。

  • C-states and C1E state:设置为“已禁用”。

  • Energy efficient policy:设置为“性能”。

  • Monitor/Mwait:设置为“已禁用”。

可能需要自定义 BIOS 系统配置文件才能设置这些值。

x86 服务器 Linux GRUB 配置

在 Junos 节点切片中,系统会为每个 GNF 虚拟机分配专用 CPU 内核。此分配由瞻博网络设备管理器 (JDM) 管理。在每台 x86 服务器上,JDM 要求将除 CPU 内核 0 和 1 之外的所有 CPU 内核保留用于 Junos 节点切片,实际上,这些内核与其他应用程序隔离。CPU 核心 2 和 3 专用于 GNF 虚拟磁盘和网络 I/O。CPU 核心 4 及更高版本可用于分配给 GNF VM。要保留这些 CPU 内核,您必须在 Linux GRUB 配置中设置 isolcpus 参数,如以下过程所述:

对于运行 Red Hat Enterprise Linux (RHEL) 7.3 的 x86 服务器,请执行以下步骤:

  1. 确定 x86 服务器上的 CPU 内核数。确保超线程已禁用,如 x86 服务器 CPU BIOS 设置中所述。您可以使用 Linux 命令 lscpu 查找 CPU 核心的总数,如以下示例所示:

    这里有 24 个内核 (12 x 2)。CPU 内核编号为内核 0 到内核 23。

  2. 根据此示例, isolcpus 必须将参数设置为“isolcpus=4-23”(隔离除核心 0、1、2 和 3 之外的所有 CPU 核心,以供 GNF VM 使用)。由于以下原因,参数 isolcpus 设置为“isolcpus=4-23”:

    • 在每台 x86 服务器上,JDM 要求将除 CPU 内核 0 和 1 之外的所有 CPU 内核保留用于 Junos 节点切片。

    • CPU 核心 2 和 3 专用于 GNF 虚拟磁盘和网络 I/O。

    注意:

    之前, isolcpus 使用参数“isolcpus=2-23”。现在已更新为“isolcpus=4-23”。有关详细信息,请参阅 KB35301

    要在 Linux GRUB 配置文件中设置isolcpus参数,请按照特定于主机操作系统版本的过程进行操作。对于 RHEL 7,此 Red Hat 文档中的将 CPU 与进程调度器隔离一节中介绍了该过程。对于 RHEL 9,有关修改内核命令行的信息在本 Red Hat 文档中进行了描述。

    程序摘要如下:

    1. 编辑 Linux GRUB 文件 /etc/default/grub 以将参数追加 isolcpus 到变量 GRUB_CMDLINE_LINUX,如以下示例所示:

    2. 运行 Linux shell 命令 grub2-mkconfig 以生成更新的 GRUB 文件,如下所示:

      如果您使用的是旧版 BIOS,请发出以下命令:

      如果使用的是 UEFI,请发出以下命令:

      在 RHEL 9.3 及更高版本中,为旧版 BIOS 或 UEFI 系统发出以下命令:

    3. 重新启动 x86 服务器。

    4. 通过检查 Linux 命令cat /proc/cmdline的输出,验证isolcpus现在是否已设置参数,如以下示例所示:

对于运行 Ubuntu 24.04 的 x86 服务器,请执行以下步骤:

  1. 确定 x86 服务器上的 CPU 内核数。确保超线程已禁用,如 x86 服务器 CPU BIOS 设置中所述。您可以使用 Linux 命令 lscpu 查找 CPU 内核总数。

  2. 编辑 /etc/default/grub 文件以将 isolcpus 参数附加到变量 GRUB_CMDLINE_LINUX_DEFAULT,如以下示例所示:

  3. 要更新更改,请运行 update-grub

  4. 重新启动服务器。

  5. 通过检查 Linux 命令cat /proc/cmdline的输出来验证isolcpus参数是否已设置。

更新适用于 x86 服务器的英特尔 x710 NIC 驱动程序

如果您使用的是英特尔 X710 NIC,请确保在 x86 服务器上安装了最新的驱动程序(2.4.10 或更高版本),并且 X710 NIC 固件版本为 18.5.17 或更高版本。

您需要首先识别服务器上的 X710 NIC 接口。例如,这可能是 p3p1

您可以通过运行 Linux 命令 ethtool -i interface来检查 NIC 驱动程序版本。请参见以下示例:

有关更新驱动程序的说明,请参阅 英特尔支持页面

注意:

更新主机操作系统可能会替换英特尔 X710 NIC 驱动程序。因此,在更新英特尔 X710 NIC 驱动程序之前,请确保主机操作系统是最新的。

您需要以下软件包来生成驱动程序:

  • 对于 RedHat:

    • 内核开发

    • 开发工具

  • 对于 Ubuntu:

    • 使

    • 海湾合作委员会

如果您使用的是 RedHat,请运行以下命令来安装软件包:

如果您使用的是 Ubuntu,请运行以下命令来安装软件包:

注意:

更新英特尔 X710 NIC 驱动程序后,您可能会在主机操作系统日志中注意到以下消息:

"i40e: module verification failed: signature and/or required key missing - tainting kernel"

忽略此消息。出现是因为更新的 NIC 驱动程序模块已取代与主机操作系统打包的驱动程序的基本版本。

为 JDM 安装其他软件包

x86 服务器必须安装 Red Hat Enterprise Linux (RHEL) 7.3、(RHEL) 9.4 或 Ubuntu 24.04 LTS。

注意:

x86 服务器必须安装虚拟化包。

对于 RHEL 9.4,请确保已安装 podman 和 containernetworking-plugins。如果没有,请使用 DNF 实用程序安装以下附加软件包,这些软件包可以从 Red Hat 客户门户下载。

  • 播客

  • 容器网络插件

对于 RHEL 7.3,请安装以下附加软件包,可从 Red Hat 客户门户下载。

  • python-psutil-1.2.1-1.el7.x86_64.rpm

  • net-snmp-5.7.2-24.el7.x86_64.rpm

  • net-snmp-libs-5.7.2-24.el7.x86_64.rpm

  • libvirt-snmp-0.0.3-5.el7.x86_64.rpm

仅适用于 Junos OS 17.4R1 及更低版本以及 18.1R1(如果您运行的是 RHEL 7.3),请同时安装以下附加软件包:

  • libstdc++-4.8.5-11.el7.i686.rpm

注意:
  • 显示的软件包版本号是最低版本。最新的 RHEL 7.3 和 RHEL 9.4 补丁中可能会提供较新的版本。

  • libstdc++ 包扩展 .i686 表明它是一个 32 位包。

  • 对于 RHEL,我们建议您使用 or dnf 命令安装yum软件包。

For Ubuntu 24.04,安装以下软件包:

  • python-psutil

仅适用于 Junos OS 17.4R1 及更低版本以及 18.1R1,如果您运行的是 Ubuntu,请同时安装以下附加包:

  • libstdc++6:i386

注意:
  • 对于 Ubuntu,您可以使用 apt-get 命令安装这些软件包的最新版本。例如,使用:

    • 用于安装最新版本软件python-psutil包的命令apt-get install python-psutil

    • 用于安装最新版本的libstdc++6包的命令apt-get install libstdc++6:i386(扩展名:i386指示正在安装的包是 32 位版本)。

完成服务器和路由器之间的连接

在开始安装 JDM 之前,请先完成以下步骤:

  • 确保 MX 系列路由器已连接到 x86 服务器,如 连接服务器和路由器中所述。

  • 打开 MX 系列路由器上的两台 x86 服务器和两个路由引擎的电源。

  • 确定两台 x86 服务器上的 Linux 主机管理端口。例如, em1

  • 确定要为 JDM 和 GNF 管理端口分配的端口。例如, em2em3

  • 识别连接到 MX 系列路由器上控制板的两个 10-Gbps 端口。例如, p3p1p3p2