pgpool2.git / summary / log / commit / refs

commit    3c2eba0da53844803cd4584286641e1a24cb1812
Author:   Tatsuo Ishii <ishii@sraoss.co.jp>
Date:     Mon Mar 02 07:12:08 2020 +0000

    Doc: enhance installation documents.
    
    Add "Planning" section so that uses can grasp a big picture of
    installation.


doc.ja/src/sgml/installation.sgml | 54 ++++++++++++++++++++ doc/src/sgml/installation.sgml | 103 ++++++++++++++++++++++++++++++++++++-- 2 files changed, 152 insertions(+), 5 deletions(-) diff --git a/doc.ja/src/sgml/installation.sgml b/doc.ja/src/sgml/installation.sgml index 7bff19b28..0820583fd 100644 --- a/doc.ja/src/sgml/installation.sgml +++ b/doc.ja/src/sgml/installation.sgml @@ -12,6 +12,60 @@ <primary>インストール</primary> </indexterm> + <sect1 id="planning"> + <title>プランニング</title> + <para> + <productname>Pgpool-II</productname>は<productname>PostgreSQL</productname>を管理するツールなので、まずは<productname>PostgreSQL</productname>の利用形態を決めなければなりません。 + 加えて、<productname>Pgpool-II</productname>ではそれ自体の可用性を高めるために、複数の<productname>Pgpool-II</productname>を導入することができます。 + 何本の<productname>Pgpool-II</productname>を導入するのが適切なのかを事前に計画しなければなりません。 + この節では最初に<productname>PostgreSQL</productname>の動作モードを議論し、次に<productname>Pgpool-II</productname>の導入形態を議論します。 + </para> + + <sect2 id="planning-postgresql"> + <title>PostgreSQLの動作モード</title> + <para> + <productname>PostgreSQL</productname>の導入台数は1以上が可能ですが、1台ではその<productname>PostgreSQL</productname>がダウンした時にデータベースシステム全体が使えなくなるため、通常2台以上の<productname>PostgreSQL</productname>を導入します。 + 2台以上の<productname>PostgreSQL</productname>を用いる場合、何らかの方法でそれらのデータベース内容を同じになるようにしなければなりません。 + データベースの同期方法の違いをここでは「動作モード」と呼びます。 + もっとも広く使われている動作モードは、「ストリーミングレプリケーションモード」です。 + 特に何か特別な考慮が必要でなければ、ストリーミングレプリケーションモードを選択することをお勧めします。 + 動作モードの詳細については<xref linkend="running-mode">をご覧ください。 + </para> + <para> + 次に考えなければならないのは、何台の<productname>PostgreSQL</productname>を使うかです。 + 2台あれば最低限片方の<productname>PostgreSQL</productname>がダウンしてもデータベースの運用は継続できますが、検索処理を複数のサーバで分担させる検索負荷分散処理を行うのであれば、3台以上の<productname>PostgreSQL</productname>を使うことも珍しくありません。 + <productname>Pgpool-II</productname>は豊富な負荷分散の調整パラメータを用意しています。 + 詳細は<xref linkend="runtime-config-load-balancing">をご覧ください。 + </para> + <para> + <productname>Pgpool-II</productname>では柔軟に<productname>PostgreSQL</productname>サーバを後から追加できるので、とりあえず<productname>Pgpool-II</productname>を使ってみたい、という方は2台の<productname>PostgreSQL</productname>から始めるのが良いでしょう。 + </para> + </sect2> + + <sect2 id="planning-pgpool"> + <title>Pgpool-IIの導入形態</title> + <para> + <productname>Pgpool-II</productname>は1台でも利用が可能ですが、その<productname>Pgpool-II</productname>が停止するとデータベース全体が利用できなくなるので、複数の<productname>Pgpool-II</productname>を導入することをお勧めします。 + 複数の<productname>Pgpool-II</productname>はwatchdogと言う仕組みで連携を取りつつお互いを監視し、その中の1台が「マスタ」と呼ばれて仮想IPを持つので、クライアントはその仮想IPにアクセスすればばよく、複数の<productname>Pgpool-II</productname>が導入されていることを意識する必要はありません。 + (watchdogについては<xref linkend="tutorial-watchdog-intro">をご覧ください。) + もしある<productname>Pgpool-II</productname>がダウンすると、別の<productname>Pgpool-II</productname>が取って代わってマスタになります。 + </para> + <para> + マスタは複数存在してはいけないので、新しいマスタを決める際にはwatchdogは投票を行ないます。 + この時<productname>Pgpool-II</productname>が偶数台だと多数決でマスタを決めることができなくなってしまいます。 + ですから<productname>Pgpool-II</productname>は3台以上の奇数台で構成することをお勧めします。 + </para> + <para> + なお、<productname>Pgpool-II</productname>と<productname>PostgreSQL</productname>は同じサーバに同居していても構いません。 + たとえば、リソースを節約するために3台のサーバのみを用意し、それぞれに<productname>Pgpool-II</productname>と<productname>PostgreSQL</productname>を動かすこともできます。 + </para> + <para> + <productname>Pgpool-II</productname>3台、<productname>PostgreSQL</productname>2台をストリーミングレプリケーションモードで動作させる本格的な例が + <xref linkend="example-cluster">で詳しく紹介されているので、すぐにプロダクションレベルで<productname>Pgpool-II</productname>を動かしたい方はそれを参考にすると良いでしょう。 + </para> + </sect2> + </sect1> + <sect1 id="install-source"> <!-- <title>Installation of Pgpool-II</title> diff --git a/doc/src/sgml/installation.sgml b/doc/src/sgml/installation.sgml index a2a8c5036..1167e47c6 100644 --- a/doc/src/sgml/installation.sgml +++ b/doc/src/sgml/installation.sgml @@ -1,11 +1,104 @@ <!-- doc/src/sgml/installation.sgml --> -<chapter id="installation"> - <title>Installation of <productname>Pgpool-II</productname></title> + <chapter id="installation"> + <title>Installation of <productname>Pgpool-II</productname></title> - <indexterm zone="installation"> - <primary>installation</primary> - </indexterm> + <indexterm zone="installation"> + <primary>installation</primary> + </indexterm> + + <sect1 id="planning"> + <title>Planning</title> + <para> + Since <productname>Pgpool-II</productname> is a tool to manage + <productname>PostgreSQL</productname>, we need to decide how to + deploy them first. In addition, it is possible to have multiple + number of <productname>Pgpool-II</productname> installations to + enhance the availability of <productname>Pgpool-II</productname> + itself. We need to plan how many installations of + <productname>Pgpool-II</productname> is required before hand. In + this chapter we first discuss the running mode of + <productname>PostgreSQL</productname> then the deployment of + <productname>Pgpool-II</productname>. + </para> + + <sect2 id="planning-postgresql"> + <title>Running mode of PostgreSQL</title> + <para> + It is possible to have more than or equal to one installation of + <productname>PostgreSQL</productname>, it is common to have more + than 2 installations of it because if there's only one + installation, the whole database system goes down if the + <productname>PostgreSQL</productname> is not available. When we + use two or more <productname>PostgreSQL</productname> servers, it + is necessary to sync the databases in some way. We call the + methods of syncing databases as "running mode". The most popular + mode ever used is "streaming replication mode". Unless there's + necessity to have special consideration, it is recommended to use + the streaming replication mode. See <xref linkend="running-mode"> + for more details of running mode. + </para> + <para> + The next thing we need to consider is how many + <productname>PostgreSQL</productname> installations we want. If + there are two, we can continue to operate the database + system. However it is not uncommon to use more than two + <productname>PostgreSQL</productname> if you want to employ read + query load balancing by running multiple read quires on multiple + servers. <productname>Pgpool-II</productname> provides rich + variety of options to tune load balancing. See <xref + linkend="runtime-config-load-balancing"> for more details. + </para> + <para> + Since it is possible to add <productname>PostgreSQL</productname> + servers later on in <productname>Pgpool-II</productname>, two + <productname>PostgreSQL</productname> can be a good starter for + you. + </para> + </sect2> + + <sect2 id="planning-pgpool"> + <title>Deployment of Pgpool-II</title> + <para> + Although it is possible to use only one + <productname>Pgpool-II</productname>, we recommend to use more + than 1 <productname>Pgpool-II</productname> to avoid whole + database inavailability due to the + <productname>Pgpool-II</productname> being down. Multiple + <productname>Pgpool-II</productname> work together and monitor + each other. One of them is called "master" and it has a virtual + IP. Clients do not need to aware that there are multiple + <productname>Pgpool-II</productname> because they always access + the same VIP. (See <xref linkend="tutorial-watchdog-intro"> for + watchdog). If one of <productname>Pgpool-II</productname> goes + down, other <productname>Pgpool-II</productname> takes over the + master role. + </para> + <para> + Since it is not allowed to have multiple master, watchdog votes to + deicude a new master. If there are even number of + <productname>Pgpool-II</productname>, it is impossible to decide + the new master by voting. Thus we recommend to deploy + <productname>Pgpool-II</productname> in more than 3 odd numbers. + </para> + <para> + Please note that it is possible to have + <productname>Pgpool-II</productname> and + <productname>PostgreSQL</productname> on a same server. For + example you can have only three servers to run both + <productname>Pgpool-II</productname> and + <productname>PostgreSQL</productname> on each of it. + </para> + <para> + You can find a production level detailed example using three + <productname>Pgpool-II</productname> and two + <productname>PostgreSQL</productname> in streaming replication + mode in <xref linkend="example-cluster"> for those who want to + have a production level <productname>Pgpool-II</productname> + installtion today. + </para> + </sect2> + </sect1> <sect1 id="install-source"> <title>Installation of Pgpool-II</title> [parent: b439c147d399]