Virtual machine Google Compute上的虚拟机是否可以检测到它们';你已经迁移了吗?

Virtual machine Google Compute上的虚拟机是否可以检测到它们';你已经迁移了吗?,virtual-machine,google-compute-engine,avx,avx512,Virtual Machine,Google Compute Engine,Avx,Avx512,当Google Compute VM迁移到不同的硬件时,是否可以通知运行在该VM上的应用程序 我是大量使用向量指令(SSE/AVX/AVX-512)的应用程序(HMMER)的开发人员。我正在开发的版本在启动时探测其硬件,以确定哪些向量指令可用,并选择最佳的指令集 我们一直在考虑在Google Compute和其他云引擎上运行我们的程序,一个问题是,如果VM在运行我们的程序时从一台物理机器迁移到另一台物理机器,新机器可能支持不同的指令,导致我们的程序崩溃或执行速度比它可能的慢 当Google Co

当Google Compute VM迁移到不同的硬件时,是否可以通知运行在该VM上的应用程序

我是大量使用向量指令(SSE/AVX/AVX-512)的应用程序(HMMER)的开发人员。我正在开发的版本在启动时探测其硬件,以确定哪些向量指令可用,并选择最佳的指令集

我们一直在考虑在Google Compute和其他云引擎上运行我们的程序,一个问题是,如果VM在运行我们的程序时从一台物理机器迁移到另一台物理机器,新机器可能支持不同的指令,导致我们的程序崩溃或执行速度比它可能的慢


当Google Compute VM迁移时,是否有方法通知运行在该VM上的应用程序?我发现的唯一相关信息是,您可以将VM设置为在迁移时执行关机/重新启动序列,这将杀死所有当前正在执行的程序,但至少会让用户知道他们需要重新启动程序。

我们确保您的VM实例不会在物理机器之间实时迁移,从而导致您的程序按照您描述的方式崩溃

然而,对于您的用例,您可能需要指定一个最低的CPU平台版本。您可以使用它来确保您的实例具有新的Skylake AVX指令。有关更多详细信息,请参阅上的文档。

根据文档:

实时迁移不会更改虚拟机的任何属性 本身。实时迁移过程只是将正在运行的VM从 从一台主机到另一台主机。所有VM属性和属性保持不变 未更改,包括内部和外部IP地址, 实例元数据、块存储数据和卷、操作系统和应用程序 状态、网络设置、网络连接等

谷歌确实提供了一些控件来设置实时迁移,这也让你可以控制实时迁移的各个方面。在这里,它们还提到了您可以寻找什么来确定何时进行了实时迁移

默认情况下,标准实例设置为live migrate,其中Google 计算引擎会自动将您的实例从 基础架构维护事件,并且您的实例仍在运行 在迁移期间。您的实例可能会经历短时间的 性能下降,但通常大多数情况下不应如此 注意任何区别。这对于需要 持续的正常运行时间,并能承受短时间的停机 表演

当Google Compute Engine迁移您的实例时,它会报告一个系统 发布到区域操作列表的事件。你可以复习 此事件通过执行gcloud计算操作列表--zones ZONE执行 请求或通过查看谷歌云中的操作列表 平台控制台,或通过API请求。事件将出现 全文如下:

compute.instances.migrateOnHostMaintenance
此外,当维护事件即将发生时,您可以直接在VM上进行检测

元数据服务器提供有关实例的 ,通过排程/ 目录和维护事件属性。你可以用这些 属性以了解虚拟机实例的调度 选项,并使用此元数据在发生维护事件时通知您 即将通过
维护事件
属性发生。通过 默认情况下,所有虚拟机实例都设置为实时迁移,因此 元数据服务器将在VM之前接收维护事件通知 实例被实时迁移。如果您选择使用VM实例 在维护期间终止,然后计算引擎将自动 如果 已设置AutomaticStart属性。了解更多有关维护的信息 事件和实例行为在事件期间,请阅读

您可以通过查询
定期维护事件
属性。它的价值是什么 属性将在维护事件开始前60秒更改, 为您的应用程序代码提供一种触发您想要执行的任何任务的方法 在维护事件之前执行,例如备份数据或 更新日志。计算引擎还提供了 演示如何检查维护事件通知

您可以将维护事件属性与等待一起使用 更新功能,用于在出现错误时通知脚本和应用程序 维护事件即将开始和结束。这可以让你自动化 您可能希望在事件之前或之后运行的任何操作。这个 下面的Python示例提供了一个如何实现的示例 这两个特性结合在一起

您还可以选择终止并有选择地重新启动实例

如果不希望实例实时迁移,可以选择 终止并有选择地重新启动实例。有了这个选择,, Google计算引擎将发出关闭实例的信号,请等待 您的实例在短时间内完全关闭, 终止实例,并从维护中重新启动它 事件此选项非常适合于需要常数的实例, 最大的性能,并且您的整个应用程序是为处理 实例失败或重新启动

有关如何配置的更多详细信息,请参阅本节

如果将实例与GPU或可抢占实例一起使用,请注意不支持实时迁移:

无法实时迁移连接了GPU的实例。它们必须被设定 终止并有选择地重新启动。计算引擎提供60分钟的计算时间 在终止连接了GPU的VM实例之前请注意。到 了解有关这些维护事件通知的更多信息,r