What Are Virtualization Alternatives?

Most recent version of this article is here.

The more number of data increase in your servers, the more you need to virtualize your machines to manage your systems. In this way, both the costs will reduce and the productivity will increase. After a short research period, the authorized person whoever he or she is (CIO, CTO, OR Director of IT) offers you three different VMware solutions as alternatives.

Since VMware is a corporate company, and everyone uses it. Besides being a corporate company, they have an amazing marketing department. Thus, you can manage your machine in a virtual environment with privileges that can only be supplied by a corporate company. Of course, as long as you pay your bills. 

But don’t forget You have other options besides VMware.

Whereas, you have other options than VMware. Furthermore, these other virtualizing platforms as I will explain in the following part of my article, have been used by all big companies providing cloud services such as AWS, GCP, Oracle and they are free of charge. 

When preferring licensed products, actually you are looking for an assurance that you can lean on in case of any problems you might come across. Open Source always sounds like there is no one behind that solutions. But that is just a marketing argument that is told by Corporate sales people.

That is understandable, but the other platforms never leave you all alone. Because in Open Source you get a huge community that you can share your problem and search for solutions.

There are three real platforms in the virtualization world where Type 1 virtualization is used. The first is licensed VMware, which everyone knows. Others are open source XEN and KVM. In my article, I am going to mention about open source virtualization methods. 

XEN

Xen is a virtualization platform that brings the definition of Paravirtualization in our lives and is actively being used by all big Cloud providers such as particularly AWS, Google, and Oracle. ( You can reach detailed information from this link https://xenproject.org )

Xen which creates the virtualization backbone of many Cloud platforms in the world settles on Kernel of the machine that is operating as a useful virus and helps to new virtual servers to directly connect the HW resources. (Paravirtualize and Dom-0). 

However, as a completely Open Source platform it has been stuck in a difficult situation, it is a zombie project now(June-2020). The reason is the participant big companies, which do not share the parts that are developed for themselves. 

Especially the main virtualization platform of AWS is XEN. (You can see that if you run virtualization virt-what command on the servers that you get from AWS). However, they never make commit back the improvements they made on the hypervisor level to the XEN project. It was too obvious that, when Spectre-Meltdown kernel bugs appeared, they isolate themselves from the problem/solution.

Even though being a very popular and strong company, by violating the main responsibility of being a part of an open-source project, they have kept all the results obtained for themselves and have left “the community support” seriously unproductive.

The competences of XEN which are still actively demanded in the industry, changed its path to different use cases. New XEN Hypervisor has use cases in embedded devices, car industry and smart vehicles. 

  • XCP-NG ( The old Xenserver)

First, let us start with the popular one. XCP-ng is a project which has been started by a company named Vates that has developed Xen-Orchestra. When Xenserver disappeared as an open-source project Dates decided to take the XCP project live again. Though there is not remarkable attention for it, there are customers who are using it severely.

I do not recommend the use of it. There are two essential reasons for that. First of all, the driver support. Generally, you might meet issues related to network cards. The other reason is that the virtualization platform works with XEN kernel must compile for every single new HW Patch release. That causes a loss of a big amount of time and work power.

  • Opensource XEN

When you set up a server that works with Linux, you need to prefer KVM or XEN as a virtualization environment. XEN, especially in Centos and SuSE platforms, can be set up with the package manager. On the other hand in Debian platforms, because they remove the native support, the setup of XEN is more difficult. 

Opensource XEN is being used by the hundreds of small and medium scaled companies right now. The biggest difference with XCP-ng is that not having a managing interface such as XAPI. The biggest difference with XCP-ng is not having a managing interface such as XAPI. 

KVM

KVM: Kernel-Based Virtual Machine. As it can be understood through its’ name, Linux works as a module of Kernel. Especially, in 2005, there was a revolution in the virtualization world after having the support of Intel VT and AMD-v: CPU’s started including virtual machines into their operations. 

In this way, software such as VMware and KVM has started to work as paravirtualized like XEN, in servers that have Hardware Virtualization enabled.

If we simply define; every virtual server in KVM has been created as a “Process” like VMWare and the CPU isolation of these processes is supplied by the VTX register. In the last five years, KVM had reached remarkable maturity and reliability.

Dozens of technology we cannot think of, have been developed with KVM and it is continuing to be developed. The best example for those will be RHEV and Nutanix. Also in small projects for Hyperconverged architecture, KVM virtualization is actively being used.

The community support is very serious and well. In case using stable versions, it is nearly impossible to have a problem except for the hardware issues. 

We can mention three prominent solutions in KVM

  • Opensource KVM

The virtualization method with the easiest setup. In BIOS, after “Virtualization Enable” it would be enough to set up only Linux. After that, it is enough to write the commands given below for Redhat and Debian based servers. 

1Virtualization was activated on the server. Let’s test it first. 

For all Linux, when you write:

$ sudo cat /proc/cpuinfo | grep -E ‘vmx|svm’

If you have the result screen, it means the virtualization through Bios is active, you can continue to the next step. If you have a new command line as output and you don’t have any results, you should activate virtualization through BIOS.

2. Let’s write the following commands to install the virtualization platform.

For Debian,Ubuntu:

$ sudo apt install -y qemu-kvm libvirt-clients libvirt-daemon-system bridge-utils virt-manager

For Centos, Redhat, Fedora 

$ sudo yum install -y qemu-kvm qemu-img virt-manager libvirt libvirt-python libvirt-client virt-install virt-viewer bridge-utils

If you set up with a graphic interface (gnome, KDE) in Linux server that has been set up by opening a terminal write command “virt-manager”. The virtual servers would open an interface which can be created and erased. 

Now you can start to download ISO of virtual servers to be set up. 

  • Proxmox

Promox is an API and an Interface which has been developed by an Austrian company. As a virtualization platform, they are using KVM and LXC. (Because LXC is a Cgroup and Container technology, we should not approach it as a virtualization platform. I will talk about it in another article.) 

Same applies here, having “Virtualization Enable” through Bios, you need to set up Debian Linux or set up through ISO has been created by yourselves. You can find the setup details in this link; https://pve.proxmox.com/wiki/Installation

The company behind Proxmox is not that big. However by having Debian based set up and since the KVM platform runs in the background, makes the solution a very good alternative. During my experience in Proxmox for half a decade I had severe issues two times and both of them had been resolved by its community. 

  • Ovirt and RHEV

Indeed Ovirt is a very old project. Afterward, Redhat bought the company and converted “the code” to a open-source project (aka. Ovirt). A few years ago “the code” has been started to be developed from scratch. I need to tell the truth, it has significant deficiency and definitely, it cannot be an alternative to VMware. 

However, having Redhat as the company to have by the short hairs and the announcement of Oracle by saying they will give support makes it a very serious candidate in this game for the future. 

Even personally we position the product in very different environments (as the production and test environment) for the last three years, Redhat cannot give the expected support yet. Instead of set RHEV, I recommend you set an open-source version with Ovirt. 

If you ask “Which product is better?” my answer is that changes depending on your need.

In case you set up a virtualization platform ranging from test to Cloud, I will have 4 types virtualization model recommendations;

1. The Test Environment 

Proxmox or KVM

(I always advice nested virtualization for test environments)

Server: one or 2 figures

Network: Single network

2. SME and Small Companies

Proxmox or KVM(virt-manager)

Server: At least two or three equivalent servers

Storage: Hyperconverged or local disks

Network: Bonding optional

3. Production Environment 

It is usable in KVM Openstack platform and can be used in Standalone up to ten servers. Live migration and live disk migration can be easily performed. (Virt-Manager) 

Server: Five or more servers. 

Storage: Hyperconverged or Enterprise Storage

Network: 3+ network and bonding (e.g. Eth0+Eth1-management, Eth3+Eth4-vmNet, Eth5+Eth6-Storage Backend )

4.Cloud Environment

There will be a need for an orchestrating vehicle for KVM management. OnApp or Openstack 

Server: Between one hundred and two hundred servers, 2 different geographic environment

Storage: local/object/Hyperconverged/Enterprise (should be all of them)

Network: 4 + bonding + SDN

Photo by: Taylor Vick/www.unsplash.com