iSCSI 環境をデバッグしようとする場合には、config ログ機能を使用すると役立つことがあります。 この情報は、構成エラーの解決に役立ちます。最も一般的なエラーのシナリオは、cfgmgr -vl ics0 が正常に完了しても、hdisk がまったく作成されない、または hdisk が予想より少なく作成されているというものです。 このようなシナリオを招く共通した構成エラーが、いくつかあります。 cfglog を使用して、これらのいくつかの共通エラーのうち、どれが発生したかを判別できることがあります。
以下のコマンドを実行して、キャプチャーされた config ログ・データを表示することができます。
alog -o -t cfg
ログ・ファイルの位置など、ログ・ファイルの構成に関する情報を表示するには、次のコマンドを実行することができます。
alog -L -t cfg
config ロギングが使用可能になっていない場合、以下のように実行して使用可能にすることができます。
export CFGLOG="" echo "Create cfglog" | alog -t cfg
以下のコマンドを実行すると、有用なデバッグ方法となります。
rmdev -Rl ics<x> rm /usr/adm/ras/cfglog echo "Create cfglog" | alog -t cfg cfgmgr -l ics<x> alog -o -t cfg
いくつかの共通エラーにより、iSCSI プロトコル・デバイス・ドライバーを開こうとしても失敗に終わることがあります。 この場合、cfglog には次のようなメッセージが含まれます。ここで XX は、errno.h のエラー番号です。
open of /dev/iscsi0 returned XX" where XX is an error number from errno.h.
オープンによって戻された値で、何が悪かったのかがわかります。 構成エラーが原因となる 2 つの共通した値は、69 (ENETDOWN) および 70 (ENETUNREACH) です。
戻りコード 69 は、iSCSI アダプターに接続されたリンクが物理的にダウンしていることを示します。 ケーブルが正しく接続されているかどうかを確認してください。
戻りコード 70 は、リンクはアップしていますが、アダプターは DHCP からクライアント・アドレスを入手できないことを示します。 アダプターの host_addr 属性が有効な IP アドレスに設定されていない場合、アダプターは DHCP サーバーから IP アドレスを獲得しようとします。 IP アドレスを提供する DHCP サーバーがないと、オープンは失敗に終わり、戻りコード 70 が戻されます。
オープンが正常に行なわれると、構成メソッドはデバイスを始動しようとします。 SCIOLSTART ioctl が失敗すると、hdisks のディスカバリーが妨げられます。 SCIOLSTART の失敗は、次のように config ログに記録されます。
SCIOLSTART failed, errno = E, status_class = C, status_detail = D
ステータス・クラスおよびステータス詳細の C または D の値がゼロ以外の場合には、iSCSI ログインが失敗したことを示します。 ステータス・クラスおよびステータス詳細は、iSCSI ログイン応答で戻された値です。 ステータス・クラスおよびステータス詳細の値の意味は、iSCSI RFC 3270 に説明されています。
SCIOLSTART ioctl は、iSCSI ログインを試みる前に失敗することもあります。 ステータス・クラスとステータス詳細が両方ともゼロで、Errno がゼロ以外の場合には、ioctl はログインが行なわれるより前に失敗しました。
SCIOLSTART ioctl によって戻される 2 つの共通した errno 値は、73 (ECONNRESET) と 81 (EHOSTUNREACH) です。
errno 73 は、ターゲット IP アドレスが、iSCSI アダプターの試みた TCP 接続を拒否したことを示します。 考えられる原因の 1 つは、/etc/iscsi/targetshwx 構成ファイルに誤った TCP ポート番号が指定されているものです。
errno 81 は、iSCSI アダプターがターゲットの IP アドレスから応答を受け取らなかったことを示します。 すなわち、iSCSI アダプターはターゲットの IP アドレスを ping できません。