排查在 Azure 中创建、重启 Windows VM 或调整其大小时发生的分配失败
创建 VM、重新启动已停止(解除分配)的 VM 和重设 VM 大小时,Azure 会为订阅分配计算资源。 执行这些操作时,即使尚未达到 Azure 订阅限制,也可能偶尔收到错误。 本文说明一些常见分配故障的原因,并建议可能的补救方法。 计划服务的部署时,本信息可能也有用。 还可以排查在 Azure 中创建、重新启动 Linux VM 或调整其大小时发生的分配失败。
如果本文未解决你的 Azure 问题,请访问 MSDN 和 CSDN 上的 CSDN Azure 论坛。 你可以在这些论坛上发布你的问题。 此外,还可以通过在 Azure 支持站点上选择“获取支持”来发出 Azure 支持请求。
常规故障排除步骤
对经典部署模型中的常见分配失败进行故障排除
这些步骤可帮助解决虚拟机中的许多分配失败:
- 将 VM 重设为不同的 VM 大小。
单击“浏览全部内容” > “虚拟机(经典)” > 你的虚拟机 >“设置” > “大小”****************。 有关详细步骤,请参阅调整虚拟机的大小。 - 从云服务删除所有 VM,然后重新创建 VM。
单击“浏览全部内容” > “虚拟机(经典)”> 你的虚拟机 >“删除”************。 然后,单击“新建” > “计算”> [虚拟机映像]。
对 Azure Resource Manager 部署模型中的常见分配失败进行故障排除
这些步骤可帮助解决虚拟机中的许多分配失败:
停止(解除分配)同一可用性集中的所有 VM,然后重启每个 VM。
若要停止:单击“资源组”> 你的资源组 >“资源”> 你的可用性集 >“虚拟机”> 你的虚拟机 >“停止”****************。所有 VM 都停止后,选中第一个 VM 并单击“启动”。
背景信息
分配的工作原理
Azure 数据中心的服务器分区成群集。 通常会尝试向多个群集发出分配请求,但分配请求可能带有某些约束,从而强制 Azure 平台只尝试向一个群集发出请求。 在本文中,这种情况称为“固定到群集”。 下图 1 演示了在多个群集中尝试进行一般分配的情况。 图 2 演示了固定到群集 2(因为现有的云服务 CS_1 或可用性集托管于此处)的分配情况。 
发生分配失败的原因
当分配请求固定到某个群集时,由于可用的资源池较小,很可能找不到可用的资源。 此外,如果分配请求固定到某个群集,但该群集不支持你所请求的资源类型,那么,即使该群集有可用的资源,你的请求仍会失败。 下图 3 说明由于唯一候选群集没有可用的资源,导致已固定的分配失败的情况。 图 4 说明由于唯一候选群集不支持所请求的 VM 大小(虽然群集有可用的资源),导致已固定的分配失败的情况。

针对经典部署模型中的具体分配失败情况进行故障排除的步骤
以下是造成分配请求被固定的常见分配案例。 我们将在本文稍后深入探讨每一个案例。
- 重设 VM 大小或向现有云服务添加 VM 或角色实例
- 重启部分停止(已解除分配)的 VM
- 重启完全停止(已解除分配)的 VM
- 过渡/生产环境部署(仅适用于平台即服务)
- 地缘组(VM/服务邻近性)
- 基于地缘组的虚拟网络
发生分配错误时,请查看以下是否有任何案例符合你所处的情况。 使用 Azure 平台返回的分配错误来识别对应的案例。 如果你的请求已固定,请尝试删除一些固定约束,向更多群集展现你的请求,以增加分配成功的机会。
一般而言,只要错误不指示“不支持所请求的 VM 大小”,你永远都可以稍后再试,因为到时群集可能释放足够的资源来满足你的请求。 如果问题在于不支持所请求的 VM 大小,请尝试使用不同的 VM 大小。 否则,唯一的做法就是删除固定约束。
有两个常见的故障案例与地缘组有关。 在过去,地缘组用于支持 VM/服务实例的邻近性,或用于支持创建虚拟网络。 在引进区域虚拟网络之后,创建虚拟网络已不再需要地缘组。 由于 Azure 基础结构中的网络延迟时间缩短,原本建议使用地缘组来支持 VM/服务邻近性的情况已有所改变。
下图 5 显示(固定的)分配案例的分类。 
Note
每个分配案例中列出的错误均已缩略。 如需详细的错误字符串,请参阅错误字符串查找。
分配案例:重设 VM 大小或向现有云服务添加 VM 或角色实例
错误
Upgrade_VMSizeNotSupported 或 GeneralError
群集固定的原因
必须在托管现有云服务的原始群集上,尝试请求重设 VM 大小或向现有云服务添加 VM 或角色实例。 创建新的云服务可让 Azure 平台寻找另一个有可用资源的群集,或另一个支持你所请求的 VM 大小的群集。
解决方法
如果错误是 Upgrade_VMSizeNotSupported*,请尝试使用不同的 VM 大小。 如果使用不同的 VM 大小不可行,但可接受使用不同的虚拟 IP 地址 (VIP),则创建新的云服务来托管新的 VM,并将新的云服务添加到运行现有 VM 的区域虚拟网络中。 如果现有的云服务未使用区域虚拟网络,你仍然可以为新的云服务创建新的虚拟网络,然后 将现有虚拟网络连接到新的虚拟网络。 请参阅有关 区域虚拟网络的详细信息。
如果错误是 GeneralError*,很可能是因为群集虽然支持资源的类型(例如特定的 VM 大小),但群集目前没有可用的资源。 类似上述,通过创建新的云服务(请注意,新的云服务必须使用不同的 VIP)添加所需的计算资源,并使用区域虚拟网络连接云服务。
分配案例:重启部分停止(已解除分配)的 VM
错误
GeneralError*
群集固定的原因
部分解除分配表示已停止(解除分配)云服务中的一或多个 VM,但不是全部。 停止(解除分配)VM 时会释放相关联的资源。 因此,重启已停止(解除分配)的 VM 是一项新的分配请求。 重新启动已部分解除分配的云服务中的 VM 相当于向现有云服务添加 VM。 必须在托管现有云服务的原始群集上尝试发出分配请求。 创建不同的云服务可让 Azure 平台寻找另一个有可用资源的群集,或另一个支持你所请求的 VM 大小的群集。
解决方法
如果可接受使用不同的 VIP,请删除已停止(解除分配)的 VM(但保留相关联的磁盘),并通过不同的云服务加回 VM。 使用区域虚拟网络连接你的云服务:
- 如果现有的云服务使用区域虚拟网络,只要将新的云服务添加到相同的虚拟网络即可。
- 如果现有的云服务未使用区域虚拟网络,请为新的云服务创建新的虚拟网络,然后 将现有虚拟网络连接到新的虚拟网络。 请参阅有关 区域虚拟网络的详细信息。
分配案例:重启完全停止(已解除分配)的 VM
错误
GeneralError*
群集固定的原因
完全解除分配表示已从云服务停止(解除分配)所有 VM。 必须在托管云服务的原始群集上尝试发出分配请求来重新启动这些 VM。 创建新的云服务可让 Azure 平台寻找另一个有可用资源的群集,或另一个支持你所请求的 VM 大小的群集。
解决方法
如果可接受使用不同的 VIP,请删除已停止(解除分配)的原始 VM(但保留相关联的磁盘),并删除对应的云服务(停止(解除分配)VM 时就已释放相关联的计算资源)。 创建新的云服务来加回 VM。
分配案例:过渡/生产环境部署(仅适用于平台即服务)
错误
New_General* 或 New_VMSizeNotSupported*
群集固定的原因
云服务的过渡环境部署和生产环境部署托管于同一个群集中。 添加第二个部署时,将会在托管第一个部署的相同群集中尝试发出对应的分配请求。
解决方法
删除第一个部署和原始的云服务,然后重新部署云服务。 此操作可能将第一个部署安排到有足够可用资源可满足这两个部署的群集,或安排到支持所请求 VM 大小的群集。
分配案例:地缘组(VM/服务邻近性)
错误
New_General* 或 New_VMSizeNotSupported*
群集固定的原因
任何分配给地缘组的计算资源都绑定到一个群集。 该地缘组中新的计算资源请求将于托管现有资源的相同群集中尝试发出。 无论是通过新的云服务还是现有的云服务创建新资源,都是如此。
解决方法
如果不一定需要地缘组,请不要使用地缘组或尝试将计算资源分组为多个地缘组。
分配案例:基于地缘组的虚拟网络
错误
New_General* 或 New_VMSizeNotSupported*
群集固定的原因
在引入区域虚拟网络之前,必须先将虚拟网络与地缘组进行关联。 这样,便会根据上一部分“分配案例:地缘组(VM/服务邻近性)”中所述的相同约束,绑定已放入地缘组中的计算资源。 计算资源已绑定到一个群集。
解决方法
如果不需要地缘组,请为要添加的新资源创建新的区域虚拟网络,然后 将现有虚拟网络连接到新的虚拟网络。 请参阅有关 区域虚拟网络的详细信息。
此外,你也可以 将基于地缘组的虚拟网络迁移到区域虚拟网络,然后重新添加所需的资源。
针对 Azure Resource Manager 部署模型中的具体分配失败情况进行故障排除的步骤
以下是造成分配请求被固定的常见分配案例。 我们将在本文稍后深入探讨每一个案例。
- 重设 VM 大小或向现有云服务添加 VM 或角色实例
- 重启部分停止(已解除分配)的 VM
- 重启完全停止(已解除分配)的 VM
发生分配错误时,请查看以下是否有任何案例符合你所处的情况。 使用 Azure 平台返回的分配错误来识别对应的案例。 如果你的请求已固定到现有的群集,请删除一些固定约束,向更多群集展现你的请求,以增加分配成功的机会。
一般而言,只要错误不指示“不支持所请求的 VM 大小”,你永远都可以稍后再试,因为到时群集可能释放足够的资源来满足你的请求。 如果问题在于不支持所请求的 VM 大小,请参阅下面的解决方法。
分配案例:重设 VM 大小或向现有可用性集添加 VM
错误
Upgrade_VMSizeNotSupported* 或 GeneralError*
群集固定的原因
必须在托管现有可用性集的原始群集上,尝试请求重设 VM 大小或向现有可用性集添加 VM。 创建新的可用性集可让 Azure 平台寻找另一个有可用资源的群集,或另一个支持你所请求的 VM 大小的群集。
解决方法
如果错误是 Upgrade_VMSizeNotSupported*,请尝试使用不同的 VM 大小。 如果使用不同的 VM 大小不可行,请停止可用性集中的所有 VM。 然后,你可以更改虚拟机的大小,将 VM 分配到支持所需 VM 大小的群集。
如果错误是 GeneralError*,很可能是因为群集虽然支持资源的类型(例如特定的 VM 大小),但群集目前没有可用的资源。 如果 VM 可以属于不同的可用性集,请在(位于相同区域的)不同的可用性集中创建新的 VM。 然后,可以将这个新的 VM 添加到相同的虚拟网络中。
分配案例:重启部分停止(已解除分配)的 VM
错误
GeneralError*
群集固定的原因
部分解除分配表示已停止(解除分配)可用性集中的一或多个(但不是全部)VM。 停止(解除分配)VM 时会释放相关联的资源。 因此,重启已停止(解除分配)的 VM 是一项新的分配请求。 重新启动已部分解除分配的可用性集相当于向现有可用性集添加 VM。 必须在托管现有可用性集的原始群集上尝试发出分配请求。
解决方法
停止可用性集中的所有 VM,再重新启动第一个 VM。 这可确保运行新的分配尝试,而且可以选择有可用容量的新群集。
分配案例:重启完全停止(已解除分配)的 VM
错误
GeneralError*
群集固定的原因
完全解除分配表示已停止(解除分配)可用性集中的所有 VM。 发出分配请求来重新启动这些 VM 时,将会以支持所需大小的所有群集为目标。
解决方法
选择要分配的新 VM 大小。 如果这不起作用,请稍后重试。
错误字符串查找
New_VMSizeNotSupported*
“由于部署请求约束,无法预配此部署所需的 VM 大小(或 VM 大小的组合)。 可能的话,请尝试放宽约束(例如虚拟网络绑定)、部署到不具有其他部署的托管服务及不同的地缘组(或不具有地缘组的托管服务),或尝试部署到不同的区域。”
New_General*
“分配失败;无法满足请求中的约束。 请求的新服务部署绑定至地缘组,或以虚拟网络为目标,或此托管服务下已经有部署。 上述任一情况都会将新的部署局限于特定的 Azure 资源。 请稍后重试,或尝试减少 VM 大小或角色实例数目。 或者,可能的话,删除先前提到的约束,或尝试部署到不同的区域。”
Upgrade_VMSizeNotSupported*
“无法升级部署。 在支持现有部署的资源中,可能没有所请求的 VM 大小 XXX。 请稍后再试,尝试使用不同的 VM 大小或较少数量的角色实例,或在空的托管服务下通过创建新的地缘组或没有地缘组绑定来创建部署。”
GeneralError*
“服务器遇到内部错误。 请重试请求。” 或者“无法为服务生成分配。”立即访问http://market.azure.cn
排查在 Azure 中创建、重启 Windows VM 或调整其大小时发生的分配失败的更多相关文章
- 排查在 Azure 中创建、重启 Linux VM 或调整其大小时发生的分配故障
创建 VM.重启已停止(解除分配)的 VM 和重设 VM 大小时,Azure 会为订阅分配计算资源. 执行这些操作时,即使尚未达到 Azure 订阅限制,也可能偶尔收到错误. 本文说明一些常见分配故障 ...
- 排查在 Azure 中创建新 Linux 虚拟机时遇到的 Resource Manager 部署问题
本文内容 常见问题 收集活动日志 问题:自定义映像:预配错误 问题:自定义/库/应用商店映像:分配失败 后续步骤 尝试创建新的 Azure 虚拟机 (VM) 时,遇到的常见错误是预配失败或分配失败. ...
- 排查在 Azure 中新建 Windows VM 时遇到的部署问题
尝试创建新的 Azure 虚拟机 (VM) 时,遇到的常见错误是预配失败或分配失败. 当由于准备步骤不当,或者在从门户捕获映像期间选择了错误的设置而导致 OS 映像无法加载时,将发生预配失败. 当群集 ...
- 排查在 Azure 中新建 Windows 虚拟机时遇到的经典部署问题
尝试创建新的 Azure 虚拟机 (VM) 时,遇到的常见错误是预配失败或分配失败. 当由于准备步骤不当,或者在从门户捕获映像期间选择了错误的设置而导致 OS 映像无法加载时,将发生预配失败. 当群集 ...
- 如何使用 Packer 在 Azure 中创建 Windows 虚拟机映像
Azure 中的每个虚拟机 (VM) 都是基于定义 Windows 分发和操作系统版本的映像创建的. 映像可以包括预安装的应用程序和配置. Azure 应用商店为最常见的操作系统和应用程序环境提供了许 ...
- 上传通用化 VHD 并使用它在 Azure 中创建新 VM
本主题逐步讲解如何使用 PowerShell 将通用化 VM 的 VHD 上传到 Azure.从该 VHD 创建映像,然后从该映像创建新 VM. 可以上传从本地虚拟化工具或其他云导出的 VHD. 对新 ...
- 如何在 Azure 中的经典 Windows 虚拟机上设置终结点
在 Azure 中使用经典部署模型创建的所有 Windows 虚拟机都可以通过专用网络通道与同一云服务或虚拟网络中的其他虚拟机自动通信. 但是,Internet 或其他虚拟网络中的计算机需要终结点将入 ...
- 在Ubuntu中创建与Windows的共享文件夹
在Ubuntu中创建与Windows的共享文件夹 本周的学习需要用到一个压缩包,我从QQ群里下载到了Windows里.虽说我已经安装了虚拟机增强功能,能够与Windows系统共享剪切板,但它也只能共享 ...
- 在 Azure 中创建通用 VM 的托管映像
可以从在存储帐户中存储为托管磁盘或非托管磁盘的通用 VM 中创建托管映像资源. 然后可以使用该映像创建多个 VM. 使用 Sysprep 通用化 Windows VM Sysprep 将删除所有个人帐 ...
随机推荐
- (转)DB2高可用性灾难恢复
DB2 HADR概述 原文:https://www.ibm.com/developerworks/cn/data/library/techarticles/dm-0508luojunkai/
- redux在componentDidMount中出现的问题 --- state 不变
遇到这样一个问题: 在组件的componentDidMount中,我需要使用到redux中存储的某个状态. 但是有趣的是,当我再render中使用相同的状态时,状态会改变,但是在conponentDi ...
- C#中复制数组
string array = new string[]{"abc", "bcd", "efg"}; string bArray = new ...
- subset II
Subsets II Given a collection of integers that might contain duplicates, nums, return all possible s ...
- [CPP] Big Three
前言 上一篇攻略中,我们已经充分理解了不带指针的类的设计原则,并且还从标准库设计大师的作品里收获了不少功力.而这一篇攻略,将继续完成基于对象的类的关卡,解决这一关的最后一个问题,那就是带指针的类.在这 ...
- 每天一道剑指offer-二叉树的下一个结点
题目 每天一道剑指offer-二叉树的下一个结点 https://www.nowcoder.com/practice/ef068f602dde4d28aab2b210e859150a?tpId=13& ...
- Jquery Ajax 复杂json对象提交到WebService
在ajax的已不请求中,常常返回json对象.可以利用json.net给我们提供的api达到快速开发. 例子: using System;using System.Collections;using ...
- spring mongodb增删改查操作
添加数据 School @Id @GeneratedValue private long id; @Indexed(unique = true) private String name; studen ...
- Hadoop源码学习笔记(2) ——进入main函数打印包信息
Hadoop源码学习笔记(2) ——进入main函数打印包信息 找到了main函数,也建立了快速启动的方法,然后我们就进去看一看. 进入NameNode和DataNode的主函数后,发现形式差不多: ...
- [PHP] apache在worker模式配置fastcgi使用php-fpm
1.准备: dpkg -L apache2查看所有安装的apache2的应用 a2query -M查看apache2使用的模式 httpd -l旧版本查看当前apache模式 2.查看apache的进 ...