フォールトトレラントの解説(基本情報技術者シラバス用語)

目次

フォールトトレラントとは

フォールトトレラントとは、システムを構成する部品の一部が故障したり、予期せぬエラー(フォールト)が発生したりしても、システム全体としては停止することなく、正常に稼働を維持し続けることができる設計思想やその性質を指します。「耐障害性」とも呼ばれます。これを実現するために、CPU、メモリ、ハードディスク、電源、ネットワーク回線などの重要部品をあらかじめ二重化(複数用意)しておくのが一般的です。

具体例

  • ハードディスクのRAID(レイド):データを複数のハードディスクに同時に書き込んでおきます(ミラーリングなど)。これにより、どれか1台のハードディスクが物理的に故障して壊れてしまっても、もう1台のハードディスクからデータを読み出すことができるため、システムを止めることなくデータの読み書きを継続できます。
  • 二重化された電源ユニット:サーバーに2つの電源ユニットを搭載し、それぞれ別のコンセントから給電します。片方のコンセントのブレーカーが落ちても、もう片方から給電が続くため、サーバーは稼働し続けます。

もう少し詳しく

フォールトトレラント(Fault Tolerant)は、システムを構成するハードウェアやソフトウェアの一部に障害が発生しても、システム全体としてはまったく停止することなく、通常通りの機能と性能を提供し続けることを目指す究極の設計思想です。銀行のオンライン勘定系システム、航空機のフライト管制システム、証券取引所の売買システム、あるいは医療機関の生命維持装置など、ほんの数秒のシステム停止が莫大な経済的損失や人命に関わるようなミッションクリティカルな環境において必須となる考え方です。

これを実現するための代表的かつ基本的なアプローチが「冗長化(Redundancy)」です。ハードウェアレベルでは、CPU、メモリ、電源ユニット、ネットワーク機器、ストレージなどをすべて二重、三重に用意(多重化)しておき、稼働中のメイン装置が故障しても、待機しているサブ装置へ瞬時に切り替わる(フェイルオーバー)仕組みを構築します。また、ソフトウェアレベルでも、複数のサーバーで全く同じ処理を同時に行い、結果を照合することでエラーを直ちに検出・訂正する仕組み(フォールトマスキング)などが用いられます。

フォールトトレラントはシステムの「可用性(Availability)」を極限まで高めることができますが、すべての部品や経路を複数用意する必要があるため、導入時のハードウェア費用やソフトウェア開発費、および運用・保守コストが非常に高額になるというデメリットがあります。そのため、対象システムの重要度や許容できる停止時間(RTO)に応じて、どこまでフォールトトレラントな設計を取り入れるかを慎重に検討(コストと可用性のトレードオフ)する必要があります。

試験でのポイント

試験においてフォールトトレラントを特定するための重要なキーワードは、「部品の一部が故障しても」「システム全体を停止させることなく」「正常に(従来通りに)稼働を続ける」の3点です。「耐障害性」という日本語訳でそのまま出題されることもあります。

特に注意すべきは「フェールソフト」との明確な違いです。フェールソフトも「システムを完全に停止させない」という点では同じ目的を持ちますが、フェールソフトが「機能や性能を低下させて(縮退運転で)継続する」のに対し、フォールトトレラントは「機能や性能を一切落とさずに(通常通り)継続する」という違いがあります。問題文の中で「機能の一部を切り離す」「処理能力が低下する」といった記述があればフェールソフト、「機能を維持したまま」「ユーザーに影響を与えずに」といった記述があればフォールトトレラントを選びます。

出題される具体例としては、「RAID(ミラーリング等)によるディスクの冗長化」「サーバーのクラスタリング構成」「無停電電源装置(UPS)やデュアル電源の導入」「ネットワーク経路の多重化」などが挙げられます。システムの可用性を高めるための最高峰の設計思想として位置づけを理解しておきましょう。

関連する用語

関連する用語として「フェールソフト」と「デュアルシステム」があります。フェールソフトは性能低下を許容して稼働を続ける設計です。デュアルシステムは、2つの独立したシステムが全く同じ処理を同時に行い、結果を照合することで極めて高い信頼性を確保するフォールトトレラントの代表的な構成方式の一つであり、試験でも頻出です。

読んだ内容を10問練習と実技で確認

記事で理解した用語を、StudyQuestの演習とクラウド実技ラボで定着させます。

10問練習 実技ラボ