客體代理程式已啟用,卻仍顯示未執行

啟用代理程式與安裝代理程式是兩件不同的事,即使兩件都做了,代理程式仍可能沒有運作。值得追查的原因不是缺少的 IP 位址,而是那些持續成功、卻在不知不覺中變得不那麼可靠的備份。

AtlasPVE ·

本條目涵蓋以下問題

  • proxmox guest agent 沒有執行
  • proxmox windows guest agent 沒有執行
  • proxmox 未設定客體代理程式 看不到 ip
  • proxmox qemu guest agent 未執行
  • proxmox ubuntu guest agent 沒有執行

選項已經勾選,套件也已經裝進機器裡。面板卻仍顯示代理程式未執行,IP 位址欄位依然空白。

這個問題值得仔細釐清,因為有三件各自獨立的事必須同時成立,而介面只回報最終的結論。

三件事,不是一件

機器設定中的選項。這是主機端。它告訴 Proxmox VE 這個客體應該有代理程式,並且應該嘗試與它通訊。

客體內部的軟體。這是安裝在作業系統中的套件,而且必須以服務的形式執行,光是安裝還不夠。

在兩者之間傳遞通訊的虛擬裝置。這是沒有人會想到的部分,而多數案例正是卡在這裡。

幾乎每個人都會漏掉的步驟

啟用這個選項會在機器上新增一個虛擬裝置。官方文件對其後果說得很直白:虛擬機器必須從關機狀態重新開機,變更才會生效。

這和在機器內部重新啟動作業系統不是同一件事。裝置無法出現在已經通電的機器上,所以重新啟動客體完全沒有作用:它回到的仍是離開時的同一套虛擬硬體。機器必須先停止,再啟動。

如果選項已啟用、套件已安裝,卻仍然沒有任何回報,原因幾乎總是這個。停止客體,再次啟動,然後檢查。

在 Windows 上

Windows 客體的代理程式來自 VirtIO 驅動程式媒體,而不是作業系統本身的套件來源,因此對於期待能找到一般安裝程式的人來說,安裝代理程式這項指示看起來就像一條死路。

安裝之後,要確認服務確實在執行。已停止的服務與根本沒有安裝,從外面看起來一模一樣,面板也把兩者回報為同一件事。

兩種寫法,都正確

實際環境中的設定檔,代理程式選項的寫法不只一種,因為這項設定隨著時間增加了額外的子選項。兩種寫法都有效,也都會啟用代理程式。

這一點主要是個警告:如果發現一台機器用一種寫法、另一台用另一種寫法,別急著把它們統一,以為這樣能修好什麼。這樣做不會有效,最後只是白白花掉一次機器重新啟動才發現這件事。

為什麼值得追查的不只是 IP 位址

空白的 IP 欄位是看得見的症狀,也是最不重要的一個。

代理程式正常運作時,會在背後默默做這件事:在某些操作之前,Proxmox VE 會要求客體凍結檔案系統,讓擷取下來的內容保持一致。官方文件列出的操作比多數人預期的還多,包括快照模式的備份、複製執行中的機器、複寫執行中的機器、建立不含 RAM 的快照,以及從執行中的客體匯入磁碟映像。

沒有正常運作的代理程式,這些操作照樣會執行,也照樣回報成功。改變的是保證:擷取到的不再是事先被要求靜止的檔案系統,而是寫入到一半的檔案系統。多數時候不會出事。會出事的那幾次,正好是真正需要倚靠備份的時候。

這才是真正的代價,而且看不見。缺少 IP 位址每天都讓人心煩。變弱的備份則一聲不吭,直到真正派上用場的那一天。

反方向的一個 Windows 注意事項

凍結並非在所有情況下都沒有副作用。在 Windows 客體上,透過 Volume Shadow Copy Service 自行管理一致性的應用程式可能會受到干擾。官方文件記錄了一個實際觀察到的案例:在部分 SQL Server 上,發出凍結指令會觸發一條陰影複製路徑,進而中斷差異備份鏈。

如果在 Windows 上執行的資料庫有自己的備份鏈,最好在還原記錄中出現缺口之前就了解這個交互作用。這個問題有文件記載的因應方法,這裡要說的只是:代理程式永遠比較好的說法並不完全正確。

Atlas 的做法

Atlas 讀取同樣的三個條件,並分成三項回報,而不是合併成一個結論。選項已開啟但機器之後還沒重新啟動,與機器內部什麼都沒安裝,是兩個不同的問題,修正方式也不同。

本文的後半段落在每日摘要裡。停止回報的代理程式,正是那種會無聲劣化的東西:沒有任何東西壞掉,備份照常完成,背後的保證卻悄悄變薄。這值得在真正會被閱讀的摘要裡佔一行,而不是留在一個早已沒人注意到空白的欄位裡。

資料來源

Proxmox 官方文件。內容為英文,且在此主題上以官方文件為準。

相關條目

這項工作在 Atlas 中是什麼樣子?

前往產品頁面