與儲存區相關的某些 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 感應碼由 H:0x0 D:0x2 P:0x00x5 0x25 0x0 兩個欄位來表示。

第一個欄位 H:0x0 D:0x2 P:0x0 是儲存區環境中主機、裝置和外掛程式這三個元件的 SCSI 狀態碼的組合。SCSI 狀態碼用於確定 SCSI 命令的成功或失敗。若要解譯每個 SCSI 狀態碼,請參閱 http://www.t10.org/lists/2status.htm

備註︰

T10 說明文件中的十六進位數字使用 NNNh 格式,而 ESXi 記錄檔中的 SCSI 感應碼為 0xNNN 格式。例如 0x2 = 02h。

對於以上範例的狀態欄位,您將獲得以下解譯:H:0x0 D:0x2 P:0x0 = H(host):GOOD D(device):CHECK CONDITION P(plug-in):GOOD

一般 SCSI 錯誤訊息中的第二個欄位提供了有關錯誤的詳細資訊。它是感應金鑰 (sense)、附加感應碼 (asc) 和附加感應碼辨識符號 (ascq) 參數的組合。

例如,以上錯誤訊息中的 0x5 0x25 0x0 欄位可表示為 sense=5 asc=25 ascq=0

若要解譯感應金鑰,請參閱 http://www.t10.org/lists/2sensekey.htm

若要確定附加感應碼 (asc) 和附加感應碼辨識符號 (ascq) 的涵義,請一起使用這兩種代碼。如需詳細資料,請參閱 http://www.t10.org/lists/2asc.htm

對於 0x5 0x25 0x0 欄位,您應該會獲得以下解譯:

sense=5 (不合法的要求),ASC=25 ASCQ=0 (不支援邏輯單元)