« やる夫がAdaptec SCSI Card ドライバインストールするようです。 | トップページ | [shell] やる夫がお手軽監視スクリプトを作成したようです。 »

2008-01-04

やる夫がCLUSTERPROを操作するようです。

CLUSTERPRO モニタ状況

# /usr/sbin/clpstat -m
=====================  MONITOR RESOURCE STATUS  =====================
Cluster : cluster
   server0 : indigo01
  *server1 : indigo02 ←こちらが主系で活躍中

  Monitor0 [Postgresexecmonitor : Normal]
--------------------------------------------------------------------
   server0 [o] : Offline
   server1 [o] : Online ←indigo02でDBが生きてるかの監視稼動中

  Monitor1 [Webipwmonitor : Caution]
--------------------------------------------------------------------
   server0 [o] : Suspend
   server1 [o] : Suspend

  Monitor2 [eth0monitor : Normal]
--------------------------------------------------------------------
   server0 [o] : Online
   server1 [o] : Online

  Monitor3 [eth1monitor : Normal]
--------------------------------------------------------------------
   server0 [o] : Online
   server1 [o] : Online

  Monitor4 [failipwmonitor : Caution]
--------------------------------------------------------------------
   server0 [o] : Suspend
   server1 [o] : Suspend

  Monitor5 [sdb2rawwmonitor : Normal]
--------------------------------------------------------------------
   server0 [o] : Online
   server1 [o] : Online

  Monitor6 [sdc2rawwmonitor : Normal]
--------------------------------------------------------------------
   server0 [o] : Online
   server1 [o] : Online

  Monitor7 [sdd2rawwmonitor : Normal]
--------------------------------------------------------------------
   server0 [o] : Online
   server1 [o] : Online

  Monitor8 [userw : Normal]
--------------------------------------------------------------------
   server0 [o] : Online
   server1 [o] : Online
=====================================================================

CLUSTERPRO FIP表示

# /usr/sbin/clpstat --rsc
=======================  CLUSTER INFORMATION  =======================
   [Resource0 : WebManagerFIP1]
     Type                       : fip
     Comment                    : floating ip resource
     IP Address                 : 192.168.2.20
   [Resource0 : Postgresexec]
     Type                       : exec
     Comment                    :
     Start Script
       Path                     : start.sh
     Stop Script
       Path                     : stop.sh
   [Resource1 : PostgresexecMON]
     Type                       : exec
     Comment                    :
     Start Script
       Path                     : start.sh
     Stop Script
       Path                     : stop.sh
   [Resource2 : fip1]
     Type                       : fip
     Comment                    :
     IP Address                 : 192.168.2.19<--これ!
   [Resource3 : sdb3disk]
     Type                       : disk
     Comment                    :
     Device Name                : /dev/sdb3
     File System                : ext3
     Mount Point                : /service/data0
   [Resource4 : sdc3disk]
     Type                       : disk
     Comment                    :
     Device Name                : /dev/sdc3
     File System                : ext3
     Mount Point                : /service/data1
   [Resource5 : sdd3disk]
     Type                       : disk
     Comment                    :
     Device Name                : /dev/sdd3
     File System                : ext3
     Mount Point                : /service/data2
=====================================================================

Monitor0 監視スクリプト

下記ディレクトリ配下にある、シェルスクリプトで、PostgreSQL、MySQLの上げ下げを行っています。

# cat /opt/nec/clusterpro/scripts/failover1/PostgresexecMON/start.sh
# cat /opt/nec/clusterpro/scripts/failover1/MySQLexecMON/start.sh

その中で「clp_mysql50mon」などの監視プロセスを下記のように立ち上げている。

# clp_mysql50mon mysqlwatch -d mysql -a 192.168.2.20

clp_mysql50monはmysqlwatchというテーブルを”mysql”というDBに対して作成および更新をかけるプロセスで、そのプロセスがDBにアクセス出来なかった場合落下するので、その落下が監視項目にひっかかるという具合。下記にその例を示す。

CLUSTERPRO: <type: rm><event: 1> Monitor MySQLexecmonitor start.
CLUSTERPRO: <type: mysql50mon><event: 1> The clp_mysql50mon has started watching MySQL. [ID:mysqlwatch]
CLUSTERPRO: <type: mysql50mon><event: 0> MySQL:Lost connection to MySQL server during query
CLUSTERPRO: <type: mysql50mon><event: 21> Failed to connect to the database 'vote'. [ID:mysqlwatch]
CLUSTERPRO: <type: mysql50mon><event: 6> The clp_mysql50mon will terminate. [ID:mysqlwatch]
CLUSTERPRO: <type: rm><event: 9> Monitor MySQLexecmonitor failed. (1 : Process does not exist. (pid=23986))
CLUSTERPRO: <type: rm><event: 2> Monitor MySQLexecmonitor stop.
CLUSTERPRO: <type: rm><event: 14> failover1 was failover for failure in MySQLexecmonitor.

この場合はstart.sh経由でclp_mysql50monがスタートするが、MySQL:user:rootが何らかの理由でDB[vote]にアクセスできずにclp_mysql50monプロセスが落下。そのモニタ項目であるMonitor MySQLexecmonitorが検知されfailoverが始まる。

これを改善するには、mysql> SHOW GRANTS FOR DB名;などでアクセス権限を確認して、間違いがあれば修正する。

CLUSTERPRO 稼動ログ

こんな感じで引っ掛ければよいです。

# tail -f /var/log/messagesgrep |grep CLUSTERPRO

CLUSTERPRO 監視停止+起動

監視停止 ※両サーバで実施すること

# clpmonctrl -s
# clpstat
  • <server>が”Online”と”Normal”であることを確認。
  • <group>が”Online”であることを確認。
  • <monitor>が”Caution”であることを確認。

# clpstat -m
  • モニタリソースが”Suspend”になっている筈。

監視起動 ※両サーバで実施すること

# clpmonctrl -r
# clpstat
  • <server>が”Online”と”Normal”であることを確認。
  • <group>が”Online”であることを確認。
  • <monitor>が”Normal”であることを確認。

# clpstat -m
  • モニタリソースが”Online”になっている筈。

おまけ

リファレンスガイド
http://www.ace.comp.nec.co.jp/CLUSTERPRO/clp/linux/document/x10_l.html

|

« やる夫がAdaptec SCSI Card ドライバインストールするようです。 | トップページ | [shell] やる夫がお手軽監視スクリプトを作成したようです。 »

アプリケーション」カテゴリの記事

コメント

コメントを書く



(ウェブ上には掲載しません)




トラックバック

この記事のトラックバックURL:
http://app.f.cocolog-nifty.com/t/trackback/488651/9714879

この記事へのトラックバック一覧です: やる夫がCLUSTERPROを操作するようです。:

« やる夫がAdaptec SCSI Card ドライバインストールするようです。 | トップページ | [shell] やる夫がお手軽監視スクリプトを作成したようです。 »