CN103455393A - 一种基于进程冗余的容错系统设计方法 - Google Patents
一种基于进程冗余的容错系统设计方法 Download PDFInfo
- Publication number
- CN103455393A CN103455393A CN2013104389635A CN201310438963A CN103455393A CN 103455393 A CN103455393 A CN 103455393A CN 2013104389635 A CN2013104389635 A CN 2013104389635A CN 201310438963 A CN201310438963 A CN 201310438963A CN 103455393 A CN103455393 A CN 103455393A
- Authority
- CN
- China
- Prior art keywords
- fault
- tolerant
- redundant
- fork
- data
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Hardware Redundancy (AREA)
Abstract
本发明提供一种基于进程冗余的容错系统设计方法,采用SMP架构中的多CPU为冗余硬件,构造冗余任务在独立的CPU组上并行执行,通过对冗余任务的执行数据进行比较实现检错,并使用降模、重启机制完成错误恢复,在Linux操作系统中添加容错容器,容错容器中的应用以冗余方式运行,由进程容错系统负责管理冗余任务分别在冗余硬件上独立执行,并控制任务同步、数据比较、错误检测和恢复,容错相关功能模块全部集中于操作系统核心层,高端容错计算机主要应用于银行、电信等关键领域中,对于系统失效极其敏感,保证系统关键进程的可靠性至关重要。常见的容错机制主要依据静态结构冗余原理实现,然而硬件层的冗余成本很高且实现复杂,应用软件层的冗余则不具有通用性。
Description
技术领域
本发明涉及计算机应用技术领域,具体地说是一种基于进程冗余的容错系统设计方法。
背景技术
随着银行事务处理、信息服务、金融计算等领域对计算机系统的广泛应用,对计算机系统可靠性的要求也越来越高。作为提高计算机系统可靠性的重要手段,容错的含义是指在系统内部出现故障的情况下,计算机仍然能正确地执行指定算法。高端容错计算机主要应用于银行、电信等关键领域中,对于系统失效极其敏感,保证系统关键进程的可靠性至关重要。常见的容错机制主要依据静态结构冗余原理实现,然而硬件层的冗余成本很高且实现复杂,应用软件层的冗余则不具有通用性。
高端容错计算机系统通常采用了较为健全的容错机制,如处理器锁步技术、内存镜像技术、多路径I/O技术、N版本程序设计等。以上这些常见的软硬件容错机制主要依据静态结构冗余原理实现,然而硬件层的冗余成本很高且实现复杂,应用软件层的冗余则不具有通用性。
发明内容
本发明的目的是提供一种基于进程冗余的容错系统设计方法。
本发明的目的是按以下方式实现的,采用SMP架构中的多CPU为冗余硬件,构造冗余任务在独立的CPU组上并行执行,通过对冗余任务的执行数据进行比较实现检错,并使用降模、重启机制完成错误恢复,在Linux操作系统中添加容错容器,容错容器中的应用以冗余方式运行,由进程容错系统负责管理冗余任务分别在冗余硬件上独立执行,并控制任务同步、数据比较、错误检测和恢复,容错相关功能模块全部集中于操作系统核心层,容错相关功能模块包括:容错进程管理模块、错误处理模块、I/O容错控制模块和监控管理模块,其中:
(1)容错进程管理模块,该模块用于实现冗余进程全生命周期管理,包括冗余进程的创建、调度、同步、通信及销毁,使得原生进程及其冗余进程在有序执行原有逻辑的同时满足容错特性的需要;
(2)错误处理模块,当通过同步比较检测到冗余进程的运行中发生错误时,错误处理模块进行故障类型诊断并根据预配置采取相应的处理方式,快速完成错误恢复;
(3)I/O容错控制模块,该模块负责容错系统内部数据与外部数据的格式转换和冗余控制,并辅助I/O操作进行同步比较;
(4)监控管理模块,该模块包括运行于用户态的控制台和运行于内核态的监控管理模块,控制台提供给用户直观的操作界面,用户可通过控制台监测冗余进程运行状态,查看容错事件日志,对系统的主要参数进行配置;控制台的所有数据通过与内核监控模块交互获得。
具体设计步骤如下:
1)容错进程管理模块对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( ) 函数,正常派生进程,通过上述控制,实现不同情况下进程派生的需要;
2)用户通过容错控制台界面启动应用程序,打开容错开关,设置标志位ft_exec,进程容错系统为该应用程序创建一对进程,原生-冗余进程,这一对进程装载应用程序相同的执行代码,并开始在独立的CPU组上并行执行;
3)在同步协议控制下,原生-冗余进程对同时到达同步点,并开始同步,若其中某个进程在同步点上等待超时,则触发错误进入故障检测、错误处理,如果同步点上的操作为I/O操作,需要进行I/O转换,判断操作是否为写操作,若是则对原生-冗余进程对写出的数据进行比较,数据相同则认为执行正确,若比较数据不同则认为存在故障,进入故障检测、错误处理流程,若I/O操作为读操作,则I/O容错控制模块完成I/O接口的数据转换,并执行最终的实际功能操作;
4)若同步点上的操作为非I/O操作,则直接在同步点上进行状态一致性调整,如统一函数返回值,记录当前进程状态信息,完成本次同步。
在容错容器中,一组冗余任务执行相同的功能代码,在其运行过程中,容错系统对其进行管理、同步和监控,并根据数据比较结果进行错误检测,容错容器外的任务仍以普通单模方式运行。
容错进程管理模块对fork、clone和vfork系统调用进行容错控制,在do_fork( )函数的基础上,增加了do_double_fork( ) 和do_ft_fork( ) 两个功能函数,实现了控制应用程序派生双模进程和双模进程派生各自子进程的功能。
在进程容错系统内部核心与外部设备之间存在一个软件实现的I/O接口层,完成系统内部数据与外部数据的转换,容错系统的I/O包括终端输入输出、磁盘文件读写、以及网络数据收发,根据不同的I/O种类,设计系统I/O容错控制模块结构还包含磁盘/终端读写I/O控制和网络数据读写I/O控制两个子模块。
本发明的有益效果是:本文给出了一种基于进程冗余的容错系统设计方法,设计了基于进程冗余的容错策略和方法,并实现了进程容错系统的原型系统,对关键进程进行冗余,并通过同步机制保证进程的正确执行,并对系统监控来进行相应的错误处理。实验证明该方法性能损耗小,并能有效地提高系统的可靠性,同时避免了硬件定制的复杂性,并对应用程序和用户透明。
附图说明
图1是进程容错系统模块关系图;
图2是容错进程创建流程图;
图3是进程容错系统工作流程图。
具体实施方式
参照说明书附图对本发明的方法作以下详细地说明。
本发明的目的是力图解决现有硬件容错、软件容错技术存在的问题,本文提出了一种基于进程冗余的容错机制和策略,对关键进程构造双模冗余或多模冗余,采用进程间同步等手段确保冗余进程按照同样的执行逻辑运行,监控系统并对不同的错误进行相应的错误处理,以此提高系统的可靠性和可用性。
本发明的目的是这样实现的,参考附图1基于进程冗余的容错系统设计方法中容错相关功能模块全部集中于操作系统核心层,主要包括容错进程管理模块、错误处理模块、I/O容错控制模块和监控管理模块等。
(1)容错进程管理模块
该模块用于实现冗余进程全生命周期管理,包括冗余进程的创建、调度、同步、通信及销毁,使得原生进程及其冗余进程在有序执行原有逻辑的同时满足容错特性的需要。
(2)错误处理模块
当通过同步比较检测到冗余进程的运行中发生错误时,错误处理模块进行故障类型诊断并根据预配置采取相应的处理方式,快速完成错误恢复。
(3)I/O容错控制模块
该模块负责容错系统内部数据与外部数据的格式转换和冗余控制,并辅助I/O操作进行同步比较。
(4)监控管理模块
该模块包括运行于用户态的控制台和运行于内核态的监控管理模块。控制台提供给用户直观的操作界面,用户可通过控制台监测冗余进程运行状态,查看容错事件日志,对系统的主要参数进行配置等;控制台的所有数据通过与内核监控模块交互获得。
如附图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( ) 函数,正常派生进程。通过上述控制,实现了不同情况下进程派生的需要。
用户通过容错控制台界面启动应用程序,打开容错开关(设置标志位ft_exec)进程容错系统为该应用程序创建一对进程(原生-冗余进程),这一对进程装载应用程序相同的执行代码,并开始在独立的CPU组上并行执行。
在同步协议控制下,原生-冗余进程对同时到达同步点,并开始同步,若其中某个进程在同步点上等待超时,则触发错误进入故障检测、错误处理。如果同步点上的操作为I/O操作,需要进行I/O转换,判断操作是否为写操作,若是则对原生-冗余进程对写出的数据进行比较,数据相同则认为执行正确,若比较数据不同则认为存在故障,进入故障检测、错误处理流程。若I/O操作为读操作,则I/O容错控制模块完成I/O接口的数据转换,并执行最终的实际功能操作。
若同步点上的操作为非I/O操作,则直接在同步点上进行状态一致性调整,如统一函数返回值,记录当前进程状态信息,完成本次同步。
除说明书所述的技术特征外,均为本专业技术人员的已知技术。
Claims (4)
1.一种基于进程冗余的容错系统设计方法, 其特征在于采用SMP架构中的多CPU为冗余硬件,构造冗余任务在独立的CPU组上并行执行,通过对冗余任务的执行数据进行比较实现检错,并使用降模、重启机制完成错误恢复,在Linux操作系统中添加容错容器,容错容器中的应用以冗余方式运行,由进程容错系统负责管理冗余任务分别在冗余硬件上独立执行,并控制任务同步、数据比较、错误检测和恢复,容错相关功能模块全部集中于操作系统核心层,容错相关功能模块包括:容错进程管理模块、错误处理模块、I/O容错控制模块和监控管理模块,其中:
(1)容错进程管理模块,该模块用于实现冗余进程全生命周期管理,包括冗余进程的创建、调度、同步、通信及销毁,使得原生进程及其冗余进程在有序执行原有逻辑的同时满足容错特性的需要;
(2)错误处理模块,当通过同步比较检测到冗余进程的运行中发生错误时,错误处理模块进行故障类型诊断并根据预配置采取相应的处理方式,快速完成错误恢复;
(3)I/O容错控制模块,该模块负责容错系统内部数据与外部数据的格式转换和冗余控制,并辅助I/O操作进行同步比较;
(4)监控管理模块,该模块包括运行于用户态的控制台和运行于内核态的监控管理模块,控制台提供给用户直观的操作界面,用户可通过控制台监测冗余进程运行状态,查看容错事件日志,对系统的主要参数进行配置;控制台的所有数据通过与内核监控模块交互获得;
具体设计步骤如下:
1)容错进程管理模块对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( ) 函数,正常派生进程,通过上述控制,实现不同情况下进程派生的需要;
2)用户通过容错控制台界面启动应用程序,打开容错开关,设置标志位ft_exec,进程容错系统为该应用程序创建一对进程,原生-冗余进程,这一对进程装载应用程序相同的执行代码,并开始在独立的CPU组上并行执行;
3)在同步协议控制下,原生-冗余进程对同时到达同步点,并开始同步,若其中某个进程在同步点上等待超时,则触发错误进入故障检测、错误处理,如果同步点上的操作为I/O操作,需要进行I/O转换,判断操作是否为写操作,若是则对原生-冗余进程对写出的数据进行比较,数据相同则认为执行正确,若比较数据不同则认为存在故障,进入故障检测、错误处理流程,若I/O操作为读操作,则I/O容错控制模块完成I/O接口的数据转换,并执行最终的实际功能操作;
4)若同步点上的操作为非I/O操作,则直接在同步点上进行状态一致性调整,如统一函数返回值,记录当前进程状态信息,完成本次同步。
2.根据权利要求1所述的一种基于进程冗余的容错系统设计方法,其特征在于在容错容器中,一组冗余任务执行相同的功能代码,在其运行过程中,容错系统对其进行管理、同步和监控,并根据数据比较结果进行错误检测,容错容器外的任务仍以普通单模方式运行。
3.根据权利要求1所述的一种基于进程冗余的容错系统设计方法,其特征在于容错进程管理模块对fork、clone和vfork系统调用进行容错控制,在do_fork( )函数的基础上,增加了do_double_fork( ) 和do_ft_fork( ) 两个功能函数,实现了控制应用程序派生双模进程和双模进程派生各自子进程的功能。
4.根据权利要求1所述的一种基于进程冗余的容错系统设计方法,其特征在于在进程容错系统内部核心与外部设备之间存在一个软件实现的I/O接口层,完成系统内部数据与外部数据的转换,容错系统的I/O包括终端输入输出、磁盘文件读写、以及网络数据收发,根据不同的I/O种类,设计系统I/O容错控制模块结构还包含磁盘/终端读写I/O控制和网络数据读写I/O控制两个子模块。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2013104389635A CN103455393A (zh) | 2013-09-25 | 2013-09-25 | 一种基于进程冗余的容错系统设计方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2013104389635A CN103455393A (zh) | 2013-09-25 | 2013-09-25 | 一种基于进程冗余的容错系统设计方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN103455393A true CN103455393A (zh) | 2013-12-18 |
Family
ID=49737795
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2013104389635A Pending CN103455393A (zh) | 2013-09-25 | 2013-09-25 | 一种基于进程冗余的容错系统设计方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103455393A (zh) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103593251A (zh) * | 2013-11-07 | 2014-02-19 | 浪潮电子信息产业股份有限公司 | 一种基于进程冗余的容错系统及其设计方法 |
CN104536851A (zh) * | 2014-12-11 | 2015-04-22 | 中国航空工业集团公司第六三一研究所 | 一种余度容错计算机系统同步系统及方法 |
CN106055426A (zh) * | 2016-05-21 | 2016-10-26 | 大连理工大学 | 基于演化硬件的实时容错系统设计方法 |
CN108628615A (zh) * | 2018-03-22 | 2018-10-09 | 阿里巴巴集团控股有限公司 | 一种废弃代码检测方法、装置以及设备 |
CN111638970A (zh) * | 2019-03-01 | 2020-09-08 | Abb瑞士股份有限公司 | 以网络为中心的进程控制系统中的冗余 |
CN112114563A (zh) * | 2019-06-19 | 2020-12-22 | 霍尼韦尔国际公司 | 基于容器的控制执行的高可用性 |
CN113641468A (zh) * | 2021-06-23 | 2021-11-12 | 河北中兴冀能电力发展有限公司 | 一种应用于电力仪器设备的板间多运算芯片算力平衡系统 |
CN114465847A (zh) * | 2022-01-21 | 2022-05-10 | 中国船舶重工集团公司第七0九研究所 | 一种基于容器的动态冗余可靠系统和方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5675807A (en) * | 1992-12-17 | 1997-10-07 | Tandem Computers Incorporated | Interrupt message delivery identified by storage location of received interrupt data |
CN1804811A (zh) * | 2004-12-21 | 2006-07-19 | 日本电气株式会社 | 容错系统及其中所使用的控制装置、动作方法 |
US20110138224A1 (en) * | 2009-12-09 | 2011-06-09 | Electronics And Telecommunications Research Institute | Method and system for tracepoint-based fault diagnosis and recovery |
CN102364448A (zh) * | 2011-09-19 | 2012-02-29 | 浪潮电子信息产业股份有限公司 | 一种计算机故障管理系统的容错方法 |
-
2013
- 2013-09-25 CN CN2013104389635A patent/CN103455393A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5675807A (en) * | 1992-12-17 | 1997-10-07 | Tandem Computers Incorporated | Interrupt message delivery identified by storage location of received interrupt data |
CN1804811A (zh) * | 2004-12-21 | 2006-07-19 | 日本电气株式会社 | 容错系统及其中所使用的控制装置、动作方法 |
US20110138224A1 (en) * | 2009-12-09 | 2011-06-09 | Electronics And Telecommunications Research Institute | Method and system for tracepoint-based fault diagnosis and recovery |
CN102364448A (zh) * | 2011-09-19 | 2012-02-29 | 浪潮电子信息产业股份有限公司 | 一种计算机故障管理系统的容错方法 |
Non-Patent Citations (1)
Title |
---|
吴楠等: "面向高端容错计算机的进程容错系统设计与实现", 《计算机应用与软件》 * |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103593251A (zh) * | 2013-11-07 | 2014-02-19 | 浪潮电子信息产业股份有限公司 | 一种基于进程冗余的容错系统及其设计方法 |
CN104536851A (zh) * | 2014-12-11 | 2015-04-22 | 中国航空工业集团公司第六三一研究所 | 一种余度容错计算机系统同步系统及方法 |
CN106055426A (zh) * | 2016-05-21 | 2016-10-26 | 大连理工大学 | 基于演化硬件的实时容错系统设计方法 |
CN106055426B (zh) * | 2016-05-21 | 2019-02-01 | 大连理工大学 | 基于演化硬件的实时容错系统设计方法 |
CN108628615A (zh) * | 2018-03-22 | 2018-10-09 | 阿里巴巴集团控股有限公司 | 一种废弃代码检测方法、装置以及设备 |
CN111638970A (zh) * | 2019-03-01 | 2020-09-08 | Abb瑞士股份有限公司 | 以网络为中心的进程控制系统中的冗余 |
CN112114563A (zh) * | 2019-06-19 | 2020-12-22 | 霍尼韦尔国际公司 | 基于容器的控制执行的高可用性 |
CN113641468A (zh) * | 2021-06-23 | 2021-11-12 | 河北中兴冀能电力发展有限公司 | 一种应用于电力仪器设备的板间多运算芯片算力平衡系统 |
CN113641468B (zh) * | 2021-06-23 | 2023-09-22 | 河北中兴冀能电力发展有限公司 | 一种应用于电力仪器设备的板间多运算芯片算力平衡系统 |
CN114465847A (zh) * | 2022-01-21 | 2022-05-10 | 中国船舶重工集团公司第七0九研究所 | 一种基于容器的动态冗余可靠系统和方法 |
CN114465847B (zh) * | 2022-01-21 | 2024-05-28 | 中国船舶重工集团公司第七0九研究所 | 一种基于容器的动态冗余可靠系统和方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103455393A (zh) | 一种基于进程冗余的容错系统设计方法 | |
US8862927B2 (en) | Systems and methods for fault recovery in multi-tier applications | |
US9479395B2 (en) | Model framework to facilitate robust programming of distributed workflows | |
US7536586B2 (en) | System and method for the management of failure recovery in multiple-node shared-storage environments | |
CN102629224B (zh) | 一种基于云平台的一体化数据容灾方法及其装置 | |
US20110083046A1 (en) | High availability operator groupings for stream processing applications | |
Alagappan et al. | Correlated crash vulnerabilities | |
US8020041B2 (en) | Method and computer system for making a computer have high availability | |
US8566635B2 (en) | Methods and systems for improved storage replication management and service continuance in a computing enterprise | |
US20170091221A1 (en) | System and method for providing a virtualized replication and high availability environment | |
US9619350B1 (en) | Systems and methods for application-consistent disaster recovery using a virtual storage controller and remote storage | |
CN103415840A (zh) | 跨硬件层和软件层的错误管理 | |
CN103064770B (zh) | 双进程冗余瞬时故障容错方法 | |
JP2006178557A (ja) | コンピュータシステム及びエラー処理方法 | |
US20130132766A1 (en) | Method and apparatus for failover and recovery in storage cluster solutions using embedded storage controller | |
US8185913B1 (en) | Manageability platform in an unified system | |
CN103593251A (zh) | 一种基于进程冗余的容错系统及其设计方法 | |
Proenza et al. | The design of the CANbids architecture | |
US11016863B2 (en) | Self-contained disaster detection for replicated multi-controller systems | |
CN102508745A (zh) | 一种基于两级松散同步的三模冗余系统及其实现方法 | |
Smara et al. | Robustness improvement of component-based cloud computing systems | |
CN106452696A (zh) | 一种服务器集群的控制系统 | |
CN116418812A (zh) | 一种基于分布式的服务注册与共识机制调度方法及系统 | |
WO2020222965A1 (en) | Online conversion of storage layout | |
Arockiam et al. | FTM-A middle layer architecture for fault tolerance in cloud computing |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20131218 |
|
WD01 | Invention patent application deemed withdrawn after publication |