Virtualization Flashcards
Virtualization
Virtualization consists in creating simulated (or virtual)
computing resources. These computing resources can include
network, storage, computing (CPU+memory).
It is one of the key techniques used to realize cloud
computing platforms.
What does the OS do
OS provides, for each application,
the illusion that the application is
the only one using the computer.
This can also be considered a
form of virtualization.
Why virtualize?
Provide a better abstraction for users of shared resources.
Higher and more flexible utilization of resources.
* Allows to share the same physical resources among multiple
users.
* Decoupling between the physical and virtual resources.
* Allows to share the resources among multiple users.
VMM
The VMM provides provides
the illusion of a machine
identical with the original
machine. The VMM controls
the hardware.
VM
It is the simulation of the “real machine”, with a “virtual hardware”
created/managed by the VMM.
* There may exist several VM instances running, and they:
* behave as if they were distinct, isolated, machines;
* run their applications unmodified and efficiently.
The hypervisor
It is an operating system that runs the (VM/VMM) processes.
* Sometimes VMM and hypervisor terms are used interchangeably.
- A (VM+VMM) pair constitutes an hypervisor “process”.
Alternate forms of virtualization
- System virtual machine.
- Process virtual machine.
Language virtual machine
Provides an environment with a specific instruction set and
standard libraries for accessing the computer resources.
Runs as an application in an OS.
Programs are compiled for the language VM code and run in
the language VM.
Requirements for virtualization
The VMM (or hypervisor) should provide:
* Safety: the VM (guest OS/application) should not be
able to compromise the VMM, which should have full
control of the resources (real and virtual).
* Fidelity: when running, the behaviour of software on
the VM should be identical to the behaviour on real
hardware.
* Efficiency: the VMM should interpose itself as little as
possible while the VM is running its code.
How does the vmm protect itself from vms
(slow)
The VMM could maintain the state of the processor,
memory, IO and interpret each instruction of the VM,
updating the state of the processor/memory/IO
accordingly.
* This is safe, but very slooowwww…
* This is called an emulator, and it is necessary to run
programs compiled for a different processor.