SCSI-Fehler auf Vmware ESXi mit HP Smart Array Controllern

Aus Knowledgebase
Zur Navigation springen Zur Suche springen

Auf gewissen Installationen von Vmware ESXi tauchen manchmal SCSI-Fehlermeldungen im vmkernel.log auf, die auf ein ernstes Problem hindeuten:

2015-01-06T13:33:12.828Z cpu1:16590)NMP: nmp_ThrottleLogForDevice:2346: Cmd 0x85 (0x4124008154c0, 3268) to dev "naa.600508b1001c872c079296d6e2be22e4" on path "vmhba2:C0:T0:L1" Failed: H:0x0 D:0x2 P:0x0 Valid sense data: 0x5 0x20 0x0. Act:NONE
2015-01-06T13:33:12.839Z cpu0:62543)ScsiDeviceIO: 2358: Cmd(0x4124008154c0) 0x4d, CmdSN 0x76 from world 3268 to dev "naa.600508b1001c872c079296d6e2be22e4" failed H:0x0 D:0x2 P:0x0 Valid sense data: 0x5 0x20 0x0.
2015-01-06T13:33:12.839Z cpu0:2050)ScsiDeviceIO: 2358: Cmd(0x4124008154c0) 0x1a, CmdSN 0x77 from world 3268 to dev "naa.600508b1001c872c079296d6e2be22e4" failed H:0x0 D:0x2 P:0x0 Valid sense data: 0x5 0x24 0x0.

Bekannte Indikatoren sind:

  • Keine Abhängigkeiten von der tatsächlichen Versionen von ESX(i),
  • Mit (mindestens) HP Smart Array P212,
  • Keine Abhängigkeit von Firmware- oder Treiberversionen.

Analyse

Zuerst ist die genaue Bedeutung der angezeigten Fehlercodes herauszufinden. Anhand dieser kann danach entschieden werden, ob weitere Schritte notwendig sind. Die entscheidenden Informationen sind zu finden in

H:0x0 D:0x2 P:0x0

und in

sense data: 0x5 0x20 0x0

Gemäß Vmware Knowledgebase bedeutet 0x0 = Kein Fehler, D:0x2, dass es sich um einen Fehler im Device, also meistens dem SCSI-Target (Disk) handelt. 0x2 steht für CHECK CONDITION, eine Aufforderung vom Device an den Initiator (Hostadapter), genauere Informationen einzuholen. In den Sense Keys sind diese genaueren Informationen dann vermerkt.

Hier ist im Sense-Feld 0x5 vermerkt, dies steht für ILLEGAL REQUEST. In den erweiterten Sensebytes ist 0x20 oder 0x24 vermerkt, Bedeutung nach Wikipedia: invalid/unsupported command code bzw. invalid field in CDB (Command Descriptor Block).

Lösung

Der Host hat dem Gerät also ein Kommando gesendet, was dieses nicht versteht. Diese Meldungen sind lt. Vmware explizit nicht kritisch, sondern normal und können/sollen ignoriert werden.

Um (exakt diese) Meldungen auszublenden, damit Wichtiges nicht untergeht, kann folgende Grep-Zeile in der ESXi-Shell verwendet werden:

egrep -v '^[-[:digit:]]+T[:[:digit:]]+\.[[:digit:]]{3}Z cpu[[:digit:]]:[[:digit:]]+\)(NMP: nmp_ThrottleLogForDevice:[[:digit:]]+|ScsiDeviceIO: [[:digit:]]+): Cmd( 0x[[:xdigit:]]+ )?\(0x[[:xdigit:]]+(, [[:digit:]]+)?\)( 0x[[:xdigit:]]+, CmdSN 0x[[:xdigit:]]+ from world [[:digit:]]+)? to dev "naa\.[[:xdigit:]]+" (on path "[[:alnum:]]+:C[[:digit:]]:T[[:digit:]]:L[[:digit:]]" Failed:|failed) H:0x0 D:0x2 P:0x0 Valid sense data: 0x5 0x2[04] 0x0\.( Act:NONE)?$' /var/log/vmkernel.log

Weblinks