5.Oracle License and Oracle Linux KVM in Virtual Server Environments

There is a troublesome issue when using Oracle products in a virtual server environment. That is, the number of CPU cores on the base physical server is used for the license count rather than the number of CPU cores allocated to the virtual server. In addition, the development of virtualization technologies such as vMotion has further complicated the situation.

Therefore, in this article, we will explain “The Oracle license concept in virtual server environments” and “Oracle Linux KVM that can reduce licenses even in virtual server environments”. In addition, this content is intended for on-premises, and virtual servers in the public cloud are not applicable.

The Oracle license concept in virtual server environments

Licensing basics for virtual server environments

First, we’ll cover the basics of Oracle licensing in a virtual server environment. Let’s take a look at the following FAQs posted on the Oracle Japan webpage.

What is the license count when using server virtualization software (Oracle VM, VMware, Hyper-V, etc.)?

VMware, Hyper-V, etc. are classified as Soft Partitioning, and all physical processors installed on the physical server where the Oracle product is installed (or running) are included in the license count.

* The number of virtual machines (VMs) where Oracle products are installed (or running) is not related to the number of required licenses.

The term Soft Partitioning has appeared, but we will ignore it and explain it later. Simply put, when using Oracle products in a virtual machine (VM), as shown in the following figure, it is the processor on the physical server that is subject to a license.

For example, assume there are x86 servers with two 8-core CPUs. Assign two cores to the virtual machine (VM) and use Oracle Database. At this time, the billing is for the x86 physical servers. The required licenses are as follows:

8-core CPU x 2 = 16 cores
16 cores x core count 0.5 = 8

For Oracle Database Enterprise Edition, an 8 Processor license is required.
Oracle Database Standard Edition 2 does not take into account the number of cores, so a 2 Processor license is required.

Tip: Differences between Oracle EE and Oracle SE2 licensing

Although this is not the main topic and will not be explained in detail, the following table explains the differences between the licenses of the two editions of Oracle Database “EE” and “SE2”. The biggest difference is that EE counts licenses by number of cores, while SE2 counts by number of processors. Only EE will be covered in the rest of this article.

ProductLicense typeLicense count units
Oracle Database Enterprise Edition(EE)Processor, Named User PlusNumber of cores
Oracle Database Standard Edition 2(SE2)Processor, Named User PlusNumber of processors (max 2)

Tip: CPU cores and threads

The core in the Oracle license refers to the “physical core.” It is not a “thread (=logical core)” that makes a single CPU core appear multiple using Simultaneous Multi-Threading (SMT) technology such as Intel’s Hyper-Threading.

For example, the Intel Xeon Platinum 8362 has 32 cores. Enabling Hyper-Threading results in 64 threads. When viewed from the operating system, it looks like there are 64 CPUs. However, it is the cores, not the threads, that are counted for Oracle’s license, so it is 32.

32 cores x core count 0.5 = 16 processor licenses required

Concept of virtual server environment with multiple server configurations

Consider a virtual server environment consisting of multiple physical servers, as shown in the figure below. It can be used for live migration, etc., so it is probably the most common use method in commercial environments.

In such an environment, all the physical servers that make up the cluster are billed for Oracle licenses. This is because, when live migration is used, virtual machines can run on other servers as well.

In other words, it covers not only the server on which the Oracle product is installed, but also the servers on which the Oracle product is running or may be running.

For servers with the same specifications as before, the required licenses are as follows:

(8-core CPU x 2) x 2 units = 32 cores
32 cores x core count 0.5 = 16

For Oracle Database Enterprise Edition, a 16 Processor license is required.

The evolution of virtualization technology further complicates the situation. For example, VMware vSphere 6.0 and later allows for live migration across clusters. In other words, it is now possible to live migrate to a host physical server managed by another vCenter.

The license is for “Servers that run or may run Oracle products”. Therefore, it includes not only live migration, but also cold migration, which temporarily stops the virtual machine to migrate. As a result, all host physical servers that are connected to each other on the network with VMware or similar installed are subject to a license. This requires a large number of Oracle licenses.

Therefore, if you want to limit Oracle licenses to a specific server, you can split the physical network as shown below to prevent live/cold migration. In this case, only one physical server is licensed.

Oracle license summary for virtual server environments

  • In a virtual server environment, the base physical server is subject to license billing
  • In a virtual server environment consisting of multiple physical servers, all live/cold migratable servers are subject to license billing

Understanding Partitioning Policy

We will now describe Partitioning Policy that is important in virtualized environments. “Partitioning” is a technology that divides the CPU of one physical server and uses it as multiple independent servers. It is originally a technology that appeared in mainframes. It then spread to UNIX servers, and is now used in VMware and similar technologies. Note that it has nothing to do with Partitioning Option, which divides a table into multiple parts.

Soft Partitioning and Hard Partitioning

Oracle has published the following documents on Partitioning Policy. As of December 2022, the English version is a little newer, with the addition of containers and Kubernetes.

The above document introduces the following three types of Partitioning. Oracle Trusted Partition relates to engineered systems (appliance products) such as Oracle Exadata and Oracle Private Cloud Appliance. We will therefore explain Soft Partitioning and Hard Partitioning.

  • Soft Partitioning
  • Hard Partitioning
  • Oracle Trusted Partition

The Oracle Partitioning Policy documentation is very important. This is because it categorizes virtualization technology into Soft and Hard, thereby recognizing or clarifying it as a means of limiting the number of Oracle licenses. Oracle defines Partitioning Technology as follows. Hard Partitioning is the only recognized means of limiting licenses.

Soft Partitioning
Solaris 9 Resource Containers, AIX Workload
Manager, HP Process Resource Manager, Affinity Management, Oracle VM, VMware etc.

Hard Partitioning
Physical Domains, Solaris Zones, IBM LPAR, IBM Micro-Partitions, vPar, nPar, Integrity Virtual Machine, Secure Resource Partitions, Fujitsu PPAR etc.

When using technology that is recognized as Hard Partitioning, you can count only the number of CPU cores allocated to the divided environment, not the physical servers, as shown in the figure below. However, as you can see from the Hard Partitioning list, there is a lot of high-end UNIX server technology from the past, and they are mostly now minor technologies.

The reason why all servers are counted even if live/cold migration is forbidden

The following was stated earlier:

In a virtual server environment consisting of multiple physical servers, all live/cold migratable servers are subject to license billing

Some features prohibit live/cold migration, such as VMware. Can’t those features be used to limit licenses like Hard Partitioning? These features cannot be used to limit licenses.

This is because most virtualization technologies on x86 servers, such as VMware and Hyper-V, are certified as Soft Partitioning. To limit licensing, you need a technology certified as Hard Partitioning.

Therefore, in order to limit licensing in a virtual server environment consisting of multiple physical servers, you need to separate the servers and storage on the network to limit the servers on which Oracle products run or may run.

Exceptions in Hard Partitioning

You now know that the current mainstream Soft Partitioning technologies cannot be used to limit Oracle licenses. So, is there a way to limit the number of CPU cores on a physical server and reduce Oracle licensing? You can do this in the following ways:

  • Use technologies that are recognized as Hard Partitioning, such as Oracle Linux KVM
  • Use engineered systems such as Oracle Exadata and Oracle Private Cloud Appliance, which are recognized as Oracle Trusted Partitions
  • Use Capacity-on-Demand (CoD) with Oracle Exadata or Oracle Database Appliance

What we want to show you here is how to use Oracle Linux KVM. The Oracle Partitioning Policy states the following as an exception. Note that Oracle VM Server is not recommended because it is nearing the end of support (Premier Support End: March 2021, Extended Support End: June 2024).

Importantly, the text reads, “If a specific core is assigned in the document below.” To be recognized as Hard Partitioning, both of the following conditions must be met. Oracle Linux KVM alone cannot meet the requirements.

  • Uses Oracle Linux KVM
  • The used cores are limited in the way described in the document

Tip: Concept for containers such as Kubernetes

Docker containers and Kubernetes are also commonly used today. The Oracle Partitioning Policy also mentions containers such as Kubernetes. They are basically one form of Soft Partitioning. Therefore, the CPUs of all nodes that make up the Kubernetes cluster are subject to the Oracle license.

However, you can limit licenses to specific nodes by using the node selector. For detailed instructions, please see the following document:

Running and Licensing Oracle Programs in Containers and Kubernetes

Oracle Linux KVM and core assignment

What is Oracle Linux KVM?

Oracle Linux KVM is a virtualization method that uses KVM embedded in the Oracle Linux kernel as HyperVisor. It is built into both RHCK and UEK. There is no product called Oracle Linux KVM, and it is achieved by incorporating packages that support virtualization in Oracle Linux 7, Oracle Linux 8, and Oracle Linux 9.

For detailed setup instructions, see the following manual. There is also a management tool, Oracle Linux Virtualization Manager, which is equivalent to VMware vCenter.

Assigning cores to virtual machines

Hard Partitioning requirements cannot be met using Oracle Linux KVM alone. To meet the requirements, a specific core must be assigned to the target virtual machine using a technique called pinning. To assign a specific core, the olvm-vmcontrol command or Oracle Linux Virtualization Manager is used.

However, as a limitation when you assign a specific core to a virtual machine, the virtual machine is not eligible for live/cold migration. This is important so please remember it.

Conclusion

The following is a summary of this article. In the next article, we will explain how to assign specific cores. We will also give instructions on Hard Partitioning with Oracle Linux KVM. However, it is a little unfriendly, so it may not work well as it is.

The Oracle license concept in virtual server environments

  • In a virtual server environment, the base physical server is subject to license billing
  • In a virtual server environment consisting of multiple physical servers, all servers that can be live/cold migrated are, in principle, subject to license billing
  • Oracle certified virtualization technologies include Soft Partitioning and Hard Partitioning, and Oracle licenses can only be limited with Hard Partitioning technologies
  • Virtualization technologies used on x86 servers such as VMware, Hyper-V, and Linux KVM are classified as Soft Partitioning

Exceptions in Oracle Linux KVM

  • In Oracle Linux KVM, a technology is recognized as Hard Partitioning only when a specific core is assigned in a determined procedure
  • When a specific core is assigned in Oracle Linux KVM, live/cold migration is not available for that virtual machine