在Google可抢占实例上抢占时如何保存状态?

时间:2015-10-05 12:52:42

标签: linux state google-compute-engine preemption

我需要能够在第一次收到抢占信号时保存基于Centos的Google Compute实例的状态。 documentation非常清楚地表明" ACPI G2 Soft Off"信号在可抢占关机前30秒发送。不幸的是,谷歌没有举例说明如何捕捉这个信号,我还没有找到捕捉它的方法。

我最初的尝试都集中在使用acpid守护程序的ACPI接口上。使用它,我已经能够捕获关闭(按钮/电源)事件没有任何问题。但无论我试图捕捉什么事件(按钮,电源,睡眠),我都无法捕捉状态转换到G2状态,我认为这是我正在寻找的。

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

1 个答案:

答案 0 :(得分:2)

您可能希望使用shutdown scripts

  

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

     

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

     

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

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