Настройка системы для карт Mellanox

Подготовка системы

Работа с картами Mellanox требует последней версии драйвера и прошивки устройства Mellanox OFED. Стандартный драйвер Linux может не работать.

  1. По указанной ссылке в разделе Download в таблице выбрать драйвер для нужного дистрибутива операционной системы. Проверена работа на Debian (stable) и Ubuntu LTS.

  2. Загрузить драйвер последней версии (.tgz-архив).

  3. Распаковать архив и запустить установку. В процессе установки произойдёт обновление прошивки всех сетевых карт Mellanox, обнаруженных в системе.

    Установка с дополнительными утилитами для управления:

    ./mlnxofedinstall --upstream-libs --dpdk --basic --without-neohost-backend --without-neohost-sdk
    

    Обновление прошивки сетевых карт без установки:

    ./mlnxofedinstall --fw-update-only
    

    Перезагрузить систему после завершения.

    Важно: при установке на Debian может не пройти проверка версии ОС. В таком случае нужно добавить опцию --skip-distro-check.

Настройка MITIGATOR

Особенностью работы с драйвером Mellanox является то, что они остаются под управлением Linux, то есть сетевые интерфейсы остаются в системе. Однако передавать через них трафик, когда работает MITIGATOR, нельзя.

  1. Убедиться, что в выводе команды dpdk-devbind --status-dev=net есть нужные сетевые устройства Mellanox и они привязаны к драйверу mlx5_core.

  2. Если устройства есть, но они не привязаны к драйверу mlx5_core, убедиться, что не происходит попытки привязки этих устройств к другому драйверу (например, PCI-адреса устройств НЕ встречаются в nics.conf).

Оптимизация производительности

  1. Оптимизация параметров прошивки сетевых карт. Применяется через скрипт для нужной платформы один раз при установке новой сетевой карты (требуется перезагрузка системы):

  2. Оптимизация настроек сетевых карт для текущей сессии. Применяется при старте системы через автоматизированный скрипт, прописанный в автозагрузку.

  3. Включение режима pass-through для IOMMU. Увеличивает производительность (параметр ядра Linux):

    iommu=pt