本文档介绍了如何解决使用 Compute Engine 可用区级资源的预留时遇到的问题。
跟踪预留使用时遇到问题
问题:无法跟踪哪些虚拟机正在使用预留,即使您可以通过验证预留使用情况查看有多少虚拟机正在使用预留。
解决方法:如果您可以成功创建针对特定预留的虚拟机,则该虚拟机正在使用虚拟机亲和性属性 (reservationAffinity
) 中指定的预留。否则,创建虚拟机将失败,因为属性不匹配,或者虚拟机所在的可用区中没有可用资源。
如需详细了解如何跟踪预留使用情况,请参阅验证预留使用情况。
可供使用的虚拟机更少
问题:实际预留的虚拟机数量(assuredCount
字段)与预留中指定的预留虚拟机数量(count
字段)不一致。这意味着,系统会为您的项目以及与共享预留共享的任何项目预留更少的虚拟机。
出现此问题的原因可能有以下一个或多个:
共享预留的使用方项目被暂停或迁移到其他组织。在这种情况下,Compute Engine 会按使用方项目正在使用的虚拟机数量减少
assuredCount
字段。创建预留的项目已被暂停。在这种情况下,Compute Engine 会将
assuredCount
字段设置为0
。房源出现错误,影响了预订。
解决方法:除非创建预留的项目已被暂停,否则 Compute Engine 会尽最大努力在 24 小时内自动解决预留中的 assuredCount
和 count
字段之间的差异。此外,在差异得到解决之前,Google Cloud 只会按实际预留的容量向您收费。
虚拟机未使用预留的问题
如果虚拟机无法使用预留,则可能是由以下一个或多个问题导致:
本部分介绍了如何识别上述各个问题、解决每个问题以及验证预留使用情况。
虚拟机属性不匹配
问题:虚拟机不能使用具有不同虚拟机属性的预留。
如需确定虚拟机与预留之间的哪些属性不匹配,请执行以下操作,查看预留和虚拟机的属性:
然后,比较这两种输出,验证以下属性是否完全匹配:
project
- 如果预留与多个项目共享(具体而言,如果预留将
shareType
字段设置为SPECIFIC_PROJECTS
),则虚拟机可以位于创建预留的项目(所有者项目)中,也可以位于与之共享预留的任何项目(使用方项目)中。
- 如果预留与多个项目共享(具体而言,如果预留将
zone
machineType
guestAccelerators.acceleratorType
(如果有)guestAccelerators.acceleratorCount
(如果有)minCpuPlatform
- 虚拟机和预留必须具有完全相同的
minCpuPlatform
配置。例如,在创建虚拟机时将minCpuPlatform
设置为Intel Broadwell
将与预留中Automatic
的minCpuPlatform
值不匹配。
- 虚拟机和预留必须具有完全相同的
localSsds.interface
(如果有)- 预留和虚拟机必须具有相同数量的本地 SSD 磁盘,并且每个本地 SSD 磁盘都具有匹配的
localSsds.interface
属性。
- 预留和虚拟机必须具有相同数量的本地 SSD 磁盘,并且每个本地 SSD 磁盘都具有匹配的
resourcePolicies
(如果有)- 仅当预留指定了紧凑布置政策时。
locationHint
(如果有)- 仅当预订指定了
locationHint
字段时。仅当使用 REST 创建虚拟机时,您才能指定locationHint
字段。
- 仅当预订指定了
解决方法:确定不匹配的属性后,请尝试以下任一操作:
如果虚拟机属性与预留不匹配,请执行以下操作之一:
如果预留的属性应与虚拟机的属性相匹配,请删除预留并创建新的预留(与虚拟机属性相匹配)。您也可以选择创建特定预留。创建虚拟机以使用特定预留时,如果虚拟机的属性与预留的属性不匹配,则会遇到错误。
更新虚拟机或创建新预留后,请通过验证预留使用情况检查虚拟机是否正在使用预留。
预留亲和性不正确
问题:虚拟机的预留亲和性配置错误。虚拟机的预留亲和性控制虚拟机可以使用的预留。如需检查虚拟机的预留亲和性,请执行以下操作:
查看虚拟机的详细信息并验证预留关联性。
解决方法:如果虚拟机和预留的预留亲和性不匹配,请执行以下操作之一:
创建一个新的虚拟机,并使用与预留类型匹配的预留亲和性属性。
更新虚拟机中的
reservationAffinity
属性,以指定虚拟机是否可以使用任何匹配的预留或特定预留。如需最终完成虚拟机的更新,您必须重启虚拟机。
如需检查虚拟机是否正在使用预留,请参阅验证预留使用情况。
预留已用尽
问题:使用此预留的虚拟机数量与该预留的预留虚拟机总数一致。这表示预留已完全用完。
解决方法:如需验证预留是否已完全用完,请查看预留的详细信息,然后验证使用该预留的虚拟机数量是否与该预留中的预留虚拟机总数相符。
如果预留已全部用完,请尝试以下操作之一:
通过修改预留中的预留虚拟机数量来增加预留虚拟机数量。
如果预留已预留最大虚拟机数量,请创建新的预留。
减少正在使用预留的虚拟机的数量。如需了解详情,请参阅虚拟机意外使用预留。
如果预留尚未用完,但虚拟机未使用预留,则您可以通过执行以下操作来进一步排查问题:
创建虚拟机以使用预留。如果虚拟机和预留属性不匹配,则创建虚拟机的操作将失败。
共享预留超出资源配额
问题:虚拟机未使用共享预留,因为您的项目没有足够的配额来使用您尝试使用的资源。
解决方案:共享预留有额外的配额要求。如果您需要提高项目配额以使用预留资源,请参阅 Cloud 配额文档中的申请更高配额。
停止或删除虚拟机后,虚拟机数量未恢复
问题:如果您停止、暂停或删除正在使用预留的虚拟机,则操作必须在该虚拟机不再计入预留并且之前使用的资源再次可供使用之前完成。
解决方法:等待几分钟,让对虚拟机的停止、暂停或删除操作完成。然后,如需验证已停止、暂停或删除的虚拟机是否不再计入预留,请使用以下方法之一检查预留中已使用的虚拟机总数:
建议:监控预留并查看预留的测量结果是否发生变化。
查看预订的详细信息,并检查
inUseCount
字段的值是否降低。如果其值没有减少,则表示在停止、暂停或删除操作完成时,一个或多个虚拟机已开始使用预留。
虚拟机意外使用预留
问题:您创建自动使用的预留(默认设置)时,虚拟机可能会无意中使用这些预留。
解决方法:如需避免一个或多个虚拟机无意中使用预留,请执行以下操作之一: