Knowledge Base

The VMware Knowledge Base provides support solutions, error messages and troubleshooting guides
 
Search the VMware Knowledge Base (KB)   View by Article ID
 

Interpreting SCSI sense codes

Details

  • The vmkernel or messages system log files on an ESX/ESXi 3.5 host are showing messages similar to: 

    • WARNING: SCSI: 5663: vmhba0:0:1:1 status = 0/8 0x0 0x0 0x0
    • StorageMonitor: 196: vmhba1:1:6:0 status = 0/1 0x0 0x0 0x0

    Note: In some versions of ESX 3.5, the advanced option Scsi.PrintCmdErrors must be enabled to view the sense codes.

  • The vmkernel or messages system log files on an ESX/ESXi 4.x host are showing messages similar to:

  • NMP: nmp_CompleteCommandForPath: Command 0x28 (0x4100060b6200) to NMP device "naa.600601608c121200f80d33192b62dd11" failed on physical path "vmhba2:C0:T0:L4" H:0x8 D:0x0 P:0x0 Possible sense data: 0x0 0x0 0x0.

  • The vmkernel.log system log file from an ESXi 5.0 host are showing messages similar to:

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

Solution

Note: This document is only for informational purposes. It does not reflect an issue with any VMware product.

SCSI status codes recorded in the ESX logs indicates I/O has failed with a given status. This condition may be temporary, transient, benign or fatal for any given workload depending on the status received. The meaning of the status should be determined by consulting the T10 standards documentation. Some SCSI status codes, when received by an ESX host, prompt path failover. For more information, see SCSI events that can trigger ESX server to fail a LUN over to another path (1003433)

Isolate the SCSI events, and focus on the hexadeximal values:

0/8 0x0 0x0 0x0
H:0x8 D:0x0 P:0x0 Possible sense data: 0x0 0x0 0x0

Use the legend and links below to decipher the status of the host and devices during the SCSI event:

For ESX/ESXi 3.5.X and earlier versions:

A/B 0xCC 0xDD 0xEE

A = SCSI Device Status (Target)
B = SCSI Host Status (Initiator)
CC = SCSI Sense Key
DD = Additional Sense Code
EE = Additional Sense Code Qualifier

For ESX/ESXi 4.0 and later versions:

H:0xA D:0xB P:0xC Possible sense data: 0xD 0xE 0xF.

A = Host status (Initiator)
B = Device Status (Target)
C = Plugin (VMware Specific)
D = Sense Key
E = Additional Sense Code
F = Additional Sense Code Qualifier

The following are references from T10 and the Linux Documentation Project which explains the above sense codes.T10 operates under INCITS and is responsible for SCSI Storage Interfaces. Its principal work is the Small Computer System Interface (SCSI), including the family of SCSI-3 projects. These code are not VMware specific, but are based on SCSI standards.

T10 operates under INCITS and is responsible for SCSI Storage Interfaces. Its principal work is the Small Computer System Interface (SCSI), including the family of SCSI-3 projects. For more information, see http://www.t10.org/intro.htm.

The references are:
  • SCSI Host Codes

    These codes potentially come from the firmware on a host adapter or from one of several hosts that an adapter driver controls. The 'host_status' field has the following values whose #defines mimic those which are only visible within the kernel (with the "SG_ERR_" removed from the front of each define). A copy of these defines can be found in sg_err.h (see Appendix A):

    SG_ERR_DID_OK [0x00] NO error

    SG_ERR_DID_NO_CONNECT [0x01] Couldn't connect before timeout period

    SG_ERR_DID_BUS_BUSY [0x02] BUS stayed busy through time out period

    SG_ERR_DID_TIME_OUT [0x03] TIMED OUT for other reason (often this an unexpected device selection timeout)

    SG_ERR_DID_BAD_TARGET [0x04] BAD target, device not responding?

    SG_ERR_DID_ABORT [0x05] Told to abort for some other reason.

    SG_ERR_DID_PARITY [0x06] Parity error. Older SCSI parallel buses have a parity bit for error detection. This probably indicates a cable or termination problem.

    SG_ERR_DID_ERROR [0x07] Internal error detected in the host adapter.

    SG_ERR_DID_RESET [0x08] The SCSI bus (or this device) has been reset. Any SCSI device on a SCSI bus is capable of instigating a reset.

    SG_ERR_DID_BAD_INTR [0x09] Got an interrupt we weren't expecting

    SG_ERR_DID_PASSTHROUGH [0x0a] Force command past mid-layer

    SG_ERR_DID_SOFT_ERROR [0x0b] The low level driver wants a retry

    For more information, see http://tldp.org/HOWTO/SCSI-Generic-HOWTO/x291.html.

    For additional information on SCSI host codes refer to Understanding SCSI host-side NMP errors/conditions in ESX 4.x (1029039)


  • SCSI Device/Status Codes

    SCSI Status codes appear in the Status byte returned when processing of a command completes. The Code values are assigned by the T10 committee. The information on this page was accurate as of 20 August 2007. Do not be concerned if this date looks old. The Status code assignments change very infrequently. For more information on Status codes consult the latest revision of SAM-x.

    Code Name

    00h GOOD

    02h CHECK CONDITION

    04h CONDITION MET

    08h BUSY

    18h RESERVATION CONFLICT

    28h TASK SET FULL

    30h ACA ACTIVE

    40h TASK ABORTED


    For more information, see http://www.t10.org/lists/2status.htm.
    Note: Hexadecimal numbers in the T10 documentation use the NNNh notation, whereas SCSI status codes logged to the ESX host use the equivalent 0xNNN notation, i.e. 0x2 == 02h.
  • SCSI Sense Keys

    SCSI Sense Keys appear in the Sense Data available when a command returns with a CHECK CONDITION status. The sense key contains all the information necessary to understand why the command has failed.

    Code Name

    0h NO SENSE

    1h RECOVERED ERROR

    2h NOT READY

    3h MEDIUM ERROR

    4h HARDWARE ERROR

    5h ILLEGAL REQUEST

    6h UNIT ATTENTION

    7h DATA PROTECT

    8h BLANK CHECK

    9h VENDOR SPECIFIC

    Ah COPY ABORTED

    Bh ABORTED COMMAND

    Dh VOLUME OVERFLOW

    Eh MISCOMPARE


    For more information, see http://www.t10.org/lists/2sensekey.htm.

    Note: Hexadeximal numbers in the T10 documentation use the NNNh notation, whereas SCSI status codes logged to the ESX host use the equivalent 0xNNN notation, i.e. 0x2 == 02h


  • SCSI Additional Sense Data

    SCSI Additional Sense Data takes the form of two value encoded bytes in the sense data, typically returned by the REQUEST SENSE command. The additional sense code (ASC) byte indicates information about the error exception reported in the sense key field. The additional sense code qualifier (ASCQ) indicates detailed information related to the additional sense code. See the clause describing the REQUEST SENSE command in the SCSI Primary Commands - 3 (SPC-3) draft standard for more information about sense data."

    |-> ASC value (in hexadecimal)

    ||

    || |-> ASCQ value (in hexadecimal)

    || ||

    || || |-> Codes identifying devices that may use the ASC/ASCQ pair

    || || |-> value. (See list of device code letters below.)

    || || |

    || || | | |-> Error or exception indicated by the

    || || | | |-> ASC/ASCQ pair value.

    || || |------------| |------------------------------------------|

    04/00 DTLPWROMAEBKVF LOGICAL UNIT NOT READY, CAUSE NOT REPORTABLE

    04/01 DTLPWROMAEBKVF LOGICAL UNIT IS IN PROCESS OF BECOMING READY

    04/02 DTLPWROMAEBKVF LOGICAL UNIT NOT READY, INITIALIZING COMMAND REQUIRED

    04/03 DTLPWROMAEBKVF LOGICAL UNIT NOT READY, MANUAL INTERVENTION REQUIRED

    For more information, see http://www.t10.org/lists/2asc.htm.

    Note
    : The above link was correct as of January 04, 2011. If you find a link is broken, provide feedback and a VMware employee will the link.

Additional Information

For translated versions of this article, see:

Tags

scsi-status-code

Update History

10/5/2010 - edited the text to explain about the scsi error codes. 11/30/2010 - added /var/log/messages for ESXi hosts in each section 06/22/2011 - Added note to indicate that the 0xN and 0Nh notation is the same to both extracts of the T10 documentation

Request a Product Feature

To request a new product feature or to provide feedback on a VMware product, please visit the Request a Product Feature page.

Feedback


Did this article help you?
This article resolved my issue.
This article did not resolve my issue.
This article helped but additional information was required to resolve my issue.
What can we do to improve this information? (4000 or fewer characters)
Actions
KB: