6. ネットワークパーティション解決リソースの詳細

本章では、ネットワークパーティション解決リソースの詳細について説明します。

6.1. ネットワークパーティションとは?

ネットワークパーティション状態とはクラスタサーバ間の全ての通信路に障害が発生しネットワーク的に分断されてしまう状態のことです。
ネットワークパーティション状態に対応できていないクラスタシステムでは、通信路の障害とサーバの障害を区別できず、同一資源を複数のサーバからアクセスしデータ破壊を引き起こす場合があります。CLUSTERPRO では、他サーバからのハートビート切れを検出すると、ネットワークパーティション解決リソースを使用してサーバの障害かネットワークパーティション状態かを判別します。サーバダウンと判定した場合は、健全なサーバ上で各種リソースを活性化し業務アプリケーションを起動することでフェイルオーバを実行します。ネットワークパーティション状態と判定した場合には、業務継続よりデータ保護を優先させるため、緊急シャットダウンなどの処理を実施します。

6.2. ネットワークパーティション解決リソースとは?

クラスタ内のサーバは、ハートビートリソースにより他のサーバの死活監視を行います。全てのハートビートリソースが断線した場合、または他サーバがクラスタ以外からシャットダウンされた場合にネットワークパーティション解決リソースを使用してネットワークパーティション解決を行います。ネットワークパーティション解決リソースには以下の種類があります。

ネットワークパーティション解決リソース

略称

機能概要

PING ネットワークパーティション解決リソース (PING 方式)

pingnp

[ping] コマンドにより通信可能なサーバを判断しネットワークパーティション解決を行います

HTTP ネットワークパーティション解決リソース (HTTP方式)

httpnp

Web サーバへの HTTP HEAD リクエストにより通信可能なサーバを判断しネットワークパーティション解決を行います。

  • 利用可能な LAN が 1 系統しか存在しない構成の場合には、PING ネットワークパーティション解決リソースまたはHTTP ネットワークパーティション解決リソースを設定してください。

6.2.1. クラスタサービス起動時のネットワークパーティション解決について

クラスタサービス起動時に、他のサーバとのハートビート経路が全て断線していた場合、ネットワークパーティション解決を行います。このとき、ネットワークパーティションを検出したサーバではクラスタサービスを停止します。ハートビート経路の状態を確認し、手動でクラスタサービスを起動してください。

6.3. PING 方式によるネットワークパーティション解決を理解する

6.3.1. PING ネットワークパーティション解決リソースの設定

PING ネットワークパーティション解決リソースを使用するためには、以下の設定が必要です。

  • [ping] コマンドを受信し、応答を返却可能な常時稼動している装置 (以下、「ping 用装置」と省略します) が必要です。

PING ネットワークパーティション解決リソースは、他サーバからのハートビート切れを検出した際に、ping 用装置から [ping] コマンドの応答がある場合には相手サーバのダウンと判断してフェイルオーバを実施し、[ping] コマンドの応答がない場合はネットワークパーティション状態により自身がネットワークから孤立したものと判断してネットワークパーティション発生時の動作を実施します。

2台のサーバおよびPing装置

図 6.1 PING ネットワークパーティション解決リソース (1)

他サーバからのハートビート切れを検出し、ping装置に対するping応答が無い場合、サーバをシャットダウンさせます。これによって、両系で同じグループが活性となることを防止します。

2台のサーバおよびPing装置

図 6.2 PING ネットワークパーティション解決リソース (2)

詳細については本ガイドの「パラメータの詳細」 - 「クラスタプロパティ」 - 「フェンシングタブ」を参照してください。

6.3.2. PING ネットワークパーティション解決リソースの注意事項

PING ネットワークパーティション解決リソースを使用する場合、指定するアドレスは、構成情報に登録したいずれかのインタコネクト LAN 経由で送受信可能なアドレスを指定してください。

ping 用装置の障害などにより、ハートビートが途絶する前に全サーバで [ping] コマンドの応答が返らない状態が続くと、ネットワークパーティションの解決ができなくなりますので、この状態でハートビート切れを検出した場合、全サーバでネットワークパーティション発生時の動作を実施します。

PING ネットワークパーティション解決リソースはサーバごとに [使用する]、[使用しない] を選択できますが、不適切に [使用しない] を設定した場合、ネットワークパーティション解決処理を行うことができず、両系活性が発生する可能性があります。
ネットワークパーティション解決処理を行うことができない不適切な設定の一例として以下があります。

6.4. HTTP 方式によるネットワークパーティション解決を理解する

6.4.1. HTTP ネットワークパーティション解決リソースの設定

HTTP ネットワークパーティション解決リソースを使用するためには、以下の設定が必要です。

  • 常時稼働している HTTP 通信可能なサーバ (以下、「Web サーバ」とします) が必要です。

HTTP ネットワークパーティション解決リソースは、他サーバからのハートビート切れを検出 した際に、Webサーバからのレスポンスがある場合には相手サーバのダウンと 判断してフェイルオーバを実施し、レスポンスがない場合はネットワークパーティション状態により自身がネットワークから孤立したものと判断してネットワークパーティション発生時の動作を実施します。

2台のサーバおよび常時稼働しているWebサーバ

図 6.3 HTTP ネットワークパーティション解決リソース (1)

他サーバからのハートビート切れを検出し、さらにWebサーバからのレスポンスが無い場合、サーバをシャットダウンさせます。 これによって、両系で同じグループが活性となることを防止します。

2台のサーバおよび常時稼働しているWebサーバ

図 6.4 HTTP ネットワークパーティション解決リソース (2)

詳細については本ガイドの「パラメータの詳細」 - 「クラスタプロパティ」 - 「フェンシングタブ」を参照してください。

6.4.2. HTTP ネットワークパーティション解決リソースの注意事項

  • HTTP の HEAD リクエストに応答する装置を指定してください。
    HEAD リクエストに対するステータスコード 200 または 301 の応答があった場合は正常と判断します。
    ターゲットからの応答が得られない場合および、ステータスコード 200 および 301 以外の応答があった場合は異常と判断します。
  • Web サーバとの通信では、NIC およびソースアドレスは OS の設定に従って選択されます。

6.5. ネットワークパーティション解決しない

ネットワークパーティション解決を行わないため、クラスタサーバ間の全ネットワーク通信路に障害が発生した場合には、全サーバがフェイルオーバを実行します。