Как настроить гостевой удаленный прямой доступ к памяти (RDMA) в Windows Server 2019


Как настроить гостевой удаленный прямой доступ к памяти (RDMA) в Windows Server 2019


В этой статье описывается настройка гостевого удаленного прямого доступа к памяти (RDMA) в Windows Server 2019.




Содержание

  1. Внедрение удаленного прямого доступа к памяти (RDMA)

  2. Лабораторная среда

  3. Конфигурация оборудования

  4. Настройка гостевого удаленного прямого доступа к памяти (RDMA)

  5. Командлеты PowerShell

  6. Ссылки для загрузки


1. Внедрение удаленного прямого доступа к памяти (RDMA)

Удаленный прямой доступ к памяти (RDMA) — это эффективная технология, которая позволяет компьютерам передавать данные по сети без участия ресурсов ЦП или ОС на задействованных хостах (вычисление/хранение). Это позволяет повысить пропускную способность и производительность, сократить задержки и снизить нагрузку на ЦП.

Существует две популярные реализации RDMA:

RoCE:
— передача: UDP/IP (RoCE v2);
— зависит от конфигурации моста ЦОД (DCB);

iWarp:
— используемая сеть: TCP/IP;
— TCP обеспечивает управление потоком и перегрузкой.


RoCE в значительной степени зависит от конфигурации моста центра обработки данных (DCB) (в частности, от настроек контроля потока на основе приоритетов (PFC) и службы ETS), которая может стать проблемой, если сетевые коммутаторы настроены неправильно. В реализации 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. Лабораторная среда

Серверы: 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, микропрограммы, драйверов и ОС предназначены для повышения надежности, стабильности и безопасности системы.

3. Конфигурация оборудования

1. Перезагрузите серверы и откройте программу настройки системы (System Setup) (нажмите F2 во время процедуры POST).

2. Выберите пункт Device Settings.


Пункт «Device Settings» в BIOS
Рис. 1. Пункт «Device Settings» в BIOS
 
3. Выберите пункт «NIC in Slot 1 Port 1: Mellanox».

«Mellanox» для «Slot 1 Port 1» в окне «Device Settings»
Рис. 2. Выбор «Mellanox» для «Slot 1 Port 1» в окне «Device Settings»
 
4. Перейдите в раздел «Device Level Configuration».

«Device Level Configuration»
Рис. 3. Раздел «Device Level Configuration»
 
5. Выберите «SR-IOV» в пункте «Virtualization Mode».

Параметр «SR-IOV» 
Рис. 4. Выбор пункта «SR-IOV» 
 
6. Повторите описанные выше действия для пункта «NIC in Slot 1 Port 2: Mellanox».

«Mellanox» для «Slot 1 Port 2» в окне «Device Settings»
Рис. 5. Выбор «Mellanox» для «Slot 1 Port 2» в окне «Device Settings»
 
7. Вернитесь в главное меню «System Setup» и выберите пункт «System BIOS».

BIOS
Рис. 6. Выбор пункта «System BIOS»
 
8. Выберите пункт «Integrated Devices».

«Integrated Devices» в BIOS
Рис. 7. Выбор пункта «Integrated Devices» в BIOS
 
9. Включите параметр «SR-IOV Global Enable».

«SR-IOV Global»
Рис. 8. Параметр «SR-IOV Global Enable»
 
10. Сохраните конфигурацию и перезагрузите сервер.
 

4. Настройка гостевого удаленного прямого доступа к памяти (RDMA)


1. Установите Windows Server 2019.
2. Установите роль Hyper-V и функцию моста ЦОД (DCB).
3. Настройте QoS (качество обслуживания) и функции DCB, PFC, ETS. Убедитесь, что конфигурация серверной сетевой платы и QoS соответствуют конфигурации коммутатора.
4. Настройте Hyper-V SET (Switch Embedded Team).

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

«Test-RDMA» на физических хостах
Рис. 10. Скрипт «Test-RDMA» на физических хостах
 
6. Проверьте, что параметр «SR-IOV» включен на адаптерах RDMA обоих серверов.

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

Конфигурация сети гостевой ОС, хост R7425-01
Рис. 12. Конфигурация сети гостевой ОС, хост R7425-01

Конфигурация сети виртуальной машины, хост R7425-02
Рис. 13. Конфигурация сети виртуальной машины, хост R7425-02
 
8. Завершите работу виртуальных машин.
9. Включите параметры «SR-IOV» и «RDMA» в гостевой ОС.

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

Device Manager и раздел «Network Connections» в гостевой ОС
Рис. 15. Device Manager и раздел «Network Connections» в гостевой ОС
 
11. Включите RDMA на виртуальной сетевой плате (vNIC) SMB. Функциональность RDMA уже включена в Mellanox VF (Ethernet4, рис. 16).

Включение RDMA на виртуальной сетевой плате (vNIC) SMB
Рис. 16. Включение RDMA на виртуальной сетевой плате (vNIC) SMB
 
12. Протестируйте гостевой удаленный прямой доступ к памяти (RDMA). 
Примечание. Важно указать IfIndex (индекс интерфейса vNIC) и VfIndex (индекс интерфейса Mellanox VF).

«Test-RDMA» в гостевой ОС
Рис. 17. Скрипт «Test-RDMA» в гостевой ОС
 

5. Командлеты Powershell


#Создать новый виртуальный коммутатор с включенным параметром «SR-IOV»
New-VMSwitch -Name xxxx -NetadapterName xxxx,xxxx -AllowManagementOS $true -EnableEmbeddedTeaming $true -EnableIov $true

#Проверить, включен ли SRIOV на физическом адаптере
Get-NetAdapterSriov -Name xxxx

#Получить конфигурацию сети виртуальной машины
Get-VM -Name xxxx| Get-VMNetworkAdapter

#Получить конфигурацию сети VLAN виртуальной машины
Get-VM -Name | Get-VMNetworkAdapterVlan

#Задать VM SRIO и RDMA на виртуальной сетевой плате виртуальной машины (гостевой ОС)
Get-VM -Name xxxx | Set-VMNetworkAdapter -Name xxx -IovWeight 100 -IoVQueuePairsRequested 2
Get-VM -Name xxxx | Set-VMNetworkAdapterRdma -Name xxx -RdmaWeight 100

#Test-Rdma на физическом хосте
.\Test-Rdma.ps1 -IfIndex xx -IsRoCE $true -RemoteIpAddress xxx.xxx.xxx.xxx -PathToDiskspd xxxxx

#Test-Rdma на виртуальной машине (гостевой ОС)
.\Test-Rdma.ps1 -IfIndex xx -IsRoCE $true -RemoteIpAddress xxx.xxx.xxx.xxx -PathToDiskspd xxxxx -VfIndex xx
 

6. Ссылки для загрузки


Утилита Microsoft Diskspd
https://gallery.technet.microsoft.com/DiskSpd-a-robust-storage-6cd2f223

Скрипт Microsoft «Test-RDMA»
https://github.com/Microsoft/SDN/blob/master/Diagnostics/Test-Rdma.ps1
 
У вас есть комментарии, вопросы или предложения? Свяжитесь с нами по адресу WinServerBlogs@dell.com.
 
Need more help?
Find additional PowerEdge and PowerVault articles
Watch Part Replacement Videos for Enterprise products

Visit and ask for support in our Communities

Create an online support Request





Содержание раздела "Краткие рекомендации" формируется благодаря публикациям специалистов службы поддержки Dell, которые решают технические проблемы каждый день. Чтобы ускорить публикацию рекомендаций, в раздел "Краткие рекомендации" могут включаться частичные решения или временные решения, которые еще находятся в разработке или ожидают подтверждения фактов успешного разрешения проблем с их помощью. Решения, представленные в разделе "Краткие рекомендации" не просматриваются, не проверяются и не утверждаются компанией Dell и, следовательно, должны использоваться с осторожностью. Dell не несет ответственности за любые потери, включая, но не ограничиваясь, потерю данных, прибыли или доходов, которые могут понести заказчики, которые воспользовались процедурами или советами раздела "Краткие рекомендации".

Код статьи: HOW16693

Дата последнего изменения: 31/03/2020 10:45

Оцените эту статью

Точно
Функционально
Просто понять
Помогла ли вам эта статья?
0/3000 characters
Поставьте оценку (1–5 звезд).
Поставьте оценку (1–5 звезд).
Поставьте оценку (1–5 звезд).
Выберите ответ на вопрос, была ли статья полезной.
Комментарии не должны содержать следующие специальные символы: <>()\
знаков осталось.