信頼性設計のお話

勉強のきっかけになった過去問

システムの信頼性設計に関する記述のうち,適切なものはどれか。

  1. フェールセーフとは,ユーザの誤操作によってシステムがダウンしてしまうことのないように,単純なミスを発生させないようにする設計方法である。
  2. フェールソフトとは,故障が発生した場合でも機能を縮退させることなく稼動を継続する概念である。
  3. フォールトアボイダンスとは,システム構成要素の個々の品質を高めて故障が発生しないようにする概念である。
  4. フォールトトレランスとは,故障が生じてもシステムに重大な影響が出ないように,あらかじめ定められた安全状態にシステムを固定し,全体として安全が維持されるような設計手法である。

問35 システム信頼性設計 平成20年秋期|応用情報技術者試験.com

最期までしっかり働けるようにリスクを予め考慮するのが信頼性設計

システム・装置または部品が使用開始から寿命を迎えるまでの期間を通して、予め期待した機能を果たせるように、すなわち故障や性能の劣化が発生しないように考慮して設計する手法のこと。
信頼性設計 - Wikipedia

システムの設計ではなく機械や建築物など広い世界で行われる設計です。
人間にも使えるみたいです!
liginc.co.jp

信頼設計の種類

被害を最小限に抑えるフェールセーフ

fail(故障) + safe(安全) = フェールセーフ

こんな感じ

誤操作・誤動作による障害が発生した場合、常に安全側に制御する
フェイルセーフ - Wikipedia

転倒すると自動的に消火するよう設計されている石油ストーブ
www.hamabiz.jp

必ず事故や誤りは起きる、という前提からの設計思想
フェールセーフ

踏切遮断機が故障した場合
⇒重力により自らしゃ断かんが降りてくる(自重降下)機構により踏切通行者の安全を確保します。
www.signal.co.jp

故障した機能に無理をさせず全体の停止を防ぐフォールバック

fall(落ちる) + back(戻る) = 縮退運転

こんな感じ

何らかの問題が発生した際に「止まるよりは、しょぼい方がマシでしょ?」な考えに基づいて、機能や性能を制限して動かし続けること
http://wa3.i-3-i.info/word14810.html

機能停止を部分的なものに留めることで、稼動完全にシステムが使えなくなることを防ぐことができる。
www.weblio.jp

何らかの要因でIPv6による通信ができない場合に、 それを諦めてIPv4での通信に切り替える動作、もしくはその逆の、 IPv4での通信からIPv6での通信に切り替える動作
インターネット用語1分解説~IPv6/IPv4フォールバックとは~ - JPNIC

性能を落としたり機能を制限したりして限定的ながら稼動を続行すること。あるいは、利用したい機能が条件が悪く使えない場合に、代替となる機能に切り替えること。
e-words.jp

故障が起きないようにするフォールトアボイダンス

fault(障害) + avoidance(回避) = 障害回避

こんな感じ

なるべく故障や障害が生じないようにする
e-words.jp

問題を起こさない前提で「どうすればヤバいことにならないかな?」を考えて備えること
http://wa3.i-3-i.info/word14814.html

高信頼素子の採用や高信頼化設計, 徹底的なテスト・検証, 品質管理体制の整備など
www.weblio.jp

故障が発生したときに対処するのではなく,品質管理などを通じてシステム構成要素を信頼性を高めること
問15 システムの信頼性向上技術 平成25年春期|応用情報技術者試験.com

故障しても止まらないようにするフォールトトレラント

fault(障害) + tolerant(耐える) = 障害耐性

こんな感じ

構成要素の一部が故障、停止などしても予備の系統に切り替えるなどして機能を保ち、正常に稼動させ続ける
e-words.jp

片方のCPUエンクロージャ内に障害が発生しても、障害は自動で検出され、システムから切り離されます。残りのCPUが正常稼動を続けているので、OSやアプリケーションには影響を与えず、システムは稼動しつづけます。
www.stratus.co.jp

「問題が起こってもお手上げにならないように、あれやこれやと備えておくぜ!」な心意気
http://wa3.i-3-i.info/word14813.html

どこか一部分が故障しても、全体を停止させずに障害から回復できるように設計する
http://www-higashi.ist.osaka-u.ac.jp/~nakata/mobile-cp/chap-07j.pdf

大きな問題がないようにするフェールソフト

fail(故障) + soft(穏やか) = フェールソフト

こんな感じ

システム全体を停止させずに性能・機能を落として稼働を継続(縮退運転)するような仕組みや考え方
e-words.jp

「多少しょぼくなっても、止まるよりはマシだよね?」な考えに基づいて、機能や性能を制限して動かし続ける
http://wa3.i-3-i.info/word14811.html

故障が発生しても、全面停止とせず、必要最小限の機能を維持する。
フェールソフト、フェールセーフ [徹底研究!情報処理試験]

ハードウェアの障害時に,パフォーマンスは低下するが,構成を縮小して運転を続けられるようにする。
問24 フェールソフトの例はどれか 平成25年春期|情報処理安全確保支援士.com

うっかり者が使っても問題がおこらないようにするフールプルーフ

fool(愚か者) + proof(耐える) = フールプルーフ

こんな感じ

操作に不慣れな人も利用するシステムでは,間違ったデータが入力されることが想定される。誤入力が発生しても,プログラムやシステムを異常終了させずに,エラーメッセージを表示して次の操作を促す
問22 フールプルーフ 平成23年特別|情報処理安全確保支援士.com

フタを閉めないかぎりドラムが回転しない洗濯機
www.hamabiz.jp

自動車のオートマチック車の場合,ブレーキを踏まないとシフトレバーをパーキング(P)の位置から動かすことができないようになっている
http://pub.maruzen.co.jp/index/kokai/oyoshinri/570.pdf

使用者が誤った操作をしても危険な状況を招かないように、あるいはそもそも誤った操作をさせないようにと、配慮して設計
www.sophia-it.com

誤った操作や危険な使い方ができないような構造や仕掛け
e-words.jp

電子メールでの返信が必要とされる受付システムの入力画面で、 メールアドレスの入力フィールドを二つ設けて、同一かどうかをチェック機能や、 アプリケーションを間違って終了してもデータを失わないように、 アプリケーション側の機能で編集中のデータのコピーを常に記憶媒体に保存する
hidekit.hatenablog.com

違いがわかりにくい方々

フェールセーフは「事故が起こった時」を想定して、フールプルーフは「事故を起こさない」ようにする

フェールセーフは必ず起きる誤作動・故障を考えて設計する手法ですが、「フールプルーフ」は事前に誤作動・故障を防ぐために配慮した設計思想です。
フェールセーフとフールプルーフの違いについて~設計思想と事例~ | SAT衛生管理者公式BLOG

フェールセーフは「ものは壊れる」「発生頻度を下げる」に対応する代表的な安全設計手法です。「人は間違える」「発生頻度を下げる」に対応する安全設計手法の代表はフールプルーフです。
www.monodukuri.com

フェールセーフは「安全第一」、フェールソフトは「継続第一」

排熱ファンが故障してしまったとき、フェールソフトの考え方であれば、あらかじめ部品を冗長的に構成しておき、故障部分を切り離して運用を続行できることを第一に考えます。フェールセーフであれば、熱による他の部品への影響や、火災発生といった事態を防ぐようシステムを停止するなど、安全性を第一に考えます。
フェールソフト、フェールセーフ [徹底研究!情報処理試験]

飛行機の場合、フェイルセーフのように完全に機能を停止すると墜落するため、フェイルソフトの概念により、故障したエンジンを切り捨て(燃料等の供給を行わないようにする)、故障していないエンジンだけで飛行できるような設計をとる必要がある。
フェイルソフト - Wikipedia

フェールソフトの考え方にそってフォールバックをする

フェイルソフトの思想に従って、縮退運転(フォールバック)を行う
http://wa3.i-3-i.info/word14811.html

フェールソフトは概念や技術を意味し、フォールバックは縮退運転と説明されるように、行為を指します。
sm.seeeko.com

フェールソフトの考え方にそってフォールトトレラントする

フォールトトレランスは,フェールソフトな動作を 達成するための一つの手段である。
JIS X 0014:1999 情報処理用語—信頼性,保守性及び可用性

フェールセーフは「安全が目標」、フォールトトレラントは「信頼向上が目標」

機械が故障しても、とにかく安全だけは確保しようとするのがフェールセーフで,出来るだけ機械の正しい機能を維持することで安全を確保しようとするのが,フォールトトレランスです.フェールセーフが直接,安全性を目標にしているのに対して,フォールトトレランスは,信頼性の向上を目標にしています.
http://www.mukaidono.jp/100303fault.pdf