目次
db2cm を使用した Pacemaker の構成
db2cm の準備
Db2 クラスター・マネージャー (db2cm) ユーティリティー のダウンロード
以下のサイトから Db2_v11.5.5.0_Pacemaker_20201118_RHEL8.1_x86_64.tar.gz をダウンロードします。今回は GCP 上の Red Hat Enterprise Linux release 8 の環境にインストールします。ダウンロードには IBM id が必要になります。
root ユーザーでの鍵交換
鍵交換
db2cm のインストール時に root での ssh が必要になるので、root ユーザー同士で鍵交換を行い、それぞれパスフレーズなしで ssh できるようにしておきます、鍵の交換方法は以下のページで説明しています。
root ログイン許可設定
今回は root でのログインが必要になるので、sshd の設定を変更します。
/etc/ssh/sshd_config の PermitRootLogin というエントリを “yes” に変更します。
デフォルトでは no になっています。
# cat /etc/ssh/sshd_config | grep Root PermitRootLogin yes
sshd の再起動をします。
# service sshd restart
db2cm コマンドのインストール
解凍
今回 Db2_v11.5.5.0_Pacemaker_20201118_RHEL8.1_x86_64.tar.gz は /work というディレクトリに配置して作業をしていますので、それぞれ読み替えて実施してください。まずは解凍します。
# cd /work # tar -zxvf Db2_v11.5.5.0_Pacemaker_20201118_RHEL8.1_x86_64.tar.gz
インストール
Pacemaker および、関連パッケージをインストールします。
# cd /work/Db2_v11.5.5.0_Pacemaker_20201118_RHEL8.1_x86_64/RPMS # dnf install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm # dnf install */*.rpm
db2cm 内で使用されているので、入ってなければ念のためインストールしておきます。
# yum install bc
インストール後確認
# rpm -q corosync corosync-3.0.4-1.db2pcmk.el8.x86_64 # rpm -q pacemaker pacemaker-2.0.4-1.db2pcmk.el8.x86_64 # rpm -q crmsh crmsh-4.2.0-0.db2pcmk.el8.noarch
db2cm コマンドのコピー
db2cm コマンドをインスタンスホームの sqllib/adm 以下にコピーし、権限変更しておきます。
# cp /work/Db2_v11.5.5.0_Pacemaker_20201118_RHEL8.1_x86_64/Db2/db2cm /home/db2inst1/sqllib/adm # chmod 755 /home/db2inst1/sqllib/adm/db2cm
リソースエージェント転送
db2cm コマンドを使用して必要なリソースエージェントを各ホストへ転送します。
今回の環境では instance-1 が Db2 HADR のプライマリー、instance-2 がスタンバイホストになっています。
# /home/db2inst1/sqllib/adm/db2cm -copy_resources /work/Db2_v11.5.5.0_Pacemaker_20201118_RHEL8.1_x86_64/Db2agents -host instance-1 # /home/db2inst1/sqllib/adm/db2cm -copy_resources /work/Db2_v11.5.5.0_Pacemaker_20201118_RHEL8.1_x86_64/Db2agents -host instance-2
- Configuring a clustered environment using the Db2 cluster manager (db2cm) utility
- db2cm – Db2 cluster manager utility
Pacemaker 構成
HADR_PEER_WINDOW 変更
Pacemaker との監視間隔と合わせるために、HADR_PEER_WINDOW の値を 60 以下にします。
$ db2 "UPDATE DB CFG FOR HADRDB USING HADR_PEER_WINDOW 60"
クラスタードメイン作成
新規に Pacemaker のクラスターを作成します。
# /home/db2inst1/sqllib/adm/db2cm -create -cluster -domain hadom -host instance-1 -publicEthernet eth0 -host instance-2 -publicEthernet eth0
Db2 インスタンスリソース作成
Db2 インスタンスのリソースを定義します。
# /home/db2inst1/sqllib/adm/db2cm -create -instance db2inst1 -host instance-1 # /home/db2inst1/sqllib/adm/db2cm -create -instance db2inst1 -host instance-2
crm status コマンドで状態確認します。
現段階で 4つのリソースが正常にモニタリングできているはずです。
# crm status : : : Full List of Resources: * db2_instance-1_eth0 (ocf::heartbeat:db2ethmon): Started instance-1 * db2_instance-2_eth0 (ocf::heartbeat:db2ethmon): Started instance-2 * db2_instance-1_db2inst1_0 (ocf::heartbeat:db2inst): Started instance-1 * db2_instance-2_db2inst1_0 (ocf::heartbeat:db2inst): Started instance-2
データベースリソース作成
Pacemaker でモニタリングするデータベースリソースを追加します。リソースを追加後、HDAR構成を判断して Master/Slave 構成が作成されます。
# /home/db2inst1/sqllib/adm/db2cm -create -db HADRDB -instance db2inst1 # crm status : : : Full List of Resources: * db2_instance-1_eth0 (ocf::heartbeat:db2ethmon): Started instance-1 * db2_instance-2_eth0 (ocf::heartbeat:db2ethmon): Started instance-2 * db2_instance-1_db2inst1_0 (ocf::heartbeat:db2inst): Started instance-1 * db2_instance-2_db2inst1_0 (ocf::heartbeat:db2inst): Started instance-2 * Clone Set: db2_db2inst1_db2inst1_HADRDB-clone [db2_db2inst1_db2inst1_HADRDB] (promotable): * Masters: [ instance-1 ] * Slaves: [ instance-2 ]
VIP リソース 作成
VIP を付与します。
# /home/db2inst1/sqllib/adm/db2cm -create -primaryVIP 10.10.10.5 -db HADRDB -instance db2inst1
- 【参考】Setting up a Db2 HADR Pacemaker cluster with Overlay IP as Virtual IP on AWS
- 【参考】フローティング IP アドレスのおすすめの方法
動作確認
TAKEOVER
以下のコマンドで Pacemaker で TAKEOVER を行ってみます。
# crm resource migrate db2_db2inst1_db2inst1_HADRDB-clone instance-2
crm status コマンドで確認してみます。Masters と Slaves のホストが入れ替わり、HADR の旧スタンバイが プライマリーになっています。
# crm status : : : * Masters: [ instance-2 ] * Slaves: [ instance-1 ] * db2_db2inst1_db2inst1_HADRDB-primary-VIP (ocf::heartbeat:IPaddr2): Started instance-2
再度同様のコマンドを実行し、元に戻します。
# crm resource migrate db2_db2inst1_db2inst1_HADRDB-clone instance-1
この状態で プライマリーをシャットダウンしてみます。
[root@instance-2 ~]# crm status : : : Node List: Online: [ instance-2 ] OFFLINE: [ instance-1 ] Active Resources: db2_instance-2_eth0 (ocf::heartbeat:db2ethmon): Started instance-2 db2_instance-2_db2inst1_0 (ocf::heartbeat:db2inst): Started instance-2 Clone Set: db2_db2inst1_db2inst1_HADRDB-clone db2_db2inst1_db2inst1_HADRDB: Masters: [ instance-2 ] db2_db2inst1_db2inst1_HADRDB-primary-VIP (ocf::heartbeat:IPaddr2): Started instance-2
db2cm コマンドのアンインストール方法は以下を参照ください。
Db2 は、Pacemaker を統合クラスター・マネージャー・ソリューションとしてサポートします。ただし、これは、使用中の Pacemaker およびそのソフトウェア・スタックが、Db2 によって直接提供されており、特定の Db2 リリースに対応しており、新しい db2cm ユーティリティーを使用して構成されている場合に限られます。Db2 によって提供されていない Pacemaker ソフトウェア・スタックに関するクラスター・マネージャー関連の問題のサポートは、Pacemaker ソフトウェアのサプライヤーに依頼する必要があります。
https://www.ibm.com/support/knowledgecenter/ja/SSEPGG_11.5.0/com.ibm.db2.luw.admin.ha.doc/doc/c_prereq_pacemaker.html