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

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

Работа с картами Mellanox (NVIDIA) требует последней версии драйвера и прошивки устройства NVIDIA MLNX_OFED.

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

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

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

    Установка минимально необходимого набора пакетов:

    ./mlnxofedinstall --basic --without-neohost-backend --without-neohost-sdk

    Если требуется только обновление прошивки сетевых карт без установки драйвера:

    ./mlnxofedinstall --fw-update-only

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

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

Настройка MITIGATOR

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

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

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

  3. Скачать и установить корректную базовую конфигурацию Docker Compose для сетевых карт Mellanox.

Настройка сетевых карт

  1. Произвести настройку прошивки сетевых карт Mellanox через скрипт mlx_firmware_tune. Скрипт необходимо выполнить один раз при установке новой сетевой карты. Требует перезагрузку системы для применения изменений.

    Скрипт прописывает в прошивку карт настройки оптимизации производительности, а также переключает сетевые порты из режима InfiniBand в Ethernet, если поддерживается.

  2. Применить настройки параметров сетевых портов Mellanox для оптимизации производительности через скрипт mlx_runtime_tune. Настройки действуют в течение текущей сессии. Скрипт необходимо выполнять при старте системы, прописав его в автозагрузку.

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

    iommu=pt