フェイルオーバー(Failover)

フェイルオーバー(Failover)とは、稼働中の機器やシステムに障害が発生した際に、自動的に予備の系統へ切り替えて、サービスを止めずに動作を継続させる仕組みのことです。利用者が気づかないうちに、裏側でバトンタッチが行われています。

現実世界に例えると、フェイルオーバーは舞台の主役が体調を崩した際、すぐに控えの役者が代わりを務めるようなものです。観客が違和感を覚えないうちに、舞台そのものは止まることなく進み続けます。

フェイルオーバー図解

フェイルオーバー図解

フェイルオーバーの仕組み

フェイルオーバーを実現するには、「ヘルスチェック」と呼ばれる仕組みで、機器が正常に動作しているかを常に監視し続ける必要があります。異常が検知されると、あらかじめ用意されていた予備の機器へ、処理が自動的に引き継がれます。

アクティブ・スタンバイ方式とアクティブ・アクティブ方式

方式 内容
アクティブ・スタンバイ 普段は待機している予備機に、障害時だけ切り替える
アクティブ・アクティブ 複数の機器を普段から同時に稼働させておく

フェイルバックという後始末

障害からの復旧後、切り替え先で動いていた処理を、元の機器へ戻す作業は「フェイルバック」と呼ばれます。切り替えたままにしておくか、元に戻すかは、システムの構成や運用方針によって判断が分かれます。

DNSを使った切り替えとロードバランサーによる切り替え

フェイルオーバーの方法にはいくつか種類があり、ドメイン名の参照先を切り替える方法と、ロードバランサーが振り分け先を自動で変更する方法が代表的です。前者は反映までにやや時間がかかる場合があり、後者はより即座に切り替わる傾向があります。

スプリットブレインという注意点

複数の機器がお互いの状態を正しく把握できなくなり、それぞれが「自分が本番系だ」と誤認してしまう「スプリットブレイン」という問題が起こることがあります。整合性の取れないデータが発生する原因になるため、設計上の注意が必要です。

切り替えにかかる時間

フェイルオーバーが完了するまでの時間は、システムの構成によって、ほぼ一瞬で済む場合もあれば、数十秒から数分かかる場合もあります。求められる復旧の速さに応じて、適切な仕組みを選ぶ必要があります。

身近な活用場面

ネットショッピングサイトや金融機関のシステムなど、停止が許されないサービスの多くで、フェイルオーバーの仕組みがあらかじめ組み込まれています。利用者が障害の発生にまったく気づかないケースも少なくありません。

まとめ

フェイルオーバーは、障害の発生を前提としたうえで、サービスを止めないための「もしも」への備えです。冗長化された仕組みがあってこそ実現できる、安定運用を支える重要な技術です。

あわせて知っておきたい用語

  • 冗長化
    同じ機能を複数用意し、故障時にも動作を続けられるようにする仕組みです。
  • 可用性
    システムが止まらずに使い続けられる度合いのことです。
  • 負荷分散
    複数のサーバーへ処理を振り分ける仕組みです。
  • ダウンタイム
    システムが停止し、利用できなくなっている時間のことです。

コメント

タイトルとURLをコピーしました