我一直在尝试研究如何将虚拟机从一个资源组中的一个区域(美国西部)移动到另一个资源组的另一个区域(西欧)。
我试图通过门户网站进行操作,但每次都遇到问题。
我已创建备份和快照。我还捕获了原始虚拟机(这使其无法使用 - 请参阅https://stackoverflow.com/questions/63340139/why-does-capturing-an-image-of-a-vm-in-azure-prevent-the-vm-from-being-used)。
当我尝试从快照创建虚拟机时,我得到:
“从 Marketplace 映像或源自 Marketplace 映像的自定义映像创建虚拟机需要请求中的计划信息”
讨论此问题的唯一链接是https://negatblog.wordpress.com/2018/10/13/azure-os-images-what-is-a-plan/这没有帮助。
我的图像不是“市场”图像。为什么我需要“计划”?我应该把这些配置信息放在哪里?
更一般地说,为什么像复制 VM 这样基本的事情在 Azure 中实现起来却如此复杂?
答案1
您可以使用 Azure Site Recovery 轻松地将 Azure VM 移动到另一个区域,并且有关于如何执行此操作的详细信息这里。
不幸的是,如果您尚未在站点恢复中启用虚拟机复制,则无法执行此操作,因为您捕获了虚拟机映像,因此计算机不再工作。相反,您需要从该映像在所需区域中创建虚拟机。捕获映像过程应该已经创建了托管映像对象(假设您的虚拟机使用了托管磁盘)。您可以按照此步骤使用此映像创建新的虚拟机文章。
编辑
因此,这个问题似乎与正在使用的映像需要付费有关,因此您需要在部署时选择一个计划。您无法通过门户执行此操作,因此您需要使用 CLI 或 PS 来执行此操作。要从映像创建 VM,请指定一个计划,您可以执行以下操作:
az vm create --name <name of new VM to create> --location <location> --image <name of image to use> --admin-username <admin username> --admin-password <admin password> --plan-name centos-8-0 --plan-product centos-8-0 --plan-publisher skylarkcloud -g <resource group for new VM>
答案2
计划信息是 Microsoft 用于跟踪 Marketplace 优惠的元数据。如果您被提示购买计划,则表明您拥有 Marketplace 优惠 - 即使它是免费的。计划元数据包含三个部分 - 发布者、优惠/产品和名称/SKU。根据您查看的位置,它们的引用方式不同。
计划信息永远不会改变。它以某种方式被刻在 vhd 中——我还没有找到具体方法,但它肯定在磁盘的某个地方。
如果您在 Powershell 中构建虚拟机,则只需在创建虚拟机之前使用 Set-AzPlan cmdlet 包含计划数据。我不会通过 Powershell 创建很多东西,但我已经专门为 Marketplace 镜像使用它了。
未记录的功能——如果您的发布商撤回您正在使用的优惠,您将永远无法再次使用它创建 VM。不能通过 ASR 故障转移。不能通过备份。因此请密切关注您的版本。
我花了 10 个小时尝试各种方法恢复虚拟机,因为发行商删除了其软件 10.6 之前的所有版本。我的客户现在虽然使用的是完全支持的 10.5.1 版本,但仍然受到了严重影响。
我甚至创建了一个 HyperV 主机,下载了 VHD,并尝试将 VM ASR 回 Azure,以欺骗它认为这不可能是 Marketplace 图像......没有乐趣。
使用 Plan 时,有几个非常有用的 Powershell 小技巧:Get-AzVMImageOffer -PublisherName "PUBLISHER" -Location "EastUS" | Get-AzVMImageSku(列出给定发布者在给定区域内的所有 SKU/Offer/Publisher 组合)
Get-AzMarketplaceTerms -Publisher $azureVmPublisherName -Product $azureVmOffer -Name $azureVmSkus | Set-AzMarketplaceTerms -Accept(如果您在 Powershell 中创建新的 VM,并且这是您第一次部署此计划,则必须接受市场条款)
底线:市场非常适合设备。我们了解它们的生命周期。对于长期服务器,请尽量避免使用市场。转到虚拟机列表,点击“+ 添加”,然后从他们提供的库存下拉框中选择一个操作系统。