A modern infrastructure's needs are ever-growing. As demand grows for scaling up applications, our existing servers and storage are no longer enough. This is the point when most businesses look at setting up a virtualized environment on-premises or turning to public cloud infrastructure. But the cost of setting up your own environment or running it on the public cloud can be daunting.
Fortunately, it is entirely possible to run a full-featured virtualization environment with completely open source products without burning a hole in your pocket.
A hyperconverged environment is one where compute, storage, and network resources are all on the same servers, managed by a single interface. As I will show in this article, you can run a full-featured virtualized infrastructure with optimal use of servers by using oVirt and Gluster to deploy a hyperconverged solution.
You will need the following hardware infrastructure:
- Three servers with:
- 32GB RAM or more
- Minimum 256GB storage (for anything more than a proof of concept, you will need more storage, think in terabytes)
- Dual network interface controller (NIC) and at least one 10GiB port
- Network switch
- Configured media access control (MAC) reservation and Domain Name System (DNS) entry
The software components you need for this solution are:
- oVirt, an open source virtualization software management solution with all the enterprise features you need, such as host, virtual machine (VM) and network management, high availability, and live migration
- GlusterFS, an open source scalable distributed storage that can run highly available petabyte-scale storage on commodity hardware.
How it works
These two open source solutions work together to provide a hyperconverged solution. Each server provides both hypervisor and storage capabilities, with the VM disk images stored on the Gluster volume.
The Gluster volume allows storage from multiple servers to present as a single, unified namespace to the client. In this solution, the Gluster volume is configured from storage on the three servers as a replica-3 volume, which means every bit of data that's written is replicated to two other servers to provide redundancy and resiliency against server outages.
Gluster volumes can also be configured to run as arbiter volumes, which have lower storage requirements than replica-3 volumes, as data is copied to only one other server while metadata is written on a third server. Both of these volume configurations ensure that the VMs continue to run without downtime if one of the servers goes down.
Libvirt and qemu-kvm are used to create the VM images and run them on the servers. The oVirt engine manages creating, scheduling, and monitoring of VMs. Since the storage is shared across all three servers, the VMs can run on any of the three servers, allowing for live migration and high availability.
oVirt has two main components:
- oVirt Engine is a Java-based web application that manages the server and virtual machines. The engine can either run on a standalone server or a VM within the same infrastructure that it manages.
- Vdsm is a Python service that runs on every server and interacts with the engine and the subcomponents on the server.
In the hyperconverged deployment, the oVirt engine runs as a VM managing the servers that it runs on. In this mode, it's also known as "Hosted Engine."
Putting it all together
With so many components involved, you may find the thought of setting everything up daunting. However, installation is easy with the oVirt Node ISO, which contains all the required packages and a Cockpit-based installation wizard that guides you through the steps.
- Download and install the latest oVirt Node ISO on all three servers.
- Navigate to the Cockpit server administration URL on any of the servers at
- Follow the steps for the Hosted Engine installation with Gluster.
These steps guide you through:
- Setting up networks and hosts
A minimum of three hosts is required to run a highly available environment. The wizard prompts you to separate the storage network from the management network.
- Setting up the Gluster volume
By default, three Gluster volumes are created to hold the VM disk images. The engine volume is dedicated to holding the Hosted Engine disk image. Separating this helps with easy backup and recovery.
Most of the configuration is automated, but you need to ensure you provide the underlying disk information to the user interface.
- Deploying the oVirt engine as Hosted Engine
Once the storage has been configured, you must provide the details for the Hosted Engine VM—the fully qualified domain name (FQDN) and the MAC address reserved for the VM—to complete the deployment.
- Setting up networks and hosts
It's this simple to set up a fully functional hyperconverged environment with a management interface you can use to manage and monitor your virtual machines, storage, and network. For further information, please refer to the oVirt-Gluster hyperconvergence guide.