【问题标题】:How to capture Azure VM Image with "Specialized" VM creation type using power shell? or How to create a Specialized image of a RM VM?如何使用 Power Shell 捕获具有“专用”VM 创建类型的 Azure VM 映像?或如何创建 RM VM 的专用映像?
【发布时间】:2016-12-21 09:46:27
【问题描述】:

我知道有两种类型的虚拟机镜像,Generalized 和 Specialized。

  1. 如果操作系统已通用化/取消配置,则必须关闭虚拟机才能将其捕获为 VM 映像。将 VM 捕获为 VM 映像后,将自动删除该虚拟机。

  2. 如果操作系统是专用,则可以在虚拟机运行或关闭时对其进行捕获。捕获的虚拟机保持不变。如果需要应用一致或跨磁盘捕获,我们建议在捕获 VM 映像之前关闭虚拟机。

在这里,我尝试在不关闭 VM 的情况下捕获图像(Specialized)。 我有下面的代码来使用 PowerShell 捕获图像。

Save-AzureRmVMImage -ResourceGroupName $rgame -VMName $vmname  -DestinationContainerName $container -VHDNamePrefix $vhdname

但上面的代码会抛出如下错误

Save-AzureRmVMImage : Capture operation cannot be completed because the VM is not generalized.
    ErrorCode: OperationNotAllowed
    ErrorMessage: Capture operation cannot be completed because the VM is not generalized.
    StatusCode: 409

我发现我可以使用 Set-AzureRmVM

将 VM 设置为 Generalized
Set-AzureRmVM -ResourceGroupName 'CaptureVmImageRG' -Name 'CaptureVmImage' -Generalized 

无论如何,我可以将 VM 设置为 Specialized 并捕获图像。有人可以提供一个有效的 Powershell 命令来创建正在运行的 VM 的专用捕获,以用于备份“时间点”目的,或任何其他机制,例如资源浏览器。

提前致谢。

【问题讨论】:

    标签: image azure virtual-machine azure-resource-manager azure-powershell


    【解决方案1】:

    Save-AzureRmVMimage 和 Set-AzureRmVM 命令用于捕获通用图像。在运行这两个 cmdlet 之前,您应该登录到 VM 并使用 Sysprep 准备硬盘。

    在 ARM 模式下,对于 Specialized 映像,我认为您不需要使用 cmdlet 来捕获映像。 您可以将 VHD 复制到另一个存储帐户。复制的 VHD 是专用映像。您可以使用 VHD 重新创建一个包含您的数据的新 VM。 据我所知,您最好在 VM 停止时复制 VHD。更多信息请参考article

    我认为使用 Azure 恢复服务保管库是一个更好的解决方案。 Azure 支持自动备份您的 VM,无需停止您的 VM。您可以轻松恢复虚拟机。更多信息请参考article

    【讨论】:

    • 出于好奇,有没有这样我可以使用 .vhd 从门户启动 VM,而不是使用 PowerShell 脚本/Azure CLI?
    • 启动虚拟机?你的意思是下载VM的VHD?
    • 我的意思是将源 .VHD 复制到新容器并通过带有 VHD 的 Azure 门户启动 VM。这是正确的方法吗?
    • 目前,您无法在 Azure 门户上执行此操作。
    • 有道理。!希望这个功能能尽快推出。非常感谢!
    【解决方案2】:

    使用经典 azure,您可以捕获专用 VM,并将生成的映像用作快速备份。使用 ARM azure,捕获命令期望 VM 被 sysprep'ed/generalized 并且实际上会使原始 VM 不再正常启动。在 ARM 中使用“捕获”时,我们有一些可怕的时刻,认为它就像经典。

    通过恢复服务调用手动备份是一种选择,但需要的时间太长!您可能会说,一旦快照阶段完成并且该过程处于转移到保管库阶段,您就可以继续使用原始 VM。但是,如果备份失败(这可能要到数小时后才会发生),则没有快照或新备份可供恢复。

    因此,复制 VM 最快和最可靠的方法就是关闭 VM,然后制作 vhd 的副本。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-12-02
      • 1970-01-01
      • 2016-01-21
      • 2021-08-19
      • 1970-01-01
      • 2017-05-07
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多