[Linux-ha-jp] クラスタの復旧およびPacemakerの挙動について

Zurück zum Archiv-Index

kazuh****@goo***** kazuh****@goo*****
2016年 1月 16日 (土) 20:43:47 JST


ひがしです。お世話になります。

それでは、故障時に何が起きていたのかを見たいので、以下情報を
いただけますか?

・Zabbixプロセス停止実施"後"のcrm_mon -Arf -1の表示内容
 (両系分)

・Zabbixプロセス停止前後の時間帯を含んだPacemakerのログ
 (両系分)
 ・・・設定次第でファイル名は異なりますが通常、
    /var/log/messagesや/var/log/ha-log。

・Zabbix故障後、Pacemakerが稼働しているノードで以下コマンドを実行し、
 生成された/tmp/cib.xml。
 (Pacemakerに設定のリソース設定や属性値の内容等が含まれます。)
 # cibadmin -Q > /tmp/cib.xml


以上です。
よろしくお願い致します。

----- 元のメッセージ -----
From: "Pacemaker初心者" <m.hir****@freeb*****>
宛先: linux****@lists*****
送信済み: 2016年1月15日, 金曜日 午後 6:16:58
件名: Re: [Linux-ha-jp] クラスタの復旧およびPacemakerの挙動について

ひがし様

毎回ご回答頂きありがとうございます。

■クラスタ切戻し時のPostgresqlの復旧作業
>参考まで、recovery.confはPacemaker(pgsql RA)が自動的に作成するので、
>手動で作成(リネーム)する必要は無いですよ。

⇒そうなんですね。。。了解しました。

■ZabbixServerリソース障害時のクラスタ移動失敗

>思いつく(よくあるケース)で以下2つが考えられます。
>(1)リソース停止失敗していないか?
>ZabbixServer障害は、具体的にはどんな障害でしょうか?

⇒プロセス停止を想定し、「killall |grep zabbix_server」を実施しました。
 ※クラスタリソース作成後は、〝systemctl stop zabbix-server〟が
  効かないので、上記killallにて停止しました。


>今回の設定では、前回回答でも少し触れましたが、STONITH(排他制御)が設定
>されていないようなので、リソースの停止が失敗するケースの故障時は、
>フェイルオーバはできません。
>具体的には、各リソース設定の以下op stop~~行の「on-fail="block"」
>というのが、「リソースの停止に失敗したら、フェイルオーバを中止(block)する」
>ということを示しています。
> op stop timeout="60s" interval="0s" on-fail="block"
>STONITHを導入し、かつon-fail="fence"と設定すると、リソースの停止失敗時は
>STONITHが発動し、相手ノードの電源を強制的に断した後、フェイルオーバが
>継続します。

⇒上記プロセス停止のケースであれば、zabbixserverリソースのmonitorの内容に
 従うという想定をしております。
 (op monitor timeout="60s" interval="0s" on-fail="restart" \)

 ちなみに、停止時のエラー発生した場合の挙動はSTONITHを使用しないため、、
 op stop timeout="60s" interval="0s" on-fail="block"
 としております。
 ※本初期構築時点ではSTONITHは考えておらず、将来的にIPMI関連の整備が完了した
  時点でSTONITHの導入を考えております。


> (2)フェイルカウントや制約等が残っていないか?
>フェイルオーバ先に、過去、故障や、手動リソース移動でついた制約が
>残ってしまってないでしょうか?
>フェイルカウントは、「crm_mon -rfA」の表示の"Failed actions:"という
>最下部の欄に何か表示があれば、残った状態です。
>残っていると、Pacemakerはこのノードは故障していると判断し、
>リソースは起動しません。

⇒Zabbixプロセス停止実施前のcrm_mon -Arf -1の表示内容からは、
 「Failed actions:」および異常を示す表示はされていません。
==================================
# crm_mon -Arf -1
Last updated: Thu Jan 14 16:47:49 2016          Last change: Thu Jan 14 16:45:38 2016 by root via crm_attribute on com-zabbix01p-pnd-ppp
Stack: corosync
Current DC: com-zabbix01p-pnd-ppp (version 1.1.13-10.el7-44eb2dd) - partition with quorum
2 nodes and 4 resources configured

Online: [ com-zabbix01p-pnd-ppp com-zabbix02p-pnd-ppp ]

Full list of resources:

  Master/Slave Set: msGrpPostgresql [PGSQL_01]
      Masters: [ com-zabbix01p-pnd-ppp ]
      Slaves: [ com-zabbix02p-pnd-ppp ]
  Resource Group: GrpVIP
      VIP_01     (ocf::heartbeat:IPaddr2):       Started com-zabbix01p-pnd-ppp
      ZabbixSV   (ocf::heartbeat:zabbixserver):  Started com-zabbix01p-pnd-ppp

Node Attributes:
* Node com-zabbix01p-pnd-ppp:
     + PGSQL_01-data-status              : LATEST
     + PGSQL_01-master-baseline          : 00000000140000B8
     + PGSQL_01-status                   : PRI
     + master-PGSQL_01                   : 1000
* Node com-zabbix02p-pnd-ppp:
     + PGSQL_01-data-status              : STREAMING|ASYNC
     + PGSQL_01-status                   : HS:async
     + master-PGSQL_01                   : 100

Migration Summary:
* Node com-zabbix02p-pnd-ppp:
* Node com-zabbix01p-pnd-ppp:
==================================

現クラスタ定義を整理すると、

 ①Zabbixserverリソースのオペレーション定義では、
  moniter interval=0s timeout=60s on-fail=restart
  (startでもon-fail=restartであり、stopはon-fail=blockである)

 ②リソースグループ定義では、
  ・Postgresqlグループでは、Postgresqlリソースのみ含む
   (Master/Slaveグループとして作成し、master-max=1、master-node-max=1
   、clone-max=2、clone-node-max=1、notify=trueとしている)
  ・VIPグループでは、VIPリソースとZabbixServerリソースの2つのリソースを含む
   (priority設定をしていないため、VIPグループ内の起動順序は、
    VIPリソース⇒ZabbixServerリソースという起動になることを想定)

 ③同居定義では、
  Master状態のPostgresqlグループとVIPグループが、INFINITY。

 ④起動順序定義では、
  ・Postgresqlグループをpromote⇒VIPグループをstartする。(INFINITY)
  ・Postgresqlグループをdemote⇒VIPグループをstopする。(0(強制せず))

となっています。
Postgresql障害(プロセスダウン)では、Postgresqlリソースが他のリソース起動前提
となっているため、Postgresqlリソースがクラスタ移動すると他のリソースが連動する
こととなり、正常に切り替わると考えてます。

今回のZabbixserver障害(プロセスダウン)を検知し、全リソースを移動(Postgresqlの
切替(移動&promote)⇒VIPリソース移動⇒Zabbix起動)させる必要があるのですが、
下記定義内容にて不足している定義はありますか?

==================================
■クラスタ定義
pcs property set no-quorum-policy="ignore"
pcs property set stonith-enabled="false"
pcs resource defaults resource-stickness="INFINITY"
pcs resource defaults migration-threshold="1"

■VIPリソース定義
pcs resource create VIP_01 IPaddr2 \
> ip="192.168.13.125" \
> nic="enp0s3" \
> cidr_netmask="24" \
> op start timeout="60s" interval="0s" on-fail="resstart" \
> op monitor timeout="60s" interval="10s" on-fail="restart" \
> op stop timeout="60s" interval="0s" on-fail="block" \

■PostgreSQLリソース定義
pcs -f /tmp/cluster_cfg resource create PGSQL_01 pgsql \
> pgctl="/usr/bin/pg_ctl" \
> psql="/usr/bin/psql" \
> pgdata="/var/lib/pgsql/data/" \
> rep_mode="async" \
> node_list="zabbix01 zabbix02" \
> restore_command="cp /var/lib/pgsql/pg_arch/arc1/%f %p" \
> primary_conninfo_opt="keepalives_idle=60 keepalives_interval=5 keepalives_count=5" \
> master_ip="192.168.13.125" \
> restart_on_promote='true' \
> repuser="rep_user" \
> start_opt="-i -p 5432" \
> op start timeout="60s" interval="0s" on-fail="restart" \
> op monitor timeout="60s" interval="4s" on-fail="restart" \
> op monitor timeout="60s" interval="3s" on-fail="restart" role="Master" \
> op promote timeout="60s" interval="0s" on-fail="restart" \
> op demote timeout="60s" interval="0s" on-fail="stop" \
> op stop timeout="60s" interval="0s" on-fail="block" \
> op notify timeout="60s" interval="0s"

■同居・起動順序定義
pcs resource master msGrpPostgresql PGSQL_01 \
> master-max=1 master-node-max=1 clone-max=2 clone-node-max=1 notify=true
pcs resource group add GrpVIP VIP_01
pcs constraint colocation add GrpVIP with Master msGrpPostgresql
pcs constraint order promote msGrpPostgresql then start GrpVIP symmetrical=false score=INFINITY
pcs constraint order demote msGrpPostgresql then stop GrpVIP symmetrical=false score=0
==================================

何卒、ご助勢願います。


On 2016/01/15 13:45, kazuh****@goo***** wrote:
> ひがしです。お世話になります。
>
>> ⇒ご指摘の事項およびpg_basebackup、promote、recovery.done⇒recovery.confの
>> リネーム等
>>  PostgreSQLの(Masterでの)起動条件を整理し復旧しました。
> うまくいったのなら良かったです。
> 参考まで、recovery.confはPacemaker(pgsql RA)が自動的に作成するので、
> 手動で作成(リネーム)する必要は無いですよ。
>
>
>> この内容で、PostgreSQL障害時はSlave(新マスタ)機へ問題なく切り替わりまし
>> たが、
>> ZabbixServer障害時はクラスタリソース全てがMaster、Slave共に停止してしま
>> いました。
> 思いつく(よくあるケース)で以下2つが考えられます。
>
> (1)リソース停止失敗していないか?
> ZabbixServer障害は、具体的にはどんな障害でしょうか?
> 今回の設定では、前回回答でも少し触れましたが、STONITH(排他制御)が設定
> されていないようなので、リソースの停止が失敗するケースの故障時は、
> フェイルオーバはできません。
>
> 具体的には、各リソース設定の以下op stop~~行の「on-fail="block"」
> というのが、「リソースの停止に失敗したら、フェイルオーバを中止(block)する」
> ということを示しています。
>  op stop timeout="60s" interval="0s" on-fail="block"
>
> STONITHを導入し、かつon-fail="fence"と設定すると、リソースの停止失敗時は
> STONITHが発動し、相手ノードの電源を強制的に断した後、フェイルオーバが
> 継続します。
>
> このあたり、詳細は、前回も紹介の以下資料をご覧ください。
>   http://linux-ha.osdn.jp/wp/archives/4338
>    →試して覚えるPacemaker入門 排他制御機能編
>
>
> (2)フェイルカウントや制約等が残っていないか?
> フェイルオーバ先に、過去、故障や、手動リソース移動でついた制約が
> 残ってしまってないでしょうか?
>
> フェイルカウントは、「crm_mon -rfA」の表示の"Failed actions:"という
> 最下部の欄に何か表示があれば、残った状態です。
> 残っていると、Pacemakerはこのノードは故障していると判断し、
> リソースは起動しません。
>
> 前回紹介の以下資料P34の表示例を参考に、残っていればP36のコマンドで
> フェイルカウントを削除してください。
>> http://linux-ha.osdn.jp/wp/archives/4137
>>  →PG-REXで学ぶPacemaker運用の実例
> また、crm_resource -M -r コマンドでリソースを手動で移動した後、
> 「crm_resource -U -r <リソース名>」を実行していない場合、
> 移動元のノードにはリソースが起動できない制約が残ります。
> (crm_mon -rfAL で確認できます。)
> その場合、「crm_resource -U -r <リソース名>」で制約を消してください。
>
>
>
> さて、上記はあくまでも推測で、今回の事象がそれに該当するかどうかは、
> ログ等を確認しないとわかりません。
> ZabbixServer障害発生時の、「crm_mon -Arf -1」やPacemakerのログ(両系分)が
> あれば、もう少し今回の事象の原因を解析できると思います。
>
>
> 以上です。よろしくお願いいたします。
>
> ----- 元のメッセージ -----
> From: "Pacemaker初心者" <m.hir****@freeb*****>
> 宛先: linux****@lists*****
> 送信済み: 2016年1月14日, 木曜日 午後 8:53:15
> 件名: Re: [Linux-ha-jp] クラスタの復旧およびPacemakerの挙動について
>
> ひがし様
>
> ご回答ありがとうございます。
>
> <確認1のご回答>
>> PG-REXでは、Pacemaker起動をMasterになってほしいノードから片方ずつ行い、
>> そのPacemakerが完全に起動し、PostgreSQLがMasterになったことを確認してから、
>> もう片方を起動する、というように起動する必要があります。
>> Pacemakerからすると、2ノード同時に起動された場合、どちらのノードを優先して
>> Masterにすべきか判断できないためです。
>> 今回の場合、Slave(新Master)のみを先に起動すれば、きちんとMasterになったかと
>> 思います。
> ⇒本ケースの再現がありましたので、Slave(新Master)機⇒Master(新Slave)機の順で、
>  クラスタ起動を行いました。
>
> <確認2のご回答>
>> ログを確認しないと断定はできませんが、両系でPGSQL.lockファイルが残存している
>> 可能性があります。
>> これは、データが古い可能性があることをユーザに気づかせるための印で、
>> Pacemaker(pgsql RA)が正常停止するときのみ削除されます。つまり、異常停止時
>> には残存し、異常停止した旨をユーザに気づかせるものです。
>> 通常、postgreユーザのホーム配下のtmp/(/var/lib/pgsql/tmp/)にあります。
>> データ復旧後、またはデータが古い可能性があること承知の上で、当該ノードの
>> PostgreSQLを起動する際は、このファイルを手動で削除する必要があります
> ⇒ご指摘の事項およびpg_basebackup、promote、recovery.done⇒recovery.confの
> リネーム等
>  PostgreSQLの(Masterでの)起動条件を整理し復旧しました。
>
> <確認3のご回答>
>> 構築後、一度きちんと起動しているようなので、設定に問題は無いかと
>> 思います。
>> #STONITH, SFEX, VIPcheck等の排他制御は設定されていないようなので、
>>  スプリットブレイン発生時は両系ノードがMasterになってしまうのが
>>  問題と言えば問題ですが、今回の事象とは関係ないと思います。
> ⇒クラスタ起動に連動し、PostgreSQLが起動するようになりました。
>  ※関係ないかもしれませんが、前回との変更点は、PostgreSQLリソースに
>  「start_option="-i -p 5432"」の追加です。
>
>
> ■新たな確認事項
>  VIP、PostgreSQLのクラスタリソースおよびグループ以外のリソース(Zabbix)
> を追加しました。
>
>  ■zabbixリソースの作成内容
> # pcs resource create ZabbixSV zabbixserver \
>   > binary="/usr/sbin/zabbix_server" \
>   > pid="/var/run/zabbix/zabbix_server.pid" \
>   > config="/etc/zabbix/zabbix_server.conf" \
>   > op start timeout="60s" interval="0s" on-fail="restart" \
>   > op monitor timeout="60s" interval="0s" on-fail="restart" \
>   > op stop timeout="60s" interval="0s" on-fail="block"
>
>  ■zabbixリソースのグループ登録(VIPリソースグループへの追加)
> # pcs resource group add GrpVIP ZabbixSV
> # pcs resource group list
> GrpVIP: VIP_01 ZabbixSV
>
>
> ※フェイルオーバー時の起動順序は、
>   ①PostgreSQLのPromote
>   ②VIP付与
>   ③ZabbixServer起動
>  を想定しています。
>
> この内容で、PostgreSQL障害時はSlave(新マスタ)機へ問題なく切り替わりまし
> たが、
> ZabbixServer障害時はクラスタリソース全てがMaster、Slave共に停止してしま
> いました。
>
> PostgreSQLに依存するクラスタリソースの登録について
> ご教示願います。
>
> ご助勢の程、宜しくお願い致します。
>
>
>
> On 2016/01/14 13:48, kazuh****@goo***** wrote:
>> ひがしと申します。
>> お世話になります。
>>
>>
>>> <確認1>
>>>  Slave(新Master)にてフェイルオーバー後の状態を継続するものと想定して
>>>  いましたが、OS停止をした場合はこの様な挙動になるのは正しいのでしょうか?
>> PG-REXでは、Pacemaker起動をMasterになってほしいノードから片方ずつ行い、
>> そのPacemakerが完全に起動し、PostgreSQLがMasterになったことを確認してから、
>> もう片方を起動する、というように起動する必要があります。
>> Pacemakerからすると、2ノード同時に起動された場合、どちらのノードを優先して
>> Masterにすべきか判断できないためです。
>>
>> 今回の場合、Slave(新Master)のみを先に起動すれば、きちんとMasterになったかと
>> 思います。
>>
>>
>>> <確認2>
>>>  クラスタの復旧作業として①と②以外に行うことはありますか?
>>>  (※VIP_01はdebug-atartにて強制起動し、PostgreSQLは手動起動しましたが、
>>>  未だ〝stopped〟のままです。)
>> ログを確認しないと断定はできませんが、両系でPGSQL.lockファイルが残存している
>> 可能性があります。
>>
>> これは、データが古い可能性があることをユーザに気づかせるための印で、
>> Pacemaker(pgsql RA)が正常停止するときのみ削除されます。つまり、異常停止時
>> には残存し、異常停止した旨をユーザに気づかせるものです。
>> 通常、postgreユーザのホーム配下のtmp/(/var/lib/pgsql/tmp/)にあります。
>>
>> データ復旧後、またはデータが古い可能性があること承知の上で、当該ノードの
>> PostgreSQLを起動する際は、このファイルを手動で削除する必要があります。
>>
>>
>>
>> なお、手前味噌になりますが、昨年福岡で開催のオープンソースカンファレンスにて
>> PG-REXの故障時の挙動や運用方法をまとめた講演を行いました。
>> PostgreSQLプロセス停止後の復旧は、以下P42に掲載しています。
>>
>> http://linux-ha.osdn.jp/wp/archives/4137
>>  →PG-REXで学ぶPacemaker運用の実例
>>    P42 vip-master故障時の復旧方法
>>
>>
>>> <確認3>
>>>  そもそもの話なのですが、クラスタ起動時にVIP付与とPostgreSQL起動が
>>>  されない状態です。(PostgreSQLは手動起動してます)
>>>  設定内容を以下に示すので、不足している設定をご教示願います。
>> 構築後、一度きちんと起動しているようなので、設定に問題は無いかと
>> 思います。
>> #STONITH, SFEX, VIPcheck等の排他制御は設定されていないようなので、
>>  スプリットブレイン発生時は両系ノードがMasterになってしまうのが
>>  問題と言えば問題ですが、今回の事象とは関係ないと思います。
>>  排他制御については、以下講演が詳しいです。
>>   http://linux-ha.osdn.jp/wp/archives/4338
>>    →試して覚えるPacemaker入門 排他制御機能編
>>
>>
>> 一度、以下の順に、起動・停止をやりなおしてみてはいかがでしょうか?
>> (上記PGSQL.lockや片系ずつ起動、を踏まえた手順案です。)
>>
>>  1) 一旦、両系のPacemakerをSlave→Masterの順に片系ずつ停止
>>  2) 一旦、手動起動した両系のPostgreSQLをSlave→Masterの順に片系ずつ停止
>>  3) 両系の/var/lib/pgsql/tmp/PGSQL.lock を削除
>>  4) さきほどMasterだった方のノードのPacemakerを起動
>>    →crm_mon等でPostgreSQLがMasterになることを確認
>>  5) pg_basebackupを実行し、現Masterの最新データをSlaveにコピー
>>  6) SlaveのPacemakerを起動
>>
>>
>> これでも起動しない場合、両系分のPacemakerとPostgreSQLのログを見てみる
>> 必要があります。
>>
>>
>> 以上です。
>> よろしくお願いいたします。
>>
>>
>> ----- 元のメッセージ -----
>> From: "Pacemaker初心者" <m.hir****@freeb*****>
>> 宛先: linux****@lists*****
>> 送信済み: 2016年1月8日, 金曜日 午後 6:38:26
>> 件名: [Linux-ha-jp] クラスタの復旧およびPacemakerの挙動について
>>
>> お世話になります。
>>
>> 先般、PG-REXでのPacemaker構築にて上手くいかなかったので、勉強がてら
>> pcsコマンドにて再構築を行いました。
>>
>> [環境]
>> OS                    :CentOS7.1
>> PostgresSQL      :postgresql-server-9.2.13-1
>> Pacemaker        :pacemaker-1.1.12-22
>>
>>
>> 構築後に諸々問題点が発生しており、ご助勢頂けると助かります。
>> 以下、状況を順に記します。
>>
>>
>> (1)構築後の状況
>> ================================
>> # crm_mon -Arf -1
>> Last updated: Tue Jan  5 21:39:19 2016
>> Last change: Tue Jan  5 21:38:46 2016 by hacluster via crmd on zabbix01
>> Stack: corosync
>> Current DC: zabbix01(1) - partition with quorum
>> Version: 1.1.12-561c4cf
>> 2 Nodes configured
>> 3 Resources configured
>>
>> Online: [ zabbix01 zabbix02 ]
>>
>> Full list of resources:
>>
>>     Master/Slave Set: msPostgresql [pgsql]
>>         Masters: [ zabbix01 ]
>>         Slaves: [ zabbix02 ]
>>     Resource Group: master-group
>>         VIP_01     (ocf::heartbeat:IPaddr2):       Started zabbix01
>>
>> Node Attributes:
>> * Node zabbix01:
>>        + #cluster-name                     : zabbixcluster
>>        + #site-name                        : zabbixcluster
>>        + master-pgsql                      : 1000
>>        + pgsql-data-status                 : LATEST
>>        + pgsql-master-baseline             : 0000000016000080
>>        + pgsql-status                      : PRI
>> * Node zabbix02:
>>        + #cluster-name                     : zabbixcluster
>>        + #site-name                        : zabbixcluster
>>        + master-pgsql                      : 100
>>        + pgsql-data-status                 : STREAMING|ASYNC
>>        + pgsql-status                      : HS:async
>>
>> Migration summary:
>> * Node zabbix02:
>> * Node zabbix01:
>> ================================
>>
>>
>> (2)Slaveへの切替
>> 切替テストとして、Zabbix01のPostgresqlを停止しました。
>> 停止後のクラスタの状態(下記)としては問題ないと思ってます。
>> ================================
>> # crm_mon -Arf -1
>> Last updated: Wed Jan  6 00:45:32 2016
>> Last change: Wed Jan  6 00:30:22 2016 by hacluster via crmd on zabbix01
>> Stack: corosync
>> Current DC: zabbix01 (1) - partition with quorum
>> Version: 1.1.12-561c4cf
>> 2 Nodes configured
>> 3 Resources configured
>>
>> Online: [ zabbix01 zabbix02 ]
>>
>> Full list of resources:
>>
>>     Master/Slave Set: msPostgresql [pgsql]
>>         Masters: [ zabbix02 ]
>>         Stopped: [ zabbix01 ]
>>     Resource Group: master-group
>>         VIP_01     (ocf::heartbeat:IPaddr2):       Started zabbix02p
>>
>> Node Attributes:
>> * Node zabbix01:
>>        + #cluster-name                     : zabbixcluster
>>        + #site-name                        : zabbixcluster
>>        + master-pgsql                      : -INFINITY
>>        + pgsql-data-status                 : DISCONNECT
>>        + pgsql-status                      : STOP
>> * Node zabbix02:
>>        + #cluster-name                     : zabbixcluster
>>        + #site-name                        : zabbixcluster
>>        + master-pgsql                      : 1000
>>        + pgsql-data-status                 : LATEST
>>        + pgsql-master-baseline             : 0000000017000080
>>        + pgsql-status                      : PRI
>>
>> Migration summary:
>> * Node zabbix02:
>> * Node zabbix01:
>>       pgsql: migration-threshold=1 fail-count=1 last-failure='Wed Jan 6
>> 00:30:13 2016'
>>
>> Failed actions:
>>        pgsql_monitor_3000 on zabbix01 'unknown error' (1): call=126,
>> status=complete, last-rc-change='Wed Jan  6 00:30:13 2016', queued=0ms,
>> exec=0ms
>> ================================
>>
>>
>> (3)
>> この後、切戻しを行う際に当方の不手際で、Master(Zabbix01)とSlave(Zabbix02)
>> のOS停止をしてしまいました。
>> 停止後、両機を起動しましたが、「pcs status」および「crm_mon -Arf -1」
>> でのmaster-group(VIP_01)、msPostgresql(pgsql)のリソースのステータスが、
>> 〝stopped〟となっていました。
>> ================================
>> # pcs status
>> Cluster name: zabbixcluster
>> Last updated: Thr Jan  7 17:11:58 2016
>> Last change: Thr Jan  7 15:57:37 2016 by hacluster via crmd on zabbix01
>> Stack: corosync
>> Current DC: zabbix02 (1) - partition with quorum
>> Version: 1.1.12-561c4cf
>> 2 Nodes configured
>> 3 Resources configured
>>
>>
>> Online: [ zabbix01 zabbix02 ]
>>
>> Full list of resources:
>>
>>     Master/Slave Set: msPostgresql [pgsql]
>>         Stopped: [ zabbix01 zabbix02 ]
>>     Resource Group: master-group
>>         VIP_01     (ocf::heartbeat:IPaddr2):       Stopped
>>
>> PCSD Status:
>>      zabbix01 (192.168.252.182): Online
>>      zabbix02 (192.168.252.183): Online
>>
>> Daemon Status:
>>      corosync: active/enabled
>>      pacemaker: active/enabled
>>      pcsd: active/enabled
>> ================================
>>
>> <確認1>
>>  Slave(新Master)にてフェイルオーバー後の状態を継続するものと想定して
>>  いましたが、OS停止をした場合はこの様な挙動になるのは正しいのでしょうか?
>>
>>
>> (4)復旧
>> pg_basebackup、pg_ctl promote等を行い、PostgreSQLの戻しを行いました。
>> (※「psql -h localhost -c "SELECT pg_is_in_recovery();"」にて
>> 両PostgresSQLの起動状態(Zabbix01:f、Zabbix02:t)と、ストリーミング
>> レプリケーションの動作を確認済)
>>
>> PostgreSQLの状態復旧を行った後に、
>>  ①pcs resource cleanup msPostgresqlとpcs resource cleanup master-group
>>  ②pcs cluster stop --allとpcs cluster start --all
>> にて復旧を試みましたが、両リソースの状態は〝stopped〟のままです。
>>
>> <確認2>
>>  クラスタの復旧作業として①と②以外に行うことはありますか?
>>  (※VIP_01はdebug-atartにて強制起動し、PostgreSQLは手動起動しましたが、
>>  未だ〝stopped〟のままです。)
>>
>>
>> <確認3>
>>  そもそもの話なのですが、クラスタ起動時にVIP付与とPostgreSQL起動が
>>  されない状態です。(PostgreSQLは手動起動してます)
>>  設定内容を以下に示すので、不足している設定をご教示願います。
>>
>> ■設定内容
>> ================================
>> pcs -f cluster_cfg property set no-quorum-policy="ignore"
>> pcs -f cluster_cfg property set stonith-enabled="false"
>> pcs -f cluster_cfg resource defaults resource-stickiness="INFINITY"
>> pcs -f cluster_cfg resource defaults migration-threshold="1"
>>
>> pcs -f cluster_cfg resource create VIP_01 IPaddr2 \
>>       ip="192.168.252.184" \
>>       nic="enp0s3" \
>>       cidr_netmask="24" \
>>       op start   timeout="60s" interval="0s"  on-fail="restart" \
>>       op monitor timeout="60s" interval="10s" on-fail="restart" \
>>       op stop    timeout="60s" interval="0s"  on-fail="block"
>>
>> pcs -f cluster_cfg resource create pgsql pgsql \
>>       pgctl="/usr/bin/pg_ctl" \
>>       psql="/usr/bin/psql" \
>>       pgdata="/var/lib/pgsql/data/" \
>>       rep_mode="async" \
>>       node_list="zabbix01 zabbix02" \
>>       restore_command="cp /var/lib/pgsql/pg_archive/%f %p" \
>>       primary_conninfo_opt="keepalives_idle=60 keepalives_interval=5
>> keepalives_count=5" \
>>       master_ip="192.168.252.184" \
>>       restart_on_promote='true' \
>>       op start   timeout="60s" interval="0s"  on-fail="restart" \
>>       op monitor timeout="60s" interval="4s" on-fail="restart" \
>>       op monitor timeout="60s" interval="3s"  on-fail="restart"
>> role="Master" \
>>       op promote timeout="60s" interval="0s"  on-fail="restart" \
>>       op demote  timeout="60s" interval="0s"  on-fail="stop" \
>>       op stop    timeout="60s" interval="0s"  on-fail="block" \
>>       op notify  timeout="60s" interval="0s"
>>
>> pcs -f cluster_cfg resource master msPostgresql pgsql \
>>       master-max=1 master-node-max=1 clone-max=2 clone-node-max=1 notify=true
>>
>> pcs -f cluster_cfg resource group add master-group VIP_01
>>
>> pcs -f pgsql_cfg constraint colocation add master-group with Master
>> msPostgresql INFINITY
>> pcs -f pgsql_cfg constraint order promote msPostgresql then start
>> master-group symmetrical=false score=INFINITY
>> pcs -f pgsql_cfg constraint order demote  msPostgresql then stop
>> master-group symmetrical=false score=0
>> ================================
>>
>> (上記を「pcs cluster cib-push cluster_cfg」にて反映しています)
>>
>> _______________________________________________
>> Linux-ha-japan mailing list
>> Linux****@lists*****
>> http://lists.osdn.me/mailman/listinfo/linux-ha-japan
>> _______________________________________________
>> Linux-ha-japan mailing list
>> Linux****@lists*****
>> http://lists.osdn.me/mailman/listinfo/linux-ha-japan
> _______________________________________________
> Linux-ha-japan mailing list
> Linux****@lists*****
> http://lists.osdn.me/mailman/listinfo/linux-ha-japan
> _______________________________________________
> Linux-ha-japan mailing list
> Linux****@lists*****
> http://lists.osdn.me/mailman/listinfo/linux-ha-japan

_______________________________________________
Linux-ha-japan mailing list
Linux****@lists*****
http://lists.osdn.me/mailman/listinfo/linux-ha-japan



Linux-ha-japan メーリングリストの案内
Zurück zum Archiv-Index