運用管理
ここでは PowerGres on Linux HA の日常的な運用について説明します。 より詳しい説明が必要なときにはそれぞれのマニュアルを参照してください。 各種マニュアルにつきましては こちら をご覧ください。
基本的な操作
LifeKeeper GUI の起動
LifeKeeper GUI を起動するとダイアログが表示されます。 Server Name、Login、Password にそれぞれログインするサーバ名、ユーザ名、パスワードを入力し、OK をクリックすると LifeKeeper GUI にログインすることができます。
コマンドラインからの起動
コマンドラインから LifeKeeper GUI を起動するには、以下のように lkGUIapp コマンドを実行します。
# /opt/LifeKeeper/bin/lkGUIapp &
Web ブラウザからの起動
Web ブラウザから LifeKeeper GUI を起動するには以下の URL にアクセスします。 hostname にはホスト名を指定します。
http://hostname:81/
LifeKeeper GUI の画面構成
LifeKeeper GUI にログインすると以下のような画面が表示されます。 以下は、共有ディスクを用いた場合の例です。
LifeKeeper GUI の画面では以下のようにリソース階層やサーバ、リソースの状態を確認することができます。
リソース階層の状態
サーバの状態
リソースの状態
LifeKeeper のマニュアル
LifeKeeper のマニュアルはサイオステクノロジーのドキュメントサイトから参照できます。
- ドキュメントサイト (サイオステクノロジー)
オンラインマニュアル
LifeKeeper のコマンドのマニュアルを参照するにはコマンドラインから以下のように man コマンドを実行します。 name にはマニュアルを参照するコマンド名を指定します。
# man -M /opt/LifeKeeper/man name
例えば、lkstart コマンドのマニュアルを参照するには以下のように man コマンドを実行します。
# man -M /opt/LifeKeeper/man lkstart
Online Product Manual
「Online Product Manual」を参照するには Web ブラウザから以下の URL にアクセスします。 hostname にはホスト名を指定します。
http://hostname:81/help/lksstart.htm
また、LifeKeeper GUI のメニューから Help、Contents を選択することによって「Online Product Manual」を参照することもできます。
PowerGres のマニュアル
PowerGres のマニュアルは「PowerGres on Linux」の CD-ROM に HTML ファイル、または以下の URL から参照できます。
- PowerGres on Linux マニュアル
- PowerGres Manager マニュアル
なお、PowerGres のマニュアルには PostgreSQL と異なることを中心に記述されているので、PostgreSQL に関する詳しい説明は PostgreSQL のドキュメントを参照してください。 PostgreSQL のドキュメントは /usr/share/doc/powergres91-version ディレクトリにインストールされています。
なお、PostgreSQL のドキュメントは以下の URL からも参照できます。
- PostgreSQL 文書 (日本語)
- PostgreSQL Documentation (英語)
モニタリング
正常状態の確認
LifeKeeper GUI からの確認
-
サーバの状態がアクティブサーバ、スタンバイサーバともに Alive となっている。
-
コミュニケーションパスの状態がすべて Alive となっている。
-
メニューから Edit、Server、Properties... を選択するとダイアログが表示されます。
-
タブから CommPaths を選択するとコミュニケーションパスの状態が表示されます。
-
OK をクリックするとダイアログが閉じられます。
-
-
リソース階層の状態がすべて ISP (In-Service, Protected) となっている。
-
すべてのリソースの状態がいずれかのサーバで ISP (In-Service, Protected) となっている。
コマンドラインからの確認
コマンドラインから正常な状態を確認するには以下のように lcdstatus コマンドを実行します。
# /opt/LifeKeeper/bin/lcdstatus -q
-
アクティブサーバで lcdstatus コマンドを実行するとリソースの状態が ISP (In-Service, Protected) となっている。
-
スタンバイサーバで lcdstatus コマンドを実行するとリソースの状態が OSU (Out-of-Service, Unipaired) となっている。
-
コミュニケーションパスの状態が ALIVE となっている。
エラーの表示例
以下は、共有ディスクを用いた場合の例です。
コミュニケーションパスのエラー
ネットワークのエラー
サーバのエラー
LifeKeeper ログの表示
LifeKeeper GUI からの表示
-
LifeKeeper GUI を起動し、ログインします。
# /opt/LifeKeeper/bin/lkGUIapp &
-
メニューから Edit、Server、View Logs... を選択するとダイアログが表示されます。
-
Server からログを表示するサーバを選択します。
-
Log Type からログの種類を選択します。
-
Log Size からログのサイズを選択します。
-
OK をクリックするとダイアログが閉じられます。
コマンドラインからの表示
LifeKeeper のログはパイプと循環ファイルによって実装されているため、テキストエディタから読み込むことができません。 コマンドラインからログを表示するには root ユーザで以下のように lk_log コマンドを実行します。 lk_log コマンドはログを表示するためのコマンドです。
log には ログの種類 (log、LCD、LCM、TTYLCM、remote_exec、GUI、SNMP のいずれか) を指定します。
# /opt/LifeKeeper/bin/lk_log log
例えば、log という種類のログを /tmp/lk.log ファイルに出力するには以下のように実行します。
# /opt/LifeKeeper/bin/lk_log log > /tmp/lk.log
ログの表示例
コミュニケーションパスの障害
COMMUNICATION TO srapc2051 BY 192.168.11.1/192.168.11.2 FAILED AT: 木12 月20 20:46:52 JST 2007
ネットワークの障害
LifeKeeper: pingfail: Local recovery failed for IP instance ip-133.137.45.71 /opt/LifeKeeper/bin/recover: recovery failed after event "ip,pingfail" using recovery at resource "ip-133.137.45.71" on failing resource "ip-133.137.45.71" ***ERROR*** recover[655,recover.C] 木12 月20 20:48:34 JST 2007: all attempts at local recovery have failed after event "ip,pingfail" occurred to resource "ip-133.137.45.71"
共有ディスクの障害
***ERROR*** ccissdev[237,ccissdev.C] 木12 月20 21:14:35 JST 2007: cannot open device "/dev/cciss/c0d6": No such device or address
PowerGres の障害
RECOVERY class=powergres event=recover name=powergres-/share/data STARTING AT: 木12 月20 21:20:24 JST 2007 /opt/LifeKeeper/bin/recover: resource "powergres-/share/data" with id "powergres-/share/data" has experienced failure event "powergres,recover" /opt/LifeKeeper/bin/recover: attempting recovery using resource "powergres-/share/data" after failure by event "powergres,recover" on resource "powergres-/share/data"
LifeKeeper ログの種類
LifeKeeper では 6 種類のログが記録されます。
- log
-
このログには LifeKeeper が保護しているアプリケーションやリソースに関する情報が含まれます。 アプリケーションの remove および restore スクリプトによって出力される情報や、LifeKeeper の停止や起動、フェイルオーバなど LifeKeeper のほとんどのイベントが記録されます。
- LCD
-
このログには LCD についての情報が含まれます。 LifeKeeper データベースやその状態の変化に関する情報がこのログに記録されます。
- LCM
-
このログには LCM についての情報が含まれます。 TCP コミュニケーションパスのイベントや状態の変化がこのログに記録されます。
- TTYLCM
-
このログには TTYLCM についての情報が含まれます。 TTY コミュニケーションパスのイベントや状態の変化がこのログに記録されます。
- remote_exec
-
このログにはすべてのリモートな LifeKeeper のリクエストが記録されます。
- GUI
-
このログには LifeKeeper GUI についての情報が含まれます。
- SNMP
-
このログには SNMP トラップについての情報が含まれます。
PowerGres のログ
PowerGres のログは標準ではデータベースクラスタディレクトリ内の pg_log に格納されます。
pg_log ディレクトリにはログが標準では postgresql-%Y-%m-%d.log というファイル名で記録されます。 例えば、ログが 2012 年 12 月 20 日から記録が開始されたときには postgresql-2012-12-30.log というファイル名になります。
なお、ログファイルはテキストエディタから読み込むことができます。 ログの詳細については以下の URL を参照してください。
- PostgreSQL 文書: 18.7. エラー報告とログ取得
-
http://www.postgresql.jp/document/9.1/html/runtime-config-logging.html
- PostgreSQL 文書: 23.3. ログファイルの保守
-
http://www.postgresql.jp/document/9.1/html/logfile-maintenance.html
ログの表示例
2007-12-25 14:37:55 JST [16058] LOG: database system was shut down at 2007-12-25 11:14:50 JST 2007-12-25 14:37:55 JST [16058] LOG: checkpoint record is at 0/42C858 2007-12-25 14:37:55 JST [16058] LOG: redo record is at 0/42C858; undo record is at 0/0; shutdown TRUE 2007-12-25 14:37:55 JST [16058] LOG: next transaction ID: 0/598; next OID: 10820 2007-12-25 14:37:55 JST [16058] LOG: next MultiXactId: 1; next MultiXactOffset: 0 2007-12-25 14:37:55 JST [16058] LOG: database system is ready
SNMP トラップ
LifeKeeper では SNMP トラップによってサービスの起動やフェイルオーバーなどのイベントを送信することができます。
-
lk_configsnmp コマンドによってイベントを送信するサーバの IP アドレスを設定します。 ip にはイベントを受信するサーバの IP アドレスを指定します。
# /opt/LifeKeeper/bin/lk_configsnmp ip
-
/etc/snmp/snmp.conf ファイルに以下の記述を追加します。
defCommunity public
-
イベントを受信するサーバで以下のように snmptrapd コマンドを実行します。
# snmptrapd -P
-
LifeKeeper GUI からイベントを発生させ、イベントを受信するサーバでログが標準出力に出力されることを確認します。
なお、SNMP トラップによるイベントの送信については「LifeKeeper for Linux テクニカルドキュメンテーション」の LifeKeeper の「SNMP 経由のイベントの転送」も参照してください。
LifeKeeper イベントテーブル
LifeKeeper イベント | トラップ番号 | オブジェクト ID |
---|---|---|
LifeKeeper Startup Complete | 100 | .1.3.6.1.4.1.7359.1.0.100 |
LifeKeeper Shutdown Initiated | 101 | .1.3.6.1.4.1.7359.1.0.101 |
LifeKeeper Shutdown Complete | 102 | .1.3.6.1.4.1.7359.1.0.102 |
LifeKeeper Manual Switchover Initiated on Server | 110 | .1.3.6.1.4.1.7359.1.0.110 |
LifeKeeper Manual Switchover Complete - recovered list | 111 | .1.3.6.1.4.1.7359.1.0.111 |
LifeKeeper Manual Switchover Complete - failed list | 112 | .1.3.6.1.4.1.7359.1.0.112 |
LifeKeeper Node Failure Detected for Server | 120 | .1.3.6.1.4.1.7359.1.0.120 |
LifeKeeper Node Recovery Complete for Server - recovered list | 121 | .1.3.6.1.4.1.7359.1.0.121 |
LifeKeeper Node Recovery Complete for Server - failed list | 122 | .1.3.6.1.4.1.7359.1.0.122 |
LifeKeeper Resource Recovery Initiated | 130 | .1.3.6.1.4.1.7359.1.0.130 |
LifeKeeper Resource Recovery Failed | 131 | .1.3.6.1.4.1.7359.1.0.131 |
LifeKeeper Resource Recovery Complete | 132 | .1.3.6.1.4.1.7359.1.0.132 |
LifeKeeper Communications Path Up | 140 | .1.3.6.1.4.1.7359.1.0.140 |
LifeKeeper Communications Path Down | 141 | .1.3.6.1.4.1.7359.1.0.141 |
メンテナンス
LifeKeeper の起動
LifeKeeper を起動するには root ユーザで以下のように lkstart コマンドを実行します。 なお、LifeKeeper は LifeKeeper GUI を起動するときにはすでに起動していなければなりません。
# /opt/LifeKeeper/bin/lkstart
LifeKeeper の停止
LifeKeeper を停止するには root ユーザで以下のように lkstop コマンドを実行します。 このコマンドを実行すると LifeKeeper に保護されていたリソースのサービスも停止します。
# /opt/LifeKeeper/bin/lkstop
- -f
-
LifeKeeper に保護されているリソースのサービスを停止しません。
- -n
-
LifeKeeper に保護されているリソースのサービスをスタンバイサーバにフェイルオーバさせます。 なお、-r および -f オプションとともに使用することはできません。
- -r
-
システムを再起動したときに LifeKeeper を起動します。 このオプションを指定しなければシステムを再起動したときに LifeKeeper は停止したままになります。
LifeKeeper に保護されているリソースのサービスをスタンバイサーバにフェイルオーバさせ、LifeKeeper を停止するには以下のように lkstop コマンドを実行します。
# /opt/LifeKeeper/bin/lkstop -n
LifeKeeper GUI Server の起動
LifeKeeper GUI を起動するにはそれぞれのサーバで LifeKeeper GUI Server が起動していなければなりません。
LifeKeeper GUI Server を起動するには root ユーザで以下のようにコマンドを実行します。
# /opt/LifeKeeper/bin/lkGUIserver start
LifeKeeper GUI Server を停止するには root ユーザで以下のようにコマンドを実行します。
# /opt/LifeKeeper/bin/lkGUIserver stop
PowerGres の起動と停止
PowerGres HA では LifeKeeper によって PowerGres が保護されているため、pg_ctl コマンドで PowerGres を停止したとしても LifeKeeper によってローカルリカバリされてしまいます。 LifeKeeper に保護されている PowerGres を起動・停止するには LifeKeeper から PowerGres リソースのサービスを起動・停止しなければなりません。
LifeKeeper GUI からの起動と停止
-
LifeKeeper GUI を起動し、ログインします。
# /opt/LifeKeeper/bin/lkGUIapp &
-
メニューから Edit、Resource、サービスの起動であれば In Service...、サービスの停止であれば Out of Service... を選択するとダイアログが表示されます。
-
サービスの起動であれば Server からサービスを起動するサーバを選択し、Next をクリックします。
-
Resource(s) からサービスを起動・停止する PowerGres リソースを選択し、Next をクリックします。
-
PowerGres リソースのサービスの起動であれば In Service、停止であれば Out of Service をクリックすると PowerGres リソースのサービスの起動、停止が開始されます。
-
Done をクリックするとダイアログが閉じられます。
コマンドラインからの起動と停止
コマンドラインから PowerGres リソースのサービスを起動・停止するには root ユーザで以下のように perform_action コマンドを実行します。 perform_action コマンドはアクションスクリプトを実行するコマンドです。
tag には PowerGres リソースのタグ名を指定します。 action にはアクション名、サービスの起動であれば restore、サービスの停止であれば remove を指定します。
# /opt/LifeKeeper/bin/perform_action -t tag -a action
例えば、powergres-/share/data というタグ名の PowerGres リソースのサービスを停止するには以下のように perform_action コマンドを実行します。
# /opt/LifeKeeper/bin/perform_action -t powergres-/share/data -a remove
フェイルオーバ
アクティブサーバを停止することによってすべてのリソースがスタンバイサーバにフェイルオーバすることを確認します。
システム停止によるフェイルオーバの確認にはアクティブサーバの Shutdown Strategy を Switchover Resources に設定しなければなりません。 設定するには LifeKeeper GUI から以下のように行います。
-
LifeKeeper GUI を起動し、ログインします。
# /opt/LifeKeeper/bin/lkGUIapp &
-
メニューから Edit、Server、Properties... を選択するとダイアログが表示されます。
-
Server からアクティブサーバを選択します。
-
タブから General を選択し、Shutdown Strategy から Switchover Resources を選択します。
-
OK をクリックするとダイアログが閉じられます。
スイッチオーバ
スタンバイサーバの PowerGres リソースのサービスを起動することによってスイッチオーバすることを確認します。
スタンバイサーバの PowerGres リソースのサービスを起動するには LifeKeeper GUI から以下のように行います。
PowerGres リソースのサービスの起動・停止については こちら も参照してください。
-
LifeKeeper GUI を起動し、ログインします。
# /opt/LifeKeeper/bin/lkGUIapp &
-
メニューから Edit、Resource、In Service... を選択するとダイアログが表示されます。
-
Server からスタンバイサーバを選択し、Next をクリックします。
-
Resource(s) からサービスを起動する PowerGres リソースを選択し、Next をクリックします。
-
In Service をクリックすると PowerGres リソースのスイッチオーバが開始されます。
-
Done をクリックするとダイアログが閉じられます。
コマンドラインからスタンバイサーバの PowerGres リソースのサービスを起動するには root ユーザで以下のように lcdremexec コマンドを実行します。 lcdremexec コマンドはコミュニケーションパスを通してコマンドを実行するコマンドです。
cmd には実行するコマンドを指定します。 destname には cmd を実行するサーバを指定します。
# /opt/LifeKeeper/bin/lcdremexec -d destname -- cmd
例えば srapc2051 というスタンバイサーバで powergres-/share/data というタグ名の PowerGres リソースのサービスを起動するには以下のように lcdremexec コマンドを実行します。
# /opt/LifeKeeper/bin/lcdremexec -d srapc2051 -- perform_action -t powergres-/share/data -a restore
perform_action コマンドについては こちら も参照してください。
よくあるご質問
LifeKeeper、PowerGres に関するよくあるご質問については以下の URL も合わせて参照してください。
- LifeKeeper ユーザサイト (サイオステクノロジー)
- LifeKeeper FAQ (サイオステクノロジー)
- PowerGres よくあるご質問
質問: TCP コミュニケーションパスの IP アドレスはどのように変更するのでしょうか?
回答: TCP コミュニケーションパスの IP アドレスを変更するにはその TCP コミュニケーションパスを削除してからもう 1 度作成してください。
質問: LifeKeeper GUI にログインするときのパスワードはどのように変更するのでしょうか?
回答: LifeKeeper GUI にログインするときのパスワードを変更するには以下のように lkpasswd コマンドを実行します。 user にはパスワードを変更するユーザ名を指定します。 新しいパスワードを 2 度入力するとパスワードが変更されます。
# /opt/LifeKeeper/bin/lkpasswd user
なお、このパスワードはシステムのパスワードとは異なるため、パスワードを変更することによってシステムのパスワードは変更されません。
質問: Web ブラウザから http://hostname:81/ にアクセスしましたが LifeKeeper GUI が起動しません。
回答: 下記の画面が表示されなければアクセスするサーバが誤っているか、アクセスしたサーバで LifeKeeper が起動していない可能性があります。 アクセスするサーバが正しいことと、そのサーバで LifeKeeper が起動していることを確認してください。
画面は表示されるが Start ボタンが表示されないときは Web ブラウザに Java Plug-in がインストールされていない可能性があります。 Web ブラウザから以下の URL にアクセスし、Java Plug-in をインストールしてください。
質問: LifeKeeper GUI から PowerGres を起動しようとしたところ、以下のログが出力され起動できませんでした。 また、このとき postgres プロセスは起動しているようです。
Unable to start the PowerGres server: psql failed: Password for user postgres: psql: fe_sendauth: no password supplied
回答: PowerGres on Linux リカバリキットでは PowerGres on Linux が起動していることを確認するため、PowerGres スーパーユーザがローカルホスト (127.0.0.1) から template1 データベースに対して接続を行っています。
その際にパスワード入力の自動化を行っていないために、データベースに接続できず LifeKeeper から起動確認できないため、エラーとなります。 パスワードファイルの作成 を確認をしてください。