2 Architecture

Oracle Linux Virtualization Manager is a server virtualization management platform based on the open source oVirt project. You can use it to configure, monitor, and manage an Oracle Linux Kernel-based Virtual Machine (KVM) environment, including hosts, virtual machines, storage, networks, and users. You access the Manager through the Administration Portal or VM Portal.

Oracle Linux Virtualization Manager also provides a Representational State Transfer (REST) Application Programming Interface (API) for managing your KVM infrastructure, allowing you to integrate the Manager with other management systems or to automate repetitive tasks with scripts.

For more information, see Planning Your Environment.

Figure 2-1 Architectural Overview


Image depicts an overview of the architecture.

Engine

The workhorse of Oracle Linux Virtualization Manager is the oVirt engine (engine), which is a WildFly-based Java application that runs as a web service and provides centralized management for server and desktop virtualization. The engine provides many features including:

  • Managing the Oracle Linux KVM hosts
  • Creating, deploying, starting, stopping, migrating, and monitoring virtual machines
  • Adding and managing logical networks
  • Adding and managing storage domains and virtual disks
  • Configuring and managing cluster, host, and virtual machine high availability
  • Migrating and editing live virtual machines
  • Continuously balancing loads on virtual machines based on resource usage and policies
  • Monitoring all objects in the environment such as virtual machines, hosts, storage, networks

The engine communicates with the Virtual Desktop and Server Manager (VDSM) service which is a host agent that runs as a daemon on the KVM hosts. The engine communicates directly with the VDSM service on Oracle Linux KVM hosts to perform tasks such as managing virtual machines and creating new images from templates.

The majority of tasks you can do through the Administration Portal. Additionally, you can perform a subset of tasks using the VM Portal or Cockpit.

Host Architecture

The engine runs on an Oracle Linux server and provides the administration tools for managing the Oracle Linux Virtualization Manager environment. Oracle Linux KVM hosts provide the compute resources for running virtual machines.

For more information, see Hosts.

Figure 2-2 Basic Host Architecture


Image depicts the basis host architecture.
Kernel-based Virtual Machine (KVM) and Quick Emulator (QEMU)

As a loadable kernel module, KVM

  • provides full virtualization through the use of hardware extensions.

  • allows a host to make its physical hardware available to virtual machines.

  • runs in the kernel space and the virtual machines running on it run as individual QEMU processes in the user space.

QEMU enables KVM to become a complete hypervisor by emulating the hardware for the virtual machines, such as the CPU, memory, network, and disk devices.

KVM enables QEMU to execute code in the virtual machine directly on the host CPU. This allows a virtual machine's operating system direct access to the host's resources without any modification.

Host Agent and libvirt

The Virtual Desktop and Server Manager (VDSM) service is a host agent that covers all functionality required by the engine for managing hosts, virtual machines, networks and storage. All communication between the engine and the KVM hosts is handled by the VDSM service that runs on the KVM hosts.

The libvirt daemon runs as a service (libvirtd) on Oracle Linux KVM hosts and it provides an application programming interface (API) for managing various hypervisors, including Oracle Linux KVM. VDSM uses libvirt to manage the complete life cycle of virtual machines and their virtual devices on the host, and to collect statistics about them.

Guest Agent

The guest agent runs inside the virtual machine, and provides information on resource usage to the engine. Communication between the guest agent and engine is done over a virtualized serial connection.

The guest agent provides:

  • information, notifications, and actions between the engine and the guest.

  • the guest machine name, guest operating system, and other details to the engine, including associated IP addresses, installed applications, and network and RAM usage.

  • a single sign-on so an authenticated user to the engine does not need to authenticate again when connected to a virtual machine.

Figure 2-3 Agents, QEMU, and libvirt


Image depicts the interaction of agents, QEMU, and libvirt with engine and hosts.

Self-Hosted Engine

In Oracle Linux Virtualization Manager, a self-hosted engine is a virtualized environment where the engine runs inside a virtual machine on the hosts in the environment. The virtual machine for the engine is created as part of the host configuration process. And, the engine is installed and configured in parallel to the host configuration.

Since the engine runs as a virtual machine and not on physical hardware, a self-hosted engine requires less physical resources. Additionally, since the engine is configured to be highly available, if the host running the Engine virtual machine goes into maintenance mode or fails unexpectedly the virtual machine is migrated automatically to another host in the environment. A minimum of two self-hosted Engine hosts are required to support the high availability.

You use the oVirt Engine Virtual Appliance to install the engine virtual machine. The appliance is installed during the deployment process; however, you can install the appliance on the host before starting the deployment if required:

# dnf install ovirt-engine-appliance

If you plan to use bonded interfaces for high availability or VLANs to separate different types of traffic (for example, for storage or management connections), you should configure these interfaces before deployment.

If you want to customize the engine virtual machine, you can use a custom cloud-init script with the appliance. You can generate a default cloud-init script during deployment and customize as needed.

To deploy a self-hosted engine, see Self-Hosted Engine Deployment in the Oracle Linux Virtualization Manager: Getting Started Guide.

Note:

To review conceptual information, troubleshooting, and administration tasks, see the oVirt Self-Hosted Engine Guide in oVirt Documentation.

Data Warehouse and Databases

There are two PostgresSQL databases in Oracle Linux Virtualization Manager. The engine configuration creates a database called engine. If you elect to install the ovirt-engine-dwh package, a second database called ovirt_engine_history is created:

  • The engine database (engine) stores persistent information about the state of the Oracle Linux Virtualization Manager environment, its configuration, and its performance. The historical configuration information and statistical metrics are collected every minute.
  • The data warehouse database is a management history database (ovirt_engine_history) that can be used by any application to retrieve historical configuration information and statistical metrics for data centers, clusters, and hosts.
The data warehouse service (ovirt-engine-dwd):
  • Extracts data from the engine database, performs ETL, and inserts it into the ovirt_engine_history database.
  • Tracks three types of changes:

    • When new entity is added to the engine database, ovirt-engine-dwd service replicates the change to the ovirt_engine_history database.
    • When an existing entity is updated, ovirt-engine-dwd service replicates the change to the ovirt_engine_history database.
    • When an entity is removed from the engine database, a new entry in the ovirt_engine_history database flags the corresponding entity as removed.

Both the history and engine databases can run on a remote host to reduce the load on the engine host. Running these databases on a remote host is a technology preview feature. For more information, see Technology Preview in the Oracle Linux Virtualization Manager: Release Notes.

Access Portals

Oracle Linux Virtualization Manager provides three portals you can use to configure, manage, and monitor your environment: Administration Portal, VM Portal, and Monitoring Portal.

The Administration Portal is the graphical administration interface of the oVirt Engine server. Administrators can monitor, create, and maintain all elements of the virtualized environment from web browsers. Tasks that can be performed from the Administration Portal include:

  • Creation and management of virtual infrastructure (networks, storage domains)
  • Installation and management of hosts
  • Creation and management of logical entities (data centers, clusters)
  • Creation and management of virtual machines
  • User and permission management

The Cockpit web interface enables you to monitor a KVM host's resources and to perform administrative tasks. Cockpit must be installed and enabled separately. You can access a host's Cockpit web interface from the Administration Portal or by connecting directly to the host.

The VM Portal presents a comprehensive view of a virtual machine and allows the user to start, stop, edit, and view details of a virtual machine. The actions available to a user in the VM Portal are set by a system administrator who can delegate additional administration tasks to a user, such as:

  • Create, edit, and remove virtual machines
  • Manage virtual disks and network interfaces
  • Create and use snapshots to restore virtual machines to previous states

Direct connection to virtual machines is facilitated with VNC clients. Both protocols provide the user with an environment similar to a locally installed desktop. The administrator specifies the protocol used to connect to a virtual machine at the time of the virtual machine’s creation.

For more information on the VM Portal, see oVirt Documentation.

The Monitoring Portal opens Grafana where you can see the built-in Grafana dashboards: Executive, Inventory, Service Level, and Trend. You can create customized dashboards or copy and modify existing dashboards according to your reporting needs.

Grafana integration is enabled and installed by default when you run the engine-setup in a stand alone Manager or Self-Hosted engine installation. You might need to install Grafana manually under some scenarios such as performing an upgrade, restoring a backup, or when the data warehouse is migrated to a separate machine.

For more information on the Monitoring Portal, see oVirt Documentation and Grafana Documentation.

Directory Services

You can use Active Directory, OpenLDAP, and 389DS as an external directory server to provide user account and authentication services. If an external directory server is being used, the oVirt engine uses these directory services to receive user and group information when assigning permissions for roles.

Consoles

You can use either Virtual Network Computing (VNC) or Remote Desktop Protocol (RDP) to provide graphical consoles for virtual machines. From the console, you can work and interact directly with your virtual machines as you would with physical machines.
VNC

When using VNC, either use the Remote Viewer application or a VNC client to open a console to a virtual machine.

If you want to use a locally installed remote-viewer application, you can install the application using your package manager (yum or dnf install virt-viewer) or download it from Virtual Machine Manager.

If you want to use a browser-based console clients, the certificate authority must be imported in your browser since the communication is secured. You can download the certificate authority by navigating to https://<your engine address>/ovirt-engine/services/pki-resource?resource=ca-certificate&format=X509-PEM-CA.

RDP (Windows only)

RDP is only available when you access virtual machines from a Windows machine on which the Microsoft Remote Desktop application has been installed. You must also set up remote sharing on the virtual machine and ensure the firewall is configured to allow remote desktop connections before you can connect to a Windows virtual machine using RDP.

Important:

See Windows Virtual Machines Lose Functionality Due To Deprecated Guest Agent in the Known Issues section of the Oracle Linux Virtualization Manager: Release Notes.

For more information see Installing Remote Viewer on Client Machine in the Oracle Linux Virtualization Manager: Administration Guide.

Figure 2-4 Client Consoles Connected to Linux KVM Host


Image depicts the client consoles connecting to host.