Oracle has finally certified Oracle Database solutions for KVM products.
To have less problems with the Oracle auditor it is advisable to use their (free) solution called Oracle Linux Virtualization.
Oracle Linux Kernel-based Virtual Machine (KVM) environment with enterprise-grade performance and support from Oracle.
Based on the open source oVirt project, Oracle Linux Virtualization Manager allows enterprise customers to continue supporting their on-premises data center deployments with the KVM hypervisor already available on Oracle Linux 7.6 with the Unbreakable Enterprise Kernel Release 5. Oracle Linux KVM is a feature that has been delivered and supported as part of Oracle Linux for some time. With the release of the Unbreakable Enterprise Kernel Release 5, the Oracle Linux server virtualization solution with KVM has been enhanced. Oracle Linux KVM is the same hypervisor used in Oracle Cloud Infrastructure, giving users an easy migration path to move workloads into Oracle Cloud in the future.
Oracle Linux Virtualization Manager release 4.3.3 supports multiple hosts running Oracle Linux KVM. The heart of the manager is the ovirt-engine which is used to discover KVM hosts and configure storage and networking for the virtualized data center. Oracle Linux Virtualization Manager offers a web-based User Interface (UI) and a Representation State Transfer (REST) Application Programming Interface (API) which can be used to manage your Oracle Linux KVM infrastructure.
Taking note from the Oracle website:
Kernel-based virtual machine (KVM), also known as KVM virtualization, is certified with 12cR1,18c and 19c Oracle Single Instance and Oracle RAC for all supported Oracle Linux 7 distributions:
1. Oracle Linux 7.4 with the Unbreakable Enterprise Kernel 4: 4.1.12-124.19.2.el7uek.x86_64 or later
2. Oracle Linux 7.4 with the Unbreakable Enterprise Kernel 5: 4.14.35-1818.1.6.el7uek.x86_64 or later
3. Oracle Linux 7.4 with the Red Hat Compatible kernel: 3.10.0-862.11.6.el7.x86_64 or later
There are two ways to license Oracle Database in a virtual infrastructure:
1. Software Partitioning
2. Hardware Partitioning
The first modality will have to buy or possess all the licenses of Oracle Database and any optional that are used necessary to cover the entire Oracle Linux Virtualization cluster, but we will have the following advantages:
1. We can create infinite virtual machines with Oracle Database without having licensing problems.
2. Enjoy all the advantages of the features of a virtualization for example: live migration, snapshot etc …
Disadvantages:
1. Higher license fees.
The second mode, on the other hand, allows you to use the Oracle database products on the KVM environments even if you do not have the possibility of licensing the entire kvm cluster.
Hardware partitioning allows you to pin the virtual machine to certain physical cores of the processor used by the kvm host.
This allows Oracle to guarantee that the virtual machine cannot use more cores than it has available with the licenses in its possession.
In this way you will have the opportunity to use the flexibility, for example the snapshot, of a virtual environment but this mode has the following limitations:
1. Live migration cannot be used.
2. In the event of a fault with the kvm host, the vm will not restart automatically but you will have to unlock the hardware pin executed on the host and re-run the pin on another kvm host.
Advantages :
1. Saving Oracle licenses.
2. Partial flexibility that offers a virtual environment.
In a virtual environment, the vcpu count is different compared to a physical server because the number of threads that your processor owns will also have to be considered.
For example, consider a dual socket server with 2 Intel® Xeon® Processor E5-2667 v4 (8core and 16 threads) used:
Physical environment: 1 OCPU (Oracle Processor Unit) = 2 cores x86 (Oracle Processor Core Factor Table)
So to license an entire hosts you need 8 OCPUs.
Let’s assume instead that we cannot license the whole host but we only have licenses to cover a single CPU socket so we will only have 4 OCPUs.
The Kvm virtualizer will have to take into consideration that the cpu threads are considered with vcpu consequently if we want to pin a single socket we will also have to take into consideration the threads.
So the virtual machine that will be created to use Oracle Database must have 24vcpu because they are 8 cores and 16 threads.
Here is the official Oracle documentation for partitioning:
https://www.oracle.com/assets/partitioning-070609.pdf