概要

 

コミュニケーションパスとは?

LifeKeeper では、複数台のノードをお互いに接続することで、クラスターを構成していきます。
もしあるノードで障害が発生しても、クラスター内の別のノード上のリソースに切り替えることで可用性を維持することができます。

そのため、各ノード間で通信を行うための経路を事前に設定する必要があります。
この通信経路のことを LifeKeeper では「コミュニケーションパス」と呼びます。

コミュニケーションパスを設定すると、各ノードはお互いに「ハートビート」と呼ばれる、LifeKeeper が正常に動作しているかを示す信号を送信します。
このハートビートが受信できなくなると、ノードに障害があったと判断されます。
もしネットワークに障害が発生した場合、お互い正常であるがハートビートを受け取れなくなるため、LifeKeeper ではすべての2つのノード間を、2本以上のコミュニケーションパスで接続することを推奨しています。

またコミュニケーションパスは、ハートビートのほかに「 LifeKeeper の内部通信」にも利用されます。そのため、コミュニケーションパスが接続されているノード間であれば、リモート先のノード上の LifeKeeper をネットワーク越しに操作することが可能です。

本ガイドでは、2つのノード間で1本のコミュニケーションパスを作成する手順と、そのコミュニケーションパスを削除する手順を説明します。

 

構成

本ガイドでは、LifeKeeper v9.5.0 の使用を想定しています。また、本ガイドに記載されているコマンドなどは以下の図を想定しています。

まずはじめに、コマンドを実行する環境で以下の項目をご確認ください。

  • コミュニケーションパスで使用するポート( 7365/tcp ポート)が使用できる
    • Firewall で通信が許可されている、または Firewall が無効になっている
  • LifeKeeper を起動しているマシンが2台存在する

次に、CLI コマンドの実行に必要な各マシンの情報を、必要であれば記録してください。

  1. 各マシンで利用できる IP アドレス
# ip address | grep 'inet'
    inet 127.0.0.1/8 scope host lo
    inet6 ::1/128 scope host
    inet 10.1.6.88/16 brd 10.1.255.255 scope global noprefixroute ens192
    inet6 fe80::a633:2758:4976:b42/64 scope link noprefixroute
    inet 192.168.129.2/24 brd 192.168.129.255 scope global noprefixroute ens224
    inet6 fe80::34a4:417f:b58b:dc15/64 scope link noprefixroute
    inet 192.168.122.1/24 brd 192.168.122.255 scope global virbr0
  1. 各マシンのホスト名
# hostname
target1

 ※ OS によってコマンドが異なる場合があります

 

LifeKeeper のコミュニケーションパスの作成

コミュニケーションパスを作成するコマンドは、1度につき「コマンド実行元から指定先への片方向のみ」作成します。そのため、コミュニケーションパスを双方向に通信できるようにするには、2台のマシンそれぞれでコマンドを実行する必要があります。

 

target1 で実行

  1. コミュニケーションパスが接続されていないことを確認します。
[target1]# lkcli status -q
LOCAL    TAG   ID    STATE     PRIO  PRIMARY
  1. target1 から target2 へのコミュニケーションパスを作成します。
[target1]# lkcli commpath create --laddr 10.1.6.88 --raddr 10.1.6.89 --dest target2
Performing commpath 'target2:10.1.6.88/10.1.6.89' create...
Commpath 'target2:10.1.6.88/10.1.6.89' created successful.

コマンド引数

項目 入力値
--laddr 接続元となるローカルノード上の IP アドレス
--raddr 接続先となるリモートノード上の IP アドレス
--dest 接続先となるリモートノードのホスト名
  1. target2 へのコミュニケーションパスが作成されていることを確認します。
    ※ この段階では片方向の接続のみであるため、STATE は DEAD となります
[target1]# lkcli status -q
LOCAL    TAG   ID    STATE     PRIO  PRIMARY
 
MACHINE  NETWORK ADDRESSES/DEVICE     STATE     PRIO
target2  TCP     10.1.6.88/10.1.6.89  DEAD         1

 

target2 で実行

  1. コミュニケーションパスが接続されていないことを確認します。
[target2]# lkcli status -q
LOCAL    TAG   ID    STATE     PRIO  PRIMARY
  1. target2 から target1 へのコミュニケーションパスを作成します。
[target2]# lkcli commpath create --laddr 10.1.6.89 --raddr 10.1.6.88 --dest target1
Performing commpath 'target1:10.1.6.89/10.1.6.88' create...
Commpath 'target1:10.1.6.89/10.1.6.88' created successful.

コマンド引数

項目 入力値
--laddr 接続元となるローカルノード上の IP アドレス
--raddr 接続先となるリモートノード上の IP アドレス
--dest 接続先となるリモートノードのホスト名
  1. コミュニケーションパスが確立していることを確認します。
    STATEALIVE になることを確認します。
    ※ コミュニケーションパス作成後、ALIVE になるまで数秒かかります
[target2]# lkcli status -q
LOCAL    TAG   ID    STATE     PRIO  PRIMARY
 
MACHINE  NETWORK ADDRESSES/DEVICE     STATE     PRIO
target1  TCP     10.1.6.89/10.1.6.88  ALIVE        1

 

LifeKeeperのコミュニケーションパスの削除

コミュニケーションパスを削除するコマンドは、1度につき「コマンド実行元から指定先への片方向のみ」削除します。そのため、コミュニケーションパスを完全に削除するには、2台のマシンそれぞれでコマンドを実行する必要があります。

 

target2 で実行

  1. 双方向に接続されたコミュニケーションパスが存在することを確認します。
[target2]# lkcli status -q
LOCAL    TAG   ID    STATE     PRIO  PRIMARY
 
MACHINE  NETWORK ADDRESSES/DEVICE     STATE     PRIO
target1  TCP     10.1.6.89/10.1.6.88  ALIVE        1
  1. target2 から target1 へのコミュニケーションパスを削除します。
[target2]# lkcli commpath delete --laddr 10.1.6.89 --raddr 10.1.6.88 --dest target1

コマンド引数

項目 入力値
--laddr 接続元となるローカルノード上の IP アドレス
--raddr 接続先となるリモートノード上の IP アドレス
--dest 接続先となるリモートノードのホスト名
  1. target1 へのコミュニケーションパスが削除されたことを確認します。
[target2]# lkcli status -q
LOCAL    TAG   ID    STATE     PRIO  PRIMARY

 

target1 で実行

  1. target2へのコミュニケーションパスが残っていることを確認します。
[target1]# lkcli status -q
LOCAL    TAG   ID    STATE     PRIO  PRIMARY
 
MACHINE  NETWORK ADDRESSES/DEVICE     STATE     PRIO
target2  TCP     10.1.6.88/10.1.6.89  DEAD         1
  1. target2 へのコミュニケーションパスを削除します。
[target1]# lkcli commpath delete --laddr 10.1.6.88 --raddr 10.1.6.89 --dest target2
  1. target2 へのコミュニケーションパスが削除されたことを確認します。
[target1]# lkcli status -q
LOCAL    TAG   ID    STATE     PRIO  PRIMARY

以上で、コミュニケーションパスの作成・削除の手順は完了となります。

フィードバック

フィードバックありがとうございました

このトピックへフィードバック

送信