2. インストール
-このプログラムを利用するためには少なくとも2台のマシンと、それぞれに以下のものが
-インストールされている必要があります。
+このプログラムを利用するためには少なくとも2台のマシンと、それぞれに以下の
+ã\82\82ã\81®ã\81\8cã\82¤ã\83³ã\82¹ã\83\88ã\83¼ã\83«ã\81\95ã\82\8cã\81¦ã\81\84ã\82\8bå¿\85è¦\81ã\81\8cã\81\82ã\82\8aã\81¾ã\81\99ã\80\82
--PostgreSQL(http://www.postgresql.org/) のクライアント
-psqlのみを必要とします。インストール時に環境変数PATHで参照可能な位置に配置してく
-ださい。
+- PostgreSQL(http://www.postgresql.org/) のクライアント
+ psqlのみを必要とします。インストール時に環境変数PATHで参照可能な位置に
+ 配置してください。
--perl(http://www.perl.com/)
-perl 5以上とGetOpt::Longを必要とします。
--pgpool(http://pgpool.projects.postgresql.org/)
-インストール時に環境変数PATHで参照可能な位置に配置してください。設定ファイルにつ
-いては指定しない場合インストール時のデフォルト位置になります。
+- perl(http://www.perl.com/)
+ perl 5以上とGetOpt::Longを必要とします。
+- pgpool(http://pgpool.projects.postgresql.org/)
+ インストール時に環境変数PATHで参照可能な位置に配置してください。
+ 設定ファイルについては指定しない場合インストール時のデフォルト位置になります。
+ 本バージョンの動作テストは pgpool-II 2.2 で行っています。
--heartbeat 2.0以降(http://www.linux-ha.org/)
-動作テストは 2.1.4 で行っています。
+- heartbeat 2.0以降(http://www.linux-ha.org/)
+ 本バージョンの動作テストは 2.1.4 で行っています。
-また、このホストに入っている必要はありませんが、以下のソフトウェアも必要になります。
+また、このホストに入っている必要はありませんが、以下のソフトウェアも必要に
+なります。
--PostgreSQL
+- PostgreSQL
+ 接続監視する関係上、pgpoolが接続する先としてのPostgreSQLサーバーが必要になり
+ ます。死活監視のための接続ができるように設定してください。
-接続監視する関係上、pgpoolが接続する先としてのPostgreSQLサーバーが必要になります。
-これには、以下の条件があります。
-
---pgpoolが稼働しているサーバーから指定データベースへの指定ユーザーからの接続に対する
-trust認証が許されていること。この時指定データベースとユーザー名は
-
- -pgpool.confのhealth_check_userが有効な場合、ユーザー名として、また同時にdatabase名としても利用されます。標準のpgpoolの場合、nobodyと言う名称のロール及びデータベースが必要です。
-
- -有効な値がない場合、postgresユーザ/template1データベースが利用されます。
+ - pgpool.conf の health_check_user が 有効な場合、ユーザー名として、また
+ 同時に死活監視の接続用のデータベース名として、その値が利用されます。
+ デフォルトの pgpool.conf 設定の場合、nobody と言う名称のロール及びデータ
+ ベースが必要です。
+ - 有効な値がない場合、postgresユーザ/template1データベースが利用されます。
2.2 インストール手順
2.3 heartbeatの設定
heartbeat上でpgpoolを稼働させるためにはheartbeat側の設定が必要になります。
--ha.cf
-crmを利用します。以下の一行を設定してください。
+- ha.cf
+ crmを利用します。以下の一行を設定してください。
crm true
--cib.xml
-cib.xmlはheartbeatでcrmを利用するために必要なファイルで、通常/var/lib/heartbeat/crm/以下に配置されています。サンプルとして1仮想IPアドレス、アクティブ/スタンバイのpgpool構成を行うcib.xmlを以下に示します。
+- cib.xml
+ cib.xml は heartbeat で crm を利用するために必要なファイルで、通常
+ /var/lib/heartbeat/crm/ 以下に配置されています。サンプルとして
+ 1仮想IPアドレス、アクティブ/スタンバイのpgpool構成を行う cib.xml を
+ 以下に示します。
- <cib generated="true" admin_epoch="0" have_quorum="true" ignore_dtd="false" num_peers="2" cib_feature_revision="2.0" crm_feature_set="2.0" epoch="288" num_updates="1" cib-last-written="Thu Nov 27 09:11:34 2008" ccm_transition="2" dc_uuid="b9400fd4-6712-4462-a88f-78865eae2e2a">
+ <cib admin_epoch="0" epoch="0" num_updates="0">
<configuration>
<crm_config>
<cluster_property_set id="cib-bootstrap-options">
</cib>
-この設定ファイル例によりpgpoolを管理できるようになります。この中で書き換える項目は以下の通りになります。
+ この設定ファイル例によりpgpoolを管理できるようになります。
+ この中で書き換える項目は以下の通りになります。
--ノード名
- サンプル中node1,node2と示されているのがノード名になります。ここではha.cfで指定してあるファイルと同じ名称を指定してください。
+- ノード名
+ サンプル中 node1、node2 と示されているのがノード名になります。ここでは
+ ha.cf で指定してあるのと同じ名称を指定してください。
--IPアドレス
- サンプル中で192.168.0.3と示されているのが仮想IPアドレスです。ここに指定することでpgpoolが稼働中のホストに当該IPアドレスが割り振られます。
+- IPアドレス
+ サンプル中で 192.168.0.3 と示されているのが仮想IPアドレスです。
+ ここに指定することでpgpoolが稼働中のホストに当該IPアドレスが割り振られます。
--設定ファイルの格納場所(任意)
- 設定ファイルの格納場所がデフォルト以外の場合、instance_attributes項目に以下のキーと、値としてそのファイル名を指定することで設定できます。
+- 設定ファイルの格納場所(任意)
+ 設定ファイルの格納場所がデフォルト以外の場合、instance_attributes項目に
+ 以下のキーと、値としてそのファイル名を指定することで設定できます。
-ファイル名 , 指定するキー , 備考
+指定項目 , 指定するキー, 備考
pgpool.conf , pgpoolconf ,
-pool_hba.conf , hbaconf , pgpool 3.2+ only
-pcp.conf , pcpconf , pgpool-II only
-log file , logfile , pgpoolからリダイレクト出力するログファイル
-pid file , pidfile , logdir='/tmp' なら /tmp/pgpool.pid を指定
+pool_hba.conf , hbaconf , pgpool 3.2 以降のみ
+pcp.conf , pcpconf , pgpool-II 以降のみ
+ログファイル , logfile , pgpoolからリダイレクト出力するログファイル
+PIDファイル , pidfile , "/var/run/pgpool.pid" などを指定
+起動オプション, options , その他 pgpool の起動オプション "-d" など
-ログファイル出力時はデバッグオプション -d が自動的に付与されます。
+ この記述が終了したらファイルを heartbeat が利用する全てのサーバーに配置します。 cib.xml はサーバー間で全く同じである必要があります。なお、記述の検証には
+ heartbeat に付属している crm_verify コマンドが使えます。
- この記述が終了したらファイルをheartbeatが利用する全てのサーバーに配置します。cib.xmlはサーバー間で全く同じである必要があります。なお、記述の検証にはheartbeatに付属しているcrm_verifyコマンドが使えます。
+crm_verify -X /var/lib/heartbeat/crm/cib.xml
-crm_verify -VX /var/lib/heartbeat/crm/cib.xml
-
- 最後に全てが終わったら起動して確認します。
+ 最後に全てが終わったら起動して確認します。
# service heartbeat start
-そのあとheartbeat自体の起動が終了まで数分待ち、psにてpgpoolが起動することを確認することが出来れば完了です。
+そのあとheartbeat自体の起動が終了まで数分待ち、psコマンドにてpgpoolが
+起動していることを確認することができれば完了です。
+
2.3 active-active 構成について
-pgpool-HA
-1.1以降では、複数の設定ファイルが記述できるため、Active-Active構成を取ることが可能になります。
+pgpool-HA 1.1以降では、複数の設定ファイルが記述できるため、Active-Active構成を
+取ることが可能になります。
3. 利用方法
-本ソリューションの起動及び終了はheartbeat経由で自動で行われます。順序としては以下の通りになります。
+本ソリューションの起動及び終了は heartbeat 経由で自動で行われます。
+順序としては以下の通りになります。
- PostgreSQLを起動
と実行すれば接続できます。
-終了させる場合は、全く逆に全てのサーバーでheartbeatを終了させてください。heartbeatの終了のためには以下の通りのコマンドを実行します。
+終了させる場合は、全く逆に全てのサーバーで heartbeat を終了させてください。
+heartbeat の終了のためには以下の通りのコマンドを実行します。
# service heartbeat stop
+
4. FAQ
--接続できない
-以下の項目を確認してください。
+- 接続できない
+ 以下の項目を確認してください。
---heartbeatが起動しているか。
+-- heartbeatが起動しているか。
-起動していない場合、heartbeatのインストールか設定ファイルに問題があります。
+ 起動していない場合、heartbeatのインストールか設定ファイルに問題があります。
---heartbeatが起動していて、psの出力の中にcrmdが存在しているか
+-- heartbeatが起動していて、psの出力の中にcrmdが存在しているか
-crmdが立ち上がってない、終了した場合にはcib.xmlファイルの内容にエラーがある可能性があります。特に前回実行時の内容を署名していますので、.sigファイルが当該ディレクトリに存在している場合にはエラーになります。そのため、書き換えた場合には*.sigファイルを消去し、再度実行してみてください。
+ crmdが立ち上がってない、終了した場合にはcib.xmlファイルの内容にエラーがある
+ 可能性があります。特に前回実行時の内容を署名していますので、.sigファイルが
+ 当該ディレクトリに存在している場合にはエラーになります。そのため、書き換え
+ た場合には*.sigファイルを消去し、再度実行してみてください。
---pgpoolが起動しているか。
+-- pgpoolが起動しているか。
-起動していない場合、pgpoolが単独で実行できるかどうかを確認してください。また、設定ファイルの内容も確認して下さい。
+ 起動していない場合、pgpoolが単独で実行できるかどうかを確認してください。
+ また、設定ファイルの内容も確認して下さい。
---PostgreSQLが起動しているか。
+-- PostgreSQLが起動しているか。
-起動していない場合は立ち上げてください。
+ 起動していない場合は立ち上げてください。
---浮動IPに対してping等でアクセスできるか。
+-- 浮動IPに対してping等でアクセスできるか。
-アクセスできない場合には設定ファイルを再度確認してください。
+ アクセスできない場合には設定ファイルを再度確認してください。
-なお、一度全てのホストでheartbeatを終了/起動させることで実行できることがあります。
+ なお、一度全てのホストでheartbeatを終了/起動させることで実行できることが
+ あります。
--PGClusterのロードバランサーの冗長化に使えるか?
-技術的には可能ですが、現在その設定に必要な内容が不足しているため、利用することは出来ません。このためには以下の作業が必要です。
+- PGClusterのロードバランサーの冗長化に使えるか?
+技術的には可能ですが、現在その設定に必要な内容が不足しているため、利用すること
+はできません。このためには以下の作業が必要です。
---pgpoolファイルを書き換え、pglbを起動終了させるようにする
---pgpoolファイルを書き換え、設定ファイル無しにポート番号等を指定するようにする。
+-- pgpoolファイルを書き換え、pglbを起動終了させるようにする
5. 制限事項
-・本プログラムに置ける監視はpgpoolの稼働チェック(pidファイルとSQL発行)のみです。
-それ以外の異常状態(起動して、SQL文も受け付けるが異常が発生しているような場合など)には対応できません。
+・本プログラムに置ける監視はpgpoolの稼働チェック(pidファイルとSQL発行)のみ
+ です。それ以外の異常状態(起動して、SQL文も受け付けるが異常が発生している
+ ような場合など)には対応できません。
・PostgreSQL に対する管理は行っていません。
-・PostgreSQL が全く起動していない状態は異常であるとみなし、フェイルオーバーし続けますが、これは現段階の仕様です。
-・PostgreSQL がクラッシュした場合のリカバリは別途手動で行う必要があります。この方法についてはpgpoolに準じます。
-・ロックの問題、now()関数、OIDといったpgpoolの技術的制限事項が解消するわけ ではありません。
-・pgpoolが複数インストールされている場合の挙動は、インストール時の$PATHに依存して決定します。他の種類のバイナリは管理できません。
-・pgpool-II監視はpsqlで行われます。pcpを利用した監視はまだサポートされていません。
+・PostgreSQL が全く起動していない状態は異常であるとみなし、フェイルオーバーし
+ 続けますが、これは現段階の仕様です。
+・PostgreSQL がクラッシュした場合のリカバリは別途行う必要があります。
+ この方法についてはpgpoolに準じます。
+・ロックの問題、now()関数、OIDといったpgpoolの技術的制限事項が解消するわけ
+ ではありません。
+・pgpoolが複数インストールされている場合の挙動は、インストール時の $PATH に
+ 依存して決定します。他の種類のバイナリは管理できません。
+・pgpool-II監視はpsqlで行われます。pcpを利用した監視はまだサポートされていま
+ せん。
6. 著作権
-本プログラムは谷田 豊盛(ゆたか) (tanida@sraoss.co.jp)がSRA OSS,Inc.日本支社の後援の元作成し、pgpool global development groupに寄贈されました。ライセンスはpgpoolに準じますが、詳細は付属のCOPYINGファイルを参照ください。
+本プログラムは谷田 豊盛(ゆたか) (tanida@sraoss.co.jp)がSRA OSS,Inc.日本支社
+の後援の元作成し、pgpool global development groupに寄贈されました。ライセンスはpgpoolに準じますが、詳細は付属のCOPYINGファイルを参照ください。