【システム構成】故障を最初から「発生させない」職人技!「フォールトアボイドダンス」|情報処理問題1000本ノック
システムの信頼性を高める2大思想。トラブルが起きた後の対策ではなく、最初から「絶対に壊れない完璧なもの」を目指す設計アプローチを攻略しましょう。
1. 【 問題 】:システムの高信頼化設計思想
【 問題 】 コンピュータシステムの信頼性を向上させる設計アプローチのうち、厳選された高品質・高信頼性の部品を使用したり、徹底したテストや故障の発生しにくい設計を行ったりすることによって、システム構成要素にバグや物理的な故障そのものが最初から発生しないように危険を排除・回避しようとする思想はどれでしょうか?
① フォールトトレランス (Fault Tolerance)
② フォールトアボイダンス (Fault Avoidance)
③ フェールセーフ (Fail Safe)
④ フェールソフト (Fail Soft)
2. 正解:
正解: ② フォールトアボイダンス (Fault Avoidance / 故障回避)
3. 解説:ミスを「カバーする」か、ミスを「ゼロにする」か
システムの信頼性を上げるアプローチには、大きく分けて「壊れる前提で予備を用意する(トレランス)」か、「そもそも壊さない(アボイダンス)」かの2通りがあり、今回は後者のフォールトアボイダンスが正解です。
・アプローチ:Avoid(避ける)という英語の通り、「故障の原因(フォールト)を徹底的に避ける」ための設計です。予備をたくさん並べるのではなく、1台のサーバーやシステムそのものの完成度を極限まで高めます。 ← ココが問題の正解!
・具体的な対策:耐熱性や耐久性が格段に高い宇宙基準のパーツを使ったり、プログラムのバグを徹底的なコードレビューとテストで完全に叩き出したりする品質管理活動がこれに該当します。
★ ① フォールトトレランス:フォールトアボイダンスの相棒にして最大のライバルです。こちらは「人間だからミスもするし部品もいつか壊れる」という前提に立ち、部品を二重化(デュプレックスシステムなど)しておくことで、どこかが壊れてもシステム全体としては動き続けられるようにする(耐性を持つ)設計思想です。
★ ③ フェールセーフ:部品が故障した際、システムを「安全な状態(停止など)」に意図的に誘導し、人命や致命的な二次災害を防ぐ設計です。(例:赤信号で止まる鉄道の信号機など)
★ ④ フェールソフト:部品が故障した際、壊れた部分を切り離し、処理能力を少し落としてでも(機能を制限してでも)システムを完全に止めずに運転を継続する設計です(縮退運転)。
1. 理解のコツ: 「絶対に遅刻できない日の目覚まし時計」に例えてみましょう。
・絶対に壊れない世界最高峰のスイス製高級時計(高品質部品)を買い、電池も新品に替え、狂いのないように電波時計でガチガチにセッティングする。このように『絶対にトラブルが起きない1台』を用意して危険を避けるのがフォールトアボイダンスです。
・逆に、「どれか1個が壊れるかもしれないから」と、スマホ、目覚まし時計、家族への頼み込みの『3重のバックアップ(二重化)』を用意して、1個の故障を許容するのがフォールトトレランスです。
2. 試験対策の視点: 「故障の発生しにくい設計」「排除・回避」という予防のニュアンスがあれば「フォールトアボイダンス」が一択です。ITパスポート、基本情報、応用情報の午前試験では、「フォールトアボイダンスとフォールトトレランスの違い」が形を替えて何度も出題されます。アボイダンスは「高品質・テストの徹底」、トレランスは「二重化・マルチプロセッサ」というキーワードとガチッと結びつけて記憶しておきましょう。
4. まとめ
「構成要素の品質を極限まで高め、テストを徹底することによって、バグや故障の発生そのものを根絶・回避しようとする堅牢な設計思想」。これがフォールトアボイダンスです。現実にはどんなに頑張っても故障率をゼロにすることは難しいため、現代のシステム構成では、このフォールトアボイダンスで基礎体力を高めた上で、フォールトトレランス(二重化)で保険をかけるという両輪の設計が基本となっています。