Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
本文介绍较旧的托管映像技术。 对于最新的技术,建议客户使用 Azure Compute Gallery。 所有新功能,例如 ARM64 和受信任的启动,只有通过 Azure 计算图库 才能获得支持。 如果有现有的托管映像,则可以将其用作源并创建Azure计算库映像。 有关详细信息,请参阅创建映像定义和映像版本。
重要
无法从使用受信任启动部署的虚拟机创建旧托管映像。
在Azure中将 VM 标记为 generalized 后,将无法重启 VM。
一个托管映像最多支持 20 个同时部署。 如果尝试从同一托管映像同时创建超过 20 个 VM,则可能会由于单个 VHD 的存储性能限制而导致预配超时。 若要并发创建 20 多个 VM,请使用为每个 20 个并发 VM 部署配置了 1 个副本的 Azure 计算库(以前称为 共享映像库) 映像。
有关如何计费托管映像的信息,请参阅 托管磁盘定价。
先决条件
需要通用化 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"