【问题标题】:How to save state when preempted on a Google preemptible instance?在 Google 可抢占实例上被抢占时如何保存状态?
【发布时间】:2016-01-02 03:24:33
【问题描述】:

当基于 Centos 的 Google Compute 实例首次接收到抢占信号时,我需要能够保存它的状态。 documentation 非常清楚地表明在抢占式关机前 30 秒发送了“ACPI G2 软关机”信号。不幸的是,谷歌没有给出示例来演示如何捕获此信号,我还没有找到捕获它的方法。

我最初的尝试都集中在使用 acpid 守护进程的 ACPI 接口上。使用它,我已经能够毫无问题地捕获关机(按钮/电源)事件。但无论我尝试捕获什么事件(按钮、电源、睡眠),我都无法捕获到 G2 状态的状态转换,我认为这就是我正在寻找的。​​p>

有没有人成功地在 Centos(或任何 Linux)环境中捕获抢占信号?

【问题讨论】:

    标签: linux state google-compute-engine preemption


    【解决方案1】:

    您可能想为此使用shutdown scripts

    创建并运行关闭脚本,以便您在实例终止或重新启动之前尽最大努力执行命令。如果您依赖自动化脚本来启动和关闭实例,这将非常有用,让您的实例有时间清理或执行任务,例如导出日志或与其他系统同步。

    如果您有一个正在自动扩缩的托管实例组,关闭脚本可能会很有用,因为如果实例由于自动扩缩而关闭,关闭脚本会在实例终止之前执行您定义的任何操作。例如,您的关机脚本可能会复制处理过的数据或备份任何日志。

    关闭脚本的功能与startup scripts 非常相似;启动脚本的大部分文档也适用于关闭脚本。

    但是,由于您的工作时间有限,请考虑使用在您的实例被抢占时不会被删除的持久性外部存储系统,例如Google Cloud StorageGoogle Cloud BigtableGoogle Cloud Datastore 或其他。

    【讨论】:

    • 谢谢米莎;我将尝试关闭脚本。但是捕捉最初的 G2 状态变化不是更好吗?如果是这样,有没有办法使用这些早期信息?
    • @NigelRMurray — 抱歉,不知道是否可以捕获 G2 状态变化,或者如何做到这一点。
    猜你喜欢
    • 1970-01-01
    • 2019-03-30
    • 2020-01-30
    • 2018-09-16
    • 2022-09-28
    • 2023-03-15
    • 2019-08-18
    • 2015-09-29
    • 1970-01-01
    相关资源
    最近更新 更多