サーバやシステムというのは常に万全な状態であるとは限りません。システムを安定稼働させるためには、バックアップ体制の構築は欠かせません。サーバやシステムを安定稼働させるための考え方のひとつとして「フェイルオーバー」が存在します。
しかし、「フェイルオーバーとは何か」、「フェイルオーバーを実現するにはどうすればよいかなどといった疑問を持つ人もいるのではないでしょうか。
この記事では、フェイルオーバーの仕組みや導入事例に関して詳しく解説します。
目次
フェイルオーバーとは
「フェイルオーバー(Failover)」は、システムの冗長化技術のひとつです。サーバやシステムに障害が発生した際に、あらかじめ準備しておいた経路と同等の待機系のシステムに自動的に切り替えることを指します。システムの冗長化とは、システムやサーバに障害が発生した場合に備え、予備のシステムを用意しておくことをいいます。
後述のようにフェイルオーバーを実現するためには、待機系のサーバにすぐに切り替えることができる「ホットスタンバイ」の方式をとる必要があります。
フェイルオーバーの技術的な仕組み
フェイルオーバーを実現するための仕組みについて詳細に説明します。フェイルオーバーは、大きく分けて「故障検知」と「待機系への処理の引継ぎ」のふたつの手順に分類できます。
- 故障検知
フェイルオーバーを実現するためには、まず故障が発生したことを検知する必要があります。前述したように、待機系のサーバにすぐに切り替えられる状態とするホットスタンバイ方式が一般的です。
ホットスタンバイ方式のバックアップを行うためには通常、クラスタリングを行うためのソフトウェア(クラスタリングソフト)を導入します。クラスタリングソフトでは、稼働系と待機系が互いに動作していることを確認するための信号「ハートビート信号」を定期的に送受信し、死活監視を行っています。死活監視とは、いずれかのサーバが停止しているか否かをチェックすることを指します。もしも稼働系から一定期間、信号を受信できなかった場合は、クラスタリングソフトは稼働系が停止しているとみなします。 - 待機系への処理の引継ぎ
稼働系になんらかの問題を検知した時点で、待機系への引継ぎ処理が開始されます。
例えば、稼働系と待機系で共有するストレージが存在する場合は、待機系に対して共有ストレージへのアクセス権を付与する処理を行います。その後、待機系はアプリケーションを稼働させ、周辺機器へのアクセスを許可するためにIPアドレスの有効化を行います。
これらの一覧の処理をクラスタリングソフトで行うことで、自動的に故障検知から待機系のサーバへの切り替えを行うことが可能です。つまり、フェイルオーバーをより効率的に行えるかどうかは、クラスタリングソフトのようなツールを活用して、いかに手作業を減らせるかにかかっているのです。
フェイルバックの仕組み
フェイルオーバーは稼働系のサーバから待機系のサーバに自動で切り替える際の用語ですが、逆に待機系から稼働系に切り戻す用語も存在します。稼働系の問題が除去されたあと、待機系のサーバから稼働系のサーバに切り戻すことを「フェイルバック(Failback)」と呼びます。
通常は稼働系のサーバで運用させ、待機系のサーバをバックアップの環境とします。そのため、システムの運用方針にもよりますが、障害が発生して一時的に待機系のサーバでシステムを動かすことになっても、障害復旧後は稼働系のサーバにフェイルバックさせるのです。
フェイルオーバーに関する事例
ここからはフェイルオーバーに関する具体的な事例を紹介します。特に金融機関では、個人や法人の金融情報といった重要情報を取り扱っているため、フェイルオーバーを用いた事例が多いです。
某金融機関でのクラウドの利用
近年は、金融機関でもクラウドを用いたシステム構築が増えています。そのなかで、クラウドのサービスを用いたフェイルオーバーの仕組みを構築した金融機関が存在します。
某金融機関では、かつてはデータセンター上にシステムを組んでいましたが、クラウドサービスのAWS(Amazon Web Services)への切り替えを実現しました。フェイルオーバーにより自動でシステムを切り替える仕組みを構築することで、エンジニアによる切り替え作業を不要としました。
クラウドに関するバックアップについては、「クラウドバックアップで安全なバックアップを用意し、業務停止を防ごう」をご参照ください。
東京証券取引所でフェイルオーバーが失敗
フェイルオーバーの仕組みを構築していたにもかかわらず、うまくその仕組みが動作しなかったケースもあります。
東京証券取引所に「arrowhead(アローヘッド)」と呼ばれる、取引所内のオークション取引を行うためのシステムがあります。このシステムは日本経済において重要な役割を担っており、システムの停止が許されない仕組みでもあります。arrowheadは、注文・約定・注文板などの取引情報を3重化し、信頼性を担保していました。
しかし、2020年10月1日に、arrowheadにシステム障害が発生し、全銘柄終日取引停止という重大な問題が生じました。原因は、稼働系のシステムでメモリーの故障が生じたうえ、待機系のシステムへの切り替えも失敗したことでした。
当日の復旧が実現しなかった理由のひとつとして、システム障害発生時の売買停止後の再開にかかる取り扱いルールが整備されていなかったことが挙げられています。この事例から、フェイルオーバーの仕組みを導入するだけではなく、フェイルオーバーの仕組みで復旧できなかった場合の手順を明確にすることも重要だとわかります。
Carbonite製品でフェイルオーバーを実現しよう
ウェブルートでは「Carbonite® Migration」と「Carbonite® Availability」を提供しています。
Carbonite®シリーズは国内大手のさまざまな業種の企業での導入実績があります。
「Carbonite® Availability」は災害発生時のデータ損失を防ぐための仕組みであり、導入によりシステムの可用性が増します。同製品は、システム停止のダウンタイム削減にも効果的です。即時フェイルオーバー機能と監視機能により、ダウンタイムをわずか数分に短縮できます。また、バイトレベルのリアルタイムレプリケーションで、企業・組織はデータの破損やランサムウェアから容易に回復が可能です。「Carbonite® Availability」を導入することでシステムのRTOやRPOを短縮することができ、システムの可用性が向上します。RTO、RPOに関する詳しい説明は「RPO(目標復旧時点)とRTO(目標復旧時間)の違いとは」をご参照ください。
「Carbonite® Migration」はシステム移行ツールであり、最大の特徴は、システム移行時に移行元のシステムを止めることなくシステムの移行が可能なことです。
フェイルオーバーはシステム停止を極力発生させずに運用するための仕組み
フェイルオーバーは、システムを安定稼働させるために重要なシステム冗長化の仕組みのひとつです。稼働系のシステムでなんらかの障害が発生した際に、待機系に切り替わることにより、システム停止を極力発生させずに運用することが可能です。クラスタリングソフト等を導入してフェイルオーバーを実現し、非常時に備えましょう。