5. ハートビートリソースの詳細

本章では、ハートビートリソースの詳細について説明します。

5.1. ハートビートリソースとは?

クラスタ内のサーバは、他のサーバの死活監視を行います。サーバ間の死活監視はハートビートリソースを使用します。ハートビートデバイスには以下の種類があります。

  1. LANハートビート/カーネルモードLANハートビート(プライマリインタコネクト)

    共有ディスクに接続された2台のサーバ

    図 5.1 LANハートビート/カーネルモードLANハートビート(プライマリインタコネクト)

  2. LANハートビート/カーネルモードLANハートビート(セカンダリインタコネクト)

    共有ディスクに接続された2台のサーバ

    図 5.2 LANハートビート/カーネルモードLANハートビート(セカンダリインタコネクト)

  3. ディスクハートビート

    共有ディスクに接続された2台のサーバ

    図 5.3 ディスクハートビート

  4. Witnessハートビート

    共有ディスクに接続された2台のサーバ

    図 5.4 Witnessハートビート

ハートビートリソース名

略称

機能概要

LAN ハートビートリソース (1) (2)

lanhb

LAN を使用してサーバの死活監視を 行います
クラスタ内の通信でも使用します

カーネルモード LAN ハートビートリソース (1) (2)

lankhb

カーネルモードのモジュールが LAN を使用してサーバの死活監視を行います

ディスクハートビートリソース (3)

diskhb

共有ディスク上の専用パーティションを 使用してサーバの死活監視を行います

Witness ハートビートリソース (4)

witnesshb

Witness サーバを使用してサーバの死活監視を行います

  • 優先度が一番高いインタコネクトには、全サーバ間で通信可能な LAN ハートビートまたはカーネルモード LAN ハートビートを設定してください。

  • カーネルモード LAN ハートビートリソースを 2 つ以上設定することを推奨します(クラウド環境や遠隔クラスタ環境のようにネットワークの追加が難しい場合はその限りではありません)。

  • インタコネクト専用の LAN をカーネルモード LAN ハートビートリソースとして登録し、さらにパブリック LAN もカーネルモード LAN ハートビートリソースとして登録することを推奨します。

5.2. LAN ハートビートリソースを理解する

5.2.1. LAN ハートビートリソースの注意事項

  • LAN ハートビートリソース、もしくカーネルモード LAN ハートビートリソースは 1 つ以上設定する必要があります。インタコネクト専用のLAN ハートビートリソースと、インタコネクトとパブリック共用の LAN ハートビートリソースの 2 つ以上の設定を推奨します。

  • インタコネクトに登録した I/F にはアラート同期の通信データが流れます。ネットワーク トラフィックを考慮して設定してください。

5.3. カーネルモード LAN ハートビートリソースを理解する

5.3.1. カーネルモード LAN ハートビートリソースの動作確認情報

注釈

ディストリビューション、カーネルバージョンに依存するため、設定前に必ず『スタートアップガイド』の「CLUSTERPRO の動作環境」 - 「ソフトウェア」 - 「動作可能なディストリビューションと kernel」を参照してください。

5.3.2. カーネルモード LAN ハートビートリソースの設定

LAN ハートビートと同様の機能をカーネルモードのドライバモジュールを使用して実現します。 以下のような特徴があります。

  • カーネルモードのドライバを使用するため、負荷に影響されにくくインタコネクト断線の誤認が少なくなります。

  • ユーザ空間モニタリソースの keepalive 方式と同時に設定することで、ユーザモードストール検出時のリセットを他のサーバで記録することが可能になります。

5.3.3. カーネルモード LAN ハートビートリソースの注意事項

  • インタコネクト専用のカーネルモード LAN ハートビートリソースと、インタコネクトとパブリック共用のカーネルモード LAN ハートビートリソースの 2 つ以上の設定を推奨します。

5.4. ディスクハートビートリソースを理解する

5.4.1. ディスクハートビートリソースの設定

ディスクハートビートリソースを使用するためには、以下の設定が必要です。

  • 共有ディスク上に専用のパーティションを確保してください。 (ファイルシステムを作成する必要はありません。)

  • 全てのサーバから、共有ディスク上の専用パーティションが同じデバイス名でアクセスできるように設定してください。

ディスクハートビートリソースを使用すると、ネットワークが切断された場合でも他サーバの生存を確認することが可能になります。

  1. 図では、2台のサーバが共有ディスクに接続されています。
    共有ディスク上のパーティションの一つが、ディスクハートビート用パーティションとして使用されています。
    2台のサーバと共有ディスク

    図 5.5 ディスクハートビートリソース (1)

  2. サーバ間を接続している2本のネットワークのうち、片方が切断されました。

    2台のサーバと共有ディスク

    図 5.6 ディスクハートビートリソース (2)

  3. サーバ間を接続しているネットワーク全てが切断された場合でも、ディスクハートビートリソースは、共有ディスク上のファイルシステムが、両系活性によって破壊されるのを防ぎます。

    2台のサーバと共有ディスク

    図 5.7 ディスクハートビートリソース (3)

クラスタが 3 台以上のサーバで構成されている場合に、以下のようにディスクハートビートリソースを使用する構成が可能です。クラスタ内の共有ディスクを使用するサーバ間でのみディスクハートビートリソースを使用するように設定することができます。

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

3台のサーバと共有ディスク

図 5.8 ディスクハートビートリソースを使用する構成(サーバ3台)

5.4.2. ディスクハートビートリソースの注意事項

  • 共有ディスクを使用する場合には、LAN ハートビートリソースとディスクハートビートリソースの併用を推奨します。

  • 各 LUN にディスクハートビート専用パーティションを確保してください。ディスクの故障 などでデバイス名がずれた場合にファイルシステムを破壊することがありますので、ディスクハートビートを使用しない LUN にもダミーのパーティションを確保してください。
    ディスクハートビート専用パーティションのパーティション番号が各 LUN で同じになるように確保してください。
    図は、それぞれ4つのLUNを格納した2台のストレージ筐体を表しています。
    各ストレージ筐体内の各LUNには、ディスクハートビート専用パーティションが確保されていますが、このうち、実際に使用するのは各筐体内の一つだけです(LUN 1-1、LUN 2-1上の Disk heartbeat partition)。
    その他のLUN上のディスクハートビート専用パーティション(Dummy partition)は、デバイス名が意図せず変わってしまった場合でもファイルシステムを破壊することのないように確保したものであり、実際には使用しません。
    2つのストレージ筐体、およびその中のLUN

    図 5.9 ディスクハートビート専用パーティション

  • ストレージプールに登録しないでください。

5.5. Witness ハートビートリソースを理解する

5.5.1. Witness ハートビートリソースの設定

Witness ハートビートリソースを使用するためには、以下の設定が必要です。

  • Witness ハートビートリソースを使用する全てのサーバと、Witness サーバサービスが動作しているサーバ (Witness サーバ) が通信可能である必要があります。Witness サーバについては「8. その他の設定情報」の「Witness サーバサービス」を参照してください。

Witness ハートビートリソースを使用すると、Witness サーバが保持しているサーバ死活情報を定期的に確認します。HTTP ネットワークパーティション解決リソースと併用することで、「自サーバと Witness サーバ間の通信途絶」と「他サーバと Witness サーバ間の通信途絶」を区別して動作します。

5.5.2. Witness ハートビートリソースの注意事項

  • クラスタ名にスペース文字が含まれると、Witness ハートビートリソースが正常に動作しません。クラスタ名にスペース文字を含めないでください。

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

  • 「Proxyを使用する」をオンにする場合、あわせて「SSLを使用する」もオンにすることを推奨します。SquidによるProxyサーバ経由でWitnessサーバと通信する場合、Squidの挙動により、HTTPのリクエストごとにProxyサーバ上でTIME_WAIT状態のポートが発生することを確認しています。HTTPSの場合は同様の事象は発生しません。