We configure oVirt for centralized KVM virtualization management. oVirt is an enterprise open-source platform that forms the basis of Red Hat Virtualization. If you need VMware vCenter functionality without the licensing costs, oVirt provides Live Migration, High Availability, granular RBAC, and centralized management via a web interface and REST API. However, installation and configuration require careful network and storage planning. Contact us to evaluate your project.
Typical Problems When Implementing oVirt
Network planning. Without dedicated logical networks for management, VM traffic, migration, and storage, conflicts and performance drops occur. For example, if storage traffic goes through the management network with MTU 1500 instead of 9000, NFS speed drops by 30%.
Storage selection. NFS is simple and fast (up to 1 GB/s), but iSCSI with multipath provides fault tolerance (up to 10 GB/s). Gluster is suitable for hyperconverged solutions but requires additional replication configuration. Wrong choice leads to HA failures.
HA configuration. If VM priorities are not set, critical services may not get resources first when a host fails. Proper configuration ensures 99.9% uptime.
Why oVirt Beats Paid Solutions?
oVirt provides VMware vCenter functionality without licensing fees. In terms of total cost of ownership, oVirt is 2–3 times cheaper with comparable SLA, especially on clusters of 10+ hosts. For a 3-host cluster, licensing savings can reach $12,000 per year compared to VMware vSphere. The open-source code and active community ensure vendor independence. Over three years, savings can exceed $50,000 for a 10-host cluster.
How We Do It: Case Study of a 3-Host Cluster
In a recent project for one of our clients (a mid-size enterprise), we deployed oVirt for a company with 50 VMs. We used a self-hosted Engine on CentOS Stream 9, three hosts with compatible Intel Xeon processors, and NFS storage on a separate server.
Step 1: Engine Installation
# Installation on RHEL 9 / CentOS Stream 9
dnf install -y centos-release-ovirt45
dnf install -y ovirt-engine
# Run the setup wizard
engine-setupengine-setup is an interactive wizard that configures PostgreSQL (local or external), Keycloak/SSO, Apache reverse proxy, and SSL certificates. For most questions you can accept defaults, but a few are critical:
- FQDN of the Engine must be resolvable from cluster hosts
- DWH (Data Warehouse) – enable if you need metric history
- Grafana – enable alongside DWH for dashboards
Step 2: Host and Cluster Configuration
After Engine installation, open the web interface and add KVM hosts. oVirt installs VDSM on the host via SSH. Host requirements: RHEL/CentOS/AlmaLinux 9, disabled firewalld (Engine manages iptables via VDSM), identical or compatible CPUs in the cluster for Live Migration.
Network configuration via oVirt Engine:
Logical Networks in oVirt:
├── ovirtmgmt — management network (mandatory, created automatically)
├── vm-network — VM traffic (VLAN 100)
├── migration — Live Migration traffic (dedicated network, 10 GbE)
└── storage — NFS/iSCSI traffic (Jumbo frames, MTU 9000)Each logical network is assigned to physical NICs via Network Bonds or directly. oVirt applies the configuration to all cluster hosts centrally.
Step 3: Storage Domain: NFS and iSCSI
For NFS Storage Domain:
# On the NFS server — export with correct permissions
cat >> /etc/exports << 'EOF'
/exports/ovirt-storage 192.168.1.0/24(rw,sync,no_subtree_check,no_root_squash)
EOF
exportfs -a
In oVirt Engine: Storage → Domains → New Domain → type NFS, specify the path. oVirt automatically mounts NFS on all cluster hosts and formats it in its own format (SPM manages metadata).
For iSCSI: Storage → Domains → New Domain → type iSCSI, specify the Target IQN. oVirt uses multipath for fault tolerance and automatically configures multipath.conf on hosts.
ISO Domain — a separate Storage Domain for ISO images. Hosts mount it to install OS on VMs.
Step 4: How to Configure Live Migration and HA?
Live Migration works automatically via DRS (if load balancing is enabled) or manually from the UI. Requirements: shared Storage Domain, migration network with sufficient bandwidth. Average migration time is 5 minutes.
# Via oVirt REST API (useful for automation)
curl -X POST \
-H "Content-Type: application/xml" \
-H "Accept: application/xml" \
--user admin@internal:password \
"https://ovirt-engine.company.ru/ovirt-engine/api/vms/VM_ID/migrate" \
-d '<action><host id="HOST_ID"/></action>'
HA for VMs is configured per VM: Edit VM → High Availability → Enable. When a host fails, the oVirt HA Manager restarts the VM on another host in the cluster. VM priority during HA failover: Low/Medium/High — critical VMs get resources first.
Host Requirements for oVirt
- OS: RHEL, CentOS, or AlmaLinux 9
- CPU: compatible for Live Migration (same families)
- Network: dedicated logical networks, Jumbo frames for storage (MTU 9000)
- Firewall: disable firewalld (oVirt manages iptables via VDSM)
- Disks: at least 50 GB for OS, the rest for VM storage
Step 5: Ansible Integration
The ovirt.ovirt collection allows managing oVirt via Ansible:
---
# playbook: create-vm.yml
- hosts: localhost
collections:
- ovirt.ovirt
vars:
engine_url: https://ovirt-engine.company.ru/ovirt-engine/api
engine_user: admin@internal
engine_password: "{{ vault_ovirt_password }}"
tasks:
- name: Create VM
ovirt_vm:
auth:
url: "{{ engine_url }}"
username: "{{ engine_user }}"
password: "{{ engine_password }}"
name: webserver01
template: rhel9-template
cluster: production
memory: 8GiB
cpu_cores: 4
state: running
cloud_init:
host_name: webserver01.company.ru
authorized_ssh_keys: "{{ lookup('file', '~/.ssh/id_rsa.pub') }}"
---
What's Included in the Work
- Architecture planning: network plan, Engine and host sizing, storage type selection
- oVirt Engine installation with DWH and Grafana (optional)
- KVM host connection and logical network configuration
- Storage Domain creation (NFS, iSCSI, Gluster) and ISO Domain
- Live Migration and HA setup with failover testing
- Documentation delivery: admin runbook, operational procedures
- Team training: basics of management via UI and REST API
- Support during the commissioning phase (2 weeks) with guaranteed response time
Stages and Timelines
| Stage | Content |
|---|---|
| Planning | Network plan, engine and host sizing, storage selection |
| Engine Installation | oVirt Engine, DWH, Grafana |
| Host Configuration | Adding KVM hosts, network bonds, logical networks |
| Storage | NFS/iSCSI Storage Domain, ISO Domain |
| Templates | Creating VM templates with cloud-init |
| HA and Migration | Configuring HA policies, failover testing |
| Documentation | Runbook, operational procedures |
| Storage Type | Throughput | Fault Tolerance | Setup Complexity |
|---|---|---|---|
| NFS | up to 1 GB/s (Gigabit) | Medium (server redundancy) | Low |
| iSCSI | up to 10 GB/s (10GbE) | High (multipath) | Medium |
| Gluster | up to 5 GB/s (10GbE) | High (replication) | High |
Timelines: 3–5 days for a 3-host cluster with NFS storage. With iSCSI multipath and Gluster storage, up to 7 days.
We will evaluate your virtualization project on oVirt turnkey. With over 50 projects delivered and certified engineers, we bring proven expertise. Get a consultation from an engineer — just reach out. Source: Wikipedia - oVirt







