高速ネットワークを使った Linux 仮想マシンの作成Create a Linux virtual machine with Accelerated Networking

このチュートリアルでは、高速ネットワークを有効にして Linux 仮想マシン (VM) を作成する方法について説明します。In this tutorial, you learn how to create a Linux virtual machine (VM) with Accelerated Networking. 高速ネットワークを使って Windows VM を作成する場合は、「Accelerated Networking を使った Windows VM を作成する」をご覧ください。To create a Windows VM with Accelerated Networking, see Create a Windows VM with Accelerated Networking. 高速ネットワークによって、VM との間でシングル ルート I/O 仮想化 (SR-IOV) が可能になり、ネットワークのパフォーマンスが大幅に向上します。Accelerated networking enables single root I/O virtualization (SR-IOV) to a VM, greatly improving its networking performance. この高パフォーマンスのパスによってデータパスからホストがバイパスされ、サポートされる VM タイプの最も要件の厳しいネットワーク ワークロードで使用した場合でも、待ち時間、ジッター、CPU 使用率が軽減されます。This high-performance path bypasses the host from the datapath, reducing latency, jitter, and CPU utilization, for use with the most demanding network workloads on supported VM types. 次の図は、2 台の VM 間の通信を、高速ネットワークを使う場合と使わない場合とで比較したものです。The following picture shows communication between two VMs with and without accelerated networking:

比較

高速ネットワークを使用しない場合は、VM に出入りするすべてのネットワーク トラフィックがホストと仮想スイッチをスキャンする必要があります。Without accelerated networking, all networking traffic in and out of the VM must traverse the host and the virtual switch. 仮想スイッチでは、ネットワーク セキュリティ グループ、アクセス制御リスト、分離、その他のネットワーク仮想化サービスなど、すべてのポリシーが適用されます。The virtual switch provides all policy enforcement, such as network security groups, access control lists, isolation, and other network virtualized services to network traffic. 仮想スイッチの詳細については、Hyper-V ネットワーク仮想化と仮想スイッチに関する記事を参照してください。To learn more about virtual switches, read the Hyper-V network virtualization and virtual switch article.

高速ネットワークを使用した場合、ネットワーク トラフィックは、VM のネットワーク インターフェイス (NIC) に到達した後、VM に転送されます。With accelerated networking, network traffic arrives at the VM's network interface (NIC), and is then forwarded to the VM. 仮想スイッチによって適用されるすべてのネットワーク ポリシーはオフロードされ、ハードウェアで適用されるようになりました。All network policies that the virtual switch applies are now offloaded and applied in hardware. ハードウェアにポリシーを適用することによって、ホストに適用されるポリシーをすべて維持したまま、ホストや仮想スイッチをバイパスして、NIC からネットワーク トラフィックを直接 VM に転送できます。Applying policy in hardware enables the NIC to forward network traffic directly to the VM, bypassing the host and the virtual switch, while maintaining all the policy it applied in the host.

高速ネットワークのメリットが得られるのは、高速ネットワークが有効になっている VM だけです。The benefits of accelerated networking only apply to the VM that it is enabled on. 最適な結果を得るには、同じ Azure 仮想ネットワーク (VNet) に接続された 2 台以上の VM でこの機能を有効にしておくことをお勧めします。For the best results, it is ideal to enable this feature on at least two VMs connected to the same Azure Virtual Network (VNet). VNet の境界を越えて通信するときや、オンプレミスで接続する場合、全体的な待ち時間に対してこの機能がもたらす効果は限定的です。When communicating across VNets or connecting on-premises, this feature has minimal impact to overall latency.

メリットBenefits

  • 待機時間の短縮 / 1 秒あたりのパケット数 (pps)の向上: データパスから仮想スイッチを削除することで、ホストにおけるパケットのポリシー処理に必要な時間がなくなるため、VM 内で処理できるパケット数が増加します。Lower Latency / Higher packets per second (pps): Removing the virtual switch from the datapath removes the time packets spend in the host for policy processing and increases the number of packets that can be processed inside the VM.
  • ジッターの削減: 仮想スイッチの処理は、適用するポリシーの量と、処理を行う CPU のワークロードによって異なります。Reduced jitter: Virtual switch processing depends on the amount of policy that needs to be applied and the workload of the CPU that is doing the processing. ハードウェアへのポリシーの適用をオフロードすると、パケットが直接 VM に配信され、ホストと VM 間の通信とソフトウェアによる干渉やコンテキスト スイッチがなくなるため、そのばらつきはなくなります。Offloading the policy enforcement to the hardware removes that variability by delivering packets directly to the VM, removing the host to VM communication and all software interrupts and context switches.
  • CPU 使用率の削減: ホストの仮想スイッチをバイパスすることによって、ネットワーク トラフィックを処理するための CPU の使用率を軽減できます。Decreased CPU utilization: Bypassing the virtual switch in the host leads to less CPU utilization for processing network traffic.

サポートされているオペレーティング システムSupported operating systems

Azure ギャラリーでは次のディストリビューションが既定でサポートされています。The following distributions are supported out of the box from the Azure Gallery:

  • Ubuntu 16.04Ubuntu 16.04
  • SLES 12 SP3SLES 12 SP3
  • RHEL 7.4RHEL 7.4
  • CentOS 7.4CentOS 7.4
  • CoreOS LinuxCoreOS Linux
  • Debian "Stretch" (バックポート カーネルを含む)Debian "Stretch" with backports kernel
  • Oracle Linux 7.4Oracle Linux 7.4

制限と制約Limitations and Constraints

サポートされている VM インスタンスSupported VM instances

高速ネットワークは、2 つ以上の vCPU を持つ、コンピューティングに最適化された多くの汎用のインスタンス サイズでサポートされています。Accelerated Networking is supported on most general purpose and compute-optimized instance sizes with 2 or more vCPUs. サポートされているシリーズは、D/DSv2 と F/Fs ですThese supported series are: D/DSv2 and F/Fs

ハイパースレッディングをサポートするインスタンスでは、4 以上の vCPU を持つ VM インスタンスで高速ネットワークがサポートされています。On instances that support hyperthreading, Accelerated Networking is supported on VM instances with 4 or more vCPUs. サポートされているシリーズは、D/DSv3、E/ESv3、Fsv2、Ms/Mms です。Supported series are: D/DSv3, E/ESv3, Fsv2, and Ms/Mms.

VM インスタンスの詳細については、「Linux 仮想マシンのサイズ」を参照してください。For more information on VM instances, see Linux VM sizes.

リージョンRegions

すべてのパブリック Azure リージョンと Azure Government クラウドで使用できます。Available in all public Azure regions as well as Azure Government Clouds.

ネットワーク インターフェイスの作成Network interface creation

高速ネットワークは、新しい NIC でのみ有効にできます。Accelerated networking can only be enabled for a new NIC. 既存の NIC に対して有効にすることはできません。It cannot be enabled for an existing NIC.

実行中の VM で高速ネットワークを有効にするEnabling Accelerated Networking on a running VM

サポートされる VM サイズで、高速ネットワークが有効になっていない場合は、VM が停止され割り当てを解除されているときにだけ機能を有効にできます。A supported VM size without accelerated networking enabled can only have the feature enabled when it is stopped and deallocated.

Azure Resource Manager によるデプロイDeployment through Azure Resource Manager

仮想マシン (クラシック) は、高速ネットワークを使用したデプロイはできません。Virtual machines (classic) cannot be deployed with Accelerated Networking.

Azure 高速ネットワークが有効な Linux VM を作成するCreate a Linux VM with Azure Accelerated Networking

この記事では、高速ネットワークを使用した仮想マシンを、Azure CLI を使って作成する手順について説明しますが、高速ネットワークを使用した仮想マシンは、Azure Portal を使って作成することもできますThough this article provides steps to create a virtual machine with accelerated networking using the Azure CLI, you can also create a virtual machine with accelerated networking using the Azure portal. ポータルで仮想マシンを作成する際に、[設定][高速ネットワーク][有効] を選択します。When creating a virtual machine in the portal, under Settings, select Enabled, under Accelerated networking. 高速ネットワークを有効にするオプションは、サポートされるオペレーティング システムVM サイズを選択しない限り、ポータルには表示されません。The option to enable accelerated networking doesn't appear in the portal unless you've selected a supported operating system and VM size. 仮想マシンが作成されたら、「オペレーティング システムで高速ネットワークが有効化されていることを確認する」の手順を実行する必要があります。After the virtual machine is created, you need to complete the instructions in Confirm that accelerated networking is enabled.

仮想ネットワークの作成Create a virtual network

最新の Azure CLI をインストールし、az login を使用して Azure アカウントにログインします。Install the latest Azure CLI and log in to an Azure account using az login. 次の例では、パラメーター名を独自の値を置き換えます。In the following examples, replace example parameter names with your own values. たとえば、myResourceGroupmyNicmyVM といったパラメーター名にします。Example parameter names included myResourceGroup, myNic, and myVm.

az group create を使用して、リソース グループを作成します。Create a resource group with az group create. 次の例では、myResourceGroup という名前のリソース グループを場所 centralus に作成します。The following example creates a resource group named myResourceGroup in the centralus location:

az group create --name myResourceGroup --location centralus

Linux accelerated networking」(Linux 高速ネットワーク) に記載されているサポート対象の Linux リージョンを選択します。Select a supported Linux region listed in Linux accelerated networking.

az network vnet create を使用して仮想ネットワークを作成します。Create a virtual network with az network vnet create. 次の例では、1 つのサブネットで myVnet という名前の仮想ネットワークを作成します。The following example creates a virtual network named myVnet with one subnet:

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

ネットワーク セキュリティ グループの作成Create a network security group

az network nsg create で、ネットワーク セキュリティ グループを作成します。Create a network security group with az network nsg create. 次の例では、myNetworkSecurityGroup という名前のネットワーク セキュリティ グループを作成します。The following example creates a network security group named myNetworkSecurityGroup:

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

ネットワーク セキュリティ グループには、既定の規則がいくつか含まれています。そのうちの 1 つは、インターネットからのすべての着信アクセスを無効にします。The network security group contains several default rules, one of which disables all inbound access from the Internet. ポートを開き、az network nsg rule create を使用して、仮想マシンに SSH アクセスできるようにします。Open a port to allow SSH access to the virtual machine with 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

高速ネットワークを使ったネットワーク インターフェイスの作成Create a network interface with accelerated networking

パブリック IP アドレスは、az network public-ip create で作成します。Create a public IP address with az network public-ip create. インターネットから仮想マシンにアクセスする計画がない場合、パブリック IP アドレスは不要ですが、この記事の手順を完了するには必要です。A public IP address isn't required if you don't plan to access the virtual machine from the Internet, but to complete the steps in this article, it is required.

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

高速ネットワークを有効にし、az network nic create を使用してネットワーク インターフェイスを作成します。Create a network interface with az network nic create with accelerated networking enabled. 次の例では、myVnet 仮想ネットワークの mySubnet サブネットの myNic というネットワーク インターフェイスを作成し、myNetworkSecurityGroup ネットワーク セキュリティ グループをネットワーク インターフェイスに関連付けます。The following example creates a network interface named myNic in the mySubnet subnet of the myVnet virtual network and associates the myNetworkSecurityGroup network security group to the network interface:

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 を接続するCreate a VM and attach the NIC

VM を作成するとき、--nics を使用して作成した NIC を指定します。When you create the VM, specify the NIC you created with --nics. Linux accelerated networking」(Linux 高速ネットワーク) に記載されているサイズとディストリビューションを選択します。Select a size and distribution listed in Linux accelerated networking.

az vm create を使用して VM を作成します。Create a VM with az vm create. 次の例では、UbuntuLTS イメージと高速ネットワークをサポートするサイズ (Standard_DS4_v2) を使用して、myVM という VM を作成します。The following example creates a VM named myVM with the UbuntuLTS image and a size that supports Accelerated Networking (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 のサイズに関するページを参照してください。For a list of all VM sizes and characteristics, see Linux VM sizes.

VM が作成されると、次のサンプル出力のような出力が返されます。Once the VM is created, output similar to the following example output is returned. publicIpAddress を書き留めておきます。Take note of the publicIpAddress. このアドレスは、後の手順で VM にアクセスするために使われます。This address is used to access the VM in subsequent steps.

{
  "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"
}

高速ネットワークが有効になっていることを確認します。Confirm that accelerated networking is enabled

次のコマンドを使用して、VM との SSH セッションを作成します。Use the following command to create an SSH session with the VM. 作成した仮想マシンに割り当てたパブリック IP アドレスに <your-public-ip-address> を置き換え、VM の作成時に --admin-username に異なる値を使用していた場合は、azureuser を置き換えます。Replace <your-public-ip-address> with the public IP address assigned to the virtual machine you created, and replace azureuser if you used a different value for --admin-username when you created the VM.

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

Bash シェルから uname -r を入力し、カーネル バージョンが次のいずれかのバージョン以降であることを確認します。From the Bash shell, enter uname -r and confirm that the kernel version is one of the following versions, or greater:

  • Ubuntu 16.04: 4.11.0-1013Ubuntu 16.04: 4.11.0-1013
  • SLES SP3: 4.4.92-6.18SLES SP3: 4.4.92-6.18
  • RHEL: 7.4.2017120423RHEL: 7.4.2017120423
  • CentOS: 7.4.20171206CentOS: 7.4.20171206

lspci コマンドを使用して、Mellanox VF デバイスが VM に公開されていることを確認します。Confirm the Mellanox VF device is exposed to the VM with the lspci command. 次の出力のような出力が返されます。The returned output is similar to the following output:

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 (仮想関数) のアクティビティを確認します。Check for activity on the VF (virtual function) with the ethtool -S eth0 | grep vf_ command. 次のサンプル出力と似た出力を受け取った場合、高速ネットワークは有効で、動作しています。If you receive output similar to the following sample output, accelerated networking is enabled and working.

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

VM の高速ネットワークが有効になりました。Accelerated Networking is now enabled for your VM.

既存の VM 上で高速ネットワークを有効にするEnable Accelerated Networking on existing VMs

高速ネットワークを有効にしないで VM を作成した場合は、既存の VM に対してこの機能を有効にすることができです。If you have created a VM without Accelerated Networking, it is possible to enable this feature on an existing VM. VM は、上記で説明した次の前提条件を満たすことによって、高速ネットワークをサポートしている必要があります。The VM must support Accelerated Networking by meeting the following prerequisites that are also outlined above:

  • VM は高速ネットワークがサポートされるサイズである必要がありますThe VM must be a supported size for Accelerated Networking
  • VM はサポートされる Azure ギャラリー イメージ (および Linux のカーネル バージョン) である必要がありますThe VM must be a supported Azure Gallery image (and kernel version for Linux)
  • 可用性セット内または VMSS 内のすべての VM は、NIC 上で高速ネットワークを有効にする前に、停止/割り当てを解除しておく必要がありますAll VMs in an availability set or VMSS must be stopped/deallocated before enabling Accelerated Networking on any NIC

個別の VM および可用性セット内の VMIndividual VMs & VMs in an availability set

最初に、VM (可用性セットの場合は、セット内のすべての VM) を停止/割り当てを解除します。First stop/deallocate the VM or, if an Availability Set, all the VMs in the Set:

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

可用性セットを使用しないで個別に作成した VM の場合、高速ネットワークを有効にするには、個別の VM を停止/割り当てを解除することだけが必要です。Important, please note, if your VM was created individually, without an availability set, you only need to stop/deallocate the individual VM to enable Accelerated Networking. 可用性セットを使用して作成された VM の場合は、いずれかの NIC 上で高速ネットワークを有効にする前に、可用性セットに含まれるすべての VM を停止/割り当てを解除する必要があります。If your VM was created with an availability set, all VMs contained in the availability set will need to be stopped/deallocated before enabling Accelerated Networking on any of the NICs.

停止した後、VM の NIC 上で高速ネットワークを有効にします。Once stopped, enable Accelerated Networking on the NIC of your VM:

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

VM (可用性セットの場合はセット内のすべての VM) を再起動し、高速ネットワークが有効になっていることを確認します。Restart your VM or, if in an Availability Set, all the VMs in the Set and confirm that Accelerated Networking is enabled:

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

VMSSVMSS

VMSS は若干異なりますが、同じワークフローに従います。VMSS is slightly different but follows the same workflow. 最初に、VM を停止します。First, stop the VMs:

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

VM が停止した後、ネットワーク インターフェイスにおいて高速ネットワークのプロパティを更新します。Once the VMs are stopped, update the Accelerated Networking property under the network interface:

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

VMSS には、3 つの異なる設定 (自動、ローリング、手動) を使用して更新を適用する VM のアップグレードがあります。Please note, a VMSS has VM upgrades that apply updates using three different settings, automatic, rolling and manual. この手順では、再起動後すぐに VMSS がポリシーを選択するように、ポリシーを自動に設定します。In these instructions the policy is set to automatic so that the VMSS will pick up the changes immediately after restarting. 変更がすぐに選択されるように自動に設定するには、次のようにします。To set it to automatic so that the changes are immediately picked up:

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

最後に、VMSS を再起動します。Finally, restart the VMSS:

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

再起動した後、アップグレードが完了するまで待ちます。完了すると、VM 内に VF が表示されます。Once you restart, wait for the upgrades to finish but once completed, the VF will appear inside the VM. (サポートされる OS と VM サイズを使用していることを確認してください。)(Please make sure you are using a supported OS and VM size.)

高速ネットワークが有効な既存の VM のサイズを変更するResizing existing VMs with Accelerated Networking

高速ネットワークが有効になっている VM のサイズは、高速ネットワークをサポートする VM にのみ変更できます。VMs with Accelerated Networking enabled can only be resized to VMs that support Accelerated Networking.

高速ネットワークが有効になっている VM のサイズを、高速ネットワークをサポートしていない VM インスタンスに、サイズ変更操作を使って変更することはできません。A VM with Accelerated Networking enabled cannot be resized to a VM instance that does not support Accelerated Networking using the resize operation. このような VM のサイズを変更するには、次のようにします。Instead, to resize one of these VMs:

  • VM を停止/割り当てを解除します。可用性セット/VMSS の場合は、セット/VMSS 内のすべての VM を停止/割り当てを解除します。Stop/Deallocate the VM or if in an availability set/VMSS, stop/deallocate all the VMs in the set/VMSS.
  • VM の NIC 上で、高速ネットワークを無効にする必要があります。可用性セット/VMSS の場合は、セット/VMSS 内のすべての VM において無効にします。Accelerated Networking must be disabled on the NIC of the VM or if in an availability set/VMSS, all VMs in the set/VMSS.
  • 高速ネットワークが無効になったら、高速ネットワークをサポートしていない新しいサイズに VM/可用性セット/VMSS を移動して、再起動します。Once Accelerated Networking is disabled, the VM/availability set/VMSS can be moved to a new size that does not support Accelerated Networking and restarted.