返回
2025/03/25
6. Oracle Linux KVM 硬分割設置
在上一篇文章中,我們解釋了虛擬伺服器環境中的「Oracle 許可證概念」和「分割策略」。您現在應該知道,在虛擬伺服器環境中使用 Oracle 產品時需要注意許多事項。
我們還提到,Oracle Linux KVM 的硬分割功能可以讓您優化 Oracle 產品的許可證成本。然而,僅使用 Oracle Linux 無法限制許可證數量,您需要以固定的形式將特定的 CPU 核心分配給虛擬機器。
這一點也在上次介紹的「使用 Oracle Linux KVM 進行硬分割」部分中有記載,但實際構建起來相當困難。
因此,本文將重點介紹配置時需要注意的要點。然而,本文是為了操作驗證目的,因此與實際運行環境有所不同。特別是在生產環境中,有許多需要考慮的因素,例如可用性和安全性,但本文將忽略這些因素。
此外,構建環境需要 KVM 的知識,但這不是主要問題,因此我們僅會簡要提及。有關 Linux 和 KVM 的更多資訊,請參閱文章末尾的 Oracle Linux 和 Red Hat Enterprise Linux 手冊。
硬分割的要求
閱讀了關於 Oracle Linux 硬分割的白皮書「使用 Oracle Linux KVM 進行硬分割」後,您可能會認為使用 olvm-vmcontrol 命令進行硬分割很簡單?
現實完全不同。除了使用 Oracle Linux KVM 作為虛擬化管理程式外,您還需要管理工具 Oracle Linux Virtualization Manager。而且這些設置相當困難。在上一代的虛擬化產品 Oracle VM Server 中,只需稍微重寫配置文件即可設置硬分割。現在的情況截然不同。
因此,我們將解釋前提要求。
Oracle Linux KVM 和 Oracle Linux Virtualization Manager
首先,讓我們回顧一下基本組件。
Oracle Linux KVM
Oracle Linux KVM 是一個利用內建於 Oracle Linux 核心的 KVM 的虛擬化管理程式。您可以使用 RHCK 和 UEK 兩種核心。作為客體作業系統,它支援 Ubuntu、SUSE Linux 和 Microsoft Windows,以及基於 RHEL 的 Linux。請注意,沒有名為 Oracle Linux KVM 的產品,它是通過將虛擬化套件整合到 Oracle Linux 7、Oracle Linux 8 和 Oracle Linux 9 中實現的。
Oracle Linux Virtualization Manager
Oracle Linux Virtualization Manager (OLVM) 是一個相當於 VMware vCenter 的虛擬環境管理工具。您可以根據運營需要執行任務,例如管理 Oracle Linux KVM 主機和虛擬機器。以下有時會簡稱為 OLVM。
Oracle Linux Virtualization Manager 基於開源的 oVirt,Red Hat Virtualization (RHV) 也使用基於 oVirt 的相同管理工具。準確來說,Red Hat Virtualization 的開源實現是 oVirt。它們之間的關係如下表所示。
供應商 | KVM 管理工具 | 基礎設施配置管理工具 |
---|---|---|
Red Hat | Red Hat Virtualization | Red Hat Satellite |
開源實現 | oVirt | Spacewalk |
Oracle | Oracle Linux Virtualization Manager | Oracle Linux Manager |
需要 Oracle Linux Virtualization Manager
要進行硬分割的 CPU 固定,目標 Oracle Linux KVM 必須由 Oracle Linux Virtualization Manager 管理。
這一點非常重要。管理 Oracle Linux KVM 不需要 Oracle Linux Virtualization Manager。然而,硬分割卻需要它。問題在於,是否使用 Oracle Linux Virtualization Manager,構建和運營的方式完全不同。
在 Linux KVM 中,您可以使用 GUI 工具 virt-manager 或 CLI virsh 進行管理。還可以使用基於 Web 的管理工具 Cockpit。然而,如果您遷移到 Oracle Linux Virtualization Manager,這些工具都將無法使用。基礎是基於 Web 的 Oracle Linux Virtualization Manager,隨後是 REST 介面。
如果您遷移到 Oracle Linux Virtualization Manager,將無法再使用 virt-manager 或 virsh 進行管理。
以下是硬分割要求的總結。
- Oracle Linux KVM 主機由 Oracle Linux Virtualization Manager 管理
- 在 Oracle Linux Virtualization Manager 中設置 olvm-vmcontrol
Oracle Linux Virtualization Manager 架構
使用 Oracle Linux Virtualization Manager 的關鍵是理解其架構。在 Oracle Linux Virtualization Manager 和 Red Hat Virtualization 中,描述架構的手冊都列在文件列表的頂部。本節描述了主要組件及其配置方法。
Oracle Linux Virtualization Manager 的關鍵組件
Oracle Linux Virtualization Manager 由兩個主要組件組成:
oVirt Engine
Oracle Linux Virtualization Manager 的主要組件,為 GUI 和 REST API 提供服務以管理資源。它使用 Java 編寫,運行於內建的 Java EE 容器 WildFly(前身為 JBoss)上。它使用 PostgreSQL 進行資料管理。
VDSM (Virtual Desktop Server Manager)
要在受管理的 KVM 主機上安裝的 oVirt Engine 代理。
兩種配置方法
使用 Oracle Linux Virtualization Manager 配置系統有以下兩種方式。為了正確構建,您需要了解每種方式的特點。詳情請參閱手冊,這裡我們將簡要說明。
- 自托管引擎 (Self-Hosted Engine)
- 獨立管理器 (Stand Alone Manager)
自托管引擎 (Self-Hosted Engine)
最常見的方式是在 Oracle Linux KVM 主機上的虛擬機器上運行 Oracle Linux Virtualization Manager。圖表顯示了雙主機配置,但當不需要可用性時,可以使用單主機配置。
優點
- oVirt Engine 運行於虛擬機器上,因此需要較少的物理伺服器
- 可以輕鬆為 oVirt Engine 添加冗餘
缺點
- oVirt Engine 運行於 KVM 主機上,減少了 KVM 主機可用的 CPU 和記憶體
獨立管理器 (Stand Alone Manager)
使用此方法,oVirt Engine 運行於受管理的 Oracle Linux KVM 主機以外的主機上。使用物理伺服器或在不同虛擬環境中托管的虛擬機器。
優點
- oVirt Engine 獨立於受管理的主機,因此對主機沒有負擔
缺點
- 要使 oVirt Engine 具有冗餘,需要使用 HA 集群軟體或類似方式進行集群配置。
不支援的方法
如下所示,在受管理的 Oracle Linux KVM 主機上安裝 Oracle Linux Virtualization Manager 是不支援的。
Oracle 與第三方手冊中的術語差異
閱讀 Oracle Linux Virtualization Manager 手冊時,術語的翻譯和手冊的組織令人困惑。下表對這些進行了比較。
來源 | KVM 上的虛擬機器方法 | 與 KVM 分開托管 |
---|---|---|
oVirt/RHV 英文手冊 | Self-Hosted Engine | Stand Alone Manager(*1) |
RHV 日文手冊 | Self-Hosted Engine | Stand Alone Manager |
OLVM 英文手冊 | Self-Hosted Engine | Engine(*2) |
OLVM 日文手冊 | 自己托管引擎 (Self-Hosted Engine) | Engine (*2) |
*1 以前,似乎有時將其稱為 Stand Alone Engine 而不是 Stand Alone Manager。
*2 Stand Alone Manager 在少數地方也有使用,但沒有明確區分配置的描述。有時也稱為 Engine
雖然基於機器翻譯,但「Self-Hosted Engine」的日文版翻譯並不好。此外,由於入門指南中沒有明確指明「Stand Alone Manager」方法的名稱,因此令人困惑。
構建 Oracle Linux Virtualization Manager 的規劃
要構建 Oracle Linux Virtualization Manager,您需要了解 Oracle Linux Virtualization Manager 架構和系統要求。
選擇自托管引擎和獨立管理器
首次構建 Oracle Linux Virtualization Manager 時,我們推薦使用下圖所示的 Stand Alone Manager 方法。在生產環境中,我們推薦 Self-Hosted Engine 方法,但 Stand Alone Manager 方法更容易構建。當可用伺服器數量較少時,請使用 Self-Hosted Engine 系統。您還需要一個您可以自行管理的 DNS 伺服器。
Oracle Linux KVM 主機和 Oracle Linux Virtualization Manager 主機
這將作為術語的整理進行描述。安裝 Oracle Linux Virtualization Manager 的伺服器稱為 Oracle Linux Virtualization Manager 主機 (OLVM 主機) 或 引擎主機。由 Oracle Linux Virtualization Manager 管理的 Oracle Linux KVM 伺服器稱為 Oracle Linux KVM 主機 或 KVM 主機。在官方手冊中,有些地方僅將 Oracle Linux Virtualization Manager 主機 簡稱為主機,請根據上下文判斷。
可以用 VirtualBox 構建驗證環境嗎?
當我們嘗試使用 VirtualBox 構建時,我們能夠安裝 Oracle Linux Virtualization Manager 並添加 KVM 主機。然而,出現了「此集群相容性中不支援主機 CPU 類型」的錯誤,無法進行進一步操作。在其他 PC 或虛擬環境中可能可以實現。
為了嘗試,您或許應該在 Oracle Cloud Infrastructure 上使用以下服務。
- Oracle Linux Virtualization Manager:計算虛擬機器
- Oracle Linux KVM 主機:計算裸機實例
系統要求
Oracle Linux Virtualization Manager 主機和 Oracle Linux KVM 主機的系統要求如下。
Oracle Linux Virtualization Manager 主機要求
- 適用於 oVirt 4.4 的 Oracle Linux 8.5 或更高版本
- CPU:2 核心,記憶體:4GB,磁碟:25GB(均为最低要求)
Oracle Linux KVM 主機要求
- 適用於 oVirt 4.4 的 Oracle Linux 7.6 或更高版本或 Oracle Linux 8.5 或更高版本
- CPU:2 核心,記憶體:2GB,磁碟:60GB(均为最低要求)
這裡重要的是,受支援的 OLVM 主機和 KVM 主機要求因 Oracle Linux Virtualization Manager 版本而異。請檢查「Oracle Linux Virtualization Manager 手冊」中「架構與規劃」的「要求和可擴展性限制」,以確認所使用版本的要求。
構建 Oracle Linux Virtualization Manager 的技巧
由於程序的複雜性和手冊的難度,即使您有一些 Linux 和 KVM 經驗,構建 Oracle Linux Virtualization Manager 環境也會令人困惑。本節將介紹構建驗證環境的技巧。
此外,至少目前來說,Red Hat Virtualization 文件更為完整。安裝期間運行的命令有所不同,但整體流程和限制是相同的。建議您瀏覽一遍。
構建 Oracle Linux Virtualization Manager 的程序
下圖顯示了構建 Oracle Linux Virtualization Manager 以實現硬分割的步驟。Stand Alone Manager 和 Self-Hosted Engine 的程序不同。
構建 Oracle Linux 伺服器的注意事項
本節描述了在安裝 Oracle Linux Virtualization Manager 之前構建 Oracle Linux 伺服器的注意事項。Oracle Linux Virtualization Manager 主機與 Oracle Linux KVM 主機相同。
選擇的安裝類型
Oracle Linux 以「最小安裝」進行安裝。然而,由於操作驗證所需的命令可能未安裝,最好至少安裝以下命令:
dnf install bind-utils nc tmux tree -y
其他要求
其他要求包括以下內容。請注意,有些事項在手冊中未記載。
- 能夠通過正向和反向 DNS 解析名稱。換句話說,除了 Oracle Linux Virtualization Manager 或 Oracle Linux 主機外,您需要另一台伺服器運行 DNS
- 防火牆必須啟用。所需端口的開放由設置工具自動設置
- SELinux 應啟用
- Oracle Linux Virtualization Manager 主機的地區設定必須為 en_US.utf8
Oracle Linux Virtualization Manager 主機的地區設定必須為 en_US.utf8。如果如下所示,則沒有問題。
# localectl
System Locale: LANG=en_US.utf8
VC Keymap: jp
X11 Layout: jp
如果地區設定不是 en_US.utf8,例如 en_US.UTF-8,請執行以下操作更改:
# dnf install glibc-langpack-en -y
# localectl set-locale LANG=en_US.utf8
選擇使用的儲存庫
Oracle Linux Virtualization Manager 入門指南 描述了以下兩種類型的主機作為預安裝設置。
- 對於已註冊 ULN 的主機
- 對於 Oracle Linux Yum 伺服器主機
前者是當您已註冊 Oracle Linux Premier Support 並使用 ULN 註冊主機時的程序。後者是無論是否簽訂 Premier Support 合約,參考公共 Yum 儲存庫 (https://yum.oracle.com) 的主機程序。程序略有不同,請選擇適當的程序。此程序對於 Oracle Linux KVM 主機是相同的。
添加 KVM 主機時如何添加公鑰
在 Oracle Linux Virtualization Manager 中添加 KVM 主機時,您可以選擇密碼方法或 SSH 公鑰方法。我們推薦使用 SSH 公鑰方法。此時,由管理門戶生成的公鑰將被添加到 KVM 主機端。
# mkdir -p /root/.ssh
# vi /root/.ssh/authorized_keys ←手動添加時
# cat kvmhost.pub >> /root/.ssh/authorized_keys ←從保存的文件添加時
# chmod 600 /root/.ssh/authorized_keys
使用不同的 FQDN 存取 Oracle Linux Virtualization Manager
Oracle Linux Virtualization Manager 管理門戶使用 FQDN 存取,例如 https://olvm.sample.com/ovirt-engine。然而,如果因某些原因(例如端口轉發)使用不同的主機名存取,登入畫面將不會顯示。此時,在 Oracle Linux Virtualization Manager 主機上定義備用主機名。
我們將創建一個定義文件。
vi /etc/ovirt-engine/engine.conf.d/99-custom-sso-setup.conf
要添加的內容如下。用空格分隔多個主機。
SSO_ALTERNATE_ENGINE_FQDNS="localhost hostname1 hostname2"
重新啟動服務。
systemctl restart ovirt-engine
可以使用 virsh 嗎?
我們提到在 Oracle Linux Virtualization Manager 中無法使用 virsh 命令。然而,可以使用唯讀模式。如下添加 -r 或 –readonly。
# virsh -r list --all
Id Name State
----------------------------------
0 o19v1 running
1 o19v2 running
# virsh -r vcpuinfo o19vm1 --pretty
VCPU: 0
CPU: 0
State: running
CPU time: 5.4s
CPU Affinity: 0-1 (out of 12)
VCPU: 1
CPU: 1
State: running
CPU time: 2.9s
CPU Affinity: 0-1 (out of 12)
遇到問題時
如果無法正確設置,除了線上搜索外,還請檢查以下資訊:
- Oracle Linux Virtualization Manager 管理門戶中的「事件」
- 日誌文件:
/var/log/ovirt-engine/engine.log
- My Oracle Support

結論
配置好 Oracle Linux Virtualization Manager 後,請按照白皮書 使用 Oracle Linux KVM 進行硬分割 中的說明配置硬分割。
最後還有一點需要注意。已配置硬分割的虛擬機器的可用性。對於配置了多個 Oracle Linux KVM 主機的集群,虛擬機器可以進行即時遷移。然而,硬分割中固定 CPU 的虛擬機器不符合即時遷移條件。如果您需要一定程度的可用性,應考慮同時考慮許可證的恢復計劃。