Содержание
-
-
-
-
-
-
1. Внедрение удаленного прямого доступа к памяти (RDMA)
Удаленный прямой доступ к памяти (RDMA) — это эффективная технология, которая позволяет компьютерам передавать данные по сети без участия ресурсов ЦП или ОС на задействованных хостах (вычисление/хранение). Это позволяет повысить пропускную способность и производительность, сократить задержки и снизить нагрузку на ЦП.
На данный момент существует два распространенных внедрения RDMA:
RoCE
- Транспортировка: UDP/IP (RoCE v2)
- На основе DCB (Data Center Bridging)
iWarp
- Базовая сеть: TCP/IP
- TCP обеспечивает управление потоком и перегрузкой.
RoCE в значительной степени зависит от конфигурации DCB, такой как ETS (Enhanced Transmission Service) и PFC (Priority Flow Control), что может стать проблемой, если сетевые коммутаторы настроены неправильно. iWARP не требует настройки коммутаторов.
Корпорация Microsoft начала поддержку RDMA в Windows Server 2012 и добавила новые функции в более поздние версии ОС Windows Server. Одной из функций, доступных в самой новой версии ОС Microsoft — Windows Server 2019, служит возможность использования удаленного прямого доступа к памяти (RDMA) в гостевой ОС (ВМ). Это позволяет гостевому серверу получать доступ к сетевой системе хранения с такой же низкой задержкой, как и при получении доступа к собственному хосту. Это снижает нагрузку на ЦП и повышает пропускную способность/производительность непосредственно в виртуальной машине.
Dell EMC предлагает отличные варианты для реализации RDMA 25 Гбит/с, например 2-портовую адаптерную плату Cavium QLogic FastLinQ 41262 25 GbE SFP28 (iWarp/RoCE) и плату Mellanox ConnectX-4 Lx RDMA 25 Гбит/с (RoCE). В данном примере для демонстрации функции гостевого удаленного прямого доступа к памяти (RDMA) используется плата Mellanox ConnectX-4 Lx RDMA (в режиме RoCEv2).
Серверы: 2 сервера Dell EMC R7425 (32-ядерный процессор AMD Epyc 7551), 256 Гбайт памяти, плата Mellanox ConnectX-4 Lx, полностью обновленные (BIOS, микропрограмма, драйверы и ОС).
Установленные роли/функции: Hyper-V, DCB, отказоустойчивая кластеризация, локальные дисковые пространства (S2D).
Коммутатор: Dell EMC S5048F-ON – MGMT VLAN 2, SMB VLAN 15.
Dell EMC рекомендует обновлять BIOS, микропрограммы, драйверы и операционную систему в рамках планового цикла обновления. Обновления BIOS, микропрограммы, драйверов и ОС предназначены для повышения надежности, стабильности и безопасности системы.
1. Перезагрузите серверы и откройте программу настройки системы (System Setup) (нажмите F2 во время процедуры POST).
2. Выберите пункт Device Settings.
Рис. 1. Пункт «Device Settings» в BIOS
3. Выберите «NIC in Slot 1 Port 1 - Mellanox»
Рис. 2. Выбор «Mellanox» для «Slot 1 Port 1» в окне «Device Settings»
4. Перейдите в раздел «Device Level Configuration»
Перейдите в раздел «Device Level Configuration»
5. Выберите «SR-IOV» в пункте «Virtualization Mode».
Рис. 4. Выбор пункта «SR-IOV»
6. Повторите описанные выше действия для пункта «NIC in Slot 1 Port 2: Mellanox».
Рис. 5. Выбор «Mellanox» для «Slot 1 Port 2» в окне «Device Settings»
7. Вернитесь в главное меню «System Setup» и выберите пункт «System BIOS».
Рис. 6. Выбор пункта «System BIOS»
8. Выберите «Integrated Devices».
Рис. 7. Выбор пункта «Integrated Devices» в BIOS
9. Включите параметр «SR-IOV Global Enable».
Рис. 8. Параметр «SR-IOV Global Enable»
10. Сохраните конфигурацию и перезагрузите сервер.
1. Установите Windows Server 2019+
2. Установите роль Hyper-V и функцию моста ЦОД (DCB).
3. Настройте QoS (качество обслуживания) и функции DCB, PFC, ETS. Убедитесь, что конфигурация серверной сетевой платы и QoS соответствуют конфигурации коммутатора.
4. Настройте Hyper-V SET (Switch Embedded Team).
Рис. 9. Конфигурация vSwitch
5. Перед настройкой виртуальных машин протестируйте обмен данными при использовании RDMA между физическими серверами. Загрузите утилиту Microsoft DiskSpd и скрипт Microsoft PowerShell «Test-RDMA». Продолжайте выполнение описанных ниже действий только в том случае, если обмен данными работает должным образом. В противном случае проверьте конфигурацию коммутатора и/или настройки DCB на хосте.
Рис. 10. Скрипт «Test-RDMA» на физических хостах
6. Проверьте, что параметр «SR-IOV» включен на адаптерах RDMA обоих серверов.
Рис. 11. Параметр «SR-IOV» включен
7. Создайте две виртуальные машины 2-го поколения (гостевая ОС), по одной на каждом сервере, затем установите Windows Server 2019. В этом сценарии создается гостевая ОС с двумя виртуальными сетевыми платами: одна для трафика MGMT (VLAN 2) и одна для трафика SMB (VLAN 15).
Рис. 12. Конфигурация сети гостевой ОС хоста R7425-01.
Рис. 13. Конфигурация сети виртуальной машины хоста R7425-02
8. Завершите работу виртуальных машин.
9. Включите «SR-IOV» и «RDMA» в гостевой ОС.
Рис. 14. Включение «SR-IOV» и «RDMA» в гостевых ОС
10. Запустите виртуальные машины, затем откройте Device Manager. В разделе «Network Adapters» должна быть указана виртуальная функция «Mellanox Virtual Function (VF)». Эта виртуальная функция (VF) не представлена как обычный сетевой адаптер в разделе «Network Connections», как показано на рис. 15.
Рис. 15. Device Manager и раздел «Network Connections» в гостевой ОС
ПРИМЕЧАНИЕ. Для включения RDMA в гостевой операционной системе может потребоваться установить драйвер сетевой платы.
11. Включите RDMA на виртуальной сетевой плате (vNIC) SMB. Функции RDMA уже включены в Mellanox VF (Ethernet4 — Рис. 16.)
Рис. 16. Включение RDMA на виртуальной сетевой плате (vNIC) SMB
12. Протестируйте гостевой удаленный прямой доступ к памяти (RDMA).
Примечание. Важно указать IfIndex (индекс интерфейса vNIC) и VfIndex (индекс интерфейса Mellanox VF).
Рис. 17. Скрипт «Test-RDMA» в гостевой ОС
#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.