排查在 Azure 中新建 Linux 虚拟机时遇到的经典部署问题

尝试创建新的 Azure 虚拟机 (VM) 时,遇到的常见错误是预配失败或分配失败。

  • 当由于准备步骤不当,或者在从门户捕获映像期间选择了错误的设置而导致 OS 映像无法加载时,将发生预配失败。
  • 当群集或区域没有可用的资源或无法支持所请求的 VM 大小时,将发生分配失败。

Important

Azure 提供两个不同的部署模型用于创建和处理资源:Resource Manager 和经典模型。 本文介绍如何使用经典部署模型。 Azure 建议大多数新部署使用 Resource Manager 模型。 有关本文中的 Resource Manager 版本,请参阅此处

如果本文未解决你的 Azure 问题,请访问 MSDN 和 CSDN 上的 Azure 论坛。 可以在这些论坛上发布问题。 还可提交 Azure 支持请求。 若要提交支持请求,请在 Azure 支持页上提交。

收集审核日志

若要开始故障排除,请收集审核日志,以识别与问题相关的错误。

在 Azure 门户中,单击“浏览” > “虚拟机” > “你的 Windows 虚拟机” > “设置” > “审核日志”。

问题:自定义映像;预配错误

当你上传或捕获用作专用 VM 映像的通用化 VM 映像时,将发生预配错误,反之亦然。 前者会导致预配超时错误,后者会导致预配失败。 若要部署自定义映像且不出错,必须确保在捕获过程中映像类型不会更改。

下表列出了通用化和专用映像的可能组合、你会遇到的错误类型,以及需要执行哪些操作来解决错误。

下表列出了可能的 Linux 通用和专用 OS 映像的上传与捕获组合。 使用 Y 表示处理不会有任何错误的组合,使用 N 表示会出现错误的组合。下表提供了有关各种错误的原因和解决方法。

操作系统 上传专用 OS 映像 上传通用 OS 映像 捕获专用 OS 映像 捕获通用 OS 映像
Linux 通用 N1 Y N3 Y
Linux 专用 Y N2 Y N4

Y: 如果 OS 是通用的 Linux,并且是使用通用设置上传和/或捕获的,则不会有任何错误。 同理,如果 OS 是专用的 Linux,并且是使用专用设置上传和/或捕获的,也不会有任何错误。

上传错误:

N1如果 OS 是通用的 Linux,但是以专用设置上传的,则会发生预配超时错误,并且 VM 会卡在预配阶段。

N2如果 OS 是专用的 Linux,但是以通用设置上传的,则会发生预配失败错误,因为新 VM 是以原始计算机名称、用户名和密码运行的。

解决方法:

若要解决这两个错误,请上传原始 VHD、可用的本地设置、以及与该 OS(通用/专用)相同的设置。 若要以通用设置上传,请记得先运行 -deprovision。 有关详细信息,请参阅 Create and Upload a Virtual Hard Disk that Contains the Linux Operating System(创建并上传包含 Linux 操作系统的虚拟硬盘)。

捕获错误:

N3如果 OS 是通用的 Linux,但是以专用设置捕获的,则会发生预配超时错误,因为标记为通用的原始 VM 不可用。

N4如果 OS 是专用的 Linux,但是以通用设置捕获的,则会发生预配失败错误,因为新 VM 是以原始计算机名称、用户名和密码运行的。 此外,标记为专用的原始 VM 不可用。

解决方法:

若要解决这两个错误,请从门户中删除当前映像,并从当前 VHD 重新捕获映像,其设置与 OS 的设置相同(通用/专用)。

当新的 VM 请求被发送到没有可用空间可处理请求、或不支持所请求的 VM 大小的群集,便发生此错误。 在相同的云服务中不可混合不同系列的 VM。 因此,如果想要创建和云服务可支持大小不同的新 VM,计算请求将失败。

可能遇到因两种情况造成的错误,取决于用于创建新 VM 的云服务的条件约束。

原因 1: 云服务已固定到特定群集,或者链接到地缘组,因而固定到所设计的特定群集。 因此,该地缘组中新的计算资源请求将于托管现有资源的相同群集中尝试发出。 但是,同一群集可能不支持请求的 VM 大小,或者可用空间不足,导致分配错误。 无论是通过新的云服务还是现有的云服务创建新资源,都是如此。

解决方法 1:

  • 创建新的云服务,并将它与区域或基于区域的虚拟网络关联。
  • 在新的云服务中创建新 VM。 如果在尝试创建新的云服务时收到错误,请稍后再试一次,或更改云服务的区域。

Important

如果尝试在现有的云服务中创建新的 VM,但无法创建,而又必须为新的 VM 创建新的云服务,则可以选择合并相同云服务中的所有 VM。 为此,请删除现有云服务中的 VM,并从它们位于新云服务中的磁盘重新撷取它们。 然而,请务必记住,新的云服务有新的名称和 VIP,因此需要为所有目前将此信息用于现有云服务的依赖项更新该信息。

原因 2: 云服务已经与链接到地缘组的虚拟网络关联,因而固定到所设计的特定群集。 该地缘组中的所有新计算资源请求将于托管现有资源的相同群集中尝试发出。 但是,同一群集可能不支持请求的 VM 大小,或者可用空间不足,导致分配错误。 无论是通过新的云服务还是现有的云服务创建新资源,都是如此。

解决方法 2:

后续步骤

如果你在 Azure 中启动已停止的 Linux VM 或调整现有 Linux VM 的大小时遇到问题,请参阅排查在 Azure 中重新启动现有 Linux 虚拟机或调整其大小时遇到的经典部署问题