What is the difference between t1 and t2 hypervisors?
The Wikipedia article explains it, but I am not quite getting it. Apparently both require some sort of host system to run in. Does anybody know of a good explanation of the differences?
Server Fault is a question and answer site for system and network administrators. It only takes a minute to sign up.Sign up to join this community
Others have explained the differences between the 2 types pretty well. One thing to note is that while it seems like Hyper-V is being installed inside Server 2008, what is actually happening is Hyper-V is being installed at the root partition, and the "host" Server 2008 you're installing on becomes a virtual machine itself. The reason it can see the other VMs is because of the Hyper-V management service, which connects to Hyper-V which it is running on.
Here is the Hyper-V architecture. A few items to note in the diagram within the root partition that have access to the hypervisor allowing the root partition to report disk and memory usage:
VID – Virtualization Infrastructure Driver – Provides partition management services, virtual processor management services, and memory management services for partitions.
VMWP – Virtual Machine Worker Process – A user mode component of the virtualization stack. The worker process provides virtual machine management services from the Windows Server 2008 instance in the parent partition to the guest operating systems in the child partitions. The Virtual Machine Management Service spawns a separate worker process for each running virtual machine.
WinHv – Windows Hypervisor Interface Library - WinHv is essentially a bridge between a partitioned operating system’s drivers and the hypervisor which allows drivers to call the hypervisor using standard Windows calling conventions
I think the wikipedia article is pretty clear. A T1 hypervisor virtualizes the hardware for all the OS instances that run on that machine, while a T2 hypervisor runs inside a OS running on unvirtualized hardware, and provides virtual access for all the other OS instances.
That is T1 is more fundamental that any OS instance, but T2 depends on one of them.
If Hyper-V (which is a t1 hypervisor) really runs below all operating systems, shouldn't every single OS running on the machine see only the memory assigned to it and not processes containing VMs?
I image (but don't know--at this point I am officially out of my depth) this depends on how the virtualization support hardware works.
Quite simple actually, T1 runs at the OS drivers layer (or kernel, if you want to call it that) and T2 runs at the OS application layer. So in order to reach physical hardware T1 has to make a call to the device driver, while T2 has to make a call to an OS system that will direct the call to the driver, like any other user level software. Once you look at it this way, the advantages of t1 become obvious, and you can easily see that "baremetal" is just a term for "close to the hardware's drivers".
There are different approaches to building t1 - the common (and the rather outdated, approach-wise) ones are Xen and Hyper-V, building a separate set of drivers (a separate microkernel) which interacts with the hypervisor, but it also has to keep a normal OS for it's mainstream kernel, in order to utilise additional hardware, and interaction between the two is rather expensive, and KVM, which doesn't use a separate kernel, residing right in the Linux kernel instead, so it's right there in with all the device drivers with direct access to everything.