Dell Unity/VNX. Случайная временная потеря подключения и/или снижение производительности на хостах ESXi, начиная с версии 5.5 u2 и более поздних (исправляется пользователем)
Summary: Сильно загруженные массивы, сети или фабрики могут замедлять выполнение команд ATS настолько, что массив возвращает условие проверки неправильного сравнения для команды ATS, чего ESXi не ожидает. Из-за этого неправильного сравнения ATS в слоте HeartBeat VMFS хост ESXi пытается восстановить контроль над устройством. Для этого хост выполняет сброс устройства SCSI на LUN, хранящем VMFS. Все активные операции ввода-вывода в этом LUN будут прерваны, а устройство SCSI будет сброшено. Временная потеря подключения отображается в журналах VMkernel. ...
Symptoms
СЦЕНАРИЙ:
- Модернизация хоста до ESXi 5.5 с обновлением 2 или ESXi 6.0
- Один или несколько хостов ESXi на короткое время теряют подключение к хранилищу данных VMFS. На любых виртуальных машинах в хранилище данных может произойти сбой или ошибки ввода-вывода.
- Из-за неправильного сравнения атомарных тестов и наборов (ATS) в слоте HeartBeat VMFS хост ESXi пытается вернуть контроль над устройством, инициируя сброс устройства SCSI для LUN, удерживающего VMFS.
- Все активные операции ввода-вывода в этом LUN будут прерваны, а устройство SCSI будет сброшено.
- Временная потеря подключения отображается в журналах VMkernel.
Неправильное сравнение ATS может произойти как с NMP, так и с PowerPath.
Сообщения об ошибках, указывающие на неправильное сравнение ATS, появляются в /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.
Другие проблемы, которые могут возникнуть:
- Хосты отключаются от vSphere vCenter
- Зависание виртуальных машин при выполнении операций ввода-вывода
Cause
Эта проблема наблюдалась в массивах, сетях или фабриках, которые перегружены настолько, что хосты отменяли запросы ввода-вывода.
У нескольких поставщиков массивов (включая Dell) возникли проблемы с функцией тактовых импульсов ATS, которая была представлена в ESXi 5.5u2.
ПРИМЕЧАНИЕ. Согласно 326437 базы знаний Broadcom (VMware) (внешняя ссылка), эта проблема затрагивает версии ESXi VMware ESXi 5.5.x и VMware ESXi 6.0.x, не предоставляя все конкретные версии, поэтому в этой статье базы знаний предполагается, что затронуты все хосты ESXi с версией 5.5u2 и более поздней, а также все версии ESXi 6.0.
Хост указывает свою работоспособность, периодически выполняя операции ввода-вывода для тактовых импульсов на заданном томе. Таким образом, если в течение определенного периода времени в тактовом импульсе хоста не наблюдается никакой активности, можно заключить, что хост утратил подключение к тому.
Для ввода-вывода тактовых импульсов ATS очень низкое значение времени ожидания, что может привести к отключению хостов и перебоям в работе приложений, что приводит к потере подключения к дискам и/или снижению производительности хостов.
Затем хост регистрирует неправильное сравнение в слоте тактового импульса и прерывает все активные операции ввода-вывода в LUN, когда выполняет сброс. Все ожидающие операции ввода-вывода для этого LUN завершатся сбоем с контролем хоста 8 (H:0x8 сброс SCSI).
Resolution
Если это состояние сохраняется, рекомендуемым временным временным решением является отключение механизма тактовых импульсов VAAI ATS. Дополнительные сведения см. в статье базы знаний Broadcom (VMware) 326437(external link). Отключение механизма тактовых импульсов ATS вернет хост в устаревший режим. После того, как нагрузка будет устранена, снова включите механизм тактовых импульсов ATS.
Обратитесь в VMware для подтверждения проблемы или предоставьте ESXi emcgrab с vmsupport для подтверждения. Отключение функции тактовых импульсов VAAI ATS на сервере ESX рекомендуется ТОЛЬКО затронутым заказчикам до тех пор, пока не будут решены проблемы с нагрузкой.
Additional Information
Журналы Unity можно использовать для идентификации этого конкретного типа прерываний (Sense Key = 0e, ASC = 1d, ASCQ = 00).
Местоположение журнала в извлеченных журналах:
Чтобы проверить журналы, извлеките все журналы c4_safe_ktrace.log* в расположенном выше местоположении и найдите «SK = 0x0e, ASC/Q = 0x1d00».
Пример с системой linux или аналогичной:
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.
Если журналы ktrace не экстракционны, просто используйте 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.