The open source hypervisor KVM is well known as a hypervisor for Linux workloads. However, many folks assume KVM does not run Windows workloads, or at least does not run them very well. In truth, KVM is well suited for both Linux and Windows workloads, both from a technology and a user perspective. And, when moving into the cloud where lower cost, scalability and security are primary concerns, KVM provides a compelling case as mixed workload hypervisor.
Still, some people cling to the incorrect assumption that KVM can’t handle Windows. They couldn’t be more wrong. Here’s some background followed by a break down of the key issues:
Avi Kivity created the KVM Hypervisor in the mid-2000’s to run Windows in a Virtual Desktop Infrastructure (VDI) product. Most people are surprised to learn that KVM’s heritage is to run Windows desktops. Windows (both desktop and server) are today and have always been supported by KVM as first-class workloads. This support begins with KVM developers, who test their code with Windows workloads before merging it into upstream KVM repositories.
Red Hat, the leading (but far from only) distributor of KVM, has a mutual certification and support agreement with Microsoft for Windows running on KVM. Red Hat customers who run Windows VMs may receive full support from Microsoft for problems in their VMs.
Features that Benefit Windows Workloads with KVM
Windows memory management techniques allow KVM to optimize memory use on the host especially safely and efficiently for Windows guests. KVM’s capabilities in this regard compare favorably to other hypervisors according to our internal testing. The Kernel Shared Pages (KSM) feature de-duplicates identical memory pages on a host. The Windows Operating System “zeroes” its memory pages when booting, and KSM de-duplicates those pages by mapping them to the host kernel’s “zero page.” With the first enterprise release of KVM several years ago KSM proved so effective with Windows that we mistakenly assumed we would not need any other memory management technique for guests.
KVM provides Windows device drivers for network and disk. These drivers provide high-performance I/O throughput for Windows guests. They are analogous to VMware’s VMTools.
Hardware virtualization support is making KVM yet more effective at running Windows guests. Recent Intel processors have a Pause Loop Exit (PLE) feature that mitigates a performance-killing condition called guest pre-emption that disproportionately effected multi processor Windows guests. We should expect more of this in the future. Processor vendors pay special attention to Windows performance issues.
The advantage in costs provided by KVM is clear, according to a price comparison of KVM vs. VMware and Microsoft Hyper-V done by IBM’s David Hsu, KVM (as provided by its most expensive distribution) is always less expensive than VMware whether you are virtualizing Windows or Linux servers. Hsu’s analysis shows that for Linux-only-based environments there is a strong case for choosing KVM, and for mixed workload environments as well, KVM provides a strong incentive to cost-conscious companies to avoid VMware or even Hyper-V. In a Windows-only environment KVM may be more expensive than Hyper-V, but VMware is always the most expensive choice no matter what the scenario.
A Windows-Like Administrative Interface for a Locked-Down Hypervisor
RHEV-H from Red Hat (and its Open Source counterpart at ovirt.org) provide a stand-alone, locked-down hypervisor with a Windows-like administration toolset. (Some find the concept similar to VMware ESX). In addition KVM has a Windows-friendly management infrastructure called RHEV-M with an “upstream” open-source counterpart at ovirt.org) These tools are ideal for KVM users who don’t have (or desire) Linux administrative experience.
RHEV-M is available from Red Hat as a server or desktop VDI infrastructure. We have customers who are using both versions of RHEV-H/RHEV-M successfully. It shows that KVM has a form factor and a management infrastructure that is identical to and competitive with VMware ESX. No Linux skills required.
When reviewing KVM’s stellar SPECvirt benchmark scores many folks assume that KVM’s performance for Linux workloads does not transfer to Windows. In fact, KVM’s performance and scalability are roughly the same for Windows and Linux workloads, especially with hardware that supports the PLE feature, which as been available in servers since 2011. The linear scalability we see with the published SPECvirt is evident in our tests with both Linux and Windows workloads.
KVM offers the same security features that VMware has - plus additional others, including Mandatory Access - a feature that provides security between virtual machines and is enabled through SELinux. This is a feature that is not universally available. It comes with KVM and it applies to Windows workloads as well as to any other workload you can run with KVM. So, even if you have got a pure Windows environment, that would be a benefit that KVM would provide over any other choice of hypervisor. This is of particular importance of course to cloud providers with multiple tenants or customers with workloads that must be securely separated. As a proof point of the significance of this technology, Red Hat Enterprise Linux 6 with the KVM hypervisor on IBM Systems was recently awarded the Common Criteria Certification at Evaluation Assurance Level 4+.
KVM and Windows Applications at Work
There are many examples of KVM doing some heavy lifting at the enterprise level, supporting Windows workloads. IBM SmartCloud Enterprise , a software as a service offering, uses KVM for both Windows and Linux workloads; the New York branch of a large Chinese bank is using KVM to virtualize Windows servers; and Open Virtualization Alliance (OVA) member company Abyres has transitioned several Malaysian government agencies to open virtualization environments with KVM running Microsoft Windows applications such as Exchange.
Virtualization and the cloud caught on in the first place because of concerns about cost. After making the decision to go that route, the choice isn’t over, and increasingly, KVM provides a competitive, cost-effective option with the features enterprises need for x86 virtualization – for Windows workloads as well as Linux.
IBM Distinguished Engineer & Chief Virtualization Architect, Open Systems Development Software Architect