При развертывании кластера виртуализации на базе Proxmox VE 9.2 (актуальная версия на базе Debian Trixie/13 на дату публикации) сетевая подсистема требует особого внимания, особенно если узлы объединены через высокоскоростной VPI-коммутатор Mellanox SX6036 (в режиме Ethernet). Для обеспечения отказоустойчивости, минимальных задержек и изоляции трафика необходимо правильно сконфигурировать сетевые мосты (Linux Bridges) или Open vSwitch на гипервизоре, а также настроить агрегацию и Jumbo Frames на коммутаторе.
В этой статье мы разберем пошаговую настройку сетевой фабрики для распределенного кластера Proxmox VE 9.2.
Стек Proxmox VE критически чувствителен к задержкам в сети, особенно если используется распределенное хранилище Ceph или база синхронизации кластера Corosync. Сетевой трафик разделяется на следующие сегменты:
Для реализации отказоустойчивости нужно объединить два интерфейса адаптера ConnectX-3/ConnectX-3 Pro (например, 40G) на каждом хосте в LACP-бонд (80G), а поверх него настроить VLAN-aware мост.
Для агрегации каналов (LACP) на стороне Mellanox SX6036 создаются интерфейсы Port-Channel. Предположим, первый хост подключен к портам 1/1 и 1/2. Нам нужно объединить их, включить режим Trunk и Jumbo Frames (MTU 9216).
Входим в режим конфигурации
Switch > enable Switch # configure terminal
Создаем Port-Channel интерфейс
Switch (config) # interface port-channel 1
Настраиваем режим Trunk и разрешаем VLANы (например, 10, 20, 30, 40, 100-200)
Switch (config interface port-channel 1) # switchport mode trunk Switch (config interface port-channel 1) # switchport trunk allowed-vlan 10,20,30,40,100-200
Выключаем интерфейс для изменения MTU
Switch (config interface port-channel 1) # shutdown Switch (config interface port-channel 1) # mtu 9216 Switch (config interface port-channel 1) # no shutdown Switch (config interface port-channel 1) # exit
Привязываем физические интерфейсы к созданному Port-Channel
Switch (config) # interface ethernet 1/1-1/2 Switch (config interface ethernet 1/1-1/2) # channel-group 1 mode active Switch (config interface ethernet 1/1-1/2) # shutdown Switch (config interface ethernet 1/1-1/2) # mtu 9216 Switch (config interface ethernet 1/1-1/2) # no shutdown Switch (config interface ethernet 1/1-1/2) # exit
Сохраняем конфигурацию
Switch (config) # configuration write
В Proxmox VE 9.2 конфигурация сети описывается стандартными средствами пакета ifupdown2, что позволяет применять изменения «на лету» без перезагрузки ноды.
Открываем файл /etc/network/interfaces на ноде Proxmox и приводим его к следующему виду (заменим enp1s0f0 и enp1s0f1 на реальные имена ваших интерфейсов Mellanox, которые можно узнать через команду ip l):
Физические интерфейсы Mellanox ConnectX
auto enp1s0f0
iface enp1s0f0 inet manual
mtu 9000
auto enp1s0f1
iface enp1s0f1 inet manual
mtu 9000
Создаём LACP Бонда (Агрегация каналов)
auto bond0
iface bond0 inet manual
bond-slaves enp1s0f0 enp1s0f1
bond-miimon 100
bond-mode 802.3ad
bond-xmit-hash-policy layer2+3
mtu 9000
Основной VLAN-aware мост для виртуальных машин и хоста
auto vmbr0
iface vmbr0 inet manual
bridge-ports bond0
bridge-stp off
bridge-fd 0
bridge-vlan-aware yes
bridge-vids 10-200
mtu 9000
Интерфейс управления хостом (Management - VLAN 10)
auto vmbr0.10
iface vmbr0.10 inet static
address 192.168.10.51/24
gateway 192.168.10.1
dns-nameservers 192.168.10.254
mtu 1500
Интерфейс кластерной сети Corosync (VLAN 20) — MTU 1500 для минимизации задержек пакетов управления
auto vmbr0.20
iface vmbr0.20 inet static
address 10.20.0.51/24
mtu 1500
Интерфейс сети хранения/Ceph/Migration (VLAN 30) — Строго с MTU 9000
auto vmbr0.30
iface vmbr0.30 inet static
address 10.30.0.51/24
mtu 9000
Чтобы применить настройки без перезагрузки сервера, выполняем в консоли Proxmox:
ifreload -a
Сетевые карты Mellanox ConnectX-3 / Pro используют модуль ядра mlx4_core. Для обеспечения максимальной производительности в Proxmox VE 9.2 убеждаемся, что включены механизмы аппаратной разгрузки.
Проверяем текущее состояние с помощью ethtool:
Проверка поддержки Large Receive Offload (LRO) и Checksum Offload
ethtool -k enp1s0f0 | grep -E 'receive-offload|checksum'
Для повышения пропускной способности сети хранения данных можно увеличить буферы кольца (Ring Buffers) на физических интерфейсах до максимума (обычно 4096):
ethtool -G enp1s0f0 rx 4096 tx 4096 ethtool -G enp1s0f1 rx 4096 tx 4096
Чтобы эти настройки сохранялись после перезагрузки, их нужно добавить в параметры post-up соответствующих интерфейсов в файле /etc/network/interfaces.
Partner Mac Address коммутатора):cat /proc/net/bonding/bond0
9000 - 28 = 8972 байта):ping -M do -s 8972 10.30.0.52
Switch # show interfaces port-channel 1 counters