1.簡介
集群cluster是指使用一組計算機作為一個整體向用戶提供一組網(wǎng)絡(luò)資源。在集群中的每個計算機系統(tǒng)稱為集群節(jié)點(node)。集群可隨著業(yè)務(wù)的增長,通過添加新的節(jié)點的方式來提升集群性能。集群的類型包括:Load Balance骑祟、High Availability、High Performance這三種气笙,而我們通常所說的HA cluster就是High availability cluster次企。高可用集群是用于單個節(jié)點發(fā)生故障時,能夠自動將資源潜圃、服務(wù)進行切換缸棵,這樣可以保證服務(wù)一直在線。在這個過程中谭期,對于客戶端來說是透明的堵第。
- 高可用集群的衡量標準
高可用集群一般是通過系統(tǒng)的可靠性(reliability)和系統(tǒng)的可維護性(maintainability)來衡量的。通常用平均無故障時間(MTTF)來衡量系統(tǒng)的可靠性隧出,用平均維護 時間(MTTR)來衡量系統(tǒng)的可維護性踏志。因此,一個高可用集群服務(wù)可以這樣來定義:HA=MTTF/(MTTF+MTTR)*100%胀瞪。
- 一般高可用集群的標準有如下幾種:
99%:表示 一年宕機時間不超過4天
99.9% :表示一年宕機時間不超過10小時
99.99%: 表示一年宕機時間不超過1小時
99.999% :表示一年宕機時間不超過6分鐘
- 高可用集群解決手段
手段:冗余方案(redundant)
集群主機分為:active/passive(一主多備)针余,active/active(雙主)
- 主備方式
集群中的節(jié)點以主備的方式運行,主機處于工作狀態(tài),備機處于監(jiān)控準備狀態(tài)圆雁;當主機出現(xiàn)宕機狀態(tài)時傍妒,備機接管主機的一切工作, 待主機恢復(fù)正常后摸柄,備機再根據(jù)事先設(shè)置的設(shè)定來決定是否把服務(wù)切換到主機上運行。 - 雙主方式
集群中的節(jié)點均已主機方式運行既忆,互相之間同時運行維護各自的服務(wù)工作并相互檢測驱负。當任意一臺主機宕機后,另一臺主機會接管它的一切工作患雇,保證服務(wù)正常運行跃脊。
- 高可用集群層級結(jié)構(gòu):
HA nginx service:概念可以理解為高可用的是“服務(wù)”,組成一個高可用服務(wù)的“組件”叫做資源苛吱;
高可用集群的層次結(jié)構(gòu)分為以下:
- messaging layer 信息層 主要在集群節(jié)點之間傳遞心跳(單播酪术,多播,廣播)
- resoure manager 資源管理層(每個高可用都應(yīng)該多個資源翠储,服務(wù)+ip或者存儲),全局事務(wù)決策
- local rm 本地資源管理 只負責(zé)本地操作 并把結(jié)果通知給rm
-
resoure agent 啟動一個服務(wù) 都是借助外部來實現(xiàn)的/etc/rc.d/init.d/或/usr/lib/systemd/ 不是直接啟動程序包绘雁,而是通過外部的啟動控制程序或腳本,通過代理啟動援所,主要負責(zé)start|stop|restart|status層級結(jié)構(gòu)圖
- HA cluster的運行原理
自動偵測(Auto-Detect)階段 由主機上的軟件通過冗余偵測線庐舟,經(jīng)由復(fù)雜的監(jiān)聽程序。邏輯判斷住拭,來相互偵測對方運行的情況挪略,所檢查的項目有:主機硬件(CPU和周邊)、主機網(wǎng)絡(luò)滔岳、主機操作系統(tǒng)杠娱、數(shù)據(jù)庫引擎及其它應(yīng)用程序、主機與磁盤陣列連線谱煤。為確保偵測的正確性摊求,而防止錯誤的判斷,可設(shè)定安全偵測時間趴俘,包括偵測時間間隔睹簇,偵測次數(shù)以調(diào)整安全系數(shù),并且由主機的冗余通信連線寥闪,將所匯集的訊息記錄下來太惠,以供維護參考。
自動切換(Auto-Switch)階段 某一主機如果確認對方故障疲憋,則正常主機除了繼續(xù)進行原來的任務(wù)凿渊,還將依據(jù)各種容錯備援模式接管預(yù)先設(shè)定的備援作業(yè)程序,并進行后續(xù)的程序及服務(wù),此類故障切換又被稱為failover埃脏。
自動恢復(fù)(Auto-Recovery)階段 在正常主機代替故障主機工作后搪锣,故障主機可離線進行修復(fù)工作。在故障主機修復(fù)后彩掐,透過冗余通訊線與原正常主機連線构舟,自動切換回修復(fù)完成的主機上。整個恢復(fù)過程完成由HA相關(guān)軟件自動完成堵幽,亦可依據(jù)預(yù)先配置狗超,選擇恢復(fù)動作為半自動或不恢復(fù)。而某資源的主節(jié)點故障后重新修改上線后朴下,將轉(zhuǎn)移至其它節(jié)點的資源重新切回的過程通常稱為failback努咐。