フェイルオーバーとは

フェイルオーバー(Failover)とは、コンピュータシステムやネットワークにおいて、稼働中のシステムやコンポーネントに障害が発生した場合に、サービスを中断させることなく、予め用意された待機系(冗長系)のシステムやコンポーネントへ自動的に処理を引き継ぐ(切り替える)仕組みを指します。

これにより、システム全体の可用性を高め、ダウンタイムを最小限に抑えることが可能になります。

フェイルオーバーの基本的な概念

フェイルオーバーは、システムの連続稼働を保証するための重要な技術であり、ビジネス継続性(Business Continuity)や災害復旧(Disaster Recovery)戦略において不可欠な要素です。

主な概念は以下の通りです。

  1. 高可用性(High Availability, HA): フェイルオーバーは、システムが高可用性を実現するための主要な手段の一つです。障害発生時にもサービスを継続させることで、ユーザーへの影響を軽減します。
  2. 冗長構成(Redundant Configuration): フェイルオーバーを実現するためには、稼働系(アクティブ)システムに対して、少なくとも一つの待機系(スタンバイ、パッシブ)システム、または複数のアクティブなシステム(アクティブ-アクティブ構成)を用意しておく必要があります。
  3. 自動切り替え: 手動での介入を必要とせず、システム自身が障害を検知し、自動的に待機系への切り替えを実行します。これにより、迅速な復旧とダウンタイムの最小化が実現されます。
  4. 障害検知: フェイルオーバー機構は、稼働系システムやコンポーネントの状態を常に監視し、障害を検知するメカニズムを備えています。これは、ハートビート(定期的な死活監視)や、サービスポートへの接続テストなどによって行われます。

フェイルオーバーの主要な構成と種類

フェイルオーバーの構成にはいくつかのパターンがあり、それぞれ異なる特性とメリット・デメリットがあります。

  1. アクティブ-スタンバイ(Active-Standby)構成 / アクティブ-パッシブ(Active-Passive)構成:
    • 動作原理: 通常時は一台のシステム(アクティブ系)が稼働し、もう一台のシステム(スタンバイ系)は待機状態にあります。アクティブ系に障害が発生した場合、スタンバイ系がアクティブ系に昇格し、処理を引き継ぎます。
    • 特徴: 実装が比較的シンプルです。スタンバイ系は通常時にリソースを消費しない(または最小限)ため、コスト効率が良い場合があります。ただし、切り替え時に状態同期や起動処理が必要となるため、ある程度のダウンタイムが生じる可能性があります。
    • 適用例: データベースサーバーのクラスタリング、ファイアウォール、ロードバランサー、仮想マシンのHAクラスタ。
  2. アクティブ-アクティブ(Active-Active)構成:
    • 動作原理: 複数台のシステムが同時に稼働し、それぞれがサービスを提供します。通常時から負荷が分散されており、一台のシステムに障害が発生した場合、残りの稼働系システムが残りの処理を引き継ぎます。
    • 特徴: 障害発生時のダウンタイムが非常に短く、サービス継続性が高いです。通常時からリソースを最大限に活用できるため、パフォーマンスとスケーラビリティに優れます。実装の複雑性が増し、状態の同期やデータ整合性の維持が課題となることがあります。
    • 適用例: Webサーバーのロードバランシング、分散データベース、コンテンツ配信ネットワーク(CDN)。
  3. コールドスタンバイ(Cold Standby):
    • 動作原理: 待機系システムは電源がオフになっているか、非常に限定された状態で稼働しています。障害発生時に手動または自動で起動し、構成情報をロードしてサービスを開始します。
    • 特徴: コストは最も低いですが、復旧までに時間がかかります。
    • 適用例: 重要度が比較的低いシステム、災害復旧サイト。
  4. ウォームスタンバイ(Warm Standby):
    • 動作原理: 待機系システムは起動しており、稼働系システムからのデータ同期などを行っていますが、サービスは提供していません。障害発生時に比較的迅速にサービスを開始できます。
    • 特徴: コールドスタンバイより復旧が速く、ホットスタンバイよりコストが低い。
    • 適用例: 中程度の可用性要求を持つシステム。
  5. ホットスタンバイ(Hot Standby):
    • 動作原理: 待機系システムも稼働系システムとほぼ同じ状態で稼働しており、継続的にデータ同期が行われています。障害発生時にほぼ瞬時に切り替えが可能です。
    • 特徴: 最高の可用性を提供しますが、コストが最も高くなります。
    • 適用例: 金融システム、通信インフラ、ミッションクリティカルなシステム。アクティブ-スタンバイ構成の一種として見なされることも多いです。

フェイルオーバーの仕組みと技術要素

フェイルオーバーを実現するためには、いくつかの技術要素が組み合わされます。

  1. 障害検知(Failure Detection):
    • ハートビート: システム間で定期的に短いメッセージを交換し、相手が応答しない場合に障害と判断します。
    • サービス監視: 特定のポートやサービスが応答するかどうかを継続的に監視します。
  2. ステータス同期(State Synchronization): アクティブ系と待機系間で、データや設定、セッション情報などの状態をリアルタイムまたは準リアルタイムで同期させます。これにより、切り替え後もサービスの状態が維持されます。
  3. アドレス解決(Address Resolution) / VIP(Virtual IP Address): 切り替え時に、クライアントからの接続先IPアドレス(通常は仮想IPアドレス)を待機系システムに引き継ぐことで、クライアントは切り替えを意識することなくサービスを継続利用できます。ARP(Address Resolution Protocol)の gratuitous ARP などが利用されます。
  4. ロードバランシング(Load Balancing): アクティブ-アクティブ構成においては、複数のサーバー間で負荷を分散させるロードバランサーがフェイルオーバーの役割も兼ねる場合があります。特定のサーバーがダウンした場合、そのサーバーへのトラフィックを停止し、残りの健全なサーバーへ振り分けます。
  5. クォーラム(Quorum)/ スプリットブレイン対策(Split-Brain Avoidance): クラスタシステムにおいて、ネットワーク分断などにより、複数の待機系が同時にアクティブ系になろうとする「スプリットブレイン」状態を防ぐためのメカニズムです。投票システムや共有ディスクへの排他的アクセス制御などで実現されます。

フェイルオーバーは、システム障害発生時に、サービスを中断させることなく予め用意された待機系システムへ自動的に処理を引き継ぐ仕組みです。これにより、システムの高可用性を実現し、ダウンタイムを最小限に抑えることが可能となります。

アクティブ-スタンバイ、アクティブ-アクティブ、コールド/ウォーム/ホットスタンバイといった様々な構成があり、システムの重要度やコスト要件に応じて選択されます。障害検知、ステータス同期、アドレス解決、ロードバランシング、スプリットブレイン対策などがフェイルオーバーを実現するための主要な技術要素です。フェイルオーバーの適切な導入は、ビジネス継続性を確保し、企業の信頼性を維持する上で不可欠な戦略となります。

関連用語

高可用性 | 今更聞けないIT用語集
冗長化 | 今更聞けないIT用語集
クラウドソリューション

お問い合わせ

システム開発・アプリ開発に関するご相談がございましたら、APPSWINGBYまでお気軽にご連絡ください。

APPSWINGBYの

ソリューション

APPSWINGBYのセキュリティサービスについて、詳しくは以下のメニューからお進みください。

システム開発

既存事業のDXによる新規開発、既存業務システムの引継ぎ・機能追加、表計算ソフトによる管理からの卒業等々、様々なWebシステムの開発を行っています。

iOS/Androidアプリ開発

既存事業のDXによるアプリの新規開発から既存アプリの改修・機能追加まで様々なアプリ開発における様々な課題・問題を解決しています。


リファクタリング

他のベンダーが開発したウェブサービスやアプリの不具合改修やソースコードの最適化、また、クラウド移行によってランニングコストが大幅にあがってしまったシステムのリアーキテクチャなどの行っています。