null

Vmware ESXi высокий disk latency - отключаем ATS heartbeat 

Vmware ESXi высокий disk latency - отключаем ATS heartbeat на datastore.

Симптом

Тормозили нагруженные виртуальные машины, при этом по мониторингу vSphere наблюдалась весьма интересная картина.

На виртуальной машине Disk latency time составлял до нескольких секунд. Конечно, в таком случае чего удивляться, что система тормозит.

НО, с точки зрения системы хранения и ГИПЕРВИЗОРА ESXi на котором виртуальная машина жила картина была очень и очень хорошей - Disk latency time на хосте с множеством виртуальных машин по всем дискам не превышал 200 мс. Три секунды показанные виртуальной машиной и близко не стоят к показанной цифре.

Несоответствие потребовало детального разбора в происходящем.

Причины

В логах зафиксировано большое количество сообщений о не корректных блокировках:

В логах ESXi выявлены сообщения, которые указывают на недоступность путей, а именно для vmhba2 и vmhba3:

2020-02-06T13:33:07.786Z cpu1:2098525)WARNING: NMP: nmp_PathDetermineFailure:3462: Cmd (0x9e) PDL error (0x5/0x25/0x0) - path vmhba2:C0:T2:L0 device naa.6005076300808cc89000000000000006 - triggering path failover
2020-02-06T13:33:07.786Z cpu1:2098525)NMP: nmp_ThrottleLogForDevice:3802: Cmd 0x9e (0x459a8126abc0, 0) to dev "naa.6005076300808cc89000000000000006" on path "vmhba2:C0:T2:L0" Failed: H:0x0 D:0x2 P:0x0 Valid sense data: 0x5 0x25 0x0. Act:FAILOVER
2020-02-06T13:33:07.786Z cpu1:2098525)WARNING: NMP: nmp_DeviceRetryCommand:133: Device "naa.6005076300808cc89000000000000006": awaiting fast path state update for failover with I/O blocked. No prior reservation exists on the device.
2020-02-06T13:33:07.846Z cpu7:2097952)VMW_SATP_ALUA: satp_alua_issueCommandOnPath:748: Path "vmhba3:C0:T2:L0" (PERM LOSS) command 0xa3 failed with status Device is permanently unavailable. H:0x0 D:0x2 P:0x0 Valid sense data: 0x5 0x25 0x0.
2020-02-06T13:33:07.846Z cpu7:2097952)VMW_SATP_ALUA: satp_alua_issueCommandOnPath:748: Path "vmhba2:C0:T5:L0" (PERM LOSS) command 0xa3 failed with status Device is permanently unavailable. H:0x0 D:0x2 P:0x0 Valid sense data: 0x5 0x25 0x0.
2020-02-06T13:33:07.847Z cpu7:2097952)VMW_SATP_ALUA: satp_alua_issueCommandOnPath:748: Path "vmhba3:C0:T3:L0" (PERM LOSS) command 0xa3 failed with status Device is permanently unavailable. H:0x0 D:0x2 P:0x0 Valid sense data: 0x5 0x25 0x0.
2020-02-06T13:33:07.847Z cpu7:2097952)VMW_SATP_ALUA: satp_alua_issueCommandOnPath:748: Path "vmhba2:C0:T2:L0" (PERM LOSS) command 0xa3 failed with status Device is permanently unavailable. H:0x0 D:0x2 P:0x0 Valid sense data: 0x5 0x25 0x0.

В соответствии с KB ESXi host loses connectivity to a VMFS3 and VMFS5 datastore (2113956)
Потребовалось отключение "ATS heartbeat "  на всех ESXi, которые имют жоступ к системе хранеия данных, а точнее к datastore

Для началла проверяли установленное значение коммандой

 esxcli system settings advanced list -o /VMFS3/UseATSForHBonVMFS5

Вывод:

   Path: /VMFS3/UseATSForHBOnVMFS5
   Type: integer
   Int Value: 1 <------1 - ATS heartbeat ВКЛЮЧЕН
   Default Int Value: 1
   Min Value: 0
   Max Value: 1
   String Value:
   Default String Value:
   Valid Characters:
   Description: Use ATS for HB on ATS supported VMFS5 volumes

Выключаем ATS heartbeat на каждом ESXi подключенном к datastore

esxcli system settings advanced set -i 0 -o /VMFS3/UseATSForHBOnVMFS5

Проверяем статус выключения коммандой

 esxcli system settings advanced list -o /VMFS3/UseATSForHBonVMFS5

Вывод:
 

 Path: /VMFS3/UseATSForHBOnVMFS5
   Type: integer
   Int Value: 0 <------0 - ATS heartbeat ВЫКЛЮЧЕН
   Default Int Value: 1
   Min Value: 0
   Max Value: 1
   String Value:
   Default String Value:
   Valid Characters:
   Description: Use ATS for HB on ATS supported VMFS5 volumes

Результат

После отключения ATS heartbeat во первых ощутимо улучшилась производительность тормозящих систем, во вторых несоответствие выровнялось - показатели disk latency виртуальной машины уже были в пределах (не превышали) показатели для всего ESXi хоста.