Dell Unity/VNX: Náhodná dočasná ztráta připojení nebo snížení výkonu na hostitelích ESXi od verze 5.5 u2 a novější (opravitelné uživatelem)
Summary: Silně zatížená pole, sítě nebo topologie Fabric mohou zpomalit příkazy ATS natolik, že pole vrátí podmínku kontroly chybného porovnání u příkazu ATS, kterou systém ESXi neočekává. Kvůli tomuto nesprávnému porovnání ATS ve slotu VMFS HeartBeat se hostitel ESXi pokusí znovu získat kontrolu nad zařízením. Za tímto účelem hostitel resetuje zařízení SCSI na jednotce LUN, která drží VMFS. Všechny aktivní I/O na této jednotce LUN budou zrušeny a zařízení SCSI bude resetováno. V protokolech VMkernel se zobrazí dočasná ztráta připojení. ...
Symptoms
SCÉNÁŘ:
- Upgrade hostitele na ESXi 5.5 Update 2 nebo ESXi 6.0
- Jeden nebo více hostitelů ESXi na krátkou dobu ztratí připojení k datovému úložišti VMFS. Všechny virtuální počítače v úložišti dat se můžou zhroutit nebo mít vstupně-výstupní chyby.
- Kvůli nesprávnému porovnání ATS (Atomic Test and Set) ve slotu VMFS HeartBeat se hostitel ESXi pokusí znovu získat kontrolu nad zařízením resetováním zařízení SCSI na jednotce LUN, která drží VMFS.
- Všechny aktivní I/O na této jednotce LUN budou zrušeny a zařízení SCSI bude resetováno.
- V protokolech VMkernel se zobrazí dočasná ztráta připojení.
K nesprávnému porovnání ATS může dojít jak u NMP, tak u PowerPath.
Chybové zprávy oznamující chybné porovnání ATS podobné této, se zobrazují v /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.
Další problémy, které mohou nastat:
- Hostitelé se odpojují od vSphere vCenter
- Virtuální počítače zablokované při vstupně-výstupních operacích
Cause
K tomuto problému dochází v polích, sítích nebo topologiích Fabric, které jsou natolik přetížené, že hostitelé ruší vstupně-výstupní požadavky.
Několik dodavatelů polí (včetně společnosti Dell) má problémy s funkcí prezenčního signálu ATS, která byla představena v systému ESXi 5.5u2.
POZNÁMKA: Podle 326437 znalostní databáze Broadcom (VMware) (externí odkaz) se tento problém týká verzí ESXi VMware ESXi 5.5.x a VMware ESXi 6.0.x, přičemž neposkytuje všechny konkrétní verze, proto tento článek znalostní databáze předpokládá, že jsou dotčeni všichni hostitelé ESXi s verzí 5.5u2 a všechny verze ESXi 6.0.
Hostitel indikuje svou živost pravidelným prováděním vstupně-výstupních operací podle svého prezenčního signálu na daném svazku. Pokud tedy ve slotu prezenčního signálu hostitele po určitou dobu nedojde k žádnému aktivitě, můžeme dojít k závěru, že hostitel ztratil připojení ke svazku.
Vstupně-výstupní operace prezenčního signálu ATS mají velmi nízkou hodnotu časového limitu, která může vést k odpojení hostitele a výpadkům aplikací, což má za následek ztrátu připojení k diskům nebo snížení výkonu hostitelů.
Hostitel poté zaregistruje chybné porovnání ve slotu heartbeat a přeruší všechny aktivní IO na logické jednotce, protože provede resetování. Všechny čekající operace IO na této logické jednotce selžou, mají-li smysl hostitele 8 (reset H:0x8 SCSI).
Resolution
Pokud je tato podmínka pozorována, doporučeným dočasným zástupným řešením je zakázat mechanismus prezenčního signálu VAAI ATS. Další informace naleznete v článku znalostní databáze Broadcom (VMware) 326437(externí odkaz). Zakázání mechanismu prezenčního signálu ATS vrátí hostitele zpět do staršího režimu. Po vyřešení zatížení znovu povolte mechanismus prezenčního signálu ATS.
Obraťte se na společnost VMware a požádejte o potvrzení problému nebo poskytněte podporu ESXi emcgrab u podpory vmsupport. Zakázání funkce VAAI ATS Heartbeat na serveru ESX se doporučuje POUZE dotčeným zákazníkům, dokud nebude možné vyřešit problémy se zatížením.
Additional Information
K identifikaci tohoto konkrétního typu přerušení lze použít protokoly Unity (klíč Sense = 0e, ASC = 1d, ASCQ = 00)
Umístění protokolu v extrahovaných protokolech je:
Chcete-li zkontrolovat protokoly, extrahujte všechny protokoly c4_safe_ktrace.log* ve výše uvedeném umístění a vyhledejte "SK = 0x0e, ASC/Q = 0x1d00".
Příklad se systémem Linux nebo podobným:
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.
Pokud se protokoly protokolu ktrace nerozbalí, jednoduše použijte příkaz 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.