使用不中断服务的软件升级升级机箱群集

本主题说明,不中断服务的软件升级 (ISSU) 支持将软件从一个 Junos OS 版本升级到更高版本的 Junos OS,同时确保最短的停机时间。

使用 功能资源管理器 确认平台和版本对特定功能的支持。

查看 特定于平台的不中断服务的软件升级行为 部分,了解与平台相关的注意事项。

有关更多信息,请参阅 “其他平台信息” 部分。

了解机箱群集的 ISSU

不中断服务的软件升级 (ISSU) 可以从一个 Junos OS 版本升级到更高版本的 Junos OS,停机时间很小甚至完全没有停机。仅当设备在机箱群集模式下运行时,才会执行 ISSU。

在故障切换事件期间观察到的停机时间可能因部署环境和多个外部因素而异,包括:

  • 连接设备处理和响应无偿 ARP (GARP) 更新的速度。
  • 上游和下游交换机上的 MAC 地址重新学习和转转发表更新。
  • 应用行为和正在使用的协议(例如,TCP 会话的恢复方式可能与基于 UDP 的流量不同)。

机 箱群集 ISSU 功能允许群集中的两台设备从受支持的Junos OS版本升级,同时通过跨群集节点协调升级过程,将流量中断降至最低,且不会中断服务。

ISSU 具有以下优势:

  • 在软件映像升级期间消除网络停机时间

  • 降低运维成本,同时提供更高的服务级别

  • 允许快速实施新功能

ISSU 具有以下限制:

  • ISSU 仅适用于 Junos OS 10.4R4 或更高版本。

  • ISSU 不支持软件降级。

  • 如果从仅支持 IPv4 的 Junos OS 版本升级到同时支持 IPv4 和 IPv6 的版本,则 IPv4 流量将在整个升级过程中继续正常运行。如果从同时支持 IPv4 和 IPv6 的 Junos OS 版本升级到同时支持 IPv4 和 IPv6 的其他版本,则 IPv4 和 IPv6 流量在升级期间将继续正常运行。Junos OS 支持的平台支持 IPv6 流量的基于流处理。

  • 在 ISSU 期间,您不能使任何 PIC 联机。您无法执行提交、重启或停止等操作。

  • 在 ISSU 期间,交换矩阵监控、控制链路恢复和 RGX 抢占等操作将暂停。

  • 在 ISSU 期间,您不能提交任何配置。

有关 ISSU 支持状态的详细信息,请参阅知识库文章 KB17946。

以下序列介绍了在机箱群集中运行的设备的 ISSU 行为。当 RG-0 托管在节点 0(主节点)上时,该序列适用。您必须从 RG-0 主节点启动 ISSU。如果尝试从节点 1(RG-0 辅助节点)启动 ISSU,系统将显示一条错误消息,并且升级不会继续。

  1. 初始冗余组故障切换

    在机箱群集 ISSU 开始时,系统会自动故障切换所有 RG-1 及更高版本 (RG-1+) 冗余组,这些组在启动 ISSU 的节点上还不是主数据库。此操作可确保在软件升级开始之前,RG-0 主节点上的所有冗余组都处于活动状态。

    所有 RG-1+ 冗余组的自动故障切换由系统执行。如果您运行的是 Junos OS 18.1R1 或更低版本,则必须在启动 ISSU 之前手动验证 RG-0 主节点上的所有 RG-1+ 冗余组是否都处于活动状态。

    所有 RG-1+ 冗余组故障切换后,系统会设置手册故障切换位,防止升级期间冗余组移动。系统会将所有 RG-1+ 冗余组的主节点优先级更改为 255,无论它们在此步骤中是否故障转移到 RG-0 主节点。

  2. 在 ISSU 期间,主节点(节点 0)会验证设备配置,以确保可以使用新的 Junos OS 版本成功提交设备配置。在此验证过程中,系统会在两个节点上执行以下检查:

    • /var 文件系统上的磁盘空间可用性

    • 不受支持的配置语句

    • 不受支持的物理接口卡 (PIC)

    如果任一路由引擎的文件系统上的 /var 可用磁盘空间不足,ISSU 进程将失败并返回一条错误消息,并且升级不会继续。

    不受支持的 PIC 不会阻止 ISSU 继续运行。但是,软件会生成一条警告,指示这些 PIC 将在升级期间重新启动。

    同样,存在不受支持的协议配置也不会阻止 ISSU。在这种情况下,软件会发出警告,说明在升级过程中,受影响协议可能会发生数据包丢失的情况。

  3. 验证成功后,内核状态同步守护程序 (ksyncd) 将辅助节点(节点 1)上的内核与节点 0 同步。

  4. 节点 1 将使用新的软件映像进行升级。在升级之前,节点 1 会从节点 0 获取配置文件并验证配置,以确保可以使用新的软件版本提交该配置文件。升级后,它与节点 0 重新同步。

  5. 节点 0 上的机箱群集进程(机箱)为 lSSU 准备其他软件进程。当所有进程都准备就绪时,chassisd 会向安装在设备中的 PIC 发送一条消息。

  6. 每个灵活 PIC 集中器 (FPC) 上的数据包转发引擎保存其状态,并从节点 1 下载新的软件映像。接下来,每个数据包转发引擎向机箱发送一条消息(统一 ISSU 就绪)。

  7. 从数据包转发引擎收到消息(统一 ISSU 就绪)后,机箱会向数据包转发引擎所在的 FPC 发送重新启动消息。FPC 将使用新的软件映像重新启动。FPC 重新启动后,数据包转发引擎将恢复 FPC 状态,并与运行新软件的节点 1 建立高速内部链路。机箱也会使用节点 0 重新建立。

  8. 当所有数据包转发引擎使用节点 0 上的机箱发送 就绪 消息后,将为节点切换准备其他软件进程。此时,系统已准备好进行切换。

  9. 节点切换发生,节点 1 成为新的主节点(此前为辅助节点 1)。

  10. 新的辅助节点(此前的主节点 0)现在已升级到新的软件映像。

两个节点均成功升级后,ISSU 即完成。

将机箱群集从不支持加密的 Junos OS 版本升级到支持加密的版本时,请一次执行一个节点的升级:

  1. 将第一个节点升级到新的 Junos OS 版本。

    如果未配置和启用加密,则即使两个节点运行不同的软件版本,两个节点之间的群集通信也保持不变,并且服务将继续不间断。

  2. 将第二个节点升级到相同的新 Junos OS 版本。

两个节点升级成功后,您可以根据需要选择配置和启用加密。

要降级到不支持加密的 Junos OS 版本,请确保在开始降级之前停用加密。在降级之前禁用加密可防止以下两者之间的通信故障:

  • 仍在运行启用加密的 Junos OS 版本的节点,以及
  • 已降级至不支持加密的版本的节点。

通过确保在两个节点上禁用加密,群集通信在整个降级过程中保持未加密且可操作。

路由引擎和数据包转发引擎中的策略必须同步,才能提交配置。当策略配置被修改且策略不同步时,系统将显示一条错误消息。

如果发现安全策略在升级后不同步,则必须使用 request security policies resync 命令同步路由引擎和数据包转发引擎中的安全策略配置。

ISSU 系统要求

您可以使用 ISSU 从支持 ISSU 的软件版本升级到更高版本。

要执行 ISSU,您的设备运行的 Junos OS 版本必须支持特定平台的 ISSU。

有关详细信息,请参阅 了解机箱群集的 ISSU 部分。

有关 ISSU 支持和限制的更多详细信息,请参阅 SRX 系列设备上的 ISSU/ICU 升级限制。

以下是执行 ISSU 时的限制:

  • 如果指定用于安装的 Junos OS 版本早于设备上当前运行的版本,则 ISSU 进程将终止。

  • 如果指定的升级与以下情况冲突,则 ISSU 将终止:

    • 当前设备配置

    • 支持的硬件组件

    • 其他平台或软件依赖项

  • ISSU 不支持使用 Junos OS SDK 开发的扩展应用包。

  • ISSU 不支持所有防火墙的版本降级。

  • ISSU 可能会在 CPU 负载过重时发生故障,建议在开始升级之前确保系统资源充足。

要从支持 ISSU 的 Junos OS 版本降级到早期版本(无论是否支持 ISSU),请使用命令 request system software add 。

与 ISSU 升级不同,降级可能会导致网络中断。

降级过程中还存在数据丢失的风险。

在继续之前,请仔细规划降级并确保进行适当的备份。

强烈建议您在以下情况下执行 ISSU:

  • 当主节点和辅助节点都运行正常时

  • 系统维护期间

  • 在尽可能低的流量时段

  • 当路由引擎 CPU 使用率低于 40% 时

在不支持或不推荐ISSU,但仍需要尽量减少系统升级停机时间的场景时,可以使用最短停机时间升级流程,请参阅相关知识库文章 KB17947。

使用 ISSU 升级机箱群集中的两台设备

开始使用 ISSU 升级两台设备之前,请注意以下准则:

  • 确保满足以下 ISSU 预检查要求:

    • 所有冗余组优先级大于 0

    • 所有冗余组的状态要么是主,要么是辅助

    • /var/tmp 中存在足够的(图像大小的两倍)可用空间

    • 5 秒内 CPU 使用率低于 80%

    如果未满足预检查要求,ISSU 将从一开始终止。

  • 使用每个路由引擎上的命令备份 request system snapshot 软件,将系统软件备份到设备的硬盘。

  • 如果您使用的是 Junos OS 18.1R1 或更低版本,则在启动 ISSU 之前,请设置所有冗余组的故障切换,以便它们仅在一个节点(主节点)上处于活动状态。请参阅 启动机箱群集手动冗余组故障切换。

    如果您运行的是 Junos OS 18.1 或更高版本,系统会自动将所有 RG 故障转移到 RG0 主数据库。

  • 建议在启动 ISSU 之前为所有路由协议启用平滑重启,以确保将流量中断降至最低。

在所有受支持的防火墙上,第一个建议的 ISSU 版本 是 Junos OS 18.1R1 版。

机箱群集 ISSU 功能允许从支持的Junos OS 版本升级群集中的两台设备,其流量影响与冗余组故障切换相当。

要从路由引擎 2 上的 CLI 执行 ISSU:

  1. 从 瞻博网络 支持网站下载软件包: https://www.juniper.net/support/downloads/
  2. 将包复制到群集的主节点上。我们建议您将包复制到 /var/tmp 目录,这是硬盘上的一个大型文件系统。请注意,从中启动 ISSU 的节点必须具有软件映像。

    user@host>file copy ftp://username:prompt@ftp.hostname.net/filename /var/tmp/filename

  3. 通过在主节点上发出 show version 命令,验证两个节点上运行的当前软件版本。
  4. 输入以下命令,从所有冗余组的主节点启动 ISSU:

    等待两个节点都完成升级(之后您将注销设备)。

  5. 等待几分钟,然后再次登录到设备。使用命令 show version 验证群集中的两台设备是否都在运行新的 Junos OS 版本。
  6. 验证所有策略、区域、冗余组和其他实时对象 (RTO) 是否恢复到正确的状态。
  7. 通过发出 request chassis cluster failover node node-number redundancy-group group-number 命令,再次将节点 0 设为主节点。

如果希望冗余组在不中断服务的软件升级 (ISSU) 后自动恢复到节点 0 作为主节点,则必须配置冗余组优先级,以便节点 0 具有更高的优先级,并启用该 preempt 选项。

此方法适用于除冗余组 0 (RG0) 之外的所有冗余组。对于 RG0,必须手动执行故障切换。

要设置冗余组优先级并启用该 preempt 选项,请参阅 示例:配置机箱群集冗余组。

要手动设置冗余组的故障切换,请参阅 启动机箱群集手动冗余组故障切换。

在升级期间,两台设备都可能遇到冗余组故障转移;但是,流量不会中断。在开始升级之前,每台设备都会验证升级包并验证版本兼容性。如果系统检测到新的软件包版本与当前安装的版本不兼容,则升级将被拒绝,或者系统会提示您采取纠正措施。在某些情况下,特定功能可能不兼容,在这种情况下,升级软件会提示您终止升级或禁用不兼容的功能,然后再继续。

如果您计划将防火墙作为独立设备运行或从机箱群集中移除节点,请确保两个节点上都已完全终止 ISSU 过程(如果已启动 ISSU)。

要在带有路由引擎 3 的 SRX5K 设备以及 SRX1600、SRX2300、SRX4120 和 SRX4300 设备上启动 ISSU 进程:

  1. 运行以下命令以启动 ISSU:

在 ISSU 之后回滚机箱群集中的设备

如果 ISSU 无法完成,并且群集中仅升级了一台设备,则可以通过在升级后的设备上发出以下命令之一来仅回滚到升级设备上的先前配置:

  • request chassis cluster in-service-upgrade abort

  • request system software rollback node node-id reboot

  • request system reboot

在 ISSU 之后启用自动机箱群集节点故障恢复

如果希望冗余组在不中断服务的软件升级 (ISSU) 后自动返回到节点 0 作为主节点,则必须配置冗余组优先级,以便节点 0 具有更高的优先级,并启用该 preempt 选项。

此机制适用于除冗余组 0 之外的所有冗余组。冗余组 0 不支持自动抢占,必须手动进行故障转移。

要设置冗余组优先级并启用 preempt 选项,请参阅 示例:配置机箱群集冗余组。要手动启动冗余组故障切换,请参阅 启动机箱群集手动冗余组故障切换。

要在 ISSU 之后完成升级并使节点 0 在机箱群集中可用,必须手动重新启动节点 0。在 ISSU 过程中,节点 0 不会自动重新启动。

用于排除 ISSU 相关问题的日志错误消息

在 ISSU 升级期间,可能会出现以下问题。您可以使用日志中的详细信息来识别错误。有关特定系统日志消息的详细信息,请参阅 系统日志资源管理器。

机箱进程错误

问题

描述

与机箱相关的错误。

解决方案

使用错误消息了解与机箱相关的问题。

当 ISSU 启动时,系统会向机箱发送请求,以从机箱角度检查是否存在与 ISSU 相关的问题。如果出现问题,将创建日志消息。

ISSU 的常见错误处理

问题

描述

在 ISSU 过程中可能会遇到一些问题。本节提供有关如何处理它们的详细信息。

解决方案

在 ISSU 期间遇到的任何错误都会生成日志消息,ISSU 进程将继续进行,而不会影响流量。如果需要恢复到之前的 Junos OS 版本,将记录事件或停止 ISSU 进程,以防止机箱群集中节点之间出现版本不匹配。 表 1 提供了一些常见的错误情况及其相应的解决方法。 表 1 所示的示例日志消息取自 SRX1500 设备,但也适用于所有受支持的防火墙。

表 1:与 ISSU 相关的错误和解决方案

错误条件

解决方案

当 ISSU 的先前实例已在进行中时,尝试启动 ISSU

将显示以下消息:

warning: ISSU in progress

您可以中止当前 ISSU 进程,然后使用命令 request chassis cluster in-service-upgrade abort 再次启动 ISSU。

辅助节点上重新启动失败

不会发生服务停机,因为主节点会继续提供所需的服务。将显示详细的控制台消息,要求您手动清除现有 ISSU 状态并恢复机箱群集。

error: [Oct  6 12:30:16]: Reboot secondary node failed (error-code: 4.1)

       error: [Oct  6 12:30:16]: ISSU Aborted! Backup node maybe in inconsistent state, Please restore backup node
       [Oct  6 12:30:16]: ISSU aborted. But, both nodes are in ISSU window.
       Please do the following:
       1. Rollback the node with the newer image using rollback command
          Note: use the 'node' option in the rollback command
          otherwise, images on both nodes will be rolled back
       2. Make sure that both nodes (will) have the same image
       3. Ensure the node with older image is primary for all RGs
       4. Abort ISSU on both nodes
       5. Reboot the rolled back node

辅助节点未能完成冷同步

如果辅助节点无法完成冷同步,则主节点超时。此时将显示详细的控制台消息,说明您手动清除现有 ISSU 状态并恢复机箱群集。在这种情况下,不会发生服务停机。

[Oct  3 14:00:46]: timeout waiting for secondary node node1 to sync(error-code: 6.1)
        Chassis control process started, pid 36707 

       error: [Oct  3 14:00:46]: ISSU Aborted! Backup node has been upgraded, Please restore backup node 
       [Oct  3 14:00:46]: ISSU aborted. But, both nodes are in ISSU window. 
       Please do the following: 
      1. Rollback the node with the newer image using rollback command 
          Note: use the 'node' option in the rollback command 
          otherwise, images on both nodes will be rolled back 
      2. Make sure that both nodes (will) have the same image 
      3. Ensure the node with older image is primary for all RGs 
      4. Abort ISSU on both nodes 
      5. Reboot the rolled back node  

新升级的辅助设备的故障转移失败

不会发生服务停机,因为主节点会继续提供所需的服务。将显示详细的控制台消息,要求您手动清除现有 ISSU 状态并恢复机箱群集。

[Aug 27 15:28:17]: Secondary node0 ready for failover.
[Aug 27 15:28:17]: Failing over all redundancy-groups to node0
ISSU: Preparing for Switchover
error: remote rg1 priority zero, abort failover.
[Aug 27 15:28:17]: failover all RGs to node node0 failed (error-code: 7.1)
error: [Aug 27 15:28:17]: ISSU Aborted!
[Aug 27 15:28:17]: ISSU aborted. But, both nodes are in ISSU window.
Please do the following:
1. Rollback the node with the newer image using rollback command
    Note: use the 'node' option in the rollback command
           otherwise, images on both nodes will be rolled back
2. Make sure that both nodes (will) have the same image
3. Ensure the node with older image is primary for all RGs
4. Abort ISSU on both nodes
5. Reboot the rolled back node
{primary:node1}

主升级失败

不会发生服务停机,因为辅助节点作为主节点进行故障切换并继续提供所需的服务。

主节点上重新启动失败

在重新启动主节点之前,设备脱离 ISSU 设置,不会显示与 ISSU 相关的错误消息。如果检测到任何其他故障,将显示以下重新启动错误消息:

Reboot failure on     Before the reboot of primary node, devices will be out of ISSU setup and no primary node error messages will be displayed.
Primary node

ISSU 支持相关错误

问题

描述

由于软件和功能配置不受支持,导致安装失败。

解决方案

使用以下错误消息了解与兼容性相关的问题:

初始验证检查失败

问题

描述

初始验证检查失败。

解决方案

如果映像不存在或映像文件损坏,则验证检查失败。当映像不存在且 ISSU 中止时,初始验证检查失败时,将显示以下错误消息:

当图像不存在时

当图像文件损坏时

如果映像文件损坏,将显示以下输出:

主节点将验证设备配置,以确保可以使用新的软件版本提交设备配置。如果出现任何问题,将显示 ISSU 中止并显示错误消息。

安装相关错误

问题

描述

安装映像文件不存在或无法访问远程站点。

解决方案

使用以下错误消息来了解与安装相关的问题:

ISSU 下载 ISSU 命令中指定的安装映像作为参数。映像文件可以是本地文件,也可以位于远程站点。如果文件不存在或远程站点无法访问,则会报告错误。

冗余组故障切换错误

问题

描述

自动冗余组 (RG) 故障问题。

解决方案

使用以下错误消息了解问题:

内核状态同步错误

问题

描述

与 ksync 相关的错误。

解决方案

使用以下错误消息来了解与 ksyncd 相关的问题:

ISSU 检查辅助节点(节点 1)上是否存在任何 ksyncd 错误,如果出现任何问题,则显示错误消息并中止升级。

特定于平台的不 中断服务的软件升级 行为

使用 功能资源管理器 确认平台和版本对特定功能的支持。

使用下表查看平台的特定于平台的行为。

平台

差异

SRX 系列

  • SRX1500、SRX4100 和 SRX4200 防火墙支持从 Junos OS 17.4 升级到后续的 17.4 版本,但不能从之前的 Junos OS 版本升级到 17.4 版本。

  • SRX5400、SRX5600 和 SRX5800 防火墙支持从 Junos OS 17.3 升级到后续的 17.3 版本,不能从早期的 Junos OS 版本升级到 17.3 及更高版本。

  • SRX1500、SRX1600、SRX2300、SRX4120、SRX4100、SRX4200、SRX4300 和 SRX4600,防火墙不支持该 request system snapshot 命令。
  • 支持 ISSU 的 SRX1500、SRX4100 和 SRX4200 防火墙允许您移除原始映像文件。Include unlink 添加到命令中 user@host> request system software in-service-upgrade image-name-with-full-path unlink 。

其他平台信息

使用 功能资源管理器 确认平台和版本对特定功能的支持。

可能支持其他平台。

表 2:ISSU 平台支持

设备

Junos OS 版本

SRX5800 和 SRX5600

10.4R4 或更高版本

SRX5400

12.1X46-D20 或更高版本

SRX1500

15.1X49-D70 或更高版本

SRX1600和SRX2300、SRX4120

23.4R1 或更高版本

SRX4100 和 SRX4200

15.1X49-D80 或更高版本

SRX4300

24.2R1 或更高版本

SRX4600

17.4R1 或更高版本