我最喜歡的 Proxmox 功能之一是它能夠從多個節點(服務器)形成集群。
為了 example,如果您有 3 台物理服務器,每台都安裝了 Proxmox,則可以將它們集群在一起。 這樣,如果您需要關閉某個節點進行維護,您只需將該節點上的虛擬機移動到另一台服務器即可,而不會造成任何停機。
您可以做的另一件事是,如果集群中至少有 3 台物理服務器,則可以在這三台服務器之間設置高可用性。
Proxmox 需要至少 3 個節點來實現此功能,因為它使用仲裁來確定如果節點意外停機,虛擬機將自動轉移到哪個節點。 您還需要 NAS 或某種類型的共享存儲才能使其正常工作。
在本教程中,我將向您展示如何創建由三個節點組成的集群、設置高可用性以及從集群中刪除節點,這似乎沒有詳細的官方文檔,並且如果你做錯了。
在 Proxmox 中創建 3 節點集群
這將需要至少 3 台物理 Proxmox 服務器。 您可以創建一個包含兩個節點的集群,但如果集群中的節點少於 3 個,HA 將無法運行。 繼續登錄第一台服務器,單擊“數據中心”選項卡,單擊“集群”和“創建集群”:
繼續為集群命名,然後單擊“創建”
與 proxmox 一樣,集群會自行創建並在完成時返回“TASK OK”。 關閉活動窗口:
轉到第二台服務器,再次單擊“數據中心”選項卡,然後單擊“加入集群”
返回您的第一個服務器,然後單擊“加入信息”,然後單擊“複製信息”:
在第二台服務器上,點擊信息窗口中的“Control V”以填充字段。 確保在下面的字段中輸入第一台服務器的 root 密碼。 如果一切看起來都不錯,請點擊“加入 testcluster”(根據您為集群指定的名稱而有所不同):
加入操作將開始。 如果掛了,只需刷新整個頁面並重新登錄即可。 你最終會看到這樣的屏幕:
您的集群中將有 2 個節點,如下所示:
為了添加第三個節點,您需要登錄該節點並在“數據中心”選項卡中再次單擊“集群”。 然後,您返回到我們的第一個節點,複製“加入信息”並將其與 root 密碼一起粘貼到“加入信息”框上的相應區域。 此時您基本上可以從步驟 4 開始重複。 最終,所有三個節點都會顯示在所有 proxmox 安裝上,如下所示:
3 節點集群的高可用性
擁有 HA 的好處是,如果某個節點(服務器)由於某種原因出現故障,該服務器上的虛擬機將自動移動到另一個節點。 他們使用仲裁來完成此操作(進行投票,獲勝者從故障節點獲得虛擬機)。 可以設置一個“仲裁節點”——這是一個不託管任何虛擬機,而只是投票的節點。 但這超出了本文的範圍。 為了設置 HA,我設置了“測試”VM,將其存儲在 NAS 上的第一台服務器上,如下所示:
首先,登錄到您的一個節點,然後單擊“數據中心”選項卡,然後單擊其右側和下方的 HA 選項。
單擊“添加”並選擇所需的虛擬機。 我只有一台虛擬機,所以這就是我正在使用的虛擬機。
現在,您將在正在監視 HA 的計算機列表中看到該虛擬機。 您會注意到,如果關閉託管虛擬機的節點,虛擬機將自動移動到已啟動的節點。
從集群中刪除節點
您要做的第一件事是將所有虛擬機移出要刪除的節點。 還要確保您有所有內容的備份,以防萬一出現問題。 要遷移節點,您需要右鍵單擊它,然後單擊“遷移”
在彈出的窗口中,您需要選擇要將虛擬機存儲移動到的節點,然後單擊“遷移”。 執行此操作時,請確保您的虛擬 CD/DVD 驅動器是空的,否則它將抱怨並拒絕遷移。
虛擬機將需要一些時間來遷移,但如果一切順利,它應該會給您一個“任務正常”。
此時,您應該確保您沒有登錄到要刪除的節點。 如果是,請繼續註銷 Proxmox。
使用終端通過 SSH 連接到不同的節點,如下所示:
ssh [email protected]
就我而言,我將刪除“測試虛擬機”。 您可以看到我已登錄到 proxmox2 虛擬機,因為它顯示“本地”。
root@proxmox2:~# pvecm nodes
Membership information
----------------------
Nodeid Votes Name
1 1 test
2 1 proxmox2 (local)
3 1 proxmox3
root@proxmox2:~#
繼續通過單擊節點來關閉節點電源,然後單擊右側的“關閉”:
繼續確認關閉,並等待節點掉電。
現在,您可以在 SSH 會話中使用以下命令從集群中刪除節點:
root@proxmox2:~# pvecm delnode test
Could not kill node (error = CS_ERR_NOT_EXIST)
Killing node 1
root@proxmox2:~# pvecm nodes
Membership information
----------------------
Nodeid Votes Name
2 1 proxmox2 (local)
3 1 proxmox3
root@proxmox2:~#
如果您收到上述錯誤,可以安全地忽略它。
您現在可以使用以下命令驗證該節點是否已被刪除:
root@proxmox2:~# pvecm status
Date: Wed Aug 16 10:47:23 2023
Quorum provider: corosync_votequorum
Nodes: 2
Node ID: 0x00000002
Ring ID: 2.11
Quorate: Yes
通過查看“仲裁信息”下的“節點”部分,您可以看到該節點已從集群中刪除。
請注意,如果您想要將節點重新添加到集群中,則必須在該節點上重新安裝 Proxmox,然後使用上述說明再次添加。