小而美的三節點 Proxmox VE replication HA 高可靠性叢集

    分享


    當數位營運架構愈來愈重要,網路服務不能中斷太久,你不能不考慮 HA 高可靠性。有些人就想將服務都上雲端就好了,為何要自己做基礎建設?沒錯這很省的維護叢集架構,但天下沒有白吃的午餐,雲端服務就像便利商店,生活大小事全部都在便利商店搞定,你就知道有多昂貴了。現在中階的伺服器運做30-50 個 VM 不是問題,如果全部運做在 AWS 或是 Azure 並加上頻寬的成本,你就知道那其實是一大筆費用。

    關鍵是公司對營運系統上線時間的容忍度是多少? 雲端服務雖然可靠性更高,但是你要保證公司對外網路不會斷線喔!一旦斷線,營運也是一樣停擺。內網斷線比起外網斷線機率還是少得多。再來就要回到系統層面的設計。要在地端部署自己的高可靠性叢集,有多種架構選擇。大概常用的就是

    • Openstack
    • VMware
    • Proxmox VE
    Openstack 雖然開源免費但是它架構很大,建置及維運的複雜度也高,只適合大型企業使用。VMware 是比較多人使用的方案,但是要達到 live migration 也是要負擔硬體及軟體授權費用,可能三節點伺服器配置加上Storage 及10G/FC switch 也要破百萬。中小企業可能就會考慮再三。

    Proxmox 三節點 cluster with replication HA
    圖一: Proxmox 三節點 cluster with replication HA

    Proxmox VE 來到 2020 年也有 15 年歷史了。基本上它就是 VMware 的開源替代方案,但它不是賣軟體授權,而是訂閱制的企業級軟體更新,不過就功能完整性及穩定性來說其實與 VMware 相當接近,對中小企業來說其實已相當足夠。我個人對 Proxmox VE 的備份及回存功能相當滿意。如果是 VMware 的使用者還需要額外添購備份軟體,但是 Proxmox VE 整合的很好。備份完成會主動 email 通知,你可以查看是否備份成功。

    Proxmox 在硬體故障,VM切換節點後,replication job 也會同步變更target node
    圖二: Proxmox 在硬體故障,VM切換節點後,replication job 也會同步變更target node

    提到 HA 叢集,Proxmox VE 除了使用 shared storage 外。另外一個方法就是使用 replication。replication 的架構少了 shared storage 及 10G/FC switch ,部署的成本是比較低的,非常適合中小企業使用。但是 replication 並非完整的 live migration,當 VM 在硬體故障 failover 到其他節點時還是有一定的資料落差,針對這個問題,有些見解可以提供給大家參考。

    我們知道 Proxmox VE 的 replication 使用節點間的 local ZFS storage 來做快照複製。第一次快照複製因爲是整個 VM 的磁碟備份會花比較多的時間。但是接下來的排程備份就是差異備份,速度就快很多。為了減少切換節點時資料的落差,我們可以縮短備份的時間差。例如預設是 15鐘 同步一次。Proxmox VE 可以允許1 分鐘同步一次,但是這麼頻繁的快照,其實對 VM 的效能會有一定程度的影響。那問題來了,在failover 過去其他節點時還是有些許的資料落差,有什麼方法可以做個補強?

    如果你的公司系統VM並不是很忙碌,可能很久才會更新一次,那15 分鐘的排程備份是足夠的。如果你的公司系統是非常忙碌的,希望在 HA failover 的過程後資料能夠完全轉移,VM就必須做一些如下的建議措施。

    一般來說忙碌的系統都有資料庫在運作,可能是 ERP 或是電子商務系統。你可以先做好資料庫複製或是設計資料庫叢集。例如:

    使用 MySQL 或是 PostgreSQL replication,當資料寫入 Master 節點之後就會複製一份到 Slave 節點。如此當硬體故障 HA failover 到其他節點時,依舊有一份最新資料可做回存。

    三節點資料庫叢集
    圖三: 三節點資料庫叢集

    或是使用 MySQL Cluster - ProxySQL+ Percona XtraDB Cluster 建置三節點資料庫叢集,當一節點故障時還能有最新的資料可以存取。當然如果系統使用其他種類資料庫,那你就要研究其他資料庫叢集的方式了。其實無論有無做 HA ,忙碌系統的資料庫複製是一定要做的,避免單點故障,資料還有完整的一份可以回存。

    至於檔案的部份,一般本地端都有備份,比較不會有資料遺失的問題。經過這樣的調整,讓 Proxmox VE replication HA 更加親民,主要是省了部署 shared storage 及 10G / FC switch 的成本,估計應該可以節省超過一半的HA 部署費用,這效益是看得到的。

    當然 shared storage 還是有其優點,就留著下次再來探討使用 shared storage 的架構。


        Ubuntu Desktop Linux 20.04 應用攻略