SLES 15 KVM 設定:使選定的虛擬機器在啟動時執行
安裝 SLES 15 KVM 和 libvirt 工具,啟用正確的主機服務,並配置選定的虛擬機器在重新啟動後啟動。
若要讓 SLES 15 KVM 虛擬機器在主機重新啟動後自動啟動,請安裝 KVM 和 libvirt 管理元件,將該虛擬機器標記為自動啟動virsh autostart VM_NAME,並確保主機的 libvirt 守護程式在啟動期間啟動。自動啟動是針對每個虛擬機器的設定;單獨安裝 KVM 或啟動 libvirt 並不會自動啟動每個虛擬機器。
以下命令遵循 SUSE SLES 15 SP7 虛擬化指南。早期版本的服務包可能有所不同,因此在執行服務命令之前,請查閱相應的指南和已安裝的 systemd 單元。
對於將透過 libvirt 運作和管理虛擬機器的宿主機,需要同時安裝 KVM 伺服器和 KVM 工具。 SUSE 將 KVM 伺服器定義為最小的 QEMU/KVM 環境,將 KVM 工具定義為基於 libvirt 的管理堆疊,其中包括virsh本文所使用的工作流程。
安裝前,請確認機器的處理器和韌體支援硬體虛擬化。 SUSE 在其SLES 15 SP7 虛擬化指南中提供了 CPU 支援和所需軟體的文件。如果驗證報告硬體或設定問題,請在嘗試定義虛擬機器之前,先在韌體或主機配置中解決該問題;自動啟動標誌無法彌補主機無法執行 KVM 的情況。


在已安裝 YaST 的伺服器上,開啟 YaST 並選擇「虛擬化」>「安裝虛擬機器管理程式和工具」。如果缺少 YaST 虛擬化模組,SUSE 會提示該模組已包含在yast2-vm軟體包中。
選擇KVM 伺服器和KVM 工具,然後接受軟體包變更。 YaST 可能會提示您設定網路橋接。僅當該選項符合主機網路設計時才選擇它。更改生產主機的網路可能會中斷遠端訪問,因此請在應用更改之前規劃並安排橋接更改。
設定完成後,建立或匯入虛擬機,並確保將其定義為持久性 libvirt 網域。 SUSE 的指南指出,透過 YaST 設定 KVM 不需要重新啟動主機。
或者,SUSE 文件中提供了使用 Zypper 安裝模式的說明:sudo zypper install -t pattern kvm_server kvm_tools。選擇一種安裝方式,並在確認之前檢查軟體包事務。如果主機是從頭開始安裝的,KVM 虛擬化主機系統角色會在 SLES 安裝過程中安裝並設定相應的選項。
首先,透過系統 libvirt 連接列出網域,以便您可以使用準確的虛擬機器名稱:

sudo virsh -c qemu:///system list --all
此--all選項包含目前已關閉的虛擬機器。從輸出結果中選擇所需的持久虛擬機器。然後為該網域啟用自動啟動:

sudo virsh autostart VM_NAME
若要稍後撤銷此設置,請執行命令sudo virsh autostart --disable VM_NAME。這並非記憶體恢復:主機啟動後,虛擬機器將從其配置的磁碟正常啟動。此外,它不會自動選擇所有虛擬機器。請僅將此命令套用至應在此主機上執行的虛擬機器。
這取決於 SLES 主機使用的是 libvirt 的模組化守護程序還是傳統的單體式部署libvirtd。 SUSE 文件指出,SLES 15 SP7 預設啟用模組化守護進程,並建議將虛擬機器配置為自動啟動時,啟動相關的驅動程式服務。 QEMU 驅動程式服務是 [此處應填寫驅動程式服務名稱] virtqemud.service。在單體式部署中,SUSE 建議libvirtd.service使用 [此處應填入驅動程式服務名稱]。不要因為兩個單元名稱都存在就同時啟用兩種部署模式。
更改設備前,請先檢查主機上的設備設定:

systemctl status virtqemud.service libvirtd.service
如果主機使用模組化 libvirt 並且已安裝 QEMU 單元,請使用下列命令啟用它:
sudo systemctl enable --now virtqemud.service
如果主機已刻意配置為使用單體守護進程,請改用以下指令:

sudo systemctl enable --now libvirtd.service

使用模組化的 libvirt,虛擬網路和儲存管理可以使用獨立的驅動程式守護程式或套接字。如果虛擬機器依賴 libvirt 管理的網絡,則應使該網路也自動啟動;例如,SUSE 文件sudo virsh net-autostart default中提供了預定義default網路的說明。僅當虛擬機器實際使用該網路時才執行此操作。在主機層級配置的網橋不使用此 libvirt 網路設定。請驗證實際連接到虛擬機器的網絡,而不是假定其名稱default。
如果虛擬機器使用外部或網路掛載的磁碟,請確保其後端儲存可在啟動時可用。 SUSE 指出,libvirt 儲存池的活動狀態不會改變已連接到虛擬機器的磁碟區的可用性,但當儲存池必須處於活動狀態以進行主機端池管理或後續磁碟區操作時,啟用池自動啟動非常有用:sudo virsh pool-autostart POOL。請將 `<pool_name>` 替換POOL為實際的池名稱;請勿僅為了設定虛擬機器自動啟動而建立新池。

在規劃維護重新啟動之前,請檢查網域配置和守護程式狀態。使用sudo virsh dominfo VM_NAME指令確認自動啟動已啟用,並systemctl is-enabled virtqemud.service使用systemctl is-enabled libvirtd.service指令檢查您選擇的守護程式模式。如果第一個命令因找不到虛擬機器而失敗,請確保您正在查詢建立虛擬機器時使用的相同 libvirt 連線。
然後,在已批准的維護窗口期間進行測試。主機恢復後,執行命令sudo virsh -c qemu:///system list --all。選定的虛擬機器應顯示為正在運作;分別確認其網路和服務狀態。如果虛擬機器仍處於關閉狀態,請使用journalctl -b -u virtqemud.service或journalctl -b -u libvirtd.service(視情況而定)檢查活動守護程序的啟動日誌,並檢查是否有無法使用的儲存空間或所需的虛擬網路。這些情況取決於主機配置,因此守護程式日誌和虛擬機器的實際裝置配置將決定下一步的修復方案。
有關特定版本的服務詳細資訊、網路設定和客戶機管理,請參閱 SUSE 的SLES 15 SP7 libvirt 守護程序文件和VM 主機準備章節。
安裝 SLES 15 KVM 和 libvirt 工具,啟用正確的主機服務,並配置選定的虛擬機器在重新啟動後啟動。
使用 systemd 作業和先前的啟動日誌來尋找運行緩慢的服務、掛載點或儲存依賴項,然後修正它,而不掩蓋原因。
使用 firewall-cmd 檢查活動區域,安全地允許 HTTP,保留 SSH 訪問,並驗證該規則在 SLES 15 上重新加載後是否仍然存在。
追溯 PAM 故障到其服務、帳戶原則或身分提供者,然後在保持管理員會話正常運作的情況下修復正確的 SLES 配置。
在 ONLYOFFICE 文件伺服器中安裝自訂字體,比較持久 Docker 掛載與直接複製,重建字體列表,並驗證結果。
將 Nextcloud 的檔案和 MariaDB 一起備份,使用 cron 安排加密的 Restic 快照,並在不危及執行伺服器的情況下驗證復原。
匯出單一 Zimbra Community Edition 信箱,驗證其 TGZ 備份,並在不覆寫現有郵件的情況下還原遺失的項目。
僅允許已批准的帳戶使用 Keycloak 和令牌身份驗證啟動 Jitsi Meet 會議室,同時在需要時允許訪客加入。
將 ONLYOFFICE DocSpace 連接到 Active Directory 或 OpenLDAP,安全地匯入使用者和群組,映射帳戶字段,並安排可靠的同步。
在不停用安全啟動的情況下載入自訂 SLES 15 核心模組。匹配正在運行的內核,對 .ko 檔案進行簽名,註冊 MOK 金鑰,並驗證載入情況。