More and more, businesses and companies are seeking to repatriate services and infrastructure from the cloud to on-premise or hybrid solutions. This might be for a variety of reasons. Whether repatriating is for cost savings, performance, security, control, or other reasons, it is happening. Increasingly, companies are turning to open source solutions when repatriating services and data.
One of the ways companies are repatriating is by building their own virtualization solutions on-premise or within their own data centers. Whether you call them virtualization management platforms, virtualization orchestration platforms, or something else, this article will compare some of the prominent open source software that businesses are using to build their own virtualization solutions.
LINBIT® develops open source storage integrations for each of the platforms that this article explores so that is why you are reading this article on the LINBIT blog. LINBIT open source integrations can help enhance storage offerings within these platforms and give you benefits such as high availability, disaster recovery, and software-defined storage. At LINBIT, our team recognizes that there are different solutions out there and that the variety of offerings is not simply for competitive reasons. Different platforms cater to different uses and niches within the broader field of virtualization and hypervisor management operations.
In this article, I will try to take an even-handed and agnostic perspective. LINBIT has collaborated with all the platforms in this article but our first allegiance is with your data. The purpose of this article is not to recommend one platform over another but to give you an easily digestible summary of highlights and characteristics for each platform. Hopefully this helps you explore the different offerings more confidently and helps you focus in more quickly on a solution that might best fit your requirements.
Because this article will only compare virtualization management platforms that LINBIT software directly integrates with, this is not a complete picture of the landscape of offerings. You might want to also explore other platforms besides the ones in this article. Even so, the comparison chart and description of platform characteristics can help you prepare to evaluate other choices. Also, even if there is not a direct integration between LINBIT software and the platform you eventually decide to use, you might still be able to incorporate LINBIT software into your solution, for software-defined storage, high availability, or disaster recovery purposes. For example, the open source LINSTOR Gateway software can help you easily create highly available NFS, iSCSI, or NVMe-oF datastores that you might be able to use, even if no direct LINBIT integration with your chosen platform exists.
Open Source Virtualization Management Platforms
The next sections describe four prominent open source platforms for managing virtualization services. These platforms are: Apache CloudStack, OpenNebula, Proxmox VE, and Xen Orchestra. Later sections will describe platform characteristics that you can use to help evaluate your choices, along with a comparison table that shows how the four platforms measure up. Each platform was evaluated for the listed characteristics by using the platform’s documentation and real-world deployment experiences.
Apache CloudStack
Apache CloudStack is an open source “software system designed to deploy and manage large networks of virtual machines (VMs), as a highly available, highly scalable Infrastructure as a Service (IaaS) cloud computing platform.”1 CloudStack has a vast number of configuration and deployment possibilities, due to its concepts of regions, zones, pods, and clusters. CloudStack is almost certainly the most complex virtualization management platform described in this article. The LINBIT team is testing an easy way to deploy Cloudstack, read about it here.
Not only might CloudStack have the most demands on infrastructure due to its deployment scope, it might demand more personnel resources to understand, configure, and maintain it. That said, it can be a great platform for a large organization, such as a public cloud provider. CloudStack can scale massively. Having tens of thousands of nodes across different geographical regions, all under the same management platform, is possible with CloudStack.2
OpenNebula
OpenNebula, according to its website, “combines virtualization and container technologies with multi-tenancy, automatic provisioning and elasticity to offer on-demand applications and services.”3 OpenNebula is also highly scalable, though possibly not to the extent of CloudStack. According to OpenNebula documentation: “The general recommendation is to have no more than 2,500 servers and 10,000 VMs managed by a single instance. [To] grow the size of your cloud beyond these limits, you can horizontally scale your cloud by adding new OpenNebula zones within a federated deployment. The largest OpenNebula deployment consists of 16 data centers and 300,000 cores.”4
One of OpenNebula’s features is its ability to integrate with other systems. To do this, OpenNebula has a way for systems administrators to deploy hooks. A hook can contain a command or script that you can configure to run on various events or actions, such as API calls. For example, you could configure a hook that when a VM is created, its hostname automatically registers with a DNS server.
OpenNebula’s flexibility to integrate with other systems, and its high scalability, make the platform a good fit for a medium to large organization seeking to build a private cloud.
Proxmox VE
Proxmox VE is hyperconverged infrastructure software based on Debian Linux. According to its website, Proxmox VE is an open source “server management platform for enterprise virtualization.”5 Proxmox VE is limited to the KVM hypervisor and Linux Containers (LXC). This allows Proxmox VE users to run containerized applications alongside traditional VMs without further configuration.
Proxmox VE does not scale as well as the other platforms described in this article. Even implementing a Proxmox VE stretched cluster is something that cannot readily be done. With these limitations accounted for, Proxmox VE is easy to install, set up, and learn. Proxmox VE is a great match for small installations or home labs and is widely used in these environments.
Xen Orchestra
Xen Orchestra (XO) is an open source platform that allows you to “visualize, manage, backup and delegate your XCP-ng (or XenServer) infrastructure.”6 XCP-ng stands for “Xen Cloud Platform – next generation” and it began as a fork of the Linux Foundation’s Xen Project. You can scale recent versions of an XO deployment to thousands of VMs. XO scalability is not to the level of a CloudStack or OpenNebula deployment perhaps, but it is certainly beyond the realm of a home lab and covers the deployment potential a small or medium sized organization might want. Because XO was built around using XCP-ng as a hypervisor, it is a great open source management platform for organizations migrating from Citrix XenServer or VMware deployments.
Evaluating Different Virtualization Platforms
To evaluate different virtualization platforms, this article uses a list of characteristics. While not an exhaustive list of characteristics, the focus is on the obvious ones on which you will likely base a preliminary evaluation of your choices. These characteristics are:
Hypervisor support
There are different hypervisors, such as KVM, Xen, VMware ESXi, and others. Which ones does a given platform support? It does not make sense to choose a platform if the platform does not support your virtualization requirements.
Support for running multiple hypervisors
Can you run multiple hypervisor providers at the same time within the platform?
Container support
Does the platform support running containers besides running virtual machines (VMs)?
Storage system support
Just as there are different hypervisor providers, there are different storage types, such as block, file, and object, and different ways to provide storage, such as SAN, NAS, SDS, and others.
Scalability
This might seem like an impenetrable buzzword but at least in the context of this comparison article, it just means, “How easily can you add more nodes within the platform?”
Management interface type
How does an administrator interface with the platform? Is there a GUI or CLI option, or both?
API support for automations and integrations
Does the platform have an API that you can use, for example, if you need to “travel off-road” and build tools that might be specific to your requirements for tasks that you cannot do readily with the platform’s own interface?
Platform support options
Bringing things back from the cloud does not necessarily mean that you also need to support your choice of platform in-house. What are the support options for a given platform? Community forums? Paid support options?
Maintained and has longevity
How long has the platform been around? Are there regular updates or security patches?
Integration with other systems or platforms
Can you integrate the platform with other platforms or solutions, for example, software-defined storage or networking solutions, or other or virtualization platforms if you need a hybrid environment?
Backup and recovery capabilities
Does the platform have backup and recovery capabilities?
Comparing Open Source Virtualization Management Platforms
The following table lists characteristics and shows how different virtualization management platforms measure up.
CloudStack | OpenNebula | Proxmox VE | Xen Orchestra | |
---|---|---|---|---|
Hypervisor support | ||||
Hyper-V | ||||
KVM | ||||
VMware | ||||
Xen/XCP-ng | ||||
Can run multiple hypervisors | ||||
Container support | ||||
Docker VM | ||||
Kubernetes | ||||
LXC | ||||
Storage system support | ||||
GlusterFS | ||||
iSCSI | ||||
Local storage | ||||
LVM group | ||||
NFS | ||||
SMB/CIFS | ||||
ZFS | ||||
Third-party storage | ||||
LINSTOR/DRBD | ||||
Scalability | ||||
Management interface | GUI & CLI | GUI & CLI | GUI & CLI | GUI & CLI |
API | ||||
Support options | paid (third-party) & community | paid & community | paid & community | paid & community |
Maintained and has longevity | ||||
Integrations | ||||
Backup and recovery | plugins | integrated | integrated & plugins | integrated & plugins |
Conclusion
Hopefully this article gives you a starting point for comparing different open source virtualization and hypervisor management platforms.
To summarize each platform and what might be its ideal use case:
- Apache CloudStack: Best suited for large scale deployments such as those spanning multiple zones or regions. A business that provides VPS services comes to mind.
- Open Nebula: Well suited for medium to large scale deployments. Flexibility and customization possibilities make it a good choice for an organization deploying a private cloud.
- Proxmox VE: Well suited for smaller organizations and home labs that want a platform for managing KVM or LXC virtualization. Proxmox VE is very popular because it is easy to install, set up, and has a quick learning curve.
- Xen Orchestra: A great fit for small to medium sized organizations looking for an alternative to Citrix or VMware platforms for managing XCP-ng or XenServer virtualization.
You can watch LINBIT CEO and DRBD creator, Philipp Reisner, succinctly summarize each of these platforms during a LINBIT-hosted community meeting that brought together technology leaders and experts in the virtualization management field.
If you noticed something inaccurate or missing from this article, perhaps a comparison characteristic that is important to you, or if you want help navigating your choices to find a solution that best meets your requirements, contact us.
Resources
To help you explore these platforms more, here are some further resources.
Apache CloudStack
- Website
- Open source codebase
- Documentation
- Integrating LINBIT software with CloudStack
- LINBIT Cloudstack HCI Appliance
OpenNebula
Proxmox VE
Xen Orchestra for XCP-ng and Xen Server
📝 NOTE: XOSTOR is the Vates-developed SDS storage integration for XCP-ng, built by using the LINSTOR® API.
LINBIT Open Source Software
While not a complete list, the following are some links to LINBIT open source software that you can use either integrated with, or alongside your chosen platform:
- DRBD®, high-performance data replication technology that you can use as part of an HA solution.
- LINSTOR, a software-defined storage management system, typically used for managing DRBD resources, especially a large number of them.
- LINSTOR Gateway, a tool that you can use with DRBD, LINSTOR, and DRBD Reactor, to easily create highly available iSCSI or NVMe-oF targets, or NFS exports.
- DRBD Reactor, software that monitors and reacts to DRBD events. One of the most popular uses for DRBD Reactor is as a cluster resource manager (CRM) that is easier to configure and deploy than Pacemaker.
If you want to evaluate LINBIT software using the convenience of prebuilt packages, rather than building from source code, contact the LINBIT team.
https://xen-orchestra.com/docs/↩︎
https://cloudstack.apache.org/↩︎
https://www.shapeblue.com/apache-cloudstack-use-cases/↩︎
https://opennebula.io/multi-cloud/↩︎
https://docs.opennebula.io/6.9/installation_and_configuration/large-scale_deployment/scalability.html↩︎
https://www.proxmox.com/en/proxmox-virtual-environment/overview↩︎