我一直在尝试研究如何将 VM 从一个资源组中的一个区域 (WestUS) 移动到另一个资源组 (WestEurope) 中的另一个区域。
我正在尝试通过门户网站进行操作,但我每时每刻都遇到问题。
我已经创建了备份和快照。我还捕获了原始 VM(使其无法使用 - 请参阅https://stackoverflow.com/questions/63340139/why-does-capturing-an-image-of-a-vm-in-azure-prevent-the- vm-from-being-used)。
当我尝试从我的快照创建 VM 时,我得到:
“从 Marketplace 映像或源自 Marketplace 映像的自定义映像创建虚拟机需要请求中的计划信息”
讨论此问题的唯一链接是https://negatblog.wordpress.com/2018/10/13/azure-os-images-what-is-a-plan/这没有帮助。
我的形象不是“市场”形象。为什么我需要一个“计划”?我什至将这些配置信息放在哪里?
更一般地说,为什么像复制虚拟机这样基本的事情在 Azure 的实践中实现起来如此复杂?
计划信息是 Microsoft 用于跟踪 Marketplace 优惠的元数据。如果系统提示您进行计划,则您有一个市场报价 - 即使它是免费的。计划元数据包含三个部分——Publisher、Offer/Product 和 Name/Sku。根据您查看的位置,它们的引用方式不同。
计划信息永远不会改变。它以某种方式被纹身到 vhd 中——我还没有弄清楚如何,但它必须在磁盘上的某个地方。
如果在 Powershell 中构建 VM,只需在创建 VM 之前使用 Set-AzPlan cmdlet 包含计划数据。我没有通过 Powershell 创建很多东西,但我已经专门为 Marketplace 图像开发了它。
未记录的功能——如果您的发布者取消了您正在使用的报价,您将永远无法再次使用它创建虚拟机。不是来自 ASR 故障转移。不是来自备份。所以请留意你的版本。
在过去的 10 个小时里,我尽一切可能尝试恢复虚拟机,因为发布者已经删除了他们软件 10.6 之前的所有版本。我的客户,即使他们使用的是完全受支持的 10.5.1 版本,现在也相当吃力。
我什至创建了一个 HyperV 主机,下载了 VHD 并尝试将 VM 重新 ASR 到 Azure 中,以欺骗它认为这不可能是一个市场映像......没有乐趣。
几个非常有用的 Powershell 花絮,用于使用 Plan:Get-AzVMImageOffer -PublisherName "PUBLISHER" -Location "EastUS" | Get-AzVMImageSku(列出给定发布者在给定区域中的所有 SKU/优惠/发布者组合)
Get-AzMarketplaceTerms -Publisher $azureVmPublisherName -Product $azureVmOffer -Name $azureVmSkus | Set-AzMarketplaceTerms -Accept(如果您在 Powershell 中创建新 VM,并且这是您第一次部署此计划,则必须接受 Marketplace 条款)
底线:市场非常适合电器。我们得到了他们的生命周期。避免它像长期(呃)长期服务器的瘟疫一样。转到虚拟机列表,点击 + 添加,然后从他们提供给您的库存投递箱中选择一个操作系统。
您可以使用 Azure Site Recovery 轻松地将 Azure VM 移动到另一个区域,这里有有关如何执行此操作的详细信息。
不幸的是,如果您尚未在站点恢复中启用虚拟机的复制,则无法选择这样做,因为您捕获了虚拟机映像,因此机器不再工作。相反,您需要从该映像在所需区域中创建一个 VM。捕获映像进程应该已经创建了一个托管映像对象(假设您的 VM 使用托管磁盘)。您可以按照本文中的步骤使用此映像创建新 VM 。
编辑
所以这个问题似乎和使用中的镜像是收费的有关,所以部署的时候需要选择方案。您无法通过门户执行此操作,因此您需要使用 CLI 或 PS 执行此操作。要从映像创建 VM,请指定您可以执行的计划: