ストレージに関連する特定の VMkernel メッセージには、SCSI 認識コードが含まれていることがあります。

問題

ESXi ホストの /var/log/vmkernel ログ ファイルを分析すると、SCSI 認識コードを含んだイベントまたはエラー メッセージが見つかります。

タスクの結果

SCSI 認識コードを解釈することができれば、ストレージ環境での問題を理解しやすくなります。SCSI 認識コードの値は T10 委員会によって割り当てられているため、コードの意味を判断するには T10 標準のドキュメントを参照する必要があります。この項目では、T10 ドキュメントを使用して SCSI 認識コードを解釈する方法について説明します。

SCSI 認識コードの解釈

次に、ESXi ログ ファイルに表示される SCSI エラー メッセージの例を示します。

2011-04-04T21:07:30.257Z cpu2:2050)ScsiDeviceIO:2315: Cmd(0x4124003edb00) 0x12, CmdSN 0x51 to dev "naa.600508XXXXXXXXXXXXX" failed H:0x0 D:0x2 P:0x0 Valid sense data:0x5 0x25 0x0

この例において、SCSI 認識コードは 2 つのフィールド H:0x0 D:0x2 P:0x0 および 0x5 0x25 0x0 によって表されています。

最初のフィールド H:0x0 D:0x2 P:0x0 は、ストレージ環境内の 3 つのコンポーネントであるホスト、デバイス、およびプラグインの SCSI 状況コードの組み合わせです。SCSI 状況コードは、SCSI コマンドの成功または失敗を判別するのに使用されます。各 SCSI 状況コードを解釈するには、http://www.t10.org/lists/2status.htmを参照してください。

注:

T10 ドキュメントの 16 進数では NNNh フォーマットを使用するのに対し、ESXi ログ ファイルの SCSI 認識コードは 0xNNN フォーマットに従います。たとえば、0x2 は 02h と同じです。

上記の例の状況フィールドの解釈は次のようになります。H:0x0 D:0x2 P:0x0 = H(ホスト):GOOD D(デバイス):CHECK CONDITION P(プラグイン):GOOD

標準的な SCSI エラー メッセージの 2 番目のフィールドは、エラーに関してより詳細な情報を示します。これは、認識キー (sense)、追加の認識コード (asc)、および追加の認識コード修飾子 (ascq) パラメータの組み合わせです。

たとえば、上記のエラー メッセージの 0x5 0x25 0x0 フィールドは、sense=5 asc=25 ascq=0 として表現できます。

認識キーを解釈するには、http://www.t10.org/lists/2sensekey.htmを参照してください。

追加認識コード (asc) および追加認識コード修飾子 (ascq) の意味を判断するには、2 つのコードを一緒に使用します。詳細については、http://www.t10.org/lists/2asc.htmを参照してください。

0x5 0x25 0x0 フィールドについては、次の解釈が得られます。

sense=5 (ILLEGAL REQUEST), ASC=25 ASCQ=0 (LOGICAL UNIT NOT SUPPORTED)