高可用集羣原理

高可用集羣:爲了保證服務的不間斷進行,我們必須提供兩臺或者兩臺以上的主機來提供相同的服務,來保證業務的不間斷進行。正在工作的節點我們稱之爲Active節點,暫時處於檢測狀態並隨時準備替代主節點的主機我們就稱之爲Standby節點。在高可用環境中,主節點通過定期向備用節點發送心跳信息來證明自己還在工作者,備用節點實時的去檢測主節點發送的心跳信息來確定主機點是否還在工作,時刻準備頂替主機點提供服務。
高可用必須要具備:
1 要有能力監控用於服務的資源和組件的狀態;
2 任何一點失敗後,整個服務要在短時間內恢復可用狀態;
3 有能力自動修復簡單的資源或組件的失敗;
4 服務可配置以及報警

split brain 腦裂:在雙機熱備高可用中,當聯繫的兩個節點的“心跳線”斷開時,本來作爲一個整體、動作協調的HA系統就會分裂成2個獨立的個體。由於相互失去了聯繫,都以爲是對方節點出現故障,2個節點上的HA軟件像腦裂人一樣,本能地去搶共享資源。發生腦裂的服務器同時掛載該存儲裝置,亦同時尋去相同的檔案,因此,若共享存儲裝置缺乏良好的鎖定機制,則可能是存儲裝置上的檔案損壞。如上所述,腦裂及時上面提到的心跳線出現狀況時,集羣可能分成的幾個節點組,幾個節點組分別接管服務並訪問文件系統資源。
避免腦裂:啓用磁盤配額,添加冗餘的心跳線 設置仲裁機制

隔離:在資源的級別上將其他節點隔離開來,這樣不會對其他服務器造成損害,在節點設備上一旦自己搶到資源,就立刻把其他節點主機的電源給掐斷,讓那個節點永遠的不能跟自己搶奪資源。

故障轉移域:可以在主節點上設置當自己宕掉之後允許哪個主機獲得資源

仲裁機制:假如有很多節點,不管哪個節點宕掉之後,都會有其他資源搶多過來以保證服務的正常運行。採用投票制,每一個節點都有投票權,要求集羣的總體票數要超過半數才能運行,而我們投的票數叫做法定代表人數(quorum),一般必須是半數以上才能夠確保一個多節點集羣是處於正常狀態的。
集羣不再運行具有法定票數的策略:
ignore 一般情況下不能忽略;
freeze 不再接受新的請求;
stop 所有的集羣資源都停止
suicide 自殺

DC Designated Coordinator 指定的協調點:每個節點都不停向其他節點廣播、組播、多播自己的心跳,若某節點故障,負責仲裁機制的則爲集羣中的DC。

設置參考IP(例如網關),當心跳線斷開時,2個節點都各自ping一下參考IP,不痛則表明斷點就出現本端,不僅心跳,還兼對外的“服務”的本段鏈路斷開,及主動放棄競爭,自我重啓,以徹底釋放那些有可能佔用的資源。

資源代理RA:可以在節點上啓動、停止、監控資源運行狀態

高可用集羣架構層次:
1 資源層/基礎架構層:主要保證集羣架構能在多個節點之間正常的運行基本層次所有的心跳信息的傳遞,集羣事務信息,重傳信息的傳遞。
2成員關係層:法定票數的計算與統計,重新收斂生成狀態信息的層次,爲上層進行資源分配提供依據的基礎。
3 資源分配層:主要由資源管理器CRM進行管理
4資源層:資源的代理,啓動、停止、重新載入配置文件、獲取狀態信息等,真正實現在本機或者某個節點上管理某種資源的。通過腳本

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章