使用 Azure CLI 建立具有加速網路的 Linux 虛擬機器

建立入口網站

雖然本文提供使用 Azure CLI 來建立具有加速網路之虛擬機器的步驟,但您也可以使用 Azure 入口網站來建立具有加速網路的虛擬機器。 在入口網站中建立虛擬機器時,請於 [建立虛擬機器] 刀鋒視窗中,選擇 [網路] 索引標籤。在此索引標籤中,會提供 [加速網路] 的選項。 如果您已選擇支援的作業系統VM 大小,此選項將自動填入 [開啟]。如果沒有,則會針對 [加速網路] 填入 [關閉] 選項,並為使用者提供未啟用的原因。
您也可以在建立 VM 之後,透過入口網站啟用或停用加速網路,方法是瀏覽至網路介面,然後按一下 [概觀] 刀鋒視窗頂端的按鈕。

注意

入口網站中的 [加速網路] 設定會反映使用者選取的狀態。 即使 VM 大小需要 AccelNet,AccelNet 也允許選擇「已停用」。 針對這些 AccelNet 所需的 VM 大小,無論入口網站中看到的使用者設定為何,AccelNet 都會在執行階段啟用。

只能透過入口網站啟用支援的作業系統。 如果您使用自訂映像,且您的映像支援加速網路,請使用 CLI 或 PowerShell 建立您的 VM。

建立 VM 之後,您可以遵循確認指示來確認已啟用加速網路。

建立 CLI

建立虛擬網路

請安裝最新的 Azure CLI,並使用 az login 來登入 Azure 帳戶。 在下列範例中,請以您自己的值取代範例參數名稱。 範例參數名稱包含 myResourceGroupmyNicmyVm

使用 az group create 來建立資源群組。 下列範例會在 centralus 位置建立名為 myResourceGroup 的資源群組:

az group create --name myResourceGroup --location centralus

選取 Linux 加速網路中所列出的支援 Linux 區域。

使用 az network vnet create 建立虛擬網路。 下列範例會建立名為 myVnet 的虛擬網路和子網路:

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

建立網路安全性群組

使用 az network nsg create 建立網路安全性群組。 下列範例建立名為 myNetworkSecurityGroup 的網路安全性群組:

az network nsg create \
    --resource-group myResourceGroup \
    --name myNetworkSecurityGroup

網路安全性群組包含數個預設規則,其中一種會停用來自網際網路的所有輸入存取。 開啟連接埠以允許 SSH 透過 az network nsg rule create 存取虛擬機器:

az network nsg rule create \
  --resource-group myResourceGroup \
  --nsg-name myNetworkSecurityGroup \
  --name Allow-SSH-Internet \
  --access Allow \
  --protocol Tcp \
  --direction Inbound \
  --priority 100 \
  --source-address-prefix Internet \
  --source-port-range "*" \
  --destination-address-prefix "*" \
  --destination-port-range 22

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

使用 az network public-ip create 建立公用 IP 位址。 如果您不打算從網際網路存取 VM,則不需要公用 IP 位址。 不過,您需要公用 IP 位址才能完成此文章中的步驟。

az network public-ip create \
    --name myPublicIp \
    --resource-group myResourceGroup

在啟用加速網路的情況下使用 az network nic create 建立網路介面。 下列範例會在 myVnet 虛擬網路的 mySubnet 子網路中建立名為 myNic 的網路介面,並將 myNetworkSecurityGroup 網路安全性群組與網路介面建立關聯:

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

建立 VM 並連結 NIC

當您建立 VM 時,請指定您使用 --nics 所建立的 NIC。 選取列於 Linux 加速網路中的大小和發行版本。

使用 az vm create 建立 VM。 下列範例會使用 UbuntuLTS 映像建立名為 myVM 的 VM,以及支援加速網路的大小 (Standard_DS4_v2):

az vm create \
    --resource-group myResourceGroup \
    --name myVM \
    --image UbuntuLTS \
    --size Standard_DS4_v2 \
    --admin-username azureuser \
    --generate-ssh-keys \
    --nics myNic

如需所有 VM 大小和特性的清單,請參閱 Linux VM 大小

建立 VM 後,系統將傳回與下列範例輸出類似的輸出。 請記下 publicIpAddress。 在後續步驟中,將會使用此位址來存取 VM。

{
  "fqdns": "",
  "id": "/subscriptions/<ID>/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"
}

確認加速網路已確實啟用

使用下列命令來對 VM 建立 SSH 工作階段。 使用指派給您建立之虛擬機器的公用 IP 位址來取代 <your-public-ip-address>;此外,如果您在建立 VM 時,為 --admin-username 使用不同的值,請以該值取代 azureuser

ssh azureuser@<your-public-ip-address>

從 Bash 殼層中,輸入 uname -r,並確認核心版本是下列其中一個版本或更高版本:

  • Ubuntu 16.04: 4.11.0-1013
  • SLES SP3: 4.4.92-6.18
  • RHEL: 3.10.0-693, 2.6.32-573*
  • CentOS:3.10.0-693

注意

可能支援其他核心版本。 如需最新的清單,請參閱 Hyper-V 的支援 Linux 和 FreeBSD 虛擬機器上每個解構的相容性資料表,並確認支援 SR-IOV。 如需其他詳細資料,請參閱適用於 Hyper-V 和 Azure 的 Linux Integration Services 版本資訊。 * 如果 Linux Integration Services 4.3+ 之前已安裝 Mellanox VF 4.5+ 版,則支援 RHEL 6.7-6.10。

使用 lspci 命令來確認已向 VM 公開 Mellanox VF 裝置。 傳回的輸出大致如下列所示:

0000:00:00.0 Host bridge: Intel Corporation 440BX/ZX/DX - 82443BX/ZX/DX Host bridge (AGP disabled) (rev 03)
0000:00:07.0 ISA bridge: Intel Corporation 82371AB/EB/MB PIIX4 ISA (rev 01)
0000:00:07.1 IDE interface: Intel Corporation 82371AB/EB/MB PIIX4 IDE (rev 01)
0000:00:07.3 Bridge: Intel Corporation 82371AB/EB/MB PIIX4 ACPI (rev 02)
0000:00:08.0 VGA compatible controller: Microsoft Corporation Hyper-V virtual VGA
0001:00:02.0 Ethernet controller: Mellanox Technologies MT27500/MT27520 Family [ConnectX-3/ConnectX-3 Pro Virtual Function]

使用 ethtool -S eth0 | grep vf_ 命令檢查 VF (虛擬函式) 上的活動。 如果您收到類似下列範例輸出的輸出,便代表加速網路已啟用且作用中。

vf_rx_packets: 992956
vf_rx_bytes: 2749784180
vf_tx_packets: 2656684
vf_tx_bytes: 1099443970
vf_tx_dropped: 0

現在已啟用您 VM 的加速網路。

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

應用程式必須透過在 VM 中公開的綜合 NIC 來執行。 如果應用程式直接透過 VF NIC 來執行,則不會收到所有要傳送到 VM 的封包,因為某些封包會透過綜合介面顯示。 如果您透過綜合 NIC 執行應用程式,其可以保證應用程式會接收到所有針對其傳送的封包。 其也可確保應用程式會繼續執行,即使在主機服務期間撤銷 VF 亦然。 繫結至綜合 NIC 的應用程式是利用加速網路之所有應用程式的必要需求。

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

在現有的 VM 上啟用加速網路

如果您已建立不含加速網路的 VM,您可能可以在現有 VM 上啟用此功能。 VM 必須符合下列概述的必要條件,才能支援加速網路:

  • VM 必須是支援加速網路的大小
  • VM 必須是支援的 Azure 資源庫映像 (及 Linux 的核心版本)
  • 可用性設定組中的所有 VM 或 VMSS 必須先停止/解除配置,然後才能在任何 NIC 上啟用加速網路

個別 VM & 可用性設定組中的多部 VM

首先要停止/解除配置 VM 或可用性設定組中的所有 VM:

az vm deallocate \
    --resource-group myResourceGroup \
    --name myVM

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

停止之後,在您 VM 的 NIC 上啟用加速網路:

az network nic update \
    --name myNic \
    --resource-group myResourceGroup \
    --accelerated-networking true

重新啟動您 VM 或可用性設定組中的所有 VM,然後確認加速網路已啟用:

az vm start --resource-group myResourceGroup \
    --name myVM

VMSS

VMSS 稍有不同,但會遵循相同的工作流程。 首先,停止 VM:

az vmss deallocate \
    --name myvmss \
    --resource-group myrg

停止 VM 後,更新網路介面下的加速網路屬性:

az vmss update --name myvmss \
    --resource-group myrg \
    --set virtualMachineProfile.networkProfile.networkInterfaceConfigurations[0].enableAcceleratedNetworking=true

注意

VMSS 具有 VM 升級,其能使用三種不同設定 (自動、輪流及手動) 來套用更新。 在這些指示中,會將原則設為自動,以便 VMSS 在重新開機之後立即採用變更。 將其設定為自動,讓所做的變更可立即採用:

az vmss update \
    --name myvmss \
    --resource-group myrg \
    --set upgradePolicy.mode="automatic"

最後,重新啟動 VMSS:

az vmss start \
    --name myvmss \
    --resource-group myrg

當您重新啟動之後,請等候升級完成;在完成之後,VF 就會出現在 VM 內。 (請確定您使用的是支援的 OS 和 VM 大小)。

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

針對已啟用加速網路的 VM,您只能將其大小調整為其他支援加速網路的 VM。

您無法使用調整大小作業,將已啟用加速網路的 VM 大小調整為不支援加速網路的 VM 執行個體。 相反的,若要為這些 VM 的其中一個調整大小,請執行下列動作:

  • 停止/解除配置 VM 或可用性設定組/VMSS 中的所有 VM。
  • 必須在 VM 或可用性設定組/VMSS 中所有 VM 的 NIC 上停用加速網路。
  • 停用加速網路之後,VM/可用性設定組/VMSS 就可以移到不支援加速網路的新大小,並重新啟動。

下一步