正常关停概览


本文档简要介绍了 Compute Engine 实例中的正常关闭流程。如需详细了解实例在其生命周期中可能会经历的状态,请参阅 Compute Engine 实例生命周期

在停止或删除实例时,Compute Engine 会等待一小段时间,以便客机操作系统完全关闭。如果客机操作系统未在此时间内完成运行任务,Compute Engine 会强制关闭,这可能会导致数据丢失或文件系统损坏。

为防止出现这些问题,您可以在实例中启用正常关闭功能。启用此设置后,在 Compute Engine 关闭客机操作系统之前,客机操作系统最多有 1 小时的时间来完成正在运行的任务。如果您希望实现以下目标,正常关闭功能会非常有用:

  • 允许高性能计算 (HPC) 作业完全关闭。

  • 允许数据库完成提交有效事务。

  • 允许电子邮件服务器在关闭之前完成处理。

  • 允许多人游戏会话完成运行。

正常关停简介

以下部分介绍了正常关闭的工作原理。

关停期

在计算实例中,正常关闭功能默认处于停用状态。您可以在创建或更新实例时启用此功能。启用正常关闭后,您可以按如下方式指定关闭时段:

  • 默认时段:如果您未指定关闭时段,Compute Engine 会使用 10 分钟的默认时段。

  • 自定义时间段:最短 1 秒,最长 1 小时。

我们建议您选择一个关闭期限,让应用有足够的时间来完成正在运行的任务。例如,如果您估计应用需要 10 分钟才能完成正在运行的任务,我们建议您指定 15 分钟的关机期限。此方法可防止强制停止任务以及数据可能损坏。在虚拟机操作系统中的所有任务都运行完毕后,您可以手动结束正常关闭以节省费用,如下一部分所述。

关闭流程

当您停止或删除已启用正常关停的计算实例时,或者 Compute Engine 因安排的停止或删除操作而停止或删除实例时,实例状态会变为 PENDING_STOP。系统开始正常关闭,以便您的应用完成任务。

当正常关闭时段超时时,Compute Engine 会结束实例的正常关闭;或者,您可以按照以下步骤手动结束正常关闭:

  • 从客机操作系统内部。您可以使用客机操作系统的关闭命令(例如 sudo shutdown -h now)停止实例。

  • Google Cloud。您可以使用以下方法之一停止或删除实例:

    • Google Cloud 控制台:请完成以下步骤:

      1. 转到虚拟机实例页面。

      2. 选择实例,然后点击 停止 删除

      3. 在显示的对话框中,选中跳过优雅关闭(如果适用)复选框,然后再确认停止或删除实例。

    • Google Cloud CLI:在命令中添加 --no-graceful-shutdown 标志。

    • REST API:在请求网址中添加 noGracefulShutdown=true 查询参数。

当正常关闭流程结束时,Compute Engine 会向客机操作系统发送 Advanced Configuration and Power Interface (ACPI) G2 Soft Off signal,将实例状态设置为 STOPPING,然后继续执行停止或删除操作。

停止或删除时不正常关闭

在实例中启用正常关闭功能后,您仍然可以停止或删除该实例,而无需执行正常关闭流程。例如,如果您不需要在特定日期优雅关闭实例,或者实例上运行的工作负载发生了变化,此方法可帮助您节省费用。

如需跳过正常关闭,请执行以下操作之一:

  • 跳过单个操作的安全关闭。让正常关闭功能保持启用状态,但针对特定的停止或删除操作绕过该功能。为此,请按照手动关闭流程操作。

  • 完全停用正常关闭。如果您不再需要优雅关闭实例,可以停用此功能。如需了解详情,请参阅在 Compute Engine 实例中停用正常关停

限制

正常关闭具有以下限制:

  • 您无法在以下计算实例中启用正常关闭功能:

    • 属于托管式实例组 (MIG) 的实例。

    • 指定有限运行时的实例。

  • 在实例中启用正常关闭功能后,您将无法执行以下操作:

    • 您无法更新需要重启的实例属性。

    • 如果实例是 TPU 虚拟机,则无法模拟主机维护事件。

  • 如果正在进行正常关闭 (PENDING_STOP),则无法执行以下操作:

    • 您无法更新实例属性。

    • 如果实例正在被删除,则无法启用或停用删除保护

  • 如果发生以下情况,您的实例将无法正常关闭,或者正常关闭会中断:

    • 您的 Spot 虚拟机或抢占式实例遭到抢占

    • 您的实例的主机维护政策设置为 TERMINATE,并且 Compute Engine 会因主机事件而停止实例。

  • 每个项目在每个区域一次最多只能顺序关闭和删除 8,000 个实例。

  • 只有在 Compute Engine 完成创建所有实例后,您才能正常关闭或修改批量创建的实例的正常关闭设置。

价格

在计算实例中启用或停用正常关闭功能无需支付任何费用。不过,如果您停止或删除已启用正常关闭的实例,则仍需为该实例付费,就好像它仍在运行一样。当正常关闭时段结束且实例状态更改为 STOPPING 时,这些费用会停止。

如需了解详细的价格信息,请参阅虚拟机实例价格

后续步骤