Dell Unity/VNX: Tilfældigt midlertidigt tab af forbindelse og/eller forringelse af ydeevnen på ESXi-værter fra version 5.5 u2 og nyere (kan rettes af brugeren)
Summary: Kraftigt belastede systemer eller netværk eller strukturer kan gøre ATS-kommandoer så langsomme, at systemet returnerer en fejlsammenligningskontrolbetingelse for en ATS-kommando, som ESXi ikke forventer. På grund af denne ATS-fejlsammenligning forsøger ESXi-værten på et VMFS HeartBeat-slot at genvinde kontrollen over enheden. For at gøre dette udsteder værten en SCSI-enhedsnulstilling på LUN'en, der holder VMFS. Alle aktive I/O på denne LUN afbrydes, og SCSI-enheden nulstilles. Et midlertidigt tab af forbindelse vises i VMkernel-logfilerne. ...
Symptoms
SCENARIO:
- Værtsopgradering til ESXi 5.5 opdatering 2 eller ESXi 6.0
- En eller flere ESXi-værter mister forbindelsen til VMFS-datalageret i en kort periode. Alle VM er i datalageret kan gå ned eller have I/O-fejl.
- På grund af en ATS-fejlsammenligning (Atomic Test and Set) på en VMFS HeartBeat-slot forsøger ESXi-værten at genvinde kontrollen over enheden ved at udstede en SCSI-nulstilling af enheden på den LUN, der indeholder VMFS'en.
- Alle aktive I/O på denne LUN afbrydes, og SCSI-enheden nulstilles.
- Et midlertidigt tab af forbindelse vises i VMkernel-logfilerne.
ATS-fejlsammenligning kan ske både med NMP og PowerPath.
Fejlmeddelelser, der angiver en ATS-fejlsammenligning, der ligner denne, vises 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.
Andre problemer, der kan opstå:
- Værter, der afbryder forbindelsen til vSphere vCenter
- Virtuelle maskiner, der hænger på I/O-handlinger
Cause
Dette problem er set på systemer eller netværk eller strukturer, der er overbelastede nok til, at værter annullerer I/O-anmodninger.
Flere systemleverandører (inklusive Dell) har problemer med ATS-hjerteslagsfunktionen, som blev introduceret i ESXi 5.5u2.
BEMÆRK: I henhold til Broadcom (VMware) KB 326437 (eksternt link) påvirker dette problem ESXi-versionerne VMware ESXi 5.5.x og VMware ESXi 6.0.x, der ikke leverer alle de specifikke versioner, derfor antager denne KB, at alle ESXi-værter med version 5.5u2 og fremefter og alle ESXi 6.0-versioner påvirkes.
En vært angiver sin liveness ved periodisk at udføre I/O til sit hjerteslag på en given lydstyrke. Derfor, hvis der ikke ses nogen aktivitet på værtens hjerteslagsplads i en periode, kan vi konkludere, at værten har mistet forbindelsen til lydstyrken.
ATS heartbeat I/O har en meget lav timeout-værdi, der kan føre til værtsafbrydelser og programafbrydelser, hvilket resulterer i forbindelsestab til diske og/eller forringelse af ydeevnen på værterne.
Værten registrerer derefter fejlsammenligningen på hjerteslagsslottet og afbryder al aktiv IO på LUN'en, mens den udsteder nulstillingen. Alle ventende IO på denne LUN mislykkes med host sense 8 (H:0x8 SCSI-nulstilling).
Resolution
Hvis denne betingelse overholdes, er den anbefalede midlertidige løsning at deaktivere VAAI ATS-hjerteslagsmekanismen. Se Broadcom (VMware) KB 326437 (eksternt link) for at få flere oplysninger. Deaktivering af ATS-hjerteslagsmekanismen vil vende værten tilbage til ældre tilstand. Når belastningen er løst, skal ATS-hjerteslagsmekanismen genaktiveres.
Kontakt VMware for at få bekræftet problemet, eller angiv en ESXi-emcgrab med vmsupport for bekræftelse. Deaktivering af VAAI ATS Heartbeat-funktionaliteten på ESX-serveren anbefales KUN til berørte kunder, indtil belastningsproblemerne kan løses.
Additional Information
Unity-logfilerne kan bruges til at identificere denne særlige type afbrydelser (Sense Key = 0e, ASC = 1d, ASCQ = 00)
Logplaceringen i de udpakkede logfiler er:
Hvis du vil kontrollere logfilerne, skal du udpakke alle c4_safe_ktrace.log*-logfilerne på placeringen ovenfor og derefter se efter "SK = 0x0e, ASC/Q = 0x1d00".
Eksempel med et linux-system eller lignende:
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.
Hvis ktrace-logfilerne ikke ekstraced, skal du blot bruge 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.