加速網路概觀

警告

本文參考 CentOS,這是接近結束生命週期 (EOL) 狀態的 Linux 發行版本。 請據以考慮您的使用和規劃。 如需詳細資訊,請參閱 CentOS 生命週期結束指引

本文說明加速網路的優點、條件約束及支援設定。 加速網路可在支援的虛擬機 (VM) 類型上啟用單一根目錄 I/O 虛擬化 (SR-IOV),大幅改善網路效能。 這個高效能資料路徑會略過主機,進而減少延遲、抖動及 CPU 使用率,供最嚴苛的網路工作負載使用。

注意

如需 Microsoft Azure 網路介面卡 (MANA) 預覽的詳細資訊,請參閱 Azure MANA Docs

下圖說明兩個 VM 如何在有與沒有加速網路的情況下通訊。

顯示 Azure VM 與無加速網路之間通訊的螢幕快照。

如果沒有加速網路,進出 VM 的所有網路流量都會周遊主機和虛擬交換器。 虛擬交換器提供網路流量的所有原則強制執行。 原則包括網路安全組、存取控制清單、隔離及其他網路虛擬化服務。

如果使用加速網路,抵達 VM 網路介面 (NIC) 的網路流量會直接轉送至 VM。 加速網路卸載虛擬交換器套用的所有網路原則,並將它們套用在硬體中。 因為硬體會套用原則,因此 NIC 可以直接將網路流量轉送至 VM。 NIC 會略過主機和虛擬交換器,同時保留在主機中套用的所有原則。

福利

加速網路具有下列優點:

  • 延遲較低,每秒封包數較高 (pps)。 從資料路徑中移除虛擬交換器,可以消除封包在主機中進行原則處理所花費的時間。 它也會增加 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 上使用 Mellanox ConnectX-3、ConnectX-4 Lx 和 ConnectX-5 NIC 所需的驅動程式。 加速網路也需要網路設定,以豁免 mlx4_en 和 mlx5_core 驅動程式上的虛擬功能設定。

cloud-init 19.4 版或更新版本的映像已正確設定網路功能,以在佈建期間支援加速網路。

以下範例顯示 RHEL 或 CentOS 上 NetworkManager 的範例設定插入:

sudo mkdir -p /etc/NetworkManager/conf.d
sudo cat > /etc/NetworkManager/conf.d/99-azure-unmanaged-devices.conf <<EOF
# Ignore SR-IOV interface on Azure, since it's transparently bonded
# to the synthetic interface
[keyfile]
unmanaged-devices=driver:mlx4_core;driver:mlx5_core
EOF

下一步