Dell Unity/VNX: Zufälliger vorübergehender Verbindungsverlust und/oder Leistungsverschlechterung auf ESXi-Hosts ab Version 5.5 u2 und höher (von NutzerInnen korrigierbar)
Summary: Stark ausgelastete Arrays, Netzwerke oder Fabrics verlangsamen ATS-Befehle möglicherweise so sehr, dass das Array eine fehlerhafte Überprüfung für einen ATS-Befehl zurückgibt, die ESXi nicht erwartet. Aufgrund dieses ATS-Fehlabgleichs auf einem VMFS HeartBeat-Steckplatz versucht der ESXi-Host, die Kontrolle über das Gerät wiederzuerlangen. Dazu gibt der Host einen SCSI-Geräte-Reset auf der LUN aus, auf der sich das VMFS befindet. Alle aktiven I/O-Vorgänge auf dieser LUN werden abgebrochen und das SCSI-Gerät wird zurückgesetzt. Ein vorübergehender Verlust der Konnektivität wird in den VMkernel-Protokollen angezeigt. ...
Symptoms
SZENARIO:
- Hostupgrade auf ESXi 5.5 Update 2 oder ESXi 6.0
- Ein oder mehrere ESXi-Hosts verlieren kurzzeitig die Verbindung zum VMFS-Datenspeicher. Alle VMs auf dem Datenspeicher können abstürzen oder I/O-Fehler aufweisen.
- Aufgrund eines fehlerhaften ATS-Vergleichs (Atomic Test & Set) auf einem VMFS-HeartBeat-Steckplatz versucht der ESXi-Host, die Kontrolle über das Gerät wiederzuerlangen, indem er einen SCSI-Geräte-Reset auf der LUN ausgibt, auf der sich das VMFS befindet.
- Alle aktiven I/O-Vorgänge auf dieser LUN werden abgebrochen und das SCSI-Gerät wird zurückgesetzt.
- Ein vorübergehender Verlust der Konnektivität wird in den VMkernel-Protokollen angezeigt.
Ein ATS-Fehlvergleich kann sowohl bei NMP als auch bei PowerPath auftreten.
Fehlermeldungen, die auf einen ähnlichen ATS-Vergleich hinweisen, werden in /var/log/vmkernel.log angezeigt:
2015-11-20T22:12:47.194Z cpu13:33467)ScsiDeviceIO: 2645: Cmd(0x439dd0d7c400) 0x89, CmdSN 0x2f3dd6 from world 3937473 to dev "naa.50002ac0049412fa" failed H:0x0 D:0x2 P:0x0 Valid sense data: 0xe 0x1d 0x0.
Andere Probleme, die auftreten können:
- Hosts werden vom vSphere vCenter getrennt
- Virtuelle Maschinen, die bei I/O-Vorgängen hängen bleiben
Cause
Dieses Problem ist bei Arrays, Netzwerken oder Fabrics aufgetreten, die so überlastet sind, dass Hosts I/O-Anforderungen abbrechen.
Mehrere Arrayanbieter (einschließlich Dell) haben Probleme mit der ATS-Heartbeat-Funktion, die in ESXi 5.5u2 eingeführt wurde.
HINWEIS: Gemäß Broadcom (VMware) KB 326437 (externer Link) betrifft dieses Problem die ESXi-Versionen VMware ESXi 5.5.x und VMware ESXi 6.0.x und stellt nicht alle spezifischen Versionen bereit. Daher wird in diesem Wissensdatenbank-Artikel davon ausgegangen, dass alle ESXi-Hosts ab Version 5.5u2 und alle ESXi 6.0-Versionen betroffen sind.
Ein Host zeigt seine Lebendigkeit an, indem er regelmäßig I/O-Vorgänge für seinen Heartbeat auf einem bestimmten Volume durchführt. Wenn daher über einen Zeitraum hinweg keine Aktivität auf dem Heartbeat-Steckplatz des Hosts festgestellt wird, können wir daraus schließen, dass der Host die Verbindung zum Volume verloren hat.
ATS-Heartbeat-I/O hat einen sehr niedrigen Timeout-Wert, der zu Hosttrennungen und Anwendungsausfällen führen kann, was zu Verbindungsverlust zu Festplatten und/oder Leistungseinbußen auf den Hosts führen kann.
Der Host registriert dann den Fehlvergleich auf dem Heartbeat-Steckplatz und bricht alle aktiven I/O-Vorgänge auf der LUN ab, während er das Zurücksetzen einleitet. Alle ausstehenden I/O-Vorgänge auf dieser LUN schlagen mit Hosterkennung 8 (H:0x8 SCSI-Zurücksetzung) fehl.
Resolution
Wenn diese Bedingung auftritt, besteht die empfohlene vorübergehende Problemumgehung darin, den VAAI-ATS-Heartbeat-Mechanismus zu deaktivieren. Weitere Informationen finden Sie unter Broadcom (VMware) KB 326437(externer Link). Durch Deaktivieren des ATS-Heartbeat-Mechanismus wird der Host wieder in den Legacy-Modus zurückgesetzt. Sobald die Last behoben wurde, aktivieren Sie den ATS-Heartbeat-Mechanismus erneut.
Wenden Sie sich an VMware, um das Problem zu bestätigen, oder stellen Sie einen ESXi-EMCGrab mit VMSUPPORT zur Bestätigung bereit. Die Deaktivierung der VAAI-ATS-Heartbeat-Funktion auf dem ESX-Server wird nur für betroffene Kunden empfohlen, bis die Lastprobleme behoben werden können.
Additional Information
Die Unity-Protokolle können verwendet werden, um diesen bestimmten Typ von Abbrüchen zu identifizieren (Sense Key = 0e, ASC = 1d, ASCQ = 00)
Der Protokollspeicherort in den extrahierten Protokollen ist:
Um die Protokolle zu überprüfen, extrahieren Sie alle c4_safe_ktrace.log*-Protokolle am obigen Speicherort und suchen Sie dann nach "SK = 0x0e, ASC/Q = 0x1d00".
Beispiel mit einem Linux-System o.ä.:
grep -i "SK = 0x0e, ASC/Q = 0x1d00" spa/EMC/C4Core/log/c4_safe_ktrace.* | wc -l 15744 <<<< count of aborts on SPA in this example.
Wenn die ktrace-Protokolle nicht extrahiert werden, verwenden Sie einfach zgrep:
zgrep -i "SK = 0x0e, ASC/Q = 0x1d00" spa/EMC/C4Core/log/c4_safe_ktrace.* | wc -l 15744 <<<< count of aborts on SPA in this example.