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