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 中,进程冗余的核心命令是 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 兼容性,才能把“高可用”从硬件层面延伸到软件层面。