我在 oVirt 中的託管引擎遇到了奇怪的情況。
我們使用 gluster 設定了一個 oVirt 叢集作為引擎 isos 和所有資訊的儲存。大約一周前,三台伺服器中的兩台發生故障。我們重新啟動機器大約三次,gluster 主機報告已連接,並且沒有報告任何裂腦錯誤。
託管引擎進程嘗試在其中一台主機上啟動託管引擎,但它進入了 EngineUnexpectedlyDown 狀態。它會從伺服器分數中減去1600,然後嘗試在下一台機器上啟動它,直到它們最終都得到大約800 分,它只會嘗試在一台機器上啟動,然後只是坐在那裡,並顯示「無法到達”虛擬機器”訊息。
我們發現託管引擎實際上正在啟動,因為我們可以使用 vnc 用戶端連接到它。但它似乎處於某種鎖定狀態。如果您登入託管引擎,即使以 root 身分也無法變更任何文件,也無法透過任何其他方式存取虛擬機器。
有什麼方法可以查看虛擬機器是否被鎖定/唯讀?無論如何,有沒有辦法去除所說的鎖?
答案1
假設您使用的是副本 3,當 2 個主機發生故障時,檔案系統將變為唯讀,這可以在某種程度上解釋您目前所看到的情況。在大多數情況下,我們應該預期虛擬機會凍結,因為 qemu 無法寫入存儲,但我需要更多有關它的信息,因此這裡需要來自主機的日誌檔案。
首先讓我們看看可以從儲存中讀取狀態,您可以透過從其中一台主機執行以下命令來實現:
hosted-engine --vm-status
假設它可以工作,請嘗試將主機移至全域維護:
hosted-engine --set-maintenance --mode=global
如果這不起作用,則表示存取儲存中的元資料檔案有問題,並且可能是唯讀的。
如果有效,虛擬機器將處於維護模式,可讓您檢查虛擬機器內部文件的狀態,並根據需要在同一台主機上重新啟動虛擬機器。