Sumário
-
-
-
-
-
-
1. Introdução ao RDMA (Remote Direct Memory Access, Acesso Remoto Direto à Memória)
Remote Direct Memory Access (RDMA) é uma excelente tecnologia que permite que os computadores transfiram dados em toda a rede sem incluir recursos da CPU nem do SO dos hosts envolvidos (computação/armazenamento), aprimorando o throughput e o desempenho e reduzindo a latência e a sobrecarga da CPU.
No momento, há duas implementações comuns do RDMA:
RoCE
— transmissão: UDP/IP (RoCE v2)
— confiança no DCB (Data Center Bridging)
iWARP
— rede subjacente: TCP/IP
— o TCP oferece controle de fluxo e gerenciamento de congestionamento
O RoCE depende muito da configuração do DCB, como ETS (Enhanced Transmission Service) e PFC (Priority Flow Control), o que poderá se tornar um problema se os switches de rede não estiverem configurados corretamente. O iWARP não requer configuração de switch.
A Microsoft começou a oferecer suporte ao RDMA no Windows Server 2012 e adicionou novos recursos aos SOs Windows Server mais recentes. Um recurso disponível no sistema operacional mais recente da Microsoft, o Windows Server 2019, é a capacidade de incluir o RDMA no sistema operacional convidado (VM). Isso permite que o sistema convidado tenha o mesmo acesso de baixa latência a um armazenamento em rede como o host nativo, reduzindo a sobrecarga da CPU e aprimoramento o throughput/desempenho diretamente na VM.
A Dell EMC oferece ótimas opções para RDMA de 25 Gbit/s, como o Cavium QLogic FastLinQ 41262 de duas portas SFP28 e 25 GbE (IWarp/RoCE) e o RDMA Mellanox ConnectX-4 LX de 25 Gbit/s (RoCE). Este exemplo usa o RDMA Mellanox ConnectX-4 LX (modo RoCEv2) para demonstrar o recurso RDMA convidado.
Servidores: 2 Dell EMC R7425 (processador AMD Epyc 7551 de 32 núcleos), memória de 256 GB, Mellanox ConnectX-4 Lx totalmente atualizado (BIOS, firmware, drivers e SO)
Funções/recursos instalados: Hyper-V, DCB, Failover Clustering, S2D
Switch: Dell EMC S5048F-ON — MGMT VLAN 2, SMB VLAN 15
A Dell EMC recomenda atualizar o BIOS, os firmwares, os drivers e o sistema operacional como parte do ciclo de atualização agendado. O BIOS, o firmware, o driver e as atualizações do sistema operacional foram projetados para aprimorar a confiabilidade, a estabilidade e a segurança de seu sistema.
1. Reinicialize os servidores e acesse a configuração do sistema (pressione F2 durante o POST).
2. Selecione Device Settings.
Figura 1: Device Settings no BIOS
3. Selecione a NIC do slot 1 porta 1 — Mellanox
Figura 2: Device Settings da Mellanox slot 1 porta 1
4. Acesse Device Level Configuration
Figura 3: Device Level Configuration
5. Selecione SR-IOV em Virtualization Mode.
Figura 4: configuração SR-IOV
6. Repita as etapas acima na NIC do slot 1 porta 2 — Mellanox.
Figura 5: Device Settings da Mellanox slot 1 porta 2
7. Volte ao menu principal de System Setup e selecione System BIOS.
Figura 6: System BIOS
8. Selecione Integrated Devices.
Figura 7: Integrated Devices do BIOS
9. Ative a opção SR-IOV Global Enable.
Figura 8: SR-IOV Global
10. Salve sua configuração e reinicialize o servidor.
1. Instale o Windows Server 2019+
2. Instale a função Hyper-V e o recurso Data Center Bridging (DCB).
3. Configure o QoS (Quality-of-Service, qualidade de serviço), DCB, PFC ETS. Certifique-se de que a configuração de QoS e da NIC do servidor corresponda à configuração do switch.
4. Configure o Hyper-V SET (Switch Embedded Team).
Figura 9: configuração do vSwitch
5. Teste a comunicação do RDMA entre os servidores físicos antes de configurar as VMs. Faça download do Microsoft Diskspd e do script do Microsoft Test-RDMA PowerShell. Continue com as etapas abaixo somente se a comunicação estiver funcionando corretamente. Caso contrário, verifique a configuração do switch e/ou as configurações do DCB no host.
Figura 10: hosts físicos Test-Rdma
6. Verifique se a opção SR-IOV está ativada nos adaptadores RDMA de ambos os servidores.
Figura 11: SR-IOV ativada
7. Crie duas máquinas virtuais de 2ª geração (sistema operacional convidado), uma em cada servidor. Em seguida, instale o Windows Server 2019. Nesse cenário, um SO convidado é criado com duas vNICs, uma para tráfego de gerenciamento (VLAN 2) e uma para tráfego de SMB (VLAN 15).
Figura 12: host de configuração de rede do SO convidado R7425-01
Figura 13: host de configuração de rede da máquina virtual R7425-02
8. Desligue as VMs.
9. Ative as opções SR-IOV e RDMA no SO convidado.
Figura 14: ativar as opções SR-IOV/RDMA no SO convidado
10. Inicie as VMs e, em seguida, abra o Gerenciador de dispositivos. A Mellanox Virtual Function (VF) deve estar listada em Adaptadores de rede. A FV não é apresentada como um adaptador de rede normal em Conexões de rede, conforme mostrado na Figura 15.
Figura 15: Gerenciador de dispositivos do sistema operacional convidado e conexões de rede
Nota: Pode ser necessário instalar um driver de NIC para ativar o RDMA no sistema operacional convidado.
11. Ative o RDMA na vNIC do SMB. A funcionalidade RDMA já está ativada na Mellanox VF (Ethernet4 — Figura 16).
Figura 16: ativar RDMA na vNIC do SMB
12. Teste o RDMA convidado.
Nota: É importante especificar o IfIndex (vNIC Interface Index, Índice de Interface da vNIC) e o VfIndex (Mellanox VF Interface Index, Índice de Interface da Mellanox VF).
Figura 17: sistema operacional convidado do 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
Algum comentário, pergunta ou sugestão? Entre em contato conosco pelo endereço
WinServerBlogs@dell.com