LoginSignup
5
3

More than 5 years have passed since last update.

論文『Fault Injection Technique and Tools』のFault Injection Techniqueのまとめ

Last updated at Posted at 2016-11-06
1 / 12

おことわり

  • 論文発行年度が古いことから、Fault Injection Techniqueのみ、まとめています
  • Fault Injection という分野の概念をざっくり理解したいというモチベーションです
  • ソフトウェア屋なので、ソフトウェア観点が多めです

論文情報

Hsueh, Mei-Chen, Timothy K. Tsai, and Ravishankar K. Iyer. "Fault injection techniques and tools." Computer 30.4 (1997): 75-82.


Fault Injection とは

  1. ある機能における設計段階の潜在的な故障やエラー
  2. システムの試験運用、本運用時の故障やエラー の理解をするための仕組み
動作環境 用途
simulation 耐故障性(fault tolerant)やシステム信頼性(System Dependability)の評価
prototype 1. ボトルネックの評価
2. 耐故障性、システム信頼性の保証評価
3. システム稼働中に発生するFAIL原因の調査
4. エラーと回復検知カバレッジの把握

workloadによるシステム評価とFault Injectionによる評価の違い

  • workloadによる評価
    • 実用性の観点からシステムを評価する
    • エンジニアが評価することが多い
  • Fault Injection による評価
    • システムのエラーモデル保証を評価する
    • テスト評価が評価することが多い

Fault Injection システムの機能要件

  • fault detection
  • fault isolation
  • fault reconfiguration
  • recovery capabilities

Fault Injection アーキテクチャ

fault injection model (1).png

モジュール 機能 実現例
fault injector システムへエラーコマンド注入。エラータイミング、種別、エラー実行時間を管理する。 SW / HW
workload generator テストシナリオの生成と実行 アプリケーションベンチマーク、統合テスト
monitor タスクや実行コマンドの監視およびデータの初期化 -
data collector リアルタイムでのデータ収集 -
サブモジュール 機能
Fault Lib Fail Injectorに提供する機能の柔軟性かつポータビリティをもったライブラリ群
data analyzer リアルタイム・オフタイム両方のデータ解析機能を持ったツール

Fault Injector の実現方法

ソフトウェア、ハードウェアの2種類ある。
Injectorの使い分けは発生させるエラー種別、エラー実現方法に依存する。(例)メモリのビット化け

実現方法 pros cons
ハードウェア エラー注入タイミングが制御可能 設計・実装・検証コストが高い
ソフトウェア エラーとして提供する機能の柔軟性 ソフトウェアが介入できないケースはエラー注入不可
実行時間など、時間精度管理が高くない
ワークロードに対する影響大。性能の揺れ原因になる

ハードウェアによるFault Injector実現方法 [1/2]

実現方法 実現方法の概要 手段
fault injection with contact システム内回路にピンを用意し、専用接続する pin-level socket and probes
fault injection without contact 外部から物理的にエラー現象を発生させる iron radiation, electronic magnetic interface

ハードウェアによるFault Injector実現方法 [2/2]

手段 手段の説明 pros cons
active probes 回路内部に物理的ピン接続して、ある処理タイミングでエラーを発生させる 設計、実装コスト小 評価対象のシステム回路の電流値が理論値とは異なる
socket insertion 外部から特殊パラメータできた時にエラーが発生するような回路を作る システムに与える影響小 実装コスト、周辺回路へのコスト大
external interface 外部から物理的にシステムにダメージを与える 自然発生現象に近いエラー発生モデル エラー発生タイミングやエラー時間の検証が難しい

ソフトウェアによるFault Injector実現方法

手段 説明 pros cons
compile-time injection システムコンパイル時にエラー注入プログラムを埋め込む方式 設計・実装がシンプル ワークロードプログラムに対するエラー注入タイミングが決め打ちになる
run-time injection (timeout) 予めタイマーをセットし、制限時間になったらシステムを全停止させる 設計・実装がシンプル 発生できるエラー回数は1回。その後は応答不可
run-time injection (trap/exception) エラー発生タイミングで割り込みハンドラにジャンプさせる 設計モデルがシンプルにできる 処理中モジュールのパラメータ取得が難しい
run-time injection (code insertion) エラー発生タイミングに追加処理を注入する 特定の命令前にエラー発生させることができる ユーザモード実行なので、機能整合性の管理が煩雑になる

まとめ

  • Fault Injection の目的の実現方法(Pros and Cons)をまとめた
    • 目的:システム設計段階でのエラー発生モデルの検証。システム試験運用段階、運用段階でのとシステムエラー検証の補助
    • 実現方法:シミュレーション、プロトタイプ(ハードウェア、ソフトウェア両方)
5
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
3