システムアーキテクト 2015年 午前2 問19
問題文
フォールトトレランスに関する説明のうち、適切なものはどれか。
選択肢
ア:ソフトウェアのバグによるシステム故障のようなソフトウェアフォールトに対処した設計を、フェールソフトと呼ぶ。
イ:フェールセーフはフォールトトレランスに含まれるが、フェールソフトは含まれない。
ウ:フォールトトレランスの例として、システム全体を二重化する方式がある。(正解)
エ:フォールトトレランスは、システムを多重化することなく、故障の検出から回復までの時間をゼロにすることである
🔒 解説は解答すると表示されます
フォールトトレランス【午前2解説】
正解の理由
フォールトトレランスは「故障が発生してもシステムが動作を継続できるように冗長性を持たせる設計思想」です。システム全体を二重化する方式は、片方が故障してももう一方で処理を続けられるため、この定義に合致します。したがって選択肢ウが正しい理由は、二重化が代表的な冗長化(フォールトトレランス)の手法だからです。
解法ステップ
- 「フォールトトレランス」の定義を思い出す:故障を許容してサービス継続するための冗長化や設計手法。
- 各選択肢がその定義に合致するかを照合する。キーワードは「冗長化」「継続」「二重化」など。
- 二重化を示す選択肢は定義と一致するため正しいと判断。その他は定義と矛盾する説明や用語の取り違えがあるため除外する。
選択肢別の誤答解説
- ア: 「ソフトウェアのバグによる故障に対処した設計をフェールソフトと呼ぶ」とあるが誤り。フェールソフト(fail‑soft)は部分機能を維持して劣化動作で継続する設計思想で、対象はハードウェア故障や一部の機能障害が主であり、ソフトウェアのバグ全般に特有の名称ではありません。ソフトウェアバグはしばしば予測困難で、単に「フェールソフト」にすると対処できない場合があります。
- イ: 「フェールセーフはフォールトトレランスに含まれるが、フェールソフトは含まれない」との記述は誤り。実際はフェールソフトはシステムの機能を限定しつつ継続させるため、フォールトトレランスの一種とみなされることが多いです。一方、フェールセーフ(fail‑safe)は故障時に安全側の状態へ移行させる設計で、安全確保の方策であり、必ずしもフォールトトレランス(継続性維持)に含まれるとは限りません。つまり両者は目的が異なり、イの記述は用語関係を取り違えています。
- エ: 「多重化せずに検出から回復までの時間をゼロにすることがフォールトトレランスである」という記述は明白に誤りです。フォールトトレランスの基本は冗長化(多重化)によって故障時も継続動作を可能にすることであり、検出→回復時間をゼロにすることは現実的に不可能です。むしろ多重化と迅速なフェイルオーバーが鍵となります。
よくある誤解
- フェールセーフ=フォールトトレランスと思い込む:フェールセーフは「安全優先で停止させる」方策で、必ずしもサービス継続を目的としない点を混同しやすいです。
- フェールソフトはソフトウェア専用の対策と誤認する:フェールソフトは「機能を限定して継続する」方針で、ハード・ソフト両面での設計概念です。
- フォールトトレランスは「ダウンタイムを完全になくす」ものと誤解する:冗長化で可用性を高めるが、ゼロダウンタイムを保証するものではなく設計次第で遅延や短時間の切替が発生する。
補足コラム
フォールトトレランスの具体的な手法例:
- ハードウェア冗長化:二重化(active‑standby, active‑active)、RAID、電源二重化など。
- ソフトウェア冗長化:プロセスのレプリケーションやチェックポイント復旧。
- 情報冗長化:データの複製・整合性検査(例:分散データベースのレプリカ)。
運用上は「フェイルオーバー(自動切替)」と「フェイルバック(復旧後の復帰)」を組み合わせ、SLAに応じた可用性を設計します。受験対策では「冗長化=フォールトトレランス」「フェールセーフは安全停止」「フェールソフトは機能劣化で継続」を押さえてください。
FAQ
Q1: フェールセーフとフェールソフトはどちらが望ましいですか?
A1: 目的によります。安全確保が最優先ならフェールセーフ、サービス継続が重要ならフェールソフト(やフォールトトレランス)を採用します。
A1: 目的によります。安全確保が最優先ならフェールセーフ、サービス継続が重要ならフェールソフト(やフォールトトレランス)を採用します。
Q2: 二重化にはどんな方式があるのですか?
A2: 主にアクティブ‑スタンバイ(待機系に切替)とアクティブ‑アクティブ(両系並行稼働)。要件に応じて整合性・切替時間・コストで選びます。
A2: 主にアクティブ‑スタンバイ(待機系に切替)とアクティブ‑アクティブ(両系並行稼働)。要件に応じて整合性・切替時間・コストで選びます。
Q3: ソフトウェアバグは冗長化で完全に防げますか?
A3: 完全には防げません。設計の多様化(異種実装)やフェイルセーフな設計、監視・アップデート運用が必要です。
A3: 完全には防げません。設計の多様化(異種実装)やフェイルセーフな設計、監視・アップデート運用が必要です。
関連キーワード: フェールセーフ、フェールソフト、冗長化、二重化、フェイルオーバー、可用性、フォールトトレランス

\ せっかくなら /
システムアーキテクトを
クイズ形式で学習しませんか?
クイズ画面へ遷移する→
すぐに利用可能!

