[pgpool-general-jp: 1513] Re: pgpoolマスタとpostgresqlマスタ間のNW断時の挙動について

Tatsuo Ishii ishii @ sraoss.co.jp
2018年 3月 30日 (金) 06:10:24 JST


平光様

お世話になっています。SRA OSS石井です。

>> 補足ですが、 https://www.sraoss.co.jp/event_seminar/material.php にあ
>> る「 信頼性を向上させ、PostgreSQL 10 に対応した Pgpool-II 3.7 のご紹介」
>> というスライドの、15ページ以降にwatchdogのquorumの解説があります。
> ありがとうございます。本スライドは拝見させて頂いております。

ありがとうございます。

>>>>>> バグであるのであれば、3.7.2-2ではpgpoolマスタ~postgresqlマスタ間のNW
>>>>>> をダウンさせた際にどのような挙動をするのが仕様通りなのでしょうか。
>>>>>> (pgpoolマスタが切り替わる、またはpostgresqlがフェイルオーバする.etc)
>>>>> というわけで、期待される挙動は(read-only transaction...)です。
>>>> ご回答ありがとうございます。
>>>> 本障害発生時に3.7.2-2で期待される挙動は「read-only」ということで承知い
>>>> たいしました。
>>>>
>>>> 本件は今後改修のご予定はありますでしょうか。それとも今回当方で試した環
>>>> 境の構成、設定では対応できない障害パターンということでしょうか。
>>>
>>> 「改修」とは、どのような変更を期待されているのでしょうか?
>>>
>>> つまり、3つのPgpool-IIのうちひとつだけがバックエンドの障害を検知した場
>>> 合、どう振る舞うべきとお考えですか?
> 分かり難くて申し訳ありません。整理させていただきますと
> 
> 「3つのPgpool-IIのうちひとつだけがバックエンドの障害を検知した場合」と
> いうよりも、「正常にバックエンドのPostgreSQLへクエリを送信することがで
> きなくなったpgpoolノードはマスタを辞退して欲しい」というのが当方の認識
> です。
> 
> 
> 紹介して頂いたスライド 16pでは以下のように記述があり、プロセス異常など
> pgpool自身の障害発生時にはVIP(マスタ)を切り替えるものと理解しておりま
> す。
> ・ Pgpool-II自身が単一障害点にならないように、バックアップのPgpool-II
> を配置可能にする
> ・ Pgpool-IIに障害発生時には、別のPgpool-IIがVIPを引き継ぐ
> 
> ただ、今回のNW障害パターンではVIPの切り替えを行っていないようなので、
> そこが気になりました。(現状、プロセス異常などPgpool-II自身の障害以外
> は対象外ということでしょうか)
> 
> 今回の障害パターンでは正常にPostgreSQLマスタにアクセスできない状態の
> pgpoolマスタを切り替えることができればread-onlyを回避できますが、現状
> では切り替えを実施しない、という点について「改修」の予定有無について質
> 問させていただきました。

ご提案の手法

> 「3つのPgpool-IIのうちひとつだけがバックエンドの障害を検知した場合」と
> いうよりも、「正常にバックエンドのPostgreSQLへクエリを送信することがで
> きなくなったpgpoolノードはマスタを辞退して欲しい」というのが当方の認識
> です。

について、現在Pgpool-II開発者の中で議論しています。

https://www.pgpool.net/pipermail/pgpool-hackers/2018-March/002756.html

watchdogの主要開発者であるUsamaさんは、ご提案の方向で修正することに前
向きのようです。

>>>> また、繰り返しの質問で申し訳ありませんが、最初のメールで質問させて頂い
>>>> た以下の質問もご確認をお願いできますでしょうか。
>>>>
>>>>>>>> 質問:
>>>>>>>> 2. 以下のようにクォーラム機能をoffに設定した場合は、クォーラム機能が
>>>>>>>> 実装される以前の3.6系と同じ挙動になるという理解で正しいでしょうか。
>>>>>>>>      failover_when_quorum_exists = off
>>>>>>>>      failover_require_consensus = off
>>>>>>>>      allow_multiple_failover_requests_from_node = off
>>>
>>> 3.6系と同じ、というのはどのような振る舞いを期待されているのでしょうか?
> クォーラム投票を実施せずにフェイルオーバを実行する
> つまり、複数台のpgpoolの内 1台でもマスタバックエンドの異常を検知すれば
> pgpoolマスタ、スタンバイのいずれかがフェイルオーバを実行する。
> という振る舞いになるのかと認識しております。

はい、ご認識のとおりです。
--
Tatsuo Ishii
SRA OSS, Inc. Japan
English: http://www.sraoss.co.jp/index_en.php
Japanese:http://www.sraoss.co.jp


pgpool-general-jp メーリングリストの案内