参入関連の問題はノードがクラスタに参入しようとしたときに発生します。ここでは、それまでクラスタへの参入に成功していたノードを対象に説明します。はじめてノードがクラスタに参入する場合の初期起動の問題については、動作確認のセクションを参照してください。これまでクラスタに参入できていたノードが再参入に失敗した場合、以下の手順で問題を特定します。
まず、エラーログおよびコンソールのメッセージを参照して問題の手がかりを探します。イーサネットドライバのエラーが発生していないか、その他のエラーが発生していないかなどを確認します。システムの他の部分にエラーがある場合、まずそのエラーを修正します。他のエラーを修正したら、またはシステムの他の部分にエラーがなければ、以下の手順に従います。
CFデバイスドライバはロードされているかを確認します。デバイスドライバがロードされるとログファイルにメッセージが出力され、cftool -lコマンドを実行すると、ドライバの状態が表示されます。以下のようなログファイルメッセージが表示されます。
CF: (TRACE): JoinServer: Startup.
cftool -lは以下のようなノードの状態を出力します。
fuji2# cftool -l
Node Number State Os
fuji2 -- COMINGUP --
これはドライバがロード済みで、ノードがクラスタへの参入を試行中であることを示しています。ログファイルに上記のエラーログメッセージが出力されていない場合、またはcftool -lコマンドが失敗した場合、デバイスドライバはロードされていません。CFデバイスドライバがロードされない原因が/var/adm/messagesファイルにもコンソールにも示されていない場合、CFカーネルバイナリまたはCFカーネルコマンドが破損している可能性があるので、アンインストールしてCDから再インストールする必要があります。
CFデバイスドライバがロードされると、“CF: (TRACE): JoinServer: Startup.”メッセージに従ってクラスタの参入が試行されます。参入サーバは構成済みインタコネクト上の他のノードとの通信を試みます。他の1つ以上のノードがクラスタを起動済みの場合、ノードはこのクラスタへの参入を試行します。この場合エラーログに出力されるメッセージを以下に示します。
CF: Giving UP Mastering (Cluster already Running).
エラーログにこのメッセージが出力されない場合、ノードは構成済みのインタコネクト上で行われる他のノードの通信を認識せず、固有のクラスタを起動します。以下の2つのメッセージはノードが固有のクラスタを作成したことを示します。
CF: Local Node fuji2 Created Cluster FUJI. (#0000 1) CF: Node fuji2 Joined Cluster FUJI. (#0000 1)
この時点で、CFデバイスドライバがロードされ、ノードがクラスタの参入を試行していることを確認できました。以下のリストには問題と修正処理が記述されています。調査中のノードの症状に最も近い問題を探し、そこに記述されている手順に従います。
参考
以下のエラーメッセージではlog3プリフィックスが省略されています。実際のエラーログメッセージは次のように出力されます。
Mar 10 09:47:55 fuji2 unix:LOG3.0952710475 1080024 1014 4 0 1.0 cf:ens CF: Local node is missing a route from node: fuji3
ただし、ここでは以下のように示されています。
CF: Local node is missing a route from node: fuji3
問題:
ノードが既存のクラスタに参入せず、固有のクラスタを作成してしまう。
診断:
エラーログに以下のメッセージが出力されます。
CF: (TRACE): JoinServer: Startup. CF: Local Node fuji4 Created Cluster FUJI. (#0000 1) CF: Node fuji2 Joined Cluster FUJI. (#0000 1)
これは、CFデバイスドライバがすべて正常に動作し、問題はインタコネクトで発生していることを示しています。この場合まず、ノードがインタコネクト上のクラスタの他のノードを参照できるかどうかを確認します。それには、cftoolを実行してクラスタのすべてのノードにエコー要求を送信します。
fuji2# cftool -e
Localdev Srcdev Address Cluster Node Number Joinstate
3 2 08.00.20.bd.5e.a1 FUJI fuji2 2 6
3 3 08.00.20.bd.60.ff FUJI fuji3 1 6
これはfuji3のインタコネクトデバイス3(Localdev)およびfuji2のデバイス2 (Srcdev) により、ノードfuji3がノードfuji2を参照していることを示しています。cftool -eを実行してもローカルノードしか表示されない場合は、インタコネクトに問題があります。予想されるクラスタノードの一部またはすべてが表示された場合にはCFドライバの再ロードが必要となります。この状況を把握し、当社技術員 (SE) に連絡してください。
fuji2# cfconfig -u fuji2# cfconfig -l
注意
これらのコマンドから出力はありません。エラーメッセージのみがエラーログに記録されます。
ノードがクラスタに参入していなければ、以下の“ノードがクラスタに参入せず、一部またはすべてのノードがcftool -eに応答する”の問題に進みます。
問題:
ノードがクラスタに参入せず、一部またはすべてのノードがcftool -eに応答する。
診断:
この時点でCFデバイスが正常にロードされ、ノードがクラスタ内の他の1つ以上のノードと通信可能な状態であることがわかりました。この場合、インタコネクトがメッセージを紛失している可能性が考えられます。この仮定を確かめるには繰り返しエコー要求を送信し、時間とともに結果が変化するかどうかを確認します。以下に例を示します。
fuji2# cftool -e
Localdev Srcdev Address Cluster Node Number Joinstate
3 2 08.00.20.ae.33.ef FUJI fuji1 3 6
3 2 08.00.20.bd.5e.a1 FUJI fuji2 2 6
3 3 08.00.20.bd.60.ff FUJI fuji3 1 6
fuji2# cftool -e
Localdev Srcdev Address Cluster Node Number Joinstate
3 2 08.00.20.ae.33.ef FUJI fuji1 3 6
3 2 08.00.20.bd.5e.a1 FUJI fuji2 2 6
3 3 08.00.20.bd.60.ff FUJI fuji3 1 6
3 3 08.00.20.bd.60.e4 FUJI fuji4 1 6
fuji2# cftool -e
Localdev Srcdev Address Cluster Node Number Joinstate
3 2 08.00.20.ae.33.ef FUJI fuji1 3 6
3 2 08.00.20.bd.5e.a1 FUJI fuji2 2 6
3 3 08.00.20.bd.60.ff FUJI fuji3 1 6
fuji2# cftool -e
Localdev Srcdev Address Cluster Node Number Joinstate
3 2 08.00.20.ae.33.ef FUJI fuji1 3 6
3 2 08.00.20.bd.5e.a1 FUJI fuji2 2 6
3 3 08.00.20.bd.60.ff FUJI fuji3 1 6
3 3 08.00.20.bd.60.e4 FUJI fuji4 1 6
fuji2# cftool -e
Localdev Srcdev Address Cluster Node Number Joinstate
3 2 08.00.20.ae.33.ef FUJI fuji1 3 6
3 2 08.00.20.bd.5e.a1 FUJI fuji2 2 6
3 3 08.00.20.bd.60.ff FUJI fuji3 1 6
3 3 08.00.20.bd.60.e4 FUJI fuji4 1 6
fuji2# cftool -e
Localdev Srcdev Address Cluster Node Number Joinstate
3 2 08.00.20.ae.33.ef FUJI fuji1 3 6
3 2 08.00.20.bd.5e.a1 FUJI fuji2 2 6
3 3 08.00.20.bd.60.ff FUJI fuji3 1 6
3 3 08.00.20.bd.60.e4 FUJI fuji4 1 6
各エコー要求にはノードfuji4が表示されていません。これはノードfuji4への接続にエラーがあることを示しています。この症状が見られるのはノードfuji4だけなので、このノードに焦点を絞ります。まず、ノード上のイーサネットユーティリティにエラーがないかどうかを確認します。fuji4にログインしてネットワークデバイスを参照すると、以下の結果が表示されます。
Number Device Type Speed Mtu State Configured Address 1 /dev/hme0 4 100 1432 UP NO 00.80.17.28.2c.fb 2 /dev/hme1 4 100 1432 UP NO 00.80.17.28.2d.b8 3 /dev/hme2 4 100 1432 UP YES 08.00.20.bd.60.e4
Solarisのnetstat(1M)ユーティリティは、ネットワークインタフェースに関する情報を提供します。1回目の試行では以下の情報が表示されます。
fuji4# netstat -i
Name Mtu Net/Dest Address Ipkts Ierrs Opkts Oerrs Collis Queue
lo0 8232 loopback localhost 65 0 65 0 0 0
hme0 1500 fuji4 fuji4 764055 8 9175 0 0 0
hme1 1500 fuji4-priva fuji4-priva 2279991 0 2156309 0 7318 0
このレポートにはhme2インタフェースが表示されていません。これは、TCP/IPに構成されていないインタコネクトに関するレポートをSolarisがサポートしていないためです。Solarisでhme2インタフェースに関するレポートを一時的に有効にするには、以下のとおりにifconfig plumbコマンドを実行します。
fuji4# ifconfig hme2 plumb fuji4# netstat -i Name Mtu Net/Dest Address Ipkts Ierrs Opkts Oerrs Collis Queue lo0 8232 loopback localhost 65 0 65 0 0 0 hme0 1500 fuji4 fuji4 765105 8 9380 0 0 0 hme1 1500 fuji4-priva fuji4-priva 2282613 0 2158931 0 7319 0 hme2 1500 default 0.0.0.0 752 100 417 0 0 0
hme2インタフェースの752個の入力パケット (Ipkts) に100個の入力エラー (Ierrs) があることがわかります。つまりパケットの7個に1個の割合でエラーが発生していることになり、エラー率が高すぎてPRIMECLUSTERは失敗します。fuji4がfuji2からのエコー要求に応答したりしなかったりする原因もここにあります。
ポイント
常にインタコネクトを“plumb”した方が確実です。PRIMECLUSTERの処理と干渉することはありません。
これらのエラーを解決するさらに高度な方法として、マニュアルに載っていないSolaris netstatコマンドの-kオプションを実行することもできます。
fuji4# netstat -k hme2
hme2:
ipackets 245295 ierrors 2183 opackets 250486 oerrors 0 collisions 0
defer 0 framing 830 crc 1353 sqe 0 code_violations 38 len_errors 0
ifspeed 100 buff 0 oflo 0 uflo 0 missed 0 tx_late_collisions 0
retry_error 0 first_collisions 0 nocarrier 0 inits 15 nocanput 0
allocbfail 0 runt 0 jabber 0 babble 0 tmd_error 0 tx_late_error 0
rx_late_error 0 slv_parity_error 0 tx_parity_error 0 rx_parity_error 0
slv_error_ack 0 tx_error_ack 0 rx_error_ack 0 tx_tag_error 0
rx_tag_error 0 eop_error 0 no_tmds 0 no_tbufs 0 no_rbufs 0
rx_late_collisions 0 rbytes 22563388 obytes 22729418 multircv 0 multixmt 0
brdcstrcv 472 brdcstxmt 36 norcvbuf 0 noxmtbuf 0 phy_failures 0
上記の情報の多くは問題解決の専門家向けです。ここで重要な2つの統計はcrcエラーとframingエラーです。この2つのエラータイプは最大ierrorsの数まで追加されます。この問題を解決するには、以下の手順に従います。
cftool -eの実行を繰り返し、netstat -iを参照する。cftoolの結果が常に同じで、入力エラーが発生しなくなるか、大幅に減れば、問題は解決します。
イーサネットケーブルを交換する。
イーサネットハブまたはスイッチの他のポートを使用するか、ハブまたはスイッチを交換する。または一時的にクロスコネクトケーブルを使用する。
上記の手順のいずれを実行しても問題が解決しない場合は、当社技術員 (SE) による診断が必要です。
問題:
ノードfuji3をノードfuji2のクラスタに参入させようとすると、fuji2に以下のコンソールメッセージが表示される。
Mar 10 09:47:55 fuji2 unix: LOG3.0952710475 1080024 1014 4 0 1.0 cf:ens CF:Local node is missing a route from node: fuji3 Mar 10 09:47:55 fuji2 unix:LOG3.0952710475 1080024 1014 4 0 1.0 cf:ens CF:missing route on local device:/dev/hme2 Mar 10 09:47:55 fuji2 unix:LOG3.0952710475 1080024 1014 4 0 1.0 cf:ens CF:Node fuji3 Joined Cluster FUJI. (0 1 0)
診断:
ノードfuji2の/var/adm/messagesを参照します。
メッセージ内容はコンソールと同じです。
ノードfuji3にはコンソールメッセージは表示されません。
ノードfuji3の/var/adm/messagesを参照します。
fuji2# cftool -d
Number Device Type Speed Mtu State Configured Address
1 /dev/hme0 4 100 1432 UP NO 08.00.06.0d.9f.c5
2 /dev/hme1 4 100 1432 UP YES 00.a0.c9.f0.15.c3
3 /dev/hme2 4 100 1432 UP YES 00.a0.c9.f0.14.fe
4 /dev/hme3 4 100 1432 UP NO 00.a0.c9.f0.14.fd
fuji3# cftool -d
Number Device Type Speed Mtu State Configured Address
1 /dev/hme0 4 100 1432 UP NO 08.00.06.0d.9f.c5
2 /dev/hme1 4 100 1432 UP YES 00.a0.c9.f0.15.c3
3 /dev/hme2 4 100 1432 UP YES 00.a0.c9.f0.14.fe
4 /dev/hme3 4 100 1432 UP YES 00.a0.c9.f0.14.fd
/dev/hme3 is not configured on node fuji2 Mar 10 11:00:28 fuji2 unix:WARNING:hme3:no MII link detected Mar 10 11:00:31 fuji2 unix:LOG3.0952714831 1080024 1008 4 0 1.0cf:ens CF:Icf Error:(service err_type route_src route_dst).(0 0 0 0 0 2 0 0 0 3 0 0 0 3 0 0 0) Mar 10 11:00:53 fuji2 unix:NOTICE:hme3:100 Mbps full-duplex link up Mar 10 11:01:11 fuji2 unix:LOG3.0952714871 1080024 1007 5 0 1.0cf:ens CF (TRACE):Icf:Route UP:node src dest.(0 2 0 0 0 3 0 0 0 3 0 0 0) The hme3 device or interconnect temporarily failed.
fuji2# cftool -n Node Number State Os Cpu fuji2 1 LEFTCLUSTER Solaris Sparc fuji3 2 UP Solaris Sparc
問題:
ノードfuji2の/dev/hme3が構成されていない。
Mar 10 11:00:28 fuji2 unix: WARNING: hme3: no MII link detected Mar 10 11:00:53 fuji2 unix: NOTICE: hme3: 100 Mbps full-duplex link up
診断:
ノードfuji2の/var/adm/messagesを参照します。
Mar 10 11:00:28 fuji2 unix: WARNING: hme3: no MII link detected Mar 10 11:00:31 fuji2 unix: LOG3.0952714831 1080024 1008 4 0 1.0 cf:ens CF: Icf Error: (service err_type route_src route_dst). (0 0 0 0 0 2 0 0 0 3 0 0 0 3 0 0 0) Mar 10 11:00:53 fuji2 unix: NOTICE: hme3: 100 Mbps full-duplex link up Mar 10 11:01:11 fuji2 unix: LOG3.0952714871 1080024 1007 5 0 1.0 cf:ens CF (TRACE): Icf: Route UP: node src dest. (0 2 0 0 0 3 0 0 0 3 0 0 0)
問題:
hme3デバイスまたはインタコネクトが一時的に失敗しました。クラスタノード、ケーブル、ハブのいずれかのNICに問題がある可能性があります。
LEFTCLUSTER状態のノード
SFが構成されていないため、ノードfuji2がパニックし、再起動されました。ノードfuji2のコンソールに以下のメッセージが表示されます。
Mar 10 11:23:41 fuji2 unix: LOG3.0952716221 1080024 1012 4 0 1.0 cf:ens CF: fuji2: busy: local node not down: retrying.
診断:
ノードfuji2の/var/adm/messagesを参照します。
Mar 10 11:23:41 fuji2 unix: LOG3.0952716221 1080024 1007 5 0 1.0 cf:ens CF (TRACE): JoinServer: Startup. Mar 10 11:23:41 fuji2 unix: LOG3.0952716221 1080024 1009 5 0 1.0 cf:ens CF: Giving UP Mastering (Cluster already Running). Mar 10 11:23:41 fuji2 unix: LOG3.0952716221 1080024 1012 4 0 1.0 cf:ens CF: Join postponed, server fuji3is busy.
...最後のメッセージが繰り返されます。
fuji2のコンソールにも/var/adm/messagesにも新しいメッセージはありません。
fuji2: cftool -n
Node Number State Os Cpu
fuji3 1 LEFTCLUSTER Solaris Sparc
fuji1 2 UP Solaris Sparc
問題:
ノードfuji2はクラスタを離脱しているのにDOWN宣言されていません。
診断:
この問題を解決するには以下のコマンドを入力します。
#cftool -k
このオプションを指定すると、ノードはDOWN状態になります。稼動中のノードをDOWN宣言すると重大な障害が発生し、最悪の場合にはデータが消失する可能性があります。ノードをDOWN宣言しない場合はこのcftoolコマンドのプログラムを終了してください。
Enter node number: 1 Enter name for node #1: fuji2 cftool(down): declaring node #1 (fuji2) down cftool(down): node fuji2 is down
ノードfuji2のコンソールに以下のメッセージが表示されます。
Mar 10 11:34:21 fuji2 unix: LOG3.0952716861 1080024 1005 5 0 1.0 cf:ens CF: MYCLUSTER: fuji2 is Down. (0 1 0) Mar 10 11:34:29 fuji2 unix: LOG3.0952716869 1080024 1004 5 0 1.0 cf:ens CF: Node fuji2 Joined Cluster MYCLUSTER. (0 1 0)
ノードfuji2のコンソールに以下のメッセージが表示されます。
Mar 10 11:32:37 fuji2 unix: LOG3.0952716757 1080024 1004 5 0 1.0 cf:ens CF: Node fuji2 Joined Cluster MYCLUSTER. (0 1 0)