トラブルシューティング手順は、問題の原因を特定するための情報を収集することから始めます。Cluster Admin GUIのPRIMECLUSTERログビューア機能を使用すると、コンソールのメッセージの検索や、/var/log/messagesファイル内のメッセージの検索ができます。cftool(1M)コマンドを使用すると、状態、構成情報を確認できます。PRIMECLUSTERログビューアを使用するには、プルダウンメニューの [ツール] - [syslogメッセージの表示] を選択します (詳細は“4.8 PRIMECLUSTERログビューアによる表示”を参照してください)。これによってログメッセージが表示されます。ログは日付/時刻フィルタを使用して検索したり、重要度レベルに基づいてメッセージをスキャンすることができます。日付/時刻に基づいて検索するには、日付/時刻フィルタを使用し、<フィルタ>ボタンを押します。重要度レベルに基づいて検索するには、<重要度>ボタンをクリックし、検索の対象となる重要度レベルを選択します。キーワードを使用してログを検索することもできます。PRIMECLUSTERログビューアウィンドウを切り離すには、<デタッチ>ボタンをクリックします。再び接続するには<アタッチ>ボタンをクリックします。
情報を以下の手順に従って収集します。
識別子CFの付いたコンソールのメッセージを参照します。
/var/log/messagesのメッセージを参照します。複数ファイルの参照が必要になる場合もあります (/var/log/messages.N)。
cftoolは次のように使用します。
cftool -l :ローカルノード状態の確認
cftool -d :デバイス構成の確認
cftool -n :クラスタノード状態の確認
cftool -r :ルート状態の確認
CFからのエラーログメッセージは常に/var/log/messagesファイルにあります。一部のメッセージはコンソールにも表示されます。その他のデバイスドライバおよびシステムソフトウェアのエラーはコンソールのみに出力されます。システムのエラーを十分理解するには、コンソールとエラーログの両方のメッセージを参照する必要があります。/var/log/messagesファイルについては“PRIMECLUSTER 活用ガイド<メッセージ集>”の“4.5 エラー(ERROR)メッセージ”に記載されています。メッセージ一覧にはエラーの原因が記述されています。この情報が診断を進めていく手がかりになります。
システムのすべてのコンポーネントのエラーメッセージが/var/log/messagesファイルまたはコンソールに出力されます。PRIMECLUSTER製品のエラーメッセージだけでなく、すべてのメッセージを参照することが重要です。以下は/var/log/messagesファイルのCFエラーメッセージ例です。
Aug 26 13:31:05 fuji2 kernel: LOG3.0429320 1080024 100014 0 1.0 CF: Giving UP Mastering (Cluster already Running).
メッセージの構成は以下のとおりです。
最初の80バイトは次のようなlog3のプリフィックスです。
Aug 26 13:31:05 fuji2 kernel: LOG3. .0429320 1080024 100014 0 1.0 cf:elmlog
これはログファイルに出力される各CFメッセージの標準的なプリフィックスです。このプリフィックスには日時、ノード名、log3固有情報が記載されています。重要な情報は日時とノード名です。残りは次のようなCFのエラーメッセージです。
CF: Giving UP Mastering (Cluster already Running).
このメッセージは、ノードが参入サーバを検出し、新規クラスタを作成する代わりに既存のクラスタに参入した場合に出力されます。メッセージの詳細については“PRIMECLUSTER 活用ガイド<メッセージ集>”の“第5章 CF のメッセージ”を参照してください。
前述のcftool(1M)コマンドのオプションを指定して情報を取得します。以下に例を示します。
root@fuji2> cftool -l
Node Number State Os Cpu Flags
fuji2 2 UP Linux Pentium 0
これはローカルノードがノード番号2でクラスタに参入し、現在UP状態であることを示しています。つまり、クラスタ稼動時の正常な状態です。次のような応答も考えられます。
root@fuji2> cftool -l
Node Number State Os Cpu Flags
fuji2 -- COMINGUP -- --
これはCFドライバがロード済みで、ノードがクラスタへの参入を試行中であることを示しています。この状態が数分間続いた場合は問題があるため、/var/log/messagesファイルを確認する必要があります。メッセージの内容は以下のとおりです。
root@fuji2> tail /var/log/messages
Aug 28 10:38:25 fuji2 kernel: CF: (TRACE): Load: Complete.
Aug 28 10:38:25 fuji2 kernel: CF: (TRACE): JoinServer: Startup.
Aug 28 10:38:25 fuji2 kernel: CF: Giving UP Mastering (Cluster already Running).
Aug 28 10:38:25 fuji2 kernel: CF: fuji2: busy: local node not DOWN: retrying.
ノードは他のノード (fuji4) 上でLEFTCLUSTER状態になっています。この状態を解決するには、“第5章 LEFTCLUSTER状態”のLEFTCLUSTER状態の説明およびこの状態の解決方法を参照してください。
次のcftool(1M)のオプションを実行すると、デバイスの状態が表示されます。
root@fuji2> cftool -d
Number Device Type Speed Mtu State Configured Address
1 eth0 4 100 1432 UP YES 00.03.47.c2.a8.82
2 eth1 4 100 1432 UP YES 00.02.b3.88.09.f1
3 eth2 4 100 1432 UP NO 00.02.b3.88.09.ea
Configured欄にYESの行があることから、クラスタに2つのインタコネクトが構成されていることがわかります。これで使用中のデバイス名およびデバイス番号がわかり、トラブルシューティングをさらに進めることができます。
cftool -nコマンドを実行すると、クラスタのすべてのノードの状態が表示されます。このコマンドを実行するには、ノードがクラスタのメンバであり、cftool -lの実行結果がUPであることが必要です。
root@fuji2> cftool -n
Node Number State Os Cpu
fuji2 1 UP Linux Pentium
fuji3 2 UP Linux Pentium
クラスタがUP状態の2つのノード、fuji2とfuji3で構成されていることがわかります。ノードがクラスタに参入していない場合、コマンドは参入が成功するまで待機します。
cftool -rを実行すると、ルートとルートの現在の状態が表示されます。
root@fuji2> cftool -r
Node Number Srcdev Dstdev Type State Destaddr
fuji2 1 1 4 4 UP 00.03.47.c2.a8.82
fuji2 1 1 5 5 UP 00.03.47.c2.a8.cc
fuji3 2 2 4 4 UP 00.03.47.d1.af.ec
fuji3 2 2 5 5 UP 00.03.47.d1.af.ef
すべてのルートがUP状態になっています。ルートがDOWN状態の場合、上記のエラーログに該当するデバイスに関連するエラーメッセージが出力されるはずです。最低でもルートが停止していることを通知するCFエラーがエラーログに出力されるはずです。デバイスドライバから関連エラーが出力されない場合の診断手順を以下に示します。
ノードの最後のルートはDOWN状態にはならずにUP状態のままで、ソフトウェアがノードへのアクセスの試行を続けることができるようになっています。ノードがクラスタから離脱した場合または停止した場合、ルートテーブルにノードのエントリは残り、1つのルートがUPのままになります。ノード状態を表示するコマンドはcftool -nのみです。以下に例を示します。
root@fuji2> cftool -r
Node Number Srcdev Dstdev Type State Destaddr
fuji3 2 3 2 4 UP 00.03.47.d1.af.ec
fuji2 1 3 3 4 UP 00.03.47.c2.a8.82
root@fuji2> cftool -n
Node Number State Os Cpu
fuji3 1 LEFTCLUSTER Linux Pentium
fuji2 2 UP Linux Pentium