[Linux-ha-jp] PostgreSQLのフェールオーバができません

Back to archive index

Motoharu Kubo mkubo****@3ware*****
2012年 7月 12日 (木) 08:25:18 JST


こんにちは、久保と申します。

migrateで手動のスイッチオーバーを試験した後、unmigrateを実行しておられな
いのではないでしょうか。

  location cli-standby-gr_postgres gr_postgres \
        rule $id="cli-standby-rule-gr_postgres" -inf: #uname eq vm85.lab

という制約は、migrateを実行したときに自動的に追加されます。

この制約が残ったままだと、"#uname eq"に書いてあるホストでリソースを実行
することが禁止されます(-infのスコアが付けられたため)。

unmigrateは、自動的に付加されるこの制約を除去してくれるコマンドで、これ
を実行しない限りvm85.labでgr_postgresリソースは実行されません。

migrateを実行した時点で、Pacemakerは現在のリソース配置が最適であると判断
しています。このままではスイッチオーバーは起こってくれません。migrateコ
マンドは上述のような配置に関する制約を付加することによって、Pacemakerに
「今のリソース配置じゃダメだ」という判断を促すわけです。

ただしmigrateが付加した制約は自動的に削除されない仕様になっています。自
動削除されたら、default-resource-stickiness値などの設定によっては、自動
的に元の配置に戻ってしまうためだろうと思います。その代わりに、unmigrate
コマンドが用意されています。

(2012年07月12日 04:56), taka yamada wrote:
> はじめまして、山田ともうします。
> 
> 最近、Pacemakerの勉強を始めました。
> RAでPostgreSQQL用のがあるみたいだったのPostgreSQLのHA化を試してみており
> ます。
> 
> いろいろなサイトの内容を参考に以下のように設定をしました。
> 
> primitive fs_db ocf:heartbeat:Filesystem \
>         params device="/dev/drbd1" directory="/pgdata" fstype="ext3"
> options="noatime" \
>         op monitor interval="10s"
> primitive postgresql ocf:heartbeat:pgsql \
>         params pgctl="/usr/bin/pg_ctl" start_opt="-p 5432 -h 127.0.0.1"
> psql="/usr/bin/psql" pgdata="/pgdata" pgdba="postgres" pgport="5432"
> pgdb="template1" \
>         op start interval="0s" timeout="120s" on-fail="restart" \
>         op monitor interval="10s" timeout="60s" on-fail="restart" \
>         op stop interval="0s" timeout="120s" on-fail="block"
> primitive res_drbd ocf:linbit:drbd \
>         params drbd_resource="db" \
>         op monitor interval="10s" timeout="30s"
> group gr_postgres fs_db postgresql
> ms ms_drbd res_drbd \
>         meta master-max="1" master-node-max="1" clone-max="2"
> clone-node-max="1" notify="true" is-managed="true" target-role="Started"
> location cli-standby-gr_postgres gr_postgres \
>         rule $id="cli-standby-rule-gr_postgres" -inf: #uname eq vm85.lab
> colocation postgres_on_drbd inf: gr_postgres ms_drbd:Master
> order postgres_after_drbd inf: ms_drbd:promote gr_postgres:start
> property $id="cib-bootstrap-options" \
>         dc-version="1.0.12-066152e" \
>         cluster-infrastructure="Heartbeat" \
>         expected-quorum-votes="2" \
>         no-quorum-policy="ignore" \
>         stonith-enabled="false"
> rsc_defaults $id="rsc-options" \
>         resource-stickiness="INFINITY" \
>         migration-threshold="1"
> 
> migrateでDRBDのスレーブ側に切り替わった際にPostgreSQLも切り替わり、正常
> にPostgreSQLも使用できます。
> migrateでうまく切り替わるので、故障時の切り替えを試すのにPostgreSQLを停
> 止させました。
> しかし、crm_monでは以下のようにStoppedと停止を検出はしてくれているようで
> すがフェールオーバしてくれません。
> 
> Online: [ vm84.lab vm85.lab ]
> 
>  Master/Slave Set: ms_drbd
>      Masters: [ vm84.lab ]
>      Slaves: [ vm85.lab ]
>  Resource Group: gr_postgres
>      fs_db      (ocf::heartbeat:Filesystem):    Started vm84.lab
>      postgresql (ocf::heartbeat:pgsql): Stopped
> 
> なにか設定が悪いのかと参考にしたサイトを見直しましたが、同じような設定を
> しているようなので原因が分かりません。
> 御教示していただけないでしょうか。
> 
> 
> _______________________________________________
> Linux-ha-japan mailing list
> Linux****@lists*****
> http://lists.sourceforge.jp/mailman/listinfo/linux-ha-japan
> 





Linux-ha-japan メーリングリストの案内
Back to archive index