運用管理

ここでは 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 のマニュアルはサイオステクノロジーのドキュメントサイトから参照できます。

ドキュメントサイト (サイオステクノロジー)

http://jpdocs.us.sios.com/

オンラインマニュアル

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 マニュアル

http://powergres.sraoss.co.jp/manual/onLinux/V91/linux/

PowerGres Manager マニュアル

http://powergres.sraoss.co.jp/manual/onLinux/V91/admin/

なお、PowerGres のマニュアルには PostgreSQL と異なることを中心に記述されているので、PostgreSQL に関する詳しい説明は PostgreSQL のドキュメントを参照してください。 PostgreSQL のドキュメントは /usr/share/doc/powergres91-version ディレクトリにインストールされています。

なお、PostgreSQL のドキュメントは以下の URL からも参照できます。

PostgreSQL 文書 (日本語)

http://www.postgresql.jp/document/9.1/html/

PostgreSQL Documentation (英語)

http://www.postgresql.org/docs/9.1/static/

モニタリング

正常状態の確認

LifeKeeper GUI からの確認

コマンドラインからの確認

コマンドラインから正常な状態を確認するには以下のように lcdstatus コマンドを実行します。

# /opt/LifeKeeper/bin/lcdstatus -q

エラーの表示例

以下は、共有ディスクを用いた場合の例です。

コミュニケーションパスのエラー

ネットワークのエラー

サーバのエラー

LifeKeeper ログの表示

LifeKeeper GUI からの表示

  1. LifeKeeper GUI を起動し、ログインします。

    # /opt/LifeKeeper/bin/lkGUIapp &
    
  2. メニューから Edit、Server、View Logs... を選択するとダイアログが表示されます。

  3. Server からログを表示するサーバを選択します。

  4. Log Type からログの種類を選択します。

  5. Log Size からログのサイズを選択します。

  6. OK をクリックするとダイアログが閉じられます。

コマンドラインからの表示

LifeKeeper のログはパイプと循環ファイルによって実装されているため、テキストエディタから読み込むことができません。 コマンドラインからログを表示するには root ユーザで以下のように lk_log コマンドを実行します。 lk_log コマンドはログを表示するためのコマンドです。

log には ログの種類 (logLCDLCMTTYLCMremote_execGUISNMP のいずれか) を指定します。

# /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 トラップによってサービスの起動やフェイルオーバーなどのイベントを送信することができます。

  1. lk_configsnmp コマンドによってイベントを送信するサーバの IP アドレスを設定します。 ip にはイベントを受信するサーバの IP アドレスを指定します。

    # /opt/LifeKeeper/bin/lk_configsnmp ip
    
  2. /etc/snmp/snmp.conf ファイルに以下の記述を追加します。

    defCommunity public
    
  3. イベントを受信するサーバで以下のように snmptrapd コマンドを実行します。

    # snmptrapd -P
    
  4. 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 からの起動と停止

  1. LifeKeeper GUI を起動し、ログインします。

    # /opt/LifeKeeper/bin/lkGUIapp &
    
  2. メニューから Edit、Resource、サービスの起動であれば In Service...、サービスの停止であれば Out of Service... を選択するとダイアログが表示されます。

  3. サービスの起動であれば Server からサービスを起動するサーバを選択し、Next をクリックします。

  4. Resource(s) からサービスを起動・停止する PowerGres リソースを選択し、Next をクリックします。

  5. PowerGres リソースのサービスの起動であれば In Service、停止であれば Out of Service をクリックすると PowerGres リソースのサービスの起動、停止が開始されます。

  6. 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 から以下のように行います。

  1. LifeKeeper GUI を起動し、ログインします。

    # /opt/LifeKeeper/bin/lkGUIapp &
    
  2. メニューから Edit、Server、Properties... を選択するとダイアログが表示されます。

  3. Server からアクティブサーバを選択します。

  4. タブから General を選択し、Shutdown Strategy から Switchover Resources を選択します。

  5. OK をクリックするとダイアログが閉じられます。

スイッチオーバ

スタンバイサーバの PowerGres リソースのサービスを起動することによってスイッチオーバすることを確認します。

スタンバイサーバの PowerGres リソースのサービスを起動するには LifeKeeper GUI から以下のように行います。

PowerGres リソースのサービスの起動・停止については こちら も参照してください。

  1. LifeKeeper GUI を起動し、ログインします。

    # /opt/LifeKeeper/bin/lkGUIapp &
    
  2. メニューから Edit、Resource、In Service... を選択するとダイアログが表示されます。

  3. Server からスタンバイサーバを選択し、Next をクリックします。

  4. Resource(s) からサービスを起動する PowerGres リソースを選択し、Next をクリックします。

  5. In Service をクリックすると PowerGres リソースのスイッチオーバが開始されます。

  6. 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 ユーザサイト (サイオステクノロジー)

http://sios-steeleye.sios.com/

LifeKeeper FAQ (サイオステクノロジー)

http://sios-steeleye.sios.com/modules/smartfaq/

PowerGres よくあるご質問

http://powergres.sraoss.co.jp/s/ja/faq.php

質問: 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 をインストールしてください。

http://www.java.com/ja/

質問: 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 から起動確認できないため、エラーとなります。 パスワードファイルの作成 を確認をしてください。