今回はクラスタリングミドルウェア(CLUSTERPRO や LifeKeeper、Veritas Cluster Server 等)で利用されるハートビートについて説明します。
ハートビートとは
まず最初にハートビートとは何でしょうか?ハートビートはクラスタリングミドルウェアの世界ではサーバ間(クラスタミドルウェア間)で死活監視を行う仕組みを指します。
ハートビートの種類
ハートビートは互いに監視対象のサーバ(クラスタグループと呼ぶ)にハートビートを定期的に行っていますが、主要なクラスタリングミドルウェアでは大凡以下のような監視方法をサポートしています。
- 外部ストレージ
- シリアル通信(RS-232C)
- Private LAN
- Public LAN
外部ストレージは HP で言えば MSA のようなストレージ製品を使い外部ディスクの一定の領域に書き込みを行い相互に監視する仕組みを指します。
Private LAN は主にサーバ間をクロスケーブルで接続しハートビート用に確保した LAN を指します。これはシリアル通信と仕組みはほぼ同等です。一方、Public LAN は本来サービスで利用する LAN ケーブルにハートビートパケットを流して監視する仕組みを指します。
ハートビート回線障害がもたらすサービスダウン
通常ハートビートはハートビート回線自体に障害が発生した時を考慮して 1つでは許可されず、複数の方法で実現する必要があります。
例えば、2つのサーバでクラスタ構成を組んでいて、普段 Master となっているサーバに障害が発生した場合、クラスタリングミドルウェアは問題なく Slave 側でサービスを稼働します。
ただ、ハートビート回線に障害が発生してしまった場合、相手が今 Master なのか Slave なのかの判断がつかなくなってしまいます。
この場合、利用している製品にもよりますが自分自身のサービスを停止、もしくはシャットダウンするのがデフォルトの動作としているものも存在します。
このように考え出すとなかなか難しくなってきますがハートビート自体の重要性を踏まえて設計してゆく必要があります。