フェイルオーバーとは?スイッチオーバー・フェイルバックとの違いを解説!

サーバーの障害対策について調べていると、「フェイルオーバー」「スイッチオーバー」「フェイルバック」という言葉を見かけます。

この記事では、フェイルオーバーについて、以下の内容をわかりやすく説明します。

  • フェイルオーバーの意味と具体例
  • スイッチオーバー・フェイルバックとの違い
  • 切り戻し・ロールバックなどの関連用語との違い

フェイルオーバーとは?

フェイルオーバーとは?

フェイルオーバー(failover)とは、稼働中の機器やシステムに障害が発生したときに、別の機器やシステムへ処理を引き継ぐことです。「フェールオーバー」と表記されることもあります。

簡単にいうと、「故障した機器の代わりに、予備の機器へ仕事を引き継ぐこと」です。

たとえば、お店のレジが故障したとき、別のレジで会計を続ければ、お店全体の会計業務が止まるのを防げます。サーバーでも、同じように別の機器へ処理を引き継ぐ仕組みを用意できます。

ここでは、普段処理を担当するサーバーAを「現用機」、障害に備えて待機するサーバーBを「予備機」として考えます。予備機も本番サービスを引き継ぐための機器なので、区別するときは「現用機・予備機」と呼ぶとわかりやすくなります。

会社のWebサイトをサーバーAで動かし、サーバーBを予備機として用意しているとします。

  • 通常は、サーバーAがWebサイトへのアクセスを処理する。
  • サーバーAに障害が発生する。
  • サーバーBへアクセス先を切り替え、処理を引き継ぐ。

この「障害が起きたAから、代わりのBへ引き継ぐこと」がフェイルオーバーです。目的は、サービスが使えない時間をできるだけ短くすることです。

切り替えの原因は、機器の故障だけではありません。ソフトウェアの異常や通信障害などによって、サービスを提供できなくなった場合も対象になります。

フェイルオーバーは必ず自動なの?

基本的な説明では、「障害時に自動で予備機へ切り替えること」をフェイルオーバーとして紹介することがよくあります。

ただし、フェイルオーバーには、管理者が操作して実行するものもあります。製品やサービスによって用語の使い方が異なるため、「フェイルオーバーなら必ず自動」とは限りません。

また、自動で切り替わる構成でも、障害の検知や切り替えに時間がかかるため、必ず無停止になるわけではありません。

スイッチオーバー・フェイルバックとの違い

「フェイルオーバー」「スイッチオーバー」「フェイルバック」の3つは、同じサーバーA・Bを使って考えると違いがわかりやすくなります。ここでは、障害時の切り替えと計画的な切り替えを区別して説明します。

用語主な目的・きっかけサーバーA・Bの例
フェイルオーバー障害が起きたため、別の機器へ処理を引き継ぐAが故障したため、Bへ切り替える
スイッチオーバー保守作業などのため、計画的に処理を引き継ぐAの点検前に、Bへ切り替える
フェイルバック障害復旧後、元の機器へ処理を戻すAの復旧後、BからAへ戻す

製品やサービスによっては、計画的な切り替えも「フェイルオーバー」と呼ぶことがあります。

スイッチオーバー:計画的に切り替える

スイッチオーバー(switchover)とは、保守や点検などのために、稼働中の機器から別の機器へ計画的に処理を切り替えることです。

たとえば、サーバーAの部品を交換するために、作業前にサーバーBへ切り替えるケースです。Aはまだ故障していませんが、作業中もサービスを提供できるように、先にBへ仕事を引き継ぎます。

管理者の操作で実施することが多いものの、切り替え作業を自動化することもあります。「手動か自動か」だけでなく、障害への対応なのか、計画した切り替えなのかに注目すると整理しやすくなります。

フェイルバック:復旧した元の機器へ戻す

フェイルバック(failback)とは、フェイルオーバーで別の機器へ引き継いだ処理を、復旧した元の機器へ戻すことです。

たとえば、サーバーAが故障してBで運用を続けていた場合に、Aの修理が終わったため、BからAへ処理を戻します。

つまり、「障害時にAからBへ引き継ぐ」のがフェイルオーバー、「復旧後にBからAへ戻す」のがフェイルバックです。

ただし、修理が終わったらすぐに戻せるとは限りません。Bで運用している間にデータが更新されている場合は、Aでも最新のデータを使える状態にし、正常に動くことを確認してから戻す必要があります。

また、構成や運用方針によっては、Bをそのまま現用機として使い続ける場合もあります。フェイルバックは必ず実施するものではありません。

切り戻し・ロールバックなどの関連用語との違い

フェイルオーバーの周辺には、似た場面で使われる用語もあります。それぞれが「何をする言葉なのか」を分けると、混同しにくくなります。

用語簡単にいうと具体例
切り戻し変更後の運用を、元の環境や状態へ戻すこと新サーバーへの移行後に問題が起き、旧サーバーへ戻す
ロールバックデータやソフトウェアなどの変更を取り消し、以前の状態へ戻すこと更新したアプリを以前のバージョンへ戻す
冗長化一部に障害が起きても対応できるよう、機器や経路などを複数用意することサーバーAに加えて、予備のBを用意する
レプリケーションデータを別の場所へ複製し、更新内容を反映することAのデータをBへ継続的に複製する

フェイルバックを「切り戻し」と呼ぶこともあります。ただし、切り戻しには「移行に失敗して旧環境へ戻す」といった意味もあるため、フェイルバックより広い意味で使われます。

ロールバックは、「変更を取り消して以前の状態に戻すこと」に注目した言葉です。

また、予備機を用意する冗長化や、データを複製するレプリケーションは、フェイルオーバーを支える仕組みです。予備機を置いたりデータを複製したりするだけで、自動切り替えまで実現できるわけではありません。障害の検知や、処理の引き継ぎ、アクセス先の変更なども必要になります。

あわせて読みたい

「切り戻し」と「ロールバック」については、以下の記事で詳しく説明しています。興味のある方は下記のリンクからぜひチェックをしてみてください。

「レプリケーション」については、以下の記事で詳しく説明しています。興味のある方は下記のリンクからぜひチェックをしてみてください。

データの複製に遅れがあると、切り替え時に最新の更新を引き継げない場合があります。フェイルオーバーを導入すれば、必ずデータ消失を防げるというわけではありません。

本記事のまとめ

この記事では「フェイルオーバー」について、以下の内容を説明しました。

  • フェイルオーバーは、障害時に別の機器やシステムへ処理を引き継ぐこと。自動で行うものも、手動で行うものもある。
  • スイッチオーバーは、保守や点検などのために計画的に処理を切り替えること。
  • フェイルバックは、別の機器へ引き継いだ処理を、復旧した元の機器へ戻すこと。
  • 切り戻しは元の環境や状態へ戻すことを広く指し、ロールバックは変更の取り消しに注目した言葉である。
  • 冗長化やレプリケーションは切り替えを支える仕組みであり、無停止やデータ消失の防止を必ず保証するものではない。

お読みいただきありがとうございました。

スポンサーリンク