高性能T比特路由器高可用性的研究与实现
对于运行在骨干网中的路由器,冷备份显然不适用。因为路由器运行过程中不可能定时关闭数据库来备份数据,更不可能在路由器出现故障时再备份数据。因此采用热备份。鉴于要备份的数据量不大,不必采取双机镜像和共享磁盘阵列方式。在本设计中采用了一种新型的数据热备份方式:将需要备份的数据以日志文件的形式存 储,通过TCP传输方法将文件转化为数据流由主用主控板备份到备用主控板上,实现实时备份。面向连接的TCP 传输可靠且速度快,丢失文件的概率极小。
本文引用地址:http://www.amcfsurvey.com/article/82810.htm(2)切换延时问题
路由器主控系统出现故障时,要能够对用户透明地进行主备切换,就要实现系统间的无缝切换,减少切换过程中的时延并降低数据丢失率。无缝切换是一种完美的切换,包括快速切换和平滑切换两方面。快速切换意味着低延迟,平滑切换就是低的数据包丢失率,无缝切换是两者的结合,即低延迟和低丢失率。对于快速切换,要求在单板掉链之前完成切换过程,使备用主控板接替主用主控板的工作,保证路由器中的各个流程正常工作不受主控故障的影响,使网络正常运行。对于平滑切换,有两点要求:一是切换时,主备用主控板上的数据库是一致的;二是在主备用数据库一致的基础上,备用主控板启用后能在规定的时间内完成备份数据的导入。所谓规定的时间,也包含在切换的总时间内,切换时间=发现故障时间+启用切换时间+故障接管时间。
(3)故障监测机制
系统中的两块主控板,经过主备协商后确定主备地位,一块为Master状态,控制整个系统;另一块为Slave状态,处于备份状态。两块主控板之间通过UDP传输心跳报文交互自身的状态数据,以识别主控的软/硬件故障。路由器正常运行时,主用和备用主控板之间定时发送keepalive报文进行心跳探测,报文内容中包含了自身的状态信息。备用主控板在定时器到期前未收到来自主用主控板的keepalive报文就认为主用主控板失效,进入主备切换,备用主控板成为新主用,自动接管原主用主控板的服务程序,继续提供服务。原主用主控板从故障中恢复或被更换后,会重新发送协商报文,与新主用主控板取得联系,成为新备用主控板,而不必再进行一次切换,节省了系统资源。
2.2 高可用性模块的设计及实现
在主控软件容错系统设计中,采用了两块主控板挂载八块单板。两块主控板之间通过面向无连接的UDP通信机制交互心跳数据,通过面向连接的TCP通信机制传输备份文件数据流;主控板与单板之间通过高速以太网连接。图1给出了该系统的总体结构图。
按照功能的不同,在设计方案中将高可用性模块划分为三个子模块:AS通信模块、AS系统监控模块和AS keepalive模块,如图2所示。
AS通信模块负责主控系统上高可用性模块与系统数据维护模块(SYSDATA)和板间通信模块(BDCOM)间的通信、数据备份和TCP传输。
AS监控模块负责主控软件各个系统进程的监控、维护、管理等核心功能。当某个软件占CPU使用百分比过大时,则认为该主控软件运行不正常,根据该软件的运行规则和重要性选择恢复策略,重启该进程或者进入主备切换。
AS keepalive模块负责两块主控板之间的主备协商,确定主控板的主备地位;在路由器正常运行过程中,定时向对方主控板发送keepalive报文进行心跳探测;针对网络拥塞可能导致的丢包以及CPU排队处理多线程时可能超时处理keepalive报文造成的主用主控板“假死”现象,采用再协商(Re- negotiation)技术,在超时收不到对方主控板发送的keepalive报文时不直接认为对方主控板故障,而是进行一次退避,与对方发送协商报文进行再协商。再协商与初始化过程中的主备协商不完全相同。Re-negotiation技术与通常采用的单纯固定不变的心跳探测技术相比,可以更好地提高系统心跳环境的适应能力和稳定性,更好地保证系统的高可用性。
评论