<< Previous question   Table of contents   MOSIX home   Next question >>

Question:

Why migrate processes when one can move a whole VM with a process inside

Answer:

Mainly due to overheads, both in terms of time and the required memory to create a VM for each process.

Specifically:

  1. Migrating a whole VM requires the transfer of much more memory. Even in the case of "live-migration" (that works only for certain types of processes - not all), this can overload the network more.
  2. Once in a VM, a process that splits (using "fork") can not get independent resources for each split process: the original process with all its children will have to remain together on the same VM.
  3. Processes within a VM can not maintain most of their connections (pipes, signals, parents/children, IPC, etc.) with other processes, either on the generating host or in other VM's.
  4. Allocating a full virtual-disk image for each process can consume a large amount of disk space.
  5. Current VM technology doesn't support migration between different clusters that are on different switches.