AWS, Google and Oracle use other open source virtualization platforms instead of VMware.
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 (CEO, 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.
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, 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. That is understandable, but the other platforms never leave you all alone. Because whenever you need a huge community that you can share your problem and search for solutions take part on your side.
There are three real platforms in the virtualization world where virtualization methods, which we call Type 1, are applied. 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 servers 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 reach directly to the main sources of Kernel. (Paravirtualize and Dom-0). However, as a completely open-source platform known by everyone unfortunately, it has been stuck in a difficult situation as a result of the participant big companies not sharing 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 a come-back to the XEN project.
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 interested have found the fields of usage in embedded devices, the automobile sector, 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. 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 set up 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
- 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.
1. Virtualization 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 Australian 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 as after 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 when the KVM platform runs in the background has been thought it is 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 resulted by its community.
- Ovirt and RHEV
Indeed Ovirt is a very old project. Afterward, Redhat bought the company and converted “the code” as an open-source. A few years ago “the code” has been started to be developed from scratch. If it needs 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, I will have 4 types virtualization model recommendations;
- 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: Joshua Hoehne/www.unsplash.com