Sunday Jun 30, 2024

當pve出現cluster not ready – no quorum處理步驟

Proxmox VE運作圖
擷取自Promox網頁

自從自己建立了server服務後,因為常常有先測試的需求所以我在自己使用的網路環境也會使用pve來建立虛擬機,不過因為需求沒那麼多所以有用2node,而前幾天2node中的其中一台壞掉了XD

剛開始在使用pveProxmox Virtual Environment(約4年前)時就遇過node壞掉而且也順利解決,但因為日子一久又加上當初沒有做紀錄所以導致做錯了很多步驟,這次我就把處理的過程記下來供大家跟自己參考。

首先有一個觀念很重要,PVEcluster是去中心化的方式運作,去中心化!去中心化!去中心化!很重要所以要說3遍,因為以往我在使用pve建立使用環境時,通常都是3台以上,而這次只有2台而壞掉的當好是我建立create cluster的主機,而當他壞掉時另一台主機的虛擬機關掉後就不能開啟,而且無法使用關於pve的任何功能我也很直覺得跟自己說原來cluster主機壞掉了所以其他加入的主機就不法正常運作,這是錯誤的觀念,會影響到解決問題的判斷方向。

直到後來我要開啟vm發現了TASK ERROR: cluster not ready – no quorum?這個錯誤時才惶然大悟,因為主機只有2台,而去中心化的機制是多數決,所以當一台主機壞掉時就剩下一台主機,而一台主機就剩下50%的決定權(運作中主機(1台)/全部主機(2台)),也就是不過半,所以這時候pve的機制就會鎖住跟pve相關的修改與設定,因此若使用2台電腦建立pve clutser而其中一台關閉或損壞時就會造成pve 進入無法修改的狀態,修改文件會出現No Write since last chang (add ! to override)的警告,

pve相關的檔案無法修改

而要是你在指令模式輸入pvecm status也會看到Quorum: 2 (Activity blocked),這此後代表你的作用主機數量不夠而導致Pve被鎖住而導致無法做任何修改。

使用pvecm status會看到Activity blocked字樣

整理一下,要是pve cluster的運行主機不夠時會遇到什麼問題,

  1. 開啟CTVM會遇到TASK ERROR: cluster not ready – no quorum?的回應。

  2. 修改跟pve相關的文件時無法儲存。No Write since last chang (add ! to override)

  3. 在主機指令模式輸入pvecm status會看到Activity blocked 的訊息。

這個時候該怎麼恢復呢?如果你跟我一樣是主機系統硬碟損壞,我使用pve習慣會把系統檔跟vm的檔案各放置再不一樣的硬碟,因此我要做的的第一步是重灌同版本的pve系統後更新,注意不要去動到vm的硬碟跟檔案。

第二步是進入pve cluster還在運作主機的指令模式,先將/etc/pve的檔案備份起來,然後輸入pvecm expected 1 && service pve-cluster restart,這時候cluster的主機會剩下一台,所以會在恢復正常運作。

最後,在將剛剛重新安裝的主機再度join clusterjoin成功後CTvm會中重新連結起來,這裡記得要把其他的硬碟也做掛載,這樣就可以都正常運作了。

步驟簡單整理如下:

  1. 主機安裝同版本的pve系統。
  2. 安裝後使用指令方式做更新。
  3. 備份cluster的/etc/pve程式。
  4. 在cluster存在的主機使用直令模式輸入pvecm expected 1 && service pve-cluster restart。(解開cluster)
  5. 將新安裝好的電腦重新掛載並重新join cluster。
  6. 完成join cluster,運作恢復正常。
以上說明,如果問題歡迎留言討論喔。
謝謝分享
Ron

Ron

喜歡固定但多變的生活模式,喜歡思考跟分享生活點滴,歡迎隨時找我聊聊喔!!關於作者

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *

Back to Top