目次
-
-
-
-
-
-
1. リモート ダイレクト メモリー アクセス(RDMA)の概要
Remote Direct Memory Access(RDMA)は、関連ホストのCPUやOSリソース(コンピューティング/ストレージ)を使用せずにPCがネットワーク経由でデータを転送できる優れたテクノロジーです。これにより、スループットとパフォーマンスを向上し、レイテンシーとCPUオーバーヘッドを削減します。
現在よく使用されているRDMA実装には、次の2つのものがあります。
RoCE
- トランスポート:UDP/IP(RoCE v2)
- DCB(データ センター ブリッジング)に依存
iWarp
- ネットワーク基盤:TCP/IP
-TCPがフロー制御および輻輳管理を提供
RoCEは、ネットワーク スイッチが適切に設定されていない場合に問題となる可能性があるETS(拡張転送サービス)やPFC(優先度に基づくフロー制御)などのDCB設定に大きく依存します。iWARPではスイッチの設定は必要ありません。
MicrosoftはWindows Server 2012でのRDMAのサポートを開始し、それ以降のWindows Server OSに新機能を追加しました。Microsoftの最新OS、Windows Server 2019で使用可能な機能には、ゲストOS(VM)にRDMAを設定する機能が含まれます。これにより、ゲストはネイティブ ホストとしてネットワーク ストレージに同じ低レイテンシーでアクセスできるようになり、CPUオーバーヘッドを削減し、VMで直接スループット/パフォーマンスを向上させることができます。
Dell EMCでは、Cavium QLogic FastLinQ 41262 Dual Port 25 GbE SFP28(iWarp/RoCE)、Mellanox ConnectX-4 Lx 25Gbps RDMA(RoCE)などの25Gbps RDMA向けの優れたオプションを提供しています。この例では、Mellanox ConnectX-4 Lx RDMA(RoCEv2モード)を使用して、ゲストRDMA機能のデモを行います。
サーバー:2 x Dell EMC R7425(AMD Epyc 7551 32コア プロセッサー)、256GBメモリー、完全アップデート済みMellanox ConnectX-4 Lx(BIOS、ファームウェア、ドライバー、OS)
インストール済みのロール/機能:Hyper-V、DCB、フェールオーバー クラスタリング、S2D
スイッチ:Dell EMC S5048F-ON – MGMT VLAN 2、SMB VLAN 15
Dell EMCでは、定期的なアップデート サイクルの一環として、BIOS、ファームウェア、ドライバー、およびオペレーティング システムをアップデートすることを推奨しています。BIOS、ファームウェア、ドライバー、およびOSのアップデートは、お使いのシステムの信頼性、安定性およびセキュリティを向上させることを目的としています。
1.サーバーを再起動し、[System Setup]に移動します(POST中にF2を押します)。
2.[Device Settings]を選択します。
図1 - BIOSの[Device Settings]
3.[NIC in Slot 1 Port 1: Mellanox]を選択します
図2 - Mellanoxスロット1ポート1のデバイス設定
4.[Device Level Configuration]に移動します
図3 - [Device Level Configuration]
5.[Virtualization Mode]で[SR-IOV]を選択します。
図4 - [SR-IOV]の設定
6.[NIC in Slot 1 Port 2: Mellanox]で上記の手順を繰り返します。
図5 - Mellanoxスロット1ポート2のデバイス設定
7.[System Setup Main Menu]に戻り、[System BIOS]を選択します。
図6 - [System BIOS]
8.[Integrated Devices]を選択します。
図7 - BIOSの[Integrated Devices]
9.[SR-IOV Global Enable]オプションを有効にします。
図8 - SR-IOVグローバル
10.設定を保存し、サーバーを再起動します。
1.Windows Server 2019+
2をインストールします。Hyper-Vの役割とデータ センター ブリッジング(DCB)機能をインストールします。
3.QoS(サービス品質)、DCB、PFC、ETSを設定します。サーバーNICおよびQoSの設定がスイッチの設定と一致していることを確認します。
4.Hyper-V SET(Switch Embedded Team)を設定します。
図9 - vSwitchの設定
5.仮想マシンを設定する前に、物理サーバー間のRDMA通信をテストします。Microsoft DiskspdとMicrosoft Test-RDMA PowerShellスクリプトをダウンロードします。通信が正常に機能している場合にのみ、以下の手順を実行します。それ以外の場合は、ホストのスイッチの設定および/またはDCBの設定を確認します。
図10 - 物理ホストのTest-Rdma
6.両方のサーバーのRDMAアダプターでSR-IOVが有効になっているかどうかを確認します。
図11 - SR-IOVが有効になっている
7.各サーバーに1台ずつ、2台の第2世代仮想マシン(ゲストOS)を作成し、Windows Server 2019をインストールします。このシナリオでは、2つのvNICでゲストOSが作成されます。1つはMGMTトラフィック(VLAN 2)用、もう1つはSMBトラフィック(VLAN 15)用です。
図12 - ゲストOSネットワーク構成ホストR7425-01
図13 - 仮想マシン ネットワーク構成ホストR7425-02
8.VMをシャットダウンします。
9.ゲストOSでSR-IOVとRDMAを有効にします。
図14 - ゲストOSでSR-IOV/RDMAを有効にする
10.仮想マシンを起動して、デバイス マネージャーを開きます。Mellanox仮想機能(VF)は、[ネットワーク アダプター]の下に表示されるはずです。[ネットワーク接続]でVFは通常のネットワーク アダプターとして表示されません(図15を参照)。
図15 - [デバイス マネージャー]と[ネットワーク接続]のゲストOS
メモ: ゲスト オペレーティング システムでRDMAを有効にするには、NICドライバーをインストールする必要がある場合があります。
11.SMB vNICでRDMAを有効にします。Mellanox VFでRDMA機能がすでに有効になっています(Ethernet4 - 図16)。
図16 - SMB vNICでRDMAを有効にする
12.ゲストRDMAをテストします。
注:IfIndex(vNIC Interface Index)およびVfIndex(Mellanox VF Interface Index)を指定することが重要です。
図17 - RDMAゲストOSのテスト
#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までご連絡ください。