運用
PowerGres HA Pacemaker 版の運用中に行うクラスタに関する操作について説明します。
クラスタの操作
クラスタの制御は Pacemaker と Heartbeat によって行われます。 Heartbeat はクラスタを構成するノードの制御、Pacemaker はクラスタ内で動作するリソースの制御を行います。 Pacemaker は Heartbeat とともに動作します。 そのため、クラスタの操作は Heartbeat に対して行います。
クラスタの起動
クラスタを起動するには Heartbeat を起動します。 Heartbeat は OS の起動時に自動的に起動されます。 Heartbeat の起動は起動スクリプト /etc/init.d/heartbeat で行われます。 手動で Heartbeat を起動する場合には、pwg_clumgr コマンドの start-heartbeat モードを使用します。
手動での Heartbeat の起動は以下の手順で行います。 操作は root ユーザで行います。
-
start-heartbeat モードで pwg_clumgr コマンドを実行します。
# pwg_clumgr start-heartbeat
引数としてノード名を指定することもできます。
# pwg_clumgr start-heartbeat alice
ノード名を指定すると指定したノードで Heartbeat が起動されます。 ノード名を指定しなかった場合にはすべてのノードで Heartbeat が起動されます。
Heartbeat の起動は、クラスタの初期化時に先に追加したノードから順番に行われます。
-
SSH の秘密鍵を作成するときに入力したパスフレーズを入力します。
Enter passphrase for /root/.ssh/id_rsa-pwg_clumgr: (パスフレーズを入力)
-
Heartbeat が起動されます。
システムサービス "heartbeat" がノード "alice" 上で起動するのを待機しています.... 完了。 システムサービス "heartbeat" がノード "bob" 上で起動するのを待機しています.... 完了。
クラスタの停止
クラスタを停止するには Heartbeat を停止します。 Heartbeat は OS の停止時に自動的に停止されます。 手動で Heartbeat を停止する場合には、pwg_clumgr コマンドの stop-heartbeat モードを使用します。 サービスが起動しているノードで先に Heartbeat が停止された場合には、ほかの Heartbeat が起動しているノードにサービスが移動します。
手動での Heartbeat の停止は以下の手順で行います。 操作は root ユーザで行います。
-
stop-heartbeat モードで pwg_clumgr コマンドを実行します。
# pwg_clumgr stop-heartbeat
引数としてノード名を指定することもできます。
# pwg_clumgr start-heartbeat alice
ノード名を指定すると指定したノードで Heartbeat が停止されます。 ノード名を指定しなかった場合にはすべてのノードで Heartbeat が停止されます。
Heartbeat の停止は、クラスタの初期化時に先に追加したノードから順番に行われます。 DRBD リソースが起動している場合には、DRBD リソースがプライマリロールとして動作しているノードで最後に停止されます。
-
SSH の秘密鍵を作成するときに入力したパスフレーズを入力します。
Enter passphrase for /root/.ssh/id_rsa-pwg_clumgr: (パスフレーズを入力)
-
Heartbeat が停止されます。
システムサービス "heartbeat" がノード "bob" 上で停止するのを待機しています.......... 完了。 システムサービス "heartbeat" がノード "alice" 上で停止するのを待機しています................... 完了。
サービスを起動したまま Heartbeat を停止するには、サービスをクラスタの管理対象外に切り替えた後に Heartbeat を停止します。 サービスの管理対象外への切り替えについては サービスの管理対象外への切り替え を参照してください。
クラスタの再起動
クラスタを再起動するには Heartbeat を再起動します。
Heartbeat の再起動は以下の手順で行います。 操作は root ユーザで行います。
-
restart-heartbeat モードで pwg_clumgr コマンドを実行します。
# pwg_clumgr restart-heartbeat
引数としてノード名を指定することもできます。
# pwg_clumgr restart-heartbeat alice
ノード名を指定すると指定したノードで Heartbeat が再起動されます。 ノード名を指定しなかった場合にはすべてのノードで Heartbeat が再起動されます。
Heartbeat の再起動は、クラスタの初期化時に先に追加したノードから順番に行われ、すべてのノードで停止された後にすべてのノードで起動されます。 DRBD リソースが起動している場合には、DRBD リソースがプライマリロールとして動作しているノードで最後に停止され、最初に起動されます。
-
SSH の秘密鍵を作成するときに入力したパスフレーズを入力します。
Enter passphrase for /root/.ssh/id_rsa-pwg_clumgr: (パスフレーズを入力)
-
Heartbeat が再起動されます。
システムサービス "heartbeat" がノード "bob" 上で停止するのを待機しています........ 完了。 システムサービス "heartbeat" がノード "alice" 上で停止するのを待機しています................... 完了。 システムサービス "heartbeat" がノード "alice" 上で起動するのを待機しています.... 完了。 システムサービス "heartbeat" がノード "bob" 上で起動するのを待機しています.... 完了。
クラスタの状態の確認
クラスタの状態は crm_mon コマンドで確認します。 コマンドは root ユーザで実行します。
# crm_mon -rfA ============ Last updated: Mon Nov 11 07:26:23 2013 Stack: Heartbeat Current DC: alice (dbf44f6c-f753-48f9-9f15-a786a116c142) - partition with quorum Version: 1.0.13-30bb726 2 Nodes configured, unknown expected votes 2 Resources configured. ============ Online: [ alice bob ] Full list of resources: Master/Slave Set: powergres_drbd.drbd.ms_drbd Masters: [ alice ] Slaves: [ bob ] Resource Group: powergres.pgsql-drbd.group_pgsql powergres_drbd.drbd.filesystem (ocf::heartbeat:Filesystem): Started alice powergres_ipaddr.ipaddr (ocf::heartbeat:IPaddr2): Started alice powergres.pgsql-drbd.pgsql (ocf::heartbeat:pgsql): Started alice Node Attributes: * Node alice: + bob-eth0 : up + bob-eth1 : up + bob-eth2 : up + master-powergres_drbd.drbd.drbd:1 : 10000 * Node bob: + alice-eth0 : up + alice-eth1 : up + alice-eth2 : up + master-powergres_drbd.drbd.drbd:0 : 10000 Migration summary: * Node alice: * Node bob:
-r オプションは停止中のリソース、-f オプションはリソースの障害回数、-A オプションはノードの属性を表示するオプションです。 表示はデフォルトでは 15 秒間隔で更新されます。 更新の間隔は -i オプションで指定することもできます。 終了するには Ctrl キーを押しながら C キーを押します。 詳細については crm_mon コマンドのオンラインマニュアルを参照してください。
「Last updated:」の後に最後にクラスタの状態が更新された日時、「Stack:」の後に Pacemaker とともにクラスタの制御を行うソフトウェア名、「Current DC:」の後に現在の DC のノード名、「Version:」の後に Pacemaker のバージョンが表示されます。
- DC とは
-
DC (Desinated Co-ordinator) は、クラスタ全体を統一的に管理するノードで、クラスタ内から一台のノードが選択されます。 DC になったノードではほかのノードより多くのログメッセージが出力されます。
「Online:」の後に Pacemaker が起動しているノード名が表示されます。 起動していないノードがあれば「OFFLINE:」の後にノード名が表示されます。
Online: [ alice bob ]
「Full list of resources:」の下にリソースの状態が表示されます。 リソースの状態は、リソース名とリソースを制御するリソースエージェント名の後に表示され、Started が起動している状態、Stopped が停止している状態を表します。 また、「Started」の後にはリソースが起動しているノード名が表示されます。
「Master/Slave Set:」の後にマスタスレーブリソース名が表示されます。 マスタスレーブリソースは、複数のノードで起動するリソースで、起動中のリソースにはマスタとスレーブの状態があります。 PowerGres HA Pacemaker 版では、DRBD リソースがマスタスレーブリソースになります。
DRBD リソースでは、「Masters:」の後に DRBD リソースがプライマルロールとして起動しているノード名、「Slaves:」の後にセカンダリロールとして起動しているノード名が表示されます。 DRBD リソースが停止してい場合には「Stopped:」の後にノード名が表示されます。
Master/Slave Set: powergres_drbd.drbd.ms_drbd Masters: [ alice ] Slaves: [ bob ]
「Resource Group:」の後にグループ名が表示されます。 グループは複数のリソースを一つにまとめたものです。 PowerGres HA Pacemaker 版では、PowerGres サービスとノードごとの STONITH サービスを構成するリソースがグループになります。 「Resource Group:」の下にグループを構成するリソースの状態が表示されます。
Resource Group: powergres.pgsql-drbd.group_pgsql powergres_drbd.drbd.filesystem (ocf::heartbeat:Filesystem): Started alice powergres_ipaddr.ipaddr (ocf::heartbeat:IPaddr2): Started alice powergres.pgsql-drbd.pgsql (ocf::heartbeat:pgsql): Started alice
「Node Attributes:」の下にノードの属性がノードごとに表示されます。 コミュニケーションパスの状態は、接続先のノード名とネットワークインタフェース名を - でつないだ属性名の後に表示され、up が通信できている状態、dead が通信できていない状態を表します。
* Node alice: + bob-eth0 : up + bob-eth1 : up + bob-eth2 : up + master-powergres_drbd.drbd.drbd:1 : 10000
「Migration summary:」の下にリソースの障害回数がノードごとに表示されます。 障害が検知されていない場合には表示されません。 リソース名の後には「migration-threshold=」の後にリソースをほかのノードに切り替えて起動するかの閾値になる障害回数、「fail-count=」の後に障害の検知された回数、「last-failure=」の後に最後に障害の検知された日時が表示されます。
* Node alice: powergres.pgsql-drbd.pgsql: migration-threshold=2 fail-count=1 last-failure='Sat Nov 16 23:23:33 2013'
リソースの障害が検知されると障害回数が増えていきます。 障害回数が閾値に達していない場合には同じノードで、閾値に達した場合にはほかのノードに切り替えてリソースの起動が試みられます。 リソースの障害回数は障害を解消した後に手動で消去します。 障害回数の消去については サービスの障害履歴の削除 を参照してください。
サービスの操作
クラスタの管理対象になっているサービスはクラスタに連動して動作します。 そのため、サービスの操作は直接行わずにクラスタを介して行います。
サービスの起動
サービスの起動は以下の手順で行います。 操作は root ユーザで行います。
-
start-service モードで pwg_clumgr コマンドを実行します。
# pwg_clumgr start-service powergres
引数にはサービスの作成時に指定したサービス名を指定します。 サービス名の後に引数としてノード名を指定することもできます。
# pwg_clumgr start-service powergres alice
ノード名を指定すると指定したノードでサービスが起動されます。 指定したノードと異なるノードでサービスが起動している場合には、サービスが起動するノードが指定したノードに切り替わります。 ノードの切り替えについては サービスの移動 を参照してください。 ノード名を指定しなかった場合にはサービスが起動されるノードは一定ではありません。
-
サービスを構成するリソースが起動されます。
リソース "powergres_drbd.drbd.ms_drbd" が起動するのを待機しています... 完了。 リソース "powergres.pgsql-drbd.group_pgsql" が起動するのを待機しています....... 完了。
-
crm_mon コマンドでサービスが起動されたことを確認します。
# crm_mon -rfA ============ Last updated: Sun Nov 10 19:16:17 2013 Stack: Heartbeat Current DC: alice (dbf44f6c-f753-48f9-9f15-a786a116c142) - partition with quorum Version: 1.0.13-30bb726 2 Nodes configured, unknown expected votes 2 Resources configured. ============ Online: [ alice bob ] Full list of resources: Master/Slave Set: powergres_drbd.drbd.ms_drbd Masters: [ alice ] Slaves: [ bob ] Resource Group: powergres.pgsql-drbd.group_pgsql powergres_drbd.drbd.filesystem (ocf::heartbeat:Filesystem): Started alice powergres_ipaddr.ipaddr (ocf::heartbeat:IPaddr2): Started alice powergres.pgsql-drbd.pgsql (ocf::heartbeat:pgsql): Started alice Node Attributes: * Node alice: + bob-eth0 : up + bob-eth1 : up + bob-eth2 : up + master-powergres_drbd.drbd.drbd:1 : 10000 * Node bob: + alice-eth0 : up + alice-eth1 : up + alice-eth2 : up + master-powergres_drbd.drbd.drbd:0 : 10000 Migration summary: * Node alice: * Node bob:
サービスを構成するすべてのリソースが起動していれば、サービスの起動は正常に完了しています。 Ctrl キーを押しながら C キーを押し、crm_mon コマンドを終了します。
サービスの停止
サービスの停止は以下の手順で行います。 操作は root ユーザで行います。
-
stop-service モードで pwg_clumgr コマンドを実行します。
# pwg_clumgr stop-service powergres
引数にはサービスの作成時に指定したサービス名を指定します。
-
サービスを構成するリソースが停止されます。
リソース "powergres.pgsql-drbd.group_pgsql" が停止するのを待機しています... 完了。 リソース "powergres.pgsql-drbd.pgsql" は起動していません。 リソース "powergres_drbd.drbd.filesystem" は起動していません。 リソース "powergres_drbd.drbd.ms_drbd" が停止するのを待機しています...... 完了。 リソース "powergres_drbd.drbd.drbd" は起動していません。 リソース "powergres_ipaddr.ipaddr" は起動していません。
-
crm_mon コマンドでサービスが停止されたことを確認します。
# crm_mon -rfA Last updated: Sun Nov 10 12:01:22 2013 Stack: Heartbeat Current DC: alice (dbf44f6c-f753-48f9-9f15-a786a116c142) - partition with quorum Version: 1.0.13-30bb726 2 Nodes configured, unknown expected votes 2 Resources configured. ============ Online: [ alice bob ] Full list of resources: Master/Slave Set: powergres_drbd.drbd.ms_drbd Stopped: [ powergres_drbd.drbd.drbd:0 powergres_drbd.drbd.drbd:1 ] Resource Group: powergres.pgsql-drbd.group_pgsql powergres_drbd.drbd.filesystem (ocf::heartbeat:Filesystem): Stopped powergres_ipaddr.ipaddr (ocf::heartbeat:IPaddr2): Stopped powergres.pgsql-drbd.pgsql (ocf::heartbeat:pgsql): Stopped Node Attributes: * Node alice: + bob-eth0 : up + bob-eth1 : up + bob-eth2 : up * Node bob: + alice-eth0 : up + alice-eth1 : up + alice-eth2 : up Migration summary: * Node alice: * Node bob:
サービスを構成するすべてのリソースが停止していれば、サービスの停止は正常に完了しています。 Ctrl キーを押しながら C キーを押し、crm_mon コマンドを終了します。
サービスの再起動
サービスの再起動は以下の手順で行います。 操作は root ユーザで行います。
-
restart-service モードで pwg_clumgr コマンドを実行します。
# pwg_clumgr restart-service powergres
引数にはサービスの作成時に指定したサービス名を指定します。 サービス名の後に引数としてノード名を指定することもできます。
# pwg_clumgr restart-service powergres alice
ノード名を指定するとサービスが停止された後に指定したノードでサービスが起動されます。 ノード名を指定しなかった場合にはサービスが起動されるノードは一定ではありません。
-
サービスを構成するリソースが再起動されます。
リソース "powergres.pgsql-drbd.group_pgsql" が停止するのを待機しています...... 完了。 リソース "powergres.pgsql-drbd.pgsql" は起動していません。 リソース "powergres_drbd.drbd.filesystem" は起動していません。 リソース "powergres_drbd.drbd.ms_drbd" が停止するのを待機しています....... 完了。 リソース "powergres_drbd.drbd.drbd" は起動していません。 リソース "powergres_ipaddr.ipaddr" は起動していません。 リソース "powergres_drbd.drbd.ms_drbd" が起動するのを待機しています... 完了。 リソース "powergres.pgsql-drbd.group_pgsql" が起動するのを待機しています.... 完了。
-
crm_mon コマンドでサービスが再起動されたことを確認します。
# crm_mon -rfA ============ Last updated: Sun Nov 10 17:55:53 2013 Stack: Heartbeat Current DC: bob (4b827ae1-e8f4-4ed4-aba8-6b0c948d297a) - partition with quorum Version: 1.0.13-30bb726 2 Nodes configured, unknown expected votes 2 Resources configured. ============ Online: [ alice bob ] Full list of resources: Master/Slave Set: powergres_drbd.drbd.ms_drbd Masters: [ bob ] Slaves: [ alice ] Resource Group: powergres.pgsql-drbd.group_pgsql powergres_drbd.drbd.filesystem (ocf::heartbeat:Filesystem): Started bob powergres_ipaddr.ipaddr (ocf::heartbeat:IPaddr2): Started bob powergres.pgsql-drbd.pgsql (ocf::heartbeat:pgsql): Started bob Node Attributes: * Node alice: + bob-eth0 : up + bob-eth1 : up + bob-eth2 : up + master-powergres_drbd.drbd.drbd:1 : 10000 * Node bob: + alice-eth0 : up + alice-eth1 : up + alice-eth2 : up + master-powergres_drbd.drbd.drbd:0 : 10000 Migration summary: * Node alice: * Node bob:
サービスを構成するすべてのリソースが起動していれば、サービスの再起動は正常に完了しています。 Ctrl キーを押しながら C キーを押し、crm_mon コマンドを終了します。
サービスの移動
サービスの移動はサービスが起動するノードを指定したノードに切り替えます。 手動でのサービスの移動はスイッチオーバとも呼ばれます。 サービスの移動はサービスの起動と同じく pwg_clumgr コマンドの start-service モードで行います。
サービスの移動は以下の手順で行います。 操作は root ユーザで行います。
-
start-service モードで pwg_clumgr コマンドを実行します。
# pwg_clumgr start-service powergres bob
1 つ目の引数にはサービスの作成時に指定したサービス名、2 つ目の引数には移動先のノード名を指定します。
-
サービスを構成するリソースが指定したノードに移動されます。
リソース "powergres.pgsql-drbd.group_pgsql" がノード "bob" に移動するのを待機しています...... 完了。
-
crm_mon コマンドでサービスが移動されたことを確認します。
# crm_mon -rfA Last updated: Sun Nov 10 18:18:53 2013 Stack: Heartbeat Current DC: alice (dbf44f6c-f753-48f9-9f15-a786a116c142) - partition with quorum Version: 1.0.13-30bb726 2 Nodes configured, unknown expected votes 2 Resources configured. ============ Online: [ alice bob ] Full list of resources: Master/Slave Set: powergres_drbd.drbd.ms_drbd Masters: [ bob ] Slaves: [ alice ] Resource Group: powergres.pgsql-drbd.group_pgsql powergres_drbd.drbd.filesystem (ocf::heartbeat:Filesystem): Started bob powergres_ipaddr.ipaddr (ocf::heartbeat:IPaddr2): Started bob powergres.pgsql-drbd.pgsql (ocf::heartbeat:pgsql): Started bob Node Attributes: * Node alice: + bob-eth0 : up + bob-eth1 : up + bob-eth2 : up + master-powergres_drbd.drbd.drbd:1 : 10000 * Node bob: + alice-eth0 : up + alice-eth1 : up + alice-eth2 : up + master-powergres_drbd.drbd.drbd:0 : 10000 Migration summary: * Node alice: * Node bob:
サービスを構成するすべてのリソースが指定したノードで起動していれば、サービスの移動は正常に完了しています。 Ctrl キーを押しながら C キーを押し、crm_mon コマンドを終了します。
サービスの障害履歴の削除
サービスを構成するリソースの障害が検知されると障害回数が増えていきます。 障害回数が閾値に達していない場合には同じノードで、閾値に達した場合にはほかのノードに切り替えてリソースの起動が試みられます。 リソースの障害回数は障害を解消した後に手動で消去します。
サービスの障害履歴の削除は以下の手順で行います。 操作は root ユーザで行います。
-
cleanup-service モードで pwg_clumgr コマンドを実行します。
# pwg_clumgr cleanup-service powergres
引数にはサービスの作成時に指定したサービス名を指定します。
-
サービスを構成するリソースの障害履歴が削除されます。
Cleaning up powergres.pgsql-drbd.pgsql on bob Cleaning up powergres.pgsql-drbd.pgsql on alice Waiting for 3 replies from the CRMd... Cleaning up powergres_drbd.drbd.filesystem on bob Cleaning up powergres_drbd.drbd.filesystem on alice Waiting for 3 replies from the CRMd... Cleaning up powergres_drbd.drbd.drbd:0 on bob Cleaning up powergres_drbd.drbd.drbd:0 on alice Cleaning up powergres_drbd.drbd.drbd:1 on bob Cleaning up powergres_drbd.drbd.drbd:1 on alice Waiting for 5 replies from the CRMd..... Cleaning up powergres_ipaddr.ipaddr on bob Cleaning up powergres_ipaddr.ipaddr on alice Waiting for 3 replies from the CRMd...
-
crm_mon コマンドでサービスの障害履歴が削除されたことを確認します。
# crm_mon -rfA ============ Last updated: Sun Nov 17 10:24:09 2013 Stack: Heartbeat Current DC: alice (dbf44f6c-f753-48f9-9f15-a786a116c142) - partition with quorum Version: 1.0.13-30bb726 2 Nodes configured, unknown expected votes 2 Resources configured. ============ Online: [ alice bob ] Full list of resources: Master/Slave Set: powergres_drbd.drbd.ms_drbd Masters: [ alice ] Slaves: [ bob ] Resource Group: powergres.pgsql-drbd.group_pgsql powergres_drbd.drbd.filesystem (ocf::heartbeat:Filesystem): Started alice powergres_ipaddr.ipaddr (ocf::heartbeat:IPaddr2): Started alice powergres.pgsql-drbd.pgsql (ocf::heartbeat:pgsql): Started alice Node Attributes: * Node alice: + bob-eth0 : up + bob-eth1 : up + bob-eth2 : up + master-powergres_drbd.drbd.drbd:0 : 10000 * Node bob: + alice-eth0 : up + alice-eth1 : up + alice-eth2 : up + master-powergres_drbd.drbd.drbd:1 : 10000 Migration summary: * Node alice: * Node bob:
「Migration summary:」の下に表示されていた障害回数が消去されます。 サービスを構成するすべてのリソースの障害回数が消去されていれば、サービスの障害履歴の削除は正常に完了しています。 Ctrl キーを押しながら C キーを押し、crm_mon コマンドを終了します。
サービスの管理対象外への切り替え
サービスは、クラスタの管理対象になっており、クラスタに連動して動作します。 そのため、サービスを起動したまま Heartbeat を停止したり、クラスタを介さずにサービスの操作を行ったりする場合には、サービスをクラスタの管理対象外に切り替えます。
サービスの管理対象外への切り替えは以下の手順で行います。 操作は root ユーザで行います。
-
unmanage-service モードで pwg_clumgr コマンドを実行します。
# pwg_clumgr unmanage-service powergres
引数にはサービスの作成時に指定したサービス名を指定します。
-
サービスが管理対象外に切り替わります。
-
crm_mon コマンドでサービスが管理対象外に切り替わったことを確認します。
# crm_mon -rfA ============ Last updated: Sun Nov 10 20:34:11 2013 Stack: Heartbeat Current DC: alice (dbf44f6c-f753-48f9-9f15-a786a116c142) - partition with quorum Version: 1.0.13-30bb726 2 Nodes configured, unknown expected votes 2 Resources configured. ============ Online: [ alice bob ] Full list of resources: Master/Slave Set: powergres_drbd.drbd.ms_drbd (unmanaged) powergres_drbd.drbd.drbd:0 (ocf::linbit:drbd): Slave bob (unmanaged) powergres_drbd.drbd.drbd:1 (ocf::linbit:drbd): Master alice (unmanaged) Resource Group: powergres.pgsql-drbd.group_pgsql powergres_drbd.drbd.filesystem (ocf::heartbeat:Filesystem): Started alice (unmanaged) powergres_ipaddr.ipaddr (ocf::heartbeat:IPaddr2): Started alice (unmanaged) powergres.pgsql-drbd.pgsql (ocf::heartbeat:pgsql): Started alice (unmanaged) Node Attributes: * Node alice: + bob-eth0 : up + bob-eth1 : up + bob-eth2 : up + master-powergres_drbd.drbd.drbd:1 : 10000 * Node bob: + alice-eth0 : up + alice-eth1 : up + alice-eth2 : up + master-powergres_drbd.drbd.drbd:0 : 10000 Migration summary: * Node alice: * Node bob:
管理対象外のリソースは unmanaged と表示されます。 サービスを構成するすべてのリソースが管理対象外に切り替わっていれば、サービスの管理対象外への切り替えは正常に完了しています。 Ctrl キーを押しながら C キーを押し、crm_mon コマンドを終了します。
管理対象外に切り替わったサービスを元の状態に戻すには、サービスをクラスタの管理対象に切り替えます。 サービスの管理対象への切り替えについては サービスの管理対象への切り替え を参照してください。
サービスの管理対象への切り替え
サービスの管理対象への切り替えは以下の手順で行います。 操作は root ユーザで行います。
-
manage-service モードで pwg_clumgr コマンドを実行します。
# pwg_clumgr manage-service powergres
引数にはサービスの作成時に指定したサービス名を指定します。
-
サービスが管理対象に切り替わります。
-
crm_mon コマンドでサービスが管理対象に切り替わったことを確認します。
# crm_mon -rfA ============ Last updated: Sun Nov 10 20:46:59 2013 Stack: Heartbeat Current DC: alice (dbf44f6c-f753-48f9-9f15-a786a116c142) - partition with quorum Version: 1.0.13-30bb726 2 Nodes configured, unknown expected votes 2 Resources configured. ============ Online: [ alice bob ] Full list of resources: Master/Slave Set: powergres_drbd.drbd.ms_drbd Masters: [ alice ] Slaves: [ bob ] Resource Group: powergres.pgsql-drbd.group_pgsql powergres_drbd.drbd.filesystem (ocf::heartbeat:Filesystem): Started alice powergres_ipaddr.ipaddr (ocf::heartbeat:IPaddr2): Started alice powergres.pgsql-drbd.pgsql (ocf::heartbeat:pgsql): Started alice Node Attributes: * Node alice: + bob-eth0 : up + bob-eth1 : up + bob-eth2 : up + master-powergres_drbd.drbd.drbd:1 : 10000 * Node bob: + alice-eth0 : up + alice-eth1 : up + alice-eth2 : up + master-powergres_drbd.drbd.drbd:0 : 10000 Migration summary: * Node alice: * Node bob:
管理対象外のリソースを表す unmanaged が表示されなくなります。 サービスを構成するすべてのリソースが管理対象に切り替わっていれば、サービスの管理対象への切り替えは正常に完了しています。 Ctrl キーを押しながら C キーを押し、crm_mon コマンドを終了します。
PowerGres の操作
クラスタの管理対象になっている PowerGres は PowerGres サービスの一部として動作します。 そのため、PowerGres の起動、停止、再起動は直接行わずにサービスとして操作を行います。 サービスの操作については サービスの操作 を参照してください。
PowerGres への接続
PowerGres への接続は psql コマンドで行います。
$ psql -h 192.168.137.100 -p 5432 -U postgres -d postgres -l Password for user postgres: (パスワードを入力) List of databases Name | Owner | Encoding | Collate | Ctype | Access privileges -----------+----------+----------+---------+-------+----------------------- postgres | postgres | UTF8 | C | C | template0 | postgres | UTF8 | C | C | =c/postgres + | | | | | postgres=CTc/postgres template1 | postgres | UTF8 | C | C | =c/postgres + | | | | | postgres=CTc/postgres (3 rows)
-h オプションには PowerGres サービスの仮想 IP アドレス、-p オプションにはポート番号 (デフォルトでは 5432)、-U オプションにはスーパーユーザ名 (デフォルトでは postgres ユーザ)、-d オプションにはデータベース名を指定します。 -l オプションはデータベースの一覧を表示するオプションです。 詳細については PostgreSQL のドキュメント を参照してください。
データベースの一覧が表示されれば、PowerGres は正常に接続できる状態になっています。
PowerGres の設定ファイルの再読み込み
PowerGres の設定ファイル postgresql.confやクライアント認証の設定ファイル pg_hba.conf を編集した場合には、変更を反映するために設定ファイルの再読み込みを行います。 設定ファイルはデータディレクトリ内にあります。
設定ファイル postgresql.conf 内の一部のパラメータは変更を反映するために PowerGres の再起動が必要です。 PowerGres の再起動が必要なパラメータはコメントに「(change requires restart)」と記述されています。 サービスの再起動については サービスの再起動 を参照してください。
shared_buffers = 32MB # min 128kB # (change requires restart)
PowerGres の設定ファイルの再読み込みは pg_ctl コマンドの reload モードで行います。 コマンドは PowerGres サービスが起動しているノードで PowerGres のスーパーユーザ (デフォルトでは postgres ユーザ) によって実行します。
$ pg_ctl reload -D /mnt/disk/data server signaled
-D オプションには PowerGres サービスのデータディレクトリのパスを指定します。 詳細については PostgreSQL のドキュメント を参照してください。
「server signaled」または「サーバにシグナルを送信しました」と表示されれば、設定ファイルの再読み込みは正常に完了しています。
または、PowerGres に接続して pg_reload_conf 関数を実行します。
$ psql -h 192.168.137.100 -p 5432 -U postgres -d postgres Password for user postgres: (パスワードを入力) psql (9.1.9) Type "help" for help. postgres=# SELECT pg_reload_conf(); pg_reload_conf ---------------- t (1 row) postgres=# \q
pg_reload_conf 関数は設定ファイルの再読み込みを行う関数です。 関数は PowerGres のスーパーユーザ (デフォルトでは postgres ユーザ) で実行します。 PowerGres への接続については PowerGres への接続 を参照してください。
関数の戻り値が t (真) であれば、設定ファイルの再読み込みは正常に完了しています。 \q コマンドで psql コマンドを終了します。
DRBD の操作
クラスタの管理対象になっている DRBD は PowerGres サービスの一部として動作します。 そのため、DRBD の起動、停止、再起動は直接行わずにサービスとして操作を行います。 サービスの操作については サービスの操作 を参照してください。
DRBD リソースの状態の確認
DRBD リソースの状態は drbd-overview コマンドで確認します。 コマンドは root ユーザで実行します。
# drbd-overview 0:powergres_drbd/0 Connected Primary/Secondary UpToDate/UpToDate C r----- /mnt/disk ext4 1004M 164M 789M 18%
最初の番号は DRBD デバイスのマイナー番号を表します。 マイナー番号の後には DRBD リソース名、接続の状態、ロール、ディスクの状態が空白で区切って表示されます。 詳細については DRBD のドキュメント を参照してください。
DRBD リソース名は / の後にボリューム番号が表示されます。 PowerGres HA Pacemaker 版では DRBD リソース名はサービス名の最後に _drbd をつけたものです。
接続の状態は、Connected はレプリケーションパスが接続されている状態、WFConnection は接続されるまで待機している状態、StandAlone は接続されていない状態を表します。
ロールは、ローカルとリモートのロールが / で区切って表示され、Primary がプライマリロール、Secondary がセカンダリロール、Unknown が不明を表します。
ディスクの状態は、ローカルとリモートのディスクの状態が / で区切って表示され、UpToDate はデータが一致している状態、Inconsistent はデータが一致していない、またはデータを同期している状態、Consistent はデータが一致しているが、接続されていない状態、Outdated はデータが一致しているが、無効になっている状態を表します。
接続の状態が Connected、ディスクの状態が UpToDate になっていれば、DRBD によるレプリケーションは正常に行われています。