一种基于进程冗余的容错系统及其设计方法

文档序号:6518066阅读:271来源:国知局
一种基于进程冗余的容错系统及其设计方法
【专利摘要】本发明涉及容错系统设计方法【技术领域】,特别涉及一种基于进程冗余的容错系统及其设计方法。本发明提出了一种基于进程冗余的容错机制和策略,对关键进程构造双模冗余或多模冗余,采用进程间同步等手段确保冗余进程按照同样的执行逻辑运行,监控系统并对不同的错误进行相应的错误处理,最终以此提高系统的可靠性和可用性。
【专利说明】一种基于进程冗余的容错系统及其设计方法
【技术领域】
[0001]本发明涉及容错系统设计方法【技术领域】,特别涉及一种基于进程冗余的容错系统 及其设计方法。
【背景技术】
[0002]随着银行事务处理、信息服务、金融计算等领域对计算机系统的广泛应用,对计算 机系统可靠性的要求也越来越高。容错是一种提高计算机系统可靠性的重要手段,容错的 含义是指在系统内部出现故障的情况下,计算机仍然能正确地执行指定算法。对于银行、电 信等关键领域的应用,计算机系统对于系统失效极其敏感,保证系统关键进程的可靠性至 关重要。常见的容错机制主要依据静态结构冗余原理实现,然而硬件层的冗余成本很高且 实现复杂,应用软件层的冗余则不具有通用性。
[0003]常见的软硬件容错机制,如处理器锁步技术、内存镜像技术、多路径I/O技术、N版 本程序设计等主要依据静态结构冗余原理实现,但硬件层的冗余成本很高且实现复杂,而 应用软件层的冗余则不具有通用性。

【发明内容】

[0004]为了解决现有技术的问题,本发明提供了一种基于进程冗余的容错系统及其设计 方法,其对关键进程构造双模冗余或多模冗余,采用进程间同步等手段确保冗余进程按照 同样的执行逻辑运行,监控系统并对不同的错误进行相应的错误处理,以此提高系统的可 靠性和可用性。
[0005]本发明所采用的技术方案如下:
一种基于进程冗余的容错系统,其全部集中于操作系统核心层,包括容错进程管理模 块、错误处理模块、I/o容错控制模块和监控管理模块,其中,
容错进程管理模块,用于实现冗余进程全生命周期管理,包括冗余进程的创建、调度、 同步、通信及销毁,使得原生进程及其冗余进程在有序执行原有逻辑的同时满足容错特性 的需要;
错误处理模块,当通过同步比较检测到冗余进程的运行中发生错误时,错误处理模块 进行故障类型诊断并根据预配置采取相应的处理方式,快速完成错误恢复;
I/o容错控制模块,负责容错系统内部数据与外部数据的格式转换和冗余控制,并辅助 I/o操作进行同步比较;
监控管理模块,包括运行于用户态的控制台和运行于内核态的监控管理模块,控制台 提供给用户直观的操作界面,用户通过控制台监测冗余进程运行状态,查看容错事件日志, 对系统的主要参数进行配置等;控制台的所有数据通过与内核监控模块交互获得。
[0006]容错进程管理模块对fork、clone和vfork系统调用进行容错控制,在do_fork( )函数的基础上,增加了 do_double_fork()和do_ft_fork()两个功能函数,实现了控制 应用程序派生双模进程和双模进程派生各自子进程的功能。[0007]I/O容错控制模块包括终端接口、磁盘接口、以及网络接口。
[0008]一种基于进程冗余的容错系统的设计方法,包括:(I)、以SMP架构中的多CPU为 冗余硬件,构造冗余任务在独立的CPU组上并行执行,通过对冗余任务的执行数据进行比 较实现检错,并使用降模、重启等机制完成错误恢复;(2)、在Linux操作系统中添加容错容 器,容错容器中的应用以冗余方式运行,由进程容错系统负责管理冗余任务,分别在冗余硬 件上独立执行,并控制任务同步、数据比较、错误检测和恢复。
[0009]在容错容器中,一组冗余任务执行相同的功能代码,在其运行过程中,容错系统对 其进行管理、同步和监控,并根据数据比较结果进行错误检测,容错容器外的任务仍以普通 单模方式运行。
[0010]本发明提供的技术方案带来的有益效果是:
本发明给出了一种基于进程冗余的容错系统及其设计方法,设计了基于进程冗余的容 错策略和方法,并实现了进程容错系统的原型系统,对关键进程进行冗余,并通过同步机制 保证进程的正确执行,并对系统监控来进行相应的错误处理。实验证明该方法性能损耗小, 并能有效地提高系统的可靠性,同时避免了硬件定制的复杂性,并对应用程序和用户透明。
【专利附图】

【附图说明】
[0011]图1为本发明的一种基于进程冗余的容错系统及其设计方法的系统模块关系图; 图2为本发明的一种基于进程冗余的容错系统及其设计方法的容错进程创建流程图; 图3为本发明的一种基于进程冗余的容错系统及其设计方法的工作流程图。
【具体实施方式】
[0012]为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方 式作进一步地详细描述。
[0013]如附图1所示,一种基于进程冗余的容错系统,其全部集中于操作系统核心层,包 括容错进程管理模块、错误处理模块、I/o容错控制模块和监控管理模块,其中,
容错进程管理模块,用于实现冗余进程全生命周期管理,包括冗余进程的创建、调度、 同步、通信及销毁,使得原生进程及其冗余进程在有序执行原有逻辑的同时满足容错特性 的需要;
错误处理模块,当通过同步比较检测到冗余进程的运行中发生错误时,错误处理模块 进行故障类型诊断并根据预配置采取相应的处理方式,快速完成错误恢复;
I/o容错控制模块,负责容错系统内部数据与外部数据的格式转换和冗余控制,并辅助 I/o操作进行同步比较;
监控管理模块,包括运行于用户态的控制台和运行于内核态的监控管理模块,控制台 提供给用户直观的操作界面,用户通过控制台监测冗余进程运行状态,查看容错事件日志, 对系统的主要参数进行配置等;控制台的所有数据通过与内核监控模块交互获得。
[0014]容错进程管理模块对fork、clone和vfork系统调用进行容错控制,在do_fork( )函数的基础上,增加了 do_double_fork()和do_ft_fork()两个功能函数,实现了控制 应用程序派生双模进程和双模进程派生各自子进程的功能。
[0015]参考附图2,容错进程管理模块对fork、clone和vfork系统调用进行容错控制,在do_fork()函数的基础上,增加了 do_double_fork()和do_ft_fork()两个功能函 数,实现了控制应用程序派生双模进程和双模进程派生各自子进程的功能。在容错系统中, 一个进程要派生子进程将会调用fork、clone或vfork系统调用中的一个,系统会首先根据 ft_mak标志位判断当前进程是否是冗余进程,如果是,调用do_ft_fork()函数创建冗余 进程的子进程;如果否,则判断是否有容错标志ft_exec,如果有,表明需要容错,调用do_ double_fork()函数,派生冗余进程;如果不需要容错,调用系统中原有的do_fork()函 数,正常派生进程。通过上述控制,实现了不同情况下进程派生的需要。
[0016]I/O容错控制模块包括终端接口、磁盘接口、以及网络接口。根据不同的I/O种类, 设计系统I/o容错控制模块结构也可以主要包含两个子模块,磁盘/终端读写I/O控制和 网络数据读写I/O控制。
[0017]参照附图3,对本发明的内容以一个具体实例来描述实现这一体系结构的过程。
[0018]用户通过容错控制台界面启动应用程序,打开容错开关(设置标志位ft_eXeC)进 程容错系统为该应用程序创建一对进程(原生-冗余进程),这一对进程装载应用程序相同 的执行代码,并开始在独立的CPU组上并行执行。
[0019]在同步协议控制下,原生-冗余进程对同时到达同步点,并开始同步,若其中某个 进程在同步点上等待超时,则触发错误进入故障检测、错误处理。如果同步点上的操作为I/ 0操作,需要进行I/O转换,判断操作是否为写操作,若是则对原生-冗余进程对写出的数据 进行比较,数据相同则认为执行正确,若比较数据不同则认为存在故障,进入故障检测、错 误处理流程。若I/o操作为读操作,则I/O容错控制模块完成I/O接口的数据转换,并执行 最终的实际功能操作。
[0020]若同步点上的操作为非I/O操作,则直接在同步点上进行状态一致性调整,如统 一函数返回值,记录当前进程状态信息,完成本次同步。
[0021 ] 以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和 原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
【权利要求】
1.一种基于进程冗余的容错系统,其全部集中于操作系统核心层,包括容错进程管理 模块、错误处理模块、I/o容错控制模块和监控管理模块,其中,容错进程管理模块,用于实现冗余进程全生命周期管理,包括冗余进程的创建、调度、 同步、通信及销毁,使得原生进程及其冗余进程在有序执行原有逻辑的同时满足容错特性 的需要;错误处理模块,当通过同步比较检测到冗余进程的运行中发生错误时,错误处理模块 进行故障类型诊断并根据预配置采取相应的处理方式,快速完成错误恢复;I/o容错控制模块,负责容错系统内部数据与外部数据的格式转换和冗余控制,并辅助 I/o操作进行同步比较;监控管理模块,包括运行于用户态的控制台和运行于内核态的监控管理模块,控制台 提供给用户直观的操作界面,用户通过控制台监测冗余进程运行状态,查看容错事件日志, 对系统的主要参数进行配置等;控制台的所有数据通过与内核监控模块交互获得。
2.根据权利要求1所述的一种基于进程冗余的容错系统,其特征在于,所述的容错进 程管理模块对fork、clone和vfork系统调用进行容错控制,在do_fork()函数的基础上, 增加了 do_double_fork()和do_ft_fork()两个功能函数,实现了控制应用程序派生双 模进程和双模进程派生各自子进程的功能。
3.根据权利要求1所述的一种基于进程冗余的容错系统,其特征在于,所述的I/O容错 控制模块包括终端接口、磁盘接口、以及网络接口。
4.一种基于进程冗余的容错系统的设计方法,包括:(I)、以SMP架构中的多CPU为冗 余硬件,构造冗余任务在独立的CPU组上并行执行,通过对冗余任务的执行数据进行比较 实现检错,并使用降|吴、重启等机制完成错误恢复;(2)、在Linux丨呆作系统中添加各错各 器,容错容器中的应用以冗余方式运行,由进程容错系统负责管理冗余任务,分别在冗余硬 件上独立执行,并控制任务同步、数据比较、错误检测和恢复。
5.根据权利要求4所述的一种基于进程冗余的容错系统的设计方法,其特征在于,在 容错容器中,一组冗余任务执行相同的功能代码,在其运行过程中,容错系统对其进行管 理、同步和监控,并根据数据比较结果进行错误检测,容错容器外的任务仍以普通单模方式 运行。
【文档编号】G06F11/07GK103593251SQ201310546513
【公开日】2014年2月19日 申请日期:2013年11月7日 优先权日:2013年11月7日
【发明者】王恩东, 胡雷钧, 张东, 吴楠, 刘璧怡 申请人:浪潮电子信息产业股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1