Содержание
Настройка сетевой фабрики Mellanox/NVIDIA SX6036 для кластеров VMware vSphere
При развертывании высоконагруженных кластеров виртуализации VMware vSphere порой стандартных сетевых настроек оказывается недостаточно. Чтобы улучшить показатели производительности адаптеров и коммутаторов Mellanox/NVIDIA, необходимо правильно изолировать типы трафика, настроить MTU и подготовить фабрику к передаче данных с минимальными задержками.
В этой статье мы разберем архитектурный подход к проектированию сети vSphere и приведём конкретные шаги по настройке оборудования.
Архитектурный подход: разделение трафика
Главное правило при проектировании сети для VMware — строгая изоляция различных типов трафика. Это необходимо как для безопасности, так и для предсказуемой производительности.
Обычно выделяют четыре изолированных сегмента:
- Management Network: Трафик управления хостами ESXi и vCenter. Требует максимальной надежности, но объемы данных там небольшие.
- vMotion Network: Трафик динамической миграции виртуальных машин. Генерирует огромные всплески нагрузки на полосу пропускания.
- Storage Network (iSCSI / NFS / vSAN / RoCE): Сеть хранения данных. Критична к задержкам и потерям пакетов.
- VM Network: Непосредственно трафик самих виртуальных машин.
Для физического разделения этих сред и обеспечения отказоустойчивости на каждом хосте ESXi рекомендуется использовать как минимум два высокоскоростных аплинка (например, 25/50/100 GbE), подключенных к двум разным коммутаторам фабрики. Логическое же разделение выполняется с помощью VLAN.
Шаг 1. Конфигурация коммутатора SX6036 (MLNX-OS в режиме Ethernet)
Предположим, что под разные типы трафика мы выделили следующие VLAN:
- Management — VLAN 10
- vMotion — VLAN 20
- Storage — VLAN 30
- VM Network — VLAN 100-200
Через CLI коммутатора настроим интерфейсы, к которым подключены хосты ESXi. Здесь нужно перевести интерфейсы в режим Trunk, разрешить прохождение нужных VLAN и обязательно включить поддержку Jumbo Frames (MTU 9000) для сетей хранения и vMotion.
Важно: В MLNX-OS для изменения MTU интерфейс необходимо предварительно выключить (shutdown), иначе система может заблокировать команду или вызвать сетевой сбой. Значение 9216 на коммутаторе обеспечит чистый MTU 9000 внутри гипервизора ESXi с учетом служебных заголовков.
Входим в режим конфигурации
Switch > enable Switch # configure terminal
Переходим к настройке интерфейсов хостов (например, порты с 1 по 4)
Switch (config) # interface ethernet 1/1-1/4
Переводим интерфейсы в режим Trunk
Switch (config interface ethernet 1/1-1/4) # switchport mode trunk
Разрешаем созданные VLAN на этих интерфейсах
Switch (config interface ethernet 1/1-1/4) # switchport trunk allowed-vlan 10,20,30,100-200
Выключаем интерфейсы для корректного изменения MTU под Jumbo Frames
Switch (config interface ethernet 1/1-1/4) # shutdown
Задаем размер MTU
Switch (config interface ethernet 1/1-1/4) # mtu 9216
Включаем интерфейсы обратно
Switch (config interface ethernet 1/1-1/4) # no shutdown Switch (config interface ethernet 1/1-1/4) # exit
Сохраняем конфигурацию в память
Switch (config) # configuration write
Шаг 2. Настройка на стороне VMware vSphere
Для управления такой конфигурацией лучше всего использовать Distributed Switch (vDS), так как он позволяет централизованно настраивать политики для всего кластера.
1. Настройка MTU на vDS
- Открываем vSphere Client и переходим в раздел Networking.
- Нажимаем правой кнопкой мыши на Distributed Switch и выбираем Settings → Edit Settings.
- Вкладка Advanced: изменяем значение MTU (Bytes) на
9000. Нажимаем OK.
2. Создание Distributed Port Groups
Создаём отдельные группы интерфейсов для каждого типа трафика и указываем для них соответствующие VLAN ID в настройках:
- PG-Management: VLAN ID
10 - PG-vMotion: VLAN ID
20 - PG-Storage: VLAN ID
30 - PG-VM-Network: VLAN ID
Route to IDилиVLAN trunking(в зависимости от задач).
3. Оптимизация сетевых адаптеров (Драйверы nmlx)
Адаптеры Mellanox ConnectX-3 / ConnectX-3 Pro (которые обычно используются в паре с SX6036 на скоростях 40/56G) работают под управлением драйверов nmlx4_core или nmlx5_core. Чтобы проверить их состояние и актуальность через CLI хоста ESXi (по SSH), используем команду:
esxcli network nic list
Убеждаемся, что линки поднялись на максимальной поддерживаемой скорости (например, 40000 Mbps или 56000 Mbps). Базово нативные драйверы отлично оптимизированы под виртуализацию и не требуют глубокого тюнинга на начальном этапе.
4. Создание VMkernel интерфейсов
Для интерфейсов управления, vMotion и Storage необходимо создать соответствующие адаптеры VMkernel (vmk):
- При привязке
vmkк группе PG-vMotion обязательно отмечаем галочку vMotion traffic. - При создании
vmkдля Storage/vMotion в настройках самого интерфейса VMkernel также вручную указываем MTU: 9000. Если этого не сделать, пакеты будут дробиться, несмотря на настройки распределенного свитча.
Проверяем все настройки перед запуском в прод
Перед тем как переносить на кластер боевые виртуальные машины, выполняем финальную проверку через SSH-консоль любого хоста ESXi:
- [X] Проверка Jumbo Frames: Пакеты размером 9000 байт должны проходить без фрагментации в сети хранения и vMotion.
Проверка пинга до соседнего хоста ESXi в сети хранения (vmk1) без фрагментации
vmkping -d -s 8972 <IP_соседа_в_Storage_сети>
- [X] Проверка статуса линков на SX6036: Оба аплинка на хостах активны, ошибки (CRC, Discards) на портах коммутатора отсутствуют. На свитче проверяем командой:
Switch # show interfaces ethernet 1/1 counters
- [X] Изоляция трафика: Хост не должен иметь пинга между изолированными сетями (например, из сети Management в сеть Storage), если это не предусмотрено вашей топологией маршрутизации.
