kompira冗長構成時の障害について

コメント

32件のコメント

  • 正式なコメント
    服部健太

    送付していただいたクラスタ状態のログを確認したところ、2号機がSlaveとして正しく冗長系に参加できていないようでした。2号機側(slave)で、

    # /opt/kompira/bin/sync_master.sh

    を実行して、2号機をslaveとして復帰させてみていただけますでしょうか。

    コメントアクション Permalink
  • uno

    両ホストの再起動を実施したところ、
    片系(1号機)で正常にkompiraが稼働するところまで復旧できました。

    ただ、1号機から2号機へクラスタを切り替えた際(2号機をMasterとした際)に
    kompiraが起動しなくなる状態となっています。

    復旧方法をご教示いただけると助かります。

    1号機Master時の、クラスタ状態を取得しましたのでメールにて送付いたします。

    0
    コメントアクション Permalink
  • uno

    提示されたコマンドを2号機で実行したところ、Slaveとしては復旧できたように見えます。

    しかし2号機をMasterに切り替えた際、kompiraが起動しない事象が発生しました。
    その際のクラスタ状態をメールにて送付いたします。

    また、再度1号機をMasterに切り替えた際にはkompiraが正常に起動しました。
    その際のクラスタ状態も送付いたします。

    0
    コメントアクション Permalink
  • 服部健太

    2号機のhttpd(Apache)の起動に失敗しているようです。

    /var/log/httpd/ 配下のログで何かエラーが出ているかご確認いただけますでしょうか?

    0
    コメントアクション Permalink
  • uno

    2号機のhttpdエラーログを取得し、先ほどメールにて送付いたしました。

    対象ファイル:
    /var/log/httpd/error_log

    ご確認よろしくお願いいたします。

     

    0
    コメントアクション Permalink
  • 服部健太

    エラーログには特に気になるメッセージは出ていないようでした。

    そもそも、2号機のKompiraが正しくセットアップされているか確認するために、Pacemaker無しで、単独で起動するかご確認いただけますでしょうか?

    (1) フェールオーバーして2号機に切り替える(2号機が立ち上がらない状態)

    (2) 2号機の Pacemaker を停止する

    (3) 以下のコマンドを実行して、Kompiraに必要なサービスを起動する

    # systemctl start postgresql-12

    # systemctl start rabbitmq-server

    # systemctl start kompirad

    # systemctl start kompira_jobmngrd

    # systemctl start httpd

    (4) 2号機のKompiraサーバにブラウザからログインできるか確認する

    もし、上記手順で、2号機のKompiraにログインできないようでしたら、2号機が正しくセットアップされていない可能性があります。

     

    0
    コメントアクション Permalink
  • uno

    夜分までご対応いただきありがとうございます。

    こちらの運用上、夜分にkompiraを停止させることができないため、
    明日、上記の対応をさせていただきます。

    進捗ありましたら再度こちらに返信させていただきます。

     

    0
    コメントアクション Permalink
  • uno

    上記手順を実施したところ、"kompirad"のみ起動できませんでした。
    ブラウザからはログイン画面のみ出力され、ログイン後"Bad Request (400)"が出力されました。

    また、kompirad のステータスを取得しましたので下記に記載します。

    -------
    [root@kompira-server2 ~]# systemctl status kompirad
    ● kompirad.service - Kompira-daemon
    Loaded: loaded (/etc/systemd/system/kompirad.service; disabled; vendor preset: disabled)
    Active: activating (start-pre) since 金 2021-12-10 10:47:19 JST; 18s ago
    Control: 16848 (prestart_kompir)
    CGroup: /system.slice/kompirad.service
    mqcontrol
    tq16848 /bin/bash /opt/kompira/bin/prestart_kompirad.sh
    mq17030 sleep 1
    -------

     

    0
    コメントアクション Permalink
  • 服部健太

    ご確認ありがとうございます。

    systemctl status kompirad の結果からは、kompirad は起動はしているようです。

    調査のため、/var/log/kompirad.log と /var/log/httpd/* のログ一式を送っていただくことは可能でしょうか?

    0
    コメントアクション Permalink
  • uno

    ご指定頂いた各種ログファイルをメールにて送付いたしました。

    ご確認の程、よろしくお願い致します。

    0
    コメントアクション Permalink
  • 服部健太

    送付ありがとうございます。

    確認してみましたところ、2号機のpostgresqlがスレーブ状態のために、kompiradが接続できず、エラーとなっておりました。

    1号機は止めた状態で、

    1. 2号機のpostgresql サーバを停止 (systemctl stop postgresql-12)
    2. /var/lib/pgsql/12/data/standby.signal ファイルを削除
    3. 2号機でpostgresql サーバを (systemctl start postgresql-12)
    4. 2号機で kompirad を起動 (systemctl start kompirad)

    を実施し、ブラウザから、ログインできるかどうかを試してみていただけますでしょうか?

    0
    コメントアクション Permalink
  • uno

    上記の手順を試したところ、Pacemakerを停止させた状態では問題なく起動し、
    ブラウザからログインできました。(ジョブも正常に稼働していました)

    Pacemakerを起動した状態では、"rabbitmq-server"と"kompira_jobmngrd"が
    起動しませんでした。

    クラスタ状態も以前送付した不具合時に取得したものと、同様の内容が出力されました。

    両機でkompiraのクラスタを再セットアップすることで解消される可能性があるのであれば
    試してみようと思うのですがいかがでしょうか?

    また、冗長構成時に仮想マシンを再起動した場合の、
    冗長構成への正しい復旧手順等あればご教示いただけると幸いです。

    0
    コメントアクション Permalink
  • 服部健太

    現在の状況は、

    1号機は片系で正常に稼働していている状況でしょうか?

    であれば、2号機をVMごと再起動して、2号機で sync_master.sh を実行することで、冗長構成が復旧するかと思います。

    仮想マシンを再起動した場合の冗長構成手順ですが、

    スレーブ側を再起動した場合は、特になにもしなくても自動的に冗長構成に復帰します。

    マスター側を再起動した場合は、マスター側が停止した時点で、自動でフェールオーバーしてスレーブが新マスターになりますので、旧マスター側(再起動した方)で、再起動後にsync_master.shを実行してスレーブとして冗長構成に参加することができます。

    0
    コメントアクション Permalink
  • uno

    現在、下記のように1号機、2号機ともにSlaveの状態となっております。

    ---------
    [root@kompira-server1 ~]# crm_mon -A1
    Stack: corosync
    Current DC: ha-kompira2 (version 1.1.23-1.el7_9.1-9acf116022) - partition with quorum
    Last updated: Fri Dec 10 17:48:17 2021
    Last change: Fri Dec 10 17:47:27 2021 by root via crm_attribute on ha-kompira2

    2 nodes configured
    10 resource instances configured

    Online: [ ha-kompira1 ha-kompira2 ]

    Active resources:

    Master/Slave Set: ms_pgsql [res_pgsql]
    Slaves: [ ha-kompira1 ha-kompira2 ]

    Node Attributes:
    * Node ha-kompira1:
    + master-res_pgsql : -1000
    + rmq-node-attr-last-known-res_rabbitmq : rabbit@ha-kompira1
    * Node ha-kompira2:
    + master-res_pgsql : 1001
    + rmq-node-attr-last-known-res_rabbitmq : rabbit@ha-kompira2

    Failed Resource Actions:
    * res_rabbitmq_monitor_10000 on ha-kompira1 'not running' (7): call=327, status=complete, exitreason='',
    last-rc-change='Fri Dec 10 17:46:29 2021', queued=0ms, exec=0ms
    * res_rabbitmq_monitor_10000 on ha-kompira2 'not running' (7): call=561, status=complete, exitreason='',
    last-rc-change='Fri Dec 10 17:47:27 2021', queued=0ms, exec=0ms
    * res_vip_monitor_10000 on ha-kompira2 'not running' (7): call=584, status=complete, exitreason='',
    last-rc-change='Fri Dec 10 17:47:29 2021', queued=0ms, exec=0ms
    ---------

    この状態からの復旧手順があればご教示願いますでしょうか。

    0
    コメントアクション Permalink
  • 服部健太

    PostgreSQLは2号機がマスタ状態を示しておりますので、

    1号機をシャットダウンした後、(1号機はシャットダウンしたままで)2号機を再起動して、2号機がマスタとして片系で動作するかご確認いただけますでしょうか?

    0
    コメントアクション Permalink
  • uno

    確認となりますが、両機がSlaveとなった場合は、
    下記手順を行えば良いという認識で合っていますでしょうか。

    ① PostgreSQLがSlaveとなっているホストをシャットダウン
    ② PostgreSQLがMasterとなっているホストを再起動

    また、先ほどと状態が少し変わってしまいまして、現在クラスタ状態が
    下記となっているのですが、どの箇所からPostgreSQLのマスタを判別
    すればよいのかご教示いただいてもよろしいでしょうか。

    -----------------------

    [root@kompira-server1 ~]# crm_mon -A1
    Stack: corosync
    Current DC: ha-kompira2 (version 1.1.23-1.el7_9.1-9acf116022) - partition with quorum
    Last updated: Fri Dec 10 18:30:11 2021
    Last change: Fri Dec 10 18:17:58 2021 by root via cibadmin on ha-kompira1

    2 nodes configured
    10 resource instances configured

    Online: [ ha-kompira1 ha-kompira2 ]

    Active resources:

    Master/Slave Set: ms_pgsql [res_pgsql]
    Slaves: [ ha-kompira1 ha-kompira2 ]

    Node Attributes:
    * Node ha-kompira1:
    + master-res_pgsql : 1000
    + rmq-node-attr-last-known-res_rabbitmq : rabbit@ha-kompira1
    * Node ha-kompira2:
    + master-res_pgsql : 1001
    + rmq-node-attr-last-known-res_rabbitmq : rabbit@ha-kompira2

    Failed Resource Actions:
    * res_rabbitmq_monitor_10000 on ha-kompira1 'not running' (7): call=327, status=complete, exitreason='',
    last-rc-change='Fri Dec 10 18:20:08 2021', queued=0ms, exec=0ms
    * res_rabbitmq_monitor_10000 on ha-kompira2 'not running' (7): call=561, status=complete, exitreason='',
    last-rc-change='Fri Dec 10 18:10:54 2021', queued=0ms, exec=0ms

    0
    コメントアクション Permalink
  • uno

    提示された手順を試したところ、1号機が正常に稼働する状態まで
    復旧することができました。現在2号機はシャットダウンさせており、
    片系にて稼働させています。
    以後の対応は12/13(月)に実施予定です。

    また、追加で一点要望がございます。
    kompiraにおける冗長構成の仕様やマニュアル、
    コマンドのリファレンス等がございましたら
    ご教示いただきたいです。

    本日は迅速に返信いただきありがとうございました。
    引き続きのご対応、よろしくお願い致します。

    0
    コメントアクション Permalink
  • 服部健太

    1号機が正常に稼働しているということですが、現在の crm_mon -A1 はどのような状態になっておりますでしょうか?

    なお、冗長構成のマニュアルについては、Kompiraのオンラインヘルプマニュアルの1.9「冗長構成管理」に記載がございますので、そちらをご参照くださるよう、お願いいたします。

    0
    コメントアクション Permalink
  • uno


    現在のクラスタ情報を取得した増したので、下記に記載します。
    また、冗長構成の情報ありがとうございます。確認させていただきます。

    -----------------
    [root@kompira-server1 ~]# crm_mon -A1
    Stack: corosync
    Current DC: ha-kompira1 (version 1.1.23-1.el7_9.1-9acf116022) - partition with quorum
    Last updated: Mon Dec 13 09:55:43 2021
    Last change: Mon Dec 13 09:55:02 2021 by root via crm_attribute on ha-kompira1

    2 nodes configured
    10 resource instances configured

    Online: [ ha-kompira1 ha-kompira2 ]

    Active resources:

    Resource Group: webserver
    res_memcached (systemd:memcached): Started ha-kompira1
    res_httpd (ocf::heartbeat:apache): Started ha-kompira1
    res_kompirad (systemd:kompirad): Started ha-kompira1
    res_kompira_jobmngrd (systemd:kompira_jobmngrd): Started ha-kompira1
    res_lsyncd (systemd:lsyncd): Started ha-kompira1
    res_vip (ocf::heartbeat:IPaddr2): Started ha-kompira1
    Master/Slave Set: ms_pgsql [res_pgsql]
    Masters: [ ha-kompira1 ]
    Slaves: [ ha-kompira2 ]
    Clone Set: res_rabbitmq-clone [res_rabbitmq]
    Started: [ ha-kompira1 ha-kompira2 ]

    Node Attributes:
    * Node ha-kompira1:
    + master-res_pgsql : 1001
    + rmq-node-attr-last-known-res_rabbitmq : rabbit@ha-kompira1
    + rmq-node-attr-res_rabbitmq : rabbit@ha-kompira1
    * Node ha-kompira2:
    + master-res_pgsql : 1000
    + rmq-node-attr-last-known-res_rabbitmq : rabbit@ha-kompira2
    + rmq-node-attr-res_rabbitmq : rabbit@ha-kompira2

    0
    コメントアクション Permalink
  • 服部健太

    ご確認ありがとうございます。

    crm_mon の結果からは、現在1号機マスタ、2号機スレーブで、DBの同期も取れており、正しく冗長系が構成されているように見えます。

    この状態で、1号機をシャットダウンして、2号機にフェールオーバーすれば、動作的にも問題ございません。

    0
    コメントアクション Permalink
  • uno

    迅速なご回答ありがとうございます。

    追加で2点確認をさせてください。

    ・先ほどまで2号機はシャットダウンをさせていた状態なのですが、
     同期をしないままクラスタを切り替えてしまっても問題ないでしょうか。
     
    ・マスタ/スレーブの切り替え方法は1号機側での下記コマンド実行でも問題ないでしょうか。
    ---------------
    # pcs cluster standby ha-kompira1
    ---------------

    0
    コメントアクション Permalink
  • 服部健太

     crm_mon -A1の結果で、

    * Node ha-kompira2:
    + master-res_pgsql : 1000

    と、スコアが1000になっておりますので、スレーブ側(2号機)で同期は取れているかと思います。

    念のため、2号機上で、

    # /usr/pgsql-12/bin/pg_controldata /var/lib/pgsql/12/data

    を実行して、

    データベースクラスタの状態: アーカイブリカバリ中

    となっていることをご確認ください。

    なお、マスタスレーブの切り替え方法ですが、マスタ(1号機)側で

    # pcs node standby

    を実行していただくか、または、

    # pcs cluster stop

    として、冗長構成ミドルウェアを停止するかしてください。

    0
    コメントアクション Permalink
  • uno

    先ほどの状態でマスタを1号機から2号機に切り替えた際、下記の状態となりました。
    ブラウザからもログインができない状態となっています。

    この状態からの1号機へのマスタ切り替え方法、及び
    2号機の正常な状態への復旧方法をご教示ください。

    -----------
    [root@kompira-server2 ~]# crm_mon -A1
    Stack: corosync
    Current DC: ha-kompira1 (version 1.1.23-1.el7_9.1-9acf116022) - partition with quorum
    Last updated: Mon Dec 13 15:10:00 2021
    Last change: Mon Dec 13 15:09:37 2021 by root via crm_attribute on ha-kompira2

    2 nodes configured
    10 resource instances configured

    Node ha-kompira1: standby
    Online: [ ha-kompira2 ]

    Active resources:

    Resource Group: webserver
    res_memcached (systemd:memcached): Started ha-kompira2
    res_httpd (ocf::heartbeat:apache): Stopped
    res_kompirad (systemd:kompirad): Stopped
    res_kompira_jobmngrd (systemd:kompira_jobmngrd): Stopped
    res_lsyncd (systemd:lsyncd): Stopped
    res_vip (ocf::heartbeat:IPaddr2): Stopped
    Master/Slave Set: ms_pgsql [res_pgsql]
    Masters: [ ha-kompira2 ]
    Clone Set: res_rabbitmq-clone [res_rabbitmq]
    Started: [ ha-kompira2 ]

    Node Attributes:
    * Node ha-kompira1:
    + master-res_pgsql : -1000
    + rmq-node-attr-last-known-res_rabbitmq : rabbit@ha-kompira1
    * Node ha-kompira2:
    + master-res_pgsql : 1001
    + rmq-node-attr-last-known-res_rabbitmq : rabbit@ha-kompira2
    + rmq-node-attr-res_rabbitmq : rabbit@ha-kompira2

    Failed Resource Actions:
    * res_httpd_start_0 on ha-kompira2 'unknown error' (1): call=52, status=Timed Out, exitreason='',
    last-rc-change='Mon Dec 13 15:08:36 2021', queued=0ms, exec=60004ms

    0
    コメントアクション Permalink
  • 服部健太

    httpd サービスが上手く立ち上がらないために、2号機でKompiraが正常に動作しない状態になっているようです。

    この状態で、2号機上で以下のコマンドを実行して、再立ち上げできるかご確認いただけますでしょうか?

    # pcs cluster stop

    # pcs cluster start

    0
    コメントアクション Permalink
  • uno

    上記コマンドを試しましたが、先ほどと同じ状態となりました。

    -------------------

    [root@kompira-server2 ~]# crm_mon -A1
    Stack: corosync
    Current DC: ha-kompira1 (version 1.1.23-1.el7_9.1-9acf116022) - partition with quorum
    Last updated: Mon Dec 13 15:37:23 2021
    Last change: Mon Dec 13 15:09:37 2021 by root via crm_attribute on ha-kompira2

    2 nodes configured
    10 resource instances configured

    Node ha-kompira1: standby
    Online: [ ha-kompira2 ]

    Active resources:

    Resource Group: webserver
    res_memcached (systemd:memcached): Started ha-kompira2
    res_httpd (ocf::heartbeat:apache): Stopped
    res_kompirad (systemd:kompirad): Stopped
    res_kompira_jobmngrd (systemd:kompira_jobmngrd): Stopped
    res_lsyncd (systemd:lsyncd): Stopped
    res_vip (ocf::heartbeat:IPaddr2): Stopped
    Master/Slave Set: ms_pgsql [res_pgsql]
    Masters: [ ha-kompira2 ]
    Clone Set: res_rabbitmq-clone [res_rabbitmq]
    Started: [ ha-kompira2 ]

    Node Attributes:
    * Node ha-kompira1:
    + master-res_pgsql : -1000
    + rmq-node-attr-last-known-res_rabbitmq : rabbit@ha-kompira1
    * Node ha-kompira2:
    + master-res_pgsql : 1001
    + rmq-node-attr-last-known-res_rabbitmq : rabbit@ha-kompira2
    + rmq-node-attr-res_rabbitmq : rabbit@ha-kompira2

    Failed Resource Actions:
    * res_httpd_start_0 on ha-kompira2 'unknown error' (1): call=46, status=Timed Out, exitreason='',
    last-rc-change='Mon Dec 13 15:36:12 2021', queued=0ms, exec=60005ms

    0
    コメントアクション Permalink
  • 服部健太

    どうやら、2号機の冗長系が正しくセットアップできていないため、httpd が起動に失敗しているのかもしれません。

    2号機をシャットダウンして、1号機を起動することで、まず一号機だけの片系運転の状態にしたうえで、2号機をOSごとクリーンインストールすることは可能でしょうか?

     

    0
    コメントアクション Permalink
  • uno

    1号機は現在 "pcs node standby" を実行し、冗長構成から切り離した状態となっていますが、このまま再起動を実施しても問題ないでしょうか?

     

    0
    コメントアクション Permalink
  • 服部健太

    まずは1号機上で、pcs node unstandby を実行して、どのような状態になるかご確認いただけますでしょうか?

    0
    コメントアクション Permalink
  • uno

    先ほどスナップショットから復元させ、片系稼働(1号機)の状態まで復旧させました。

     

    弊社の運用上、夜分にkompiraを停止させることができないため、明日以降に上記手順(2号機の再構築)を試してみようと思います。また、現在は本日対応を行う前の状態に戻っているため、上記状態への再現は可能となっております。

    引き続きのご対応よろしくお願い致します。

    0
    コメントアクション Permalink
  • uno

    本日、2号機にてOSのクリーンインストールを実施しようと思っています。
    kompira冗長構成への組み込みまでの手順はマニュアル通りに進めて問題ないでしょうか?

    0
    コメントアクション Permalink

サインインしてコメントを残してください。