A Brief Primer on Virtualization
I went through this process of discovery over the past three weeks and felt I should share my learning with you.
What is virtualization?
Virtualization is the technology that allows you to run several different OS’es, each of which is independently running on a dedicated (virtual) machine, concurrently on the same physical machine.
Wikipedia describes different types of virtualization
How is virtualization realized?
A hypervisor is the software layer that virtualizes the underlying host OS and hardware to allow multiple operating systems to run concurrently on the same physical machine. You can read about the hypervisor in depth here.
Which are the primary virtualization technologies in use commercially?
There are principally three arms vendors for virtual machines, VMWare, Microsoft and Xen. Their technologies differ in subtle but important ways.
VMWare implements full virtualization. The VMWare hypervisor simulates the underlying x86 hardware completely so that Windows and Linux variants designed for the x86 architectcure can run unmodified within individual VMWare virtual machines.
Microsoft and Xen implement paravirtualization. The hypervisor exposes a software interface to virtual machines that is similar but not identical to that of the underlying OS/hardware. The calls supported by this interface are called hypercalls, analogous to the OS syscalls. Paravirtualization simplifies the design and implementation of the hypervisor and virtual machines that run on them can achieve performance closer to non-virtualized hardware. However, the downside is that operating systems must be explicitly ported to run on top of such a hypervisor.
Microsoft’s Hyper-V hypervisor, introduced in Windows 2008, supports Windows 2008, 2003, 2000 and SuSe Linux Enterprise Server 10 as guests,
How are these systems architected?
How do the VM’s differ?
VMware uses the vmdk file format
The set of files necessary for VMWare VM
Microsoft and Xen use the vhd file format.