概要
コミュニケーションパスとは?
LifeKeeper では、複数台のノードをお互いに接続することで、クラスターを構成していきます。
もしあるノードで障害が発生しても、クラスター内の別のノード上のリソースに切り替えることで可用性を維持することができます。
そのため、各ノード間で通信を行うための経路を事前に設定する必要があります。
この通信経路のことを LifeKeeper では「コミュニケーションパス」と呼びます。
コミュニケーションパスを設定すると、各ノードはお互いに「ハートビート」と呼ばれる、LifeKeeper が正常に動作しているかを示す信号を送信します。
このハートビートが受信できなくなると、ノードに障害があったと判断されます。
もしネットワークに障害が発生した場合、お互い正常であるがハートビートを受け取れなくなるため、LifeKeeper ではすべての2つのノード間を、2本以上のコミュニケーションパスで接続することを推奨しています。
またコミュニケーションパスは、ハートビートのほかに「 LifeKeeper の内部通信」にも利用されます。そのため、コミュニケーションパスが接続されているノード間であれば、リモート先のノード上の LifeKeeper をネットワーク越しに操作することが可能です。
本ガイドでは、2つのノード間で1本のコミュニケーションパスを作成する手順と、そのコミュニケーションパスを削除する手順を説明します。
構成
本ガイドでは、LifeKeeper v9.5.0 の使用を想定しています。また、本ガイドに記載されているコマンドなどは以下の図を想定しています。
まずはじめに、コマンドを実行する環境で以下の項目をご確認ください。
- コミュニケーションパスで使用するポート( 7365/tcp ポート)が使用できる
- Firewall で通信が許可されている、または Firewall が無効になっている
- LifeKeeper を起動しているマシンが2台存在する
次に、CLI コマンドの実行に必要な各マシンの情報を、必要であれば記録してください。
- 各マシンで利用できる 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
- 各マシンのホスト名
# hostname target1
※ OS によってコマンドが異なる場合があります
LifeKeeper のコミュニケーションパスの作成
コミュニケーションパスを作成するコマンドは、1度につき「コマンド実行元から指定先への片方向のみ」作成します。そのため、コミュニケーションパスを双方向に通信できるようにするには、2台のマシンそれぞれでコマンドを実行する必要があります。
target1 で実行
- コミュニケーションパスが接続されていないことを確認します。
[target1]# lkcli status -q LOCAL TAG ID STATE PRIO PRIMARY
- 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 | 接続先となるリモートノードのホスト名 |
- 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 で実行
- コミュニケーションパスが接続されていないことを確認します。
[target2]# lkcli status -q LOCAL TAG ID STATE PRIO PRIMARY
- 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 | 接続先となるリモートノードのホスト名 |
- コミュニケーションパスが確立していることを確認します。
STATE が ALIVE になることを確認します。
※ コミュニケーションパス作成後、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 で実行
- 双方向に接続されたコミュニケーションパスが存在することを確認します。
[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
- target2 から target1 へのコミュニケーションパスを削除します。
[target2]# lkcli commpath delete --laddr 10.1.6.89 --raddr 10.1.6.88 --dest target1
コマンド引数
項目 | 入力値 |
---|---|
--laddr | 接続元となるローカルノード上の IP アドレス |
--raddr | 接続先となるリモートノード上の IP アドレス |
--dest | 接続先となるリモートノードのホスト名 |
- target1 へのコミュニケーションパスが削除されたことを確認します。
[target2]# lkcli status -q LOCAL TAG ID STATE PRIO PRIMARY
target1 で実行
- 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
- target2 へのコミュニケーションパスを削除します。
[target1]# lkcli commpath delete --laddr 10.1.6.88 --raddr 10.1.6.89 --dest target2
- target2 へのコミュニケーションパスが削除されたことを確認します。
[target1]# lkcli status -q LOCAL TAG ID STATE PRIO PRIMARY
以上で、コミュニケーションパスの作成・削除の手順は完了となります。
このトピックへフィードバック