水泵|离心泵|化工泵|多级泵|隔膜泵|螺杆泵_上海帕特泵业 かかと

[登录][注册]

  • 新品推荐
  • 应用案例
  • 荣誉资质
  • 下载中心
  • 卫生级离心泵
  • QBK系列气动隔膜泵
  • DBY系列电动隔膜泵
  • MK50不锈钢气动隔.
  • EG系列离心泵
  • VG系列离心泵
  • 守信用重合.
  • 合同信用等.
  • 合同信用等.
  • 帕特商标续
  • 税务登记证
  • 组织机构代.
  • 企业法人营.
  • 合同信用等.
  • ZB3A型不锈钢转子泵 说明
  • QBY型气动隔膜泵选型样本
  • QBK型气动隔膜泵选型样本
  • ZW自吸式排污泵选型样本
  • YW型液下排污泵选型样本-2
  • YW型液下排污泵
  • WQ型潜水排污泵选型样本
  • WL型立式排污泵选型样本
  • TSWA、DL型多级离心泵选型.
  • TSWA卧式多级离心泵造型样本.
  • SPG、ZX型选型样本
  • S型单级双吸清水离心泵
  • PTW单级单吸卧式离心泵
  • PTLH、PTWH卧式化工泵选.
  • PTL型单级单吸立式管道式离心.
  • PTCL、GDL型多级泵选型样.
公司新闻
离心泵泵壳内响 cimpquyy. Christian Louboutin Stiefel异常的原因是什.

造成离心泵异常振动和噪声的原因可分为两个方面。   第.

  • 离心泵的气蚀有哪些危害?2016-04-26
  • 离心泵为什么要回流?2016-04-26
  • 多级离心泵特点有哪些?2016-04-25
  • 离心泵保养方法,离心泵怎么保养.2016-04-22
  • 衬氟离心泵和全氟离心泵的区别?2016-04-21
  • 离心泵上量小或不上量是什么原因.2016-04-21
  • 离心泵吸水扬程2016-04-20
  • 离心泵常用的工况调节方法有哪几.2016-04-20
  • 离心泵在运行时,能长时间关闭出.2016-04-01

かかと

安いルブタンの靴
Louboutin Männer Schuhe
sneakers mens Christian louboutin
christian louboutin skor
sconto christian louboutin

Mailing List Archive

クラスタの復旧およびPacemakerの挙動について m.hiraguchi at freebit Jan 8, 2016, 1:38 AM Post #1 of 9 (2679 views) Permalink お世話になります。

先般、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-ha-japan@lists.osdn.me
http://lists.osdn.me/mailman/listinfo/linux-ha-japan Re: $B%/%i%9%?$NI|5l$*$h(B$B$S(BPacemaker$B$N5sF0$K$D$$$F(B [ In reply to ] kazuh at goo Jan 13, 2016, 8:48 PM Post #2 of 9 (2544 views) Permalink ひがしと申します。
お世話になります。


><確認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.hiraguchi@freebit.net>
宛先: linux-ha-japan@lists.osdn.me
送信済み: 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-ha-japan@lists.osdn.me
http://lists.osdn.me/mailman/listinfo/linux-ha-japan
_______________________________________________
Linux-ha-japan mailing list
Linux-ha-japan@lists.osdn.me
http://lists.osdn.me/mailman/listinfo/linux-ha-japan Re: クラスタの復旧およびPacemakerの挙動について [ In reply to ] m.hiraguchi at freebit Jan 14, 2016, 3:53 AM Post #3 of 9 (2556 views) Permalink ひがし様

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

<確認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.jp 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.hiraguchi@freebit.net>
> 宛先: linux-ha-japan@lists.osdn.me
> 送信済み: 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」にて反映しています)