2019年2月3日 星期日

[經驗分享]為 Proxmox VE 節點加入叢集連線備援介面



Proxmox VE 最重要的功能之一是叢集,既然它如此重要,維持叢集的正常運作就是管理 PVE 的重要關鍵。

要怎麼避免叢集斷線引發管理問題?我們可以加入備援連線 IP 機制。







設定結果

請登入 WebUI,進入 [Datacenter 資料中心] > [Cluster 叢集],查看目前叢集資訊。


節點增加第二組叢集 IP


上圖是已經設定完成的範例,在沒有正確設定前,叢集資訊的每一個節點只會在 Ring 0 有 IP,而 Ring 1 是空白的。

在節點有兩個以上的網路連接埠情況下,通常我們會區分服務、儲存兩個區域,甚至是更嚴格的服務、儲存與叢集三個區域。



節點分別連接服務與儲存網路區域




節點分別連接服務、儲存與叢集網路區域


不管是上述的那一種作法,節點都會具備有至少兩個以上的 IP,我們可以把另一個非叢集在用的那一組 IP 納入。

若原叢集所使用的溝通網路 (Ring 0) 無法通訊,PVE 叢集可以立即走備用網路 (Ring 1) 接手,確保叢集運作正常。






設定方式

很遺憾,目前雖然可以在 WebUI 上查看 Ring 1 的 IP 資訊,但卻還無法在 WebUI 上簡單點選就設定完成,還是需要修改設定檔。

請以文字編輯器開啟 /etc/pve/corosync.conf。

在檔案中找到 nodelist 區塊,並在每一個節點的 ring0_addr 下新增一行 ring1_addr 設定,再把另一個 IP 填入。

接著檔案中找到 totem 區塊,新增一行 rrp_mode: passive 設定、增加 interface 把其中一台節點 ring1 IP 設定進去,最後將版本號加一(若原本為 1,請改為 2,依此類推),叢集才會把這次修改視為新的設定,從而複寫到其它節點。
增加 ring1_addr 設定 (可以是 IP 或 Hostname)
ring1_addr: x.x.x.x
增加 rrp_mode 設定
rrp_mode: passive
增加 ring1 interface 設定 (填入任一節點即可)
interface{
  bindnetaddr: x.x.x.x
  ringnumber: 1
}
增加版本號 (請依您原本的版本號數+1)
config_version: 3

修改完成的設定檔如下:


修改 corosync.conf 設定檔 (官網範例)


確認修改完成後,存檔退出,接著將 corosync 與 pve-cluster 服務重啟進行生效,每一個節點都需要執行。
重啟叢集服務
systemctl restart corosync
systemctl restart pve-cluster



提醒:

進階修改請小心服用,建議先做備份再進行,以策安全。





結論

若連線問題導致叢集無法溝通,會引發一些障礙,例如無法建立虛擬機器或容器、關機或開機等等。不過,由於叢集管理與虛擬機器、容器管理是分別獨立的套件,所以原本正在運作的虛擬機器或容器將不受影響繼續運作。

經由上述的方法設定備援 IP 以後,可以讓 PVE 的叢集運作更加穩固,減少因網路問題讓叢集無法溝通而帶來的種種問題。






參考資料