2.7 高可用架构
Cisco IOS XR技术精要
Cisco IOS XR是一款模块化的网络操作系统,在设计之初考虑进了故障控制和故障恢复功能,其主要目标是控制、管理,以及从任何潜在故障中恢复的能力。在一款复杂的系统中,如运行IOS XR的平台上,即便在系统开发时使用了最优的设计、研发及测试规范,软件bug和硬件故障也是无法避免的。IOS XR高可用软件和硬件设计思想是将各种类型的软硬件故障预先定义出来,当故障发生时,使用影响最低的恢复机制从故障中恢复系统,从而将故障对系统造成的影响降至最低。
IOS XR使用分层的高可用(HA)架构来执行故障检测、故障控制,以及故障恢复。图2-8画出了IOS XR中HA特性的不同层级。
IOS XR是一款基于微内核的NOS,除了少量微内核,所有操作都是由进程来完成的,甚至包括设备驱动和文件系统。由于所有进程各自运行在自身的受保护内存中,所以某个进程的崩溃或中断不会影响到其他进程。
IOS XR具有可重启特性。进程崩溃后可以重新启动。运行的进程会将重要的状态信息保存在检查点服务器中,检查点服务器由一块共享内存空间组成。当某个进程发生崩溃或中断,随后系统管理器会对其执行重启,重启后的进程可以从检查点服务器上恢复之前的某些状态信息。图2-9给出了这一状态的说明。进程还可以通过peer进程来恢复状态信息。例如,RIB进程可以通过接收路由选择协议进程的更新来恢复自身的RIB表。
主RP上的检查点服务器同时也会镜像到备RP上。当主备RP故障切换时,新的主RP可以从本地的检查点服务器中恢复状态,这时主备RP同步的作用便体现出来了。图2-10解释了在故障切换时热、温、冷进程是如何恢复其状态的。活动热(hot)进程会将其状态同步给备RP上的peer进程,备peer当即处理状态信息。当RP切换时,备peer会立即接管主peer的角色。另一方面,对于备RP上的温(warm)进程来说,只有当故障切换发生时,才会去从检查点服务器上检索状态信息。冷(cold)进程不会将其检查点状态镜像给备peer。故障发生后,进程必须通过系统管理器执行重启。重启后,由于没有检查点状态,所以无法恢复原有状态。不过,冷进程可以从使用平滑重启(GR)功能的邻居路由器以及peer进程中恢复其状态。
IOS XR通过监控进程来检测CPU黑洞(hog)和内存耗尽,同时还会监控硬盘空间利用率、死锁、内核线程、文件描述符,以及共享内存的使用。如果检测出了问题,造成问题的异常进程将被中断掉。监控CPU黑洞、内存以及死锁的进程被称为wdsysmon(系统监控看门狗[watchdog system monitor])。默认情况下,wdsysmon会对造成CPU黑洞、内存黑洞、死锁的异常进程进行重启处理。这一行为可以通过命令watchdog restart [cpu-hog | deadlock | memory-hog] disable进行更改。
Cisco IOS XR平台对关键性的硬件组件使用了硬件冗余,如RP、风扇组、电源。以RP为例,许多原因可以导致主备RP的故障切换。当执行故障切换时,备RP上的进程将使用镜像来的检查点数据来恢复其状态。以下是一些导致RP切换的原因:
- 主RP检测到硬件错误;
- 主RP控制平面锁死;
- 主RP上的强制进程崩溃并且无法重启;
- 主RP上的内核崩溃;
- 使用命令redundancy switchover;
- 硬件watchdog计时器到期。
在IOS XR中,转发平面、控制平面和管理平面彼此清晰地分离开来。管理平面或控制平面中的故障不会中断流量转发。线卡的硬件转发不受RP切换的影响。在IOS XR平台上,线卡上的硬件包转发可以在控制平面脱控时独立工作。当故障切换完毕,并且控制平面完全恢复之后,系统通过使用一种标记-清除(mark-and-sweep)技术使HW转发表与最近的控制平面转发表同步,从而更新硬件转发表。
所有IOS XR路由选择协议,包括BGP、LDP、RSVP、OSPF和IS-IS,均支持平滑重启(GR)特性。使用GR特性,当进程崩溃或RP故障切换时,如果邻居路由器同样启用了GR特性,重启进程能够从邻居路由器上恢复路由信息。GR功能、标记-清除技术,控制平面与数据平面相分离,这三者共同实现了在RP故障切换或进程崩溃时IOS XR的不中断转发(NSF)。
在某些情况下,用户网络中的路由器很可能不支持GR特性。这时,可以在Cisco IOS XR上部署不中断路由(NSR)特性,使得RP故障切换时能够从本地恢复路由信息。使用NSR特性,路由信息以及重要的路由选择协议状态将被镜像到备RP对应的进程中。RP切换时,拥有所有路由信息及重要协议状态的备RP上的协议进程将接管协议的功能性。邻居路由器甚至感知不到对端设备发生了RP故障切换。NSR特性不需要邻居路由器支持GR特性。许多协议都可支持NSR,包括IS-IS、OSPF、LDP,以及BGP。
Cisco IOS XR能够通过软件维护升级(SMU)交付机制来实现软件修复。SMU提供了特定组件的软件补丁。大多数的SMU升级对业务的影响是可以容忍的甚至是无影响的,因为升级过程中仅会重启单个或非常少量的必要进程。