Подготовка серверов для использования SR-IOV#
Чтобы использовать возможности SR-IOV, убедитесь, что сетевой адаптер можно виртуализировать, а затем включите поддержку IOMMU. Для сетевых адаптеров Mellanox необходимо дополнительно включить SR-IOV в микропрограмме.
Проверка того, что сетевой адаптер поддерживает SR-IOV
Выведите список всех сетевых адаптеров на сервере и получите их VID и PID:
# lspci -nnD | grep Ethernet
0000:00:03.0 Ethernet controller [0200]: Mellanox Technologies MT27800 Family [ConnectX-5] [15b3:1017]
0000:00:04.0 Ethernet controller [0200]: Mellanox Technologies MT27800 Family [ConnectX-5] [15b3:1017]
[15b3:1017] содержит VID и PID сетевого адаптера.
Убедитесь, что выбранный сетевой адаптер поддерживает SR-IOV, указав его VID и PID:
# lspci -vv -d 15b3:1017 | grep SR-IOV
Capabilities: [180 v1] Single Root I/O Virtualization (SR-IOV)
Capabilities: [180 v1] Single Root I/O Virtualization (SR-IOV)
Включение поддержки IOMMU на сервере
Выполните сценарий pci-helper.py, а затем перезагрузите сервер, чтобы применить изменения:
# /usr/libexec/vstorage-ui-agent/bin/pci-helper.py enable-iommu
# reboot
Сценарий работает как для процессоров Intel, так и для AMD.
Проверить успешное включение поддержки IOMMU можно в выводе dmesg:
# dmesg | grep -e DMAR -e IOMMU
[ 0.000000] DMAR: IOMMU enabled
Включение поддержки SR-IOV в микропрограмме сетевых адаптеров Mellanox
Скачайте Mellanox Firmware Tools (MFT) с официального сайта и распакуйте архив на сервере, например:
# wget https://www.mellanox.com/downloads/MFT/mft-4.17.0-106-x86_64-rpm.tgz # tar -xvzf mft-4.17.0-106-x86_64-rpm.tgz
Установите пакет, а затем запустите Mellanox Software Tools (MST):
# yum install rpm-build # . mft-4.17.0-106-x86_64-rpm/install.sh # mst start
Определите путь к устройству Mellanox:
# mst status
Запросите текущую конфигурацию устройства:
# mlxconfig -d /dev/mst/mt4119_pciconf0 q ... Configurations: ... NUM_OF_VFS 4 # Number of activated VFs SRIOV_EN True(1) # SR-IOV is enabled ...
При необходимости задайте нужные значения. Например, чтобы увеличить число виртуальных функций до 8, выполните следующую команду:
# mlxconfig -d /dev/mst/mt4119_pciconf0 set SRIOV_EN=1 NUM_OF_VFS=8
Перезагрузите сервер, чтобы применить изменения.