Azure CLI を使用して高速ネットワークが有効な Windows または Linux VM を作成する
注意事項
この記事では、サービス終了 (EOL) 状態の Linux ディストリビューションである CentOS について説明します。 適宜、使用と計画を検討してください。 詳細については、「CentOS のサポート終了に関するガイダンス」を参照してください。
この記事では、Azure CLI コマンド ライン インターフェイスを使用して、高速ネットワーク (AccelNet) が有効になっている Linux または Windows 仮想マシン (VM) を作成する方法について説明します。 この記事では、既存の VM で高速ネットワークを有効にして管理する方法についても説明します。
VM は、Azure portal で高速ネットワークが有効になっている VM を作成することもできます。 Azure portal を使用して VM 上の高速ネットワークを管理する方法の詳細については、「ポータルを使用した高速ネットワークの管理」を参照してください。
Azure PowerShell を使用して高速ネットワークを有効にして Windows VM を作成するには、「Azure PowerShell を使用して高速ネットワークを使った Linux VM を作成する」を参照してください。
前提条件
アクティブなサブスクリプションが含まれる Azure アカウント。 無料でアカウントを作成できます。
インストールされている Azure CLI の最新バージョン。 az login コマンドを使用して Azure にサインインします。
高速ネットワークを使用した VM の作成
以下の例では、<myResourceGroup>
、<myNic>
、<myVm>
などのパラメーターの例を独自の値に置き換えることができます。
仮想ネットワークの作成
az group create を使用して、リソースを含むリソース グループを作成します。 Windows と Linux の高速ネットワークに関するページに記載されているサポート対象の Windows または Linux リージョンを必ず選択してください。
az group create --name <myResourceGroup> --location <myAzureRegion>
az network vnet create を使用して、1 つのサブネットを含む仮想ネットワークをリソース グループに作成します。
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
ネットワーク セキュリティ グループの作成
ネットワーク セキュリティ グループ (NSG) を作成するには、az network nsg create を使用します。
az network nsg create \ --resource-group <myResourceGroup> \ --name <myNsg>
NSG には、既定の規則がいくつか含まれています。そのうちの 1 つは、インターネットからのすべての着信アクセスを無効にします。 az network nsg rule create を使用してポートを開き、VM へのリモート デスクトップ プロトコル (RDP) またはセキュア シェル (SSH) アクセスを許可します。
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
高速ネットワークを使ったネットワーク インターフェイスの作成
パブリック IP アドレスを作成するには、az network public-ip create を使います。 インターネットからアクセスしない場合、VM にパブリック IP アドレスは必要ありませんが、この記事の手順を完了するにはパブリック IP が必要です。
az network public-ip create \ --name <myPublicIp> \ --resource-group <myResourceGroup>
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 の仮想マシンのサイズ」を参照してください。
次の例では、高速ネットワーク Standard_DS4_v2 をサポートするサイズの Windows Server 2019 Datacenter VM を作成します。
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/00000000-0000-0000-0000-000000000000/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 にイーサネット コントローラーがインストールされていることを確認します。
Azure portal で、仮想マシンを検索して選択します。
[仮想マシン] ページで、自分の新規 VM を選択します。
VM の [概要] ページで、[接続] を選択します。
[接続] 画面で、[ネイティブ RDP] を選択します。
[ネイティブ RDP] 画面で、[RDP ファイルのダウンロード] を選択します。
ダウンロードした RDP ファイルを開き、VM の作成時に入力した資格情報でサインインします。
リモート VM で、[スタート] を右クリックし、[デバイス マネージャー] を選択します。
[デバイス マネージャー] ウィンドウで、 [ネットワーク アダプター] ノードを展開します。
Mellanox ConnectX-4 Lx Virtual Ethernet Adapter が表示されていることを確認します (下図参照)。
アダプターが存在することで、VM に対して高速ネットワークが有効になっていることを確認できます。
次のコマンドの出力から、パケットが VF インターフェイスを介して流れていることを確認します。
PS C:\ > Get-NetAdapter | Where-Object InterfaceDescription –like "*Mellanox*Virtual*" | Get-NetAdapterStatistics Name ReceivedBytes ReceivedUnicastPackets SentBytes SentUnicastPackets ---- ------------- ---------------------- --------- ------------------ Ethernet 2 492447549 347643 7468446 34991
Note
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 が次の要件を満たしている必要があります。
高速ネットワークに対してサポートされるサイズである。
Linux でサポートされている Azure Marketplace イメージとカーネル バージョンである。
任意の NIC で高速ネットワークを有効にする前に、停止するか割り当てを解除する。 この要件は、可用性セットまたは Azure Virtual Machine Scale Sets 内のすべての個々の VM または VM に適用されます。
可用性セット内の個々の VM または VM で高速ネットワークを有効にする
最初に、VM または可用性セット内のすべての VM を停止して割り当てを解除します。
az vm deallocate \ --resource-group <myResourceGroup> \ --name <myVm>
可用性セットを使用せず、VM を個別に作成した場合、高速ネットワークを有効にするために必要なのは、個別の VM を停止または割り当てを解除することだけです。 可用性セットを使用して VM を作成した場合は、いずれかの NIC 上で高速ネットワークを有効にする前に、セットに含まれるすべての VM を停止するか、割り当てを解除する必要があります。
VM を停止したら、VM の NIC 上で高速ネットワークを有効にします。
az network nic update \ --name <myNic> \ --resource-group <myResourceGroup> \ --accelerated-networking true
VM を再起動するか、可用性セット内のすべての VM を再起動し、高速ネットワークが有効になっていることを確認します。
az vm start --resource-group <myResourceGroup> \ --name <myVm>
Virtual Machine Scale Sets で高速ネットワークを有効にする
Azure Virtual Machine Scale Sets の場合は少し異なりますが、同じワークフローに従います。
最初に、VM を停止します。
az vmss deallocate \ --name <myVmss> \ --resource-group <myResourceGroup>
VM が停止した後、ネットワーク インターフェイスにおいて高速ネットワークのプロパティを更新します。
az vmss update --name <myVmss> \ --resource-group <myResourceGroup> \ --set virtualMachineProfile.networkProfile.networkInterfaceConfigurations[0].enableAcceleratedNetworking=true
Virtual Machine Scale Sets には、自動、ローリング、または手動設定を使用して更新プログラムを適用するアップグレード ポリシーがあります。 次の手順では、ポリシーを自動に設定して、Virtual Machine Scale Sets が再起動直後に変更を取得できるようにします。
az vmss update \ --name <myVmss> \ --resource-group <myResourceGroup> \ --set upgradePolicy.mode="automatic"
最後に、Virtual Machine Scale Sets を再起動します。
az vmss start \ --name <myVmss> \ --resource-group <myResourceGroup>
再起動してアップグレードが完了すると、サポートされている OS と VM サイズを使用する VM 内に VF が表示されます。
高速ネットワークが有効な既存の VM のサイズを変更する
高速ネットワークが有効になっている VM のサイズは、高速ネットワークもサポートするサイズにのみ変更できます。 高速ネットワークが有効になっている VM のサイズを、高速ネットワークをサポートしていない VM インスタンスに、サイズ変更操作を使用して変更することはできません。 代わりに、次のプロセスを使用して、これらの VM のサイズを変更します。
可用性セットまたは Virtual Machine Scale Sets 内の VM またはすべての VM を停止して割り当てを解除します。
可用性セットまたは Virtual Machine Scale Sets 内の VM またはすべての VM の NIC で高速ネットワークを無効にします。
高速ネットワークをサポートしない新しいサイズに VM を移動し、再起動します。
ポータルを使用して高速ネットワークを管理する
Azure portal で VM を作成するときに、[仮想マシンの作成] 画面の [ネットワーク] タブで [高速ネットワークを有効にする] チェックボックスを選択することができます。
VM で、高速ネットワークにサポートされているオペレーティング システムと VM サイズが使用されている場合、[仮想マシンの作成] 画面の [ネットワーク] タブで [高速ネットワークの有効化] チェックボックスが自動的に選択されます。 高速ネットワークがサポートされていない場合、チェックボックスは選択されず、その理由を説明するメッセージが表示されます。
Note
ポータル VM の作成中に高速ネットワークを有効にできるのは、Azure Marketplace でサポートされているオペレーティング システムに対してのみです。 カスタム OS イメージを使用して VM の高速ネットワークを作成して有効にするには、Azure CLI または PowerShell を使用する必要があります。
ポータルの高速ネットワーク設定には、ユーザーが選択した状態が表示されます。 高速ネットワークを使用すると、VM サイズに高速ネットワークが必要な場合でも、ポータルで [無効] を選択できます。 高速ネットワークを必要とする VM サイズでは、ポータルでのユーザー設定に関係なく、実行時に高速ネットワークが有効になります。
Azure portal を介して既存の VM の高速ネットワークを有効または無効にするには:
VM の Azure portal ページ上で、左側のメニューから [ネットワーク] を選択します。
[ネットワーク] ページで、[ネットワーク インターフェイス] を選択します。
NIC の [概要] ページの上部にある [高速ネットワークの編集] を選択します。
[自動]、[有効]、または [無効] を選択し、[保存] を選択します。
既存の VM に対して高速ネットワークが有効になっているかどうかを確認するには:
VM のポータル ページ上で、左側のメニューから [ネットワーク] を選択します。
[ネットワーク] ページで、[ネットワーク インターフェイス] を選択します。
ネットワーク インターフェイスの [概要] ページの [要点] で、[高速ネットワーク] が [有効] または [無効] に設定されているかどうかを確認します。