Dell Unity/VNX: Losowa tymczasowa utrata połączenia i/lub spadek wydajności na hostach ESXi w wersji 5.5 u2 i nowszych (możliwość naprawienia przez użytkownika)
Summary: Mocno obciążone macierze, sieci lub sieci szkieletowe mogą spowolnić polecenia ATS na tyle, że macierz zwróci warunek sprawdzania błędnego porównania dla polecenia ATS, którego ESXi się nie spodziewa. Z powodu tego błędnego porównania ATS w gnieździe VMFS HeartBeat host ESXi próbuje odzyskać kontrolę nad urządzeniem. Aby to zrobić, host resetuje urządzenie SCSI na jednostce LUN przechowującej VMFS. Wszystkie aktywne operacje we/wy w tej jednostce LUN zostaną przerwane, a urządzenie SCSI zostanie zresetowane. Tymczasowa utrata łączności jest widoczna w dziennikach VMkernel. ...
Symptoms
SCENARIUSZ:
- Uaktualnienie hosta do wersji ESXi 5.5 update 2 lub ESXi 6.0
- Co najmniej jeden host ESXi utraci połączenie z magazynem danych VMFS na krótki czas. Wszystkie maszyny wirtualne w magazynie danych mogą ulec awarii lub mieć błędy we/wy.
- Z powodu błędnego porównania Atomic Test and Set (ATS) w gnieździe VMFS HeartBeat host ESXi próbuje odzyskać kontrolę nad urządzeniem, wykonując reset urządzenia SCSI na jednostce LUN przechowującej VMFS.
- Wszystkie aktywne operacje we/wy na tej jednostce LUN zostaną przerwane, a urządzenie SCSI zostanie zresetowane.
- Tymczasowa utrata łączności jest widoczna w dziennikach VMkernel.
Błędne porównanie ATS może się zdarzyć zarówno w przypadku NMP, jak i PowerPath.
Komunikaty o błędach wskazujące na błędne porównanie ATS podobne do tego pojawiają się w /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.
Inne problemy, które mogą wystąpić:
- Hosty odłączające się od vSphere vCenter
- Maszyny wirtualne zawieszają się na operacjach we/wy
Cause
Ten problem występuje w macierzach, sieciach lub sieciach szkieletowych, które są na tyle przeciążone, że hosty anulują żądania we/wy.
Kilku dostawców macierzy (w tym firma Dell) ma problemy z funkcją pulsu ATS, która została wprowadzona w oprogramowaniu ESXi 5.5u2.
UWAGA: Zgodnie z 326437 bazy wiedzy Broadcom (VMware) (łącze zewnętrzne) problem ten dotyczy wersji ESXi, VMware ESXi 5.5.x i VMware ESXi 6.0.x, nie podając wszystkich konkretnych wersji, dlatego w tym artykule bazy wiedzy zakładamy, że dotyczy to wszystkich hostów ESXi w wersji 5.5u2 i wszystkich wersji ESXi 6.0.
Host wskazuje swoją aktywność, okresowo wykonując operacje we/wy w odniesieniu do pulsu na danym woluminie. W związku z tym, jeśli przez pewien czas nie widać żadnej aktywności w gnieździe pulsu hosta, można stwierdzić, że host utracił łączność z woluminem.
Operacje we/wy pulsu usługi ATS mają bardzo niską wartość limitu czasu, która może prowadzić do rozłączeń hostów i awarii aplikacji, co przekłada się na utratę połączenia z dyskami i/lub pogorszenie wydajności na hostach.
Następnie host rejestruje błędne porównanie w gnieździe impulsu i przerywa wszystkie aktywne operacje we/wy na jednostce LUN podczas resetowania. Wszystkie oczekujące operacje we/wy na tej jednostce LUN zakończą się niepowodzeniem po zresetowaniu SCSI przez Host Sense 8 (H:0x8).
Resolution
W przypadku zaobserwowania tego warunku zalecanym tymczasowym obejściem jest wyłączenie mechanizmu pulsu ATS VAAI. Więcej informacji można znaleźć w 326437 bazy wiedzy Broadcom (VMware) (łącze zewnętrzne). Wyłączenie mechanizmu pulsu ATS przywróci hosta z powrotem do trybu Legacy. Po rozwiązaniu problemu należy ponownie włączyć mechanizm pulsu usługi ATS.
Skontaktuj się z firmą VMware, aby potwierdzić problem, lub prześlij narzędzie ESXi emcgrab z vmsupport w celu potwierdzenia. Wyłączenie funkcji VAAI ATS Heartbeat na serwerze ESX jest zalecane TYLKO dla klientów, których dotyczy problem, do czasu rozwiązania problemów z obciążeniem.
Additional Information
Dzienniki aparatu Unity mogą służyć do identyfikowania tego konkretnego typu przerwań (Sense Key = 0e, ASC = 1d, ASCQ = 00)
Lokalizacja dziennika w wyodrębnionych dziennikach to:
Aby sprawdzić dzienniki, wyodrębnij wszystkie dzienniki c4_safe_ktrace.log* w powyższej lokalizacji, a następnie wyszukaj "SK = 0x0e, ASC/Q = 0x1d00".
Przykład z systemem Linux lub podobnym:
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.
Jeśli dzienniki ktrace nie są ekstrakcjonowane, po prostu użyj 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.