Troubleshooting
Не загружаются драйверы (modprobe)
Симптомы:
-
При загрузке модуля:
-
При установке пакета:
Необходимо установить пакет linux-headers-amd64 (Debian) и убедиться,
что загружена версия ядра, соответствующая версии этого пакета, после чего выполнить:
Не работает docker и docker-compose
По умолчанию эти команды работают только для пользователей группы
docker и для root. Это стандартная мера безопасности Docker.
Решение:
MITIGATOR не запускается (unknown log opt)
При запуске MITIGATOR появляется ошибка вида:
Базовая конфигурация docker-compose.yml задаёт параметры ротации логов,
несовместимые с драйвером логирования, отличным от стандартного json-file
(например, syslog или journald). Решение приведено в разделе
«Настройка логирования».
Обработчик пакетов недоступен
Такое сообщение появляется в web-интерфейсе, если обработчик пакетов не
запустился или остановился. Диагностика (из /srv/mitigator):
Ниже приводятся некоторые типовые проблемы и характерные сообщения.
EAL: Cannot get hugepage information
Сообщение:
Причина: не выделены или полностью заняты hugepages.
Проверить наличие свободных hugepages и убедиться, что значения
HugePages_Total и Hugepagesize совпадают с настроенными,
а HugePages_Free равно HugePages_Total (или отличается не более,
чем на несколько страниц):
EAL: set_mempolicy failed: Invalid argument
Сообщение:
Причина: не выделены hugepages на всех используемых приложением NUMA-нодах на многопроцессорной платформе.
Проверить вывод команд (для платформы с двумя NUMA-нодами):
Вывод должен содержать каталоги hugepages и memory и не должен сильно различаться.
Если таких каталогов нет — проверить машину на физическое наличие памяти на обоих CPU.
Посмотреть информацию по памяти в BIOS, проверить настройки NUMA в BIOS,
проверить настройки памяти и NUMA в OS.
no port found
Сообщение:
или
Нужно убедиться, что адрес устройства 04:00.0 соответствует действительности, и что устройство привязано к драйверу DPDK точно так же, как при подготовке системы.
Если устройство привязано, нужно поискать другие ошибки в логе, например:
Эта ошибка означает, что не все устройства одной IOMMU-группы привязаны к драйверу
vfio-pci. Для работы через vfio-pci необходимо все порты одной карты привязать
к vfio-pci, либо перейти на другой драйвер.
Аварийное завершение
При просмотре логов docker-compose logs dataplane сообщение:
Для возобновления работы выполнить команду:
Далее рекомендуется связаться с разработчиками с целью точной диагностики и исправления и направить им:
-
Описание ситуации, в которой произошла проблема (действий с MITIGATOR, входящего трафика).
-
Описание аппаратной конфигурации сервера:
- модель CPU и сетевых карт;
- размер памяти и конфигурация hugepages;
- версия ядра Linux, используемые драйвера для сетевых карт и их версии.
-
Файл
/srv/mitigator/dataplane.conf. -
Файл dataplane.stacktrace, который по умолчанию сохраняется в
/var/lib/docker/volumes/mitigator_coredumps/_data/dataplane.stacktrace. -
Core dump (слепок памяти процесса), который по умолчанию сохраняется в
/var/lib/docker/volumes/mitigator_coredumps/_data/core. Его размер — гигабайты, но он обычно хорошо сжимается.В некоторых дистрибутивах (например, Ubuntu) файл
coreне появляется, потому что обработка сбоев настроена иначе. Проверить настройку можно так:По умолчанию в Linux значение
core. Если оно другое:-
Запомнить исходное значение:
-
Заменить его на
core: -
Воспроизвести проблему, получить файл
coreпо указанному выше пути. -
Восстановить оригинальное значение:
-