Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
本文介绍较旧的托管映像技术。 对于最新的技术,建议客户使用 Azure Compute Gallery。 所有新功能(如 ARM64 和受信任的启动)仅通过 Azure 计算库受支持。 如果已有托管映像,可将其用作源并创建 Azure Compute Gallery 映像。 有关详细信息,请参阅创建映像定义和映像版本。
重要
无法从使用受信任启动部署的虚拟机创建旧托管映像。
在 Azure 中将 VM 标记为 generalized 后,无法重启 VM。
一个托管映像最多支持 20 个同时部署。 如果尝试从同一托管映像同时创建超过 20 个 VM,则可能会由于单个 VHD 的存储性能限制而导致预配超时。 若要同时创建超过 20 个 VM,请使用 Azure Compute Gallery(以前称为共享映像库)的映像进行配置,每 20 个并发 VM 部署配置 1 个副本。
有关托管映像如何计费的信息,请参阅托管磁盘定价。
先决条件
需要通用化 VM 才能创建映像。
VM不能是可信启动VM。
CLI:创建 VM 的旧版托管映像
使用 az image create 创建 VM 的旧托管映像。 直接从 VM 创建旧托管映像可确保映像包括与 VM 关联的所有磁盘,包括 OS 磁盘和任何数据磁盘。
旧托管映像是在与源 VM 相同的资源组中创建的。 您可以在订阅中的任何资源组中从此映像创建虚拟机。 从管理的角度来看,你可能希望为 VM 资源和映像创建特定的资源组。
以下示例是在名为 myResourceGroup 的资源组中,使用名为 myVM 的 VM 资源创建一个名为 myImage 的旧托管映像。
az image create \
--resource-group myResourceGroup \
--name myImage --source myVM
If you are capturing an image of a generation 2 VM, also use the --hyper-v-generation V2 parameter. for more information, see Generation 2 VMs.
If you would like to store your image in zone-resilient storage, you need to create it in a region that supports availability zones and include the --zone-resilient true parameter.
This command returns JSON that describes the VM image. Save this output for later reference.
PowerShell:创建 VM 的旧版托管映像
此示例演示如何从 VM 创建旧托管映像。 直接从 VM 创建旧托管映像可确保映像包括与 VM 关联的所有磁盘,包括 OS 磁盘和任何数据磁盘。
在开始之前,请确保有最新版本的 Azure PowerShell 模块。 若要查找版本,请在 PowerShell 中运行 Get-Module -ListAvailable Az。 如需升级,请参阅使用 PowerShellGet 在 Windows 上安装 Azure PowerShell。
如果在本地运行 PowerShell,则运行 Connect-AzAccount 以创建与 Azure 的连接。
如果希望将映像存储在具有区域冗余能力的存储中,需要在支持可用性区域的区域中创建该映像并在映像配置中包括 -ZoneResilient 参数(New-AzImageConfig 命令)。
若要创建 VM 的旧托管映像,请执行以下步骤:
创建一些变量。
$vmName = "myVM" $rgName = "myResourceGroup" $location = "China North" $imageName = "myImage"确保 VM 已解除分配。
Stop-AzVM -ResourceGroupName $rgName -Name $vmName -Force将虚拟机的状态设置为“通用化”。
Set-AzVm -ResourceGroupName $rgName -Name $vmName -Generalized获取虚拟机。
$vm = Get-AzVM -Name $vmName -ResourceGroupName $rgName创建映像配置。
$imageConfig = New-AzImageConfig -Location $location -SourceVirtualMachineId $vm.Id创建映像。
New-AzImage -ImageName $imageName -ResourceGroupName $rgName -Image $imageConfig
PowerShell:从托管磁盘创建旧版托管映像
如果要仅创建 OS 磁盘的旧托管映像,请将托管磁盘 ID 指定为 OS 磁盘:
创建一些变量。
$vmName = "myVM" $rgName = "myResourceGroup" $location = "China North" $imageName = "myImage"获取虚拟机。
$vm = Get-AzVm -Name $vmName -ResourceGroupName $rgName获取托管磁盘的 ID。
$diskID = $vm.StorageProfile.OsDisk.ManagedDisk.Id创建映像配置。
$imageConfig = New-AzImageConfig -Location $location $imageConfig = Set-AzImageOsDisk -Image $imageConfig -OsState Generalized -OsType Windows -ManagedDiskId $diskID创建映像。
New-AzImage -ImageName $imageName -ResourceGroupName $rgName -Image $imageConfig
PowerShell:从快照创建旧版托管映像
通过执行以下步骤,可以从通用 VM 的快照创建托管映像:
创建一些变量。
$rgName = "myResourceGroup" $location = "China North" $snapshotName = "mySnapshot" $imageName = "myImage"获取快照。
$snapshot = Get-AzSnapshot -ResourceGroupName $rgName -SnapshotName $snapshotName创建映像配置。
$imageConfig = New-AzImageConfig -Location $location $imageConfig = Set-AzImageOsDisk -Image $imageConfig -OsState Generalized -OsType Windows -SnapshotId $snapshot.Id创建映像。
New-AzImage -ImageName $imageName -ResourceGroupName $rgName -Image $imageConfig
PowerShell:从使用存储帐户的 VM 创建旧版托管映像
若要从不使用托管磁盘的 VM 创建托管映像,需要存储帐户中 OS VHD 的 URI,格式如下: https://mystorageaccount.blob.core.chinacloudapi.cn/vhdcontainer/vhdfilename.vhd。 在本示例中,VHD 位于名为 vhdcontainer 的容器中的 mystorageaccount 中,且 VHD 文件名为 vhdfilename.vhd。
创建一些变量。
$vmName = "myVM" $rgName = "myResourceGroup" $location = "China North" $imageName = "myImage" $osVhdUri = "https://mystorageaccount.blob.core.chinacloudapi.cn/vhdcontainer/vhdfilename.vhd"停止/解除分配 VM。
Stop-AzVM -ResourceGroupName $rgName -Name $vmName -Force将 VM 标记为通用。
Set-AzVm -ResourceGroupName $rgName -Name $vmName -Generalized使用通用化的 OS VHD 创建映像。
$imageConfig = New-AzImageConfig -Location $location $imageConfig = Set-AzImageOsDisk -Image $imageConfig -OsType Windows -OsState Generalized -BlobUri $osVhdUri $image = New-AzImage -ImageName $imageName -ResourceGroupName $rgName -Image $imageConfig
CLI:从旧版托管映像创建 VM
使用 az vm create 从旧托管映像创建 VM。 以下示例从名为 myImage 的映像创建名为 myVMDeployed 的 VM 。
az vm create \
--resource-group myResourceGroup \
--name myVMDeployed \
--image myImage\
--admin-username azureuser \
--ssh-key-value ~/.ssh/id_rsa.pub
CLI:在另一个资源组中从旧版托管映像创建 VM
您可以在您的订阅内从任何资源组中的旧托管映像创建虚拟机。 若要在与旧托管映像不同的资源组中创建 VM,请指定完整的资源 ID。 使用 az image list 查看映像列表。 输出类似于以下示例。
"id":
"/subscriptions/guid/resourceGroups/MYRESOURCEGROUP/providers/Microsoft.Compute/images/myImage",
"location": "chinanorth", "name": "myImage",
以下示例使用 az vm create,通过指定映像资源 ID,在除源旧版托管映像所在资源组外的其他资源组中创建 VM。
az vm create \
--resource-group myOtherResourceGroup \
--name myOtherVMDeployed \
--image "/subscriptions/guid/resourceGroups/MYRESOURCEGROUP/providers/Microsoft.Compute/images/myImage" \
--admin-username azureuser \
--ssh-key-value ~/.ssh/id_rsa.pub
门户:从遗留托管映像创建 VM
从旧托管映像在 Azure 中创建 VM:在门户中查找映像,选择“创建 VM”,填写详细信息,选择大小,调整设置并部署。
转到 Azure 门户查找托管映像。 搜索并选择“图像”。
从列表中选择需要使用的映像。 随即打开映像“概述”页。
从菜单中选择“创建 VM”。
输入虚拟机信息。 在此处输入的用户名和密码将用来登录到虚拟机。 完成后选择“确定”。 可以在现有资源组中创建新的 VM,或者选择“新建”创建一个新的资源组用于存储 VM。
为 VM 选择大小。 若要查看更多的大小,请选择“全部查看”或更改“支持的磁盘类型”筛选器。
在“设置”下,根据需要进行更改并选择“确定” 。
在摘要页上,应该能看到你的映像名称被列为“私有映像”。 选择“确定”以启动虚拟机部署。
PowerShell:从旧版托管映像创建 VM
可以使用 PowerShell 通过 New-AzVm cmdlet 的简化参数集从旧托管映像创建 VM。 旧托管映像需要位于要在其中创建 VM 的同一资源组中。
New-AzVm 的简化参数集仅要求提供名称、资源组和映像名称便可基于映像创建 VM。 New-AzVm 将使用 -Name 参数的值作为它自动创建的所有资源的名称。 在此示例中,我们为每个资源提供更详细的名称,但让 cmdlet 自动创建这些资源。 你还可以提前创建资源(例如虚拟网络)并将名称传递给 cmdlet。 如果 New-AzVm 可以通过名称找到现有资源,将会使用这些资源。
以下示例在“myResourceGroup”资源组中,从名为“myImage”的镜像创建一个名为“myVMFromImage”的虚拟机(VM)。
New-AzVm `
-ResourceGroupName "myResourceGroup" `
-Name "myVMfromImage" `
-ImageName "myImage" `
-Location "China North" `
-VirtualNetworkName "myImageVnet" `
-SubnetName "myImageSubnet" `
-SecurityGroupName "myImageNSG" `
-PublicIpAddressName "myImagePIP"