共用方式為


使用 Azure CLI 建立具有加速網路的 Windows 或 Linux VM

警告

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

本文說明如何使用 Azure CLI 命令列介面,建立已啟用加速網路 (AccelNet) 的 Linux 或 Windows 虛擬機器 (VM)。 本文也會討論如何在現有 VM 上啟用和管理加速網路。

您也可以使用 Azure 入口網站建立已啟用加速網路的 VM。 若要深入瞭解如何使用 Azure 入口網站在 VM 上管理加速網路,請參閱透過入口網站管理加速網路

若要使用 Azure PowerShell 建立已啟用加速網路的 Windows VM,請參閱使用 Azure PowerShell 建立具有加速網路的 Linux VM

必要條件

建立可使用加速網路的 VM

在下列範例中,您可將 <myResourceGroup><myNic><myVm> 等範例參數取代為自有值。

建立虛擬網路

  1. 使用 az group create 來建立資源群組以包含資源。 請務必選取支援的 Windows 或 Linux 區域,如 Windows 和 Linux 加速網路中所述。

    az group create --name <myResourceGroup> --location <myAzureRegion>
    
  2. 使用 az network vnet create,在資源群組中建立具有一個子網路的虛擬網路:

    az network vnet create \
      --resource-group <myResourceGroup> \
      --name <myVnet> \
      --address-prefix 192.168.0.0/16 \
      --subnet-name <mySubnet> \
      --subnet-prefix 192.168.1.0/24
    

建立網路安全性群組

  1. 使用 az network nsg create 建立網路安全性群組 (NSG)。

    az network nsg create \
      --resource-group <myResourceGroup> \
      --name <myNsg>
    
  2. NSG 包含數個預設規則,其中一種會停用來自網際網路的所有輸入存取。 使用 az network nsg rule create 開啟連接埠,以允許遠端桌面通訊協定 (RDP) 或安全殼層 (SSH) 存取 VM。

    az network nsg rule create \
      --resource-group <myResourceGroup> \
      --nsg-name <myNsg> \
      --name Allow-RDP-Internet \
      --access Allow \
      --protocol Tcp \
      --direction Inbound \
      --priority 100 \
      --source-address-prefix Internet \
      --source-port-range "*" \
      --destination-address-prefix "*" \
      --destination-port-range 3389
    

使用加速網路建立網路介面

  1. 使用 az network public-ip create 來建立公用 IP 位址。 如果您未從網際網路存取 VM,則該 VM 就不需要公用 IP 位址,但您仍需要公用 IP 才能完成本文的步驟。

    az network public-ip create \
      --name <myPublicIp> \
      --resource-group <myResourceGroup>
    
  2. 在啟用加速網路的情況下使用 az network nic create 建立網路介面 (NIC)。 下列範例會在虛擬網路的子網路中建立 NIC,並將 NSG 與 NIC 產生關聯。

    az network nic create \
     --resource-group <myResourceGroup> \
      --name <myNic> \
      --vnet-name <myVnet> \
      --subnet <mySubnet> \
      --accelerated-networking true \
      --public-ip-address <myPublicIp> \
      --network-security-group <myNsg>
    

建立 VM 並連結 NIC

使用 az vm create 建立 VM,並使用 --nics 選項來連結您所建立的 NIC。 請務必選取 Windows 和 Linux 加速網路中列出的 VM 大小和發行版本。 如需所有 VM 大小和特性的清單,請參閱 Azure 中的虛擬機器大小

下列範例會建立 Windows Server 2019 資料中心 VM,其 VM 大小支援加速網路 Standard_DS4_v2。

az vm create \
  --resource-group <myResourceGroup> \
  --name <myVm> \
  --image Win2019Datacenter \
  --size Standard_DS4_v2 \
  --admin-username <myAdminUser> \
  --admin-password <myAdminPassword> \
  --nics <myNic>

建立 VM 後,您會取得與下列範例類似的輸出。 針對 Linux 機器,請記下 publicIpAddress,您需要在下一個步驟中輸入此項目以存取 VM。

{
  "fqdns": "",
  "id": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/myVm",
  "location": "centralus",
  "macAddress": "00-0D-3A-23-9A-49",
  "powerState": "VM running",
  "privateIpAddress": "192.168.0.4",
  "publicIpAddress": "40.68.254.142",
  "resourceGroup": "myResourceGroup"
}

確認加速網路已確實啟用

一旦您在 Azure 中建立 VM,請與 VM 連線,然後確認乙太網路控制器已安裝在 Windows 中。

  1. Azure 入口網站中,搜尋並選取 [虛擬機器]

  2. 在 [虛擬機器] 頁面上選取您的新 VM。

  3. 在 VM 的 [概觀] 頁面上,選取 [連線]

  4. 在 [連線] 畫面上選取 [原生 RDP]

  5. 在 [原生 RDP] 畫面上選取 [下載 RDP 檔案]

  6. 開啟下載的 RDP 檔案,然後使用您在建立 VM 時輸入的認證進行登入。

  7. 在遠端 VM 上,以滑鼠右鍵按一下 [啟動],然後選取 [裝置管理員]

  8. 在 [裝置管理員] 視窗中,展開 [網路介面卡] 節點。

  9. 確認顯示 Mellanox ConnectX-4 Virtual Ethernet Adapter,如下圖所示︰

    Mellanox ConnectX-3 虛擬函式乙太網路卡、適用於加速網路的新網路適配器,裝置管理員

    顯示介面卡即確認已為您的 VM 啟用加速網路。

  10. 確認封包正從下列命令的輸出流經 VF 介面:

    PS C:\ > Get-NetAdapter | Where-Object InterfaceDescription –like "*Mellanox*Virtual*" | Get-NetAdapterStatistics
    
    Name                             ReceivedBytes ReceivedUnicastPackets       SentBytes SentUnicastPackets
    ----                             ------------- ----------------------       --------- ------------------
    Ethernet 2                           492447549                 347643         7468446              34991
    
    

注意

如果無法啟動 Mellanox 介面卡,請在遠端 VM 中開啟系統管理員命令提示,並輸入下列命令:

netsh int tcp set global rss = enabled

處理虛擬函式的動態繫結和撤銷

在 VM 中公開的綜合 NIC 繫結,對利用加速網路的所有應用程式而言是必要需求。 如果應用程式直接透過 VF NIC 來執行,則不會收到所有要傳送到 VM 的封包,因為某些封包會透過綜合介面顯示。

您必須透過綜合 NIC 執行應用程式,以確保應用程式會接收到所有針對其傳送的封包。 綜合 NIC 的繫結也可確保應用程式會繼續執行,即使在主機服務期間撤銷 VF 亦然。

如需應用程式繫結需求的詳細資訊,請參閱加速網路在 Linux 和 FreeBSD VM 中的運作方式

為了確保您的自訂映像或應用程式正確支援動態繫結並撤銷虛擬函式,您可以在任何 Windows Hyper-V 伺服器上測試此功能。 在下列設定中使用可執行 Hyper-V 的本機 Windows Server:

  • 請確定您的實體網路介面卡支援 SR-IOV。
  • 已將外部虛擬交換器建立在此 SR-IOV 介面卡上,並已勾選 [啟用單一根目錄 I/O 虛擬化 (SR-IOV)]。
  • 已建立/部署可執行作業系統映像或應用程式的虛擬機器。
  • 在 [硬體加速] 下方,為此虛擬機器的網路介面卡選取 [啟用 SR-IOV]。

驗證虛擬機器和應用程式可透過 SR-IOV 使用網路介面卡後,您可以修改下列範例命令來將 SR-IOV 切換為關閉或開啟,以撤銷並新增虛擬函式,藉此模擬 Azure 主機服務期間的運作情形:

# Get the virtual network adapter to test
$vmNic = Get-VMNetworkAdapter -VMName "myvm" | where {$_.MacAddress -eq "001122334455"}

# Enable SR-IOV on a virtual network adapter
Set-VMNetworkAdapter $vmNic -IovWeight 100 -IovQueuePairsRequested 1

# Disable SR-IOV on a virtual network adapter
Set-VMNetworkAdapter $vmNic -IovWeight 0

在現有的 VM 上管理加速網路

您可在現有 VM 上啟用加速網路。 VM 必須符合下列需求,才能支援加速網路:

  • 支援加速網路的大小。

  • 支援的 Azure Marketplace 映像和 Linux 核心版本。

  • 已停止或解除配置 VM,再從任何 NIC 上啟用加速網路。 此需求適用於所有個別 VM,或是可用性設定組或 Azure 虛擬機器擴展集中的 VM。

在個別 VM 或可用性設定組中的 VM 上啟用加速網路

  1. 首先,請停止或解除配置 VM 或可用性設定組中的所有 VM。

    az vm deallocate \
      --resource-group <myResourceGroup> \
      --name <myVm>
    

    如果您是在不使用可用性設定組的情況下個別建立 VM,必須停止或解除配置該個別 VM,才能啟用加速網路。 如果您使用可用性設定組建立 VM,則必須先停止或解除配置集合中的所有 VM,才能在任何 NIC 上啟用加速網路。

  2. 停止 VM 之後,請在 VM 的 NIC 上啟用加速網路。

    az network nic update \
      --name <myNic> \
      --resource-group <myResourceGroup> \
      --accelerated-networking true
    
  3. 重新啟動您的 VM,或是可用性設定組中的所有 VM,然後確認已啟用加速網路

    az vm start --resource-group <myResourceGroup> \
      --name <myVm>
    

在虛擬機器擴展集上啟用加速網路

Azure 虛擬機器擴展集稍有不同,但其會遵循相同的工作流程。

  1. 首先,停止 VM:

    az vmss deallocate \
      --name <myVmss> \
      --resource-group <myResourceGroup>
    
  2. 停止 VM 後,請更新網路介面下的加速網路屬性。

    az vmss update --name <myVmss> \
      --resource-group <myResourceGroup> \
      --set virtualMachineProfile.networkProfile.networkInterfaceConfigurations[0].enableAcceleratedNetworking=true
    
  3. 虛擬機器擴展集具有升級原則,可使用自動、滾動或手動設定來套用更新內容。 下列指示會將原則設定為自動,讓虛擬機器擴展集在重新啟動後立即挑選變更。

    az vmss update \
      --name <myVmss> \
      --resource-group <myResourceGroup> \
      --set upgradePolicy.mode="automatic"
    
  4. 最後,請重新啟動虛擬機器擴展集。

    az vmss start \
      --name <myVmss> \
      --resource-group <myResourceGroup>
    

重新啟動並完成升級之後,VF 就會出現在使用了支援 OS 和 VM 大小的 VM 內。

調整可使用加速網路的現有 VM 大小

你可以調整已啟用加速網路的 VM 大小,但僅限於同樣能支援加速網路的大小。 針對具有加速網路的 VM 大小,您無法使用調整大小作業,將其調整為不支援加速網路的 VM 執行個體。 請改用下列流程來調整這些 VM 的大小:

  1. 停止或解除配置 VM,或是可用性設定組或虛擬機器擴展集的所有 VM。

  2. 針對 VM 或是可用性設定集或虛擬機器擴展集的所有 VM,在這些 VM 的 NIC 上停用加速網路。

  3. 將 VM 或多個 VM 移至不支援加速網路的新大小,然後重新啟動這些 VM。

透過入口網站管理加速網路

當您在 Azure 入口網站建立 VM 時,可在 [建立虛擬機器] 畫面的 [網路] 索引標籤上勾選 [啟用加速網路] 核取方塊。

如果 VM 針對加速網路使用支援的作業系統VM 大小,系統會在 [建立虛擬機器] 畫面的 [網络] 索引標籤上自動勾選 [啟用加速網络] 核取方塊。 如果不支援加速網路,系統就不會勾選核取方塊,並會顯示訊息以說明原因。

注意

  • 在建立入口網站 VM 期間,您只能為 Azure Marketplace 支援的作業系統啟用加速網路。 若要為具有自訂 OS 映像的 VM 建立和啟用加速網路,您必須使用 Azure CLI 或 PowerShell。

  • 入口網站中的 [加速網路] 設定會顯示使用者選取的狀態。 即使 VM 大小需要加速網路,您仍可在入口網站中對加速網路選擇 [已停用]。 不論入口網站中的使用者設定為何,需要加速網路的 VM 大小都會在執行階段啟用加速網路。

若要透過 Azure 入口網站啟用或停用現有 VM 的加速網路:

  1. 在 VM 的 Azure 入口網站頁面上,從左側功能表中選取 [網路]

  2. 在 [網路] 頁面中,選取 [網路介面]

  3. 在 NIC [概觀] 頁面頂端,選取 [編輯加速網路]

  4. 選取 [自動]、[已啟用] 或 [已停用],然後選取 [儲存]

若要確認是否已啟用現有 VM 的加速網路:

  1. 在 VM 的入口網站頁面上,從左側功能表中選取 [網路]

  2. 在 [網路] 頁面中,選取 [網路介面]

  3. 在網路介面 [概觀] 頁面上的 [基本資訊] 底下,請注意 [加速網路] 是否設定為 [已啟用] 或 [已停用]

下一步