Figure 4. Oracle Linux KVM host architecture and associated components
Oracle Linux Virtualization Manager, the oVirt Engine, is a JBoss-based Java application running as a web service that provides centralized management for server and desktop virtualization. The engine runs on another Oracle Linux environment, a dedicated host or deployed as a self-hosted engine. 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. The engine is installed and configured in parallel to the host configuration. For more information, see the Oracle Linux Virtualization Manager Installation Guide. The Oracle Linux KVM hosts provide the compute resources for running the VM. The engine communicates directly with the Virtual Desktop and Server Manager (VDSM) service, running on Oracle Linux KVM hosts as a daemon, to perform tasks such as managing hosts, VMs, networks, and storage, and creating new images and templates.
The libvirt daemon running as a service on Oracle Linux KVM hosts 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.
The Oracle Linux KVM feature is a loadable module that provides full virtualization via hardware extensions. It allows a host to make its physical hardware available to virtual machines. Oracle Linux KVM runs in the host kernel space and the VMs running on Oracle Linux KVM hosts will run as individual QEMU processes in user space. QEMU stands for quick emulator, which enables KVM to become a complete hypervisor by emulating the hardware for VMs such as CPU, memory, network, and disk devices. Oracle Linux KVM allows QEMU to execute code in the VM directly on the host CPU, thus allowing the VM’s operating system direct access to the host’s resources without any modification.
The guest agent runs inside the virtual machine and provides information on resource usage to the engine. It provides the information, notifications and actions between the engine and the guest.