Симптомы:
при загрузке модуля:
modprobe: FATAL: Module igb_uio not found in directory /lib/modules/4.9.0-6-amd64
при установке пакета:
Module build for kernel 4.9.0-6-amd64 was skipped since the
kernel headers for this kernel does not seem to be installed.
Необходимо установить пакет linux-headers-amd64
(Debian) и убедиться,
что загружена версия ядра, соответствующая версии этого пакета, после
чего выполнить:
dkms autoinstall
По умолчанию эти команды работают только для пользователей группы
docker
и для root
. Это стандартная мера безопасности Docker.
Решение:
sudo usermod -aG docker $USER
newgrp docker
Такое сообщение появляется в web-интерфейсе, если обработчик пакетов не
запустился или остановился. Диагностика (из /srv/mitigator
):
docker-compose logs data-plane
Ниже приводятся некоторые типовые проблемы и характерные сообщения.
EAL: Cannot get hugepage information.
Сообщение:
EAL: No free hugepages reported in hugepages-2048kB
EAL: No free hugepages reported in hugepages-1048576kB
EAL: FATAL: Cannot get hugepage information.
EAL: Cannot get hugepage information.
EAL: Error exiting with code: 1
Cause: DPDK init error: 1
Причина: не выделены или полностью заняты hugepages.
Нужно проверить наличие свободных hugepages и убедиться, что значения
HugePages_Total
и Hugepagesize
совпадают с настроенными,
а HugePages_Free
равно HugePages_Total
(или отличается не более,
чем на несколько страниц):
grep Huge /proc/meminfo
no port found with PCI address BB:DD.F
Сообщение:
/data-plane/config.click:12: no port found with pci address '04:00.0'
Нужно убедиться, что адрес устройства 04:00.0 соответствует действительности, и что устройство привязано к драйверу для DPDK точно так же, как при подготовке системы.
При просмотре логов docker-compose logs data-plane
сообщение:
Segmentation fault (core dumped)
Чтобы незамедлительно восстановить работу, можно дать команду:
docker-compose up -d data-plane
Далее рекомендуется связаться с разработчиками с целью точной диагностики и исправления и направить им:
Описание ситуации, в которой произошла проблема (действий с Mitigator´ом, входящего трафика).
Описание аппаратной конфигурации сервера:
Файл /srv/mitigator/data-plane.conf
.
Файл сlick.stacktrace, который по умолчанию сохраняется
в /var/lib/docker/volumes/mitigator_coredumps/_data/click.stacktrace
.
Core dump (слепок памяти процесса), который по умолчанию сохраняется
в /var/lib/docker/volumes/mitigator_coredumps/_data/core
. Его
размер — гигабайты, но он обычно хорошо сжимается.
В некоторых дистрибутивах (например, Ubuntu) файл core
не появляется,
потому что обработка сбоев настроена иначе.
Проверить настройку можно так:
cat /proc/sys/kernel/core_pattern
По умолчанию в Linux значение core
. Если оно другое:
Запомнить исходное значение:
cat /proc/sys/kernel/core_pattern > /tmp/old_core_pattern
Заменить его на core
:
echo core | sudo tee /proc/sys/kernel/core_pattern
Воспроизвести проблему, получить файл core
по указанному выше пути.
Восстановить оригинальное значение:
cat /tmp/old_core_pattern | sudo tee /proc/sys/kernel/core_pattern