Server Virtualization Platform Choices



  • Today there are four enterprise server virtualization platforms (type 1 / bare metal hypervisors) and each is a little unique and all are available for free, for the PC platform. The four are ESXi, Xen, HyperV and KVM.

    ESXi: Made by industry heavyweight VMware, ESXi is the only one of the pack that is not completely free for every feature. This alone makes ESXi an odd choice for most new implementations. ESXi's claim to fame is its age, being the first PC hypervisor available in the enterprise space. It has good performance and an enormous ecosystem, much of which is not applicable to those looking to use free or low cost versions of the software. No enterprise class public cloud provider uses ESXi. ESXi runs completely self contained and has no "host" VM to manage it or to provide hardware compatibility.

    Xen: Made by the Linux Foundation (but is in no way Linux or UNIX) Xen is the other old, venerable virtualization technology. Free from top to bottom for every feature and including many features that ESXi lacks, Xen made its mark by being the only option for supporting pure paravirtualization. Xen also became famous for being the technology on which cloud technology was first built and is still the leader in the cloud space with the biggest, most critical platforms like Amazon EC2, Rackspace and IBM / Softlayer being built upon it. Runs a guest VM referred to as the Dom0 (typically containing Linux but not necessarily) that handles hardware compatibility, management and many features. A sensible choice for most small and medium businesses.

    HyperV: Made by Microsoft. One of the newcomers to the space and only recently mature enough for enterprise use. Features are all free but access to features either requires third party software and/or expensive Microsoft management tools. Uses the same Dom0 model as Xen, but this host VM always contains a version of Windows only and is confusingly referred to as being physical, even though it is virtual. HyperV is similar in technology to Azure and more or less is used in Microsoft's Azure cloud (but HyperV and Azure are not strictly identical.) HyperV is also a sensible choice for most small and medium businesses.

    KVM: Also from the Linux Foundation. A hypervisor literally built inside of Linux and works more like ESXi than like Xen or HyperV. There is no Dom0 host environment. KVM, like Xen, is completely free for the entire stack but is far less mature. Famous for high performance for Windows guests. KVM's only large cloud environment is Digital Ocean. KVM is rarely seen used on its own and would be an odd choice for most businesses to deploy on its own. KVM's main places for use are as a research platform for new virtualization techniques and in fully encapsulated virtualization appliances like Unitrend's recovery devices or the Scale Computing platforms.



  • Very good description of the different enterprise platforms that exist. Is there any work on a write up about the possible use cases of each, and where one might fit better than another for any given set of reasons?



  • Not too much for choosing between them. The biggest factors are things like existing expertise. But outside of that, here is some guidance:

    For the majority of companies looking to install a new hypervisor without a preexisting environment or preexisting expertise, the two key choices are HyperV and XenServer. KVM is fine when in an appliance but running it on it own makes little sense unless an above factor is included. VMware is extremely crippled when free and pretty crippled when not; the cost and lack of benefits to VMware essentially rule it out (except for the cases above.)

    So for the remaining two choices in a typical environment:

    Xen

    • When you have a mix of workloads as it is ideal for Linux or anytime that you want to leverage PV support. But HyperV is fine for most Linux too.
    • When you are doing hybrid work with Amazon, Rackspace or Softlayer.
    • When you want to avoid any need for third party tools.

    HyperV

    • When you have a Windows heavy shop. But Xen is fine for Windows too.
    • When you plan to leverage free third party tools like those from Starwind, Unitrends or Veeam.
    • When you are using Azure for hybrid cloud.

    The two are well matched. Xen has more maturity and more hard core enterprise use and is generally quite a bit easier to use for the included functionality.



  • What sort of backup tools do you see people using in XEN environments? Is there a Veeam \ Unitrends \ VDP equivalent?



  • @Drew said:

    What sort of backup tools do you see people using in XEN environments? Is there a Veeam \ Unitrends \ VDP equivalent?

    Two big ones, that I see. For low cost environments people tend to use free tools that are more limited like NAUBackup. Or for those going into the space where they would be paying for backup tools, Unitrends is available (just not the free version.) So for most businesses, Unitrends is the big product of choice.

    Of course that is only at the Xen layer. If you want traditional filesystem backups all of the usual tools like Shadow Protect will work just fine.



  • @scottalanmiller said:

    KVM is rarely seen used on its own and would be an odd choice for most businesses to deploy on its own. KVM's main places for use are as a research platform for new

    I thought tools like ShadowProtect could restore images from "bare metal" back to production? If that is the case, what reasons would you have for using Both?



  • @dafyre said:

    @scottalanmiller said:

    KVM is rarely seen used on its own and would be an odd choice for most businesses to deploy on its own. KVM's main places for use are as a research platform for new

    I thought tools like ShadowProtect could restore images from "bare metal" back to production? If that is the case, what reasons would you have for using Both?

    They can't even take images so.... 😉



  • @scottalanmiller Ha ha ha. This is good to know!



  • @Drew said:

    What sort of backup tools do you see people using in XEN environments? Is there a Veeam \ Unitrends \ VDP equivalent?

    I have a bash script that takes snapshots and exports them, then deletes the snapshot. It's based on custom fields for the VM. Here's a link: https://github.com/markround/XenServer-snapshot-backup



  • We use NAUBackup and schedule it within Crontab for our XenServer.



  • @scottalanmiller What do you think of using KVM as a replacement for VirtualBox? Do you gain anything by using VirtualBox on a Linux desktop other than it's possibly easier to configure? I would assume you get better performance from using KVM?



  • @johnhooks said:

    @scottalanmiller What do you think of using KVM as a replacement for VirtualBox? Do you gain anything by using VirtualBox on a Linux desktop other than it's possibly easier to configure? I would assume you get better performance from using KVM?

    Why pick KVM? All of the examples Scott gives are type 1 hypervisors, including KVM. Assuming you're looking to move from a type 2 hypervisor (VirtualBox) to a type 1, from the original post it seems pretty clear that KVM seemed the least likely option that Scott would recommend.



  • @johnhooks said:

    @scottalanmiller What do you think of using KVM as a replacement for VirtualBox? Do you gain anything by using VirtualBox on a Linux desktop other than it's possibly easier to configure? I would assume you get better performance from using KVM?

    VirtualBox is a type 2 hypervisor so you would "never" use it for server virtualization. It's for running things with consoles on a desktop or laptop. KVM is type 1 virtualization and the two would never come up in the same scenarios.



  • @scottalanmiller said:

    @johnhooks said:

    @scottalanmiller What do you think of using KVM as a replacement for VirtualBox? Do you gain anything by using VirtualBox on a Linux desktop other than it's possibly easier to configure? I would assume you get better performance from using KVM?

    VirtualBox is a type 2 hypervisor so you would "never" use it for server virtualization. It's for running things with consoles on a desktop or laptop. KVM is type 1 virtualization and the two would never come up in the same scenarios.

    The reason I ask is because you can run say an Ubuntu desktop and install KVM. Then it's possible to run virtual machines and use the VirtManager console. You would have the performance of a type 1 and still have it on the same machine.



  • Does that really matter on a workstation? And if this is on a server, do you need a gui console on the server?



  • @Dashrender said:

    Does that really matter on a workstation? And if this is on a server, do you need a gui console on the server?

    Just workstation. What's the advantage to a type 2 if you can use a type 1?



  • @johnhooks said:

    @Dashrender said:

    Does that really matter on a workstation? And if this is on a server, do you need a gui console on the server?

    Just workstation. What's the advantage to a type 2 if you can use a type 1?

    Dedicated resources to the OS and the ability to completely disable the VMs.



  • @scottalanmiller said:

    @johnhooks said:

    @Dashrender said:

    Does that really matter on a workstation? And if this is on a server, do you need a gui console on the server?

    Just workstation. What's the advantage to a type 2 if you can use a type 1?

    Dedicated resources to the OS and the ability to completely disable the VMs.

    Good point.



  • What do you hope to gain when using virtualization on a workstation by using a type 1 hypervisor?

    Other than HyperV, do any of them allow you access to a GUI from the console? If not, your stuck using a second machine as a workspace machine. Using a type 2 on a workstation allows you to have your local machine GUI, etc and windowed or full screen VMs.



  • If KVM gives you the local console features, I can see that being slightly beneficial. Definitely better performance of the VMs. The focus of the product is different, not sure it is worth the effort.



  • @Dashrender @mlnews

    Ya you can have a full desktop gui on the workstation and have KVM running. Then just use VirtManager to access the console for each virtual machine.



  • @johnhooks said:

    @Dashrender @mlnews

    Ya you can have a full desktop gui on the workstation and have KVM running. Then just use VirtManager to access the console for each virtual machine.

    Sounds like it works nearly the same as HyperV.

    But I'm with Scott, not sure it's worth the effort for a hypervisor that has so little play.



  • I think that KVM might be a little lighter. Although VirtualBox is tuned for use with local graphics and KVM is not. One would be used "as designed" and the other more or less "making do." Not sure that the KVM experience would be better, likely worse. So if you were virtualizing servers and wanted them to process as quickly as possible KVM might be the better answer. If you want a good desktop experience, I would think that VirtualBox would be the answer.



  • @Dashrender said:

    @johnhooks said:

    @Dashrender @mlnews

    Ya you can have a full desktop gui on the workstation and have KVM running. Then just use VirtManager to access the console for each virtual machine.

    Sounds like it works nearly the same as HyperV.

    But I'm with Scott, not sure it's worth the effort for a hypervisor that has so little play.

    I just learned this the other day. Apparently this is how Gnome Boxes works. It sets up KVM machines in the user space. So each user has their own KVM VMs. So you can manage them with either Boxes or Virt-Manager.



  • @johnhooks said:

    I just learned this the other day. Apparently this is how Gnome Boxes works. It sets up KVM machines in the user space. So each user has their own KVM VMs. So you can manage them with either Boxes or Virt-Manager.

    So.... VDI?



  • @scottalanmiller said:

    @johnhooks said:

    I just learned this the other day. Apparently this is how Gnome Boxes works. It sets up KVM machines in the user space. So each user has their own KVM VMs. So you can manage them with either Boxes or Virt-Manager.

    So.... VDI?

    Well they are full VMs that the user can create. When you look in virt-manager it has KVM machines in localhost, when you create one with Gnome Boxes it's under localhost:user (or something to that effect). So like virtualbox but with KVM and per user.



  • @johnhooks said:

    When you look in virt-manager it has KVM machines in localhost, when you create one with Gnome Boxes it's under localhost:user (or something to that effect). So like virtualbox but with KVM and per user.

    https://en.wikipedia.org/wiki/GNOME_Boxes



  • @johnhooks said:

    Well they are full VMs that the user can create.

    Right... so VDI 🙂

    Full VMs with remote graphical access. That's all VDI is.



  • @scottalanmiller said:

    @johnhooks said:

    Well they are full VMs that the user can create.

    Right... so VDI 🙂

    Full VMs with remote graphical access. That's all VDI is.

    Would anything with VNC or spice be considered that also?



  • @johnhooks said:

    Would anything with VNC or spice be considered that also?

    Spice, yes, that's specifically a VDI protocol. Anything using VNC for the purpose of doing computing with it, certainly.


Log in to reply