HA 若要達到自動 Failover 的話, 需要經過投票仲裁來確認哪半邊才是活著的...
總數不能是雙數, 萬一兩邊相同票數, 分不出來; 所以一定要有奇數台主機才行...
第三台主機不一定要執行相同的應用或服務, 有時用一台 Storage 就可以擔任....
HA 若仲裁失效, 可能會造成兩邊都活的狀態, 稱為: 腦裂...
一旦發生腦裂, 兩邊的資料可能都已經不完整, 很難整合回來..
https://ithelp.ithome.com.tw/articles/10156336
https://www.twblogs.net/a/5c70d38abd9eee68dc3f0ba7
所以必須靠單數投票, 票數多的一方可以 fence (壓制) 對方, 強制對方釋出資源控制權, 以確保資料只會有一邊寫入, 避免腦裂狀況發生
若你要的是硬體層級 HA, 已經有很多 Hypervisor 可以辦到:
VMware, Hyper-V, Nutanix, HyperFlex, Proxmox...等
你直接部署這些 HA 軟體下來就可以自動切換了....
要做HA的前提 好像都是要有一台Storage放共用的資料?
沒辦法像raid 1, 兩台server裡有一樣的資料
故障一台還有一台可以運作.
因為這樣抄寫的速度太慢, 其中一台掛掉的時候, 如果資料還來不及抄完, 那麼另外一台即便還活著, 資料仍然是缺損的, 主機開著, 軟體也不能用...
(如果寫入本機 SSD 的速度有 500MB/s, 當其中一台連續寫了 20 分鐘之後, 另外一台透過網路須要花多久時間才能把資料全部抄寫過來?)
建構這樣的架構至少需要 10Gbps 以上的網路傳輸才夠快; 但若改用 Shared Storage HA 的話, 1Gbps 網路就可以建起來了...
使用 Shared Storage 的好處, 是確保 Storage 可以收到: 掛掉那台, 死掉之前最後的一筆資料, 另外一台接手的時候, 才能從他斷掉的地方接下去, 否則中間空了一大段, 那個資料是補不回來的....
那就只能看使用者要不要為了HA在買一台Storage了.謝謝
您要的簡易HA軟體:
10年前 HP 就有喔! 問問HP原廠吧!
買硬體就內建喔!
我當時裝了快10套
不過要自己寫"一邊在運行時一邊備資料"程式
而
現在世界在進步
最流行的是"超融合" 最少兩台就可以起來
也是同上功能
且 不用自己寫同步程式!
一步到位!
如果是為了不要 Share Storage 要做 HA,可以考慮試試 Proxmox VE 的其中一種模式「複寫+高可用性」。
平時會複寫 VM 磁碟資料至另外一個節點,當原節點故障時,高可用性機制會啟動另一個節點把 VM 開機起來接手運作。
下圖是兩個節點的複寫範例,Proxmox VE 應該是這類高可用性方案裡容易使用且費用較能接受的方案了,當然它也支援用 Share Storage 做高可用,或是使用 Proxmox VE 自己內建的 Ceph 組成超融合來用。
圖片出處: