Microsoft Windows. Настройка гостевой RDMA в Windows Server
摘要: В этой статье объясняется, как настроить гостевой удаленный прямой доступ к памяти (RDMA) в Windows Server.
说明
Содержание
- Внедрение удаленного прямого доступа к памяти (RDMA)
- Лабораторная среда
- Конфигурация оборудования
- Настройка гостевого удаленного прямого доступа к памяти (RDMA)
- Командлеты PowerShell
- Ссылки для загрузки
Внедрение удаленного прямого доступа к памяти (RDMA)
Remote Direct Memory Access (RDMA) — это отличная технология, которая позволяет компьютерам передавать данные по сети, не задействуя ресурсы ЦП или ОС задействованных хостов (вычислительные ресурсы и хранилище). Это повышает пропускную способность и производительность, а также снижает задержку и нагрузку на ЦП.
На сегодняшний день существует две популярные реализации RDMA:
- RoCE:
- Транспорт: UDP/IP (RoCE v2)
- Использование технологии Data Center Bridging (DCB)
- iWarp:
- Базовая сеть: Протокол TCP/IP
- TCP обеспечивает контроль потока и управление перегрузками.
RoCE в значительной степени полагается на конфигурацию DCB, такую как Enhanced Transmission Service (ETS) и Priority Flow Control (PFC), что может стать проблемой, если сетевые коммутаторы настроены неправильно. iWARP не требует какой-либо настройки коммутатора.
Microsoft начала поддерживать RDMA в Windows Server 2012 и добавила новые функции в более поздней ОС Windows Server. Одной из функций, доступных в Microsoft Windows Server 2019, является возможность представления RDMA гостевой ОС (VM). Это позволяет гостевому компьютеру получать доступ к сетевому хранилищу с низкой задержкой, как и собственный хост, что снижает нагрузку на ЦП и повышает пропускную способность и производительность непосредственно на виртуальной машине.
Dell предлагает отличные варианты для RDMA 25 Гбит/с, такие как двухпортовый адаптер Cavius QLogic FastLinQ 41262 25 GbE SFP28 (iWarp/RoCE) и Mellanox ConnectX-4 Lx 25 Гбит/с RDMA (RoCE). В данном примере для демонстрации функции гостевого удаленного прямого доступа к памяти (RDMA) используется плата Mellanox ConnectX-4 Lx RDMA (в режиме RoCEv2).
Лабораторная среда
Серверы:
- 2 x Dell R7425 (32-ядерный процессор AMD EPYC 7551)
- 256 Гбайт памяти
- Mellanox ConnectX-4 Lx полностью обновлено (микропрограмма (включая BIOS), драйверы и ОС)
Установленные роли и функции:
- Hyper-V
- ДКБ
- Отказоустойчивая кластеризация
- С2Д
Переключатель:
- Dell S5048F-ON — управление VLAN 2
- Сеть SMB VLAN 15
Конфигурация оборудования
- Перезагрузите серверы и войдите в программу настройки системы (нажмите клавишу F2 во время процедуры POST).
- Выберите пункт Device Settings.

Рис. 1 . Параметры устройства BIOS
- Выберите сетевую плату в разъеме 1 порт 1 — Mellanox.

Рис. 2 . Разъем 1 Порт 1 Mellanox Параметры устройства
- Перейдите в раздел Device Level Configuration.

Рисунок 3 . Конфигурация на уровне устройства
- Выбирать SR-IOV в режиме виртуализации.

Рисунок 4 . Настройка SR-IOV
- Повторите описанные выше действия с сетевой платой в разъеме 1, порт 2 — Mellanox.

Рис. 5 . Параметры устройства Mellanox Slot 1 Port 2
- Вернитесь в главное меню программы настройки системы и выберите System BIOS.

Рис. 6 . BIOS системы
- Выберите пункт Integrated Devices.

Рис. 7 . Интегрированные устройства BIOS
- Включите параметр SR-IOV Global .

Рисунок 8 - SR-IOV Global
- Сохраните конфигурацию и перезагрузите сервер.
Настройка гостевого удаленного прямого доступа к памяти (RDMA)
- Устанавливать Windows Server 2019+.
- Установите роль Hyper-V и функцию DCB (Data Center Bridging).
- Настроить Качество обслуживания (QoS), DCB, PFC, ETS. Убедитесь, что сетевая плата сервера и конфигурация QoS соответствуют конфигурации коммутатора.
- Настроить Hyper-V Switch Embedded Team (SET).

Рис. 9 . Конфигурация vSwitch
- Перед настройкой виртуальных машин протестируйте связь RDMA между физическими серверами. Скачать Microsoft
Diskspdи сценарий Microsoft Test-RDMA PowerShell. Выполняйте следующие действия только в том случае, если связь работает правильно. В противном случае проверьте конфигурацию коммутатора и/или параметры DCB на хосте.

Рис. 10 . Тест — физические хосты RDMA
- Убедитесь , что на адаптерах RDMA на обоих серверах включена поддержка SR-IOV.

Рис. 11 . SR-IOV включен
- Создайте две виртуальные машины 2-го поколения (гостевая ОС), по одной на каждом сервере, затем установите Windows Server 2019. В этом сценарии создается гостевая ОС с двумя виртуальными сетевыми платами: одна для трафика управления (VLAN 2) и одна для трафика SMB (VLAN 15).

Рис. 12 . Хост конфигурации сети гостевой ОС R7425-01

Рис. 13 . Хост конфигурации сети виртуальной машины R7425-02
- Завершите работу виртуальных машин.
- Давать возможность SR-IOV и RDMA в гостевой ОС.

Рисунок 14 - Включение SR-IOV/RDMA в гостевых ОС.
- Запустите виртуальные машины и откройте Диспетчер устройств. В разделе «Network Adapters» должна быть указана виртуальная функция «Mellanox Virtual Function (VF)». Эта виртуальная функция (VF) не представлена как обычный сетевой адаптер в разделе «Network Connections», как показано на рис. 15.

Рис. 15 . Диспетчер устройств гостевой ОС и сетевые подключения
- Включите RDMA для виртуальной сетевой платы SMB. Функциональность RDMA уже включена на Mellanox VF (Ethernet4 — рис. 16).

Рис. 16 . Включение RDMA на SMB vNIC.
- Тест Гостевая RDMA.
IfIndex (индекс интерфейса vNIC) и VfIndex (Индекс интерфейса Mellanox VF).

Рис. 17 . Тест — гостевая ОС RDMA
Командлеты PowerShell
#Create new virtual switch with SRIOV option enabled New-VMSwitch -Name xxxx -NetadapterName xxxx,xxxx -AllowManagementOS $true -EnableEmbeddedTeaming $true -EnableIov $true #Verify if SRIOV is enabled on physical adapter Get-NetAdapterSriov -Name xxxx #Get VM network configuration Get-VM -Name xxxx| Get-VMNetworkAdapter #Get VM network VLAN configuration Get-VM -Name | Get-VMNetworkAdapterVlan #Set VM SRIO and RDMA on Virtual Machine(Guest OS) vNIC Get-VM -Name xxxx | Set-VMNetworkAdapter -Name xxx -IovWeight 100 -IoVQueuePairsRequested 2 Get-VM -Name xxxx | Set-VMNetworkAdapterRdma -Name xxx -RdmaWeight 100 #Enable RDMA on NetAdapter Enable-NetAdapterRdma -Name xxxx #Test-Rdma Physical Host .\Test-Rdma.ps1 -IfIndex xx -IsRoCE $true -RemoteIpAddress xxx.xxx.xxx.xxx -PathToDiskspd xxxxx #Test-Rdma Virtual Machine (Guest OS) .\Test-Rdma.ps1 -IfIndex xx -IsRoCE $true -RemoteIpAddress xxx.xxx.xxx.xxx -PathToDiskspd xxxxx -VfIndex xx
Ссылки для загрузки
У вас есть какие-либо комментарии, вопросы или предложения? Свяжитесь с нами по WinServerBlogs@dell.com