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

重要

仮想マシンは、高速ネットワークを有効にして作成する必要があります。Virtual machines must be created with Accelerated Networking enabled. この機能は、既存の仮想マシンでは有効にできません。This feature cannot be enabled on existing virtual machines. 高速ネットワークを有効にするには、次の手順を実行します。Complete the following steps to enable Accelerated Networking:

  1. 仮想マシンを削除します。Delete the virtual machine.
  2. 高速ネットワークを有効にして仮想マシンを再作成します。Re-create the virtual machine with Accelerated Networking enabled.

このチュートリアルでは、高速ネットワークを有効にして Linux 仮想マシン (VM) を作成する方法について説明します。In this tutorial, you learn how to create a Linux virtual machine (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

  • Ubuntu 16.04: 4.11.0-1013 以上のカーネル バージョンUbuntu 16.04: 4.11.0-1013 or greater kernel version
  • SLES 12 SP3: 4.4.92-6.18 以上のカーネル バージョンSLES 12 SP3: 4.4.92-6.18 or greater kernel version
  • RHEL 7.4: 7.4.2017120423 以上のカーネル バージョンRHEL 7.4: 7.4.2017120423 or greater kernel version
  • CentOS 7.4: 7.4.20171206 以上のカーネル バージョンCentOS 7.4: 7.4.20171206 or greater kernel version

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

高速ネットワークは、4 つ以上の vCPU を持つ、コンピューティングに最適化された多くの汎用のインスタンス サイズでサポートされています。Accelerated Networking is supported on most general purpose and compute-optimized instance sizes with 4 or more vCPUs. ハイパースレッディングをサポートする D/DSv3 や E/ESv3 などのインスタンスでは、8 以上の vCPU を持つ VM インスタンスで高速ネットワークがサポートされています。On instances such as D/DSv3 or E/ESv3 that support hyperthreading, Accelerated Networking is supported on VM instances with 8 or more vCPUs. D/DSv2、D/DSv3、E/ESv3、F/Fs/Fsv2 および Ms/Mms のシリーズがサポートされています。Supported series are: D/DSv2, D/DSv3, E/ESv3, F/Fs/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.

制限事項Limitations

この機能を使用する場合は、次の制限事項があります。The following limitations exist when using this capability:

  • ネットワーク インターフェイスの作成: 高速ネットワークは、新しい NIC でのみ有効にできます。Network interface creation: Accelerated networking can only be enabled for a new NIC. 既存の NIC に対して有効にすることはできません。It cannot be enabled for an existing NIC.
  • VM の作成: 高速ネットワークを有効にした NIC は、VM の作成時にのみ VM に接続できます。VM creation: A NIC with accelerated networking enabled can only be attached to a VM when the VM is created. 既存の VM に NIC を接続することはできません。The NIC cannot be attached to an existing VM. VM を既存の可用性セットに追加する場合は、可用性セット内のすべての VM でも高速ネットワークが有効になっている必要があります。If adding the VM to an existing availability set, all VMs in the availability set must also have accelerated networking enabled.
  • Azure Resource Manager でのデプロイのみ: 仮想マシン (クラシック) は高速ネットワークを使用してデプロイできません。Deployment through Azure Resource Manager only: Virtual machines (classic) cannot be deployed with 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 2.0 をインストールし、az login を使用して Azure アカウントにログインします。Install the latest Azure CLI 2.0 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 リージョンを選択する必要があります。You must 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 高速ネットワーク) に記載されているサイズとディストリビューションを選択する必要があります。You must 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.