排查在 Azure 中创建、重启 Linux VM 或调整其大小时发生的分配故障
创建 VM、重启已停止(解除分配)的 VM 和重设 VM 大小时,Azure 会为订阅分配计算资源。 执行这些操作时,即使尚未达到 Azure 订阅限制,也可能偶尔收到错误。 本文说明一些常见分配故障的原因,并建议可能的补救方法。 计划服务的部署时,本信息可能也有用。 还可以用于排查在 Azure 中创建、重启 Windows 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*
“服务器遇到内部错误。 请重试请求。” 或者“无法为服务生成分配。”
排查在 Azure 中创建、重启 Linux VM 或调整其大小时发生的分配故障的更多相关文章
- 排查在 Azure 中创建、重启 Windows VM 或调整其大小时发生的分配失败
创建 VM.重新启动已停止(解除分配)的 VM 和重设 VM 大小时,Azure 会为订阅分配计算资源. 执行这些操作时,即使尚未达到 Azure 订阅限制,也可能偶尔收到错误. 本文说明一些常见分配 ...
- 排查在 Azure 中创建新 Linux 虚拟机时遇到的 Resource Manager 部署问题
本文内容 常见问题 收集活动日志 问题:自定义映像:预配错误 问题:自定义/库/应用商店映像:分配失败 后续步骤 尝试创建新的 Azure 虚拟机 (VM) 时,遇到的常见错误是预配失败或分配失败. ...
- 排查在 Azure 中新建 Windows VM 时遇到的部署问题
尝试创建新的 Azure 虚拟机 (VM) 时,遇到的常见错误是预配失败或分配失败. 当由于准备步骤不当,或者在从门户捕获映像期间选择了错误的设置而导致 OS 映像无法加载时,将发生预配失败. 当群集 ...
- 排查在 Azure 中新建 Windows 虚拟机时遇到的经典部署问题
尝试创建新的 Azure 虚拟机 (VM) 时,遇到的常见错误是预配失败或分配失败. 当由于准备步骤不当,或者在从门户捕获映像期间选择了错误的设置而导致 OS 映像无法加载时,将发生预配失败. 当群集 ...
- 对连接到 Azure 中 Linux VM 时出现的问题进行详细的 SSH 故障排除的步骤
有许多可能的原因会导致 SSH 客户端无法访问 VM 上的 SSH 服务. 如果已经执行了较常规的 SSH 故障排除步骤,则需要进一步排查连接问题. 本文指导用户完成详细的故障排除步骤,以确定 SSH ...
- 上传通用化 VHD 并使用它在 Azure 中创建新 VM
本主题逐步讲解如何使用 PowerShell 将通用化 VM 的 VHD 上传到 Azure.从该 VHD 创建映像,然后从该映像创建新 VM. 可以上传从本地虚拟化工具或其他云导出的 VHD. 对新 ...
- 如何使用 Packer 在 Azure 中创建 Windows 虚拟机映像
Azure 中的每个虚拟机 (VM) 都是基于定义 Windows 分发和操作系统版本的映像创建的. 映像可以包括预安装的应用程序和配置. Azure 应用商店为最常见的操作系统和应用程序环境提供了许 ...
- 在 Azure 中创建通用 VM 的托管映像
可以从在存储帐户中存储为托管磁盘或非托管磁盘的通用 VM 中创建托管映像资源. 然后可以使用该映像创建多个 VM. 使用 Sysprep 通用化 Windows VM Sysprep 将删除所有个人帐 ...
- 【Azure 存储服务】如何把开启NFS 3.0协议的Azure Blob挂载在Linux VM中呢?(NFS: Network File System 网络文件系统)
问题描述 如何把开启NFS协议的Azure Blob挂载到Linux虚拟机中呢? [答案]:可以使用 NFS 3.0 协议从基于 Linux 的 Azure 虚拟机 (VM) 或在本地运行的 Linu ...
随机推荐
- js从后台取值并绑定到元素上
用ajax从后台取值不是什么有技术含量的活计,把后台取来的值绑定到Vue对象上也不算难,但每一次向后台拿数据的时候都得写上这么一段代码就十分痛苦了. 于是我写了这么一小段js代码,能够自己根据url去 ...
- java程序没有运行选项
1.检查module是否正确 确保src为资源文件 2.检查是否有main函数
- EXTJS文档地址
文档地址:http://docs.sencha.com/extjs/4.2.3/#!/api/Ext.form.field.Field-event-change
- TreeSet和TreeMap不能存放重复元素?能不能存放null?
问题一:本来认为TreeMap不能存放重复元素?其实并非如此: 其实一般情况下是不允许存放重复元素的,但是它并非这么死板,在一些情况下是可以存放重复元素的,存了又会有引入其他问题. 问题二:能不能存放 ...
- es第四篇:Query DSL
Query and filter context Match All Query 最简单的search请求,匹配所有文档,文档的_score值都是1,示例: get twitter/_search{ ...
- 说说移动端web开发中的点击穿透问题
最近一直在忙于一个无线端的项目,由于之前主要工作都是在桌面端,移动端接触的比较少,所以中间遇到了很多的坑,做一个简单的记录. 问题背景 需求中有这样的一个功能,点击取件信息的时候会弹出一个地址列表的浮 ...
- JS原型与原型链(好文看三遍)
一. 普通对象与函数对象 JavaScript 中,万物皆对象!但对象也是有区别的.分为普通对象和函数对象,Object ,Function 是JS自带的函数对象. 下面举例说明: function ...
- Ubuntu 下常用的命令 简略记录
# 动态显示 NVIDIA watch -n 1 nvidia-smi #查看某一目录下文件的总数(不包含子目录) ls -l | wc -l #挂载硬盘或者U盘 mount /dev/sdb1 /m ...
- 关于80286——《x86汇编语言:从实模式到保护模式》读书笔记15
一.80286的工作模式 80286首次提出了实模式和保护模式的概念. 实模式:和8086的工作方式相同: 保护模式:提供了存储器管理机制和保护机制,支持多任务. 二.80286的寄存器 (一)通用寄 ...
- nginx内网代理为外网地址
#user nobody; worker_processes 1; #error_log logs/error.log; #error_log logs/error.log notice; #erro ...