こんにちは。冗長化設計の基礎の後編です。後編では、具体的な冗長化構成の例と冗長構成による拡張性への影響をご説明します。
(前編はこちら)
概要
冗長化構成は、障害復旧が早い順番から以下の3種類あります。
両現用構成(負荷分散構成)
ホットスタンバイ
コールドスタンバイ
基本的には、待機系サーバがシステム稼働状態に近ければ近いほど障害時の復旧時間が短くなります。ただし、信頼性をあげる設計をするほど設計は複雑になり、試験も複雑になります。
詳細
両現用構成
両現用構成は、負荷分散構成とも言います。n台の機器が常時現用面として動くことで、1台がダウンしても業務サービス継続が継続可能なものです。
n台の機器に対する業務通信の振り分けは、負荷分散装置やDNSサーバなどを利用することで行います。この方式が一番可用性が高い方式です。
この方式はフェールソフトの考えとなります。
ホットスタンバイ
ホットスタンバイは、待機系サーバの電源をあげておきます。 待機系サーバが 正系サーバのダウンすると自動的にサービスが起動し体系系サーバでサービス開始する方法です。正系サーバのダウンを自動的に検知し、自動的にサービス検知するため、復旧時間が短いのが特徴です。
この構成は、「 High Availabilit 」や「クラスタリング構成」などとも呼ばれることもあります。ホットスタンバイは死活監視などを行う関係からクラスタリング構成用の製品を導入するケースが多いかと思います。(自分で組めなくもないが・・・)
この方式はフェールセーフの考えになります。
個人的な経験としては、設計が少しよくないだけどうまく切り替わらないケースもあるので、ホットスタンバイを行う場合は、入念な試験が必要だと考えいます。試験のポイントとしては、正と副どこまで設定・定義を共有してるかがポイントとなります。共有していない設定は副系オリジナルのため設定ミスのリスクを考えると正系がOKだからOKとはなりづらいです。
コールドスタンバイ
コールドスタンバイは、待機系サーバのサーバの電源を落としておき、正系サーバがダウンしたら待機系サーバの電源をあげサービスを起動する方式です。
この方式はどうしても切り替えに時間がかかるデメリットがあります。しかし、設計は容易なところが強みです。
この方式はフェールセーフの考えになります。
どの方式を採用すべきか
前述の方式のうちどれを採用すべきかは?可用性要件によります。1秒のダウンも許されない場合は、両現用構成となりますし、数分のダウンが許容されなならホットスタンバイになるなどです。
高可用性システムの設計を行うほどコスト、期間がかかりますので、このあたりの兼ね合いを考えながら意志決定することになります。
(補足)冗長構成による性能拡張時の影響差異について
両現用構成とホットスタンバイ(コールドスタンバイ)では、機器の性能アップ時の影響が異なります。
例を使って説明します。
例えば全体で10の性能が必要なシステムを12の性能に変更するとします。
ホットスタンバイの場合は、正副の機器が各々10の性能を持っていたところを12に増強することになり、全体としては性能をプラス4する必要があります。
一方、両現用構成で2の性能のサーバを5台動かして 10の性能にしていたとします。12の性能に増やしたい場合は、2の性能を1台追加するだけです。
結果的に ホットスタンバイ と 両現用構成 では、”2”増加させる性能が異なり、場合によっては、コストがかなり変わる可能性もありますので、注意してください。このあたりを踏まえて将来的な拡張性も考えながらサーバ攻勢を決めましょう。