技术领域
[0001] 本发明涉及系统调度技术领域,尤其涉及一种双机主备裁决的方法及系统。
相关背景技术
[0002] 目前,铁路计算机化调度指挥系统(例如TDCS、CTC等)是保证中国铁路安全、高效运行的重要技术支撑。因此,这类系统关键部位的计算机软硬件必须为调度员或其他使用者提供7×24小时不间断的服务。为了确保服务质量,此类系统在技术实现上通常采用双机热备的形式,即使用互为热备的两台软、硬件配置一致的计算机作为一个整体共同执行同一服务,双机中一台为主用机,另一台为备用机。在正常情况下,同一时刻只有主用机进行逻辑运算、完成与其它设备的信息交换,为应用系统提供服务等任务;备用机监视主用机的运行情况,保持与主用机同步,同时主用机也在检测备用机是否正常。当主用机出现故障或由于维修等原因退出,不能支持应用系统运营时,在一定时间内将备用机升级为主用机,接替原主用机继续工作。上述双机热备系统能够正常工作并进行主备切换的关键,就是拥有一种执行主备切换决策的系统——双机主备裁决系统。
[0003] 现有技术方案中通用的裁决系统实现方式有两种:硬件裁决和软件裁决。硬件裁决方式是在双机之外引入第三方硬件装置(比如双控器),裁决硬件基于双机向其发送的运行状态信息进行主备判决;软件裁决方式是在双机中分别部署裁决软件,裁决软件基于双方之间的通信内容(心跳信息)进行主备判决。由于业务的需要,硬件裁决方式一般在前台用户操作终端上使用;软件裁决方式一般在后台服务器上使用。
[0004] 但上述现有技术的裁决方案中,硬件裁决方式如遇裁决硬件故障,将无法完成裁决功能,且硬件设备的引入也会增加整个双机热备系统的故障点;软件裁决方式由于双机的裁决软件之间是平等关系,因此在通信中断的情况下(比如心跳通道故障)会存在双方都升为主机或都降为备机的状态,即出现所谓的“脑裂”问题(相当于进行决策的大脑因故障而一分为二,分别自主决策)。上述状态将严重损害系统的可用性和可靠性,同时现有技术中也缺乏有效的方式将上述裁决方式进行集成,导致双机热备系统在两种方式间转换不便。
具体实施方式
[0028] 下面结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明的保护范围。
[0029] 下面将结合附图对本发明实施例作进一步地详细描述,如图1所示为本发明实施例提供的双机主备裁决的方法流程示意图,所述方法包括:
[0030] 步骤11:对宿主机的运行状态进行统一监测,依据监测结果生成状态报告。
[0031] 在该步骤中,具体是通过多线程技术对宿主机指定的应用软件心跳信息、以太网卡状态和串口通信设备状态进行不间断的实时监测,并依据监测结果生成宿主机状态报告。
[0032] 在具体实现中,上述状态报告还可以通过内部数据对象提供给主备裁决模块,同时对状态报告进行编码,分别以串行编码通过串口发送给双控器或对等机,以UDP数据报向宿主机所在的系统局域网组播发送。
[0033] 另外,当监测到宿主机故障后进行报警,且当宿主机中运行的特定应用软件出现运行故障时候,中止该故障软件,并重新启动该软件。
[0034] 步骤12:依据预先设定的配置文件内容在启动阶段启动对应的裁决模式执行代码。
[0035] 在该步骤中,在启动阶段,预先设定的配置文件中包含裁决模式配置项,依据配置文件内容在启动阶段启动对应的裁决模式执行代码,所述裁决模式包括双控器模式、直连模式和单机模式。
[0036] 其中,裁决模式的集成方法为:三种裁决模式的执行代码在软件编译阶段全部编译在本发明实施例的可执行模块中。在启动阶段,从配置文件中读取“裁决模式配置项”(该项内容确定了需要执行的裁决模式);可执行模块依据“裁决模式配置项”内容,在计算机内存中动态生成相应裁决模式的运行对象,并交由CPU(中央处理器)在单独的线程中予以运行。
[0037] 具体来说,所述的双控器模式为双机系统带有作为硬件裁决装置的双控器,通过与双控器进行通信,协作完成主备判决;所述的直连模式为双机系统中分别运行一套裁决软件实例,双方直接通信,以软件裁决的方式完成主备判决;所述的单机模式可以运行在单机系统中,负责完成对系统状态的监控工作。
[0038] 下面对上述三种裁决模式的工作过程进行详细说明:
[0039] 1)当选择双控器模式时,双机分别运行一个软件实例,每个软件实例分别通过串行通信端口与双控器进行通信;
[0040] 且各软件实例将其宿主机的监测结果通过串口发送给所述双控器,所述双控器通过串口返回主备判决结果。
[0041] 另外,上述每个软件实例根据本机状态、双控器主备判决结果、人工设定、对等机的状态进行综合运算,最终确定本机的主备状态,并将最终结果通过串口发送给双控器。
[0042] 同时,本发明实施例还进行了如下优化:利用系统局域网,主备双机之间增加网络心跳通道(最多2条,构成冗余配置),主备双机中运行的软件实例以UDP数据报方式互发心跳信息。这样可以确保在双控器故障情况下(此时双机上运行的本发明实例无法接收到双控器的主备判决结果),双机自动进入直连模式,并继续做出主备判决。
[0043] 在双控器恢复工作后(此时双机上运行的本发明实例能够接收到双控器的主备判决结果),双机的裁决软件实例自动恢复为双控器模式。
[0044] 2)当选择直连模式时,主备双机分别运行一个裁决软件实例,主备双机之间通过心跳通道互传监测结果;
[0045] 每个裁决软件实例根据本机状态、对等机状态或人工设定进行综合运算,裁决宿主机的主备状态,并将最终结果发送给对等机。
[0046] 同时,本发明实施例还进行了如下优化:
[0047] 在所述直连模式下,主备双机之间在通过一条串口通道互发心跳信息的基础上,利用系统局域网,增加网络心跳通道(最多2条,构成冗余配置),以UDP数据报方式互发心跳信息。这样可以保证只要有一条心跳通道正常,双机间互发的心跳信息就不受影响。
[0048] 在所述直连模式下,设置参考IP(如局域网内双机都连接的交换机的IP),当全部心跳通道故障后,双机的裁决软件实例都对参考IP执行Ping操作,即通过网络向参考IP地址发送Ping数据包;
[0049] 如果无法收到参考IP的回应数据包,则表明网络通道故障出现在本机这里,本机不具备升为主用机的必要条件;如果可以收到参考IP的回应数据包,则说明本机网络通道正常,故障出现在对等机上,本机具备升为主用机的必要条件。这样,执行Ping操作的结果可以作为裁定宿主机主备状态的重要的参考条件,避免了出现“脑裂”现象。
[0050] 3)在单机模式下,监测功能保持不变。由于对等机不存在,本发明的主备裁决功能会始终裁决宿主机为主用状态。
[0051] 另外,本发明实施例还增加了人工操作界面,进一步可以通过人工操作界面依据人工设定情况进行主备裁决。
[0052] 步骤13:根据所属裁决模式执行代码选择相应的裁决模式,并根据本机状态、对等机状态、双控器判决结果或人工设定进行综合运算,裁决宿主机的主备状态。
[0053] 具体来说,在“双控器模式”和“直连模式”下,主备裁决方法为:
[0054] 当下列条件全部满足时,将裁定宿主机由备用机升级为主用机:
[0055] 1)本机运行状态正常;
[0056] 2)对等机不是主用机。
[0057] 当满足下列条件之一时,将裁定宿主机由主用机降级为备用机:
[0058] 1)本机运行状态异常;
[0059] 2)对等机已经是主用机。
[0060] 另外,如果使用了“人工设定”,则以人工设定的主备状态为最终裁决结果。
[0061] 本发明实施例还提供了一种双机主备裁决的系统,如图2所示为本发明实施例所述系统的结构示意图,所述系统包括:
[0062] 状态监测单元,用于通过多线程技术对宿主机指定的应用软件心跳信息、以太网卡状态和串口通信设备状态进行不间断的实时监测,并依据监测结果生成状态报告;
[0063] 多裁决模式选择单元,用于依据预先设定的配置文件内容在启动阶段启动对应的裁决模式执行代码,所述裁决模式包括双控器模式、直连模式和单机模式;
[0064] 裁决执行单元,用于根据所属裁决模式执行代码选择相应的裁决模式,并根据本机状态、对等机状态、双控器判决结果或人工设定进行综合运算,裁决宿主机的主备状态。
[0065] 上述系统的具体实现方式见以上方法实施例子中所述。
[0066] 综上所述,本发明实施例能够在一个裁决软件中集成系统运行状态监测功能和多种主备裁决的功能,同时优化裁决算法,弥补上述两种通用裁决方式的不足。
[0067] 以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明披露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求书的保护范围为准。