SLES 15 KVM 虛擬化設定與虛擬機器自動啟動指南

SUSE Linux Enterprise Server 15 可作為 KVM 主機,並支援 QEMU/KVM 虛擬機器管理程式和 libvirt 管理堆疊。本指南旨在為希望實現可重複配置的管理員提供實用參考:確認硬體虛擬化、安裝支援的元件、選擇網路和儲存、建立虛擬機器、啟用每個虛擬機器的自動啟動,並驗證主機重新啟動後虛擬機器是否已恢復運作。

以下命令和選單路徑已根據SUSE Linux Enterprise Server 15 SP7 虛擬化指南進行核對,該指南的最新發布日期為 2026 年 9 月 10 日。早期版本的 SLES 15 服務包與之類似,但軟體包版本、守護程序預設設定和可用的客戶機設定檔可能有所不同。 SUSE 建議透過 libvirt 管理支援的虛擬化,而不是將 libvirt 與直接的虛擬機器管理程式特定管理方式混合使用。

快速規劃清單

物品需要決定或核實什麼
中央處理器韌體支援並啟用硬體虛擬化:x86 系統上的 Intel VT-x 或 AMD-V。
主機資源為 SLES 本身以及每個虛擬機器預留足夠的 CPU、記憶體、儲存空間和 I/O 容量。
聯網當訪客需要對 LAN 進行正常的二層存取時,請使用橋接;當 NAT 或路由隔離更合適時,請使用 libvirt 虛擬網路。
貯存選擇用戶機磁碟映像的存放位置,並確保後端檔案系統或儲存池有足夠的可用空間。
管理一致地使用 libvirt 工具,例如 virsh、virt-install 和虛擬機器管理器。
啟動行為自動啟動是針對每個持久性虛擬機器單獨配置的,而不是使用一個全域開關來控制所有虛擬機器。

1. 確認主機可以執行 KVM

KVM 需要處理器虛擬化支援以及相應的韌體設置,以便作業系統能夠識別並使用該支援。在 x86 主機上,一個快速的初步檢查方法是尋找 Intelvmx或 AMD svmCPU 標誌。 libvirt 用戶端軟體包還提供了virt-host-validate一個工具,可以執行更全面的主機檢查。

egrep -c '(vmx|svm)' /proc/cpuinfo
sudo virt-host-validate qemu

CPU 標誌計數為正值固然有用,但這並非唯一要求。如果驗證報告顯示 KVM 不可用,請先檢查 BIOS 或 UEFI 設置,尤其是在新配置的伺服器上。 SUSE 的 KVM 主機文件指出,虛擬化必須由 CPU 支持,並在 BIOS/韌體中啟用。另請注意,巢狀虛擬化是一項獨立的功能;在 SLES 15 SP7 中,SUSE 將巢狀 KVM 列為技術預覽版,而非生產環境支援的預設功能。

SLES 15 主機上的終端機顯示 CPU 虛擬化檢查和 virt-host-validate 結果
預檢階段的終端視圖:在建立任何虛擬機器之前,會檢查 CPU 虛擬化標誌和主機驗證。

2. 安裝 KVM 伺服器和 libvirt 管理工具

最符合支援的路徑是使用 YaST。開啟YaST > 虛擬化 > 安裝 Hypervisor 和工具,選擇KVM 伺服器,如果需要 libvirt 管理堆疊,請選擇KVM 工具yast2-vm。 SUSE 文件中將此軟體包描述為用於此設定的 YaST 模組。

對於命令列自動化,SLES 將相同的功能分組到不同的安裝模式。請同時安裝主機模式和管理模式:

sudo zypper install -t pattern kvm_server kvm_tools

此kvm_server模式會安裝基本的 QEMU/KVM 主機環境。kvm_tools此外,它還會添加基於 libvirt 的工具,用於管理和監控虛擬機器。特定的依賴項清單取決於服務包,因此,除非您採用的是受控的最小主機設計,否則建議安裝文件中提供的模式,而不是手動維護軟體包清單。

參考資料:SUSE:虛擬化組件的安裝。

YaST虛擬化窗口,已選擇KVM伺服器和KVM工具
在 YaST 中,選擇 KVM 伺服器和 KVM 工具來安裝虛擬機器管理程式和 libvirt 管理堆疊。

3. 在遷移生產流量之前,選擇虛擬機器網路模型

SUSE 將網路橋接描述為虛擬機器直接連接到主機區域網路時的預設建議連線方式。橋接器類似二層交換器:主機的實體介面和虛擬機器的虛擬介面共用同一個乙太網路區段。對於需要獨立區域網路位址、入站服務、DHCP 預留或與其他機器保持正常通訊的基礎架構虛擬機器而言,這通常是最佳選擇。

當虛擬機器需要隔離或簡單的出站連線時,libvirt 虛擬網路通常是更好的選擇。 NAT 可以讓多個虛擬機器共享主機的外部位址,同時保持在私有子網路中。路由模式無需位址轉換即可轉送流量,但需要周圍網路具備適當的路由。

如果主機使用wickedSUSE 文件中提到的伺服器主機預設網路管理服務,請使用 YaST 或對應的命令列設定建立網橋。 NetworkManager 系統可以使用nmcli。在遠端伺服器上操作時務必謹慎:如果更改錯誤,將主機 IP 配置移至網橋可能會導致 SSH 連線中斷。請安排維護視窗或確保您擁有控制台存取權限。

參考資料:SUSE:準備 VM 主機伺服器。

YaST 網路設定顯示網橋 br0 已連接至 eth0
這是一個橋接網路範例,其中 br0 連接到實體乙太網路接口,適用於訪客需要存取第 2 層 LAN 的情況。

4. 確認 KVM 核心模組已載入

安裝完成後,驗證 KVM 的核心端。 Intel 主機通常使用kvm_intel;AMD 主機使用kvm_amd。 SUSE 的 KVM 主機設定指南示範如何載入處理器特定的模組並使用 進行檢查lsmod。

sudo modprobe kvm_intel   # Intel host
# or
sudo modprobe kvm_amd     # AMD host

lsmod | grep kvm

您應該會看到通用kvm模組和處理器特定模組。如果模組載入失敗,請不要直接在軟體模擬模式下建立虛擬機器。除非您的設計有意採用純軟體仿真,否則請先重新檢查韌體虛擬化設定和主機相容性。

參考資料:SUSE:設定 KVM VM 主機伺服器。

SLES 終端的 lsmod 輸出中顯示了 kvm 和 kvm_intel 模組
在 Intel 主機上進行的預期模組檢查會顯示通用 KVM 模組和 Intel 專用 KVM 模組。

5. 驗證您的服務包所使用的 libvirt 守護程式模型

SLES 15 SP7 預設啟用模組化 libvirt 守護程式模型。對於 KVM,主虛擬機器管理程式守護程式是 libvirt virtqemud。輔助守護程式處理虛擬網路和儲存等功能。 SUSE 仍然提供了傳統的單體libvirtd部署文檔,但您不應隨意啟用兩種模型。

在預設的 SP7 KVM 主機上,檢查 QEMU 守護程序:

systemctl status virtqemud.service
sudo systemctl enable --now virtqemud.service

SUSE 特別建議,如果虛擬機器也配置為主機啟動時自動啟動,則應將相關的 libvirt 服務配置為開機啟動。對於有意使用單體 libvirt 的舊版系統,則應檢查libvirtd.service其套接字。在已建立的主機上切換守護程序模型之前,請遵循 SUSE 文件中記錄的過渡流程,並停止或遷移虛擬機器。

參考:SUSE:libvirt守護程式。

終端機顯示 virtqemud systemd 服務在 SLES 15 主機上處於活動狀態
在目前的 SLES 15 SP7 上,請先檢查模組化 virtqemud 服務,然後再依賴主機啟動時虛擬機器自動啟動。

6. 準備儲存和安裝介質

在建立虛擬機器之前,請確定其虛擬磁碟的位置以及安裝 ISO 映像的掛載點。預設設定適用於小型獨立主機,而大型安裝則可能需要使用專用 LVM 磁碟區、獨立檔案系統、NFS、iSCSI 或其他透過 libvirt 管理的儲存。關鍵的操作原則是避免在主機根檔案系統中靜默地儲存不斷增長的虛擬機器鏡像。

對於基於文件的虛擬機,請在建立磁碟之前驗證可用空間:

df -h /var/lib/libvirt/images
ls -lh /data/ISOs/

如果您使用 libvirt 儲存池,請檢查virsh pool-list --all並確保目標儲存池處於活動狀態。對於生產系統,請將虛擬機器儲存納入容量監控和備份設計中,而不是將磁碟映像視為一個可以自行處理的獨立檔案。

7. 建立虛擬機

您可以使用 Virtual Machine Manager 以圖形方式建立虛擬機,也可以使用命令列工具建立virt-install。 SUSE 將 描述virt-install為透過 libvirt 建立虛擬機器的命令列工具,它對於可重複建置和遠端管理特別有用。

在虛擬機器管理器中,建立新的虛擬機,選擇本地安裝介質,選擇客戶作業系統,分配記憶體和虛擬 CPU,選擇存儲,然後選擇所需的虛擬網路。下圖以 SLES 15 ISO 為例進行說明;請使用與您已獲授權的服務包完全相符的安裝映像和設定檔。

虛擬機器管理器新虛擬機器精靈選擇本機 SLES 15 安裝介質
虛擬機器管理器可以從本機 ISO 媒體建立虛擬機器;選擇與您要安裝的服務包對應的正確 SLES 15 映像。

一個類似的命令列範例是:

sudo virt-install   --name sles15-vm   --memory 4096   --vcpus 2   --disk path=/var/lib/libvirt/images/sles15-vm.qcow2,size=40   --cdrom /data/ISOs/SLES-15-SP7-DVD-x86_64-GM-DVD1.iso   --network bridge=br0,model=virtio   --graphics spice

根據您的工作負載調整記憶體、CPU 數量、磁碟大小、ISO 路徑、網路來源、韌體和圖形選項。如果您使用的是 libvirt NAT 網路而不是橋接網絡,請將橋接選項替換為相應的虛擬網絡。當生產環境支援至關重要時,請查閱 SUSE 虛擬化支援文檔,確認支援的客戶作業系統和裝置選項。

參考:SUSE:使用 virt-install 安裝客戶機。

終端機顯示了一個 virt-install 命令,該命令定義了一個 SLES 15 虛擬機器。
virt-install 工作流程透過一個可重複的指令定義客戶機名稱、RAM、vCPU、磁碟、安裝媒體和網路連線。

8. 啟用虛擬機器自動啟動

虛擬機器自動啟動是每個持久化虛擬機器上的 libvirt 屬性。 SUSE 的文檔明確指出,該功能預設未啟用,必須單獨啟用;沒有一個全域開關可以將所有虛擬機器標記為自動啟動。

為訪客啟用:

sudo virsh autostart sles15-vm

請檢查設定:

sudo virsh dominfo sles15-vm | grep -i autostart

稍後要關閉此行為:

sudo virsh autostart --disable sles15-vm

在虛擬機器管理器中,對應的控制項位於用戶機器的「檢視」>「詳細資料」>「啟動選項」下,您可以啟用「在主機啟動時啟動虛擬機器」並套用變更。

參考資料:SUSE:基本虛擬機器客戶機管理和自動啟動。

SLES 終端機顯示了持久虛擬機器的 virsh autostart 和 dominfo 輸出。
啟用自動啟動後,virsh dominfo 應該會報告客戶機已配置為隨主機虛擬化服務自動啟動。

9. 測試配置,而不是想當然地認為自動啟動功能正常。

有效的測試方法是在維護視窗期間進行受控的主機重新啟動。重新啟動前,記錄目前狀態並驗證虛擬機器是否持久化:

sudo virsh list --all
sudo virsh dominfo sles15-vm

然後重啟主機。主機重新啟動後,確認虛擬化守護程式和客戶機狀態:

systemctl is-active virtqemud.service
sudo virsh list --all

如果您的部署使用單體式 libvirt,請將服務檢查替換為 [此處應填寫服務檢查的描述] libvirtd。自動啟動的虛擬機器應該running無需手動操作即可完成轉換virsh start。此外,也要驗證虛擬機器內部的服務,而不僅僅是虛擬機器狀態。正在運行的虛擬機器仍然可能存在應用程式故障、網路配置缺失或檔案系統復原問題。

故障排除參考

症狀可能需要檢查的區域實用命令
KVM不可用韌體虛擬化已停用、CPU 不受支援或缺少核心模組virt-host-validate qemu
虛擬機器無法連接到區域網路橋接會員資格、主機 IP 位址分配、VLAN、防火牆或交換器策略ip link和bridge link
虛擬機器定義存在,但無法啟動磁碟路徑、權限、儲存池、XML 或已耗盡的資源virsh start VMNAME以及日誌
主機重新啟動後虛擬機器無法啟動主機啟動時未啟用自動啟動標誌或 libvirt 守護程序virsh dominfo VMNAME和systemctl is-enabled virtqemud
關機行為類似斷電客戶機 ACPI 或客戶機作業系統關機行為virsh shutdown VMNAME

SUSE 警告稱,強制關機virsh destroy相當於突然斷電,可能導致虛擬機器檔案系統損壞或資料遺失。在生產環境中使用虛擬機器之前,請務必測試其正常關機和重新啟動功能。

可靠的 SLES 15 KVM 主機的實用基準

一個乾淨的基線很簡單:保持主機運行在受支援的 SLES 15 服務包上,安裝文件中記錄kvm_server的kvm_tools模式,始終如一地使用 libvirt,特意選擇橋接或虛擬網路連接,避免虛擬機存儲位於容量不足的根文件系統之外,並且僅標記真正需要在啟動時啟動的客戶機virsh autostart。

對於 SLES 15 SP7,請記住一個容易被忽略的守護程序細節:模組化的 libvirt 守護程序是預設設置,因此virtqemud您通常需要驗證 KVM 的服務,而不是假設所有目前主機都基於傳統的單體式 libvirt libvirtd。在診斷已正確標記為自動啟動但在主機重新啟動後仍然未出現的虛擬機器時,這種差異至關重要。

留下評論

如何在不破壞依賴關係的情況下將 Debian 12 遷移到 Testing 版本

如何在不破壞依賴關係的情況下將 Debian 12 遷移到 Testing 版本

將 Debian 12 Bookworm 系統移轉到 Debian Testing,減少依賴項的意外情況。了解支援的 Bookworm 到 Trixie 遷移路徑、APT 檢查、模擬和復原保障措施。

如何將 SLES 15 機器註冊到 SUSE Manager Offline

如何將 SLES 15 機器註冊到 SUSE Manager Offline

使用同步通道、引導儲存庫、啟動金鑰和經過驗證的 Salt 引導工作流程,無需 Internet 存取即可將 SLES 15 註冊到 SUSE Manager。

如何修復 Ubuntu 24.04 系統睡眠後 Wi-Fi 斷開連線的問題

如何修復 Ubuntu 24.04 系統睡眠後 Wi-Fi 斷開連線的問題

解決 Ubuntu 24.04 掛起後 Wi-Fi 斷開的問題:更新、檢查無線電區塊和 NetworkManager、測試省電模式、檢查日誌並驗證修復。

透過調整 ALSA 配置修復 Ubuntu 24.04 中的聲音失真問題

透過調整 ALSA 配置修復 Ubuntu 24.04 中的聲音失真問題

透過診斷 ALSA 設備並安全地調整 WirePlumber 緩衝區、取樣率和直接 ALSA 設置,修復 Ubuntu 24.04 中的劈啪聲、嗡嗡聲和失真聲音。

如何在啟用安全啟動的 SLES 15 上安裝自訂核心模組

如何在啟用安全啟動的 SLES 15 上安裝自訂核心模組

學習如何對自訂 SLES 15 核心模組進行簽名,將其憑證註冊到 MOK,在安全啟動下載入它,驗證結果,以及處理核心更新。

SLES 15 KVM 虛擬化設定與虛擬機器自動啟動指南

SLES 15 KVM 虛擬化設定與虛擬機器自動啟動指南

在 SLES 15 上設定 KVM,配置 libvirt 網路和存儲,建立虛擬機,啟用自動啟動,並在主機重新啟動後驗證可靠啟動。

How to Configure a WireGuard Point-to-Site VPN Server on Debian 12

How to Configure a WireGuard Point-to-Site VPN Server on Debian 12

Configure a WireGuard point-to-site VPN on Debian 12 with wg-quick, IPv4 forwarding, nftables NAT, client profiles, systemd startup, and verification.

如何加固 SLES 15 以符合 STIG 標準:安全的 OpenSCAP 工作流程

如何加固 SLES 15 以符合 STIG 標準:安全的 OpenSCAP 工作流程

在生產推廣之前,根據目前的 DISA STIG 對 SLES 15 進行審核,審查 OpenSCAP 的調查結果,測試補救措施,並記錄例外情況。

如何在 SUSE Linux Enterprise Server 上設定 SAP HANA 記憶體限制

如何在 SUSE Linux Enterprise Server 上設定 SAP HANA 記憶體限制

了解如何在 SUSE Linux Enterprise Server 上設定 SAP HANA 全域和語句記憶體限制,將 HANA 限制與 SUSE MemoryLow 進行比較,並安全地驗證每個變更。

如何安全地設定 Gooroom OS 瀏覽器隔離設定

如何安全地設定 Gooroom OS 瀏覽器隔離設定

了解 Gooroom OS 瀏覽器隔離的工作原理,準備受信任且被封鎖的 URL 策略,協調 GPMS 配置,並驗證您的建置中的設定。