Sommario
-
-
-
-
-
-
1. Introduzione di Remote Direct Memory Access (RDMA)
La tecnologia RDMA (Remote Direct Memory Access) è un ottimo strumento che consente ai computer di trasferire dati in rete senza coinvolgere le risorse della CPU o del sistema operativo degli host coinvolti (elaborazione/storage), migliorando throughput e prestazioni e riducendo la latenza e l'overhead della CPU.
Oggi sono disponibili due implementazioni RDMA molto diffuse:
RoCE
- Trasporti: UDP/IP (RoCE v2)
- Affidati a DCB (Data Center Bridging)
iWarp
- Rete sottostante: TCP/IP
: TCP fornisce il controllo del flusso e la gestione della congestione
RoCE si basa in larga misura sulla configurazione DCB, come ETS (Enhanced Transmission Service) e PFC (Priority Flow Control), che possono diventare un problema se gli switch di rete non sono configurati correttamente. iWARP non richiede alcuna configurazione di switch.
Microsoft ha iniziato a supportare RDMA su Windows Server 2012 e ha aggiunto nuove funzionalità nei sistemi operativi Windows Server successivi. Una funzione disponibile sul sistema operativo Microsoft più recente, ovvero Windows Server 2019, è la capacità di fornire la funzione RDMA al sistema operativo guest (VM). Ciò consente al guest di usufruire dello stesso accesso a bassa latenza allo storage su rete dell'host nativo, riducendo il carico della CPU e migliorando throughput e prestazioni direttamente nella VM.
Dell EMC offre ottime opzioni RDMA a 25 Gbps, ad esempio le schede Cavium QLogic FastLinQ 41262 Dual Port 25 GbE SFP28 (iWarp/RoCE) e Mellanox ConnectX-4 LX 25Gbps RDMA (RoCE). In questo esempio viene utilizzata la scheda Mellanox ConnectX-4 LX RDMA (modalità RoCEv2) per la demo della funzione Guest RDMA.
Server: 2 Dell EMC R7425 (processore AMD Epyc 7551 a 32 core), 256 GB di memoria, Mellanox ConnectX-4 Lx completamente aggiornato (BIOS, firmware, driver e sistema operativo)
Ruoli/funzionalità installati: Hyper-V, DCB, clustering di failover, switch S2D
: Dell EMC S5048F-ON - VLAN GESTIONE 2, VLAN SMB 15
Dell EMC consiglia di aggiornare il BIOS, il firmware, i driver e il sistema operativo nell'ambito del ciclo di aggiornamento pianificato. Gli aggiornamenti del BIOS, del firmware, dei driver e del sistema operativo consentono di migliorare l'affidabilità, la stabilità e la sicurezza del sistema.
1. Riavviare i server e accedere al programma di configurazione del sistema (premere F2 durante il POST).
2. Selezionare Device Settings.
Figura 1 - Impostazioni
del dispositivo BIOS 3. Selezionare la scheda di rete in Slot 1 Porta 1 - Mellanox
Figura 2 - Mellanox Slot 1 Porta 1 Impostazioni dispositivo
4. Vai a Configurazione
a livello di dispositivo Figura 3 - Configurazione a livello di
dispositivo 5. Selezionare SR-IOV in modalità di virtualizzazione.
Figura 4 - Impostazione
SR-IOV 6. Ripetere i passaggi precedenti sulla scheda di rete nello slot 1 porta 2 - Mellanox.
Figura 5 - Mellanox Slot 1 Porta 2 Impostazioni
dispositivo 7. Tornare a System Setup Main Menu, quindi selezionare System BIOS.
Figura 6 - BIOS di
sistema 8. Selezionare Integrated Devices.
Figura 7 - BIOS Integrated Devices
9. Abilitare l'opzione SR-IOV Global Enable.
Figura 8 - SR-IOV globale
10. Salvare la configurazione e riavviare il server.
1. Installare Windows Server 2019+
2. Installare il ruolo Hyper-V e la funzionalità Data Center Bridging (DCB).
3. Configurare QoS (Quality of Service), DCB, PFC, ETS. Assicurarsi che la configurazione della scheda di rete e QoS del server corrisponda alla configurazione dello switch.
4. Configurare Hyper-V SET (Switch Embedded Team).
Figura 9 - Configurazione vSwitch
5. Testare la comunicazione RDMA tra i server fisici prima di configurare le VM. Scaricare Microsoft Diskspd e lo script di Microsoft PowerShell Test-RDMA. Continuare con la procedura riportata di seguito solo se la comunicazione funziona correttamente. In caso contrario, controllare la configurazione dello switch e/o le impostazioni DCB sull host.
Figura 10 - Host
fisici RDMA di test 6. Verificare se SR-IOV è abilitato sulle schede RDMA su entrambi i server.
Figura 11 - SR-IOV abilitato
7. Creare due VM Gen 2 (sistema operativo guest), una su ciascun server, quindi installare Windows Server 2019. In questo scenario, viene creato un sistema operativo guest con due vNIC, una per il traffico MGMT (VLAN 2) e una per il traffico SMB (VLAN 15).
Figura 12 - Host di configurazione della rete del sistema operativo guest R7425-01
Figura 13 - Host di configurazione della rete della macchina virtuale R7425-02
8. Arrestare le VM.
9. Abilitare SR-IOV e RDMA sul sistema operativo guest.
Figura 14 - Abilitazione di SR-IOV/RDMA sui sistemi operativi
guest 10. Avviare le VM, quindi aprire Gestione dispositivi. Mellanox Virtual Function (VF) deve essere elencata in Network Adapters. La VF non viene visualizzata come una scheda di rete normale in Connessioni di rete, come mostrato nella figura 15.
Figura 15. Gestione dispositivi e Connessioni di rete del sistema operativo guest
NOTA: Potrebbe essere necessario installare un driver della scheda di rete per abilitare RDMA nel sistema operativo guest.
11. Abilitare RDMA sulla vNIC SMB. La funzionalità RDMA è già abilitata su Mellanox VF (Ethernet4 - Figura 16
).Figura 16 - Abilitazione di RDMA su vNIC
SMB 12. Testare la funzione Guest RDMA.
Nota: È importante specificare IfIndex (vNIC Interface Index) e VfIndex (Mellanox VF Interface Index).
Figura 17. Test-RDMA sul sistema operativo guest
#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
Per commenti, domande o suggerimenti, è possibile contattarci all'indirizzo
WinServerBlogs@dell.com