[Linux-ha-jp] pacemakerからpostgresqlを起動出来ない件

Back to archive index

Takehiro Matsushima takeh****@gmail*****
2015年 9月 10日 (木) 17:16:05 JST


海藤さん

松島です、亀レスで申し訳ございません。

ホスト名についてですが、act, stby, master, slaveなどの単語を入れてしまうとかえって混乱するので、私は番号でやっています。
"web1" "db2" などです。
基本的にホスト名を変えるのはお勧めできません。サービスによっては自分のホスト名を見ていたりします。

ご検討ください


2015年9月9日 13:37 海藤 廣一 <kaido****@jp*****>:
> ひがし様
> 関係各様
>
> 海藤です。
> いつもお世話になっております。
>
>> 個人的には、いろいろ例外はあろうかと思いますが、復旧は
>>  ・故障ホストのPacemakerを一旦停止
>>  ・Masterが単体で動作していることを確認
>>   (pgsql-status属性値が"PRI"になっていることを確認)
>>  ・初期構築時と同様に、故障ホスト(新ホスト)をSlaveとして起動
>>   (pg_basebackupで全データコピー後、Pacemaker起動)
>> というのが基本かと思います。
>
> ご指導有難うございます。
>
> シェルスクリプトを組むことで、手作業的にはコマンド一つ
> という対応が出来そうなので上記方法で考えてます。
> Master動作しているPostgresqlを動作させたままバックアップ
> 出来るのだからpg_basebackupにかかる時間はあまり重要視
> しておりません。
>
> おかげさまで悩みは次のフェーズに移りました。
> フェイルオーバー前の構成とNodeの名称が逆にならざるを得ない為、
> 積極的にもう一度フェイルオーバー⇒フェイルバックするのか、
> 両Nodeの/etc/hostnameを書き換えてしまうのかを悩んでます。
> WindowsクライアントからUDPコマンドで/etc/hostnameの内容を要求
> しサーバー側に応答させているので、Master/Slaveの名称が逆に
> なると不自然に見えるので。
>
> このあたりも含めて改めて別タイトルのメールで相談させて頂きます。
>
>
>> 最後に、宣伝みたいになってしまいますが、来る10/3(土)に
>> 福岡で開催されるオープンソースカンファレンスでPG-REXの
>> 運用をテーマにした講演を行います。
>> 会場に来るのが難しい場合も、資料は事後、以下サイトで
>> 公開しますので、参考になれば幸いです。
>>
>> https://www.ospn.jp/osc2015-fukuoka/modules/eguide/event.php?eid=9
>
> 私の勤務先は横浜市内なので会場に足を運ぶことは今回は出来ませんが、
> 資料は今後の参考にさせて頂きます。
>
>
> ひとまず、ご指導有難うございました。
> 今後とも宜しくお願いします。
>
>
> On Wed, 9 Sep 2015 10:39:33 +0900 (JST)
> kazuh****@goo***** wrote:
>
>> 海藤様
>>
>> ひがしです。お世話になっております。
>>
>> >おかげさまで、両nodeでpostgresqlを起動させてレプリケーション
>> >動作することが確認できました。
>>
>> それはよかったです。
>> お力になれたのなら光栄です。
>>
>> >ところで、私のところではPG-REXよりもシンプルな構成を考えています。
>> >物理NICの2枚以上使用(S-LANとD-LANの分割)は想定していません。
>> >閉じたLANなのでネットワークの負荷は非常に低い為です。
>> >また、閉じたLANであるためルーターの様な固定IPでPing応答する
>> >相手がいません。
>> ご認識の通り、ユーザの判断でこれらをアレンジすることは
>> 全然OKだと思います。
>> #コミュニティとしては、最大限の冗長構成を例示している
>>  だけですので。
>>
>> >①2台のホストでPostgresqlをレプリケーションで二重化しどちらかが
>> > ダウンしたらフェイルオーバーさせてしばらく片側で動作させる。
>> >②クライアントからはマスター側からスレーブ側IPに切替を必要させない
>> > ためにマスターの仮想IPにアクセスさせる。
>> >③同期レプリケーションを使用したい。
>> >④フェイルオーバー後のメンテナンスを煩雑なものにしたくない
>> > (新ホストを用意して接続してフェイルバックできれば良い)
>>
>> PG-REXであれば①~③は問題なく実現できると思います。
>>
>> ④は・・先にご案内した、PG-REX運用補助ツールを使用できれば
>> 少し楽になりますが、それがないと確かにちょっと大変かもしれません。
>>
>> 個人的には、いろいろ例外はあろうかと思いますが、復旧は
>>  ・故障ホストのPacemakerを一旦停止
>>  ・Masterが単体で動作していることを確認
>>   (pgsql-status属性値が"PRI"になっていることを確認)
>>  ・初期構築時と同様に、故障ホスト(新ホスト)をSlaveとして起動
>>   (pg_basebackupで全データコピー後、Pacemaker起動)
>> というのが基本かと思います。
>>
>> 上記3つめの「・」はマニュアルでいうと「A.3.Slaveの起動」にあたり
>> ますが、これの(4)の判断が非常に難しく感じていらっしゃる
>> のではないかと想像します。
>>
>> これは、要するに"MasterとSlaveのデータの差分が小さければ、
>> 全データコピーは省略できる"ので、それを判断するポイントを
>> 列挙しているものです。
>> #DB規模が大きいとデータコピーに時間がかかるのでなるべく
>>  省略したいですよね・・
>>
>> ですが、残念ながらPostgreSQLに単純に差分を比較するコマンド
>> のようなものが用意されていないので、(4)のような複雑な判断が
>> 必要になっています。
>>
>> 全データコピーにかかる時間が問題にならないのであれば、
>> 何も考えず、全データコピーをするのが手っ取り早いです。
>>
>>
>> あと、フェイルバック(故障ホストを"Master"とする)については
>> 一発で行う方法はないので、一旦Slaveとして組み込んだ後、
>> マニュアルの「付録C 計画的な系切り替え」の手順でMasterと
>> Slaveを入れ替えてください。
>>
>>
>> 最後に、宣伝みたいになってしまいますが、来る10/3(土)に
>> 福岡で開催されるオープンソースカンファレンスでPG-REXの
>> 運用をテーマにした講演を行います。
>> 会場に来るのが難しい場合も、資料は事後、以下サイトで
>> 公開しますので、参考になれば幸いです。
>>
>> https://www.ospn.jp/osc2015-fukuoka/modules/eguide/event.php?eid=9
>>
>>
>> 以上です。
>> よろしくお願いいたします。
>>
>> ----- 元のメッセージ -----
>> From: "海藤 廣一" <kaido****@jp*****>
>> 宛先: kazuh****@goo*****
>> Cc: linux****@lists*****
>> 送信済み: 2015年9月7日, 月曜日 午後 4:05:04
>> 件名: Re: [Linux-ha-jp] pacemakerからpostgresqlを起動出来ない件
>>
>> ひがし様
>> 関係各位様
>>
>> 海藤です。
>> いつもお世話になっております。
>>
>> > なお、ログから、Master側とSlave側のPacemakerを同時に
>> > 立ち上げているとお見受けしましたが、この構成の場合、
>> > まずMasterのみを立ち上げ、PostgreSQLがMasterとして起動した
>> > ことを確認し、最新データをSlaveにコピーしてからSlave側を
>> > 立ち上げることをお勧めします。
>> > pgsql RAは、同時に起動した場合、どちらをMasterにするかの
>> > 判断をできない(どちらのDBデータを信頼すべきかはユーザのみが
>> > 判断できることでRAにはわからない)ためです。
>>
>> ご指導有難うございます。
>> Master⇒Slaveの時間差起動は盲点でした。
>> Pacemaker起動時はMaster/Slaveの両nodeが動いていないといけない
>> と思い込んでいました。
>>
>> おかげさまで、両nodeでpostgresqlを起動させてレプリケーション
>> 動作することが確認できました。
>>
>> Masterがダウンしてフェイルオーバーした後の処理は手間がかかり
>> そうですが、とりあえず自力で頑張ってみます。
>> 一人では手に負えないようならまた別途投稿させていただきます。
>>
>> これまでご協力いただいた皆様、有難うございました。
>>
>>
>> On Mon, 7 Sep 2015 12:09:39 +0900 (JST)
>> kazuh****@goo***** wrote:
>>
>> > 海藤様
>> >
>> > ひがしと申します。
>> > お世話になっております。
>> >
>> > ログを拝見したところ、DBS-PRI側でPostgreSQLがPacemakerに
>> > よって起動された際に、ロックファイルである
>> > /var/lib/pgsql/tmp/PGSQL.lock
>> > が存在していたために起動に失敗したようです。
>> >
>> > Sep  3 10:44:40 DBS-PRI lrmd: [5595]: info: rsc:pgsql:0 start[9] (pid 5921)
>> >  →PacemakerによりPostgreSQLの起動が試みられたが・・
>> >
>> > Sep  3 10:44:40 DBS-PRI pgsql(pgsql:0)[5921]: ERROR: My data may be inconsistent. You have to remove /var/lib/pgsql/tmp/PGSQL.lock file to force start.
>> >  →ロックファイルが存在のため起動失敗
>> >
>> > このファイルは、当該ノードのPostgreSQLが一度Pacemakerに
>> > より起動された後、予期せぬエラー等で正常に停止できなかった
>> > 場合に残存し、PostgreSQLのデータが古いかもしれないことを
>> > ユーザに気づいてもらうためのものです。
>> > pgsql RAが作成、削除(正常停止時に)をしています。
>> >
>> > このノードのデータに問題が無い場合、両系のPacemakerを停止し、
>> > このファイルを手動で削除し、Pacemakerを起動すれば、PostgreSQLは
>> > 起動すると思います。
>> >
>> > なお、ログから、Master側とSlave側のPacemakerを同時に
>> > 立ち上げているとお見受けしましたが、この構成の場合、
>> > まずMasterのみを立ち上げ、PostgreSQLがMasterとして起動した
>> > ことを確認し、最新データをSlaveにコピーしてからSlave側を
>> > 立ち上げることをお勧めします。
>> > pgsql RAは、同時に起動した場合、どちらをMasterにするかの
>> > 判断をできない(どちらのDBデータを信頼すべきかはユーザのみが
>> > 判断できることでRAにはわからない)ためです。
>> >
>> >
>> >
>> > なお、海藤様が構築しているようなPostgreSQLのストリ-ミング
>> > レプリケーションとPacemakerのMaster/Slave機能を組み合わせた
>> > 構成を、Linux-HA Japanでは「PG-REX」(ぴーじーれっくす)と
>> > 呼び、独立したコミュニティも立ち上げています。
>> >
>> > https://osdn.jp/projects/pg-rex/
>> >
>> > そこに、PG-REXの構築?運用の日本語ドキュメントを用意しています
>> > ので、よければご参考ください。
>> > #ただし、以下最新版はCentOS6+Pacemaker1.1.12+PostgreSQL9.4を前提と
>> >  しています。
>> >
>> > https://osdn.jp/projects/pg-rex/releases/63003
>> >  PG-REX9.4利用マニュアル_第1.0版(公開用利用者マニュアル).docx
>> >
>> > #「運用補助ツール」による手順が記載されていますが、Debianでは
>> >  動作しないと思います。
>> >  ツールを用いない手順がP161の「付録A」に掲載されているので
>> >  そちらを参照してください。
>> >
>> >
>> > 以上です。
>> > よろしくお願いいたします。
>> >
>> > ----- 元のメッセージ -----
>> > From: "海藤 廣一" <kaido****@jp*****>
>> > 宛先: linux****@lists*****
>> > 送信済み: 2015年9月3日, 木曜日 午前 11:04:24
>> > 件名: Re: [Linux-ha-jp] pacemakerからpostgresqlを起動出来ない件
>> >
>> > 松島様
>> >
>> > 海藤です。
>> > いつもお世話になっております。
>> >
>> > corosyncをリスタートさせたらpostgresqlが片側のみの起動になってしまい
>> > 原因の特定すら出来ないでおります。
>> >
>> > postgresql.confのログ設定部分を変更した結果、起動した側はログが出力
>> > されるようになりました。
>> > しかし、起動しなかった側からについてはsyslogのみとなってしまいます。
>> >
>> > resource-agents以外にバージョンが古いと不具合がでるものは
>> > ないのでしょうか?
>> >
>> > libpils2_1.0.12とlibplumbgpl2_1.0.12を依存関係無視して強制インストール
>> > したところ、corosyncのプロセスがいつの間にかダウンしていることがあり
>> > やむを得ず戻しました。
>> >
>> >
>> > > 検索しても何も出てきませんでしょうか...
>> > > # find -name 'postgresql-*.log'
>> > >
>> > > 起動でこけているような場合には、pg_startup.logもしくはpgstartup.logのような名前のログファイルに出ているかもしれません。
>> >
>> > こららのログファイルは設定変更した後も存在していませんでした。
>> >
>> >
>> > アドバイス宜しくお願いします。
>> >
>> >
>> > On Tue, 1 Sep 2015 17:17:55 +0900
>> > Takehiro Matsushima <takeh****@gmail*****> wrote:
>> >
>> > > 海藤 さん
>> > >
>> > > 松島です。
>> > >
>> > > > PostgresqlのMaster/Slave間で通信できないことが問題という事
>> > > > ですよね?
>> > > ログを拝見していないので何とも言えませんが、そうではないかと私は考えています。
>> > >
>> > >
>> > > > ここが残念なのですが、/etc/init.d/postgresql startで起動するとログが
>> > > > 残るのですが、corosyncから起動すると/var/log/postgresqlにログが全く
>> > > > 残っていません。
>> > >
>> > > 検索しても何も出てきませんでしょうか...
>> > > # find -name 'postgresql-*.log'
>> > >
>> > > 起動でこけているような場合には、pg_startup.logもしくはpgstartup.logのような名前のログファイルに出ているかもしれません。
>> > >
>> > > 以上ご確認ください。
>> > >
>> > > ----
>> > > Takehiro Matsushima
>> > > _______________________________________________
>> > > Linux-ha-japan mailing list
>> > > Linux****@lists*****
>> > > http://lists.osdn.me/mailman/listinfo/linux-ha-japan
>> >
>> >
>> >
>> > ===================================================
>> >  パナソニック システムネットワークス株式会社
>> >  インフラシステム事業部
>> >  システムプロダクト部  プロダクト技術課
>> >  海藤 廣一
>> >  E-mail:kaido****@jp*****
>> >  (工技係代表) 外線:050-3686-1872
>> >  (工技係代表) 内線:7-375-8639
>> > ===================================================
>> >
>> > _______________________________________________
>> > Linux-ha-japan mailing list
>> > Linux****@lists*****
>> > http://lists.osdn.me/mailman/listinfo/linux-ha-japan
>>
>>
>>
>> ===================================================
>>  パナソニック システムネットワークス株式会社
>>  インフラシステム事業部
>>  システムプロダクト部  プロダクト技術課
>>  海藤 廣一
>>  E-mail:kaido****@jp*****
>>  (工技係代表) 外線:050-3686-1872
>>  (工技係代表) 内線:7-375-8639
>> ===================================================
>>
>
>
>
> ===================================================
>  パナソニック システムネットワークス株式会社
>  インフラシステム事業部
>  システムプロダクト部  プロダクト技術課
>  海藤 廣一
>  E-mail:kaido****@jp*****
>  (工技係代表) 外線:050-3686-1872
>  (工技係代表) 内線:7-375-8639
> ===================================================
>
>
> _______________________________________________
> Linux-ha-japan mailing list
> Linux****@lists*****
> http://lists.osdn.me/mailman/listinfo/linux-ha-japan
>



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