Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Can VMs on Google Compute detect when they've been migrated?

Is it possible to notify an application running on a Google Compute VM when the VM migrates to different hardware?

I'm a developer for an application (HMMER) that makes heavy use of vector instructions (SSE/AVX/AVX-512). The version I'm working on probes its hardware at startup to determine which vector instructions are available and picks the best set.

We've been looking at running our program on Google Compute and other cloud engines, and one concern is that, if a VM migrates from one physical machine to another while running our program, the new machine might support different instructions, causing our program to either crash or execute more slowly than it could.

Is there a way to notify applications running on a Google Compute VM when the VM migrates? The only relevant information I've found is that you can set a VM to perform a shutdown/reboot sequence when it migrates, which would kill any currently-executing programs but would at least let the user know that they needed to restart the program.

like image 800
Nick Carter Avatar asked Jun 12 '17 19:06

Nick Carter


People also ask

Is migration possible in virtual machine?

You can migrate virtual machines without reconfiguring the physical and virtual network. By using cold or hot migration, you can move the virtual machine from a standard to a standard or distributed switch, and from a distributed switch to another distributed switch.

How does VM migration work?

In live migration, the static part (not changing or having any active write operation) of the VM is transferred first while VM keeps running on the source server. Then VM is suspended and the remaining part is transferred. Live VM migration reduces the down time but engages more resources for a longer time.

Does Google use VMs?

Google Compute Engine delivers virtual machines running in Google's innovative data centers and worldwide fiber network. Compute Engine's VMs boot quickly, come with persistent disk storage, and deliver consistent performance.


1 Answers

We ensure that your VM instances never live migrate between physical machines in a way that would cause your programs to crash the way you describe.

However, for your use case you probably want to specify a minimum CPU platform version. You can use this to ensure that e.g. your instance has the new Skylake AVX instructions available. See the documentation on Specifying the Minimum CPU Platform for further details.

like image 185
Ramesh Dharan Avatar answered Oct 30 '22 03:10

Ramesh Dharan