预留创建问题排查


本页面介绍了如何解决创建 Compute Engine 可用区级资源的预留存在的问题。

除了本页面上的错误之外,创建预留还可能会因创建 Compute Engine 资源时发生的问题而失败。如果本页面中未列出您的问题,您可以通过执行以下操作找到错误:创建具有您要预留的资源的虚拟机,并查看排查虚拟机创建问题页面。

预留创建错误

如果您无法创建预留,则可能是本部分中的某个错误造成的。如果您无法创建共享预留,另请参阅共享预留创建错误

配额不足

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

错误消息

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

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

资源可用性

如需创建预留,您在预留中指定的所有资源都必须在指定资源中可用,才能预留这些资源。

以下是您在请求新的 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

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

资源名称

如果在尝试创建资源时收到 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"

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

超出虚拟机数上限

如果您尝试为超过 1000 个虚拟机创建预留,则会发生以下错误。

错误消息

Invalid value for field 'resource.specificReservation.count': VM_COUNT. Must be less than or equal to 1000
其中,VM_COUNT 是预留中的虚拟机的数量。

解决方法:使用与此预留相同的可用区、项目和虚拟机属性创建多个预留,但要将为每个预留预留的虚拟机数量减少到最多 1000 个。

共享预留创建错误

如果您无法创建共享预留,则可能是由于本部分或预留创建错误中的某个错误所导致的。

没有组织的项目

如果您尝试在不属于组织的项目中创建共享预留,则会发生以下错误。

错误消息

Cannot create Shared Reservations in a project that does not belong to an organization.

解决方法:执行以下操作之一:

违反限制条件

如果共享预留所有者项目 (compute.sharedReservationsOwnerProjects) 组织政策限制条件不允许项目创建和修改共享预留,则会发生以下错误。

错误消息

Constraint constraints/compute.sharedReservationsOwnerProjects violated for project projects/PROJECT_NUMBER
Shared reservation can not be created in this project for your organization.

解决方法:执行以下操作之一:

使用方项目无效

本部分介绍了为共享预留指定无效使用方项目时发生的错误。

在此组织中找不到项目

如果您在与当前使用的项目相同的组织中找不到指定的使用方项目,则会发生以下错误。

错误消息

Project PROJECT_ID doesn't exist or doesn't belong to the same organization of the current project.

其中,PROJECT_ID 是您指定为使用方项目的 ID。

解决方法:执行以下操作:

  1. 查看组织中的所有项目,以验证此组织中是否存在指定的使用方项目。
  2. 查看项目以验证已正确指定了其项目 ID PROJECT_ID

指定为使用方项目的所有者项目

如果您尝试将共享预留的所有者项目(用于创建共享预留的项目)指定为使用方项目,则会发生以下错误。

错误消息

Project PROJECT_ID which is the owner project of this reservation is always included in the share projects, please do not add it.

解决方法:从使用方项目列表中移除所有者项目。共享预留始终可供所有者项目中的虚拟机使用,因此您无法将其包含在使用方项目列表中。

不包含使用方项目

如果共享预留不包含使用方项目,则会发生以下错误:

错误消息

Have to share with at least 1 project.

解决方法:执行以下操作之一:

超出使用方项目数上限

如果共享预留包含的使用方项目超过 100 个,则发生以下错误:

错误消息

Can only share with at most 100 projects.

解决方法:执行以下操作:

  1. 将共享预留的使用方项目数量减少到最多 100 个。
  2. 如果您仍需要为任何省略的项目预留容量,请另外创建一个与这些项目共享的共享预留

超出共享预留数上限

如果您的组织已有 100 个具有相同虚拟机属性的共享预留,则会发生以下错误。

错误消息

Cannot support more than 100 shared reservations of the same shape under an organization.

解决方法:遵循最大限度地减少具有相同虚拟机属性的不同共享预留的数量的最佳做法,具体操作如下:

实例模板预留创建错误

如果未能通过指定实例模板创建预留,则可能是由于本部分中的某个错误造成的。

不允许跨项目引用

如果您尝试通过指定其他项目中的实例模板来创建预留,则会发生以下错误。

错误消息

Cross project referencing is not allowed for this resource.

解决方法:执行以下操作:

  1. 确保您在预留中指定的项目 ID 和实例模板的名称正确无误。如需检查实例模板是否存在,请获取有关模板的信息列出模板

  2. 实例模板包含特定于项目的设置,因此您只能在同一项目中访问和使用实例模板。请改为执行以下操作之一:

    • 如需通过指定实例模板来创建预留,请执行以下操作:

      1. 在您的项目中创建一个新的实例模板

      2. 创建单项目共享预留时,指定新创建的实例模板。

    • 如需创建预留,而不指定实例模板,请直接指定虚拟机属性来创建单项目预留共享预留

找不到实例模板

如果您尝试通过指定不存在的实例模板来创建预留,则会发生以下错误。

错误消息

Source resource reference provided invalid.

解决方法:检查您指定的实例模板的名称是否正确。然后 - 在您列出实例模板以检查您的模板不存在并且仅当您的项目没有您要使用的其他模板时 - 您可以创建一个新的实例模板

实例模板的可用区无效

如果您尝试通过指定实例模板创建预留,并为实例模板指定无效位置,则会发生以下错误。

错误消息

Reservation cannot be created outside the zone/region of source resource.

解决方法:执行以下操作之一:

  • 请务必在实例模板中的资源所在的区域和可用区中创建预留。在实例模板中指定的任何区域级资源可用区级资源(例如机器类型或磁盘)会将模板的使用限制在存在这些资源的位置。例如,如果您的实例模板指定了 us-central1-a 可用区中的现有磁盘,则必须在同一可用区中创建预留。否则,创建预留或可以使用预留的虚拟机将失败。

    如需检查现有模板是否指定了任何将模板绑定到特定区域或可用区的资源,请获取有关模板的信息并查找对其中的区域级资源或可用区级资源的引用。

  • 使用不限于特定区域或可用区的实例模板。由于无法更新实例模板,因此请执行以下操作:

    1. 使用更新后的属性根据现有模板创建新的实例模板

    2. 通过指定新创建的实例模板来创建单项目共享预留

    3. 可选:删除旧实例模板

替换实例模板属性

如果您尝试通过指定实例模板创建预留,并在创建预留时同时指定实例模板和虚拟机属性,则会发生以下错误。

错误消息

Reservation cannot override properties populated by source resource.

解决方法:执行以下操作之一:

  • 若要通过指定实例模板来创建预留,请务必移除指定虚拟机属性的任何字段。

  • 如需通过指定具有不同虚拟机属性的实例模板来创建预留,请执行以下操作:

    1. 您无法更新现有实例模板。请改为根据现有模板创建新的实例模板

    2. 创建单项目共享预留时,指定新创建的实例模板。

    3. 可选:删除旧实例模板

  • 如需创建预留,而不指定实例模板,请改为直接指定虚拟机属性来创建单项目共享预留

使用紧凑放置政策创建预留时的错误

如果您无法通过指定紧凑放置政策创建预留,则可能是本部分中的某个错误造成的。

已在其他预留中指定紧凑放置政策

如果您尝试通过指定紧凑放置政策创建预留,并且已在其他预留中指定该紧凑放置政策,则会发生以下错误。

错误消息

Placement policy has been used by another reservation.

解决方法:您只能为每个预留使用一个紧凑放置政策。您无法在多个预留之间共享紧凑放置政策。如果要为另一个预留使用类似的紧凑放置政策,请选择以下方法之一:

尝试创建自动使用的预留

如果您尝试创建自动使用的预留并指定紧凑放置政策,则会发生以下错误。

Placement policy only supports specific reservations.

解决方法:您只能在创建明确指向的预留时指定紧凑放置政策。

尝试创建共享预留

如果您尝试通过指定紧凑放置政策创建共享预留,则会发生以下错误。

错误消息

Creating shared reservations with placement policy is not supported.

解决方法:您只能为单项目预留指定紧凑放置政策。因此,请为您要最初要与之共享预留的每个项目创建一个新的预留和一个新的紧凑放置政策。

尝试指定 max-distance 值为 1 的紧凑布置政策

如果您尝试在单项目预留中指定 max-distance 值为 1 的紧凑布置政策,则会发生以下错误。

错误消息

Resource policies with max-distance less than 2 are not supported.

解决方法:创建单项目预留时,您不能指定 max-distance 值为 1 的紧凑布置政策。请改为执行以下操作:

  1. 创建一个新的紧凑布置政策,且不要将 max-distance 值指定为 1

  2. 执行下列其中一项操作:

此外,如果您不再需要旧的紧凑布置政策,请参阅如何删除布置政策

尝试指定分散放置政策

如果您尝试在预留中指定分散放置政策,则会发生以下错误。

错误消息

Only compact placement policy is allowed with reservation.

解决方法:创建预留时,您只能指定紧凑放置政策。不支持分散放置政策。

资源政策类型无效

如果您尝试通过指定其他类型的资源政策创建预留,则会发生以下错误。

错误消息

Reservation can only be supported by placement policy.

解决方法:创建预留时,您只能指定紧凑放置政策。不支持其他类型的资源政策,例如实例时间表或快照时间表。

紧凑放置政策的可用区无效

如果您尝试在预留中指定紧凑放置政策,并且指定的可用区不在指定的紧凑放置政策区域内,则会发生以下错误。

错误消息

ZONE does not match placement policy region.

其中 ZONE 是您尝试在其中预留虚拟机的可用区。

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

  • 确保您的可用区与您在预留或预留的实例模板中指定的紧凑放置政策位于同一区域内。

  • 您无法更新紧凑放置政策。请改为执行以下操作:

    1. 使用更新后的属性创建新的紧凑放置政策

    2. 选择以下方法之一:

      • 通过直接指定属性创建新的预留,并指定新创建的紧凑放置政策。

      • 执行以下操作:

        1. 您无法更新实例模板。请改为通过指定新创建的紧凑放置政策来创建新的实例模板。

        2. 通过指定新创建的实例模板创建新预留。

        3. 可选:删除旧实例模板

    3. 可选:删除旧的紧凑放置政策

超出紧凑放置政策的虚拟机数量上限

如果您尝试通过指定紧凑放置政策创建来创建预留,并且您想要预留 150 个以上的虚拟机,则会发生以下错误。

错误消息

No more than 150 of instances can be created with this policy.

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

  • 通过指定紧凑放置政策创建预留时,请确保预留的虚拟机不超过 150 个。

  • 如需预留更多虚拟机,请使用与此预留相同的可用区、项目和属性创建多个预留,但要将为每个预留预留的虚拟机数量减少到最多 150 个。由于无法在多个预留间共享紧凑放置政策,因此您必须为要创建的每个新预留创建新的紧凑放置政策

替换预留的紧凑放置政策

如果您尝试通过指定包含紧凑放置政策的实例模板来创建预留,并在创建预留时指定模板和紧凑放置政策,则会发生以下错误。

错误消息

Setting resource policy in both reservation and instance template is not allowed.

解决方法:执行以下操作之一:

指定了具有固定数量虚拟机的紧凑放置政策

如果您尝试通过指定具有固定数量的虚拟机的紧凑放置政策来创建预留,则会发生以下错误。

错误消息

Only incremental placement policy is allowed with reservation.

解决方法:创建紧凑放置政策时,请务必移除该字段以指定固定数量的虚拟机。

未指定的放置政策

如果您尝试通过指定未指定的放置政策来创建预留,则会发生以下错误。

错误消息

Only incremental placement policy is allowed with reservation.

解决方法:创建预留时,您只能指定紧凑放置政策

紧凑放置政策不支持的机器类型

如果您尝试为紧凑放置政策指定无效的机器类型来创建预留,则会发生以下错误。

错误消息

Placement policy with reservation is not applicable to machine type MACHINE_TYPE.

其中,MACHINE_TYPE 是您在创建预留时尝试指定的机器类型。

解决方法:创建指定紧凑放置政策的预留时,请务必指定紧凑放置政策支持的机器类型