加速網路概觀
警告
本文會參考 CentOS,這是生命週期結束 (EOL) 狀態的 Linux 發行版本。 請據以考慮您的使用和規劃。 如需詳細資訊,請參閱 CentOS 生命週期結束指導。
本文說明加速網路的優點、條件約束及支援設定。 加速網路可在支援的虛擬機 (VM) 類型上啟用單一根目錄 I/O 虛擬化 (SR-IOV),大幅改善網路效能。 這個高效能資料路徑會略過主機,進而減少延遲、抖動及 CPU 使用率,供最嚴苛的網路工作負載使用。
注意
如需 Microsoft Azure 網路介面卡 (MANA) 預覽的詳細資訊,請參閱 Azure MANA Docs
下圖說明兩個 VM 如何在有與沒有加速網路的情況下通訊。
如果沒有加速網路,進出 VM 的所有網路流量都會周遊主機和虛擬交換器。 虛擬交換器提供網路流量的所有原則強制執行。 原則包括網路安全組、存取控制清單、隔離及其他網路虛擬化服務。
如果使用加速網路,抵達 VM 網路介面 (NIC) 的網路流量會直接轉送至 VM。 加速網路卸載虛擬交換器套用的所有網路原則,並將它們套用在硬體中。 因為硬體會套用原則,因此 NIC 可以直接將網路流量轉送至 VM。 NIC 會略過主機和虛擬交換器,同時保留在主機中套用的所有原則。
福利
加速網路具有下列優點:
較低的延遲和較高的每秒封包數目。 從資料路徑中移除虛擬交換器,可以消除封包在主機中進行原則處理所花費的時間。 它也會增加 VM 可以處理的封包數。
減少抖動。 虛擬交換器的處理時間取決於要套用的原則數量,以及執行處理之 CPU 的工作負載。 將原則強制執行卸載到硬體,可藉由將封包直接傳遞至 VM 來移除該變異性。 卸載還消除了主機到 VM 的通訊、所有軟體中斷以及所有內容切換。
CPU 使用率降低。 略過主機中的虛擬交換器會導致處理網路流量的 CPU 使用率降低。
限制和條件約束
加速網路的優點僅適用於啟用它的 VM。
為了獲得最佳結果,請在相同 Azure 虛擬網路中的至少兩個 VM 上啟用加速網路。 當您跨虛擬網路通訊或連線內部部署時,這項功能對延遲的影響最小。
您無法在執行中的 VM 上啟用加速網路。 只有當 VM 停止並解除配置時,才可以在支援的 VM 上啟用加速網路功能。
您無法透過 Azure Resource Manager 部署具有加速網路的虛擬機器 (傳統版)。
Azure 平台不會更新 VM 中的 Mellanox NIC 驅動程式。 對於執行 Linux 和 FreeBSD 的 VM,建議客戶隨時掌握發行版所提供的最新核心更新。 針對執行 Windows 的 VM,如果稍後在透過 Marketplace 映像傳遞的驅動程式或套用至自訂映像的驅動程式發生任何問題,客戶應該從 Nvidia 支援頁面套用更新的驅動程式。
支援的區域
加速網路適用於所有的全球 Azure 區域和 Azure Government 雲端。
受支援的作業系統
下列版本的 Windows 支援加速網路:
- Windows Server 2022
- Windows Server 2019 Standard/Datacenter
- Windows Server 2016 Standard/Datacenter
- Windows Server 2012 R2 Standard/Datacenter
- Windows 10 21H2 版或更新版本,包括 Windows 10 企業版多重工作階段
- Windows 11,包括 Windows 11 企業版多重工作階段
下列來自 Azure Marketplace 的 Linux 和 FreeBSD 散發套件支援立即加速網路:
- 搭載 linux-azure 核心的 Ubuntu 14.04
- Ubuntu 16.04 或更新版本
- SLES12 SP3 或更新版本
- RHEL 7.4 或更新版本
- CentOS 7.4 或更新版本
- CoreOS Linux
- 具有反向移植核心的 Debian "Stretch"
- Debian "Buster" 或更新版本
- 搭載 Red Hat 相容核心 (RHCK) 的 Oracle Linux 7.4 和更新版本
- 使用 UEK 版本 5 的 Oracle Linux 7.5 和更新版本
- FreeBSD 10.4、11.1、12.0 或更新版本
支援的 VM 執行個體
具有兩個或多個 vCPU 的一般用途和計算最佳化 VM 執行個體大小都支援加速網路。 在支援超執行緒的執行個體上,具有四個或多個 vCPU 的 VM 執行個體支援加速網路。
若要檢查 VM 大小是否支援加速網路,請參閱 Azure 中的虛擬機器大小。
您可以使用 Azure CLI az vm list-skus 命令,直接查詢支援加速網路的 VM SKU 清單:
az vm list-skus \
--location westus \
--all true \
--resource-type virtualMachines \
--query '[].{size:size, name:name, acceleratedNetworkingEnabled: capabilities[?name==`AcceleratedNetworkingEnabled`].value | [0]}' \
--output table
注意
雖然 NC 和 NV 大小會出現在命令輸出中,但這些大小不支援加速網路。 在 NC 或 NV VM 上啟用加速網路沒有任何作用。
自訂 VM 映像
如果您使用支援加速網路的自定義映像,請確定您符合下列需求。
裝置和驅動程序支援
任何支援加速網路的自定義映像都必須包含針對 Azure 平臺上使用的網路配接器 (NIC) 啟用單一根 I/O 虛擬化的驅動程式。 此硬件清單包含 NVIDIA ConnectX-3、ConnectX-4 Lx、ConnectX-5 和 Microsoft Azure 網络適配器 (MANA) 。
虛擬函式的動態系結和撤銷
加速網路需要客體OS映像,才能正確處理要以動態方式移除或新增的虛擬函式。 主機維護或即時移轉等案例會導致在維護事件之後動態撤銷虛擬函式和還原。 此外,應用程式必須確保它們系結至綜合裝置,而不是虛擬功能,以便在這些事件期間維護網路連線。
如需應用程式繫結需求的詳細資訊,請參閱加速網路在 Linux 和 FreeBSD VM 中的運作方式。
將驅動程式設定為 Unmanaged
加速網路需要將 NVIDIA 驅動程式標示為非受控裝置的網路設定。 cloud-init 19.4 版或更新版本的映像已正確設定網路功能,以在佈建期間支援加速網路。 我們強烈建議您不要在自訂映像上執行競爭的網路介面軟體 (例如 ifupdown 和 networkd),而且您不會直接在多個介面上執行 dhcpclient。
以下範例顯示 RHEL 或 CentOS 上 NetworkManager
的範例設定插入:
sudo cat <<EOF > /etc/udev/rules.d/68-azure-sriov-nm-unmanaged.rules
# Accelerated Networking on Azure exposes a new SRIOV interface to the VM.
# This interface is transparentlybonded to the synthetic interface,
# so NetworkManager should just ignore any SRIOV interfaces.
SUBSYSTEM=="net", DRIVERS=="hv_pci", ACTION!="remove", ENV{NM_UNMANAGED}="1"
EOF
網路流量使用加速網路數據路徑
針對 NVIDIA 驅動程式:確認封包正在 VF 介面上流動
針對 MANA 驅動程式:確認流量正流經 MANA