現代のビジネスにおいて、ITシステムの停止はサービスの停滞や経済的な損失に直結する重大なリスクです。
そのため、多くの企業ではシステムの可用性を高めるために、サーバーを冗長化する手法が採用されています。
冗長化構成の中でも、特に信頼性とコストのバランスに優れているのが「アクティブ/スタンバイ構成」です。
本記事では、この構成の基本から、応用形である「相互待機型」、そしてフェイルオーバークラスタの仕組みについて詳しく解説します。
アクティブ/スタンバイ構成の基本概念
アクティブ/スタンバイ構成とは、2台以上のサーバーを用意し、通常時は1台を稼働させ、もう1台を待機させておく仕組みです。
実際に業務を処理しているサーバーを「アクティブ(現用系)」と呼び、万が一の故障に備えて控えているサーバーを「スタンバイ(待機系)」と呼びます。
この構成の最大の特徴は、システムの切り替えが自動または手動で行われ、サービス停止時間を最小限に抑えられる点にあります。
フェイルオーバークラスタの役割
アクティブ/スタンバイ構成を支える重要な技術が、「フェイルオーバークラスタ」です。
フェイルオーバーとは、稼働中のサーバーに異常が発生した際、自動的に待機中のサーバーへ処理を引き継ぐ仕組みを指します。
複数のサーバーを1つの仮想的なサーバーとして扱う技術を「クラスタリング」と呼び、これによりユーザーは背後のサーバーの入れ替わりを意識せずに利用を継続できます。
ハートビートによる監視
フェイルオーバーを実現するためには、サーバー同士がお互いの状態を常に確認し合う必要があります。
この監視信号のやり取りは、生きていることを確認するための脈拍になぞらえて「ハートビート」と呼ばれます。
アクティブ側の応答が途絶えた際、スタンバイ側が「異常事態」と判断し、サービスを起動させるプロセスが始まります。
相互待機型(Mutual Standby)とは何か
一般的なアクティブ/スタンバイ構成では、1台は完全に何もしない状態で待機していますが、これをより効率的に運用する手法が「相互待機型」です。
相互待機型では、2台のサーバーがそれぞれ異なるサービスのアクティブ機として稼働しつつ、お互いのスタンバイ機を兼ねる形をとります。
例えば、サーバーAでWebサイトを運用し、サーバーBでデータベースを運用するという構成が考えられます。
相互待機型の運用イメージ
通常時、サーバーAとサーバーBはそれぞれ別々の業務を処理しています。
しかし、サーバーAが故障した際には、サーバーBが「自分の本来の業務」に加えて「サーバーAが担当していた業務」も引き受けます。
このように、リソースを無駄に遊ばせることなく、効率的に冗長性を確保できるのが相互待機型の大きなメリットです。
アクティブ/アクティブ構成との違い
相互待機型は「両方のサーバーが動いている」という点ではアクティブ/アクティブ構成に似ていますが、その目的は異なります。
アクティブ/アクティブ構成は、同じ業務を複数のサーバーで分担して負荷分散(ロードバランシング)を行うことを主な目的としています。
対して相互待機型は、あくまで「異なる業務のバックアップを相互に持つ」というフェイルオーバーの仕組みに基づいています。
スタンバイ状態の3つの種類
待機系サーバーがどのような状態で準備されているかによって、切り替えにかかる時間やコストが変わります。
これらは一般的に「コールドスタンバイ」「ウォームスタンバイ」「ホットスタンバイ」の3つに分類されます。
| 待機方式 | 状態の概要 | 切り替え速度 | コスト |
|---|---|---|---|
| コールドスタンバイ | 電源をオフにして待機する方式。障害発生後に起動する。 | 遅い | 低い |
| ウォームスタンバイ | OSは起動しているが、アプリケーションは準備状態。 | 中程度 | 中程度 |
| ホットスタンバイ | OSもアプリも起動済みで、データも常に同期されている。 | 非常に速い | 高い |
ホットスタンバイの重要性
ミッションクリティカルなシステムでは、コンマ数秒の停止も許されないため、ホットスタンバイが推奨されます。
ホットスタンバイでは、アクティブ機とスタンバイ機の間でリアルタイムにデータが同期されています。
そのため、切り替えが発生してもデータの損失がほとんどなく、スムーズに業務を継続することが可能です。
フェイルオーバークラスタを支える共有ストレージ
アクティブ/スタンバイ構成でデータの整合性を保つためには、データの保存先を工夫する必要があります。
代表的な手法として、複数のサーバーからアクセス可能な「共有ストレージ(SANやNAS)」を利用する方法があります。
アクティブ機が書き込んだデータを、切り替え後のスタンバイ機がそのまま読み取ることにより、環境を引き継ぐことができます。
データミラーリングの活用
物理的な共有ストレージを用意できない場合は、ネットワーク経由でデータを複製する「データミラーリング」が用いられます。
各サーバーのローカルディスクにある内容を常に同期させることで、仮想的な共有状態を作り出します。
これにより、クラウド環境などの物理構成に制限がある場所でも、フェイルオーバークラスタを構築することが可能になります。
アクティブ/スタンバイ構成(相互待機型)のメリット
この構成を採用することで、企業は多くの利点を得ることができます。
特に可用性とコスト効率の観点から、以下のようなメリットが挙げられます。
1. 高い可用性(アベイラビリティ)の確保
最大のメリットは、サーバー障害時のサービス停止時間を最小化できることです。
手動での復旧作業に比べて、自動フェイルオーバーは迅速かつ確実にシステムを正常な状態へ戻します。
これにより、24時間365日の稼働が求められるシステムにおいても、高い信頼性を提供できます。
2. メンテナンスの容易さ
システムのメンテナンスを行う際にも、この構成は威力を発揮します。
OSのアップデートや部品交換を行う場合、意図的にフェイルオーバーを発生させることで、サービスを止めずに作業を進めることが可能です。
これを「ローリングアップデート」と呼び、計画停止の時間を大幅に削減できます。
3. 相互待機型によるリソースの最適化
相互待機型を選択すれば、2台のサーバー性能を有効に活用できます。
従来の片方固定の待機方式では、1台分の電気代やハードウェアコストが「保険」として眠っている状態でした。
相互待機型にすることで、通常時のパフォーマンスを最大化しつつ、非常時のバックアップ体制も維持できるのです。
導入時の注意点と検討事項
多くのメリットがある一方で、アクティブ/スタンバイ構成を導入する際には、いくつかの留意点があります。
設計を誤ると、期待通りの効果が得られないばかりか、逆にトラブルの原因となることもあります。
1. フェイルバックの手順設計
障害から復旧した元のサーバーを再びアクティブに戻す作業を「フェイルバック」と呼びます。
フェイルバックは自動で行う設定も可能ですが、意図しないタイミングで切り戻しが発生すると、データの不整合が起きるリスクがあります。
一般的には、安全を確認した上で管理者が手動でフェイルバックを行う運用が推奨されます。
2. 相互待機型における性能不足のリスク
相互待機型では、1台のサーバーが故障した際、残された1台が「2台分の業務」をこなさなければなりません。
そのため、片方のサーバーに2系統の負荷がかかっても処理しきれるだけの、十分なリソース(CPU・メモリ)を確保しておく必要があります。
このキャパシティ設計を怠ると、フェイルオーバー後にシステム全体が重くなり、二次被害を招く恐れがあります。
3. クラスタ構成の複雑化
フェイルオーバークラスタを構築するためには、専用のソフトウェアやネットワーク設定が必要になります。
構成が複雑になればなるほど、設定ミスや予期せぬ挙動による「スプリットブレイン現象」などのトラブルが発生しやすくなります。
スプリットブレインとは、サーバー同士の通信が途絶えた際、双方が「自分がアクティブだ」と誤認してしまい、データが破損する深刻な事態です。
まとめ
アクティブ/スタンバイ構成、特に相互待機型は、システムの安定稼働とリソース活用のバランスを取るための強力なソリューションです。
フェイルオーバークラスタの仕組みを正しく理解し導入することで、予期せぬ障害から大切なビジネスを守ることができます。
ただし、その構築には高度な設計と、障害発生時を見据えた運用体制の整備が欠かせません。
まずは自社のシステムの重要度を確認し、適切な待機方式(ホット・ウォーム・コールド)を選択することから始めましょう。
可用性の高いインフラ構築は、企業のデジタル基盤を支える上で最も重要な投資の一つと言えるでしょう。
