基本情報技術者 2013年 春期 午前(科目A) 問14
問題文
フォールトトレラントシステムの説明として、適切なものはどれか。
選択肢
ア:システムが部分的に故障しても、システム全体としては必要な機能を維持するシステム(正解)
イ:地域的な災害などの発生に備えて、遠隔地に予備を用意しておくシステム
ウ:複数のプロセッサがネットワークを介して接続され、資源を共有するシステム
エ:複数のプロセッサで一つのトランザクションを並行して処理し、結果を照合するシステム
🔒 解説は解答すると表示されます
フォールトトレラントシステム【午前解説】
正解の理由
アが正解です。フォールトトレラント(fault-tolerant)とは「部分的な故障が起きてもシステム全体が必要な機能を維持する能力」を指します。これは冗長化(複数のハードウェアやソフトウェアを用意)、障害検出、切替(フェイルオーバ)や結果照合などの仕組みを組み合わせて実現します。選択肢アはこの定義を端的に表しており、最も適切です。
解法ステップ
- 「フォールトトレラント」の語義を思い出す:fault(故障)を tolerate(許容)する能力かどうかを確認する。
- 各選択肢のキーワードで目的を判別する(部分故障で全体維持 ⇔ 遠隔予備 ⇔ 資源共有 ⇔ 並列検証)。
- 定義に最も近い文を選ぶ(部分故障で機能維持=ア)。
- 他選択肢は目的や範囲が異なることを理由に除外する。
選択肢別の誤答解説
- ア: 正解。部分故障が起きてもシステム全体が必要な機能を維持する設計を表している。冗長化やフェイルオーバなどを含む概念。
- イ: 誤り。遠隔地に予備を用意するのは主に災害復旧(Disaster Recovery)。復旧や切替に時間がかかる場合が多く、「即時に機能を維持する」フォールトトレラントとは目的が異なる。
- ウ: 誤り。複数プロセッサのネットワーク接続・資源共有は「分散システム」やクラスタの説明であり、必ずしも故障耐性(フォールトトレラント)を示すものではない。
- エ: 誤り(ただし注意点あり)。複数プロセッサで同一トランザクションを並行処理して結果を照合する手法は、フォールトトレラントを実現する技術(例:N-version programmingや投票機構)であるが、設問が求める「フォールトトレラントシステムの定義」そのものではない。
よくある誤解
- フォールトトレラント = 災害復旧と思い込む誤解:災害復旧(DR)は遠隔地へのバックアップや復旧手順が中心で、フォールトトレラントの「即時継続」とは目的が異なる。
- 分散システム=フォールトトレラントと混同する誤解:分散は資源共有やスケーラビリティが主目的で、冗長設計が必須とは限らない。
- 特定手法(並列実行と照合)を定義だと誤解する:並列処理+照合はフォールトトレラントの手法の一つであり、定義そのものではない。
補足コラム
フォールトトレラント実装の代表的パターン:
- ハードウェア冗長化(デュアル/トリプル化、ホットスタンバイ)
- ソフトウェア多重化(N-version programming、結果投票)
- データ冗長(RAIDや分散レプリケーション)
- フェイルセーフ設計とグレースフルデグラデーション(部分機能低下で継続)
また、故障モデル(クラッシュ故障 vs ビザンチン故障)により必要な冗長度や投票アルゴリズムが変わります。ビザンチン耐性を得るには多数派の同意を得るための追加の複雑さが必要です。
FAQ
Q1: フォールトトレラントと高可用性(HA)の違いは?
A1: 高可用性はサービスの稼働率を高める広義の考え方で、フォールトトレラントは「部分故障時に機能を維持する」ことに直接焦点を当てた設計手法の一つです。HAは運用や切替手順を含む場合が多いです。
A1: 高可用性はサービスの稼働率を高める広義の考え方で、フォールトトレラントは「部分故障時に機能を維持する」ことに直接焦点を当てた設計手法の一つです。HAは運用や切替手順を含む場合が多いです。
Q2: RAIDはフォールトトレラントと言えますか?
A2: RAID(特にミラーやパリティ付き)はディスク故障に対する冗長化であり、特定の故障に対してフォールトトレラント的な性質を持ちますが、システム全体のフォールトトレラント性は他のコンポーネント(電源、ネットワーク、ソフト)も考慮する必要があります。
A2: RAID(特にミラーやパリティ付き)はディスク故障に対する冗長化であり、特定の故障に対してフォールトトレラント的な性質を持ちますが、システム全体のフォールトトレラント性は他のコンポーネント(電源、ネットワーク、ソフト)も考慮する必要があります。
Q3: 並列して処理して結果を照合する方式はフォールトトレラントの一例ですか?
A3: はい。N-version programmingやトリプルモジュール冗長(TMR)のように、複数実装の比較で誤動作を検出・訂正するのは代表的な手法の一つです。ただしそれ自体が定義ではありません。
A3: はい。N-version programmingやトリプルモジュール冗長(TMR)のように、複数実装の比較で誤動作を検出・訂正するのは代表的な手法の一つです。ただしそれ自体が定義ではありません。
関連キーワード: フォールトトレラント、冗長化、フェイルオーバ、N-modular冗長性、投票機構、高可用性、障害検出、災害復旧、分散システム

\ せっかくなら /
基本情報技術者を
クイズ形式で学習しませんか?
クイズ画面へ遷移する→
すぐに利用可能!

