Azure PowerShell を使用して高速ネットワークが有効な Windows VM を作成する

ポータルを使用した VM の作成

この記事では、Azure PowerShell を使用して高速ネットワークが有効な VM を作成する手順について説明しますが、高速ネットワークが有効な仮想マシンを Azure portal で作成することもできます。 Azure ポータルで VM を作成するときに、[仮想マシンの作成] ページで [ネットワーク] タブを選択します。このタブには、高速ネットワークのオプションがあります。 サポートされているオペレーティング システムVM サイズを選択した場合、このオプションは自動的に [オン] に設定されます。 それ以外の場合、オプションは [オフ] に設定され、有効にできない理由が表示されます。 また、VM の作成後に、ポータルで高速ネットワークを有効または無効にすることもできます。そのためには、ネットワーク インターフェイスに移動し、[概要] ブレードの上部にあるボタンをクリックします。

Note

ポータルからは、サポートされているオペレーティング システムのみを有効にできます。 カスタム イメージを使用していて、そのイメージで高速ネットワークがサポートされている場合は、CLI または PowerShell を使用して VM を作成してください。

VM を作成した後で、高速ネットワークが有効になっているかどうかを確認できます。 以下の手順に従います。

  1. Azure portal に移動して、VM を管理します。 [仮想マシン] を検索して選択します。

  2. 仮想マシンの一覧で、新しい VM を選択します。

  3. VM のメニュー バーで、 [ネットワーク] を選択します。

ネットワーク インターフェイスの情報で、 [高速ネットワーク] というラベルの横に、高速ネットワークの状態が [無効][有効] かが表示されます。

PowerShell を使用した VM の作成

先に進む前に、Azure PowerShell バージョン 1.0.0 以降をインストールします。 現在インストールされているバージョンを見つけるには、Get-Module -ListAvailable Az を実行します。 インストールまたはアップグレードする必要がある場合は、PowerShell ギャラリーから最新バージョンの Az モジュールをインストールします。 PowerShell セッションで、Connect-AzAccount を使用して Azure アカウントにサインインします。

次の例では、パラメーター名を独自の値を置き換えます。 たとえば、myResourceGroupmyNicmyVM といったパラメーター名にします。

仮想ネットワークの作成

  1. New-AzResourceGroup を使用して Azure リソース グループを作成します。 次のコマンドでは、myResourceGroup という名前のリソース グループが場所 centralus に作成されます。

    New-AzResourceGroup -Name "myResourceGroup" -Location "centralus"
    
  2. New-AzVirtualNetworkSubnetConfig を使用してサブネット構成を作成します。 次のコマンドでは、mySubnet という名前のサブネットが作成されます。

    $subnet = New-AzVirtualNetworkSubnetConfig `
        -Name "mySubnet" `
        -AddressPrefix "192.168.1.0/24"
    
  3. New-AzuVirtualNetwork を使用して、mySubnet サブネットを持つ仮想ネットワークを作成します。

    $vnet = New-AzVirtualNetwork -ResourceGroupName "myResourceGroup" `
        -Location "centralus" `
        -Name "myVnet" `
        -AddressPrefix "192.168.0.0/16" `
        -Subnet $Subnet
    

ネットワーク セキュリティ グループの作成

  1. 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
    
  2. New-AzNetworkSecurityGroup を使用してネットワーク セキュリティ グループを作成し、Allow-RDP-All セキュリティ規則を割り当てます。 Allow-RDP-All 規則だけでなく、ネットワーク セキュリティ グループには複数の既定の規則が含まれています。 既定の規則の 1 つでは、インターネットからのすべての受信アクセスが無効にされます。 作成された Allow-RDP-All 規則はネットワーク セキュリティ グループに割り当てられて、VM にリモート接続できるようになります。

    $nsg = New-AzNetworkSecurityGroup `
        -ResourceGroupName myResourceGroup `
        -Location centralus `
        -Name "myNsg" `
        -SecurityRules $rdp
    
  3. Set-AzVirtualNetworkSubnetConfig を使用して、ネットワーク セキュリティ グループを mySubnet サブネットに関連付けます。 ネットワーク セキュリティ グループ内の規則は、サブネットにデプロイされているすべてのリソースに対して有効です。

    Set-AzVirtualNetworkSubnetConfig `
        -VirtualNetwork $vnet `
        -Name 'mySubnet' `
        -AddressPrefix "192.168.1.0/24" `
        -NetworkSecurityGroup $nsg
    

高速ネットワークを使ったネットワーク インターフェイスの作成

  1. New-AzPublicIpAddress を使用してパブリック IP アドレスを作成します。 インターネットから VM にアクセスする予定がない場合、パブリック IP アドレスは不要です。 ただし、この記事の手順を完了するにはそれが必要です。

    $publicIp = New-AzPublicIpAddress `
        -ResourceGroupName myResourceGroup `
        -Name 'myPublicIp' `
        -location centralus `
        -AllocationMethod Dynamic
    
  2. 高速ネットワークを有効にし、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 を作成してネットワーク インターフェイスをアタッチする

  1. $cred を使用して、VM の資格情報を変数 $cred に設定します。このとき、サインインを求めるメッセージが表示されます。

    $cred = Get-Credential
    
  2. New-AzVMConfig を使用して VM を定義します。 次のコマンドでは、高速ネットワークをサポートする VM サイズ (Standard_DS4_v2) を使用して、myVM という VM を定義します。

    $vmConfig = New-AzVMConfig -VMName "myVm" -VMSize "Standard_DS4_v2"
    

    すべての VM のサイズと特性の一覧は、Windows VM のサイズに関するページを参照してください。

  3. Set-AzVMOperatingSystemSet-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"
    
  4. 以前に作成したネットワーク インターフェイスを Add-AzVMNetworkInterface にアタッチします。

    $vmConfig = Add-AzVMNetworkInterface -VM $vmConfig -Id $nic.Id
    
  5. New-AzVM を使用して VM を作成します。

    New-AzVM -VM $vmConfig -ResourceGroupName "myResourceGroup" -Location "centralus"
    

Windows VM にイーサネット コントローラーがインストールされていることを確認する

Azure で VM を作成したら、VM に接続し、Windows にイーサネット コントローラーがインストールされていることを確認します。

  1. Azure portal に移動して、VM を管理します。 [仮想マシン] を検索して選択します。

  2. 仮想マシンの一覧で、新しい VM を選択します。

  3. VM の概要ページで、VM の一覧に [状態][作成中] と表示されている場合は、Azure で VM の作成が完了するまで待ちます。 VM の作成が完了すると、 [状態][実行中] に変わります。

  4. VM の概要のツール バーで、[接続][RDP][RDP ファイルのダウンロード] を選択します。

  5. .rdp ファイルを開き、「VM を作成してネットワーク インターフェイスをアタッチする」セクションで入力した資格情報を使用して VM にサインインします。 Azure で Windows VM に接続したことがない場合は、「仮想マシンへの接続」を参照してください。

  6. VM のリモート デスクトップ セッションが表示されたら、Windows の [スタート] ボタンを右クリックし、 [デバイス マネージャー] を選択します。

  7. [デバイス マネージャー] ウィンドウで、 [ネットワーク アダプター] ノードを展開します。

  8. Mellanox ConnectX-3 Virtual Function Ethernet Adapter が表示されていることを確認します (下図参照)。

    Mellanox ConnectX-3 Virtual Function Ethernet Adapter, new network adapter for accelerated networking, Device Manager

これで、高速ネットワークが VM で有効になります。

Note

Mellanox アダプターの起動が失敗する場合は、リモート デスクトップ セッションで管理者プロンプトを開き、次のコマンドを入力します。

netsh int tcp set global rss = enabled

既存の VM で高速ネットワークを有効にする

高速ネットワークを有効にしないで VM を作成した場合は、既存の VM に対してこの機能を有効にすることができます。 VM では、上で説明した次の前提条件が満たされ、高速ネットワークがサポートされている必要があります。

  • VM は高速ネットワークに対してサポートされるサイズである必要があります。
  • VM はサポートされる Azure ギャラリー イメージ (および Linux のカーネル バージョン) である必要があります。
  • NIC 上で高速ネットワークを有効にする前に、可用性セットまたは仮想マシン スケール セットのすべての VM を停止するか、割り当てを解除する必要があります。

個別の VM および可用性セット内の VM

  1. VM (可用性セットの場合は、セット内のすべての VM) を停止するか、割り当てを解除します。

    Stop-AzVM -ResourceGroup "myResourceGroup" -Name "myVM"
    

    Note

    可用性セットを使用せず、VM を個別に作成する場合、高速ネットワークを有効にするために必要なのは、個別の VM を停止または割り当てを解除することだけです。 可用性セットを使用して VM を作成した場合は、高速ネットワークをサポートするクラスターで VM が終了するように、いずれかの NIC で高速ネットワークを有効にする前に、可用性セットに含まれているすべての VM を停止または割り当てを解除する必要があります。 高速ネットワークを無効にする場合は、高速ネットワークをサポートするクラスターは高速ネットワークを使用しない NIC でも問題なく動作するため、停止または割り当てを解除する必要はありません。

  2. VM の NIC 上で高速ネットワークを有効にします。

    $nic = Get-AzNetworkInterface -ResourceGroupName "myResourceGroup" `
        -Name "myNic"
    
    $nic.EnableAcceleratedNetworking = $true
    
    $nic | Set-AzNetworkInterface
    
  3. VM (可用性セットの場合はセット内のすべての VM) を再起動し、高速ネットワークが有効になっていることを確認します。

    Start-AzVM -ResourceGroup "myResourceGroup" `
        -Name "myVM"
    

仮想マシン スケール セット

仮想マシン スケール セットの場合は少し異なりますが、同じワークフローに従います。

  1. VM を停止します。

    Stop-AzVmss -ResourceGroupName "myResourceGroup" `
        -VMScaleSetName "myScaleSet"
    
  2. ネットワークのインターフェイスで、高速ネットワークのプロパティを更新します。

    $vmss = Get-AzVmss -ResourceGroupName "myResourceGroup" `
        -VMScaleSetName "myScaleSet"
    
    $vmss.VirtualMachineProfile.NetworkProfile.NetworkInterfaceConfigurations[0].EnableAcceleratedNetworking = $true
    
    Update-AzVmss -ResourceGroupName "myResourceGroup" `
        -VMScaleSetName "myScaleSet" `
        -VirtualMachineScaleSet $vmss
    
  3. 変更がすぐに選択されるように、適用された更新を自動に設定します。

    $vmss.UpgradePolicy.Mode = "Automatic"
    
    Update-AzVmss -ResourceGroupName "myResourceGroup" `
        -VMScaleSetName "myScaleSet" `
        -VirtualMachineScaleSet $vmss
    

    Note

    スケール セットには、3 つの異なる設定 (自動、ローリング、手動) を使用して更新を適用する VM のアップグレードがあります。 これらの手順では、再起動後すぐにスケール セットによってポリシーが選択されるように、ポリシーは自動に設定されます。

  4. スケール セットを再起動します。

    Start-AzVmss -ResourceGroupName "myResourceGroup" `
        -VMScaleSetName "myScaleSet"
    

再起動したら、アップグレードが完了するまで待ちます。 アップグレードが完了すると、仮想機能 (VF) が VM 内に表示されます。 サポートされている OS と VM サイズを使用していることを確認します。

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

VM で高速ネットワークが有効になっている場合は、高速ネットワークをサポートする VM のみにサイズを変更できます。

高速ネットワークが有効になっている VM のサイズを、高速ネットワークをサポートしていない VM インスタンスに、サイズ変更操作を使用して変更することはできません。 このような VM のサイズを変更するには、次のようにします。

  1. VM を停止するか、または割り当てを解除します。 可用性セットまたはスケール セットの場合は、可用性セットまたはスケール セット内のすべての VM を停止または割り当てを解除します。

  2. VM の NIC で高速ネットワークを無効にします。 可用性セットまたはスケール セットの場合は、可用性セットまたはスケール セット内のすべての VM の NIC で高速ネットワークを無効にします。

  3. 高速ネットワークを無効にした後、高速ネットワークをサポートしていない新しいサイズに VM、可用性セット、スケール セットを移動してから、それらを再起動します。

次の手順