環境情報
- 仮想環境:VirtualBox 5.2.18
- OS:CentOS 7.5
- pgpool-II 3.7.5-1pgdg.rhel7 (yum インストール)
- PostgreSQL 10.5-1PGDG.rhel7 (yum インストール)
はじめに
pgpool-IIに興味があったものの、これまで職場で触る機会が無かったので、使い方を考えてみることにしました。
構築に当たって必要になる知識は上記環境情報記載のソフトウェアに加えてbashスクリプトとなります。
各ソフトウェアについてはそれぞれのマニュアルを見つつ構築を進めて行くことになります。
また、bashスクリプトについてはpgpool-II向けにフェイルオーバー、フェイルバックの処理を記載することになるのですが、こちらはマニュアルだけでは不十分で、どういう動きをさせたいのかを考えながら処理を書く必要があるようです。
pgpool-IIを使用するにあたってこの辺りは自由度が高いところのようなので、正直なところこの記事で正しい使い方が出来ているのか否か分かりません。とりあえず動くことは確認できましたが、職場で使うことがあればそのときは本家SRAとサポート契約結びたいところです。
このページでは全般的な構成イメージを説明します。
構築手順については当ページにリンクを記します。
構築手順
PostgreSQL環境構築
pgpool-II環境構築
【前提】CentOS検証環境初期設定
当検証を実施するに当たって実施したOSの基本的設定内容です。
pgpool-IIをインストールするために必須というわけではないですが、参考までに記載しておきます。
【蛇足】レプリケーションでバックアップ
検証構成
pgpool-IIノード:3台
master/slaveモードを使用します。
クォーラム(定足数)の挙動を確認するため、複数かつ奇数で最小の3台とします。
PostgreSQLノード:4台
レプリケーション構成でmaster1台、残り3台をslaveとします。
master故障時の代替master用に1台を想定しています。また、残り2台のslaveは代替masterが昇格した際に上位masterを代替masterに切り替えます⇒「上位master切替処理」。
slaveの「上位master切替処理」は複数台に対応させたので、その動作を確認するため、masterは1台ではなく代替含めた2台にしました。
監視パケットはそれぞれ以下のように送出されます。
監視経路 | 監視方法 |
---|---|
pgpool-IIからGW (Virtual BoxのHost) | ping |
pgpool-II間 | watchdog |
pgpool-IIからPostgreSQL | psql |
pgpool-IIフェイルオーバー/フェイルバックイメージ
Google Slidesで表示します。
フェイルオーバー
フェイルバック
PostgreSQLフェイルオーバー/フェイルバックイメージ
Google Slidesで表示します。