フェールセーフ/フェールオーバー/フォルトトレラント/フォールバックの違い
はじめに
システム工学や情報システムの設計において、「故障や異常が発生した場合にどのように振る舞うか」を定義することは極めて重要です。その際に頻出する用語として「フェールセーフ(fail-safe)」「フェールオーバー(failover)」「フォルトトレラント(fault-tolerant)」「フォールバック(fallback)」があります。これらは一見似たような意味に思われがちですが、実際には設計思想や目的が異なります。本稿では、それぞれの概念を整理し、相互の違いを明確にします。
フェールセーフ(fail-safe)
フェールセーフとは、システムに異常や故障(fail)が発生した場合に、人や環境にとって最も安全な状態に移行する設計思想です。
たとえば鉄道信号システムでは、通信断や回路断線が起こると自動的に「赤信号」として扱われます。これは列車を止めることで人命を守るためです。自動車分野でも、ブレーキ制御に異常があれば油圧系を直接駆動できるようにし、制動力を確保する仕組みが典型例です。
フェールセーフの特徴は「安全最優先」であり、システムの継続稼働よりも停止や制限を選択する点にあります。
フェールオーバー(failover)
フェールオーバーとは、システムのメイン経路や主要コンポーネントが異常で使えなくなったときに、同等機能を持つ予備系に自動的に切り替える仕組みです。
データベースシステムにおいて、プライマリDBが過負荷や障害で応答できなくなった場合に、待機していたスタンバイDBへ自動切替する仕組みが典型例です。利用者から見ればサービスが止まらず、品質が維持されます。
フェールオーバーは「サービスの継続性」と「品質維持」を重視し、冗長構成や監視・自動切替の仕組みが前提になります。
フォルトトレラント(fault-tolerant)
フォルトトレラントは、より厳格な概念で、システムの一部に障害が発生しても全体としては影響を与えず、同等のサービスを継続する能力を指します。
航空機のフライトコントロールコンピュータは典型的な例で、三重化や多重投票方式によって一部が故障しても操縦が継続可能です。原子力プラントや金融決済システムなど、人命や社会基盤に直結する分野で求められます。
フェールオーバーとの違いは、「切り替え」ではなく「冗長性により障害を吸収し、利用者が気づかない形で同等レベルのサービスを継続する」点です。
フォールバック(fallback)
フォールバックとは、メインの手段が利用できないときに、下位互換の手段や縮退した運転モードに切り替えることを指します。
暗号通信でTLS1.3が使えなければTLS1.2に落とす、スマートフォンがWi-Fi圏外になればLTEに切り替える、といった動作が典型例です。自動車分野では、エンジン制御のリンプホームモード(最低限の出力に制限して走行を継続可能にする)がこれにあたります。
フォールバックの特徴は「安全を最優先するフェールセーフ」とも「品質維持を追求するフェールオーバー」とも異なり、性能を犠牲にしてでも継続性を確保する設計である点です。
まとめ
- フェールセーフ:異常時は停止や制限を行い、安全を最優先する。
- フェールオーバー:同等機能を持つ予備系に切り替え、サービスを維持する。
- フォルトトレラント:冗長性で障害を吸収し、利用者に影響を与えず継続する。
- フォールバック:下位互換や縮退運転に移行し、性能を落としてでも継続する。
これらの概念は似ているように見えて、実際には「何を優先するか(安全・品質・継続性)」という設計思想の違いを示しています。現代のシステムはしばしばこれらを組み合わせて用いており、例えば「普段はフォルトトレラント設計だが、想定外の障害時はフォールバックに移行し、それでも危険な場合はフェールセーフに落とす」といった多層的な設計が一般的です。
Discussion