使用 Azure PowerShell 创建具有加速网络的 VM

本文介绍如何使用 Azure PowerShell 创建启用了加速网络 (AccelNet) 的 Windows 虚拟机 (VM)。 本文还讨论了如何在现有 VM 上启用和管理加速网络。

也可以使用 Azure 门户创建启用了加速网络的 VM。 有关使用 Azure 门户在 VM 上管理加速网络的详细信息,请参阅通过门户管理加速网络

若要使用 Azure CLI 创建启用了加速网络的 Linux 或 Windows VM,请参阅使用 Azure CLI 创建具有加速网络的 VM

先决条件

  • 具有活动订阅的 Azure 帐户。 可创建试用帐户

  • 已安装 Azure PowerShell 1.0.0(或更高版本)。 要查找当前安装的版本,请运行 Get-Module -ListAvailable Az。 如果需要进行安装或升级,请从 PowerShell 库安装最新版本的 Az 模块。

  • 在 PowerShell 中,使用 Connect-AzAccount 登录到 Azure 帐户。

创建具有加速网络的 VM

在以下示例中,可以将示例参数(如 <myResourceGroup><myNic><myVm>)替换为自己的值。

创建虚拟网络

  1. 使用 New-AzResourceGroup 创建要包含该资源的资源组。

    New-AzResourceGroup -Name "<myResourceGroup>" -Location "<myAzureRegion>"
    
  2. 使用 New-AzVirtualNetworkSubnetConfig 创建子网配置。

    $subnet = New-AzVirtualNetworkSubnetConfig `
      -Name "<mySubnet>" `
      -AddressPrefix "<192.168.1.0/24>"
    
  3. 使用 New-AzVirtualNetwork 创建具有子网的虚拟网络。

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

创建网络安全组

  1. 网络安全组 (NSG) 包含多个默认规则,其中一个规则禁用了来自 Internet 的所有入站访问。 使用 New-AzNetworkSecurityRuleConfig 创建新规则,以便可以通过远程桌面协议 (RDP) 远程连接到 VM。

    $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 创建 NSG,然后将 Allow-RDP-All 规则分配给该 NSG。

    $nsg = New-AzNetworkSecurityGroup `
      -ResourceGroupName "<myResourceGroup>" `
      -Location "<myAzureRegion>" `
      -Name "<myNsg>" `
      -SecurityRules $rdp
    
  3. 使用 Set-AzVirtualNetworkSubnetConfig 将该 NSG 与子网关联。 NSG 规则对子网中部署的所有资源都有效。

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

创建具有加速网络的网络接口

  1. 使用 New-AzPublicIpAddress 创建公共 IP 地址。 如果不从 Internet 访问 VM,则 VM 不需要公共 IP 地址,但你需要公共 IP 才能完成本文的步骤。

    $publicIp = New-AzPublicIpAddress `
      -ResourceGroupName "<myResourceGroup>" `
      -Name "<myPublicIp>" `
      -Location "<myAzureRegion>" `
      -AllocationMethod Dynamic
    
  2. 使用 New-AzNetworkInterface 创建启用了加速网络的网络接口 (NIC),并将公共 IP 地址分配给该 NIC。

    $nic = New-AzNetworkInterface `
      -ResourceGroupName "<myResourceGroup>" `
      -Name "<myNic>" `
      -Location "<myAzureRegion>" `
      -SubnetId $vnet.Subnets[0].Id `
      -PublicIpAddressId $publicIp.Id `
      -EnableAcceleratedNetworking
    

创建 VM 并附加网络接口

  1. 使用 Get-Credential 设置 VM 的用户名和密码,并将其存储在 $cred 变量中。

    $cred = Get-Credential
    
  2. 使用 New-AzVMConfig 定义 VM,使其大小支持加速网络,如 Windows 加速网络中所述。 若要获取所有 Windows VM 大小和特性列表,请参阅 Windows VM 大小

    $vmConfig = New-AzVMConfig -VMName "<myVm>" -VMSize "Standard_DS4_v2"
    
  3. 使用 Set-AzVMOperatingSystemSet-AzVMSourceImage 创建 VM 配置的其余部分。 以下示例创建一个 Windows Server 2019 Datacenter VM:

    $vmConfig = Set-AzVMOperatingSystem -VM $vmConfig `
      -Windows `
      -ComputerName "<myVM>" `
      -Credential $cred `
      -ProvisionVMAgent `
      -EnableAutoUpdate
    $vmConfig = Set-AzVMSourceImage -VM $vmConfig `
      -PublisherName "MicrosoftWindowsServer" `
      -Offer "WindowsServer" `
      -Skus "2019-Datacenter" `
      -Version "latest"
    
  4. 使用 Add-AzVMNetworkInterface 将之前创建的 NIC 附加到 VM。

    $vmConfig = Add-AzVMNetworkInterface -VM $vmConfig -Id $nic.Id
    
  5. 使用 New-AzVM 创建启用了加速网络的 VM。

    New-AzVM -VM $vmConfig -ResourceGroupName "<myResourceGroup>" -Location "<myAzureRegion>"
    

确认已安装以太网控制器

在 Azure 中创建 VM 后,立即连接到 VM 并确认 Windows 中安装了以太网控制器。

  1. Azure 门户中,搜索并选择“虚拟机”。

  2. 在“虚拟机”页上,选择自己的新建 VM。

  3. 在 VM 的“概述”页面上,选择“连接”。

  4. 在“连接”屏幕上,选择“本机 RDP”。

  5. 在“本机 RDP”屏幕上,选择“下载 RDP 文件”。

  6. 打开下载的 RDP 文件,然后使用创建 VM 时输入的凭据登录。

  7. 在远程 VM 上,右键单击“启动”,然后选择“设备管理器”。

  8. 在“设备管理器”窗口中,展开“网络适配器”节点 。

  9. 确认已显示“Mellanox ConnectX-4 Lx 虚拟以太网适配器”,如下图所示:

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

    适配器的存在确认了已为 VM 启用加速网络。

注意

如果 Mellanox 适配器启动失败,可在远程 VM 上打开管理员提示符,然后输入以下命令:

netsh int tcp set global rss = enabled

在现有 VM 上管理加速网络

可在现有 VM 上启用加速网络。 VM 必须满足以下要求才能支持加速网络:

  • 是加速网络支持的大小。
  • 是受支持的 Azure 市场映像。
  • 已停止或已解除分配,然后才能在任何 NIC 上启用加速网络。 此要求适用于所有单个 VM 或可用性集或 Azure 虚拟机规模集中的 VM。

在单个 VM 或可用性集中的 VM 上启用加速网络

  1. 停止或解除分配 VM,或集合中的所有 VM(如果是可用性集):

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

    如果 VM 是单独创建的并且没有可用性集,则只需停止/解除分配单个 VM 即可启用加速网络。 如果使用可用性集创建了 VM,则必须停止或解除分配该集中的所有 VM,以便 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>"
    

在虚拟机规模集上启用加速网络

Azure 虚拟机规模集略有不同,但遵循相同的工作流。

  1. 停止 VM:

    Stop-AzVmss -ResourceGroupName "<myResourceGroup>" -VMScaleSetName "<myScaleSet>"
    
  2. 更新 NIC 下的加速网络属性:

    $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
    
  4. 重启规模集:

    Start-AzVmss -ResourceGroupName "<myResourceGroup>" -VMScaleSetName "<myScaleSet>"
    

重启并完成升级后,虚函数 (VF) 将显示在使用支持的 OS 和 VM 大小的 VM 中。

重设具有加速网络的现有 VM 的大小

只能将已启用加速网络的 VM 的大小重设为同时支持加速网络的大小。 通过使用重设大小操作,无法将具有加速网络的 VM 的大小重设为不支持加速网络的 VM 实例。 请改用以下过程调整这些 VM 的大小:

  1. 停止并解除分配 VM,或可用性集或虚拟机规模集中的所有 VM。
  2. 在 VM 或可用性集或虚拟机规模集中的所有 VM 的 NIC 上禁用加速网络。
  3. 将 VM 移动到不支持加速网络的新大小,然后重启它们。

通过门户管理加速网络

Azure 门户中创建 VM 时,可以在“创建虚拟机”屏幕的“网络”选项卡上选中“启用加速网络”复选框。 如果 VM 为加速网络使用支持的操作系统VM 大小,则会自动选中该复选框。 如果不支持加速网络,则不会选中该复选框,并显示一条消息解释原因。

注意

对于 Azure 市场支持的操作系统,只能在门户 VM 创建期间启用加速网络。 要为具有自定义 OS 映像的 VM 创建和启用加速网络,必须使用 PowerShell 或 Azure CLI。

要通过Azure 门户为现有 VM 启用或禁用加速网络,请执行以下操作:

  1. 在 VM 的“Azure 门户”页中,选择左侧菜单中的“网络”。
  2. 在“网络”页中,选择“网络接口”。
  3. 在 NIC“概述”页顶部,选择“启用加速网络”或“禁用加速网络”。

要确认是否已为现有 VM 启用加速网络,请执行以下操作:

  1. 在 VM 的“Azure 门户”页中,选择左侧菜单中的“网络”。
  2. 在“网络”页中,选择“网络接口”。
  3. 在 NIC“概述”页的“概要”下,注意已将“加速网络”设置为“已启用”还是“已禁用”。

后续步骤