Azure PowerShell を使用して高速ネットワークが有効な Windows VM を作成する
ポータルを使用した VM の作成
この記事では、Azure PowerShell を使用して高速ネットワークが有効な VM を作成する手順について説明しますが、高速ネットワークが有効な仮想マシンを Azure portal で作成することもできます。 Azure ポータルで VM を作成するときに、[仮想マシンの作成] ページで [ネットワーク] タブを選択します。このタブには、高速ネットワークのオプションがあります。 サポートされているオペレーティング システムと VM サイズを選択した場合、このオプションは自動的に [オン] に設定されます。 それ以外の場合、オプションは [オフ] に設定され、有効にできない理由が表示されます。 また、VM の作成後に、ポータルで高速ネットワークを有効または無効にすることもできます。そのためには、ネットワーク インターフェイスに移動し、[概要] ブレードの上部にあるボタンをクリックします。
Note
ポータルからは、サポートされているオペレーティング システムのみを有効にできます。 カスタム イメージを使用していて、そのイメージで高速ネットワークがサポートされている場合は、CLI または PowerShell を使用して VM を作成してください。
VM を作成した後で、高速ネットワークが有効になっているかどうかを確認できます。 以下の手順に従います。
Azure portal に移動して、VM を管理します。 [仮想マシン] を検索して選択します。
仮想マシンの一覧で、新しい VM を選択します。
VM のメニュー バーで、 [ネットワーク] を選択します。
ネットワーク インターフェイスの情報で、 [高速ネットワーク] というラベルの横に、高速ネットワークの状態が [無効] か [有効] かが表示されます。
PowerShell を使用した VM の作成
先に進む前に、Azure PowerShell バージョン 1.0.0 以降をインストールします。 現在インストールされているバージョンを見つけるには、Get-Module -ListAvailable Az
を実行します。 インストールまたはアップグレードする必要がある場合は、PowerShell ギャラリーから最新バージョンの Az モジュールをインストールします。 PowerShell セッションで、Connect-AzAccount を使用して Azure アカウントにサインインします。
次の例では、パラメーター名を独自の値を置き換えます。 たとえば、myResourceGroup、myNic、myVM といったパラメーター名にします。
仮想ネットワークの作成
New-AzResourceGroup を使用して Azure リソース グループを作成します。 次のコマンドでは、myResourceGroup という名前のリソース グループが場所 centralus に作成されます。
New-AzResourceGroup -Name "myResourceGroup" -Location "centralus"
New-AzVirtualNetworkSubnetConfig を使用してサブネット構成を作成します。 次のコマンドでは、mySubnet という名前のサブネットが作成されます。
$subnet = New-AzVirtualNetworkSubnetConfig ` -Name "mySubnet" ` -AddressPrefix "192.168.1.0/24"
New-AzuVirtualNetwork を使用して、mySubnet サブネットを持つ仮想ネットワークを作成します。
$vnet = New-AzVirtualNetwork -ResourceGroupName "myResourceGroup" ` -Location "centralus" ` -Name "myVnet" ` -AddressPrefix "192.168.0.0/16" ` -Subnet $Subnet
ネットワーク セキュリティ グループの作成
New-AzNetworkSecurityRuleConfig を使用して、ネットワーク セキュリティ グループの規則を作成します。
$rdp = New-AzNetworkSecurityRuleConfig ` -Name 'Allow-RDP-All' ` -Description 'Allow RDP' ` -Access Allow ` -Protocol Tcp ` -Direction Inbound ` -Priority 100 ` -SourceAddressPrefix * ` -SourcePortRange * ` -DestinationAddressPrefix * ` -DestinationPortRange 3389
New-AzNetworkSecurityGroup を使用してネットワーク セキュリティ グループを作成し、Allow-RDP-All セキュリティ規則を割り当てます。 Allow-RDP-All 規則だけでなく、ネットワーク セキュリティ グループには複数の既定の規則が含まれています。 既定の規則の 1 つでは、インターネットからのすべての受信アクセスが無効にされます。 作成された Allow-RDP-All 規則はネットワーク セキュリティ グループに割り当てられて、VM にリモート接続できるようになります。
$nsg = New-AzNetworkSecurityGroup ` -ResourceGroupName myResourceGroup ` -Location centralus ` -Name "myNsg" ` -SecurityRules $rdp
Set-AzVirtualNetworkSubnetConfig を使用して、ネットワーク セキュリティ グループを mySubnet サブネットに関連付けます。 ネットワーク セキュリティ グループ内の規則は、サブネットにデプロイされているすべてのリソースに対して有効です。
Set-AzVirtualNetworkSubnetConfig ` -VirtualNetwork $vnet ` -Name 'mySubnet' ` -AddressPrefix "192.168.1.0/24" ` -NetworkSecurityGroup $nsg
高速ネットワークを使ったネットワーク インターフェイスの作成
New-AzPublicIpAddress を使用してパブリック IP アドレスを作成します。 インターネットから VM にアクセスする予定がない場合、パブリック IP アドレスは不要です。 ただし、この記事の手順を完了するにはそれが必要です。
$publicIp = New-AzPublicIpAddress ` -ResourceGroupName myResourceGroup ` -Name 'myPublicIp' ` -location centralus ` -AllocationMethod Dynamic
高速ネットワークを有効にし、New-AzNetworkInterface を使用してネットワーク インターフェイスを作成し、パブリック IP アドレスをそのネットワーク インターフェイスに割り当てます。 次の例では、myVnet 仮想ネットワークの mySubnet サブネット内に myNic という名前のネットワーク インターフェイスを作成し、パブリック IP アドレス myPublicIp をそれに割り当てます。
$nic = New-AzNetworkInterface ` -ResourceGroupName "myResourceGroup" ` -Name "myNic" ` -Location "centralus" ` -SubnetId $vnet.Subnets[0].Id ` -PublicIpAddressId $publicIp.Id ` -EnableAcceleratedNetworking
VM を作成してネットワーク インターフェイスをアタッチする
$cred
を使用して、VM の資格情報を変数$cred
に設定します。このとき、サインインを求めるメッセージが表示されます。$cred = Get-Credential
New-AzVMConfig を使用して VM を定義します。 次のコマンドでは、高速ネットワークをサポートする VM サイズ (Standard_DS4_v2) を使用して、myVM という VM を定義します。
$vmConfig = New-AzVMConfig -VMName "myVm" -VMSize "Standard_DS4_v2"
すべての VM のサイズと特性の一覧は、Windows VM のサイズに関するページを参照してください。
Set-AzVMOperatingSystem と Set-AzVMSourceImage を使用して、残りの VM 構成を作成します。 次のコマンドでは、Windows Server 2016 の VM を作成します。
$vmConfig = Set-AzVMOperatingSystem -VM $vmConfig ` -Windows ` -ComputerName "myVM" ` -Credential $cred ` -ProvisionVMAgent ` -EnableAutoUpdate $vmConfig = Set-AzVMSourceImage -VM $vmConfig ` -PublisherName "MicrosoftWindowsServer" ` -Offer "WindowsServer" ` -Skus "2016-Datacenter" ` -Version "latest"
以前に作成したネットワーク インターフェイスを Add-AzVMNetworkInterface にアタッチします。
$vmConfig = Add-AzVMNetworkInterface -VM $vmConfig -Id $nic.Id
New-AzVM を使用して VM を作成します。
New-AzVM -VM $vmConfig -ResourceGroupName "myResourceGroup" -Location "centralus"
Windows VM にイーサネット コントローラーがインストールされていることを確認する
Azure で VM を作成したら、VM に接続し、Windows にイーサネット コントローラーがインストールされていることを確認します。
Azure portal に移動して、VM を管理します。 [仮想マシン] を検索して選択します。
仮想マシンの一覧で、新しい VM を選択します。
VM の概要ページで、VM の一覧に [状態] が [作成中] と表示されている場合は、Azure で VM の作成が完了するまで待ちます。 VM の作成が完了すると、 [状態] が [実行中] に変わります。
VM の概要のツール バーで、[接続][RDP][RDP ファイルのダウンロード] を選択します。
.rdp ファイルを開き、「VM を作成してネットワーク インターフェイスをアタッチする」セクションで入力した資格情報を使用して VM にサインインします。 Azure で Windows VM に接続したことがない場合は、「仮想マシンへの接続」を参照してください。
VM のリモート デスクトップ セッションが表示されたら、Windows の [スタート] ボタンを右クリックし、 [デバイス マネージャー] を選択します。
[デバイス マネージャー] ウィンドウで、 [ネットワーク アダプター] ノードを展開します。
Mellanox ConnectX-3 Virtual Function Ethernet Adapter が表示されていることを確認します (下図参照)。
これで、高速ネットワークが VM で有効になります。
Note
Mellanox アダプターの起動が失敗する場合は、リモート デスクトップ セッションで管理者プロンプトを開き、次のコマンドを入力します。
netsh int tcp set global rss = enabled
既存の VM で高速ネットワークを有効にする
高速ネットワークを有効にしないで VM を作成した場合は、既存の VM に対してこの機能を有効にすることができます。 VM では、上で説明した次の前提条件が満たされ、高速ネットワークがサポートされている必要があります。
- VM は高速ネットワークに対してサポートされるサイズである必要があります。
- VM はサポートされる Azure ギャラリー イメージ (および Linux のカーネル バージョン) である必要があります。
- NIC 上で高速ネットワークを有効にする前に、可用性セットまたは仮想マシン スケール セットのすべての VM を停止するか、割り当てを解除する必要があります。
個別の VM および可用性セット内の VM
VM (可用性セットの場合は、セット内のすべての VM) を停止するか、割り当てを解除します。
Stop-AzVM -ResourceGroup "myResourceGroup" -Name "myVM"
Note
可用性セットを使用せず、VM を個別に作成する場合、高速ネットワークを有効にするために必要なのは、個別の VM を停止または割り当てを解除することだけです。 可用性セットを使用して VM を作成した場合は、高速ネットワークをサポートするクラスターで VM が終了するように、いずれかの NIC で高速ネットワークを有効にする前に、可用性セットに含まれているすべての VM を停止または割り当てを解除する必要があります。 高速ネットワークを無効にする場合は、高速ネットワークをサポートするクラスターは高速ネットワークを使用しない NIC でも問題なく動作するため、停止または割り当てを解除する必要はありません。
VM の NIC 上で高速ネットワークを有効にします。
$nic = Get-AzNetworkInterface -ResourceGroupName "myResourceGroup" ` -Name "myNic" $nic.EnableAcceleratedNetworking = $true $nic | Set-AzNetworkInterface
VM (可用性セットの場合はセット内のすべての VM) を再起動し、高速ネットワークが有効になっていることを確認します。
Start-AzVM -ResourceGroup "myResourceGroup" ` -Name "myVM"
仮想マシン スケール セット
仮想マシン スケール セットの場合は少し異なりますが、同じワークフローに従います。
VM を停止します。
Stop-AzVmss -ResourceGroupName "myResourceGroup" ` -VMScaleSetName "myScaleSet"
ネットワークのインターフェイスで、高速ネットワークのプロパティを更新します。
$vmss = Get-AzVmss -ResourceGroupName "myResourceGroup" ` -VMScaleSetName "myScaleSet" $vmss.VirtualMachineProfile.NetworkProfile.NetworkInterfaceConfigurations[0].EnableAcceleratedNetworking = $true Update-AzVmss -ResourceGroupName "myResourceGroup" ` -VMScaleSetName "myScaleSet" ` -VirtualMachineScaleSet $vmss
変更がすぐに選択されるように、適用された更新を自動に設定します。
$vmss.UpgradePolicy.Mode = "Automatic" Update-AzVmss -ResourceGroupName "myResourceGroup" ` -VMScaleSetName "myScaleSet" ` -VirtualMachineScaleSet $vmss
Note
スケール セットには、3 つの異なる設定 (自動、ローリング、手動) を使用して更新を適用する VM のアップグレードがあります。 これらの手順では、再起動後すぐにスケール セットによってポリシーが選択されるように、ポリシーは自動に設定されます。
スケール セットを再起動します。
Start-AzVmss -ResourceGroupName "myResourceGroup" ` -VMScaleSetName "myScaleSet"
再起動したら、アップグレードが完了するまで待ちます。 アップグレードが完了すると、仮想機能 (VF) が VM 内に表示されます。 サポートされている OS と VM サイズを使用していることを確認します。
高速ネットワークが有効な既存の VM のサイズを変更する
VM で高速ネットワークが有効になっている場合は、高速ネットワークをサポートする VM のみにサイズを変更できます。
高速ネットワークが有効になっている VM のサイズを、高速ネットワークをサポートしていない VM インスタンスに、サイズ変更操作を使用して変更することはできません。 このような VM のサイズを変更するには、次のようにします。
VM を停止するか、または割り当てを解除します。 可用性セットまたはスケール セットの場合は、可用性セットまたはスケール セット内のすべての VM を停止または割り当てを解除します。
VM の NIC で高速ネットワークを無効にします。 可用性セットまたはスケール セットの場合は、可用性セットまたはスケール セット内のすべての VM の NIC で高速ネットワークを無効にします。
高速ネットワークを無効にした後、高速ネットワークをサポートしていない新しいサイズに VM、可用性セット、スケール セットを移動してから、それらを再起動します。
次の手順
- 高速ネットワークのしくみについて学ぶ
- Azure CLI を使って、高速ネットワークを設定した VM を作成する方法について学ぶ
- Azure 近接配置グループを使用して待機時間を改善する