Virtualization allows for the partitioning of a single compute machine into multiple virtual computers, each with its own operating system. The Virtual Machines created through Virtualization are fully isolated from each other to appear as if running on private hardware. By adoption Virtualization you’re able to provision new virtual servers faster than the time it takes to deploy new physical hardware.
A Virtualization management solution is required to effectively manage hosts and virtual machines running in an Infrastructure. In most cases, virtualization management tools provides an integrated virtualization environment for easy creation, management, and monitoring of hypervisors, virtual machines, storage, and networking resources. In a nutshell, the Virtualization manager gives you a centralized control over your virtualization infrastructure, as opposed to individually administering hundreds of hypervisors and their virtual machines.
What is oVirt Virtualization platform?
oVirt is a free, and open-source virtualization solution for your entire enterprise Infrastructure. oVirt is built upon popular community projects, including Ansible, Gluster, KVM hypervisor ( libvirt), and PatternFly.
oVirt features include:
- Rich web-based user interfaces for both admin and non-admin users
- Integrated management of hosts, storage, and network configuration
- Live migration of virtual machines and disks between hosts and storage
- High availability of virtual machines in the event of host failure
What is oVirtVirtualization Manager?
oVirt Virtualization Manager is a central management platform for logical and physical resources of a oVirt Virtualization infrastructure. This oVirt Manager uses PostgreSQL databases and is built upon JBoss Enterprise Application Platform (EAP). It provides several management interfaces, including a REST API.
A table showing the key components of oVirt Virtualization Solution:
Service that provides a graphical user interface and a REST API to manage the resources in the environment. The Engine is installed on a physical or virtual machine running Enterprise Linux.
Enterprise Linux hosts (Enterprise Linux hosts) and oVirt Nodes (image-based hypervisors) are the two supported types of host. Hosts use Kernel-based Virtual Machine (KVM) technology and provide resources used to run virtual machines.
A storage service is used to store the data associated with virtual machines.
A service that collects configuration information and statistical data from the Engine.
Install oVirt 4.4 Manager on Rocky Linux 8 / AlmaLinux 8
There are two standards of oVirt Engine deployment. In either deployment option, a VDSM (host agent) runs on all hosts to facilitate communication with the oVirt Engine.
1. Standalone Engine Deployment
In Standalone Engine deployment, the oVirt Engine runs on a virtual machine hosted in a separate virtualization environment, or a physical server not part of oVirt Virtualization stack. The benefits of standalone Engine deployment is the is ease of to setup and management., only that it requires an additional physical server. Hight Availability of the oVirt Engine is the responsibility of SysAdmin.
2. Self-Hosted Engine Deployment
In this deployment method, the oVirt Engine runs as a virtual machine on self-hosted engine nodes (specialized hosts) in the same environment it manages. A self-hosted engine environment requires one less physical server, but requires more administrative overhead to deploy and manage. The Engine is highly available without external HA management.
oVirt Engine Hardware Requirements
The recommended hardware requirements for oVirt Engine deployment are:
- Hard Disk – 50 GB of locally accessible, writable disk space.
- CPU – A quad core x86_64 CPU or multiple dual core x86_64 CPUs.
- Memory – 16 GB of system RAM.
Option 1: Standalone Engine Deployment
For a standalone oVirt Engine deployment follow the steps outlined in this section.
Step 1: Set hostname and time
Set your oVirt Manager machine hostname.
Hostname="ovirt-manager.hirebestengineers.com" sudo hostnamectl set-hostname $Hostname
Configure timezone of our region on the server.
sudo timedatectl set-timezone Africa/Nairobi
Ensure NTP time synchronization is configured correctly.
$ sudo yum -y install chrony $ sudo systemctl enable --now chronyd $ sudo chronyc sources MS Name/IP address Stratum Poll Reach LastRx Last sample =============================================================================== ^- resolv2.bbone.net 2 6 377 34 +731us[ +731us] +/- 51ms ^* time1.uni-paderborn.de 1 6 377 34 -1935us[-1769us] +/- 11ms ^+ mail.l0nax.org 2 6 377 33 +1121us[+1121us] +/- 16ms ^+ tanss.it-risch.de 2 6 377 33 +2277us[+2277us] +/- 11ms
Step 2: Set Static IP addressing and configure DNS
Check your server IP address:
[[email protected] ~]# ip ad 1: lo:
mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo valid_lft forever preferred_lft forever inet6 ::1/128 scope host valid_lft forever preferred_lft forever 2: enp1s0: mtu 1500 qdisc fq_codel state UP group default qlen 1000 link/ether 52:54:00:6d:c1:dd brd ff:ff:ff:ff:ff:ff inet 192.168.77.2/24 brd 192.168.77.255 scope global noprefixroute enp1s0 valid_lft forever preferred_lft forever inet6 fe80::5054:ff:fe6d:c1dd/64 scope link valid_lft forever preferred_lft forever
If the IP address is assigned from DHCP, ensure DHCP server is highly available. Alternatively, configure static IP addressing on the server.
Add your server hostname in DNS server or modify the
$ sudo vi /etc/hosts 192.168.77.2 ovirt-manager.hirebestengineers.com ovirt-manager
Check available free memory if it meets the requirements.
[[email protected] ~]$ free -h total used free shared buff/cache available Mem: 15Gi 203Mi 15Gi 8.0Mi 242Mi 14Gi Swap: 614Mi 0B 614Mi
Check processor hardware requirement.
[[email protected] ~]$ grep -c ^processor /proc/cpuinfo 4
Checking free disk space:
[[email protected] ~]$ df -hT Filesystem Type Size Used Avail Use% Mounted on devtmpfs devtmpfs 7.8G 0 7.8G 0% /dev tmpfs tmpfs 7.8G 0 7.8G 0% /dev/shm tmpfs tmpfs 7.8G 8.5M 7.8G 1% /run tmpfs tmpfs 7.8G 0 7.8G 0% /sys/fs/cgroup /dev/vda4 xfs 39G 2.0G 37G 6% / /dev/vda2 ext4 976M 301M 609M 34% /boot tmpfs tmpfs 1.6G 0 1.6G 0% /run/user/0
Step 3: Add oVirt RPM repository
Let’s add oVirt RPM repository to our Rocky Linux 8 / AlmaLinux 8 server.
sudo yum -y install https://resources.ovirt.org/pub/yum-repo/ovirt-release44.rpm
Check repos enabled after addition:
$ dnf repolist repo id repo name appstream Rocky Linux 8 - AppStream baseos Rocky Linux 8 - BaseOS extras Rocky Linux 8 - Extras ovirt-4.4 Latest oVirt 4.4 Release ovirt-4.4-advanced-virtualization Advanced Virtualization packages for x86_64 ovirt-4.4-centos-ceph-pacific Ceph packages for x86_64 ovirt-4.4-centos-gluster8 CentOS-8 - Gluster 8 ovirt-4.4-centos-nfv-openvswitch CentOS-8 - NFV OpenvSwitch ovirt-4.4-centos-opstools CentOS-8 - OpsTools - collectd ovirt-4.4-centos-ovirt44 CentOS-8 - oVirt 4.4 ovirt-4.4-copr:copr.fedorainfracloud.org:sac:gluster-ansible Copr repo for gluster-ansible owned by sac ovirt-4.4-copr:copr.fedorainfracloud.org:sbonazzo:EL8_collection Copr repo for EL8_collection owned by sbonazzo ovirt-4.4-epel Extra Packages for Enterprise Linux 8 - x86_64 ovirt-4.4-openstack-victoria OpenStack Victoria Repository ovirt-4.4-virtio-win-latest virtio-win builds roughly matching what will be shipped in upcoming RHEL
Enable PowerTools repository
sudo dnf -y install dnf-plugins-core sudo dnf config-manager --set-enabled powertools
Enable all AppStream modules required – javapackages-tools, pki-deps and postgresql:
[[email protected] ~]$ sudo dnf module -y enable javapackages-tools Rocky Linux 8 - PowerTools 8.3 MB/s | 2.5 MB 00:00 Dependencies resolved. ================================================================================ Package Architecture Version Repository Size ================================================================================ Enabling module streams: javapackages-tools 201801 Transaction Summary ================================================================================ Complete! [[email protected] ~]$ sudo dnf module -y enable pki-deps Last metadata expiration check: 0:03:10 ago on Sun 09 Jan 2022 02:38:54 AM EAT. Dependencies resolved. ================================================================================================================================================================================ Package Architecture Version Repository Size ================================================================================================================================================================================ Enabling module streams: pki-deps 10.6 Transaction Summary ================================================================================================================================================================================ Complete! [[email protected] ~]$ sudo dnf module -y enable postgresql:12 Last metadata expiration check: 0:03:17 ago on Sun 09 Jan 2022 02:38:54 AM EAT. Dependencies resolved. ================================================================================================================================================================================ Package Architecture Version Repository Size ================================================================================================================================================================================ Enabling module streams: postgresql 12 Transaction Summary ================================================================================================================================================================================ Complete!
Ensure all system packages are up to date:
sudo dnf distro-sync --nobest sudo dnf upgrade --nobest
Step 4: Install oVirt packages on Rocky Linux 8 / AlmaLinux 8
Install ovirt-engine package and dependencies Rocky Linux 8 / AlmaLinux 8:
sudo dnf install ovirt-engine
The number of packages installed are quite huge in size. If you have slow internet you may need to wait for some minutes.
Transaction Summary ===================================================================================================================================================================================== Install 551 Packages Total download size: 827 M Installed size: 2.3 G Is this ok [y/N]: y
Wait for the complete message.
..... urw-base35-nimbus-mono-ps-fonts-20170801-10.el8.noarch urw-base35-nimbus-roman-fonts-20170801-10.el8.noarch urw-base35-nimbus-sans-fonts-20170801-10.el8.noarch urw-base35-p052-fonts-20170801-10.el8.noarch urw-base35-standard-symbols-ps-fonts-20170801-10.el8.noarch urw-base35-z003-fonts-20170801-10.el8.noarch userspace-rcu-0.10.1-4.el8.x86_64 uuid-1.6.2-43.el8.x86_64 vdsm-jsonrpc-java-1.6.0-1.el8.noarch ws-commons-util-1.0.2-1.el8.noarch xdg-utils-1.1.2-5.el8.noarch xmlrpc-client-3.1.3-1.el8.noarch xmlrpc-common-3.1.3-1.el8.noarch xmlstreambuffer-1.5.4-8.module+el8.3.0+53+ea062990.noarch xorg-x11-font-utils-1:7.5-41.el8.x86_64 xorg-x11-fonts-ISO8859-1-100dpi-7.5-19.el8.noarch xorg-x11-server-utils-7.7-27.el8.x86_64 xsom-0-19.20110809svn.module+el8.3.0+53+ea062990.noarch yajl-2.1.0-10.el8.x86_64 Complete!
Step 4: Configure oVirt packages on Rocky Linux 8 / AlmaLinux 8
Run the engine-setup command to begin configuration process for the oVirt Engine:
[[email protected] ~]$ sudo engine-setup
The configuration of oVirt Engine starts almost immediately.
[ INFO ] Stage: Initializing [ INFO ] Stage: Environment setup Configuration files: /etc/ovirt-engine-setup.conf.d/10-packaging-jboss.conf, /etc/ovirt-engine-setup.conf.d/10-packaging.conf Log file: /var/log/ovirt-engine/setup/ovirt-engine-setup-20220109025904-uk0sv6.log Version: otopi-1.9.6 (otopi-1.9.6-1.el8) [ INFO ] Stage: Environment packages setup [ INFO ] Stage: Programs detection [ INFO ] Stage: Environment setup (late) [ INFO ] Stage: Environment customization --== PRODUCT OPTIONS ==--
Set up Engine and Cinderlib integration
Optionally set up Cinderlib integration on this machine. Type Yes and press Enter
--== PRODUCT OPTIONS ==-- Configure Cinderlib integration (Currently in tech preview) (Yes, No) [No]: No
Press Enter to configure the Engine on this machine:
Configure Engine on this host (Yes, No) [Yes]: Yes
Configure Open Virtual Network (OVN) / WebSocket Proxy
You can choose to install an Open Virtual Network (OVN) server on the Engine machine and adds it to oVirt as an external network provider. This action also configures the Default cluster to use OVN as its default network provider.
Configuring ovirt-provider-ovn also sets the Default cluster’s default network provider to ovirt-provider-ovn. Non-Default clusters may be configured with an OVN after installation. Configure ovirt-provider-ovn (Yes, No) [Yes]: Yes
Optionally allow engine-setup to configure a WebSocket Proxy server for allowing users to connect to virtual machines through the noVNC console:
Configure WebSocket Proxy on this machine? (Yes, No) [Yes]: Yes
Configure Data Warehouse / Grafana
oVirt only supports installing the Data Warehouse database, the Data Warehouse service, and Grafana all on the same machine as each other.
Choose whether to configure Data Warehouse on this machine.
Please note: Data Warehouse is required for the engine. If you choose to not configure it on this host, you have to configure it on a remote host, and then configure the engine on this host so that it can access the database of the remote Data Warehouse host. Configure Data Warehouse on this host (Yes, No) [Yes]: Yes
Press Enter to configure Grafana on the Engine:
Configure Grafana on this host (Yes, No) [Yes]: Yes
Configure firewall and DNS
You can press Enter to accept the automatically detected host name, or enter an alternative host name.
--== PACKAGES ==-- [ INFO ] Checking for product updates... [ INFO ] No product updates found --== NETWORK CONFIGURATION ==-- Host fully qualified DNS name of this server [ovirt-manager.hirebestengineers.com]: [WARNING] Failed to resolve ovirt-manager.hirebestengineers.com using DNS, it can be resolved only locally Setup can automatically configure the firewall on this system. Note: automatic configuration of the firewall may overwrite current settings.
If you have an active firewall service, allow
engine-setup to modify your firewall configuration:
Do you want Setup to configure the firewall? (Yes, No) [Yes]: Yes [ INFO ] firewalld will be configured as firewall manager.
Data Warehouse database Configurations
Specify whether to configure the Data Warehouse database on this machine, or on another machine:
--== DATABASE CONFIGURATION ==-- Where is the DWH database located? (Local, Remote) [Local]: Local Setup can configure the local postgresql server automatically for the DWH to run. This may conflict with existing applications. Would you like Setup to automatically configure postgresql and create DWH database, or prefer to perform that manually? (Automatic, Manual) [Automatic]: Automatic Where is the Engine database located? (Local, Remote) [Local]: Local Setup can configure the local postgresql server automatically for the engine to run. This may conflict with existing applications. Would you like Setup to automatically configure postgresql and create Engine database, or prefer to perform that manually? (Automatic, Manual) [Automatic]: Automatic
Set oVirt Engine admin password
Set a password for the automatically created administrative user of the oVirt Engine:
--== OVIRT ENGINE CONFIGURATION ==-- Engine admin password:
Confirm engine admin password: Application mode (Virt, Gluster, Both) [Both]: Both Use default credentials ([email protected]) for ovirt-provider-ovn (Yes, No) [Yes]: Yes
Set SAN Storage wipe configuration
Set the default value for the wipe_after_delete flag, which wipes the blocks of a virtual disk when the disk is deleted.
--== STORAGE CONFIGURATION ==-- Default SAN wipe after delete (Yes, No) [No]: No
Confirm or set organization name for the certificate
The Engine uses certificates to communicate securely with its hosts. This certificate can also optionally be used to secure HTTPS communications with the Engine.
Set or confirm organization name by pressing Enter.
--== PKI CONFIGURATION ==-- Organization name for certificate [hirebestengineers.com]:
Apache / Data Warehouse sampling / Grafana password
Allow engine-setup to make the landing page of the Engine the default page presented by the Apache web server:
--== APACHE CONFIGURATION ==-- Setup can configure the default page of the web server to present the application home page. This may conflict with existing applications. Do you wish to set the application as the default page of the web server? (Yes, No) [Yes]: Yes
Configure Apache to use SSL using a certificate issued from the internal CA
Setup can configure apache to use SSL using a certificate issued from the internal CA. Do you wish Setup to configure that, or prefer to perform that manually? (Automatic, Manual) [Automatic]: Automatic
Choose Data Warehouse sampling scale
--== SYSTEM CONFIGURATION ==-- --== MISC CONFIGURATION ==-- Please choose Data Warehouse sampling scale: (1) Basic (2) Full (1, 2): 1
Specify a unique password for the Grafana admin user, or use same one as the Engine admin password:
Use Engine admin password as initial Grafana admin password (Yes, No) [Yes]: Yes --== END OF CONFIGURATION ==--
Review the installation settings and deploy
Review the installation settings, and press Enter to accept the values and proceed with the deployment of oVirt Engine on the system:
[ INFO ] Stage: Setup validation --== CONFIGURATION PREVIEW ==-- Application mode : both Default SAN wipe after delete : False Host FQDN : ovirt-manager.hirebestengineers.com Firewall manager : firewalld Update Firewall : True Set up Cinderlib integration : False Configure local Engine database : True Set application as default page : True Configure Apache SSL : True Engine database host : localhost Engine database port : 5432 Engine database secured connection : False Engine database host name validation : False Engine database name : engine Engine database user name : engine Engine installation : True PKI organization : hirebestengineers.com Set up ovirt-provider-ovn : True Grafana integration : True Grafana database user name : ovirt_engine_history_grafana Configure WebSocket Proxy : True DWH installation : True DWH database host : localhost DWH database port : 5432 DWH database secured connection : False DWH database host name validation : False DWH database name : ovirt_engine_history Configure local DWH database : True Configure VMConsole Proxy : True Please confirm installation settings (OK, Cancel) [OK]: OK
After successful configuration of your oVirt Engine environment, the
engine-setup will display all the details regarding access to the oVirt Environment.
[ INFO ] Stage: Transaction setup [ INFO ] Stopping engine service [ INFO ] Stopping ovirt-fence-kdump-listener service [ INFO ] Stopping dwh service [ INFO ] Stopping vmconsole-proxy service [ INFO ] Stopping websocket-proxy service [ INFO ] Stage: Misc configuration (early) [ INFO ] Stage: Package installation [ INFO ] Stage: Misc configuration [ INFO ] Upgrading CA [ INFO ] Initializing PostgreSQL [ INFO ] Creating PostgreSQL 'engine' database [ INFO ] Configuring PostgreSQL [ INFO ] Creating PostgreSQL 'ovirt_engine_history' database [ INFO ] Configuring PostgreSQL [ INFO ] Creating CA: /etc/pki/ovirt-engine/ca.pem [ INFO ] Creating CA: /etc/pki/ovirt-engine/qemu-ca.pem [ INFO ] Updating OVN SSL configuration [ INFO ] Updating OVN timeout configuration [ INFO ] Creating/refreshing DWH database schema [ INFO ] Setting up ovirt-vmconsole proxy helper PKI artifacts [ INFO ] Setting up ovirt-vmconsole SSH PKI artifacts [ INFO ] Configuring WebSocket Proxy [ INFO ] Creating/refreshing Engine database schema [ INFO ] Creating a user for Grafana [ INFO ] Creating/refreshing Engine 'internal' domain database schema [ INFO ] Creating default mac pool range [ INFO ] Adding default OVN provider to database [ INFO ] Adding OVN provider secret to database [ INFO ] Setting a password for internal user admin [ INFO ] Install selinux module /usr/share/ovirt-engine/selinux/ansible-runner-service.cil [ INFO ] Generating post install configuration file '/etc/ovirt-engine-setup.conf.d/20-setup-ovirt-post.conf' [ INFO ] Stage: Transaction commit [ INFO ] Stage: Closing up [ INFO ] Starting engine service [ INFO ] Starting dwh service [ INFO ] Starting Grafana service [ INFO ] Restarting ovirt-vmconsole proxy service --== SUMMARY ==-- [ INFO ] Restarting httpd Please use the user '[email protected]' and password specified in order to login Web access is enabled at: http://ovirt-manager.hirebestengineers.com:80/ovirt-engine https://ovirt-manager.hirebestengineers.com:443/ovirt-engine Internal CA 41:E4:7A:96:08:4A:55:8F:3A:49:36:76:5A:B3:16:E8:D8:FA:C9:FF SSH fingerprint: SHA256:cXMs/4pxBeKQcZYHLcNFDMUSuZ9XlPr84fQ+teeDkjw Web access for grafana is enabled at: https://ovirt-manager.hirebestengineers.com/ovirt-engine-grafana/ Please run the following command on the engine machine ovirt-manager.hirebestengineers.com, for SSO to work: systemctl restart ovirt-engine --== END OF SUMMARY ==-- [ INFO ] Stage: Clean up Log file is located at /var/log/ovirt-engine/setup/ovirt-engine-setup-20220109025904-uk0sv6.log [ INFO ] Generating answer file '/var/lib/ovirt-engine/setup/answers/20220109031018-setup.conf' [ INFO ] Stage: Pre-termination [ INFO ] Stage: Termination [ INFO ] Execution of setup completed successfully
Accessing oVirt Administration Portal
Open your web browser and access Administration Portal using using the URL
### Access over https ### https://ovirt-manager-fqdn/ovirt-engine ### Access over http ### http://ovirt-manager-fqdn/ovirt-engine
Don’t forget to replaceovirt-manager-fqdn with the FQDN provided during installation of oVirt engine. You can also access the Portal using alternate host names or IP addresses configurable in the file under
$ sudo vi /etc/ovirt-engine/engine.conf.d/99-custom-sso-setup.conf SSO_ALTERNATE_ENGINE_FQDNS="alias1.mydomain.com alias2.mydomain.com"
Accept security warning to access the portal.
Certificate authority’s certificate can be obtained by navigating to http://ovirt-manager-fqdn/ovirt-engine/services/pki-resource?resource=ca-certificate&format=X509-PEM-CA, while replacing ovirt-manager-fqdn with your oVirt FQDN provided during the installation.
Click on “Administation Portal” link.
Log in to the Administration Portal with admin username and password set during installation.
From here you can add hosts and storage to the oVirt environment
The next step is storage domain configurations before adding hosts:
Option 2: Installing oVirt as a self-hosted engine
The Self-hosted engine installation is automated using Ansible. You use an installation script (
hosted-engine --deploy) which runs on an initial deployment host, and installation of the oVirt Engine and its configuration is done on a virtual machine created on the host deployed.
Step 1: Prepare Storage
You start by preparing storage to use for the self-hosted engine storage domain and for standard storage domains. We have a dedicated on NFS shared in the link below:
Step 2: Install oVirt Host
This host will become the first self-hosted engine node. You can use either host type:
Step 3: Install and configure the oVirt Engine
Install and configure oVirt Engine on one of the host by following along below guide:
In our next article available in the link shared, we cover installing Rocky Linux 8 / AlmaLinux 8 Hosts to oVirt Virtualization environment.