你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
使用 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>
)替换为自己的值。
创建虚拟网络
使用 New-AzResourceGroup 创建要包含该资源的资源组。
New-AzResourceGroup -Name "<myResourceGroup>" -Location "<myAzureRegion>"
使用 New-AzVirtualNetworkSubnetConfig 创建子网配置。
$subnet = New-AzVirtualNetworkSubnetConfig ` -Name "<mySubnet>" ` -AddressPrefix "<192.168.1.0/24>"
使用 New-AzVirtualNetwork 创建具有子网的虚拟网络。
$vnet = New-AzVirtualNetwork -ResourceGroupName "<myResourceGroup>" ` -Location "<myAzureRegion>" ` -Name "<myVnet>" ` -AddressPrefix "<192.168.0.0/16>" ` -Subnet $Subnet
创建网络安全组
网络安全组 (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
使用 New-AzNetworkSecurityGroup 创建 NSG,然后将
Allow-RDP-All
规则分配给该 NSG。$nsg = New-AzNetworkSecurityGroup ` -ResourceGroupName "<myResourceGroup>" ` -Location "<myAzureRegion>" ` -Name "<myNsg>" ` -SecurityRules $rdp
使用 Set-AzVirtualNetworkSubnetConfig 将该 NSG 与子网关联。 NSG 规则对子网中部署的所有资源都有效。
Set-AzVirtualNetworkSubnetConfig ` -VirtualNetwork $vnet ` -Name "<mySubnet>" ` -AddressPrefix "<192.168.1.0/24>" ` -NetworkSecurityGroup $nsg
创建具有加速网络的网络接口
使用 New-AzPublicIpAddress 创建公共 IP 地址。 如果不从 Internet 访问 VM,则 VM 不需要公共 IP 地址,但你需要公共 IP 才能完成本文的步骤。
$publicIp = New-AzPublicIpAddress ` -ResourceGroupName "<myResourceGroup>" ` -Name "<myPublicIp>" ` -Location "<myAzureRegion>" ` -AllocationMethod Dynamic
使用 New-AzNetworkInterface 创建启用了加速网络的网络接口 (NIC),并将公共 IP 地址分配给该 NIC。
$nic = New-AzNetworkInterface ` -ResourceGroupName "<myResourceGroup>" ` -Name "<myNic>" ` -Location "<myAzureRegion>" ` -SubnetId $vnet.Subnets[0].Id ` -PublicIpAddressId $publicIp.Id ` -EnableAcceleratedNetworking
创建 VM 并附加网络接口
使用 Get-Credential 设置 VM 的用户名和密码,并将其存储在
$cred
变量中。$cred = Get-Credential
使用 New-AzVMConfig 定义 VM,使其大小支持加速网络,如 Windows 加速网络中所述。 若要获取所有 Windows VM 大小和特性列表,请参阅 Windows VM 大小。
$vmConfig = New-AzVMConfig -VMName "<myVm>" -VMSize "Standard_DS4_v2"
使用 Set-AzVMOperatingSystem 和 Set-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"
使用 Add-AzVMNetworkInterface 将之前创建的 NIC 附加到 VM。
$vmConfig = Add-AzVMNetworkInterface -VM $vmConfig -Id $nic.Id
使用 New-AzVM 创建启用了加速网络的 VM。
New-AzVM -VM $vmConfig -ResourceGroupName "<myResourceGroup>" -Location "<myAzureRegion>"
确认已安装以太网控制器
在 Azure 中创建 VM 后,立即连接到 VM 并确认 Windows 中安装了以太网控制器。
在 Azure 门户中,搜索并选择“虚拟机”。
在“虚拟机”页上,选择自己的新建 VM。
在 VM 的“概述”页面上,选择“连接”。
在“连接”屏幕上,选择“本机 RDP”。
在“本机 RDP”屏幕上,选择“下载 RDP 文件”。
打开下载的 RDP 文件,然后使用创建 VM 时输入的凭据登录。
在远程 VM 上,右键单击“启动”,然后选择“设备管理器”。
在“设备管理器”窗口中,展开“网络适配器”节点 。
确认已显示“Mellanox ConnectX-4 Lx 虚拟以太网适配器”,如下图所示:
适配器的存在确认了已为 VM 启用加速网络。
注意
如果 Mellanox 适配器启动失败,可在远程 VM 上打开管理员提示符,然后输入以下命令:
netsh int tcp set global rss = enabled
在现有 VM 上管理加速网络
可在现有 VM 上启用加速网络。 VM 必须满足以下要求才能支持加速网络:
- 是加速网络支持的大小。
- 是受支持的 Azure 市场映像。
- 已停止或已解除分配,然后才能在任何 NIC 上启用加速网络。 此要求适用于所有单个 VM 或可用性集或 Azure 虚拟机规模集中的 VM。
在单个 VM 或可用性集中的 VM 上启用加速网络
停止或解除分配 VM,或集合中的所有 VM(如果是可用性集):
Stop-AzVM -ResourceGroup "<myResourceGroup>" -Name "<myVM>"
如果 VM 是单独创建的并且没有可用性集,则只需停止/解除分配单个 VM 即可启用加速网络。 如果使用可用性集创建了 VM,则必须停止或解除分配该集中的所有 VM,以便 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>"
在虚拟机规模集上启用加速网络
Azure 虚拟机规模集略有不同,但遵循相同的工作流。
停止 VM:
Stop-AzVmss -ResourceGroupName "<myResourceGroup>" -VMScaleSetName "<myScaleSet>"
更新 NIC 下的加速网络属性:
$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
重启规模集:
Start-AzVmss -ResourceGroupName "<myResourceGroup>" -VMScaleSetName "<myScaleSet>"
重启并完成升级后,虚函数 (VF) 将显示在使用支持的 OS 和 VM 大小的 VM 中。
重设具有加速网络的现有 VM 的大小
只能将已启用加速网络的 VM 的大小重设为同时支持加速网络的大小。 通过使用重设大小操作,无法将具有加速网络的 VM 的大小重设为不支持加速网络的 VM 实例。 请改用以下过程调整这些 VM 的大小:
- 停止并解除分配 VM,或可用性集或虚拟机规模集中的所有 VM。
- 在 VM 或可用性集或虚拟机规模集中的所有 VM 的 NIC 上禁用加速网络。
- 将 VM 移动到不支持加速网络的新大小,然后重启它们。
通过门户管理加速网络
在 Azure 门户中创建 VM 时,可以在“创建虚拟机”屏幕的“网络”选项卡上选中“启用加速网络”复选框。 如果 VM 为加速网络使用支持的操作系统和 VM 大小,则会自动选中该复选框。 如果不支持加速网络,则不会选中该复选框,并显示一条消息解释原因。
注意
对于 Azure 市场支持的操作系统,只能在门户 VM 创建期间启用加速网络。 要为具有自定义 OS 映像的 VM 创建和启用加速网络,必须使用 PowerShell 或 Azure CLI。
要通过Azure 门户为现有 VM 启用或禁用加速网络,请执行以下操作:
- 在 VM 的“Azure 门户”页中,选择左侧菜单中的“网络”。
- 在“网络”页中,选择“网络接口”。
- 在 NIC“概述”页顶部,选择“编辑加速网络”。
- 选择“自动”、“已启用”或“已禁用”,然后选择“保存”。
要确认是否已为现有 VM 启用加速网络,请执行以下操作:
- 在 VM 的“Azure 门户”页中,选择左侧菜单中的“网络”。
- 在“网络”页中,选择“网络接口”。
- 在 NIC“概述”页的“概要”下,注意已将“加速网络”设置为“已启用”还是“已禁用”。