高可用性檢視原始碼討論檢視歷史
![]() |
「高可用性」(High Availability)通常來描述一個系統經過專門的設計,從而減少停工時間,而保持其服務的高度可用性。[1]
介紹
計算機的高可用性
對於不可修復系統, 系統的平均壽命指系統發生失效前的平均工作(或存儲) 時間或工作次數, 也稱為系統在失效前的平均時間, 記為MTTF (Mean Time To Failure)。對於可修復系統, 系統的壽命是指兩次相鄰失效(故障) 之間的工作時間, 而不是指整個系統的報廢時間。平均壽命即是平均無故障時間, 也稱為系統平均失效間隔, 記為MTBF (Mean Time Between Failure)。可修復產品的平均修復時間, 就是從出現故障到修復中間的這段時間記為MTTR(Mean Time To Repair) 平均修復時間。MTTR 越短表示易恢復性越好。
可用性(也稱有效性) 是指可維修產品在規定的條件下使用時具有或維持其功能的能力。其量化參數為可用度, 表示可維修產品在規定的條件下使用時,在某時刻具有或維持其功能的概率。可用度(也稱有效度) 通常記作A, 可用平均無故障時間(MTBF)和平均修復時間(MTTR)來計算:A = MTBF/(MTBF + MTTR)。[2]
負載均衡服務器的高可用性
為了屏蔽負載均衡服務器的失效,需要建立一個備份機。主服務器和備份機上都運行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秒鐘之內被修復的失敗在一些 [1]聯機事務處理系統中並不會被感知到,但如果是對於一個實時的科學計算應用系統,則是不可被接受的。
系統的高可用性設計決定於您的應用。例如,如果幾個小時的計劃停機時間是可接受的,也許存儲系統就不用設計為磁盤可熱插拔的。反之,你可能就應該採用可熱插拔、熱交換和鏡像的磁盤系統。
所以涉及高可用系統需要考慮:
決定業務中斷的持續時間。根據公式計算出的衡量HA的指標,可以得到一段時間內可以中斷的時間。但可能很大量的短時間中斷是可以忍受的,而少量長時間的中斷卻是不可忍受的。
在統計中表明,造成非計劃的宕機因素並非都是硬件問題。硬件問題只占40%,軟件問題占30%,人為因素占20%,環境因素占10%。您的高可用性系統應該能儘可能地考慮到上述所有因素。
當出現業務中斷時,儘快恢復的手段。
集群系統
在UNIX系統上創建高可用性計算機系統,業界的通行做法,也是非常有效的做法,就是採用集群系統(Cluster),將各個主機系統通過網絡或其他手段有機地組成一個群體,共同對外提供服務。創建群集系統,通過實現高可用性的軟件將冗餘的高可用性的硬件組件和軟件組件組合起來,消除單點故障:
消除供電的單點故障
消除磁盤的單點故障
消除SPU(System Process Unit)單點故障
消除網絡單點故障
消除軟件單點故障
儘量消除單系統運行時的單點故障