排查创建、更新和删除虚拟机的问题


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

创建虚拟机时出错

如果您无法创建虚拟机实例,则可能是本部分中所述的某个问题所导致的。

配额不足

当资源请求超出配额时,会发生配额错误。

错误消息

RESOURCE_NAME creation failed:
Quota QUOTA_NAME exceeded. Limit: QUOTA_LIMIT in region REGION
RESOURCE_NAME creation failed:
Quota QUOTA_NAME exceeded. Limit: QUOTA_LIMIT in zone ZONE
Resource exhausted (HTTP 429): QUOTA_EXCEEDED

解决方法:申请更高的配额限制。如需了解详情,请参阅申请增加配额

同时进行多项资源更改或创建操作

如果您一次更新多个资源(例如,修改子网中的次要范围并同时创建虚拟机),则可能会看到 not ready 错误。

错误消息

The resource 'projects/PROJECT/regions/REGION/subnetworks/default' is not ready

解决方法:如需解决此问题,请尝试以下方法:

资源可用性

以下是您在请求新的 Compute Engine 资源或创建新的预留时可能会遇到的常见资源错误示例:

ZONE_RESOURCE_POOL_EXHAUSTED
ZONE_RESOURCE_POOL_EXHAUSTED_WITH_DETAILS
The zone 'projects/PROJECT_ID/zones/ZONE' does not have enough resources available to fulfill the request.
Try a different zone, or try again later.
A VM_TYPE_AND_SIZE VM instance with RESOURCE_ATTACHMENT is currently unavailable in the ZONE zone.

Capacity changes frequently, so try your request in a different zone, with a different VM hardware
configuration, or at a later time. For more options, see troubleshooting documentation.
A VM_TYPE_AND_SIZE VM instance with RESOURCE_ATTACHMENT is currently unavailable in the ZONE zone, because of  REASON.

Consider trying your request in the ZONE zone(s), which currently has capacity to accommodate your request.

If you cannot move your VM to ZONE, review the REASON failure resolution instructions available in troubleshooting documentation, then try your request again.
If your workload can't accommodate the suggested resolution, try your request with a different VM hardware configuration or at a later time.

如需了解如何解决资源错误,请参阅排查资源可用性错误

可用区可用性

如果您在请求新资源时收到 notFounddoes not exist in zone 错误,则表示您请求资源的可用区不提供您请求的资源或机器类型。

错误消息

notFound

does not exist in zone

解决方法:如需了解每个可用区中可用的功能,请参阅区域和可用区

速率超过资源类型限制

如果您在十分钟内通过快照创建多个磁盘或虚拟机,则会发生以下错误。

错误消息

"code": "RESOURCE_OPERATION_RATE_EXCEEDED",
"message": "Operation rate exceeded for resource 'projects/project-id/zones/zone-id/disks/disk-name'. Too frequent operations from the source resource."

解决方法

如需通过快照创建多个磁盘,请使用快照创建映像,然后通过该映像创建磁盘:

  1. 通过快照创建映像
  2. 通过映像创建磁盘

对于非启动磁盘,请按照说明通过映像创建永久性磁盘,并执行以下步骤:

  • 在 Google Cloud 控制台中,选择映像作为磁盘来源类型
  • 如果使用 gcloud CLI,请使用 image 标志
  • 如果使用 REST,请使用 sourceImage 参数

如需详细了解如何备份和复制永久性磁盘数据,请参阅数据保护选项

权限不足

如果您在尝试创建虚拟机时收到 permission 错误,则表示您没有创建虚拟机所需的 IAM 权限。

错误消息

Error: googleapi: Error 403: Google Compute Engine: Required 'compute.regions.get' permission for 'projects/PROJECT_ID/regions/REGION'., forbidden

解决方法:请您的组织管理员授予您创建虚拟机的权限。如需了解详情,请参阅授予对 Compute Engine 资源的访问权限

资源名称

如果在尝试创建资源时收到 resource already exists 错误,则表示您为指定位置和项目的资源指定了非唯一名称,导致创建请求失败。

错误消息

The resource 'projects/PROJECT_NAME/zones/ZONE/RESOURCE_TYPE/RESOURCE_NAME' already exists"

The resource 'projects/PROJECT_NAME/regions/REGION/RESOURCE_TYPE/RESOURCE_NAME' already exists"

解决方法:使用唯一的资源名称重试创建请求。

网络接口

如果您在创建虚拟机时收到 Too many network interfaces 错误,则表示您的请求超出了该虚拟机的机器类型的网络接口限制。

错误消息

Invalid value for field 'resource': ".

Too many network interfaces. The maximum number of network interfaces allowed for this machine type is NUMBER.
Invalid value for field 'resource.networkInterfaces': ".

Too many network interfaces. The maximum number of network interfaces allowed for this machine type is NUMBER.

解决方法:如需了解如何为不同的机器类型计算网络接口数上限,请参阅网络接口数上限

违反了限制条件

如果您在创建虚拟机时收到 Constraint violated 错误,则表示您的请求违反了一个或多个组织政策限制条件

错误消息

例如,如果您的组织限制共享 VPC 子网,则可能会收到以下错误:

Constraint constraints/compute.CONSTRAINT violated for projects/PROJECT_ID.
Using the PARAMETER projects/PROJECT_ID/regions/REGION/CONSTRAINTPROJECT_ID is not allowed.

解决方法:与您的组织管理员联系。

必需的 CPU 平台

如果您收到 required CPU platform 错误,则表示指定机器类型不支持您在创建请求中指定的 CPU 平台。

错误消息

Could not fetch resource:
- The selected machine type (MACHINE_TYPE) has a required CPU platform of REQUIRED_CPU_PLATFORM.
The minimum CPU platform must match this, but was SPECIFIED_CPU_PLATFORM.

解决方法

  1. 如需了解您的机器类型支持的 CPU 平台,请参阅 CPU 平台
  2. 使用受支持的 CPU 平台重试您的请求。

创建失败

在尝试创建虚拟机时可能会出现以下错误:

Instance 'Instance-name' creation failed: Internal error. Please try again or contact Google Support.
(Code: NUMERIC_CODE)

此错误可能是由多种原因造成的。以下是导致此错误的常见原因:

预留属性不匹配

如果您在创建虚拟机时收到 No available resources in specified reservations 错误,则说明虚拟机的属性与虚拟机要使用的特定预留不匹配。

错误消息

Invalid value for field 'resource.reservationAffinity':
- No available resources in specified reservations [RESERVATION_NAME].

解决方法:尝试以下方法之一:

  • 如果虚拟机与预留的属性不匹配,请修改虚拟机,直到其属性与预留的属性匹配。然后,再次尝试创建虚拟机。

  • 如果虚拟机具有正确的属性,但与预留的属性不匹配,您无法更改预留。请改为采用以下方法之一:

    • 创建虚拟机时,指定其他特定预留。

      如果您还没有具有正确属性的特定新预留,则应创建一个。如果您不再需要以前的特定预留,可以删除预留,以免继续为这些预留资源付费。

    • 创建虚拟机时,指定任何匹配的预留。

      如果有一个配置为自动使用的预留具有与虚拟机匹配的属性,则新虚拟机将使用该预留。否则,虚拟机仍会创建,但不会使用任何预留资源。

    如需了解详情,请参阅测试虚拟机属性是否与预留匹配

服务账号访问遭拒

使用服务账号创建虚拟机时,Cloud Audit Logs 中可能会出现以下错误:

错误消息

SERVICE_ACCOUNT_ACCESS_DENIED

解决方法:如果用于创建虚拟机的服务账号不具有用于访问新虚拟机的服务账号的 Identity and Access Management 角色,则会显示此错误。

roles/iam.serviceAccountUser 角色授予正在创建虚拟机的服务账号。您可以在项目级层授予此角色,这将为创建虚拟机的服务账号提供对项目中创建的所有服务账号的访问权限,您也可以仅针对新虚拟机的服务账号授予此角色。

未知错误

在尝试创建虚拟机时可能会出现以下错误:

Request failed with unknown error

此错误可能是由多种原因造成的。以下是导致此错误的常见原因:

免费试用

如果您尝试在 Google Cloud 免费试用期间创建 Windows 虚拟机,则会收到错误。

错误消息

Windows VM instances are not included with free trial. To use them first enable billing on your account.

解决方法:免费试用版不包含 Windows Server 映像。升级为付费 Cloud Billing 账号

虚拟机无法启动

如果使用启动脚本的 Linux 虚拟机在创建后无法启动,则可能是因与元数据服务器之间的连接问题导致的。

由于一个暂时性的网络问题,此问题可能持续长达七分钟,但会自行解决。如果问题在七分钟后无法自行解决,请重新创建虚拟机。

更新虚拟机时出错

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

更改机器类型时出错

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

Invalid value for field 'resource.sourceMachineImage': Updating 'sourceMachineImage' is not supported

解决方法

  • 确保您的虚拟机支持新机器类型的处理器。如需详细了解不同机器类型支持的处理器,请参阅机器系列比较

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

删除虚拟机时出错

本部分介绍了您在尝试删除虚拟机时可能会遇到的错误。

在挂接的磁盘具有即时快照时删除虚拟机出错

如果虚拟机的任何磁盘具有即时快照,则当您尝试删除虚拟机及其挂接的磁盘时,可能会出现以下错误。

  • Invalid resource usage: 'Auto delete disk with existing instant snapshot cannot be deleted.'.
    
  • ERROR: (gcloud.compute.disks.delete) Could not fetch resource:
    The disk resource 'projects/<PROJECT_NAME/zones/<ZONE>/disks/<DISK_NAME>' is already being used by
    'projects/<PROJECT_NAME>/zones/<ZONE>/instantSnapshots/<INSTANT_SNAPSHOT_NAME>'
    

解决方法

如需解决此问题,请选择以下选项之一: