使用不中断服务的软件升级升级机箱群集
本主题说明,不中断服务的软件升级 (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,系统将显示一条错误消息,并且升级不会继续。
- 初始冗余组故障切换
在机箱群集 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 主节点。
-
在 ISSU 期间,主节点(节点 0)会验证设备配置,以确保可以使用新的 Junos OS 版本成功提交设备配置。在此验证过程中,系统会在两个节点上执行以下检查:
-
/var 文件系统上的磁盘空间可用性
-
不受支持的配置语句
-
不受支持的物理接口卡 (PIC)
如果任一路由引擎的文件系统上的
/var可用磁盘空间不足,ISSU 进程将失败并返回一条错误消息,并且升级不会继续。不受支持的 PIC 不会阻止 ISSU 继续运行。但是,软件会生成一条警告,指示这些 PIC 将在升级期间重新启动。
同样,存在不受支持的协议配置也不会阻止 ISSU。在这种情况下,软件会发出警告,说明在升级过程中,受影响协议可能会发生数据包丢失的情况。
-
-
验证成功后,内核状态同步守护程序 (ksyncd) 将辅助节点(节点 1)上的内核与节点 0 同步。
-
节点 1 将使用新的软件映像进行升级。在升级之前,节点 1 会从节点 0 获取配置文件并验证配置,以确保可以使用新的软件版本提交该配置文件。升级后,它与节点 0 重新同步。
-
节点 0 上的机箱群集进程(机箱)为 lSSU 准备其他软件进程。当所有进程都准备就绪时,chassisd 会向安装在设备中的 PIC 发送一条消息。
-
每个灵活 PIC 集中器 (FPC) 上的数据包转发引擎保存其状态,并从节点 1 下载新的软件映像。接下来,每个数据包转发引擎向机箱发送一条消息(统一 ISSU 就绪)。
-
从数据包转发引擎收到消息(统一 ISSU 就绪)后,机箱会向数据包转发引擎所在的 FPC 发送重新启动消息。FPC 将使用新的软件映像重新启动。FPC 重新启动后,数据包转发引擎将恢复 FPC 状态,并与运行新软件的节点 1 建立高速内部链路。机箱也会使用节点 0 重新建立。
-
当所有数据包转发引擎使用节点 0 上的机箱发送 就绪 消息后,将为节点切换准备其他软件进程。此时,系统已准备好进行切换。
-
节点切换发生,节点 1 成为新的主节点(此前为辅助节点 1)。
-
新的辅助节点(此前的主节点 0)现在已升级到新的软件映像。
两个节点均成功升级后,ISSU 即完成。
将机箱群集从不支持加密的 Junos OS 版本升级到支持加密的版本时,请一次执行一个节点的升级:
-
将第一个节点升级到新的 Junos OS 版本。
如果未配置和启用加密,则即使两个节点运行不同的软件版本,两个节点之间的群集通信也保持不变,并且服务将继续不间断。
-
将第二个节点升级到相同的新 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:
如果希望冗余组在不中断服务的软件升级 (ISSU) 后自动恢复到节点 0 作为主节点,则必须配置冗余组优先级,以便节点 0 具有更高的优先级,并启用该 preempt 选项。
此方法适用于除冗余组 0 (RG0) 之外的所有冗余组。对于 RG0,必须手动执行故障切换。
要设置冗余组优先级并启用该 preempt 选项,请参阅 示例:配置机箱群集冗余组。
要手动设置冗余组的故障切换,请参阅 启动机箱群集手动冗余组故障切换。
在升级期间,两台设备都可能遇到冗余组故障转移;但是,流量不会中断。在开始升级之前,每台设备都会验证升级包并验证版本兼容性。如果系统检测到新的软件包版本与当前安装的版本不兼容,则升级将被拒绝,或者系统会提示您采取纠正措施。在某些情况下,特定功能可能不兼容,在这种情况下,升级软件会提示您终止升级或禁用不兼容的功能,然后再继续。
如果您计划将防火墙作为独立设备运行或从机箱群集中移除节点,请确保两个节点上都已完全终止 ISSU 过程(如果已启动 ISSU)。
要在带有路由引擎 3 的 SRX5K 设备以及 SRX1600、SRX2300、SRX4120 和 SRX4300 设备上启动 ISSU 进程:
-
运行以下命令以启动 ISSU:
user@host> request vmhost software in-service-upgrade image-name-with-full-path
也可以看看
在 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 不会自动重新启动。
特定于平台的不 中断服务的软件升级 行为
使用 功能资源管理器 确认平台和版本对特定功能的支持。
使用下表查看平台的特定于平台的行为。
|
平台 |
差异 |
|---|---|
|
SRX 系列 |
|
其他平台信息
使用 功能资源管理器 确认平台和版本对特定功能的支持。
可能支持其他平台。
|
设备 |
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 或更高版本 |