Pgpool-II 4.5.4 文書 | |||
---|---|---|---|
前のページ | 上に戻る | 第 2章Pgpool-IIのインストール | 次のページ |
Pgpool-IIはPostgreSQLを管理するツールなので、まずはPostgreSQLの利用形態を決めなければなりません。 加えて、Pgpool-IIではそれ自体の可用性を高めるために、複数のPgpool-IIを導入することができます。 何本のPgpool-IIを導入するのが適切なのかを事前に計画しなければなりません。 この節では最初にPostgreSQLの動作モードを議論し、次にPgpool-IIの導入形態を議論します。
PostgreSQLの導入台数は1以上が可能ですが、1台ではそのPostgreSQLがダウンした時にデータベースシステム全体が使えなくなるため、通常2台以上のPostgreSQLを導入します。 2台以上のPostgreSQLを用いる場合、何らかの方法でそれらのデータベース内容を同じになるようにしなければなりません。 データベースの同期方法の違いをここでは「クラスタリングモード」と呼びます。 もっとも広く使われているクラスタリングモードは、「ストリーミングレプリケーションモード」です。 特に何か特別な考慮が必要でなければ、ストリーミングレプリケーションモードを選択することをお勧めします。 動作モードの詳細については項3.3.2をご覧ください。
次に考えなければならないのは、何台のPostgreSQLを使うかです。 2台あれば最低限片方のPostgreSQLがダウンしてもデータベースの運用は継続できますが、検索処理を複数のサーバで分担させる検索負荷分散処理を行うのであれば、3台以上のPostgreSQLを使うことも珍しくありません。 Pgpool-IIは豊富な負荷分散の調整パラメータを用意しています。 詳細は項5.8をご覧ください。
Pgpool-IIでは柔軟にPostgreSQLサーバを後から追加できるので、とりあえずPgpool-IIを使ってみたい、という方は2台のPostgreSQLから始めるのが良いでしょう。
Pgpool-IIは1台でも利用が可能ですが、そのPgpool-IIが停止するとデータベース全体が利用できなくなるので、複数のPgpool-IIを導入することをお勧めします。 複数のPgpool-IIはwatchdogと言う仕組みで連携を取りつつお互いを監視し、その中の1台が「リーダー」と呼ばれて仮想IPを持つので、クライアントはその仮想IPにアクセスすればよく、複数のPgpool-IIが導入されていることを意識する必要はありません。 (watchdogについては項4.1をご覧ください。) もしあるPgpool-IIがダウンすると、別のPgpool-IIが取って代わってリーダーになります。
リーダーは複数存在してはいけないので、新しいリーダーを決める際にはwatchdogは投票を行ないます。 この時Pgpool-IIが偶数台だと多数決でリーダーを決めることができなくなってしまいます。 ですからPgpool-IIは3台以上の奇数台で構成することをお勧めします。
なお、Pgpool-IIとPostgreSQLは同じサーバに同居していても構いません。 たとえば、リソースを節約するために3台のサーバのみを用意し、それぞれにPgpool-IIとPostgreSQLを動かすこともできます。
Pgpool-II3台、PostgreSQL2台をストリーミングレプリケーションモードで動作させる本格的な例が 項8.2で詳しく紹介されているので、すぐにプロダクションレベルでPgpool-IIを動かしたい方はそれを参考にすると良いでしょう。