フェールオーバー後の障害系でのkompirad起動失敗について
AWS環境上にkompiraサーバ2台で冗長構成を組んでいます。
kompira01・・・slave
kompira02・・・master
まずフェールオーバー動作の確認のため、kompira02サーバ側で"kompirad"を停止させて、kompira01がmasterに昇格されることを確認しました。
その後kompira02を復帰させるために、kompiradを起動しようとしたところ、下記エラーにより失敗しております。
kompira02のサーバを再起動しても状況は変わらず、解消方法についてご教示いただけませんでしょうか。
よろしくお願いいたします。
--------
# systemctl start kompirad
Job for kompirad.service failed because the control process exited with error code.
See "systemctl status kompirad.service" and "journalctl -xe" for details.
# tail -n 6 /var/log/kompira/kompirad.log
[2023-03-16 14:53:16] ERROR: PostgreSQL is recovery mode!
[2023-03-16 14:53:16] INFO: starting pre-start of kompirad [ja]
[2023-03-16 14:53:16] WARN: Waiting for PostgreSQL become a master...
[2023-03-16 14:53:17] WARN: Waiting for PostgreSQL become a master...
[2023-03-16 14:53:18] WARN: Waiting for PostgreSQL become a master...
[2023-03-16 14:53:19] WARN: Waiting for PostgreSQL become a master...
# pcs status
Cluster name: ha-kompira-20dd7a
Status of pacemakerd: 'Pacemaker is running' (last updated 2023-03-16 14:54:16 +09:00)
Cluster Summary:
* Stack: corosync
* Current DC: kompira01 (version 2.1.4-5.el8_7.2-dc6eb4362e) - partition with quorum
* Last updated: Thu Mar 16 14:54:17 2023
* Last change: Thu Mar 16 14:44:05 2023 by root via crm_attribute on kompira01
* 2 nodes configured
* 10 resource instances configured
Node List:
* Online: [ kompira01 kompira02 ]
Full List of Resources:
* Resource Group: webserver:
* res_memcached (systemd:memcached): Started kompira01
* res_kompirad (systemd:kompirad): Started kompira01
* res_kompira_jobmngrd (systemd:kompira_jobmngrd): Started kompira01
* res_httpd (ocf::heartbeat:apache): Started kompira01
* Clone Set: res_pgsql-clone [res_pgsql] (promotable):
* Masters: [ kompira01 ]
* Slaves: [ kompira02 ]
* Clone Set: res_rabbitmq-clone [res_rabbitmq]:
* Started: [ kompira01 kompira02 ]
* res_stonith1 (stonith:fence_aws): Started kompira02
* res_stonith2 (stonith:fence_aws): Started kompira01
Failed Resource Actions:
* res_kompirad_monitor_0 on kompira02 'error' (1): call=-1, status='Timed Out', exitreason='Controller on kompira02 did not return result in time', last-rc-change='Thu Mar 16 14:45:19 2023', queued=0ms, exec=0ms
Daemon Status:
corosync: active/disabled
pacemaker: active/disabled
pcsd: inactive/enabled
--------
-
正式なコメント
フィックスポイントの高橋です。
その後kompira02を復帰させるために、kompiradを起動しようとしたところ、下記エラーにより失敗しております。
まず、Kompira の冗長構成は ACT/SBY 構成であり、kompirad などいくつかのサービスは ACT 側だけで動作することになっていますので、スタンバイとして復帰させる側のサーバで kompirad を起動させることは行いません。(スタンバイ系で動作するのは rabbitmq-server と postgresql のみです)
# systemctl start kompirad
また、Kompira の冗長構成をセットアップしたあとは、Kompira の各サービスは Pacemaker 配下でその起動を含めて管理される構成になりますので、個別のサービスを systemctl コマンド等で制御することは基本的にはありません。
kompira01 側は正常にアクティブ系として動作しているように見受けられます。フェイルオーバーが発生したあとのスタンバイ系では、アクティブに昇格したサーバとデータベースを同期するために /opt/kompira/bin/sync_master.sh を実行していただく必要がございますが、こちらは実行いただいておりますでしょうか?
フェイルオーバー時の管理については、オンラインマニュアルの「1.9.5. フェイルオーバー時の動作とフェイルバック」に簡単な説明がございますので、よろしければ参考になさってみてください。
まず、こちらで回答させていただいたように、復旧させたいスタンバイ側で sync_master.sh を実行したかご確認いただき、未実施であれば実行して復旧するか確認してみていただけますでしょうか。
コメントアクション -
追加で一点質問ですが、AWSのIAMアカウントやインスタンス情報をフェイルオーバー用に入れていますが、どういった障害の場合にAWS側からインスタンスの起動・停止が実行されますでしょうか。
こちらは、AWSでの冗長構成の構築ガイドライン の「3.1.3. IAMユーザの権限準備」のことでしょうか?
だとすると、冗長構成が何らかの障害によって、いわゆるスプリットブレインになった場合に、STONITHという機構を用いて、どちらか片方の系を停止させるために使用しております。
サインインしてコメントを残してください。
コメント
3件のコメント