排查 Arm 虚拟机问题


本文档列出了在创建或更新 Arm 虚拟机时可能会出现的错误。

创建虚拟机时出错

如果您无法创建 Arm 虚拟机 (VM) 实例,原因可能是排查有关创建和更新虚拟机的问题中介绍的一些常见问题,例如:

  • 配额不足
  • 同时创建多个资源时的 not ready 错误
  • 资源可用性问题
  • 可用区可用性问题
  • 权限不足
  • 资源名称
  • 违反了限制条件
  • 必需的 CPU 平台

Arm 虚拟机实例无法启动

您尝试创建 Arm 虚拟机,但它未进入“已启动”状态。最常见的问题是为 Arm 虚拟机使用了不兼容的机器类型或操作系统映像。

另一个可能的原因是使用 x86 虚拟机的启动磁盘创建 Arm 虚拟机。启动磁盘的架构必须与虚拟机的架构相匹配。Compute Engine 会检查启动磁盘架构是否与虚拟机架构匹配,但这种验证可能对自定义映像无效。

错误消息

使用 x86 架构的启动磁盘创建 Arm 虚拟机会导致启动过程早期发生故障,主要表现是无法使用 ssh 访问虚拟机。由于虚拟机无法运行,因此验证问题的唯一方法是通过串行控制台日志,该日志应如下所示并且会无限重复:

BdsDxe: failed to load Boot0001 "UEFI nvme_card-pd" from PciRoot(0x0)/Pci(0x2,
0x0)/NVMe(0x1,00-00-00-00-00-00-00-00): Not Found
EMU Variable FVB Started
EMU Variable invalid PCD sizes
Found PL031 RTC @ 0x9010000
InitializeRealTimeClock: using default timezone/daylight settings
[2J[01;01H[=3h[2J[01;01H
UEFI: Failed to load image.
Description: UEFI nvme_card-pd
FilePath: PciRoot(0x0)/Pci(0x2,0x0)/NVMe(0x1,00-00-00-00-00-00-00-00)
OptionNumber: 1.
Status: Not Found.

解决方法

确保虚拟机在与 Arm 兼容的机器类型和操作系统映像上运行。不要使用 x86 虚拟机中的启动磁盘来创建虚拟机。重新创建 Arm 虚拟机。

如需了解可用的 Arm 映像,请参阅操作系统详细信息

实例启动循环

虚拟机在启动阶段循环。导致此问题的常见原因包括:

  • 您的 Arm 虚拟机使用的是包含 x86 操作系统的启动磁盘。
  • 您的组织政策要求所有新的 Compute Engine 虚拟机使用启用了安全启动的安全强化型磁盘映像,或者您使用 --shielded-secure-boot 选项创建了虚拟机。

解决方法

如果您使用错误的操作系统映像为虚拟机创建了启动磁盘,请使用 Arm 操作系统映像重新创建 Arm 虚拟机。如需了解可用的 Arm 操作系统映像,请参阅操作系统详细信息

如果虚拟机使用的是 Arm 操作系统映像,则该操作系统映像可能不支持安全启动。如果您在 Arm 虚拟机中遇到此问题,请修改虚拟机以设置 --no-shielded-secure-boot 选项。如需了解如何设置此选项,请参阅修改安全强化型虚拟机

更新虚拟机时出错

如果您无法更新虚拟机,可能是因为出现以下问题所导致的。

更改机器类型时出错

当您尝试更改虚拟机的机器类型时,可能会出现以下错误:

ERROR: (gcloud.compute.instances.set-machine-type) Could not fetch resource:
 - Invalid resource usage: 'Requested boot disk architecture (X86_64) is not
 compatible with machine type architecture (ARM64).'

解决方法

  • 确保您的虚拟机支持新机器类型的处理器。x86 虚拟机必须具有与 x86 兼容的 CPU,就像 Arm 虚拟机必须具有与 Arm 兼容的 CPU 一样。如需详细了解不同机器类型支持的处理器,请参阅机器系列比较页面。

  • 尝试使用 Google Cloud CLI 更改机器类型

x86 到 Arm 存储类型错误

如果从 x86 机器类型切换到 Arm C4A 或 T2A 机器类型,您可能会收到“INVALID_RESOURCE_USAGE”错误,表明您的磁盘类型与 Arm 机器类型不兼容。

  • 如果错误发生在启动磁盘上,请使用兼容的 Arm 操作系统和磁盘类型创建新的 C4A 或 T2A 虚拟机。

  • 如果您针对已挂接到 x86 虚拟机的永久性磁盘收到此错误,可以创建该磁盘的快照,然后使用该快照创建 Hyperdisk Balanced 磁盘。然后,您可以将 Hyperdisk Balanced 挂接到 C4A 虚拟机。

如需详细了解如何为永久性磁盘启动和磁盘数据创建快照,请参阅将工作负载迁移到新的计算实例

示例

Editing VM instance "t2a-vm" failed. Error: [pd-balanced, c4a-standard-1]
features are not compatible for creating instance.

在此示例中,您无法将 t2a-standard-1 Arm 虚拟机的机器类型更改为 c4a-standard-1 Arm 虚拟机,因为 C4A 仅支持将 Hyperdisk Balanced 用作启动磁盘,而 T2A 仅使用 Persistent Disk。您无法更改 T2A 虚拟机的机器类型。如需解决此错误,请按照迁移到 Arm 虚拟机中的步骤操作。

后续步骤