中山テック 代表の中山です。
さて、現在代表のPCに入っているVMWareには4台の仮想マシンがセットされています(!?)。
それも今回の最大目的である「PostgreSQL × pgpoolⅡ」でロードバランス&フェイルオーバーを導入したいためです。
では早速導入していきましょう!
※【追記】上記の図はServer3、4もVIPの中におります・・・大変失礼しました
PostgreSQLを2台構成にし、常にデータ同期を取りつつ片系が落ちても運用可能な状態にします。
そのためにpgpool-Ⅱが必須です。
また、それぞれを監視することで「誰が落ちているか」を瞬時に判断し、フェイルオーバーを実施してくれます。
・pgpool⇒PostgreSQL全体の監視
・Watchdog⇒pgpool全体の監視
・ハートビート⇒Watchdogやpgpoolから出される死活監視(UDP通信)。一定間隔で通信が行われる。仮に主系からの通信が途絶えたら副系が主系に切り替わる
pgpoolインストール
必要パッケージ
まずはPostgreSQLとpgpool-Ⅱ、LLVM関連パッケージを追加しましょう(PostgreSQLの追加手順と同様)。
sudo yum install https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm
sudo yum install https://www.pgpool.net/yum/rpms/4.2/redhat/rhel-8-x86_64/pgpool-II-release-4.2-1.noarch.rpm
sudo yum -y install epel-release centos-release-scl
続いてインストールしてきたいのですが、対象パッケージは下記です(yum search postgresqlで検索)。
・postgresql15.x86_64
・pgpool-II-pg15-extensions ※PostgreSQLが入っているサーバにも必須
・pgpool-II-pg15
・pgpool-II-pg15-debuginfo
・pgpool-II-pg15-devel
あれっ?postgresql15入れるの?とお思いかもしれませんが、あくまでもクライアントです。
psqlコマンドは使うのでクライアントだけインストールします。
パッケージ詳細はpgpoo-Ⅱ文書のページをご覧ください。
インストール
片っ端からインストールしていきます。
yum -y install postgresql15.x86_64
yum -y install pgpool-II-pg15-extensions
yum -y install pgpool-II-pg15
yum -y install pgpool-II-pg15-debuginfo
yum -y install pgpool-II-pg15-devel
途中で「※公開鍵がインストールされていません」と出ますがしっかりインストールされていました。