你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

通过 Azure PowerShell 在 Azure Stack Edge Pro GPU 设备上从专用映像部署 VM

适用于:对于 Pro GPU SKU 是必需的Azure Stack Edge Pro - GPU对于 Pro 2 SKU 是必需的Azure Stack Edge Pro 2对于 Pro R SKU 是必需的Azure Stack Edge Pro R对于 Mini R SKU 是必需的Azure Stack Edge Mini R

本文介绍从专用映像在 Azure Stack Edge Pro GPU 设备上部署虚拟机 (VM) 所需的步骤。

若要准备通用映像以在 Azure Stack Edge Pro GPU 中部署 VM,请参阅从 Windows VHD 准备通用映像从 ISO 准备通用映像

关于 VM 映像

可以使用 Windows VHD 或 VHDX 创建专用映像或通用映像。 下表汇总了专用映像与通用映像之间的主要差异

映像类型 通用 专用
目标 在任何系统上部署。 面向特定系统。
启动后设置 需要在首次启动 VM 时设置。 无需安装。
平台打开 VM。
配置 需要主机名、管理员用户和其他特定于 VM 的设置。 预配置。
使用时间 从同一个映像创建多个新 VM。 迁移特定的计算机,或从以前的备份还原 VM。

Workflow

从专用映像部署 VM 的概要工作流是:

  1. 将 VHD 复制到 Azure Stack Edge Pro GPU 设备上的本地存储帐户。
  2. 从 VHD 创建新的托管磁盘。
  3. 从托管磁盘创建新的虚拟机,并附加托管磁盘。

先决条件

在通过 PowerShell 在设备上部署 VM 之前,请确保:

验证本地 Azure 资源管理器连接

验证客户端是否可以连接到本地 Azure 资源管理器。

  1. 调用本地设备 API 进行身份验证:

    Login-AzureRMAccount -EnvironmentName <Environment Name>
    
  2. 提供用户名 EdgeArmUser 和密码以通过 Azure 资源管理器进行连接。 如果你忘记了密码,请重置 Azure 资源管理器的密码,然后使用此密码登录。

从专用映像部署 VM

以下部分包含从专用映像部署 VM 的分步说明。

将 VHD 复制到设备上的本地存储帐户

按照以下步骤将 VHD 复制到本地存储帐户:

  1. 将源 VHD 复制到 Azure Stack Edge 上的本地 Blob 存储帐户。

  2. 记下生成的 URI。 后续步骤需要使用此 URI。

    若要创建和访问本地存储帐户,请参阅通过 Azure PowerShell 在 Azure Stack Edge 设备上部署 VM 一文中的创建存储帐户上传 VHD 的每个部分。

从 VHD 创建托管磁盘

按照以下步骤,从之前已上传到存储帐户的 VHD 创建一个托管磁盘:

  1. 设置一些参数。

    $VhdURI = <URI of VHD in local storage account>
    $DiskRG = <managed disk resource group>
    $DiskName = <managed disk name>    
    

    下面是示例输出。

    PS C:\WINDOWS\system32> $VHDURI = "https://myasevmsa.blob.myasegpudev.wdshcsso.com/vhds/WindowsServer2016Datacenter.vhd"
    PS C:\WINDOWS\system32> $DiskRG = "myasevm1rg"
    PS C:\WINDOWS\system32> $DiskName = "myasemd1"
    
  2. 创建新的托管磁盘。

    $StorageAccountId = (Get-AzureRmStorageAccount -ResourceGroupName $ResourceGroupName -Name $StorageAccountName).Id
    
    $DiskConfig = New-AzureRmDiskConfig -Location DBELocal -StorageAccountId $StorageAccountId -CreateOption Import -SourceUri "Source URL for your VHD"
    
    

    下面是示例输出。 此处的位置设置为本地存储帐户的位置,对于 Azure Stack Edge Pro GPU 设备上的所有本地存储帐户,该位置始终是 DBELocal

    PS C:\WINDOWS\system32> $DiskConfig = New-AzureRmDiskConfig -Location DBELocal -CreateOption Import -SourceUri $VHDURI
    PS C:\WINDOWS\system32> $disk = New-AzureRMDisk -ResourceGroupName $DiskRG -DiskName $DiskName -Disk $DiskConfig
    PS C:\WINDOWS\system32>    
    

从托管磁盘创建 VM

按照以下步骤从托管磁盘创建 VM:

  1. 设置一些参数。

    $NicRG = <NIC resource group>
    $NicName = <NIC name>
    $IPConfigName = <IP config name>
    $PrivateIP = <IP address> #Optional
    
    $VMRG = <VM resource group>
    $VMName = <VM name>
    $VMSize = <VM size> 
    

    注意

    PrivateIP 参数是可选的。 使用此参数分配静态 IP,否则默认设置是使用 DHCP 的动态 IP。

    下面是示例输出。 在此示例中,为所有 VM 资源指定了同一个资源组,不过,如果需要,你可以为资源创建并指定单独的资源组。

    PS C:\WINDOWS\system32> $NicRG = "myasevm1rg"
    PS C:\WINDOWS\system32> $NicName = "myasevmnic1"
    PS C:\WINDOWS\system32> $IPConfigName = "myaseipconfig1" 
    
    PS C:\WINDOWS\system32> $VMRG = "myasevm1rg"
    PS C:\WINDOWS\system32> $VMName = "myasetestvm1"
    PS C:\WINDOWS\system32> $VMSize = "Standard_D1_v2"   
    
  2. 获取虚拟网络信息并创建新的网络接口。

    此示例假设你要在与默认资源组“ASERG”关联的默认虚拟网络“ASEVNET”上创建单个网络接口。 如果需要,可以指定备用虚拟网络,或创建多个网络接口。 有关详细信息,请参阅通过 Azure 门户将网络接口添加到 VM

    $armVN = Get-AzureRMVirtualNetwork -Name ASEVNET -ResourceGroupName ASERG
    $ipConfig = New-AzureRmNetworkInterfaceIpConfig -Name $IPConfigName -SubnetId $armVN.Subnets[0].Id [-PrivateIpAddress $PrivateIP]
    $nic = New-AzureRmNetworkInterface -Name $NicName -ResourceGroupName $NicRG -Location DBELocal -IpConfiguration $ipConfig
    

    下面是示例输出。

    PS C:\WINDOWS\system32> $armVN = Get-AzureRMVirtualNetwork -Name ASEVNET -ResourceGroupName ASERG
    PS C:\WINDOWS\system32> $ipConfig = New-AzureRmNetworkInterfaceIpConfig -Name $IPConfigName -SubnetId $armVN.Subnets[0].Id
    PS C:\WINDOWS\system32> $nic = New-AzureRmNetworkInterface -Name $NicName -ResourceGroupName $NicRG -Location DBELocal -IpConfiguration $ipConfig
    WARNING: The output object type of this cmdlet will be modified in a future release.
    PS C:\WINDOWS\system32>    
    
  3. 创建新的 VM 配置对象。

    $vmConfig = New-AzureRmVMConfig -VMName $VMName -VMSize $VMSize
    
  4. 向 VM 添加网络接口。

    $vm = Add-AzureRmVMNetworkInterface -VM $vmConfig -Id $nic.Id
    
  5. 在 VM 上设置 OS 磁盘属性。

    $vm = Set-AzureRmVMOSDisk -VM $vm -ManagedDiskId $disk.Id -StorageAccountType StandardLRS -CreateOption Attach –[Windows/Linux]
    

    此命令中的最后一个标志将是“-Windows”或“-Linux”,具体取决于要为 VM 使用的 OS。

  6. 创建 VM。

    New-AzureRmVM -ResourceGroupName $VMRG -Location DBELocal -VM $vm 
    

    下面是示例输出。

    PS C:\WINDOWS\system32> $vmConfig = New-AzureRmVMConfig -VMName $VMName -VMSize $VMSize
    PS C:\WINDOWS\system32> $vm = Add-AzureRmVMNetworkInterface -VM $vmConfig -Id $nic.Id
    PS C:\WINDOWS\system32> $vm = Set-AzureRmVMOSDisk -VM $vm -ManagedDiskId $disk.Id -StorageAccountType StandardLRS -CreateOption Attach -Windows
    PS C:\WINDOWS\system32> New-AzureRmVM -ResourceGroupName $VMRG -Location DBELocal -VM $vm
    WARNING: Since the VM is created using premium storage or managed disk, existing standard storage account, myasevmsa, is used for
    boot diagnostics.    
    RequestId IsSuccessStatusCode StatusCode ReasonPhrase
    --------- ------------------- ---------- ------------
                             True         OK OK        
    PS C:\WINDOWS\system32>
    

删除 VM 和资源

本文仅使用了一个资源组来创建所有 VM 资源。 删除该资源组会删除 VM 和所有关联的资源。

  1. 首先,查看在该资源组下创建的所有资源。

    Get-AzureRmResource -ResourceGroupName <Resource group name>
    

    下面是示例输出。

    PS C:\WINDOWS\system32> Get-AzureRmResource -ResourceGroupName myasevm1rg
    
    
    Name              : myasemd1
    ResourceGroupName : myasevm1rg
    ResourceType      : Microsoft.Compute/disks
    Location          : dbelocal
    ResourceId        : /subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/myasevm1rg/providers/Microsoft.Compute/disk
                        s/myasemd1
    
    Name              : myasetestvm1
    ResourceGroupName : myasevm1rg
    ResourceType      : Microsoft.Compute/virtualMachines
    Location          : dbelocal
    ResourceId        : /subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/myasevm1rg/providers/Microsoft.Compute/virt
                        ualMachines/myasetestvm1
    
    Name              : myasevmnic1
    ResourceGroupName : myasevm1rg
    ResourceType      : Microsoft.Network/networkInterfaces
    Location          : dbelocal
    ResourceId        : /subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/myasevm1rg/providers/Microsoft.Network/netw
                        orkInterfaces/myasevmnic1
    
    Name              : myasevmsa
    ResourceGroupName : myasevm1rg
    ResourceType      : Microsoft.Storage/storageaccounts
    Location          : dbelocal
    ResourceId        : /subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/myasevm1rg/providers/Microsoft.Storage/stor
                        ageaccounts/myasevmsa
    
    PS C:\WINDOWS\system32>
    
  2. 删除该资源组和所有关联的资源。

    Remove-AzureRmResourceGroup -ResourceGroupName <Resource group name>
    

    下面是示例输出。

    PS C:\WINDOWS\system32> Remove-AzureRmResourceGroup -ResourceGroupName myasevm1rg
    
    Confirm
    Are you sure you want to remove resource group 'myasevm1rg'
    [Y] Yes  [N] No  [S] Suspend  [?] Help (default is "Y"): Y
    True
    PS C:\WINDOWS\system32>
    
  3. 验证是否已删除该资源组。 获取设备上存在的所有资源组。

    Get-AzureRmResourceGroup
    

    下面是示例输出。

    PS C:\WINDOWS\system32> Get-AzureRmResourceGroup
    
    ResourceGroupName : ase-image-resourcegroup
    Location          : dbelocal
    ProvisioningState : Succeeded
    Tags              :
    ResourceId        : /subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/ase-image-resourcegroup
    
    ResourceGroupName : ASERG
    Location          : dbelocal
    ProvisioningState : Succeeded
    Tags              :
    ResourceId        : /subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/ASERG
    
    ResourceGroupName : myaserg
    Location          : dbelocal
    ProvisioningState : Succeeded
    Tags              :
    ResourceId        : /subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/myaserg
    
    PS C:\WINDOWS\system32>
    

后续步骤