Login | Register For Free | Help
Search for: (Advanced)

Mailing List Archive: Linux-HA: Japanese

PG 9.1 Replication対応RA 一部変更

 

 

Linux-HA japanese RSS feed   Index | Next | Previous | View Threaded


matsuo.tak at gmail

Oct 27, 2011, 6:08 PM

Post #1 of 4 (343 views)
Permalink
PG 9.1 Replication対応RA 一部変更

盛さん
RAに興味持って頂いている皆様

松尾です。

PostgreSQLレプリケーション対応RAの仕様を少し変更しましたので、
お知らせします。一端これで大きな変更は止めたいと思います。

https://github.com/t-matsuo/resource-agents/blob/pgsql91/heartbeat/pgsql


主な変更点は以下の3点です。

* 一部パラメータを削除し、パラメータのデフォルト値(ファイル名)を変更しました。

パラメータが多すぎるので、tmpdir 配下に作るファイルのパスを個別に
変更するパラメータを削除しました。ファイル名は以下のように変更になり、固定なります。

- ${tmpdir}/PGSQL.5432.rep_mode.conf -> ${tmpdir}/rep_mode.conf
- ${tmpdir}/PGSQL.5432.force_start_file -> ${tmpdir}/PGSQL.lock
- ${tmpdir}PGSQL.5432.xlog_note -> ${tmpdir}/xlog_note

* master-baseline という属性値が表示されるようになりました。

下記のstart時の整合性をチェックするため、Master で表示される属性値です。
内容はpromote直前のTImeline ID とxlogの位置です。
表示形式は ID:CHCKPOINT位置(16進数16桁)
(例) 10:000000200000FFFF


* start (Slave起動) 時に、データの整合性を確認する処理を入れました。

起動時に、自分のLatest checkpoint location および Timeline IDを
上記のmaster-baselineと比較して判断します。
TImeline ID がmaster-baselineのIDより大きければリストアしたデータとみなし、
start成功します。よって盛さんが懸念されていた、リストア後のフラグ削除のような
処理を避けることができます。

※ 最新のPostgreSQL 9.1.1 のバグにより、Master切替時にこの整合性チェックに
ひっかかってmonitor NGが発生します。PG関係者には報告済みで、
9.1.2 では修正されるのではないかという噂は聞きましたが詳細はわかりません・・・


以上です。


2011年10月17日19:22 Takatoshi MATSUO <matsuo.tak [at] gmail>:
> 盛さん
> 松尾です。
>
> 返信遅くなってすみません。
>
>
> 2011年10月12日14:19 Yoshiharu Mori <y-mori [at] sraoss>:
>> 松尾さん
>>
>> 盛です。
>>
>>> しかし、個人的な感覚ではやはり rsync コマンドなのでデータ全体をバックアップする
>>> 人も結構いらっしゃる気がしますので(私もやってます・・)、やはり pg_xlog が空かどうかで判断するのは
>>> あまり嬉しくない実装かなと思います。
>>
>> たしかに、xlogでの確認はちょっとどうかなーという感じがしますね。
>> force_start_fileを逆に利用するのはいかがでしょうか?
>>
>> -初回はforce_start_fileが存在しないので必ず立ち上げを試みる
>> -起動後にforce_start_fileを作成しforce_start_fileを残しておく
>> -force_start_fileがある限り、pg_controldataの値が正常でないと起動しない
>> -force_start_fileを削除すると常に立ち上げを試みる
>>
>> ファイル名と逆の関係で(説明も)紛らわしいですが。。
>
> ファイル名は変えるとして、上記案の方が確かによさそうですね。
> 上記のように起動時にフラグを作るなら、正常シャットダウン時(fast)に、削除してあげることで、
> データベースの状態を見る必要もなくなりそうです。
>
> 具体的には、
>
> 正常時
>  起動完了後フラグ作成
>  fast shutdown成功時にフラグ削除
>  次回起動時フラグがないので起動可能
>
> 異常時
>  起動完了後フラグ作成
>  異常shutdownでフラグ残留
>  次回起動時にフラグがあるので起動NG
>   → データリストア後フラグを削除することで機能可能
>
> これで再度実装検討してみたいと思います。
>
>
>
>  # この微妙なデータの不整合問題は両系停止時にも潜んでそうです
>  # 詳細わかりましたまた連絡します       PG恐い・・・
>
> 以上です。
>
_______________________________________________
Linux-ha-japan mailing list
Linux-ha-japan [at] lists
http://lists.sourceforge.jp/mailman/listinfo/linux-ha-japan


y-mori at sraoss

Oct 28, 2011, 6:03 AM

Post #2 of 4 (330 views)
Permalink
Re: PG 9.1 Replication対応RA 一部変更 [In reply to]

松尾さま
RAに興味持って頂いている皆様

盛です。

> PostgreSQLレプリケーション対応RAの仕様を少し変更しましたので、
> お知らせします。一端これで大きな変更は止めたいと思います。

了解です。

> 主な変更点は以下の3点です。

確認します。
#確認が鈍くなっていますー 申し訳ありません。

> ※ 最新のPostgreSQL 9.1.1 のバグにより、Master切替時にこの整合性チェックに
> ひっかかってmonitor NGが発生します。PG関係者には報告済みで、
> 9.1.2 では修正されるのではないかという噂は聞きましたが詳細はわかりません・・・

(バグと認識されているようなので)9.1.2で修正されると期待していますが・・

また、情報共有のためとなりますが、私の環境では、手動でマスタ切り替えを行うと、
新スタンバイ側で以下のようなPANICメッセージが出力されます。

LOG: streaming replication successfully connected to primary
LOG: redo starts at 0/7000078
PANIC: unexpected timeline ID 3 (should be 2) in checkpoint record
CONTEXT: xlog redo checkpoint: redo 0/A001388;tli 3; xid 0/157121; oid 24595; multi 1; offset 0; oldest xid 1669 in DB 1;oldest running xid 157013; online
LOG: startup process (PID 24694) was terminated by signal 6: Aborted
LOG: terminating any other active server processes

以上です。

> 盛さん
> RAに興味持って頂いている皆様
>
> 松尾です。
>
> PostgreSQLレプリケーション対応RAの仕様を少し変更しましたので、
> お知らせします。一端これで大きな変更は止めたいと思います。
>
> https://github.com/t-matsuo/resource-agents/blob/pgsql91/heartbeat/pgsql
>
>
> 主な変更点は以下の3点です。
>
> * 一部パラメータを削除し、パラメータのデフォルト値(ファイル名)を変更しました。
>
> パラメータが多すぎるので、tmpdir 配下に作るファイルのパスを個別に
> 変更するパラメータを削除しました。ファイル名は以下のように変更になり、固定なります。
>
> - ${tmpdir}/PGSQL.5432.rep_mode.conf -> ${tmpdir}/rep_mode.conf
> - ${tmpdir}/PGSQL.5432.force_start_file -> ${tmpdir}/PGSQL.lock
> - ${tmpdir}PGSQL.5432.xlog_note -> ${tmpdir}/xlog_note
>
> * master-baseline という属性値が表示されるようになりました。
>
> 下記のstart時の整合性をチェックするため、Master で表示される属性値です。
> 内容はpromote直前のTImeline ID とxlogの位置です。
> 表示形式は ID:CHCKPOINT位置(16進数16桁)
> (例) 10:000000200000FFFF
>
>
> * start (Slave起動) 時に、データの整合性を確認する処理を入れました。
>
> 起動時に、自分のLatest checkpoint location および Timeline IDを
> 上記のmaster-baselineと比較して判断します。
> TImeline ID がmaster-baselineのIDより大きければリストアしたデータとみなし、
> start成功します。よって盛さんが懸念されていた、リストア後のフラグ削除のような
> 処理を避けることができます。
>
> ※ 最新のPostgreSQL 9.1.1 のバグにより、Master切替時にこの整合性チェックに
> ひっかかってmonitor NGが発生します。PG関係者には報告済みで、
> 9.1.2 では修正されるのではないかという噂は聞きましたが詳細はわかりません・・・
>
>
> 以上です。
>
>
> 2011年10月17日19:22 Takatoshi MATSUO <matsuo.tak [at] gmail>:
> > 盛さん
> > 松尾です。
> >
> > 返信遅くなってすみません。
> >
> >
> > 2011年10月12日14:19 Yoshiharu Mori <y-mori [at] sraoss>:
> >> 松尾さん
> >>
> >> 盛です。
> >>
> >>> しかし、個人的な感覚ではやはり rsync コマンドなのでデータ全体をバックアップする
> >>> 人も結構いらっしゃる気がしますので(私もやってます・・)、やはり pg_xlog が空かどうかで判断するのは
> >>> あまり嬉しくない実装かなと思います。
> >>
> >> たしかに、xlogでの確認はちょっとどうかなーという感じがしますね。
> >> force_start_fileを逆に利用するのはいかがでしょうか?
> >>
> >> -初回はforce_start_fileが存在しないので必ず立ち上げを試みる
> >> -起動後にforce_start_fileを作成しforce_start_fileを残しておく
> >> -force_start_fileがある限り、pg_controldataの値が正常でないと起動しない
> >> -force_start_fileを削除すると常に立ち上げを試みる
> >>
> >> ファイル名と逆の関係で(説明も)紛らわしいですが。。
> >
> > ファイル名は変えるとして、上記案の方が確かによさそうですね。
> > 上記のように起動時にフラグを作るなら、正常シャットダウン時(fast)に、削除してあげることで、
> > データベースの状態を見る必要もなくなりそうです。
> >
> > 具体的には、
> >
> > 正常時
> >  起動完了後フラグ作成
> >  fast shutdown成功時にフラグ削除
> >  次回起動時フラグがないので起動可能
> >
> > 異常時
> >  起動完了後フラグ作成
> >  異常shutdownでフラグ残留
> >  次回起動時にフラグがあるので起動NG
> >   → データリストア後フラグを削除することで機能可能
> >
> > これで再度実装検討してみたいと思います。
> >
> >
> >
> >  # この微妙なデータの不整合問題は両系停止時にも潜んでそうです
> >  # 詳細わかりましたまた連絡します       PG恐い・・・
> >
> > 以上です。
> >
> _______________________________________________
> Linux-ha-japan mailing list
> Linux-ha-japan [at] lists
> http://lists.sourceforge.jp/mailman/listinfo/linux-ha-japan


--
Yoshiharu Mori <y-mori [at] sraoss>
SRA OSS, Inc Japan http://www.sraoss.co.jp
TEL: 03-5979-2701
FAX: 03-5979-2702

_______________________________________________
Linux-ha-japan mailing list
Linux-ha-japan [at] lists
http://lists.sourceforge.jp/mailman/listinfo/linux-ha-japan


y-mori at sraoss

Nov 16, 2011, 1:53 AM

Post #3 of 4 (270 views)
Permalink
Re: PG 9.1 Replication対応RA 一部変更 [In reply to]

松尾さん

盛です。

新しいRAの動作確認を行いました。
2台でも3台でも問題なく動いています。

同期レプリケーション3台構成を試しましたが、一点だけ質問です。

スレーブ2台が同じxlogの値を保持している場合、
SYNCとPOTENTIALはどういった基準(どちらがSYNCになる?)
で決定されますか?
#早いもの勝ちですか?

また、一点だけドキュメントのミスがありました。

CRMサンプルにおけるmaster_ip設定は、recovery.conf内の
primary_conninfoに記載されるPrimaryサーバのIPアドレスなので、
vip-repに指定したIPアドレス192.168.3.201を設定するのが
正しいですよね?

以上です。

> 盛さん
> RAに興味持って頂いている皆様
>
> 松尾です。
>
> PostgreSQLレプリケーション対応RAの仕様を少し変更しましたので、
> お知らせします。一端これで大きな変更は止めたいと思います。
>
> https://github.com/t-matsuo/resource-agents/blob/pgsql91/heartbeat/pgsql
>
>
> 主な変更点は以下の3点です。
>
> * 一部パラメータを削除し、パラメータのデフォルト値(ファイル名)を変更しました。
>
> パラメータが多すぎるので、tmpdir 配下に作るファイルのパスを個別に
> 変更するパラメータを削除しました。ファイル名は以下のように変更になり、固定なります。
>
> - ${tmpdir}/PGSQL.5432.rep_mode.conf -> ${tmpdir}/rep_mode.conf
> - ${tmpdir}/PGSQL.5432.force_start_file -> ${tmpdir}/PGSQL.lock
> - ${tmpdir}PGSQL.5432.xlog_note -> ${tmpdir}/xlog_note
>
> * master-baseline という属性値が表示されるようになりました。
>
> 下記のstart時の整合性をチェックするため、Master で表示される属性値です。
> 内容はpromote直前のTImeline ID とxlogの位置です。
> 表示形式は ID:CHCKPOINT位置(16進数16桁)
> (例) 10:000000200000FFFF
>
>
> * start (Slave起動) 時に、データの整合性を確認する処理を入れました。
>
> 起動時に、自分のLatest checkpoint location および Timeline IDを
> 上記のmaster-baselineと比較して判断します。
> TImeline ID がmaster-baselineのIDより大きければリストアしたデータとみなし、
> start成功します。よって盛さんが懸念されていた、リストア後のフラグ削除のような
> 処理を避けることができます。
>
> ※ 最新のPostgreSQL 9.1.1 のバグにより、Master切替時にこの整合性チェックに
> ひっかかってmonitor NGが発生します。PG関係者には報告済みで、
> 9.1.2 では修正されるのではないかという噂は聞きましたが詳細はわかりません・・・
>
>
> 以上です。
>
>
> 2011年10月17日19:22 Takatoshi MATSUO <matsuo.tak [at] gmail>:
> > 盛さん
> > 松尾です。
> >
> > 返信遅くなってすみません。
> >
> >
> > 2011年10月12日14:19 Yoshiharu Mori <y-mori [at] sraoss>:
> >> 松尾さん
> >>
> >> 盛です。
> >>
> >>> しかし、個人的な感覚ではやはり rsync コマンドなのでデータ全体をバックアップする
> >>> 人も結構いらっしゃる気がしますので(私もやってます・・)、やはり pg_xlog が空かどうかで判断するのは
> >>> あまり嬉しくない実装かなと思います。
> >>
> >> たしかに、xlogでの確認はちょっとどうかなーという感じがしますね。
> >> force_start_fileを逆に利用するのはいかがでしょうか?
> >>
> >> -初回はforce_start_fileが存在しないので必ず立ち上げを試みる
> >> -起動後にforce_start_fileを作成しforce_start_fileを残しておく
> >> -force_start_fileがある限り、pg_controldataの値が正常でないと起動しない
> >> -force_start_fileを削除すると常に立ち上げを試みる
> >>
> >> ファイル名と逆の関係で(説明も)紛らわしいですが。。
> >
> > ファイル名は変えるとして、上記案の方が確かによさそうですね。
> > 上記のように起動時にフラグを作るなら、正常シャットダウン時(fast)に、削除してあげることで、
> > データベースの状態を見る必要もなくなりそうです。
> >
> > 具体的には、
> >
> > 正常時
> >  起動完了後フラグ作成
> >  fast shutdown成功時にフラグ削除
> >  次回起動時フラグがないので起動可能
> >
> > 異常時
> >  起動完了後フラグ作成
> >  異常shutdownでフラグ残留
> >  次回起動時にフラグがあるので起動NG
> >   → データリストア後フラグを削除することで機能可能
> >
> > これで再度実装検討してみたいと思います。
> >
> >
> >
> >  # この微妙なデータの不整合問題は両系停止時にも潜んでそうです
> >  # 詳細わかりましたまた連絡します       PG恐い・・・
> >
> > 以上です。
> >
> _______________________________________________
> Linux-ha-japan mailing list
> Linux-ha-japan [at] lists
> http://lists.sourceforge.jp/mailman/listinfo/linux-ha-japan


--
Yoshiharu Mori <y-mori [at] sraoss>
SRA OSS, Inc Japan http://www.sraoss.co.jp
TEL: 03-5979-2701
FAX: 03-5979-2702

_______________________________________________
Linux-ha-japan mailing list
Linux-ha-japan [at] lists
http://lists.sourceforge.jp/mailman/listinfo/linux-ha-japan


matsuo.tak at gmail

Nov 16, 2011, 11:09 PM

Post #4 of 4 (268 views)
Permalink
Re: PG 9.1 Replication対応RA 一部変更 [In reply to]

$B@9$5$s(B
$B>>Hx$G$9!#(B

2011$BG/(B11$B7n(B16$BF|(B18:53 Yoshiharu Mori <y-mori [at] sraoss>:
> $B>>Hx$5$s(B
>
> $B@9$G$9!#(B
>
> $B?7$7$$(BRA$B$NF0:n3NG'$r9T$$$^$7$?!#(B
> $B#2Bf$G$b(B3$BBf$G$bLdBj$J$/F0$$$F$$$^$9!#(B
>
> $BF14|%l%W%j%1!<%7%g%s(B3$BBf9=@.$r;n$7$^$7$?$,!"0lE@$@$1<ALd$G$9!#(B
>
> $B%9%l!<%V(B2$BBf$,F1$8(Bxlog$B$NCM$rJ];}$7$F$$$k>l9g!"(B
> SYNC$B$H(BPOTENTIAL$B$O$I$&$$$C$?4p=`(B($B$I$A$i$,(BSYNC$B$K$J$k!)!K(B
> $B$G7hDj$5$l$^$9$+!)(B
> #$BAa$$$b$N>!$A$G$9$+!)(B

$B$O$$!#(B
RA$B<BAu$H$7$F$O!"@h$K(BASYNC$B$K$J$C$?%N!<%I$r(Bpostgresql.conf $B$N(B synchronous_standby_names $B$K(B
$BDI2C$7$F$$$k$@$1$J$N$G!"Aa$$<T>!$A$G$9!#(B

> $B$^$?!"0lE@$@$1%I%-%e%a%s%H$N%_%9$,$"$j$^$7$?!#(B
>
> CRM$B%5%s%W%k$K$*$1$k(Bmaster_ip$B [at] _D$O!"(Brecovery.conf$BFb$N(B
> primary_conninfo$B$K5-:\$5$l$k(BPrimary$B%5!<%P$N(BIP$B%"%I%l%9$J$N$G!"(B
> vip-rep$B$K;XDj$7$?(BIP$B%"%I%l%9(B192.168.3.201$B$r [at] _D$9$k$N$,(B
> $B@5$7$$$G$9$h$M!)(B

$B$"$j$,$H$&$4$6$$$^$9!#(B
$B!&!&!&(B $B:rF|!"B>$N?M$K$b<ALd$5$l$^$7$?!#$3$3$N5-=R$,860x$@$C$?$N$G$9$M!#(B
_______________________________________________
Linux-ha-japan mailing list
Linux-ha-japan [at] lists
http://lists.sourceforge.jp/mailman/listinfo/linux-ha-japan

Linux-HA japanese RSS feed   Index | Next | Previous | View Threaded
 
 


Interested in having your list archived? Contact Gossamer Threads
 
  Web Applications & Managed Hosting Powered by Gossamer Threads Inc.