Virtualization and Cloud Flashcards
Hypervisor should have full control of virtualized resources
Safety in VM
Behavior of a program should be the same as running program on baremetal
Fidelity in VM
Much of the code in VM should run without intervention
Efficiency in VM
Can directly access resources of underlying machine and implement resource allocation strategies to service VMs
Type 1 hypervisor
Must negotiate resources with base operating system
Type 2 hypervisor
Only uses hypercalls to get system services like I/O
microkernel
Modify sourcecode of guest operating system
paravirtualization
Executes hypercalls, defined in API and exposed to guest OS
paravirtualization
When sensitive instruction occurs, trap in host OS and delegate to hypervisor
true virtualization
Generic set of procedures that can be executed by any hypervisor
Virtual machine interface
- On demand service
- Broad network access
- Resource pooling
- Rapid elasticity
- Measured service
Requirements of cloud platform
any x86 OS any app can run without modification
Challenges in virtualization of x86 - compatability
performs all UI functions, starts VM and performs most drive emulation, as well as proxying calls to base OS
VMX
Small kernel-mode driver that is installed alongside host OS to allow VMM to run by briefly suspending OS
VMX driver
Holds all software to multiplex CPU and memory, including exception handlers, trap and emulate handlers, etc
Virtual memory manager
Context of VMM changes from host OS to VMM
World switch
Swaps all memory and registers, including exception handlers and privileged requests
world switch
VMWare’s type 1 hypervisor
ESX server
Baremetal hypervisor with VMM that allows for multiple virtual machines
ESX server
- CPU scheduler ensures each virtual machine gets a fair share of CPU
- Memory manager optimized for scalability, even when VM requests more memory than available
- File system optimized for VM images and high I/O throughput
- Easy to extend capabilities and enable plugins
ESX server benefits
Each word in memory can be read as fast as any other word
Uniform memory access
Multiprocessor with single bus, used by all cores
UMA with bus-based architecture
Leads to issues when one CPU core is using bus more than others
Issues with UMA and bus-based architecture
Block can either be read-only, allowing it to be in multiple cache lines at same time, or read-write, where it can be in only one cache at a time
UMA with bus-based architecture