1. 概述
高端交换机由于所处网络位置非常重要,不允许出现单点故障,设备一般都配备两块主控板,分别称为主用主控板(Master)和备用主控板(Slave)。其中,主用主控板作为控制平面的核心,与外部和业务板进行业务通信,完成系统内各模块的正常功能;而备用主控板则只作为主用主控板的备份,与外部和业务板没有通信。当主用主控板发生故障时,系统自动进行主备切换,由备用主控板接替主用主控板的工作,保证业务的正常运行
2. 数据备份
主备主控板的热备份过程主要分为批量备份、实时备份和数据平滑三个阶段。
备用主控板启动后,由于此时主用主控板和备用主控板的差异比较大,主用主控板会将当前需要备份的数据批量同步到备用主控板,这个过程称之为批量备份,批量备份时间的长短取决于需要备份数据量的大小。
批量备份过程结束后,系统进入实时备份过程,在此过程中,当主用主控板备份数据发生变化时,备份数据将实时同步到备用板,这个过程通常很快。
主备倒换后,备用板升为新的主用板,会通知各个模块向业务板进行数据收集和同步,这个过程称之为数据平滑。平滑过程中,各模块主动与业务板进行通信,在硬件状态、链路层状态、配置数据三个方面进行确认和同步,以保证整个系统维护的数据和状态是一致的,从而确保主备切换之后,系统能够正常运行。平滑阶段结束,新的主用板才称之为完全意义上的主用主控板。
3. 主备工作状态机
主用主控板状态机在如下五个状态顺序迁移,分别为:等待备用板插入状态、等待批量备份请求状态、批量备份状态、实时备份状态以及数据平滑状态。
备用主控板状态则在就绪状态、批量接收数据状态、实时接收数据状态三个状态顺序迁移。
主用板启动正常工作后就进入等待备用板插入状态;主用主控板检测到备用板插入槽位上电启动后进入到等待批量备份数据状态,等待备用板的批量备份数据请求;当备用板上电启动完毕后,首先会向主控板发送数据批量备份请求,主控板就把需要备份的数据打包批量发送给备用板,包括配置信息和一些状态信息等;批量备份完成后,进入实时备份状态,当主控板需要备份的数据发生变化时,会通过消息发送给备用板,备用板完成相关同步工作;平滑过程只有在备用板变为主控板的阶段才会出现,是主控板的控制平面数据和业务板进行状态确认和同步的过程;平滑过程完成后备用板才真正成为主控板。
备用板上电启动完成后即进入就绪状态,即随时可以接替主控板工作的状态;然后向主控板发送批量数据备份请求,进行批量数据同步,此时不与业务板进行通信;批量同步完成后,进入实时备份状态,实时备份的发起者是主控板,备用板只有在接收到备份数据消息时才进行实时备份。
图1 主备主控板迁移状态机
4. 主备状态确定及倒换
4.1 主备状态确定
双主控环境下,主控板的状态是主用还是备用,是在启动过程中由硬件决定的。一般情况,设备会首先选择小槽位号的主控板作为主用主控板(双主控启动环境下,硬件会在大槽位号主控板设置一个延时,使它稍后启动)。
初始启动时,两块主控板都处于备用状态,各自进行软件的启动。小槽位号主控板在启动到一定阶段时将自己的单板状态位置为正常,并且同时检测另一块主控板的状态是否正常;而大槽位号的主控此时会有一个延时,再检查另一块主控板是否正常,并且将自己的单板状态位置为正常。这样,在小槽位号主控板的状态变为正常时,大槽位号主控板的状态还未正常,因此小槽位号主控板的状态为主用;大槽位号主控板在延时过后检查,发现另一块主控板的状态为正常,便将自己设置为备用状态。所以,在双主控环境下,即使在系统重启之前,是大槽位号主控板的状态为主用,重启后,仍然会是小槽位号主控板的状态为主用。
4.2 主备倒换触发
备用主控板到达实时接收数据状态后,如果检测到倒换通知,则切换为主用主控板。检测通知是中断触发的,主备倒换的硬件切换时间在毫秒级。硬件切换后,新主控板的主备状态机进入平滑状态,开始平滑过程处理。
主备切换的触发因素主要有以下几类:
命令行执行主备倒换命令,强行切换。
主用主控板硬复位或者被手工拔出,引起主备倒换。
主用主控板上发生软件异常重启,从而触发倒换。如:模块异常占用CPU时间过长,引发硬件看门狗重启系统;数据访问异常、指令访问异常等系统异常等引发重启。
对于以上不同的触发因素,备用主控板感应的时间都是一样的:都是在硬件中断触发的,状态切换时间在毫秒级。
主控板和备用板都会周期发送握手报文,主控板或备用板在设定的周期内没有收到对方的握手报文,就会认为主备通信异常,重新复位备用板。
5. 主备倒换性能
5.1 配置层主备倒换性能
通过批量备份和实时备份过程,主用主控板的配置信息及时的备份到备用主控板。在主备倒换时机成熟时,备用主控板上已经保存有主用主控板完备的配置信息内容,并已经配置同步成功。因此,在主备倒换时,对于配置层,可以实现完全平滑的过渡,不需再额外收集或同步其他内容。
5.2 协议层主备倒换性能
在平滑的过程中,为保证业务无间断转发,业务板上涉及的各类转发表并不是删除后重新学习。在主控板进行的数据收集和同步过程中,基本维持原有业务板数据不变,只更新改变部分并进行刷新。
H3C系列交换机为分布式架构,控制软件与转发软件严格分开,控制软件负责整个设备的控制与管理(包括路由的发现和下刷等),而转发软件负责单纯的数据转发业务,两种软件由各自的处理器进行处理,功能完全独立。主控板上的软件版本属于控制软件,它负责处理用户的各种配置信息以及运行各自协议,例如运行OSPF/ISIS/BGP等路由协议来发现路由并下刷给各个接口板。而所有接口板上的软件版本属于转发软件,它们根据主控板的通知消息维护自己的转发表,并根据转发表对数据进行转发。
采用以上这种控制与转发相分离的分布式结构和对GR技术的支持后,当控制软件重启(由于硬件或者软件故障)或者重新加载(软件升级)时转发业务可以不中断。控制软件重启或者重新加载不影响转发软件的正常运行,因此只要在控制软件重启或者重新加载期间网络拓扑保持稳定,正在重启的路由器仍然在转发路线上进行数据转发是完全可行并可靠的
1) 二层单播
普通二层单播转发只是利用了MAC地址表,报文转发所涉及的MAC表在业务板上都是存在的。发生主备倒换时,新的主控板会向业务板发起MAC地址信息收集和同步,而业务板上原有的MAC表在这个过程中并不会被删除,因此可以保证业务板上二层单播数据转发正常。
2)二层组播
对于二层组播来说,同样,转发所需的组播MAC表项均保存在业务板上。主备倒换时,主控板向接口板进行数据收集,而业务板原有的组播MAC表项是保持不变的,因此可以保证二层组播流的正常转发。
3)三层单播
对于三层单播来说,转发主要是依靠接口板的ARP以及FIB。在主备倒换平滑过程期间,业务板上原有的ARP和FIB保持不变;同时,由于OSPF、BGP、ISIS路由协议均支持GR功能,在倒换期间,周边邻居设备也保持相应邻居关系和路由不变,因此网络中IP报文的转发路径不发生改变,保证了三层单播转发业务不发生中断。
4)三层组播
对于三层组播来说,在平滑的过程中,同样,由于原先建立的组播表项在接口板保留不变,原有的组播业务流可以保证正常转发。
5)MPLS VPN
对于MPLS/VPN业务来说,由于在平滑过程中,接口板上原有MPLS/VPN业务所涉及的INLIF等均维持不变,因此可保证原有的MPLS/VPN业务流的正常转发。