Compute Engine 实例生命周期

本文档介绍了 Compute Engine 实例的生命周期,涵盖了实例从创建到删除可能经历的各种状态。如需了解如何检查一个或多个实例的状态,请参阅以下内容:

了解实例的生命周期后,您可以更有效地执行以下操作:

  • 排查实例问题。

  • 管理实例资源。

  • 规划实例迁移。

实例状态

计算实例在其生命周期中可在不同状态之间转换。创建实例时,Compute Engine 会预配资源以启动实例,之后实例会进入预演阶段并准备首次启动。实例启动后,即被视为正在运行。正在运行的实例可以反复停止和重启,也可以反复暂停和恢复,直到该实例被删除。

下图显示了 Compute Engine 可以将实例设置为的不同状态:

Compute Engine 实例的不同状态的流程图。

上图中展示的状态包括:

  • PENDING:创建等待时间 (requestValidForDuration) 为 90 秒或更长的独立灵活启动虚拟机后,虚拟机的状态会更改为 PENDING。在此状态下,Compute Engine 会尝试获取启动虚拟机所需的资源,直到等待时间结束。如果 Compute Engine 在此时间内获取了资源,并且您有足够的资源配额,则虚拟机的状态会更改为 PROVISIONING。否则,您会遇到错误,并且 Compute Engine 会删除 Flex-start 虚拟机。如果您不再需要灵活启动虚拟机,可以选择在等待时间结束之前将其删除。

  • PROVISIONING:在您创建、重启或恢复实例后,Compute Engine 会为该实例分配资源。

  • STAGING:Compute Engine 正在准备实例以进行首次启动,原因如下:

    • Compute Engine 仍在创建和配置实例。

    • 您或预定操作请求重启或恢复实例。

    在此状态下,实例尚未运行。

  • RUNNING:Compute Engine 正在启动实例,或者实例正在运行。在此状态下,您可以停止、暂停或删除实例。此外,Compute Engine 可以停止或删除实例以执行预定操作,或者在发生硬件错误且实例属于代管式实例组 (MIG) 时修复实例。

  • PENDING_STOP:实例正在正常关停。只有在您启用了正常关停,并且您已请求停止或删除实例,或者 Compute Engine 因预定停止或删除而自动执行此操作时,才会发生此关停过程。当发生以下任一情况时,实例状态会更改为 STOPPING

    • 您手动结束正常关停。

    • 正常关停时间段超时。如果有任何任务仍在运行,Compute Engine 会强制停止这些任务。

  • STOPPING:实例正在关停其客户机操作系统,这会在以下情况下发生:

    • 您或预定操作请求停止或删除实例。

    • 发生了硬件错误。

    除非您将实例配置为跳过客机操作系统关停,否则关停时间取决于实例类型。不过,如果实例因硬件错误而停止,关停时间可能会与预期时长不同。在客机操作系统关闭后,Compute Engine 会视运行中的操作执行下列操作之一:

    • Compute Engine 会完成停止操作,并将实例状态更改为 TERMINATED

    • Compute Engine 会删除该实例和所有挂接的资源。

  • TERMINATED:Compute Engine 已完成停止操作。除非您分离已关联的资源,否则已关联的资源会保持关联状态。在此状态下,实例会一直处于停止状态,直到您重启或删除实例。如果您请求重启实例,但 Compute Engine 无法分配您请求的资源,则重启请求会失败,并且实例会保持 TERMINATED 状态。否则,重启请求会成功,实例状态会更改为 PROVISIONING

  • REPAIRING:Compute Engine 正在修复实例。 如果实例遇到内部错误或因维护而无法使用实例的主机服务器,Compute Engine 会修复该实例。当实例处于修复状态时,会发生以下情况:

    如果 Compute Engine 成功修复了实例,则会将实例状态恢复到修复操作开始之前的原始状态。此状态可以是 STAGINGRUNNINGSUSPENDINGSTOPPING。如果您的实例配置为在修复操作完成后自动重启 (automaticRestart),则可以选择在修复过程中停止该实例。此操作可防止实例在修复完成后自动重启,从而使实例处于 TERMINATED 状态。

  • SUSPENDING:在您请求暂停实例后,Compute Engine 已开始实例的暂停操作。在此状态下,您只能等待挂起操作完成。

  • SUSPENDED:Compute Engine 已完成暂停操作。在此状态下,您可以恢复或删除实例。如果您请求恢复实例,但 Compute Engine 无法分配您请求的资源,则恢复请求会失败,并且实例会保持 SUSPENDED 状态。否则,恢复请求会成功,并且实例状态会更改为 PROVISIONING。实例可以保持 SUSPENDED 状态,最长可达 60 天。之后,Compute Engine 会将实例状态更改为 TERMINATED

硬件故障

在极少数情况下,计算实例可能会由于意外服务中断、硬件错误或其他系统问题而出现故障。Google 建议您使用永久性存储卷、定期备份数据,并设计系统以确保单个实例故障不会造成灾难性的影响,从而缓解硬件故障。如需了解详情,请参阅如何设计可靠的系统

如果实例出现故障,Compute Engine 会使用相同的启动磁盘、元数据和实例设置来自动重启实例。如需修改实例的自动重启行为,请参阅为计算实例设置主机维护政策

价格

您需要按以下方式为计算实例支付费用:

  • 对于 CPU 用量,当实例处于以下状态时,您需要支付费用:

    • RUNNING

    • PENDING_STOP

  • 对于内存用量面,当实例处于以下状态时,您需要支付费用:

    • RUNNING

    • PENDING_STOP

    • SUSPENDING

    • SUSPENDED

  • 对于磁盘或外部 IP 地址等关联资源,无论实例处于何种状态,您都需要为其支付费用,直到资源不存在为止。

如需了解详情,请参阅虚拟机实例价格

后续步骤