Hyper-V: Support of Non-Microsoft Virtual Machines

Note: This article is based on Hyper-V 2.0,  this might not apply to Hyper-V 3.0 (Server 2012)

It's been a while since I have heard some complaints, usually by comparing with other products on the support of non-Microsoft Virtual Machines on Hyper-V.

By default, you can run any x86 and x64 operating systems, whether it's Microsoft, Linux, Unix, Solaris, etc.

The important point to be taken is the integration of these Virtual machines (VMs) with Hyper-V. To do that they need some services that provide the integration between the virtual system and the host system. These services are called Integration Components (IC).

The ICs are installed agents on the VMs so that they recognize and use the benefits of Hyper-V. The VMs that have the ICs are recognized as synthetic systems, also known as enlightenment and not having the IC are known to be emulated systems.

The emulated systems are those that do not support the IC. To use the hardware through the hypervisor, Hyper-V emulates all the devices for them, thus losing some features and performance. In some cases, the loss in the disk Input/output reaches 40%. Another example is the speed of network connections. VMs without these ICs can only use one type of specific network card called Legacy Network, which must be configured in the properties of virtual machines.

The loss of performance with this card is normally 30%. For some server scenarios, these values are unacceptable.

To resolve these impasses is possible to install the ICs on supported the VMs and not have these hardware problems. However, there are also two types of ICs: The officials, provided by Microsoft itself, and the unofficial, provided by the community or by the operating system manufacturer. Remember that both provide the integrations and can be used without problems, but Microsoft cannot guarantee and does not support unofficial ICs.

The KB954958 provides a list of servers and client systems that support the Integration Components today. Notice in the table below that the number of processors depends on the operating system using the IC.

 

Client OS list:

Some operating systems such as Windows 2008, Windows 2008 R2 and 7 do not require the installation of components, because they already exist by default in Windows Kernel. But others such as Windows 2003, Windows XP and Windows 2000 SP4 the IC must be installed manually.

In the list, there are some Linux distributions available: Red Hat Enterprise and Suse Linux Enterprise. For these distributions, there is a specific version, Integration Components 2.1, which must be installed manually. The IC 2.1 can be downloaded from the link below:

http://www.microsoft.com/downloads/en/details.aspx?FamilyID=eee39325-898b-4522-9b4c-f4b5b9b64551  

The list below contains the features of the new IC 2.1:

  • Fastpath Boot Support: The Boot Devices can use the storage VSC to provide more performance.
  • Timesync: Time synchronization between the host and the VM.
  • Integrated Shutdown: Option to turn off the VM through Hyper-V and System Center Virtual Machine Manager.
  • Symmetric Multi-Processing (SMP) Support: Support for 4 processors per VM.
  • Heartbeat: Allows the host whether the VM is powered on and operational.
  • Pluggable Time Source: Provides a schedule module to provide a more accurate time source for VM.

Although not official, the same IC also supports CentOS 5 and Ubuntu Server 10.10. It can be observed, as shown below, the components of VMBus for Ubuntu.

Figure 1: Ubuntu 10.10

Some examples of operating systems that support the IC created by third parties is the IC for Debian 2.6.36, made by the specialist Yusuf Ozturk. To use the ICs 2.6.36, just run the following commands after installation on Debian:

apt-get update

aptitude update

wget -chttp://www.yusufozturk.info/linux/linux-image-2.6.36-hyperv-debian.

x86_64.deb

wget -chttp://www.yusufozturk.info/linux/linux-headers-2.6.36-hyperv-debian.x86_64.deb

apt-get install build-essential

dpkg -i linux-image-2.6.36-hyperv_2.6.36-hyperv-10.00.Custom_amd64.deb

linux-headers-2.6.36-hyperv_2.6.36-hyperv-10.00.Custom_amd64.deb

echo -e "hv_vmbus\nhv_storvsc\nhv_blkvsc\nhv_netvsc" >>

/etc/initramfs-tools/modules

update-initramfs –u –k 2.6.36-hyperv 

After these commands and the server reboot, the IC is already running, according to figure 2:

Figure 2: Debian on Hyper-V  

Also, there is a version of Unix called SCO OpenServer 5.0.7V which comes with the IC for Hyper-V. To prepare an environment and demonstrate some systems running non-Microsoft OSes for a Webcast presented to the community about Linux on Hyper-V in 2009, I got in touch with the leaders of SCO OpenServer wondering if there were any plans to create a version that could support Hyper-V. To my surprise the director of the SCO, Daniel called me stating that there was not this support and that he was trying to connect with the team of Microsoft virtualization to create a version for Hyper-V. After a few months he sent a test version to show the new operating system. This example shows the result of community work and that we can get some achievements with the willpower and dedication. After the creation of the SCO 5.0.7V he sent me an email thanking me for the help and cooperation.

The link to the new version can be viewed below: 

http://www.sco.com/products/openserver507v/hyperv/

In the picture below you can also see the virtual machine running SCO OpenServer 5.0.7V .

Figure 3: SCO OpenServer 5.0.7V* *

Therefore, the list of systems with no integration with Microsoft Hyper - V is as follows : 

  • Ubuntu Server 10.0
  • CentOS 5
  • Debian 2.6.36 
  • SCO OpenServer 5.0.7V
  • RedHat Enterprise 5.2, 5.3, 5.4 and 5.5 
  • Suse Linux Enterprise 10 SP3 and 11. 

We hope this list continues growing up and we have more third-party systems running on Hyper -V.