本文档简要介绍了 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 控制台:完成以下步骤:
转到虚拟机实例页面。
选择相应实例,然后点击
停止 或 删除。如果没有停止或删除选项,请依次点击 更多操作 > 停止或 删除。在显示的对话框中,选中跳过安全关停(如果适用)复选框,然后确认停止或删除实例。
Google Cloud CLI:在命令中添加
--no-graceful-shutdown
标志。REST API:在请求网址中添加
noGracefulShutdown=true
查询参数。
当安全关停过程结束后,Compute Engine 会向客机操作系统发送高级配置和电源接口 (ACPI) G2 软关闭信号,将实例状态设置为 STOPPING
,然后继续执行停止或删除操作。
无需安全关停即可停止或删除
在实例中启用安全关停后,您仍然可以停止或删除该实例,而无需执行安全关停过程。例如,当您不需要在特定日期安全关停实例,或者实例上运行的工作负载已更改时,此方法有助于您节省费用。
如需跳过安全关停,请执行以下操作之一:
跳过单个操作的安全关停。保持启用安全关停,但针对特定的停止或删除操作绕过安全关停。为此,请按照手动关停过程操作。
完全停用安全关停。如果您不再需要安全关停实例,可以停用此功能。如需了解详情,请参阅在 Compute Engine 实例中停用安全关停。
限制
安全关停具有以下限制:
您无法在以下计算实例中启用安全关停:
属于托管式实例组 (MIG) 的实例。
用于指定受限运行时的实例。
在实例中启用安全关停后,您无法执行以下操作:
您无法更新需要重启的实例属性。
如果实例是 TPU 虚拟机,您无法模拟主机维护事件。
如果正在进行安全关停 (
PENDING_STOP
),则您无法执行以下操作:您无法更新实例属性。
如果正在删除实例,您无法启用或停用删除防护。
如果发生以下情况,您的实例将无法安全关停,或者安全关停会中断:
每个项目在每个区域一次最多只能安全关停和删除 8,000 个实例。
只有在 Compute Engine 完成创建所有实例后,您才能对批量创建的实例进行安全关停或修改安全关停设置。
价格
在计算实例中启用或停用安全关停不会产生任何费用。不过,如果您停止或删除已启用安全关停的实例,则仍会为该实例付费,就好像它处于运行状态一样。在安全关停时段结束且实例状态更改为 STOPPING
后,系统会停止收取这些费用。
如需了解详细的价格信息,请参阅虚拟机实例价格。