介紹
計算機的高可用性
計算機系統的可用性用 平均無故障時間(MTTF)來度量,即計算機系統平均能夠正常運行多長時間,才發生一次故障。系統的可用性越高,平均無故障時間越長。可維護性用平均維修時間(MTTR)來度量,即系統發生故障後維修和重新恢復正常運行平均花費的時間。系統的可維護性越好,平均維修時間越短。計算機系統的可用性定義為:MTTF/(MTTF+MTTR) * 100%。由此可見,計算機系統的可用性定義為系統保持正常運行時間的百分比。
負載均衡伺服器的高可用性
為了禁止負載均衡伺服器的失效,需要建立一個備份機。主伺服器和備份機上都運行High Availability監控程式,通過傳送諸如“I am alive”這樣的信息來監控對方的運行狀況。當備份機不能在一定的時間內收到這樣的信息時,它就接管主伺服器的服務IP並繼續提供服務;當備份管理器又從主管理器收到“I am alive”這樣的信息時,它就釋放服務IP位址,這樣的主管理器就開始再次進行集群管理的工作了。為在主伺服器失效的情況下系統能正常工作,我們在主、備份機之間實現負載集群系統配置信息的同步與備份,保持二者系統的基本一致。
HA的容錯備援運作過程
自動偵測(Auto-Detect)階段由主機上的軟體通過冗餘偵測線,經由複雜的監聽程式。邏輯判斷,來相互偵測對方運行的情況,所檢查的項目有:主機硬體(CPU和周邊)、主機網路、主機作業系統、資料庫引擎及其它應用程式、主機與磁碟陣列連線。為確保偵測的正確性,而防止錯誤的判斷,可設定安全偵測時間,包括偵測時間間隔,偵測次數以調整安全係數,並且由主機的冗餘通信連線,將所匯集的訊息記錄下來,以供維護參考。
自動切換(Auto-Switch)階段 某一主機如果確認對方故障,則正常主機除繼續進行原來的任務,還將依據各種容錯備援模式接管預先設定的備援作業程式,並進行後續的程式及服務。
自動恢復(Auto-Recovery)階段在正常主機代替故障主機工作後,故障主機可離線進行修復工作。在故障主機修復後,透過冗餘通訊線與原正常主機連線,自動切換回修復完成的主機上。整個恢復過程完成由EDI-HA自動完成,亦可依據預先配置,選擇回復動作為半自動或不恢復。
工作方式
(1)主從方式 (非對稱方式)
工作原理:主機工作,備機處於監控準備狀況;當主機宕機時,備機接管主機的一切工作,待主機恢復正常後,按使用者的設定以自動或手動方式將服務切換到主機上運行,數據的一致性通過共享存儲系統解決。
(2)雙機雙工方式(互備互援)
工作原理:兩台主機同時運行各自的服務工作且相互監測情況,當任一台主機宕機時,另一台主機立即接管它的一切工作,保證工作實時,套用服務系統的關鍵數據存放在共享存儲系統中。
(3)集群工作方式(多伺服器互備方式)
工作原理:多台主機一起工作,各自運行一個或幾個服務,各為服務定義一個或多個備用主機,當某個主機故障時,運行在其上的服務就可以被其它主機接管。
衡量指標
可用性的計算公式:
%availability=(Total Elapsed Time-Sum of Inoperative Times)/ Total Elapsed Time
elapsed time為operating time+downtime。
可用性和系統組件的失敗率相關。衡量系統設備失敗率的一個指標是“失敗間隔平均時間”MTBF(mean time between failures)。通常這個指標衡量系統的組件,如磁碟。
MTBF=Total Operating Time / Total No. of Failures
Operating time為系統在使用的時間(不包含停機情況)。
系統的設計
設計系統的可用性,最重要的是滿足用戶的需求。系統的失敗只有當其導致服務的失效性足以影響到系統用戶的需求時才會影響其可用性的指標。用戶的敏感性決定於系統提供的套用。例如,在一個能在1秒鐘之內被修復的失敗在一些 在線上事務處理系統中並不會被感知到,但如果是對於一個實時的科學計算套用系統,則是不可被接受的。
系統的高可用性設計決定於您的套用。例如,如果幾個小時的計畫停機時間是可接受的,也許存儲系統就不用設計為磁碟可熱插拔的。反之,你可能就應該採用可熱插拔、熱交換和鏡像的磁碟系統。
所以涉及高可用系統需要考慮:
決定業務中斷的持續時間。根據公式計算出的衡量HA的指標,可以得到一段時間內可以中斷的時間。但可能很大量的短時間中斷是可以忍受的,而少量長時間的中斷卻是不可忍受的。
在統計中表明,造成非計畫的宕機因素並非都是硬體問題。硬體問題只占40%,軟體問題占30%,人為因素占20%,環境因素占10%。您的高可用性系統應該能儘可能地考慮到上述所有因素。
當出現業務中斷時,儘快恢復的手段。
集群系統
在UNIX系統上創建高可用性計算機系統,業界的通行做法,也是非常有效的做法,就是採用集群系統(Cluster),將各個主機系統通過網路或其他手段有機地組成一個群體,共同對外提供服務。創建群集系統,通過實現高可用性的軟體將冗餘的高可用性的硬體組件和軟體組件組合起來,消除單點故障:
消除供電的單點故障
消除磁碟的單點故障
消除SPU(System Process Unit)單點故障
消除網路單點故障
消除軟體單點故障
儘量消除單系統運行時的單點故障