<< 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:
-
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.
-
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.
-
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.
-
Allocating a full virtual-disk image for each process can consume
a large amount of disk space.
-
Current VM technology doesn't support migration between different
clusters that are on different switches.