JP2015130170A - ハードウェア故障を実行アプリケーションに注入する方法を可能にする方法及びコンピューティングシステム - Google Patents
ハードウェア故障を実行アプリケーションに注入する方法を可能にする方法及びコンピューティングシステム Download PDFInfo
- Publication number
- JP2015130170A JP2015130170A JP2014264456A JP2014264456A JP2015130170A JP 2015130170 A JP2015130170 A JP 2015130170A JP 2014264456 A JP2014264456 A JP 2014264456A JP 2014264456 A JP2014264456 A JP 2014264456A JP 2015130170 A JP2015130170 A JP 2015130170A
- Authority
- JP
- Japan
- Prior art keywords
- fault
- daemon
- hardware
- application
- software stack
- 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.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/22—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
- G06F11/26—Functional testing
- G06F11/263—Generation of test inputs, e.g. test vectors, patterns or sequences ; with adaptation of the tested hardware for testability with external testers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/22—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
- G06F11/2205—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested
- G06F11/2236—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested to test CPU or processors
- G06F11/2242—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested to test CPU or processors in multi-processor systems, e.g. one processor becoming the test master
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
- Test And Diagnosis Of Digital Computers (AREA)
Abstract
【解決手段】 リンク付けされるノードを含むハードウェアコンポーネントを有する分散型コンピューティングシステムにおいてアプリケーションの実行にハードウェア故障を注入する方法であって、故障トリガの結果としてハードウェアコンポーネントを不活性化又は劣化することにより故障を注入させる拡張ソフトウェアスタックをロードするステップと、前記ノードの各々で故障トリガデーモンを実行するステップと、ハードウェアコンポーネントに故障を注入するよう該ハードウェアコンポーネントを制御する前記ソフトウェアスタックの層をトリガするために前記デーモンのうちの1つを用いて、劣化又は不活性化のための前記故障トリガを提供するステップと、前記の注入された故障を有する前記アプリケーションの実行を継続するステップと、を有する方法。
【選択図】 図5
Description
・ハードウェアに基づく故障注入:故障をより起こり易くするようシステムの環境を変更することにより、物理レベルで達成される。例えば、電源妨害、強いイオン放射若しくは電磁干渉、又はレーザ故障の注入。
・ソフトウェアに基づく故障注入:ソフトウェア内で起こり得るハードウェア故障の効果を再現することにより達成される。
・シミュレーションに基づく故障注入:生じると期待される故障の統計的モデルを含む、潜在的に故障のあるシステムのモデルを生成することにより達成される。
・エミュレーションに基づく故障注入:FPGA(field-programmable gate array)上の回路レベルで故障のあるシステムをエミュレートし、次にこれらをホストシステムに注入する、シミュレーションに基づく故障注入の拡張である。
発明者により特定された問題に関連する主な技術的課題は、例えばexascaleシステムで、アプリケーション実行の経験を正確に再生成するために、どのように最も効率的にシステムに故障を注入するかである。
ソフトウェアに基づく故障注入の現在の技術水準は、方法の2つの基本的サブクラスを有するように見える。故障注入の第1の(及び最も単純な)方法は、経験され得る可能な故障の統計的モデルを含むようアプリケーションソフトウェアを変更すること、及びそれらの故障の発生の結果もたらされ得る動作に実行中アプリケーションの動作を変更することである(例えば、相互接続の故障をシミュレートするためにメッセージが送信されない、又はノードの故障をシミュレートするためにMPIプロセスが終了される)。
したがって、分散型コンピューティングシステムにおいて、特にexascaleで期待される故障に対して耐障害性を有するアルゴリズムの開発により適するソリューションへの要求が依然として存在する。図4に、本発明の実施形態による配置を示す。図4は、図2及び3と同じバックグラウンド構造で示されるデーモンに基づく故障注入のために使用されるシステムの概略である。簡単のために、既に言及された部分の説明はここでは省略する。
ソフトウェアスタックは、拡張(又は変更)ライブラリを有する。標準ライブラリは、既に(該標準ライブラリの機能である)ハードウェアを制御する。しかしながら、標準ライブラリは、(デーモンにより促されたとき)ハードウェアを「破壊する」機能を有しない。なぜなら、(a)通常動作では実際にこのための使用例が存在しないから、及び(b)デーモンは標準システムの一部ではないから、である。
本発明の実施形態は、耐障害性アルゴリズム並びにHPC及びexascaleコンピューティングのために開発されているソフトウェアのためのテストベッドを提供する。exascaleスーパーコンピュータは、現在の高性能コンピューティング(HPC)システムよりも遙かに頻繁にコンポーネント障害を経験するだろう。したがって、アプリケーションがこれらの障害を処理できるようにするために、耐障害性方法を開発する必要がある。本発明の実施形態は、今日の非常に小さな(及びより信頼できる)システムで用いることができる、exascaleシステムで期待される故障をエミュレートする新しい方法を提案する。
20 ノード
30 相互接続
40 MPIライブラリ層
50 デーモン
60 拡張ライブラリ機能
Claims (17)
- リンク付けされるノードを含むハードウェアコンポーネントを有する分散型コンピューティングシステムにおいてアプリケーションの実行にハードウェア故障を注入する方法であって、
故障トリガの結果としてハードウェアコンポーネントを不活性化又は劣化することにより故障を注入させる拡張ソフトウェアスタックをロードするステップと、
前記ノードの各々で故障トリガデーモンを実行するステップと、
ハードウェアコンポーネントに故障を注入するよう該ハードウェアコンポーネントを制御する前記ソフトウェアスタックの層をトリガするために前記デーモンのうちの1つを用いて、劣化又は不活性化のための前記故障トリガを提供するステップと、
前記の注入された故障を有する前記アプリケーションの実行を継続するステップと、
を有する方法。 - 各デーモンは、オペレーティングシステム内の自身のノード上のバックグラウンドプロセスとして実行する、請求項1に記載の方法。
- 前記故障は、前記アプリケーションの実行と完全に独立に注入される、請求項1又は2に記載の方法。
- 前記拡張ソフトウェアスタックは、前記アプリケーションのためのハードウェアコンポーネントを制御するライブラリの拡張バージョンを有し、前記デーモンは、前記故障を注入するよう前記ハードウェアコンポーネントを制御する前記ライブラリをトリガする、請求項1乃至3のいずれか一項に記載の方法。
- 前記拡張ソフトウェアスタックは、前記アプリケーションのためのオペレーティングシステムの拡張バージョンを有し、前記デーモンは、前記故障を注入するよう前記ハードウェアを制御する前記オペレーティングシステムをトリガする、請求項1乃至4のいずれか一項に記載の方法。
- 前記デーモンは、互いに独立して及び中央制御と独立して実行する、請求項1乃至5のいずれか一項に記載の方法。
- 前記デーモンは、どんな故障が該デーモンが実行しているノードに注入されるべきかを示す1又は複数のファイルにより制御される、請求項1乃至6のいずれか一項に記載の方法。
- 各デーモンは、該デーモンがどんな障害をいつ注入するかの記録を保持する、請求項1乃至7のいずれか一項に記載の方法。
- 各デーモンは、望ましくは統計的モデルを用いて、いつ故障が生じるかを決定する、請求項1乃至8のいずれか一項に記載の方法。
- 各デーモンは、前記故障を注入するよう、拡張MPI及び/又は拡張相互接続層のような拡張メッセージインタフェースを制御する、請求項1乃至9のいずれか一項に記載の方法。
- 各デーモンは、前記劣化した又は不活性化されたハードウェアコンポーネントの回復を指示するために、前記故障トリガの後に回復トリガを提供する、請求項1乃至10のいずれか一項に記載の方法。
- 前記回復トリガは、時間遅延の後に前記デーモンにより提供される、請求項11に記載の方法。
- 前記故障注入は、前記アプリケーションのソースコードへの変更を有しないで及び前記アプリケーションの前記構成、コンパイル及び実行のいずれへの変更も有しないで、実行される、請求項1乃至12のいずれか一項に記載の方法。
- 前記拡張ソフトウェアスタックは、例えばLD_PRELOADにより指定される場所の変更リストと共に例えばライブラリの検索場所の変更リストを用いて動的リンカにより、静的又は動的にロードされる、請求項1乃至13のいずれか一項に記載の方法。
- 分散型コンピューティングシステムであって、ハードウェアコンポーネントと、実行アプリケーションにハードウェア故障を注入する方法を可能にするソフトウェアスタックと、を有し、前記分散型コンピューティングシステムは、
相互作用にリンク付けされるノードと、
前記アプリケーションのためのソフトウェアスタックの拡張バージョンであって、1又は複数のハードウェアコンポーネントを故障トリガに続いて不活性化又は劣化させるよう動作する、ソフトウェアスタックの拡張バージョンと、
それぞれ単一のノードに関連付けられるデーモンであって、各デーモンは、ハードウェアコンポーネントに故障を注入するよう該ハードウェアコンポーネントを制御する前記ソフトウェアスタックの層をトリガすることにより、劣化又は不活性化のために故障トリガを提供するよう動作する、デーモンと、
を有する分散型コンピューティングシステム。 - リンク付けされたノードを含むハードウェアコンポーネントを有する分散型コンピューティングシステムの単一のノードで動作する故障トリガデーモンであって、前記コンピューティングシステムは、ハードウェア故障をアプリケーションの実行に注入する情報を実行するよう配置され、前記デーモンは、ソフトウェアスタックの一部が制御しているハードウェアコンポーネントを不活性化し又は劣化するよう前記ソフトウェアスタックの前記一部をトリガすることにより、ハードウェアコンポーネントの劣化又は不活性化のために故障トリガを提供するよう動作する、故障トリガデーモン。
- ソフトウェアスタックであって、アプリケーションと共に使用し、オペレーティングシステム層と、リンク付けされたノードを含むハードウェアコンポーネントを有する分散型コンピューティングシステムのハードウェアを制御する少なくとも1つのライブラリ層とを有し、前記ライブラリ層及び/又はオペレーティングシステムは、前記コンピューティングシステムの単一のノードで動作する故障トリガデーモンを用いて、前記アプリケーションの実行にハードウェア故障を注入できるよう拡張され、前記デーモンは、ハードウェアコンポーネントの劣化又は不活性化のために故障トリガを提供する、ソフトウェアスタック。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP14150226.0A EP2891981B1 (en) | 2014-01-06 | 2014-01-06 | Method and computing system allowing a method of injecting hardware faults into an executing application |
EP14150226.0 | 2014-01-06 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2015130170A true JP2015130170A (ja) | 2015-07-16 |
JP6507633B2 JP6507633B2 (ja) | 2019-05-08 |
Family
ID=49949495
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2014264456A Active JP6507633B2 (ja) | 2014-01-06 | 2014-12-26 | ハードウェア故障を実行アプリケーションに注入する方法を可能にする方法及びコンピューティングシステム |
Country Status (3)
Country | Link |
---|---|
US (1) | US9454447B2 (ja) |
EP (1) | EP2891981B1 (ja) |
JP (1) | JP6507633B2 (ja) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108073479A (zh) * | 2016-11-14 | 2018-05-25 | 南京理工大学 | 一种用于星载计算机可靠性验证的故障注入方法 |
US10467126B2 (en) | 2017-03-31 | 2019-11-05 | Microsoft Technology Licensing, Llc | Scenarios based fault injection |
CN111448553B (zh) * | 2017-12-08 | 2021-11-09 | 华为技术有限公司 | 故障注入系统和故障注入方法 |
CN110674028A (zh) * | 2019-08-20 | 2020-01-10 | 华为技术有限公司 | 故障注入方法及其装置、业务服务系统 |
CN112256568B (zh) * | 2020-10-13 | 2023-06-06 | 四川新网银行股份有限公司 | 一种基于分布式故障注入的方法 |
US11281521B1 (en) * | 2021-03-10 | 2022-03-22 | Keysight Technologies, Inc. | Methods, systems and computer readable media for troubleshooting test environments using automated analysis of log file data |
US11550683B2 (en) * | 2021-04-09 | 2023-01-10 | EMC IP Holding Company LLC | Fault definition and injection process to simulate timing based errors in a distributed system |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009104490A (ja) * | 2007-10-25 | 2009-05-14 | Fujitsu Ltd | プログラムのテスト装置 |
JP2011227700A (ja) * | 2010-04-20 | 2011-11-10 | Mitsubishi Electric Corp | 周辺機器障害模擬システム、周辺機器障害模擬方法および周辺機器障害模擬プログラム |
JP2012181737A (ja) * | 2011-03-02 | 2012-09-20 | Mitsubishi Electric Corp | 計算機システム |
JP2013196060A (ja) * | 2012-03-15 | 2013-09-30 | Toshiba Corp | プログラム検証システムおよびその検証方法 |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6477666B1 (en) | 1999-11-22 | 2002-11-05 | International Business Machines Corporation | Automatic fault injection into a JAVA virtual machine (JVM) |
US20040194063A1 (en) | 2003-03-28 | 2004-09-30 | Joel Pereira | System and method for automated testing of a software module |
US20040243882A1 (en) | 2003-05-27 | 2004-12-02 | Sun Microsystems, Inc. | System and method for fault injection and monitoring |
US7370101B1 (en) * | 2003-12-19 | 2008-05-06 | Sun Microsystems, Inc. | Automated testing of cluster data services |
US7165189B1 (en) * | 2003-12-19 | 2007-01-16 | Sun Microsystems, Inc. | Distributed test framework for clustered systems |
US7757215B1 (en) * | 2006-04-11 | 2010-07-13 | Oracle America, Inc. | Dynamic fault injection during code-testing using a dynamic tracing framework |
US8458650B2 (en) * | 2010-03-29 | 2013-06-04 | International Business Machines Corporation | Injecting a fault into a stream operator in a data stream processing application |
US8108728B2 (en) * | 2010-04-02 | 2012-01-31 | GM Global Technology Operations LLC | Method and apparatus for operational-level functional and degradation fault analysis |
DE102010037457B4 (de) * | 2010-09-10 | 2012-06-21 | Technische Universität Dresden | Verfahren zur Datenverarbeitung zum Bereitstellen eines Wertes zum Ermitteln, ob bei einer Ausführung eines Programms ein Fehler aufgetreten ist, Verfahren zur Datenverarbeitung zum Ermitteln, ob bei einer Ausführung eines Programms ein Fehler aufgetreten ist, Verfahren zum Erzeugen von Programm-Code, Datenverarbeitungsanordnungen zum Bereitstellen eines Wertes zum Ermitteln, ob bei einer Ausführung eines Programms ein Fehler aufgetreten ist, Datenverarbeitungsanordnungen zum Ermitteln, ob bei einer Ausführung eines Programms ein Fehler aufgetreten ist, und Datenverarbeitungsanordnungen zum Erzeugen von Programm-Code |
CN102354298A (zh) | 2011-07-27 | 2012-02-15 | 哈尔滨工业大学 | 基于staf的高端容错机故障注入自动化测试平台及方法 |
EP2565790A1 (en) | 2011-08-31 | 2013-03-06 | Samsung Electronics Polska Spolka z organiczona odpowiedzialnoscia | Method and system for injecting simulated errors |
-
2014
- 2014-01-06 EP EP14150226.0A patent/EP2891981B1/en active Active
- 2014-12-26 JP JP2014264456A patent/JP6507633B2/ja active Active
- 2014-12-31 US US14/587,209 patent/US9454447B2/en active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009104490A (ja) * | 2007-10-25 | 2009-05-14 | Fujitsu Ltd | プログラムのテスト装置 |
JP2011227700A (ja) * | 2010-04-20 | 2011-11-10 | Mitsubishi Electric Corp | 周辺機器障害模擬システム、周辺機器障害模擬方法および周辺機器障害模擬プログラム |
JP2012181737A (ja) * | 2011-03-02 | 2012-09-20 | Mitsubishi Electric Corp | 計算機システム |
JP2013196060A (ja) * | 2012-03-15 | 2013-09-30 | Toshiba Corp | プログラム検証システムおよびその検証方法 |
Also Published As
Publication number | Publication date |
---|---|
US20150193319A1 (en) | 2015-07-09 |
EP2891981B1 (en) | 2018-07-18 |
US9454447B2 (en) | 2016-09-27 |
EP2891981A1 (en) | 2015-07-08 |
JP6507633B2 (ja) | 2019-05-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6507633B2 (ja) | ハードウェア故障を実行アプリケーションに注入する方法を可能にする方法及びコンピューティングシステム | |
US8726225B2 (en) | Testing of a software system using instrumentation at a logging module | |
Guan et al. | F-sefi: A fine-grained soft error fault injection tool for profiling application vulnerability | |
US20110145643A1 (en) | Reproducible test framework for randomized stress test | |
Potyra et al. | Evaluating fault-tolerant system designs using FAUmachine | |
US8683450B2 (en) | Systems, methods, and media for testing software patches | |
Pattabiraman et al. | Dynamic derivation of application-specific error detectors and their implementation in hardware | |
Guan et al. | Design, use and evaluation of p-fsefi: A parallel soft error fault injection framework for emulating soft errors in parallel applications | |
Talebi et al. | Undo workarounds for kernel bugs | |
Lenka et al. | Fault injection techniques-a brief review | |
Mamone et al. | On the analysis of real-time operating system reliability in embedded systems | |
Xu et al. | DualVisor: Redundant hypervisor execution for achieving hardware error resilience in datacenters | |
Guerrero Balaguera et al. | Understanding the Effects of Permanent Faults in GPU's Parallelism Management and Control Units | |
Jiang et al. | Simplydroid: efficient event sequence simplification for android application | |
Höller et al. | Software-based fault recovery via adaptive diversity for COTS multi-core processors | |
Gioachin et al. | Robust non-intrusive record-replay with processor extraction | |
Guo et al. | Match: An mpi fault tolerance benchmark suite | |
Dou et al. | ShortCut: accelerating mostly-deterministic code regions | |
Gaiswinkler et al. | Automated software diversity for hardware fault detection | |
Cerveira et al. | Evaluation of restful frameworks under soft errors | |
KR101137034B1 (ko) | 계층적 병렬 환경에서의 분산 런타임 진단을 위한 시스템 및 방법 | |
Van Der Kouwe et al. | A methodology to efficiently compare operating system stability | |
Duan et al. | Better Late Than Never: An n-Variant Framework of Verification for Java Source Code on CPU x GPU Hybrid Platform | |
Georgakoudis et al. | Evaluating the performance of global-restart recovery for MPI fault tolerance | |
WO2022178988A1 (zh) | 虚拟机热迁移的方法及其装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20171113 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20180718 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20180814 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20180914 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20190305 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20190318 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6507633 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |