通信系统中实现高可用性(ha)的装置和方法

文档序号:7682495阅读:357来源:国知局
专利名称:通信系统中实现高可用性(ha)的装置和方法
技术领域
本发明属于通信领域,具体涉及通信系统中实现高可用性(HA)的装置和方法。
目前的HA系统基本上是以硬件平台和软件两个方面进行设计来提高系统的HA特性。硬件平台的实现方法主要包括硬件冗余备份、硬件故障的监测和隔离、增强的高可用性结构等。软件的实现方法主要包括监测本地任务或线程的运行状态,对对端的(硬件冗余备份时)任务或线程进行监测,发现软件故障并进行报告和处理(隔离、恢复)并向对端(硬件冗余备份时)报告处理的结果等。
目前的HA系统或者只提供对硬件冗余的支持和管理,或者只对软件的HA提出一些解决方法或支持。在硬件实现中,提供尽可能的硬件冗余资源(节点、网络、磁盘);在软件管理方面,一般的解决方案为应用提供具有一致性和完整性的数据访问,包括卷管理、文件系统、在线数据备份等;提供进程守护,对本地任务进行守护,并对守护的任务进行维护,这种方法考虑的是单机情况下的操作,没有考虑冗余备份时的数据一致和状态一致的解决办法,并不完全满足于冗余系统的HA实现。对于电信设备的高HA要求,由于对硬件和软件的HA缺乏一定的管理和协调,不管采用现有技术的那一种方案(包括两种方案同时使用),可能不能保证可以实现电信系统的HA要求。
本发明提供一种通信系统中实现高可用性(HA)的装置,包括面向平台的装置(HA-OP),用于与所述通信系统中使用的平台进行数据交互,其中,包括中断接口装置和异常触发装置,分别用于处理所述平台的中断请求和异常触发信号;面向应用的装置(HA-OA),用于监测本地任务或线程的运行;监测对端任务或者线程和进行心跳检测;HA判决装置(HA-ARB),包括平台决策装置,用于决策所述面向平台的装置中不能处理的异常触发信号;和任务决策装置,根据所述面向应用的装置的检测结果,决定切换或重新启动。
可选地,所述面向平台的装置还包括检测装置,用于检测本端和对端的硬件资源;管理装置,用于管理节点之间的竞争资源,获得竞争资源的所属关系,决定面向平台部分的状态信息,其中,竞争资源的所属关系可以通过在高层软件的控制而改变;其中,所述HA判决装置处理所述管理装置和检测装置的信息。
优选地,所述管理装置包括管理看门狗定时器的装置;管理备板I/O的驱动器的装置;管理当前节点的状态(变量值)的装置;所述检测装置包括检测CPU、风扇和电源模块、以太网卡及串口、并口和SCSI(小型计算机系统接口)接口的子装置。
可选地,所述面向应用的装置包括判断装置,用于判断本地和对端任务或线程的运行是否死锁,其中,包括发送装置,通过发送信息判定线程或者任务是否出现问题;心跳检测装置,用于检测对端的HA-OA的状态,发现对端心跳丢失时,向所述HA判决装置报告;传输装置;连接所述判断装置和所述心跳检测装置,用于与所述HA判决装置进行交互。
优选地,所述HA判决装置还包括记录装置,用于记录节点的工作状态,平台的状态,节点任务或线程的状态;
处理装置,用于根据所述记录装置记录的信息和与所述面向平台的装置和所述面向应用的装置交互的信息,确定所述HA的决策。
本发明还提供一种利用如权利要求1所述的装置实现通信系统中高可用性(HA)的方法,其特征在于,包括步骤确定至少两个HA-OA的状态,其中,一个为主用,其它为备用;主用端HA-OA对本节点上的应用和对端的备用节点进行心跳检测;HA-ARB根据检测结果,判断所述应用是否可以重启且重启是否成功;如果可以重启且成功,结束本方法;如果不可以重启或重启不成功,HA-OA向HA-ARB请求切换。
如果HA-ARB向HA-OA返回可以切换,进行切换;如果返回不可以切换,结束本方法。
可选地,所述主用端HA-OA对本节点上的应用和对端的备用节点进行心跳检测的步骤;包括如果失去某一个应用的心跳检测,HA-OA向HA-ARB询问需要重启或切换;如果失去了对端的备用节点HA-OA的心跳,记录该状态,并向HA-ARB报告。
优选地,所述进行心跳检测的步骤包括连续三次未收到心跳应答,判断为失去心跳检测。
可选地,所述进行切换的步骤包括HA-OA向HA-ARB通知进行应用切换,同时启动一个定时器;
如果在定时器间隔内收到应用的切换完成应答,或者定时器超时,通知HA-ARB进行切换。
优选地,所述确定至少两个HA-OA的状态的步骤还包括设定初始化所述HA系统或协商初始化所述HA系统;其中,所述设定初始化所述HA系统的步骤包括读取预存储的设定信息,设定主用HA和备用HA;所述协商初始化所述HA系统的步骤包括判定所述至少两个HA-OA中的一个获取对系统控制的HA-OA,设定所述获取控制的HA-OA为主用HA-OA,通知其它HA-OA为备用HA-OA。
可选地,所述判定所述至少两个HA-OA中的一个获取对系统控制的HA-OA的步骤包括判断所述至少两个HA-OA的那个首先加电,设定首先加电的HA-OA为主用,其它为备用;和/或判断系统总线由所述至少两个HA-OA中的那个控制,设定所述获得控制权的HA-OA为主用,其它为备用;如果没有一个HA-OA控制系统总线或首先加电,所有HA-OA通信确认一个HA-OA为主用,其它为备用。
优选地,所述所有HA-OA通信确认一个HA-OA为主用的步骤包括根据设定优先权确定主用;或根据所有的HA-OA产生的随机数的大小确定主用。
可选地,所述所有HA-OA通信确认一个HA-OA为主用的步骤包括所述至少两个HA-OA中的任一个发出要求控制或被控制的请求,如果未在预定时间内收到其它HA-OA的拒绝消息,确认该HA-OA为主用或备用。
优选地,所述确定至少两个HA-OA的状态的步骤由HA-ARB执行,其中,还包括步骤所述HA-ARB通知HA-OA当前节点的状态。
可选地,所述判断所述应用是否可以重启的步骤包括,在本地应用故障和/或本地平台故障和本地和对端节点故障时,HA-ARB发送不可重启消息,在本地和对端节点正常运行或对端节点故障时,HA-ARB根据预先设定,发送可以或不可以重启消息;所述方法还包括步骤在HA-OA报告应用异常时,如果出现本地平台故障,进入本地应用和平台故障状态,如果节点正常运行,进入本地应用故障状态;如果对端节点故障,进入对端节点和本地故障状态;所述如果HA-ARB向HA-OA返回可以切换的步骤包括,判断对端节点是否正常,如果正常,可以切换;所述方法还包括步骤,在切换后,改变系统的状态,如果不能切换,报告故障。
本发明提供硬件冗余资源;和软件管理冗余备份时的数据一致和状态一致的解决办法,可以实现电信系统的HA要求。
图4为图3中的主用端HA面向应用部分(HA-OA)的工作流程图;图5为图3中的备用端HA面向应用部分(HA-OA)的工作流程图;图6为图3中的HA判决部分(HA-ARB)的工作流程图。
针对电信设备对HA管理系统的较高要求,本发明的实施例的HA管理装置和方法解决在对HA特性要求高(采用硬件和软件共同来实现高可用性)的系统的HA管理的实现。


图1是本发明的实施例中HA装置在系统中的原理示意图。本发明的实施例的系统中存在两个节点,工作在2N冗余模式下。在不同系统中,存在不同的硬件平台和操作系统。而HA的软件经过较小的修改后,可以运行在不同的操作系统和硬件平台上。本发明的实施例中,在RNC(无线网络控制器)的应用中,采用CPCI(Compact PCI)平台ZT5083(这是INTEL公司生产的CPCI HA平台),在CPCI平台操作系统采用VxWorks 5.4(这是WIND RIVER公司的嵌入式操作系统)。
HA管理系统位于应用程序和硬件平台之间。其主要功能是管理本节点和对端节点硬件和软件上的HA实现,使两个节点能够协调一致的工作,并和对端的HA管理系统来协商完成整个系统的HA实现。
在这个实施例中,实现了硬件冗余备份、硬件故障的监测和隔离。软件能够监测本地任务或线程的运行状态,对对端的任务或线程进行监测,发现软件故障并进行报告和处理(隔离、恢复),并把处理的结果报告给对端节点。
系统中存在两个节点,工作在2N冗余模式下。在不同系统中,存在不同的硬件平台和操作系统。HA软件经过较小的修改后,可以运行在不同的操作上。在RNC(无线网络控制器)的应用中,采用CPCI(Compact PCI)平台ZT5083(INTEL公司的CPCI HA平台),在CPCI平台操作系统采用VxWorks 5.4(WIND RIVER公司的嵌入式操作系统)。
在本发明的实施例中的2N(1+1备份)冗余工作模式下,节点的状态有两种Active(主用)和Standby(备用)。其中,主用端10状态的节点具有对竞争资源的控制权,向外提供正常的功能;备用端20的节点一般主要是保持和主用节点之间的状态和数据同步,准备在主用节点发生故障时,接替主用节点的位置。
主用端10和备用端20的硬件结构是相同的,因此,这里仅描绘主用端10。其中,硬件(HW)通过操作系统(OS)与HA相互作用,硬件(HW)和HA也可以直接相互作用,然后用于应用层(Application)。主用端10和备用端20通过心跳线进行交互和控制。
在CPCI平台上,主用端10和备用端20的两个CPU板对CPCI总线的控制权在系统加电以后就决定了,因此节点的主用/备用状态只能根据对总线的控制权来决定,即加电时主用端10获得了对总线的控制权。而在两个独立工作站构成的双机系统中,不存在类似的竞争资源,因此节点的状态需要根据事先指定的状态或者协商决定(在两个独立工作站构成的双机系统中,共享的磁盘系统和对外提供服务通信线路为竞争资源,但竞争资源的归属由节点状态决定,此时的节点状态主要由预先指定和协商共同作用决定)。综合这些情况,节点状态初始化的设定可以有三种方法预先设定、竞争、或者协商。节点初始化时首先会查询是否存在竞争资源和竞争资源的所属关系来决定节点的初始化状态。如果没有竞争资源,节点会查询是否存在预先设定的状态,如果存在预先设定的状态,就依据预先设定的状态来决定节点的状态。如果不存在预先设定的状态,或者预先设定的状态存在冲突,则进行协商设定。
在本发明的实施例1中,采用竞争设定竞争设定与HA实现的硬件环境密切相关,此时系统中的两个节点之间存在竞争资源,并且,这种竞争资源的最初所属关系在系统加电后就可以明确是那一个节点获得了竞争资源。硬件平台应该保证不存在节点状态的冲突。针对CPCI平台,在CPCI中存在竞争资源(CPCI总线)。BSP(板级支持包)中存在函数,HA软件可以通过这些函数来查询或者改变竞争资源的所属关系。
在本发明的实施例2中采用预先设定HA软件中,存在变量明确规定节点的状态。HA软件获得这个状态后,需要和另外的节点进行确认,如果存在冲突,则通过协商设定的方法解决。如果另外节点不存在,则本身设为主用状态。
协商设定如果节点状态没有预先设定和竞争设定,或者预先设定的状态存在冲突,就进行协商设定。节点之间需要通过一种通信方式来协商主备关系。
节点状态的设定过程如下步骤a、系统启动以后,在CPCI中调用BSP提供的函数,来判断当前节点对CPCI总线的控制权,获得控制权的节点状态是主用,没有控制权的节点状态是备用,节点状态初始化完毕,跳到步骤d;在双节点系统中,跳过该步骤。
步骤b、读取HA软件中变量规定的节点状态,如果没有设置节点状态则跳到步骤c;否则和对端进行通信来确认节点的状态,如果对端不存在,则设置自己为主用,状态设置结束,跳转道步骤d。否则,如果存在状态冲突,且对端的状态是明确的(一个节点首先启动,只可能是主用),因此,只能设置本节点为备用,状态设置完毕,跳到步骤d。如果对方状态不明确(同时启动),就跳转到步骤c进行协商确定。如果状态不冲突,状态设置完毕,跳到步骤d.
步骤c、协商设定和对端进行通信来协商确定节点的状态。如果对端节点不存在,则设置自己为主用,状态设置结束,跳转道步骤d。如果对端节点存在且状态明确(一个节点首先启动,只可能是主用),因此,只能设置本节点为备用,状态设置完毕,跳到步骤d。否则根据策略进行协商。协商策略有很多种,例如,双方各产生一个随机数,随机数大的就是主用,小的就是备用。
步骤d、结束。
图2示出了图1的包括HA装置的系统的节点初始化时的状态的流程图。
在步骤10,HA管理系统开始初始化,然后在步骤11,判断是否存在竞争资源如果存在竞争资源,到步骤12;如果不存在竞争资源,到步骤14;在步骤12,调用平台HA的函数来判断当前竞争资源的控制权属于那个节点。在步骤13,根据步骤12的结果,得到竞争资源的节点状态为主用,没有得到竞争资源的节点状态为备用。初始化结束。
在步骤14,判断本端节点的状态是否设定,如果设定,到步骤15;如果没有设定,到步骤21。
在步骤15,和对端节点通信,在步骤16,根据通信结果来判断对端节点是否存在,如果对端节点存在,到步骤17;如果对端节点不存在,到步骤20;在步骤17,询问对端节点状态是否明确,如果状态明确,到步骤18,如果不明确,到步骤1,是步骤21的开始;在步骤18,判断和对端节点的状态是否存在冲突,如果存在冲突,到步骤19;如果不存在冲突,初始化结束。在步骤19,设置本端节点的状态为对端节点相反的状态,初始化结束。
在步骤20,由于对端节点不存在,设置本端节点的状态为主用,初始化结束。
在步骤21,判断对端节点是否存在,如果存在,到步骤22;如果不存在到步骤25。在步骤22,判断对端节点的状态是否明确,如果对端节点的状态明确,到步骤23;如果对端节点的状态不明确,到步骤24。在步骤23,设置本端节点的状态为对端节点相反的状态,初始化结束。
在步骤24,根据一定的策略和对端节点协商确定节点的状态。初始化结束。
在步骤25,由于对端节点不存在,设置本端节点的状态为主用,初始化结束。
图3为图1的本发明实施例中HA装置在系统中更具体的原理框图。HA包括三个部分面向应用的部分(HA-OA),面向平台的部分(HA-OP)和HA判决部分(HA-ARB)。
面向平台的部分(HA-OP)在图3中的框33或者框33’,随着平台的不同而不同,一般不作为独立任务或进程运行,主要由各种中断和异常触发来完成。在操作系统允许的情况下,尽可能的接管平台运行过程中的各种异常中断。如果这些异常操作系统不能处理的话,HA-OP(面向平台的部分)(图3中的框33或者框33’)向HA-ARB(HA判决部分)报告这一事件,由HA-ARB(图3中的框32或者框32’)来进行决策。这些异常可能包括除零,非法指令,数据对齐等异常操作(需要操作系统的支持)。进行双机的硬件资源的检测,管理节点之间的竞争资源,获得竞争资源的所属关系,决定面向平台部分的状态信息,在高层软件的控制下,可以改变这种所属关系。
1、存在竞争资源,并且已经获得竞争资源的控制权。
在CPCI系统中,竞争资源包括对CPCI总线的控制权(对背板总线的获得和释放)。
2、存在竞争资源,但没有获得竞争资源的控制权。
在CPCI系统中,竞争资源包括对CPCI总线的控制权(对背板总线的获得和释放)3、不存在竞争资源。
在双工作站构成的双机系统中,不存在竞争资源。
4、平台资源的状态(正常或者故障)。
在CPCI系统中,应可报告或检查的平台资源(非竞争资源)有a)Watchdog timer(看门狗定时器)超时
b)备板I/O的Driverc)当前节点的状态(变量值)d)对端节点否存在CPCI系统使用hot swap(热插拔)标准监测。
e)风扇和电源模块是否正常(CPCI系统)f)CPU温度是否异常g)监测以太网卡是否异常h)监测串口、并口和SCSI(小型计算机系统接口)接口是否正常i)监测I/O板的Hot swap。(CPCI系统)面向应用部分(HA-OA)(图3中的框31或者框31’)一般作为一个独立线程或任务运行,具有以下功能1、监测本地任务或线程的运行是否死锁(死锁检测具体由HA-OA完成),并向HA-ARB(图中的框32或者框32’)报告,由HA-ARB(图中的框32或者框32’)来决定是否切换,或者重新启动该应用,策略需要预先由应用告诉HA-ARB(图中的框32或者框32’)。检测通过发送消息的方式,判定线程或者任务是否出现问题。此外,根据应用的程序的具体情况,平衡各个任务或线程之间对检测的响应时间的不同。
2、监测对端任务或者线程是否正常,记录对端报告的每个对应线程或者任务状态,并向HA-ARB报告。由HA-ARB来决策。
3、心跳检测由于HA-OA作为独立的任务或者线程运行,因此需要通过心跳方式,监测对方HA-OA的状态。当发现对端心跳丢失时,向HA-ARB报告这一事件,由HA-ARB来决策。
图4描绘了图3中的主用端HA-OA的工作流程图。
在步骤41,HA-OA开始执行。
在步骤42,主用端HA-OA向本节点上的应用和对端的备用节点发送心跳检测。
在步骤43,如果失去某一个应用的心跳检测(连续3次没有收到心跳应答)。
在步骤44,HA-OA向HA-ARB询问,该应用是否可以重启。如果可以重启,到步骤45;如果不可以重启,到步骤46。
在步骤45,判断重启任务是否成功,如果成功,结束。
在步骤46,HA-OA记录该应用异常,并向HA-ARB报告这一异常。
在步骤47,HA-OA向HA-ARB请求切换。如果,HA-ARB向HA-OA返回可以切换,到步骤48,如果返回不可以切换,结束。
在步骤48,通知应用切换,并启动一个定时器。
在步骤49,在定时器间隔内收到应用的切换完成应答,或者定时器迢时,到步骤410。
在步骤410,通知HA-ARB进行切换。
在步骤411,如果失去了对端HA-OA的心跳(连续3次没有收到心跳应答)。
在步骤412,认为对端HA-OA故障或者不存在。
在步骤413,记录对端HA-OA故障或者不存在。并向HA-ARB报告这一异常。
图5为图3中的备用端HA-OA的工作流程图。
在步骤51,HA-OA开始执行。
在步骤52,备用端HA-OA向本节点上的应用和对端的备用节点发送心跳检测。
在步骤53,如果失去某一个应用的心跳检测(连续3次没有收到心跳应答)。
在步骤54,HA-OA向HA-ARB询问,该应用是否可以重启。如果可以重启,到步骤55;如果不可以重启,到步骤56。
在步骤55,判断重启任务是否成功,如果成功,结束。
在步骤56,HA-OA记录该应用异常,并向HA-ARB报告这一异常。
在步骤57,如果失去了对端HA-OA的心跳(连续3次没有收到心跳应答)。
在步骤58,认为对端HA-OA故障或者不存在。
在步骤59,记录对端HA-OA故障或者不存在。并向HA-ARB报告这一异常。
在步骤510,通知应用切换,并启动一个定时器。
在步骤511,在定时器间隔内收到应用的切换完成应答,或者定时器超时,到步骤510。
在步骤512,通知HA-ARB进行切换。
HA判决部分(HA-ARB)(图中的框32或者框32’)也是作为一独立的线程或任务运行。
图6为图3中的HA判决部分(HA-ARB)的工作流程图。
在步骤61,HA-ARB开始运行。
在步骤62,HA-ARB调用HA管理系统的初始化过程得到当前的节点状态,具体过程参见图2和图2的执行过程在步骤63,HA把当前节点的状态通知HA-OA.,在步骤64,HA-ARB根据HA-OA和HA-OP的信息来决定是否切换。
下面结合表1用状态FSM(有线状态机)来描述HA-ARB决定是否切换的方法。
表1HA-ARB工作的FSM(有限状态机) 注-无状态变化/不期望事件,无状态变化。
HA判决部分(HA-ARB)具有如下功能1、记录节点的工作状态(主用/备用)(来自初始化过程),记录平台的状态(是否有资源故障,并对资源故障分级别记录)来自HA-OP(图3中的框33或者框33’),记录本节点和对端节点任务或线程的状态(是否工作异常或死锁,并对故障进行分级别记录),来自本节点的HA-OA(图中的框31或者框31’)和对端的HA-ARB(图3中的框2或者框2’)。
2、提供一定的算法,和对端的HA-ARB(图3中的框32或者框32’)一起,对HA-OA(图3中的框31或者框31’)和HA-OP(图3中的框33或者框33’)报告的HA信息进行综合处理,并决定相应的决策。
3、故障分类critical(严重)故障立即进行切换。
Major(重要)故障需要进行切换隔离故障,但可进行应用的同步。
Minor(微小)故障可以忍受的故障,可不进行切换。
其中,具体的决策策略和算法在下文描绘切换过程中详细描述。
4、决定心跳信息和检测、传输方法。
切换过程●应用(非HA管理系统)发起的切换请求应用发起的切换命令通过任务或线程转发给HA-OA,由HA-OA转发给HA-ARB,由HA-ARB决定是否能够切换,如果不能够切换,则返回不能够切换的原因。同时允许应用强制改变节点的状态,即HA_ARB接到切换命令后,略过切换判断策略,直接进行切换。
主用端任务或线程发现内部故障,首先本身进行故障恢复,如果恢复不了,则通知HA-OA,由HA-OA转发给HA-ARB,HA-ARB决定是否重新启动或者进行切换,HA-ARB同时向备用端的HA-ARB报告,更新备用端记录的任务或线程状态。备用端任务或线程发现内部故障同样进行处理,只是,备用端不进行切换过程。
在错误恢复的过程中,如果任务或者线程允许,应该首先选择重新启动发生故障的任务或者线程。HA-根据当前节点和另一个节点运行的状态(包含应用的状态),决定是否允许进行切换。如果可以切换,则首先发送切换准备消息到各个任务或者线程,设定定时器,如果在定时器间隔内收到应答,或者定时器超时,根据不同的情况,进行处理如果不存在竞争资源,则HA-OA和对方协商新的状态。
如果存在竞争资源,则调用HA-OP,获得或者释放竞争资源。
不管切换是否成功,向各个任务或者线程报告新的节点状态。如果切换是由于任务或者线程通过请求发起的,则应答。●HA管理系统发起的切换请求1、HA-OA发现本地的任务或线程死锁或异常如果节点处于主用状态,HA-OA向HA-ARB报告这一事件,HA-ARB根据预先设定的策略,选择重新启动或进行切换;如果节点处于备用状态,则不发生切换过程,其它处理相同。
如果需要进行切换,则切换的过程和应用(非HA管理系统)发起的切换请求的处理相同。
2、HA-ARB收到HA-OP故障报告根据故障的级别,决定是否进行切换,如果需要切换,则切换过程和应用(非HA管理系统)发起的切换请求的处理相同。
HA_OP通过检测,将发现的故障上报给HA_ARB,由HA_ARB发出切换的请求。
当HA-OP检测到硬件、操作系统发生故障时,通知HA_ARB,考虑应用情况的复杂性,这些故障需要依据不同故障类型进行分类,不同故障采取不同的处理。
有些故障,HA-OP会采取相应的动作,正常的节点主动获得竞争资源,此时,HA-OP向HA-ARB报告竞争资源的状态发生了变化,HA-ARB来判定新的状态。
有些故障,HA-OP只是进行检测,由HA-ARB决定是否进行切换到新的状态。如果HA-ARB决定切换,则首先通过HA-OA向各个任务或者线程发送通知准备切换,启动定时器,在定时器超时或者全部收到应答后,和对方协商新的状态。
无论那种方法,当新的状态决定之后,如果发生变化,则向任务或者线程进行报告,以便任务或者线程根据新的状态进行不同的处理。
HA-OP存在故障和正常状态,应该尽可能的通知HA-ARB,以便HA-ARB进行决策时,能够得到关于平台的信息。
3、HA-OA收到HA-ARB竞争资源所属关系变化的通知根据竞争资源,判断当前的状态,然后向任务或者线程发送通知。
4、心跳监测心跳监测用来监测两个节点的HA运行是否正常。
如果,主用端监测到备用端失去心跳,则认为备用端的HA故障,记录故障发生,并向网管报告故障。如果主用HA-OA重新监测到备用端HA-OA的心跳,则认为故障恢复,清除故障记录。
如果,备用端监测到主用端失去心跳,则认为主用端的HA故障,HA-ARB进行强制切换,调用HA-OP获得竞争资源(如果需要),使其变为主用,同时向各个任务或者线程发送状态改变的通知。这时如果出现错误,则应当根据指定策略使备用端进行状态跃迁。
虽然通过实施例描绘了本发明,本领域普通技术人员知道,本发明有许多变形和变化而不脱离本发明的精神,希望所附的权利要求包括这些变形和变化而不脱离本发明的精神。
权利要求
1.一种通信系统中实现高可用性(HA)的装置,其特征在于,包括面向平台的装置(HA-OP),用于与所述通信系统中使用的平台进行数据交互,其中,包括中断接口装置和异常触发装置,分别用于处理所述平台的中断请求和异常触发信号;面向应用的装置(HA-OA),用于监测本地任务或线程的运行;监测对端任务或者线程和进行心跳检测;HA判决装置(HA-ARB),包括平台决策装置,用于决策所述面向平台的装置中不能处理的异常触发信号;和任务决策装置,根据所述面向应用的装置的检测结果,决定切换或重新启动。
2.如权利要求1所述的装置,其特征在于,所述面向平台的装置还包括检测装置,用于检测本端和对端的硬件资源;管理装置,用于管理节点之间的竞争资源,获得竞争资源的所属关系,决定面向平台部分的状态信息,其中,竞争资源的所属关系可以通过在高层软件的控制而改变;其中,所述HA判决装置处理所述管理装置和检测装置的信息。
3.如权利要求2所述的装置,其特征在于,所述管理装置包括管理看门狗定时器的装置;管理备板I/O的驱动器的装置;管理当前节点的状态(变量值)的装置;所述检测装置包括检测CPU、风扇和电源模块、以太网卡及串口、并口和SCSI(小型计算机系统接口)接口的子装置。
4.如权利要求1所述的装置,其特征在于,所述面向应用的装置包括判断装置,用于判断本地和对端任务或线程的运行是否死锁,其中,包括发送装置,通过发送信息判定线程或者任务是否出现问题;心跳检测装置,用于检测对端的HA-OA的状态,发现对端心跳丢失时,向所述HA判决装置报告;传输装置;连接所述判断装置和所述心跳检测装置,用于与所述HA判决装置进行交互。
5.如权利要求1所述的装置,其特征在于,所述HA判决装置还包括记录装置,用于记录节点的工作状态,平台的状态,节点任务或线程的状态;处理装置,用于根据所述记录装置记录的信息和与所述面向平台的装置和所述面向应用的装置交互的信息,确定所述HA的决策。
6.一种利用如权利要求1所述的装置实现通信系统中高可用性(HA)的方法,其特征在于,包括步骤确定至少两个HA-OA的状态,其中,一个为主用,其它为备用;主用端HA-OA对本节点上的应用和对端的备用节点进行心跳检测;HA-ARB根据检测结果,判断所述应用是否可以重启且重启是否成功;如果可以重启且成功,结束本方法;如果不可以重启或重启不成功,HA-OA向HA-ARB请求切换。如果HA-ARB向HA-OA返回可以切换,进行切换;如果返回不可以切换,结束本方法。
7.如权利要求6所述的方法,其特征在于,所述主用端HA-OA对本节点上的应用和对端的备用节点进行心跳检测的步骤;包括如果失去某一个应用的心跳检测,HA-OA向HA-ARB询问需要重启或切换;如果失去了对端的备用节点HA-OA的心跳,记录该状态,并向HA-ARB报告。
8.如权利要求7所述的方法,其特征在于,所述进行心跳检测的步骤包括连续三次未收到心跳应答,判断为失去心跳检测。
9.如权利要求6所述的方法,其特征在于,所述进行切换的步骤包括HA-OA向HA-ARB通知进行应用切换,同时启动一个定时器;如果在定时器间隔内收到应用的切换完成应答,或者定时器超时,通知HA-ARB进行切换。
10.如权利要求6所述的方法,其特征在于,所述确定至少两个HA-OA的状态的步骤还包括设定初始化所述HA系统或协商初始化所述HA系统;其中,所述设定初始化所述HA系统的步骤包括读取预存储的设定信息,设定主用HA和备用HA;所述协商初始化所述HA系统的步骤包括判定所述至少两个HA-OA中的一个获取对系统控制的HA-OA,设定所述获取控制的HA-OA为主用HA-OA,通知其它HA-OA为备用HA-OA。
11.如权利要求10所述的方法,其特征在于,所述判定所述至少两个HA-OA中的一个获取对系统控制的HA-OA的步骤包括判断所述至少两个HA-OA的那个首先加电,设定首先加电的HA-OA为主用,其它为备用;和/或判断系统总线由所述至少两个HA-OA中的那个控制,设定所述获得控制权的HA-OA为主用,其它为备用;如果没有一个HA-OA控制系统总线或首先加电,所有HA-OA通信确认一个HA-OA为主用,其它为备用。
12.如权利要求11所述的方法,其特征在于,所述所有HA-OA通信确认一个HA-OA为主用的步骤包括根据设定优先权确定主用;或根据所有的HA-OA产生的随机数的大小确定主用。
13.如权利要求11所述的方法,其特征在于,所述所有HA-OA通信确认一个HA-OA为主用的步骤包括所述至少两个HA-OA中的任一个发出要求控制或被控制的请求,如果未在预定时间内收到其它HA-OA的拒绝消息,确认该HA-OA为主用或备用。
14.如权利要求11所述的方法,其特征在于,所述确定至少两个HA-OA的状态的步骤由HA-ARB执行,其中,还包括步骤所述HA-ARB通知HA-OA当前节点的状态。
15.如权利要求6所述的方法,其特征在于,所述判断所述应用是否可以重启的步骤包括,在本地应用故障和/或本地平台故障和本地和对端节点故障时,HA-ARB发送不可重启消息,在本地和对端节点正常运行或对端节点故障时,HA-ARB根据预先设定,发送可以或不可以重启消息;所述方法还包括步骤在HA-OA报告应用异常时,如果出现本地平台故障,进入本地应用和平台故障状态,如果节点正常运行,进入本地应用故障状态;如果对端节点故障,进入对端节点和本地故障状态;所述如果HA-ARB向HA-OA返回可以切换的步骤包括,判断对端节点是否正常,如果正常,可以切换;所述方法还包括步骤,在切换后,改变系统的状态,如果不能切换,报告故障。
全文摘要
本发明提供了一种通信系统中实现高可用性(HA)的装置和方法。其中装置包括面向平台的装置(HA-OP),用于与所述通信系统中使用的平台进行数据交互,其中,包括中断接口装置和异常触发装置,分别用于处理所述平台的中断请求和异常触发信号;面向应用的装置(HA-OA),用于监测本地任务或线程的运行;监测对端任务或者线程和进行心跳检测;HA判决装置(HA-ARB),包括平台决策装置,用于决策所述面向平台的装置中不能处理的异常触发信号;和任务决策装置,根据所述面向应用的装置的检测结果,决定切换或重新启动。本发明提供硬件冗余资源;和软件管理冗余备份时的数据一致和状态一致的解决办法,可以实现电信系统的HA要求。
文档编号H04B1/74GK1476178SQ0314628
公开日2004年2月18日 申请日期2003年7月8日 优先权日2003年7月8日
发明者李海民, 滕建刚, 李敏行 申请人:大唐移动通信设备有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1