Oracle Linux Virtualization Manager OLVM

(Need 2 Server and 1 Manager VM)


Virtualization made a significant change in the IT (Information Technology) industry. This technology helped many organizations to use server resources efficiently. Server virtualization revolutionized data center management and helped organizations cut the fat out of the IT infrastructure. This was a game changer for data center investments and optimization. Nowadays IT engineers are managing software-driven data centers.

Virtualization requires the use of a hypervisor, hypervisor abstracts operating systems and applications from their underlying hardware. This enables the host hardware to operate multiple VMs independently of each other and share abstract resources among those VMs.

Virtualization there are two major types.

  1. Full-Virtualization
  2. Para-Virtualization

Even though the cloud exists still organizations invest in virtualization technology. Because there are many benefits. A few pros and cons are listed below.


Pros of Virtualization

1. Reduced IT costs, this cost reduction comes from different levels

I.   Capital Expenditure Savings:

Virtualization enables reducing the cost by reducing the hardware footprint in the data center by requiring fewer hardware servers and related resources to achieve the same level of computing performance, availability, and Scalability

II.  Operational Expenditure Savings:

Once servers are virtualized, IT staff can greatly reduce the ongoing administration and management of manual intervention and time-consuming processes like server installation

III. Data Center and Energy Savings:

As we shrink company hardware and server footprint, we are lowering the data center energy consumption and square footage

2. Efficient resource utilization

Most companies spend a lot of capital settings up their systems and server but eventually use only a fraction of it effectively. Virtualization enables to host of multiple VMS on a single hypervisor. This will save hardware costs and attain a high-efficiency level

3. Scalability and Availability

Virtualization platforms offer many advanced features that are not found on physical servers. Which increases the uptime and availability. Although vendor feature names may be different, all provide features like

      • Live Migration
      • Storage Migration
      • Fault Tolerance
      • High Availability
      • Distribute Resource Scheduling

These features elevated the ability to recover from unplanned outages

4. Ease the Cloud Migration.

If there is a plan to move to the cloud, virtualization makes this easy. Because cloud and virtualization use the same technology stack.


Cons of Virtualization

  1. The upfront costs are hefty
  2. Not all the hardware or software can be virtualized
  3. It’s easily carried away with adding servers

Last decade there has been a significant improvement in open source virtualization technology.  Oracle also change the view of the virtualization path by moving from OVM to KVM (Kernel Based Virtual Machine). KVM is actually an open-source virtualization technology that turns Linux into a hypervisor. Also, Oracle came up with a management engine to manage multiple hypervisors called OLVM (Oracle Linux Virtualization Manager) this is a similar product to VMware vcenter.


OLVM Installation and Configuration

In this article, I will cover OLVM (Oracle Linux Virtualization Manager) installation and other administrative tasks like adding a KVM host to OLVM etc

I have mentioned the oracle documentation link for OLVM-engine 4.4 installation and configuration.

Installation and Configuration (


Installed Required Packages

First, we need to enable the oracle Linux 8 repository. We need to enable an internet connection to the KVM server or need to create a sample repository.

dnf install oracle-ovirt-release-el8

Sample output

[root@kvm02 ~]# dnf install oracle-ovirt-release-el8
Last metadata expiration check: 0:02:04 ago on Fri 22 Jul 2023 12:01:59 AM EDT.
Dependencies resolved.
 Package                                                    Architecture                             Version                                         Repository                                           Size
 oracle-ovirt-release-el8                                   x86_64                                   1.0-1.0.3.el8                                   ol8_baseos_latest                                    23 k

Transaction Summary
Install  1 Package

Total download size: 23 k
Installed size: 35 k
Is this ok [y/N]: y
Downloading Packages:
oracle-ovirt-release-el8-1.0-1.0.3.el8.x86_64.rpm                                                                                                                              9.0 kB/s |  23 kB     00:02
Total                                                                                                                                                                          9.0 kB/s |  23 kB     00:02
Running transaction check
Transaction check succeeded.
Running transaction test
Transaction test succeeded.
Running transaction
  Preparing        :                                                                                                                                                                                       1/1
  Running scriptlet: oracle-ovirt-release-el8-1.0-1.0.3.el8.x86_64                                                                                                                                         1/1
  Installing       : oracle-ovirt-release-el8-1.0-1.0.3.el8.x86_64                                                                                                                                         1/1
  Running scriptlet: oracle-ovirt-release-el8-1.0-1.0.3.el8.x86_64                                                                                                                                         1/1
Enabling OLVM 4.4 required Yum Channels...
Enabling ol8_baseos_latest Yum Channel...
Enabling ol8_UEKR6 Yum Channel...
Enabling ol8_gluster_appstream Yum Channel...
Enabling ol8_kvm_appstream Yum Channel...
Disabling yum module virt:ol
Enabling yum module virt:kvm_utils2
Enabling module pki-deps
Enabling module postgresql:13
Required oVirt 4.4 Yum Channels enabled.

  Verifying        : oracle-ovirt-release-el8-1.0-1.0.3.el8.x86_64                                                                                                                                         1/1


[root@kvm02 ~]#


List Repository

This will enable the new OEL 8 repository required for KVM installation.

[root@kvm02 ~]# dnf repolist
repo id                                                                      repo name
ol8_UEKR6                                                                    Latest Unbreakable Enterprise Kernel Release 6 for Oracle Linux 8 (x86_64)
ol8_appstream                                                                Oracle Linux 8 Application Stream (x86_64)
ol8_baseos_latest                                                            Oracle Linux 8 BaseOS Latest (x86_64)
ol8_gluster_appstream                                                        Oracle Linux 8 Gluster Appstream (x86_64)
ol8_kvm_appstream                                                            Oracle Linux 8 KVM Application Stream (x86_64)
ovirt-4.4                                                                    Latest oVirt 4.4 Release (x86_64)
ovirt-4.4-extra                                                              oVirt 4.4 Extra (x86_64)
[root@kvm02 ~]#


Install Engine

Execute the “installed ovirt-engine” mentioned commands to install the engine-related packages.

dnf install ovirt-engine


Configure Engine

Make sure the hostname is configured with FQDN (Full qualified domain name)

To configure the engine setup need to execute the engine-setup command. If need to accept all the default values execute engine-setup –accept-defaults to automatically accept all questions that have default answers.


Sample Output

[root@kvm02 ~]# engine-setup
[ 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-20230725103201-vp6a4t.log
          Version: otopi-1.9.5 (otopi-1.9.5-1.el8)
[ INFO  ] Stage: Environment packages setup
[ INFO  ] Stage: Programs detection
[ INFO  ] Stage: Environment setup (late)
[ INFO  ] Stage: Environment customization

          --== PRODUCT OPTIONS ==--

          Configure Cinderlib integration (Currently in tech preview) (Yes, No) [No]:
          Configure Engine on this host (Yes, No) [Yes]:

          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]:
          Configure WebSocket Proxy on this host (Yes, No) [Yes]:

          * 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]:
          Configure VM Console Proxy on this host (Yes, No) [Yes]:
          Configure Grafana on this host (Yes, No) [Yes]:

          --== PACKAGES ==--

[ INFO  ] Checking for product updates...
[ INFO  ] DNF Package grafana-postgres available, but not installed.
[ INFO  ] No product updates found

          --== NETWORK CONFIGURATION ==--

          Host fully qualified DNS name of this server []:
[WARNING] Failed to resolve 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.
          Do you want Setup to configure the firewall? (Yes, No) [Yes]:
[ INFO  ] firewalld will be configured as firewall manager.

          --== DATABASE CONFIGURATION ==--

          Where is the DWH database located? (Local, Remote) [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]:
          Where is the Engine database located? (Local, Remote) [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]:


          Engine admin password:
          Confirm engine admin password:
[WARNING] Password is weak: The password is shorter than 8 characters
          Use weak password? (Yes, No) [No]: Yes
          Application mode (Virt, Gluster, Both) [Both]:
          Use default credentials (admin@internal) for ovirt-provider-ovn (Yes, No) [Yes]:

          --== STORAGE CONFIGURATION ==--

          Default SAN wipe after delete (Yes, No) [No]:

          --== PKI CONFIGURATION ==--

          Organization name for certificate []:

          --== 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]:

          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]:

          --== SYSTEM CONFIGURATION ==--

          --== MISC CONFIGURATION ==--

          Please choose Data Warehouse sampling scale:
          (1) Basic
          (2) Full
          (1, 2)[1]:
          Use Engine admin password as initial Grafana admin password (Yes, No) [Yes]:

          --== END OF CONFIGURATION ==--

[ INFO  ] Stage: Setup validation
[WARNING] Less than 16384MB of memory is available

          --== CONFIGURATION PREVIEW ==--

          Application mode                        : both
          Default SAN wipe after delete           : False
          Host FQDN                               :
          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                        :
          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]:
[ 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  ] DNF Downloading 4 files, 16013.99KB
[ INFO  ] DNF Downloaded ovirt-vmconsole-1.0.9-3.el8.noarch.rpm
[ INFO  ] DNF Downloaded selinux-policy-3.14.3-80.0.4.el8_5.2.noarch.rpm
[ INFO  ] DNF Downloaded selinux-policy-targeted-3.14.3-80.0.4.el8_5.2.noarch.rpm
[ INFO  ] DNF Downloaded ovirt-vmconsole-proxy-1.0.9-3.el8.noarch.rpm
[ INFO  ] DNF Upgraded: selinux-policy-3.14.3-80.0.4.el8_5.2.noarch
[ INFO  ] DNF Upgraded: selinux-policy-targeted-3.14.3-80.0.4.el8_5.2.noarch
[ INFO  ] DNF Upgraded: ovirt-vmconsole-1.0.9-3.el8.noarch
[ INFO  ] DNF Upgraded: ovirt-vmconsole-proxy-1.0.9-3.el8.noarch
[ INFO  ] DNF Unknown: ovirt-vmconsole-proxy-1.0.9-2.el8.noarch
[ INFO  ] DNF Unknown: ovirt-vmconsole-1.0.9-2.el8.noarch
[ INFO  ] DNF Unknown: selinux-policy-targeted-3.14.3-80.0.1.el8.noarch
[ INFO  ] DNF Unknown: selinux-policy-3.14.3-80.0.1.el8.noarch
[ INFO  ] DNF Verify: selinux-policy-3.14.3-80.0.4.el8_5.2.noarch 1/8
[ INFO  ] DNF Verify: selinux-policy-3.14.3-80.0.1.el8.noarch 2/8
[ INFO  ] DNF Verify: selinux-policy-targeted-3.14.3-80.0.4.el8_5.2.noarch 3/8
[ INFO  ] DNF Verify: selinux-policy-targeted-3.14.3-80.0.1.el8.noarch 4/8
[ INFO  ] DNF Verify: ovirt-vmconsole-1.0.9-3.el8.noarch 5/8
[ INFO  ] DNF Verify: ovirt-vmconsole-1.0.9-2.el8.noarch 6/8
[ INFO  ] DNF Verify: ovirt-vmconsole-proxy-1.0.9-3.el8.noarch 7/8
[ INFO  ] DNF Verify: ovirt-vmconsole-proxy-1.0.9-2.el8.noarch 8/8
[ 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 'admin@internal' and password specified in order to login
          Web access is enabled at:
          Internal CA CF:C8:A2:E0:42:FE:5F:19:55:B3:E2:9F:A9:7F:4C:DC:49:8D:C7:CB
          SSH fingerprint: SHA256:aRJ1E8zUzNaYsXG2tCfvV4EGTMxw/mMzrKQQt2ZFZKE
[WARNING] Less than 16384MB of memory is available
          Web access for grafana is enabled at:
          Please run the following command on the engine machine, 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-20230725103201-vp6a4t.log
[ INFO  ] Generating answer file '/var/lib/ovirt-engine/setup/answers/20230725103526-setup.conf'
[ INFO  ] Stage: Pre-termination
[ INFO  ] Stage: Termination
[ INFO  ] Execution of setup completed successfully
[root@kvm02 ~]#


Config Firewall

Enable the below-mentioned firewall rule to access the olvm url.

firewall-cmd --zone=public --permanent --add-service=https
firewall-cmd --zone=public --permanent --add-service=http
firewall-cmd --reload


Access the URL

OLVM URL can be found in the engine setup summary section, This figure shows the main URL of the virtual manager.

Oracle Linux 2


Once you click the administration portal, you can log in to the login page. The username for the administration portal is admin.

Oracle Linux 3



This figure shows the main dashboard, the dashboard has the main tab to navigate the data-center, cluster, host, VM (virtual machines), and Storage domains.

Oracle Linux 4



Virtualization is the best solution to utilize resources efficiently and reduce the data center footprint. Last decade virtual manager and virtualization technology have improved drastically on open source platforms. It’s not easy to manage 100 to 300 KVM separately by login into each URL. OLVM (Oracle Linux virtualization manager) will act as a single point of contact to manage all the DC (data center), KVM, and VM (Virtual Machine) and storage domains. The best practice should be to host this machine out of the KVM server. As many developers are working on this OLVM, this will be more mature with many more features. Also, virtualization is the backbone of the cloud platform which enabled the software-driven data center concept.


Configure Storage Domain (OLVM)



I hope the last few articles were helpful to start a new journey with OLVM (Oracle Linux Virtual Manager). As we configured the KVM on the OLVM environment the next step is to configure the storage domain. VMs disks and snapshots are stored under storage domains.

OLVM supports 4 types of storage types:

  1. NFS
  2. POSIX compliant fs
  3. GlusterFS
  4. iSCASI
  5. Fiber Channel



What is the Storage Domain?

A storage domain is a collection of images that have a common storage interface. A storage domain contains complete images of templates, virtual machines, virtual machine snapshots, or ISO files. Oracle Linux Virtualization Manager supports storage domains that are block devices (SAN – iSCSI or FCP) or a file system (NAS – NFS or Gluster).

Last few decades SAN technologies have improved drastically. There are many redundancy mechanisms like mirroring, RAID 5, RAID 6, and RAID 6 +1 to achieve data redundancy.  To achieve 2 layers of data redundancy we can use the distributed file system. GlusterFS is an OLVM support cluster distributed file system. GlusterFS has the feature of creating replicated volumes for distributed databases.


What is GlusterFS? 

GlusterFS is a distributed file system defined to be used in user space. For example File System in User Space (FUSE). It is a software-based file system that accounts for its own flexibility feature.

Figure 1  illustrates schematically represents the position of GlusterFS in a hierarchical model. By default TCP protocol will be used by GlusterFS.


Figure 1: GlusterFS hierarchical model


I have listed the benefits that come with GlusterFS.

  • Innovation – It eliminates the metadata and can dramatically improve the performance which will help us to unify data and objects
  • Elasticity – Adapted to growth and reduction of the size of the data
  • Scale Linearly – It has the scalability to petabytes and beyond
  • Simplicity – It is easy to manage and independent from the kernel while running in user space

Refer to link they get more understanding of the GFS.

In this article, we will focus on configuring the GlusterFS replicated volumes and how to integrate this with OLVM.  For this configuration, we are going to use KVM hosts as the Gluster FS server and the client. Also shared oracle documentation for configuration Glusterfs.


Let’s start with installing the GFS server RPMs.


Installed Required RPMs

We need to install GlusterFS server rpm to enable the Gluster Server Services.

## Enable access to the Gluster packages
sudo dnf install oracle-gluster-release-el8 -y
sudo dnf config-manager --enable ol8_gluster_appstream ol8_baseos_latest ol8_appstream

## Install the Gluster server packages.
sudo dnf install @glusterfs/server -y


Enable the GFS Services

Once the GFS server RPM installation is complete enable the Gluster services and add the GFS service to the firewall rule.

sudo systemctl enable --now glusterd


Configure the firewall to allow traffic on the ports that are specifically used by Gluster.

sudo firewall-cmd --permanent --add-service=glusterfs
sudo firewall-cmd --reload


Configure Block Device for GFS

We need to create a partition and make an XFS file system for GFS bricks. Make sure not to write anything directly on the brick.

$ sudo fdisk /dev/mapper/3624a93701561d6718da94a2000011014
$ sudo mkfs.xfs -f -i size=512 -L glusterfs /dev/mapper/3624a93701561d6718da94a2000011014p1
$ sudo mkdir -p /nodirectwritedata/glusterfs/brick1
$ sudo echo 'LABEL=glusterfs /nodirectwritedata/glusterfs/brick1 xfs defaults 0 0' >> /etc/fstab
$ mount -a
$ sudo mkdir /nodirectwritedata/glusterfs/brick1/gvol0
$ df -H



==  ==