如何在抢先于Google抢先实例时保存状态?
问题描述:
我需要能够保存基于Centos的Google Compute实例在第一次收到抢占信号时的状态。 documentation非常清楚地表明,在可抢占关机前30秒发送“ACPI G2软关闭”信号。不幸的是,Google没有给出任何示例来演示如何捕获这个信号,我还没有找到捕获它的方法。如何在抢先于Google抢先实例时保存状态?
我最初的尝试都是围绕使用acpid守护进程的ACPI接口进行的。使用它,我已能够捕获关机(按钮/电源)事件,没有任何问题。但是,无论我尝试捕获什么事件(按钮,电源,睡眠),我都无法捕获状态转换到G2状态,我认为这是我正在寻找的状态。
是否有人成功设法在Centos(或任何Linux)环境中捕获抢占信号?
答
您可能需要使用shutdown scripts此:
创建和运行关机脚本,让你执行一个实例终止或重启权利之前的命令,尽最大努力的基础上。如果您依靠自动化脚本来启动和关闭实例,这将非常有用,从而让您的实例有时间清理或执行任务,例如导出日志或与其他系统同步。
如果您有一个自动调整的受管实例组,关闭脚本可能很有用,因为如果由于自动调整关闭了实例,关闭脚本将执行您在实例终止之前定义的任何操作。例如,您的关机脚本可能会复制已处理的数据或备份任何日志。
停机脚本的功能与startup scripts非常相似;启动脚本的大部分文档也适用于关闭脚本。
但是,因为你只有有限的时间做工作,可以考虑使用,当你的实例被抢占,这将不会被删除持久的外部存储系统,例如,Google Cloud Storage,Google Cloud Bigtable,Google Cloud Datastore,或者其他。
谢谢米莎;我会尝试关闭脚本。但是,捕获最初的G2状态变化不是更好吗?如果是这样,是否没有办法使用这个早期的信息? –
@NigelRMurray - 抱歉,不知道是否有可能捕获G2状态更改,或者如何执行此操作。 –