3. 软件高可用基础

园区网络的高可用不仅依赖硬件冗余(双电源、双引擎、双上行),更依赖控制平面软件在故障、升级、误配置等场景下能否快速恢复并保持转发不中断。Cisco Catalyst 9000 系列运行 IOS-XE,其软件高可用体系由四个相互配合的层面构成:进程级冗余(进程重启与自愈)、配置级保护(配置回滚与归档)、版本级管理(镜像与包管理),以及系统级不中断升级(ISSU/软件维护升级)。理解这四层的关系,是后续设计 SSO、GR、NSF 等特性的前提。

一、IOS-XE 的进程化架构与冗余基础

IOS-XE 与传统 IOS 最大的区别在于:它把原本单体(monolithic)的 IOS 进程拆分为运行在 Linux 之上的多个独立进程,由 IOSd 承载核心路由/交换控制逻辑,FMAN-FP、FED、platform_mgr、sif_mgr 等进程分别负责转发管理、平台管理与接口管理。这种架构带来两个直接好处:一是单个进程崩溃时可通过进程重启(Process Restart)恢复,而不必整机重启;二是控制平面与数据平面解耦,转发面在控制面短暂异常时仍可继续转发。

在双引擎(双 RP)平台上,IOS-XE 进一步提供 SSO(Stateful Switchover,状态化切换):Active RP 与 Standby RP 之间实时同步运行状态,切换时数据面不中断、控制面会话(如 OSPF 邻接、BGP 会话)可借助 NSF/GR 保持。SSO 是 ISSU 能够成立的基础,没有 SSO 就没有真正意义上的不中断升级。

IOS-XE 软件高可用四层机制与协同关系 ① 进程冗余 Process Restart 自愈 / 局部重启 IOSd 路由/交换控制 FMAN-FP / FED 转发管理 platform_mgr 平台/接口管理 崩溃→重启 转发不中断 ② 配置保护 Archive / Rollback 配置归档与回滚 running-config 当前运行配置 archive 时间点 自动/手动归档 configure replace 回滚到指定版本 ③ 版本管理 Install / Bundle 镜像与包管理 install mode 包级安装/回滚 bundle mode 整包升级 版本一致性校验 RP/成员版本匹配 ④ ISSU 不中断升级 依赖 SSO + NSF Active RP 升级 Standby 接管转发 Standby RP 升级 回切后完成 转发面持续在线 业务不中断 逐层增强,ISSU 依赖前三层

二、进程冗余:从“整机重启”到“局部自愈”

在 IOS-XE 中,进程冗余的核心命令是 show processes 与 show processes cpu sorted,用于观察各进程的 CPU 占用与运行状态。当某个非关键进程异常退出时,IOS-XE 会尝试自动重启该进程,典型日志如下:

%IOSXE-3-PLATFORM: R0/0: kernel: fman_fp_image[1234]: restarting process
%PMAN-3-PROCHOLDDOWN: R0/0: pman: The process fman_fp_image has been held down
%PMAN-5-EXITACTION: R0/0: pman: Process fman_fp_image is exiting

这里需要区分两种结果:进程重启成功时,转发面通常不受影响,仅控制面短暂抖动;进程被 hold down(多次重启失败)时,平台管理器会停止继续重启,此时需要人工介入,例如 show platform software process list 查看进程状态,必要时通过 reload 或切换到 Standby RP 恢复。因此,进程冗余不是“万能自愈”,它的边界在于进程是否属于可重启类型、是否被 hold down。

三、配置回滚:把“误配置”变成可逆操作

配置回滚依赖 IOS-XE 的 Configuration Archive 机制。启用后,设备会在指定时间点或每次写入配置时自动归档 running-config,形成可回溯的版本序列。典型配置如下:

archive
  path flash:archive
  maximum 10
  time-period 1440
  write-memory
!
archive config

上述示例表示:归档目录为 flash:archive,最多保留 10 个归档,每 1440 分钟(24 小时)自动归档一次,并在每次 write memory 时触发归档。当误配置导致业务异常时,可用 show archive 查看归档列表,再用 configure replace flash:archive/xxx.cfg 回滚。需要注意:configure replace 是“替换”而非“合并”,它会将当前配置整体替换为目标归档配置,因此回滚前应确认目标版本确实包含所需全部配置。

建议在变更窗口前手动执行一次 archive config,并记录归档文件名与变更单号,形成“变更前快照—变更—验证—必要时回滚”的闭环。

四、版本管理与 ISSU 概述

IOS-XE 提供两种镜像管理模式:Bundle 模式使用单个 .bin 镜像,升级时整包替换,操作简单但升级粒度粗;Install 模式将镜像拆分为基础包与多个功能包(如 rpbase、rpboot、rpaccess、rpcrypto 等),可只升级受影响的包,升级更快、回滚更细。查看当前模式与版本可用:

show version | include INSTALL
show install summary
show install active summary

ISSU(In-Service Software Upgrade)是建立在 SSO 与 NSF 之上的不中断升级流程。其基本逻辑是:先升级 Standby RP,触发主备切换,使新版本 RP 成为 Active;再升级原 Active RP(此时为 Standby),最后按需回切。整个过程依赖三个前提:双 RP 且 SSO 已就绪、协议已启用 NSF/GR、目标版本与当前版本满足 ISSU 兼容矩阵。若任一条件不满足,ISSU 会退化为普通升级,转发可能中断。

机制保护对象关键命令/前提典型恢复时间
进程冗余单个软件进程show processes / PMAN 自动重启秒级
配置回滚配置错误archive + configure replace分钟级
版本管理镜像/包版本install mode / bundle mode升级窗口内
ISSU整机软件版本SSO + NSF + 兼容矩阵业务不中断

综上,IOS-XE 的软件高可用是一个分层防御体系:进程冗余应对局部软件故障,配置回滚应对人为误操作,版本管理保证升级可控,ISSU 则在前三者基础上实现业务不中断的版本演进。设计园区网络时,应至少启用配置归档与 SSO,并在关键节点评估 ISSU 兼容性,才能把“高可用”从硬件层面延伸到软件层面。