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

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

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

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

本動作はCluster WebUI の設定モードの、[クラスタのプロパティ]→[NP解決] タブ→[調整] ボタン→[ネットワークパーティション解決調整プロパティ] 画面→[NP発生時動作] で変更できます。

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

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

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

略称

機能概要

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

comnp

2 台のサーバ間を COM ケーブルで接続してネットワークパーティション解決を行います

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

disknp

共有ディスク上の専用パーティションを使用してネットワークパーティション解決を行います

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

pingnp

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

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

httpnp

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

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

majonp

3 台以上のサーバで接続可能なサーバ台数によりネットワークパーティション解決を行います

  • クラスタサーバの構成毎に選択可能なネットワークパーティション解決リソースが異なります。以下のいずれかの組合せで選択してください。

クラスタサーバの構成

ネットワークパーティション解決方式
(記載順が推奨する順位を表します)

ディスクリソースが存在する場合

[サーバ数 2 台]

  • PING 方式と DISK 方式

  • COM 方式と DISK 方式

  • DISK 方式

[サーバ数 3 台以上]

  • PING 方式と DISK 方式

  • DISK 方式

  • 多数決方式

ミラーディスクリソースが存在し、ディスクリソースが存在しない場合

[サーバ数 2 台]

  • HTTP 方式

  • PING 方式

  • COM 方式

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

[サーバ数 3 台以上]

  • HTTP 方式

  • PING 方式

  • 多数決方式

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

ディスクリソース及び、ミラーディスクリソースが存在しない場合

[サーバ数 2 台]

  • HTTP 方式

  • PING 方式

  • COM 方式

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

[サーバ数 3 台以上]

  • HTTP 方式

  • PING 方式

  • 多数決方式

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

  • 以下のようにサーバ 1 とサーバ 2 がディスクリソースとミラーディスクリソースの 両方を使用している場合、ネットワークパーティションリソースの組合せとして DISK方式と COM 方式、DISK 方式と PING 方式、DISK 方式が選択できます。

  • ディスクリソースとミラーディスクリソースが起動可能なサーバが異なる場合、それぞれのサーバ間で別々にネットワークパーティションリソースを設定する必要があります。以下のようにサーバ 1 とサーバ 2 で共有ディスクを使用、サーバ 2 とサーバ3 でミラーディスクを使用する場合、ネットワークパーティションリソースの組合せと してサーバ 1 とサーバ 2 では COM 方式と DISK 方式、PING 方式と DISK 方式、DISK 方式が選択でき、サーバ 2 とサーバ 3 では COM 方式、PING 方式が選択できます。

  • ネットワークパーティション解決リソースは複数の種類を組み合わせて登録することが可能です。複数の種類のリソースが登録されている場合、以下の順でNP解決処理を行います。

    1. PING方式とDISK方式

    2. COM方式とDISK方式

    3. HTTP方式

    4. PING方式

    5. COM方式

    6. DISK方式

    7. 多数決方式

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

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

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

  • 2 台のサーバ間を接続するシリアルクロスケーブルを確保してください。

COM ネットワークパーティション解決リソースは、ネットワークパーティションを検出すると優先度の低いサーバでネットワークパーティション発生時の動作を実施します。

詳細については本ガイドの「2. パラメータの詳細」 - 「クラスタプロパティ」 - 「NP 解決タブ」を参照してください。

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

  • COM ネットワークパーティション解決リソースは 2 台のサーバ間で使用可能です。

  • COM 通信路 (COM ポートやシリアルクロスケーブル) に異常が発生している状態で全てのハートビート切れが発生した場合は、全てのサーバでネットワークパーティション発生時の動作を実施します。

  • 万一、クラスタサーバ間の全てのネットワーク通信路と COM 通信路に同時に障害が発生した場合には、両サーバがフェイルオーバを実行します。この場合は同一リソースを複数のサーバからアクセスしてデータ破壊を引き起こす場合があります。

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

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

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

  • 共有ディスク上に専用のパーティション (ディスクハートビート用パーティション) を 確保してください。(パーティションのフォーマットは必要ありません。)

  • 共有ディスク上の専用パーティションに割り当てるドライブ文字を確保してください。(ドライブ文字はサーバ間で同じでなければなりません。)

DISK ネットワークパーティション解決リソースは、ネットワークパーティションを検出すると 優先度の一番高いサーバと通信不可能なサーバでネットワークパーティション発生時の動作を実施します。

クラスタが 2 台以上のサーバで構成されている場合に、以下のように DISK ネットワークパーティション解決リソースを使用する構成が可能です。クラスタ内の共有ディスクを使用するサーバ間でのみ DISK ネットワークパーティション解決リソースを使用するように設定することができます。

詳細については本ガイドの「2. パラメータの詳細」 - 「クラスタプロパティ」 - 「NP 解決タブ」を参照してください。

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

  • 共有ディスクを使用する場合には、DISK ネットワークパーティション解決リソースの使用を推奨します。

  • DISK ネットワークパーティション解決リソースは定期的にディスクへの read/writeを行うためディスクへの負荷を考慮して設定してください。

  • DISK ネットワークパーティションで使用するディスクハートビート用パーティションはHBA の設定でクラスタで管理するよう設定されたパーティションを設定してください。

  • 全てのディスクハートビート用パーティションへのアクセスが正常な状態で全てのネットワーク通信路に障害が発生した場合は、ネットワークパーティションを検出して、マスタサーバ及びマスタサーバと通信できるサーバがフェイルオーバ処理を実施します。 それ以外のサーバでネットワークパーティション発生時の動作を実施します。

  • 一部のディスクハートビート用パーティションへのアクセスが異常な状態で、ハートビート切れが発生した場合は、ネットワークパーティションの解決ができないためフェイルオーバできません。この場合、ディスクハートビート用パーティションへのアクセスが異常なサーバでネットワークパーティション発生時の動作を実施します。

  • 共有ディスクへの IO 時間がクラスタのプロパティで設定する DiskNP リソースのIO 待ち時間より長くかかる場合にはネットワークパーティション解決処理がタイム アウトしてフェイルオーバできないことがあります。

  • 他の方式に比べ、ディスク I/O の遅延を考慮する必要があるため、ネットワークパーティション解決に時間がかかります。この時間はクラスタのプロパティで設定するハートビートタイムアウト時間とディスク IO 待ち時間の長いほうの約 2 倍となります。

  • DISK ネットワークパーティション解決リソースを使用している場合、共有ディスクの専用パーティションへは、クラスタが起動している状態の全てのサーバから定期的にアクセスが行われます。クラスタ停止状態、あるいはサスペンド状態のサーバからはアクセスは行われません。

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

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

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

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

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

詳細については本ガイドの「2. パラメータの詳細」 - 「クラスタプロパティ」 - 「NP 解決タブ」を参照してください。

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

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

ping 用装置の障害などにより、ハートビートが途絶する前に全サーバで [ping] コマンドの 応答が返らない状態が続くと、ネットワークパーティションの解決を行いません。

共有ディスクを使用する場合には、PING ネットワークパーティション解決リソースだけではなく、DISK ネットワークパーティション解決リソースと組み合わせて使用することを推奨します。

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

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

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

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

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

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

詳細については本ガイドの「2. パラメータの詳細」 - 「クラスタプロパティ」 - 「NP 解決タブ」を参照してください。

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

Web サーバとの通信では、NIC およびソースアドレスは OS の設定に従って選択されます。

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

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

ネットワーク障害によって過半数のサーバと通信できなくなったサーバでネットワークパーティション発生時の動作を実施することによってネットワークパーティション症状によるデータ破壊を防ぎます。

詳細については本ガイドの「2. パラメータの詳細」 - 「クラスタプロパティ」 - 「NP 解決タブ」を参照してください。

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

  • 3 ノード以上のクラスタで選択できます。

  • 半数以上のサーバがダウンした場合は、残りの全ての正常サーバはネットワークパーティション発生時の動作を実施します。なお、ちょうど半数のサーバと通信できない場合は、優先度の一番 高いサーバと通信できないサーバでネットワークパーティション発生時の動作を実施します。

  • ハブの故障などによって全てのサーバがネットワークから孤立した場合は、全サーバでネットワークパーティション発生時の動作を実施します。

6.7. COM 方式と DISK 方式によるネットワークパーティション解決を理解する

COM ネットワークパーティション解決リソースと DISK ネットワークパーティション解決リソースを組合せて、ネットワークパーティション解決を行います。

COM 通信路 (COM ポートやシリアルクロスケーブル) が正常な状態では COM 方式と同様に動作しますが、COM 通信路に異常が発生している状態では共有ディスク方式に切り替わります。これにより、COM 方式のみの場合に比べ高い可用性を実現すると共に、ディスク方式のみの場合に比べ高速にネットワークパーティション解決を完了することができます。

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

PING ネットワークパーティション解決リソースと DISK ネットワークパーティション解決リソースを組合せて、ネットワークパーティション解決を行います。

ping 用装置の障害等により、全サーバと ping 用装置との通信に異常が発生している状態 2 では共有ディスク方式に切り替わります。これにより、PING方式のみの場合に比べ高い可用性を実現すると共に、ディスク方式のみの場合に比べ高速にネットワークパーティション解決を完了することができます。

PING ネットワークパーティション解決リソースを使用するサーバと、DISK ネットワークパーティション解決リソースを使用するサーバが一致する場合に、PING+DISK 方式として動作します。例えば、ハイブリッドディスク構成のクラスタで、特定サーバグループ内でのみ使用する DISK ネットワークパーティション解決リソースと、クラスタ全体で使用する PING ネットワーク解決リソースが設定されている場合、これらのリソースはそれぞれ独立して動作します。この場合に PING+DISK 方式で動作するように設定するには、DISK ネットワークパーティション解決リソースと同じサーバグループ内でのみ使用する PING ネットワーク解決リソースを追加する必要があります。

2

ハートビートが途絶する前に全サーバで [ping] コマンドの応答が返らない状態

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

共有ディスクを使用しないクラスタで選択できます。

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

6.10. ネットワークパーティション解決リソースの設定に関する注意事項

X 2.1 以前では上記 に示す、ネットワークパーティション解決リソースの組合せ以外が指定された場合、ネットワークパーティション解決を行っていませんでしたが、X 3.0 以降では上記の組合せ以外でも設定されたリソースに 従って、以下の順序でネットワークパーティション解決を行います。

  1. PING 方式と DISK 方式

  2. COM 方式と DISK 方式

  3. HTTP 方式 (X4.1 以降で追加)

  4. PING 方式 (1.でネットワークパーティション解決処理を行っていた場合は実施しない)

  5. COM 方式 (2.でネットワークパーティション解決処理を行っていた場合は実施しない)

  6. DISK 方式 (1.または2.でネットワークパーティション解決処理を行っていた場合は実施しない)

  7. 多数決方式