Dell Unity/VNX: Slumpmässig tillfällig förlust av anslutning och/eller prestandaförsämring på ESXi-värdar från version 5.5 u2 och senare (kan korrigeras av användaren)
Summary: Kraftigt belastade disksystem, nätverk eller strukturer kan göra ATS-kommandon så långsamma att disksystemet returnerar ett kontrollvillkor för feljämförelse för ett ATS-kommando som ESXi inte förväntar sig. På grund av den här ATS-feljämförelsen på en VMFS HeartBeat-kortplats försöker ESXi-värden återta kontrollen över enheten. För att göra detta utfärdar värden en SCSI-enhetsåterställning på det LUN som innehåller VMFS. All aktiv I/O på denna LUN avbryts och SCSI-enheten återställs. En tillfällig anslutningsförlust visas i VMkernel-loggarna. ...
Symptoms
SCENARIO:
- Värduppgradering till ESXi 5.5 uppdatering 2 eller ESXi 6.0
- En eller flera ESXi-värdar förlorar anslutningen till VMFS-datalagret under en kort stund. Alla virtuella datorer i datalagringen kan krascha eller ha I/O-fel.
- På grund av en felaktig jämförelse av Atomic Test and Set (ATS) på en VMFS HeartBeat-kortplats försöker ESXi-värden återta kontrollen över enheten genom att utfärda en SCSI-enhetsåterställning på det LUN som innehåller VMFS.
- Alla aktiva I/O på denna LUN kommer att avbrytas och SCSI-enheten kommer att återställas.
- En tillfällig anslutningsförlust visas i VMkernel-loggarna.
Felaktig ATS-jämförelse kan inträffa både med NMP och PowerPath.
Felmeddelanden som indikerar ett ATS-fel som liknar detta visas i /var/log/vmkernel.log:
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.
Andra problem som kan uppstå:
- Värdar som kopplar bort från vSphere vCenter
- Virtuella datorer som hänger sig på I/O-åtgärder
Cause
Det här problemet har förekommit på disksystem, nätverk eller strukturer som är så överbelastade att värdar avbryter I/O-begäranden.
Flera disksystemleverantörer (inklusive Dell) har problem med ATS-pulsslagsfunktionen som introducerades i ESXi 5.5u2.
Obs! Enligt Broadcom (VMware) KB 326437 (extern länk) påverkar det här problemet ESXi-versionerna VMware ESXi 5.5.x och VMware ESXi 6.0.x, och tillhandahåller inte alla specifika versioner. Därför förutsätter denna KB att alla ESXi-värdar med version 5.5u2 och senare och alla ESXi 6.0-versioner påverkas.
En värd indikerar sin livlighet genom att regelbundet utföra I/O till sitt pulsslag på en viss volym. Därför, om ingen aktivitet ses på värdens pulsslagsplats under en viss tid, kan vi dra slutsatsen att värden har förlorat anslutningen till volymen.
ATS-pulsslags-I/O har ett mycket lågt timeout-värde som kan leda till värdfrånkopplingar och programavbrott, vilket leder till anslutningsförlust för diskar och/eller prestandaförsämring på värdarna.
Värden registrerar sedan feljämförelsen på pulsslagsplatsen och avbryter alla aktiva IO på LUN när återställningen utfärdas. All väntande IO på detta LUN misslyckas med värdavkänning 8 (H:0x8 SCSI-återställning).
Resolution
Om det här tillståndet observeras är den rekommenderade tillfälliga lösningen att inaktivera VAAI ATS-pulsslagsmekanismen. Mer information finns i Broadcom (VMware) KB 326437(extern länk). Om du inaktiverar ATS-pulsslagsmekanismen återställs värden till äldre läge. När belastningen har åtgärdats återaktiverar du ATS-pulsslagsmekanismen.
Kontakta VMware för att få en bekräftelse på problemet eller skicka en ESXi EMCGRAB till vmsupport för bekräftelse. Att inaktivera VAAI ATS Heartbeat-funktionen på ESX-servern rekommenderas ENDAST för berörda kunder tills belastningsproblemen kan åtgärdas.
Additional Information
Unity-loggarna kan användas för att identifiera den här typen av avbrott (Sense Key = 0e, ASC = 1d, ASCQ = 00)
Loggplatsen i de extraherade loggarna är:
Om du vill kontrollera loggarna extraherar du alla c4_safe_ktrace.log*-loggar på platsen ovan och letar sedan efter "SK = 0x0e, ASC/Q = 0x1d00".
Exempel med ett linux-system eller liknande:
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.
Om ktrace-loggarna inte extraseras, använd helt enkelt 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.