Ошибки Mellanox ConnectX «Could not join netdev: No space left on device»

Однажды после установки сетевого адаптера Mellanox ConnectX-3 Pro EN / HP 544+QSFP (764284-B21) в сервер HPE DL380 Gen10 я обнаружил ошибки в файле /var/log/syslog:

systemd-networkd: vlan972: netdev ready
systemd-networkd: vlan951: netdev ready
systemd-networkd: vlan601: netdev ready
systemd-networkd: ens4d1: Could not join netdev: No space left on device
systemd-networkd: ens4d1: Failed
systemd-networkd: ens2d1: Link UP
systemd-networkd: ens2d1: Gained carrier
systemd-networkd: vlan959: Link is not managed by us
systemd-networkd: vlan991: Link is not managed by us

Потом нашел еще:

pci 0000:12:00.0: BAR 9: no space for [mem size 0x20000000 64bit pref]
pci 0000:12:00.0: BAR 9: failed to assign [mem size 0x20000000 64bit pref]
pci 0000:12:00.0: BAR 6: no space for [mem size 0x00100000 pref]
pci 0000:12:00.0: BAR 6: failed to assign [mem size 0x00100000 pref]
pci 0000:12:00.0: BAR 2: assigned [mem 0xc4000000000-0xc4001ffffff 64bit pref]
pci 0000:12:00.0: BAR 9: assigned [mem 0xc4002000000-0xc4021ffffff 64bit pref]

Я устанавливал сразу два сетевых адаптера, вот немного обычных логов при загрузке сервера:

dmesg -T
dmesg -T | grep mlx
mlx4_core: Mellanox ConnectX core driver v4.0-0
mlx4_core: Initializing 0000:12:00.0
mlx4_core 0000:12:00.0: DMFS high rate steer mode is: disabled performance optimized steering
mlx4_core 0000:12:00.0: PCIe link speed is 8.0GT/s, device supports 8.0GT/s
mlx4_core 0000:12:00.0: PCIe link width is x8, device supports x8
mlx4_core: Initializing 0000:af:00.0
mlx4_core 0000:af:00.0: DMFS high rate steer mode is: disabled performance optimized steering
mlx4_core 0000:af:00.0: PCIe link speed is 8.0GT/s, device supports 8.0GT/s
mlx4_core 0000:af:00.0: PCIe link width is x8, device supports x8
mlx4_en: Mellanox ConnectX HCA Ethernet driver v4.0-0
mlx4_en 0000:12:00.0: Activating port:2
mlx4_en: 0000:12:00.0: Port 2: Using 28 TX rings
mlx4_en: 0000:12:00.0: Port 2: Using 16 RX rings
mlx4_en: 0000:12:00.0: Port 2: Initializing port
mlx4_en 0000:12:00.0: registered PHC clock
mlx4_en 0000:af:00.0: Activating port:2
mlx4_core 0000:12:00.0 ens2d1: renamed from eth0
mlx4_en: 0000:af:00.0: Port 2: Using 28 TX rings
mlx4_en: 0000:af:00.0: Port 2: Using 16 RX rings
mlx4_en: 0000:af:00.0: Port 2: Initializing port
mlx4_en 0000:af:00.0: registered PHC clock
<mlx4_ib> mlx4_ib_add: mlx4_ib: Mellanox ConnectX InfiniBand driver v4.0-0
mlx4_core 0000:af:00.0 ens4d1: renamed from eth0
<mlx4_ib> mlx4_ib_add: counter index 0 for port 1 allocated 0
<mlx4_ib> mlx4_ib_add: counter index 2 for port 2 allocated 1
<mlx4_ib> mlx4_ib_add: counter index 0 for port 1 allocated 0
<mlx4_ib> mlx4_ib_add: counter index 2 for port 2 allocated 1

Первый сетевой адаптер работал хорошо и без ошибок, на его первом порту был указан один IP адрес, второй порт не был задействован.
Второй сетевой адаптер работал частично и были ошибки в логах о которых я писал выше, в конфигурации netplan на первый порт было указано 200 VLAN без IP адресов, пару VLAN с IP адресом и один IP адрес просто на порт без VLAN тега.

Я посмотрел количество VLAN интерфейсов и обнаружил что их только 126:

ip a | grep ': vlan' | wc -l

Если выполнить команду «netplan apply», то часть VLAN исчезала, а другая часть появлялась, но количество запущенных VLAN не менялось.

Я обновил версию драйвера и версию прошивки сетевых адаптеров до самых новых, но это не помогло.

Позже я узнал что сетевые адаптеры ConnectX®-3, ConnectX®-3 Pro, ConnectX®-4, ConnectX®-4 Lx и ConnectX®-5 Ex поддерживают только 128 MAC/VLAN на порт.

Я не нашел информации об ограничении VLAN на порт в документации к сетевому адаптеру HP 544+QSFP (764284-B21), вот например:
https://h20195.www2.hpe.com/v2/default.aspx?cc=my&lc=en&oid=6938455
Для Mellanox ConnectX-3 Pro EN тоже нет информации:
https://www.mellanox.com/files/doc-2020/pb-connectx-3-pro-card-en.pdf
И заметил что об этом мало пишут и для других моделей, но вот тут написано:
https://www.mellanox.com/related-docs/prod_adapter_cards/ConnectX3_EN_Card.pdf

Чтобы решить проблему я взял второй QSFP+ кабель, подключил его во второй порт сетевого адаптера и настроил 100 VLAN на одном порту и 100 VLAN на другом, потом применил сетевую конфигурацию выполнив «netplan apply» и все 200 VLAN успешно заработали.

Смотрите также мои статьи:
Настройка сети в Linux
Настройка Netplan

Оставьте комментарий

Добавить комментарий