CN103455393A - 一种基于进程冗余的容错系统设计方法 - Google Patents

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

Info

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
redundancy
module
fork
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
Application number
CN2013104389635A
Other languages
English (en)
Inventor
刘璧怡
吴楠
谢若鸿
何志平
王秀娟
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Inspur Electronic Information Industry Co Ltd
Original Assignee
Inspur Electronic Information Industry Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Inspur Electronic Information Industry Co Ltd filed Critical Inspur Electronic Information Industry Co Ltd
Priority to CN2013104389635A priority Critical patent/CN103455393A/zh
Publication of CN103455393A publication Critical patent/CN103455393A/zh
Pending legal-status Critical Current

Links

Images

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控制两个子模块。
CN2013104389635A 2013-09-25 2013-09-25 一种基于进程冗余的容错系统设计方法 Pending CN103455393A (zh)

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 (7)

* Cited by examiner, † Cited by third party
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 河北中兴冀能电力发展有限公司 一种应用于电力仪器设备的板间多运算芯片算力平衡系统

Citations (4)

* Cited by examiner, † Cited by third party
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 浪潮电子信息产业股份有限公司 一种计算机故障管理系统的容错方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
Title
吴楠等: "面向高端容错计算机的进程容错系统设计与实现", 《计算机应用与软件》 *

Cited By (9)

* Cited by examiner, † Cited by third party
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 河北中兴冀能电力发展有限公司 一种应用于电力仪器设备的板间多运算芯片算力平衡系统

Similar Documents

Publication Publication Date Title
CN103455393A (zh) 一种基于进程冗余的容错系统设计方法
US10114834B2 (en) Exogenous virtual machine synchronization and replication
US9052935B1 (en) Systems and methods for managing affinity rules in virtual-machine environments
US20190303255A1 (en) Cluster availability management
US7814364B2 (en) On-demand provisioning of computer resources in physical/virtual cluster environments
US8020041B2 (en) Method and computer system for making a computer have high availability
EP4083786A1 (en) Cloud operating system management method and apparatus, server, management system, and medium
US20110083046A1 (en) High availability operator groupings for stream processing applications
US7865782B2 (en) I/O device fault processing method for use in virtual computer system
EP2539820A1 (en) Systems and methods for failing over cluster unaware applications in a clustered system
CN104516789A (zh) 用于检查点系统中的故障转移检测和处理的方法和系统
KR20110093998A (ko) 직접-연결 저장 시스템을 위한 능동-능동 장애 극복
CN103064770B (zh) 双进程冗余瞬时故障容错方法
CN103593251A (zh) 一种基于进程冗余的容错系统及其设计方法
CN102708027B (zh) 一种避免通信设备运行中断的方法及系统
US11210150B1 (en) Cloud infrastructure backup system
US8073993B2 (en) Management of redundant physical data paths in a computing system
US20130132766A1 (en) Method and apparatus for failover and recovery in storage cluster solutions using embedded storage controller
GB2520808A (en) Process control systems and methods
EP2280348B1 (en) Method and system for saving operational state of running applications when unexpected shutdown events occur
US20090044186A1 (en) System and method for implementation of java ais api
US9195528B1 (en) Systems and methods for managing failover clusters
CN103795742A (zh) 异构存储容灾管理系统及方法
US8122166B2 (en) Management of redundant physical data paths in a computing system
CN103399807A (zh) 一种用于三模冗余计算机的动态现场自主恢复方法

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
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20131218