Azure VM の高速ネットワーク (Accelerated Networking) を OS 上から確認してみよう
はじめに
Azure VM のパフォーマンスを向上させる機能の一つに Accelerated Networking (高速ネットワーク) があります。
Azure Portal 上で Accelerated Networking の設定を確認することはできますが、実際に VM の Guest OS 上で有効になっているか確認したい場面も少なくありません。
本記事では、Windows VM 上で Accelerated Networking の有効状態を確認する方法と、その際に表示される Mellanox アダプターの意味について解説します。
Accelerated Networking とは
Accelerated Networking は Azure が提供する SR-IOV (Single Root I/O Virtualization) を利用した高速ネットワーク機能です。
通常の仮想 NIC を経由するネットワーク処理の一部をハードウェアへオフロードすることで、以下のメリットが得られます。
- ネットワーク遅延の低減
- ジッタの削減
- CPU 使用率の削減
- スループットの向上
特に高トラフィックなサーバーやネットワークアプライアンスを構築する場合に効果を発揮します。
Guest OS で確認する方法
Windows VM に接続し、PowerShell で以下を実行します。
Get-NetAdapter | Format-List Name,InterfaceDescription
実行例
Name : Ethernet
InterfaceDescription : Microsoft Hyper-V Network Adapter
Name : Ethernet 5
InterfaceDescription : Mellanox ConnectX-5 Virtual Adapter #3
それぞれの NIC の意味
Microsoft Hyper-V Network Adapter
Microsoft Hyper-V Network Adapter
こちらは Azure VM に標準で提供される仮想 NIC です。
Accelerated Networking が無効な環境では、通常このアダプターのみが表示されます。
Mellanox ConnectX-5 Virtual Adapter
Mellanox ConnectX-5 Virtual Adapter
こちらは Azure が SR-IOV により提供する Virtual Function (VF) です。
Accelerated Networking が有効な場合に表示されます。
Mellanox の表示が確認できる場合、VM は高速ネットワーク機能を利用している可能性が高いと判断できます。
Accelerated Networking の内部構造
Accelerated Networking 有効時は、Guest OS 上で以下のような構成になります。
Guest OS
├─ Hyper-V Network Adapter (NetVSC)
└─ Mellanox VF
一見すると NIC が 2 枚存在するように見えますが、実際には Azure が内部的にこれらを連携させて動作させています。
役割としては以下のようになります。
Hyper-V Adapter = Control Path
Mellanox VF = Data Path
Control Path
Hyper-V Network Adapter が担当します。
主に、
- NIC 管理
- 構成情報の取得
- フェイルオーバー制御
などの制御系処理を担当します。
Data Path
Mellanox VF が担当します。
実際の通信パケットの多くは Mellanox VF を経由します。
VM
↓
Mellanox VF
↓
物理 NIC
↓
ネットワーク
この経路により Hyper-V 仮想スイッチを迂回できるため、
- 低遅延
- 高 PPS
- CPU 負荷軽減
を実現しています。
Mellanox が表示されれば本当に Accelerated Networking なのか?
一般的には Mellanox ConnectX Virtual Adapter が表示されている場合、Azure 側で VF が割り当てられていることを意味します。
特に Dv5 / Dsv5 / Edsv5 などの比較的新しい VM サイズでは、Accelerated Networking が必須となっている SKU も存在します。
そのため Azure Portal 上の設定だけではなく、Guest OS 上で Mellanox アダプターが認識されていることを確認するのが確実です。
まとめ
Azure VM で Accelerated Networking が有効な場合、Guest OS では通常以下の 2 種類のアダプターが確認できます。
- Microsoft Hyper-V Network Adapter
- Mellanox ConnectX Virtual Adapter
それぞれが以下の役割を担っています。
| アダプター | 役割 |
|---|---|
| Hyper-V Network Adapter | Control Path |
| Mellanox VF | Data Path |
Mellanox ConnectX Virtual Adapter が表示されていることが、Accelerated Networking が動作しているか確認する最も簡単な方法の一つです。
Azure VM のネットワークパフォーマンスを調査する際は、まず Guest OS 上で Mellanox Adapter の有無を確認してみましょう。