Linux集群之高可用性
計(jì)算機(jī)系統(tǒng)的可靠性用平均無(wú)故障時(shí)間(MTTF)來(lái)度量,即計(jì)算機(jī)系統(tǒng)平均能夠正常運(yùn)行多長(zhǎng)時(shí)間,才發(fā)生一次故障。系統(tǒng)的可靠性越高,平均無(wú)故障時(shí)間越長(zhǎng)??删S護(hù)性用平均維修時(shí)間(MTTR)來(lái)度量,即系統(tǒng)發(fā)生故障后維修和重新恢復(fù)正常運(yùn)行平均花費(fèi)的時(shí)間。系統(tǒng)的可靠性越高,平均無(wú)故障時(shí)間越長(zhǎng)。計(jì) 算機(jī)系統(tǒng)的可用性定義為:MTTF/(MTTF+MTTR) * 100%。由此可見(jiàn),計(jì)算機(jī)系統(tǒng)的可用性定義為系統(tǒng)保持正常運(yùn)行時(shí)間的百分比。
計(jì)算機(jī)產(chǎn)業(yè)界通常用如下表所示的"9"的個(gè)數(shù)來(lái)劃分計(jì)算機(jī)系統(tǒng)可用性的類(lèi)型。
| 可用性分類(lèi) | 可用水平 | 每年停機(jī)時(shí)間 | 
| 容錯(cuò)可用性 | 99.9999 | < 1 min | 
| 極高可用性 | 99.999 | 5 min | 
| 具有故障自動(dòng)恢復(fù)能力的可用性 | 99.99 | 53 min | 
| 高可用性 | 99.9 | 8.8 h | 
| 商品可用性 | 99 | 43.8h | 
通過(guò)硬件冗余或軟件的方法都可以從很大程度上提高系統(tǒng)的可用性。硬件冗余主要是通過(guò)在系統(tǒng)中維護(hù)多個(gè)冗余部件如硬盤(pán)、網(wǎng)線(xiàn)等來(lái)保證工作部件失效時(shí)可 以繼續(xù)使用冗余部件來(lái)提供服務(wù);而軟件的方法是通過(guò)軟件對(duì)集群中的多臺(tái)機(jī)器的運(yùn)行狀態(tài)進(jìn)行監(jiān)測(cè),在某臺(tái)機(jī)器失效時(shí)啟動(dòng)備用機(jī)器接管失效機(jī)器的工作來(lái)繼續(xù)提 供服務(wù)。
一般來(lái)說(shuō),需要保證集群管理器的高可用性和節(jié)點(diǎn)的高可用性。Eddie、Linux Virtual Server、Turbolinux、Piranha和Ultramonkey 都采用了類(lèi)似于圖1的高可用性解決方案。
集群管理器的高可用性
為了屏蔽集群管理器的失效,需要為它建立一個(gè)備份機(jī)。主管理器和備份管理器上都運(yùn)行著heartbeat程序,通過(guò)傳送諸如"我活著"這樣的信 息來(lái)監(jiān)測(cè)對(duì)方的運(yùn)行狀況。當(dāng)備份機(jī)不能在一定的時(shí)間內(nèi)收到這樣的信息時(shí),它就激活fake程序,讓備份管理器接管主管理器繼續(xù)提供服務(wù);當(dāng)備份管理器又從 主管理器收到"我活著"這樣的信息時(shí),它就使fake程序無(wú)效,從而釋放IP地址,這樣主管理器就開(kāi)始再次進(jìn)行集群管理的工作了。
節(jié)點(diǎn)的高可用性
節(jié)點(diǎn)的高可用性可以通過(guò)不斷監(jiān)視節(jié)點(diǎn)的狀態(tài)以及節(jié)點(diǎn)上的應(yīng)用程序的運(yùn)行狀態(tài)來(lái)實(shí)現(xiàn),當(dāng)發(fā)現(xiàn)節(jié)點(diǎn)已經(jīng)失效時(shí),可以重新配置系統(tǒng)并且將工作負(fù)載交給 那些運(yùn)行正常的節(jié)點(diǎn)來(lái)完成。如圖1所示,系統(tǒng)通過(guò)在集群管理器上運(yùn)行mon精靈程序來(lái)監(jiān)視集群中的實(shí)際服務(wù)器上的服務(wù)程序的運(yùn)行狀況。例如使用 fping.monitor 以一定的時(shí)間間隔來(lái)監(jiān)視實(shí)際服務(wù)器是否還在正常運(yùn)轉(zhuǎn);使用http.monitor 來(lái)監(jiān)測(cè)http服務(wù),使用ftp.monitor來(lái)監(jiān)測(cè)ftp服務(wù)等等。如果發(fā)現(xiàn)某個(gè)實(shí)際服務(wù)器出了故障,或者是其上的服務(wù)已失敗,則在集群管理器中刪除 有關(guān)這個(gè)實(shí)際服務(wù)器的所有規(guī)則。反之,如果不久以后發(fā)現(xiàn)系統(tǒng)已經(jīng)重新能夠提供服務(wù),則增加相應(yīng)的所有規(guī)則。通過(guò)這種方法,集群管理器可以自動(dòng)屏蔽服務(wù)器和 其上運(yùn)行的服務(wù)程序的失效,并且當(dāng)實(shí)際服務(wù)器正常運(yùn)轉(zhuǎn)時(shí)能將它們重新加入到集群系統(tǒng)中。
















 
 
 




 
 
 
 