返回

2025/03/19

5. 虚拟服务器环境中的 Oracle 许可和 Oracle Linux KVM

在虚拟服务器环境中使用 Oracle 产品时存在一个麻烦的问题。那就是,许可计数使用的是基础物理服务器的 CPU 核心数,而不是分配给虚拟服务器的 CPU 核心数。此外,像 vMotion 这样的虚拟化技术的发展进一步复杂化了这种情况。

因此,在本文中,我们将解释“虚拟服务器环境中的 Oracle 许可概念”和“即使在虚拟服务器环境中也能减少许可的 Oracle Linux KVM”。此外,本内容针对本地环境,公共云中的虚拟服务器不适用。

虚拟服务器环境中的 Oracle 许可概念

虚拟服务器环境的许可基础

首先,我们将介绍虚拟服务器环境中 Oracle 许可的基础知识。让我们看看 Oracle 日本网页上发布的以下常见问题解答。

使用服务器虚拟化软件(Oracle VM、VMware、Hyper-V 等)时的许可计数如何计算?

VMware、Hyper-V 等被归类为软分区,所有安装(或运行)Oracle 产品的物理服务器上的物理处理器都包含在许可计数中。

* 安装(或运行)Oracle 产品的虚拟机(VM)数量与所需许可数量无关。

出现了“软分区”这个术语,但我们先忽略它,稍后再解释。简单来说,在虚拟机(VM)中使用 Oracle 产品时,如下图所示,许可的对象是物理服务器上的处理器。

例如,假设有配备两个 8 核 CPU 的 x86 服务器。将两个核心分配给虚拟机(VM)并使用 Oracle 数据库。此时,计费针对的是 x86 物理服务器。所需的许可是:

8 核 CPU x 2 = 16 核
16 核 x 核心计数 0.5 = 8

对于 Oracle Database Enterprise Edition,需要 8 个处理器许可。
Oracle Database Standard Edition 2 不考虑核心数,因此需要 2 个处理器许可。

提示:Oracle EE 和 Oracle SE2 许可的区别

虽然这不是主要话题,也不会详细解释,但下表说明了 Oracle 数据库“EE”和“SE2”两个版本许可之间的差异。最大的区别在于 EE 按核心数计算许可,而 SE2 按处理器数计算。本文的其余部分仅涉及 EE。

产品 许可类型 许可计数单位
Oracle Database Enterprise Edition (EE) 处理器,命名用户加 核心数
Oracle Database Standard Edition 2 (SE2) 处理器,命名用户加 处理器数(最多 2 个)

提示:CPU 核心和线程

Oracle 许可中的“核心”指的是“物理核心”。它不是通过使用英特尔的超线程(Hyper-Threading)等同步多线程(SMT)技术使单个 CPU 核心表现为多个的“线程(=逻辑核心)”。

例如,Intel Xeon Platinum 8362 有 32 个核心。启用超线程后有 64 个线程。从操作系统来看,好像有 64 个 CPU。然而,Oracle 许可计数的是核心而不是线程,所以是 32。

32 核 x 核心计数 0.5 = 需要 16 个处理器许可

多服务器配置的虚拟服务器环境概念

考虑由多个物理服务器组成的虚拟服务器环境,如下图所示。它可以用于实时迁移等,因此可能是商业环境中最常见的使用方式。

在这样的环境中,组成集群的所有物理服务器都需要为 Oracle 许可付费。这是因为使用实时迁移时,虚拟机也可以在其他服务器上运行。

换句话说,它不仅涵盖安装了 Oracle 产品的服务器,还包括运行或可能运行 Oracle 产品的服务器。

对于与之前相同规格的服务器,所需许可是:

(8 核 CPU x 2) x 2 台 = 32 核
32 核 x 核心计数 0.5 = 16

对于 Oracle Database Enterprise Edition,需要 16 个处理器许可。

虚拟化技术的发展进一步复杂化了情况。例如,VMware vSphere 6.0 及更高版本允许跨集群实时迁移。换句话说,现在可以实时迁移到由另一个 vCenter 管理的物理主机服务器。

许可是针对“运行或可能运行 Oracle 产品的服务器”。因此,它不仅包括实时迁移,还包括冷迁移,即暂时停止虚拟机进行迁移。因此,所有通过网络相互连接并安装了 VMware 或类似技术的物理主机服务器都需要许可。这需要大量的 Oracle 许可。

因此,如果您想将 Oracle 许可限制在特定服务器上,可以如下图所示分割物理网络以防止实时/冷迁移。在这种情况下,只有一台物理服务器需要许可。

虚拟服务器环境的 Oracle 许可总结

  • 在虚拟服务器环境中,基础物理服务器需要许可计费
  • 在由多个物理服务器组成的虚拟服务器环境中,所有可以实时/冷迁移的服务器都需要许可计费

了解分区策略

我们现在将描述虚拟化环境中重要的分区策略。“分区”是一种将一台物理服务器的 CPU 分割并用作多个独立服务器的技术。它最初出现在大型机中。后来扩展到 UNIX 服务器,现在用于 VMware 等技术。请注意,这与将表分成多个部分的 Partitioning Option 无关。

软分区和硬分区

Oracle 发布了以下关于分区策略的文件。截至 2022 年 12 月,英文版稍新,增加了容器和 Kubernetes 的内容。

上述文件介绍了以下三种分区类型。Oracle Trusted Partition 与工程系统(设备产品)如 Oracle Exadata 和 Oracle Private Cloud Appliance 相关。因此,我们将解释软分区和硬分区。

  • 软分区
  • 硬分区
  • Oracle Trusted Partition

Oracle 分区策略文档非常重要。这是因为它将虚拟化技术分为软分区和硬分区,从而承认或澄清其作为限制 Oracle 许可数量的手段。Oracle 将分区技术定义如下。硬分区是唯一被认可的限制许可的手段。

软分区
Solaris 9 资源容器、AIX 工作负载管理器、HP 进程资源管理器、亲和性管理、Oracle VM、VMware 等

硬分区
物理域、Solaris Zones、IBM LPAR、IBM 微分区、vPar、nPar、Integrity 虚拟机、安全资源分区、富士通 PPAR 等

使用被认可为硬分区的技术时,如下图所示,您只需计算分配给分区环境的核心数,而不是物理服务器。然而,从硬分区列表中可以看出,有很多过去的高端 UNIX 服务器技术,现在大多是次要技术。

即使禁止实时/冷迁移,所有服务器仍被计入的原因

之前提到过以下内容:

在由多个物理服务器组成的虚拟服务器环境中,所有可以实时/冷迁移的服务器都需要许可计费

一些功能禁止实时/冷迁移,例如 VMware。这些功能不能像硬分区一样用于限制许可吗?这些功能无法用于限制许可。

这是因为 x86 服务器上的大多数虚拟化技术,如 VMware 和 Hyper-V,被认证为软分区。要限制许可,您需要使用被认证为硬分区的技术。

因此,为了在由多个物理服务器组成的虚拟服务器环境中限制许可,您需要在网络上分离服务器和存储,以限制运行或可能运行 Oracle 产品的服务器。

硬分区的例外

您现在知道当前主流的软分区技术无法用于限制 Oracle 许可。那么,有没有办法限制物理服务器上的 CPU 核心数并减少 Oracle 许可呢?您可以通过以下方式实现:

  • 使用被认可为硬分区的技术,如 Oracle Linux KVM
  • 使用被认可为 Oracle Trusted Partition 的工程系统,如 Oracle Exadata 和 Oracle Private Cloud Appliance
  • 使用 Oracle Exadata 或 Oracle Database Appliance 的按需容量(CoD)

我们想在这里向您展示的是如何使用 Oracle Linux KVM。Oracle 分区策略 将以下内容列为例外。请注意,Oracle VM Server 不推荐使用,因为其支持即将结束(Premier Support 结束:2021 年 3 月,扩展支持结束:2024 年 6 月)。

重要的是,文本中写道:“如果在以下文件中分配了特定核心。”要被认可为硬分区,必须满足以下两个条件。仅使用 Oracle Linux KVM 无法满足要求。

  • 使用 Oracle Linux KVM
  • 以文件中描述的方式限制使用的核心

提示:Kubernetes 等容器的概念

如今,Docker 容器和 Kubernetes 也常被使用。Oracle 分区策略 也提到了 Kubernetes 等容器。它们基本上是软分区的一种形式。因此,组成 Kubernetes 集群的所有节点的 CPU 都需要 Oracle 许可。

然而,您可以使用节点选择器将许可限制在特定节点上。有关详细说明,请参阅以下文件:

在容器和 Kubernetes 中运行和许可 Oracle 程序

Oracle Linux KVM 和核心分配

什么是 Oracle Linux KVM?

Oracle Linux KVM 是一种使用嵌入在 Oracle Linux 内核中的 KVM 作为 HyperVisor 的虚拟化方法。它内置于 RHCK 和 UEK 中。没有名为 Oracle Linux KVM 的产品,它是通过在 Oracle Linux 7、Oracle Linux 8 和 Oracle Linux 9 中整合支持虚拟化的包实现的。

有关详细设置说明,请参阅以下手册。还有一个管理工具 Oracle Linux Virtualization Manager,相当于 VMware vCenter。

将核心分配给虚拟机

仅使用 Oracle Linux KVM 无法满足硬分区要求。要满足要求,必须使用一种称为固定的技术将特定核心分配给目标虚拟机。要分配特定核心,使用 olvm-vmcontrol 命令或 Oracle Linux Virtualization Manager。

然而,当您将特定核心分配给虚拟机时,作为限制,该虚拟机无法进行实时/冷迁移。这很重要,请记住这一点。

结论

以下是本文的总结。在下一篇文章中,我们将解释如何分配特定核心。我们还将提供使用 Oracle Linux KVM 进行硬分区的说明。然而,它有点不友好,因此可能无法按原样很好地工作。

虚拟服务器环境中的 Oracle 许可概念

  • 在虚拟服务器环境中,基础物理服务器需要许可计费
  • 在由多个物理服务器组成的虚拟服务器环境中,原则上所有可以实时/冷迁移的服务器都需要许可计费
  • Oracle 认证的虚拟化技术包括软分区和硬分区,只有硬分区技术可以限制 Oracle 许可
  • 在 x86 服务器上使用的虚拟化技术,如 VMware、Hyper-V 和 Linux KVM,被归类为软分区

Oracle Linux KVM 中的例外

  • 在 Oracle Linux KVM 中,只有在确定的程序中分配特定核心时才被认可为硬分区
  • 在 Oracle Linux KVM 中分配特定核心时,该虚拟机无法进行实时/冷迁移