トラブルシューティング手順は、問題の原因を特定するための情報を収集することから始めます。Cluster Admin GUIのPRIMECLUSTERログビューア機能を使用すると、コンソールのメッセージの検索や、/var/adm/messagesファイル内のメッセージの検索ができます。cftool(1M)コマンドを使用すると、状態、構成情報を確認できます。PRIMECLUSTERログビューアを使用するには、プルダウンメニューの [ツール] - [syslogメッセージの表示] を選択します。これによってログメッセージが表示されます。ログは日付/時刻フィルタを使用して検索したり、重要度レベルに基づいてメッセージをスキャンすることができます。日付/時刻に基づいて検索するには、日付/時刻フィルタを使用し、<フィルタ>ボタンを押します。重要度レベルに基づいて検索するには、<重要度>ボタンをクリックし、検索の対象となる重要度レベルを選択します。キーワードを使用してログを検索することもできます。PRIMECLUSTERログビューアウィンドウを切り離すには、<デタッチ>ボタンをクリックします。再び接続するには<アタッチ>ボタンをクリックします。
情報を以下の手順に従って収集します。
識別子CFの付いたコンソールのメッセージを参照します。
/var/adm/messagesのメッセージを参照します。複数ファイルの参照が必要になる場合もあります (/var/adm/messages.N)。
cftoolを使用します。
cftool -l :ローカルノード状態の確認
cftool -d :デバイス構成の確認
cftool -n :クラスタノード状態の確認
cftool -r :ルート状態の確認
CFからのエラーログメッセージは常に/var/adm/messagesファイルにあります。一部のメッセージはコンソールにも表示されます。その他のデバイスドライバおよびシステムソフトウェアのエラーはコンソールのみに出力されます。システムのエラーを十分理解するには、コンソールとエラーログの両方のメッセージを参照する必要があります。/var/adm/messagesファイルについては“PRIMECLUSTER 活用ガイド<メッセージ集>”の“4.5 エラー(ERROR)メッセージ”に記載されています。メッセージ一覧にはエラーの原因が記述されています。この情報が診断を進めていく手がかりになります。
システムのすべてのコンポーネントのエラーメッセージが/var/adm/messagesファイルまたはコンソールに出力されます。PRIMECLUSTER製品のエラーメッセージだけでなく、すべてのメッセージを参照することが重要です。以下は/var/adm/messagesファイルのCFエラーメッセージ例です。
Nov 9 08:51:45 fuji2 unix: LOG3.0973788705 1080024 1008 4 0 1.0 cf:ens CF:Icf Error: (service err_type route_src route_dst). (0 0 0 0 0 0 0 0 2 0 0 0 5 0 0 0 5)
最初の80バイトは次のようなlog3のプリフィックスです。
Nov 9 08:51:45 fuji2 unix: LOG3.0973788705 1080024 1008 4 0 1.0 cf:ens
これはログファイルに出力される各CFメッセージの標準的なプリフィックスです。このプリフィックスには日時、ノード名、log3固有情報が記載されています。重要な情報は日時とノード名です。残りは次のようなCFのエラーメッセージです。
CF: Icf Error: (service err_type route_src route_dst). (0 0 0 0 0 0 0 0 2 0 0 0 5 0 0 0 5)
これはcf:ensサービス (つまりCluster Foundation、イベント通知サービス) からのメッセージで、エラーはCF: Icf Errorです。このエラーはハートビートの喪失やルートダウンを示すものであることが 、“PRIMECLUSTER 活用ガイド<メッセージ集>”の“5.1.4 エラー(ERROR)メッセージ”に記述されています。これでクラスタインタコネクトを詳しく調べる必要があるということがわかります。次の例は/var/adm/messagesファイルのより大きな部分を示したものです。
fuji2# tail /var/adm/messages
Nov 9 08:51:45 fuji2 unix:SUNW,pci-gem1:Link Down - cable problem?
Nov 9 08:51:45 fuji2 unix:SUNW,pci-gem0:Link Down - cable problem?
Nov 9 08:51:45 fuji2 unix:LOG3.0973788705 1080024 1008 4
0 1.0 cf:ens CF:Icf Error: (service err_type route_src route_dst). (0 0 0 0 0 0 0 0 2 0 0 0 5 0 0 0 5)
Nov 9 08:51:46 fuji2 unix:SUNW,pci-gem0:Link Down - cable problem?
Nov 9 08:51:48 fuji2 last message repeated 1 time
Nov 9 08:51:48 fuji2 unix:LOG3.0973788708 1080024 1008 4
0 1.0 cf:ens CF:Icf Error: (service err_type route_src route_dst). (0 0 0 0 0 0 0 0 2 0 0 0 4 0 0 0 4)
Nov 9 08:51:50 fuji2 unix:SUNW,pci-gem0:Link Down - cable problem?
Nov 9 08:51:52 fuji2 last message repeated 1 time
Nov 9 08:51:53 fuji2 unix:LOG3.0973788713 1080024 1008 4 0 1.0 cf:ens CF:Icf Error: (service err_type route_src route_dst). (0 0 0 0 0 0 0 0 2 0 0 0 4 0 0 0 4)
Nov 9 08:51:53 fuji2 unix:LOG3.0973788713 1080024 1015 5
0 1.0 cf:ens CF:Node fuji2 Left Cluster POKE. (0 0 2)
Nov 9 08:51:53 fuji2 unix:Current Nodee Status = 0
上記はイーサネットコントローラのエラーメッセージで、おそらくケーブルに問題があるためにリンクが停止していることを示しています。これが問題解決の手がかりになります。インタコネクトに使用しているイーサネットに問題があることがわかったためです。今度はケーブルとハブの電源がオンになっていて、確実に接続されているかどうかを確認します。
前述のcftoolコマンドのオプションを指定して情報を取得します。以下に例を示します。
fuji2# cftool -l
Node Number State Os Cpu
fuji2 2 UP Solaris Sparc
これはローカルノードがノード番号2でクラスタに参入し、現在UP状態であることを示しています。つまり、クラスタ稼動時の正常な状態です。次のような応答も考えられます。
fuji2# cftool -l
Node Number State Os
fuji2 -- COMINGUP --
これはCFドライバがロード済みで、ノードがクラスタへの参入を試行中であることを示しています。この状態が数分間続いた場合は問題があるため、/var/adm/messagesファイルを確認する必要があります。メッセージの内容は以下のとおりです。
fuji2# tail /var/adm/messages
May 30 17:36:39 fuji2 unix:pseudo-device:fcp0
May 30 17:36:39 fuji2 unix:fcp0 is /pseudo/fcp@0
May 30 17:36:53 fuji2 unix:LOG3.0991269413 1080024 1007 5
0 1.0 cf:eventlog CF:(TRACE): JoinServer:
Startup.
May 30 17:36:53 fuji2 unix:LOG3.0991269413 1080024 1009 5
0 1.0 cf:eventlog CF:Giving UP Mastering (Cluster already Running).
May 30 17:36:53 fuji2 unix:LOG3.0991269413 1080024 1006 4 0 1.0 cf:eventlog CF:fuji4:busy: local node not DOWN: retrying.
ノードは他のノード (fuji4) 上でLEFTCLUSTER状態になっています。この状態を解決するには、“第5章 LEFTCLUSTER状態”のLEFTCLUSTER状態の説明およびこの状態の解決方法を参照してください。
次のcftoolのオプションを実行すると、デバイスの状態が表示されます。
fuji2# cftool -d
Number Device Type Speed Mtu State Configured Address
1 /dev/hme0 4 100 1432 UP YES 00.80.17.28.21.a6
2 /dev/hme3 4 100 1432 UP YES 08.00.20.ae.33.ef
3 /dev/hme4 4 100 1432 UP YES 08.00.20.b7.75.8f
4 /dev/ge0 4 1000 1432 UP YES 08.00.20.b2.1b.a2
5 /dev/ge1 4 1000 1432 UP YES 08.00.20.b2.1b.b
Configured欄にYESの行があることから、クラスタにインタコネクトが構成されていることがわかります。これで使用中のデバイス名およびデバイス番号がわかり、トラブルシューティングをさらに進めることができます。
cftool -nコマンドを実行すると、クラスタのすべてのノードの状態が表示されます。このコマンドを実行するには、ノードがクラスタのメンバであり、cftool -lの実行結果がUPであることが必要です。
fuji2# cftool -n
Node Numbe State Os Cpu
fuji2 1 UP Solaris Sparc
fuji3 2 UP Solaris Sparc
クラスタがUP状態の2つのノード、fuji2とfuji3で構成されていることがわかります。ノードがクラスタに参入していない場合、コマンドは参入が成功するまで待機します。
cftool -rを実行すると、ルートとルートの現在の状態が表示されます。
fuji2# cftool -r
Node Number Srcdev Dstdev Type State Destaddr
fuji2 1 4 4 4 UP 08.00.20.b2.1b.cc
fuji2 1 5 5 4 UP 08.00.20.b2.1b.94
fuji3 2 4 4 4 UP 08.00.20.b2.1b.a2
fuji3 2 5 5 4 UP 08.00.20.b2.1b.b5
すべてのルートがUP状態になっています。ルートがDOWN状態の場合、上記のエラーログに該当するデバイスに関連するエラーメッセージが出力されるはずです。最低でもルートが停止していることを通知するCFエラーがエラーログに出力されるはずです。デバイスドライバから関連エラーが出力されない場合の診断手順を以下に示します。
ノードの最後のルートはDOWN状態にはならずにUP状態のままで、ソフトウェアがノードへのアクセスの試行を続けることができるようになっています。ノードがクラスタから離脱した場合または停止した場合、ルートテーブルにノードのエントリは残り、1つのルートがUPのままになります。ノード状態を表示するコマンドはcftool -nのみです。以下に例を示します。
fuji2# cftool -r
Node Number Srcdev Dstdev Type State Destaddr
fuji2 2 3 2 4 UP 08.00.20.bd.5e.a1
fuji2 1 3 3 4 UP 08.00.20.bd.60.e4
fuji2# cftool -n
Node Number State Os Cpu
fuji2 2 UP Solaris Sparc
fuji3 1 LEFTCLUSTER Solaris Sparc