- 論壇徽章:
- 0
|
HACMP工作原理
HACMP的工作原理是利用LAN來監(jiān)控主機(jī)及網(wǎng)絡(luò)、網(wǎng)卡的狀態(tài)。在一個(gè)HACMP環(huán)境中有TCP/IP網(wǎng)絡(luò)和非TCP/IP網(wǎng)絡(luò)。TCP/IP網(wǎng)絡(luò)即應(yīng)用客戶端訪問的公共網(wǎng),該網(wǎng)可以是大多數(shù)AIX所支持的網(wǎng)絡(luò),如Ethernet,T.R.,F(xiàn)DDI,ATM,SOCC,SLIP,等等。 非TCP/IP網(wǎng)絡(luò)用來為HACMP對HA環(huán)境(Cluster)中的各節(jié)點(diǎn)進(jìn)行監(jiān)控而提供的一個(gè)替代TCP/IP的通訊路徑,它可以是用RS232串口線將各節(jié)點(diǎn)連接起來,也可以是將各節(jié)點(diǎn)的SCSI卡或SSA卡設(shè)置成Target Mode方式。
HACMP將診測并響應(yīng)于三種類型的故障:1網(wǎng)卡故障,2網(wǎng)絡(luò)工作,3節(jié)點(diǎn)故障。下面就這三種故障分別進(jìn)行介紹。
1、網(wǎng)卡故障
前面講到,HACMP的群集結(jié)構(gòu)中,除了TCP/IP網(wǎng)絡(luò)以外,還有一個(gè)非TCP/IP網(wǎng)絡(luò),它實(shí)際上是一根“心跳”線,專門用來診測是節(jié)點(diǎn)死機(jī)還是僅僅網(wǎng)絡(luò)發(fā)生故障。如下圖所示,一旦節(jié)點(diǎn)加入了 Cluster(即該節(jié)點(diǎn)上的HACMP已正常啟動(dòng)),該節(jié)點(diǎn)的各個(gè)網(wǎng)卡、非TCP/IP網(wǎng)絡(luò)就會(huì)不斷地接收并送Keep-Alive信號,K-A的參數(shù)是可調(diào) 的,HA在連續(xù)發(fā)送一定數(shù)量個(gè)包都丟失后就可確認(rèn)對方網(wǎng)卡,或網(wǎng)絡(luò),或節(jié)點(diǎn)發(fā)生故障。因此,有了K-A后,HACMP可以很輕易地發(fā)現(xiàn)網(wǎng)卡故障,因?yàn)橐坏┠硥K網(wǎng)卡發(fā)生故障發(fā)往該塊網(wǎng)卡的K-A就會(huì)丟失。此時(shí)node 1上的cluster manager( HACMP的“大腦”)會(huì)產(chǎn)生一個(gè)swap-adapter的事件,并執(zhí)行該事件的script(HACMP中提供了大部分通用環(huán)境下的事件scripts,它們是用標(biāo)準(zhǔn)AIX命令和HACMP工具來寫的)。每個(gè)節(jié)點(diǎn)上都有至少兩塊網(wǎng)卡,一塊是service adapter,提供對外服務(wù),另一塊是standby adapter,它的存在只有cluster manager知道,應(yīng)用和client并不知道。一旦發(fā)生swap-adapter事件后,cluster manager將原來service adapter的 IP地址轉(zhuǎn)移到standby adapter上,而standby地址轉(zhuǎn)移到故障網(wǎng)卡上,同時(shí)網(wǎng)絡(luò)上其他節(jié)點(diǎn)進(jìn)行ARP的刷新。網(wǎng)卡互換(swap-adapter)在幾秒內(nèi)就可完成,以太網(wǎng)為3秒,并且這種轉(zhuǎn)換對應(yīng)用和client來說是透明的,只發(fā)生延遲但連接并不中斷。
2、網(wǎng)絡(luò)故障
如果發(fā)往node1上的service和standby網(wǎng)卡上的K-A包全都丟失,而非TCP/IP網(wǎng)絡(luò)上的K-A仍然存在,那么HACMP判斷node1仍然正常而網(wǎng)絡(luò)發(fā)生故障。此時(shí)HACMP執(zhí)行一個(gè)
![]()
3 、節(jié)點(diǎn)故障
如果不僅TCP/IP網(wǎng)絡(luò)上的K-A全部丟失,而且非TCP/IP網(wǎng)絡(luò)上的K-A也丟失,那么HACMP斷定該節(jié)點(diǎn)發(fā)生故障,并產(chǎn)生node-down事件。此時(shí)將有資源接管,即放在共享磁盤陳列上的資源將由備份節(jié)點(diǎn)接管,接管包括一系列操作:Acquire disks,Varyon VG, file systems,Export NFS file systems, Assume IP network Address, Restart highly available applications,其中IP地址接管和重新啟動(dòng)應(yīng)用由HACMP來實(shí)現(xiàn),而其他是由AIX來完成。
當(dāng)整個(gè)節(jié)點(diǎn)發(fā)生故障時(shí),HACMP將故障節(jié)點(diǎn)的service IP address轉(zhuǎn)移到備份節(jié)點(diǎn)上,使網(wǎng)絡(luò)上的client仍然使用這個(gè)IP地址,這個(gè)過程稱為IP地址接管(IPAT),如圖所示。
當(dāng)一個(gè)節(jié)點(diǎn)down掉后,如果設(shè)置了IP地址接管,網(wǎng)絡(luò)上的clients會(huì)自動(dòng)連接到接管節(jié)點(diǎn)上;同樣,如果設(shè)置了應(yīng)用接管,該應(yīng)用會(huì)在接管節(jié)點(diǎn)上自動(dòng)重啟,從而使系統(tǒng)能繼續(xù)對外服務(wù)。對于要實(shí)現(xiàn)接管的應(yīng)用,只需在HACMP中把它們設(shè)置成application server,并告訴HACMP啟動(dòng)這個(gè)應(yīng)用的start script的全路徑名和停止該應(yīng)用的stop script的全路徑名。由此可見,應(yīng)用接管的配置在HACMP中十分簡單,重要的是start script和stop script的寫作,這需要用戶對自己應(yīng)用的了解。
4、其他故障
HACMP只去檢測網(wǎng)卡、網(wǎng)絡(luò)和節(jié)點(diǎn)是否發(fā)生故障,并作出相應(yīng)的轉(zhuǎn)移、接管行為。對于其他故障,那么HACMP缺省不作任何動(dòng)作。
a.硬盤故障
一般我們都將硬盤設(shè)置成RAID-5方式或mirror方式,從而提供硬盤的高可用性。RAID-5將奇偶較驗(yàn)位分散在硬盤組中,因此當(dāng)一組內(nèi)的一個(gè)硬盤壞掉,組內(nèi)的其他硬盤可以通過奇偶較驗(yàn)位將該硬盤上的數(shù)據(jù)恢復(fù)出來。RAID-5方式一般是由硬件實(shí)現(xiàn)的,如下7133的SSA適配器,而且如果同一組內(nèi)的兩個(gè)硬盤壞掉,該組硬盤的數(shù)據(jù)很可能就會(huì)全部丟失。mirror方式是將同一個(gè)數(shù)據(jù)寫到至少兩個(gè)物理外置上,因此它的效率沒有RAID-5好,而且用盤量大,但安全性比RAID-5高,而且它易于實(shí)現(xiàn),通過AIX中的(Logic Volume Management)可以很方便地設(shè)置。
b.硬盤控制卡
存儲(chǔ)設(shè)備連接到主機(jī)上都必須通過一塊控制卡,SCSI設(shè)備是SCSI Adapter, SSA設(shè)備是SSA Adapter,如果這塊卡壞掉,與之連接的外設(shè)就無法利用。有幾種辦法可以解決這個(gè)問題。
一種辦法是用多個(gè)adapter。每個(gè)主機(jī)上都有兩塊或兩塊以上adapter,分別連接mirror的數(shù)據(jù),因此無論是硬盤壞掉,還是Adapter壞掉,所有好數(shù)據(jù)還是可以被主機(jī)利用,不會(huì)出現(xiàn)單點(diǎn)故障。這種方法實(shí)現(xiàn)起來并不難,但必須配置多塊adapter,而且必須采用數(shù)據(jù)mirror方式。這種方法也不用通過HACMP來實(shí)現(xiàn)。
另一種方法仍只用一塊adapter,利用HACMP中的Error Notification Facility( 錯(cuò)誤通告機(jī)制)來解決。
Error Notification Facility是HACMP提供的對其他設(shè)備的監(jiān)控工具,任何報(bào)告給AIX的錯(cuò)誤(error)都能被捕獲被采取相應(yīng)措施。HACMP提供了smit界面,使配置簡單化。
我們已知道,用LVM可實(shí)現(xiàn)硬盤鏡像,當(dāng)一個(gè)盤壞掉,仍有一份數(shù)據(jù)在鏡像盤里,數(shù)據(jù)仍可進(jìn)行讀寫,但此時(shí)數(shù)據(jù)不再有可用性,若鏡像盤也壞掉則數(shù)據(jù)全部丟失。所以在此例中,PV丟失(LVM_PVMISS)的信息會(huì)大幅顯示在控制臺(tái)面上,從而提醒用戶去仔細(xì)查看error log找出故障并修復(fù)它。同樣,此例中HACMP提供了界面,結(jié)合AIX的功能,從而監(jiān)控故障的發(fā)生。
c.應(yīng)用故障
如果用戶的應(yīng)用有kernel call調(diào)用,或以root身份來啟動(dòng)等,一旦應(yīng)用發(fā)生故障,很容易導(dǎo)致操作系統(tǒng)down掉,發(fā)生死機(jī),這時(shí)實(shí)際上等于節(jié)點(diǎn)故障,HACMP會(huì)采取相應(yīng)接管措施。如果只是應(yīng)用自身死掉,AIX仍正常運(yùn)行,HACMP最多利用Error Notification Facility來提供監(jiān)控功能,對應(yīng)用本身不采取任何動(dòng)作。但如果應(yīng)用中調(diào)用了AIX的SRC (System Resource Controller)機(jī)制所提供的API接口,就可以使應(yīng)用在down掉后自動(dòng)重新啟動(dòng)。除了SRC提供API接口外,HACMP中的clinfo也提供這樣的API。
clinfo是cluster Information daemon,它負(fù)責(zé)維護(hù)整個(gè)cluster的狀態(tài)的信息,clinfo API允許應(yīng)用程序利用這些狀態(tài)信息來采取相應(yīng)行動(dòng)。
d. HACMP故障
如果cluster中節(jié)點(diǎn)的HACMP進(jìn)程down掉,HACMP將其升級為節(jié)點(diǎn)故障,從而發(fā)生資源接管。
如上所述,HACMP只全權(quán)負(fù)責(zé)診斷網(wǎng)卡故障、網(wǎng)絡(luò)故障和節(jié)點(diǎn)故障這三類故障,并負(fù)責(zé)實(shí)現(xiàn)IP地址轉(zhuǎn)換或接管,以及整個(gè)系統(tǒng)資源( 硬件、文件、系統(tǒng)、應(yīng)用程序,等等)的接管。對于這三類故障外的其他故障,可以結(jié)合AIX基本功能和HACMP提供的一些機(jī)制,如Error Notification Facility, clinfo API 等,同樣可以實(shí)現(xiàn)對故障的監(jiān)控并采取相應(yīng)措施
附錄:HA三種工作方式:
(1)、主從方式 (非對稱方式)
工作原理:主機(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)測情況,當(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ī)接管。
本文來自ChinaUnix博客,如果查看原文請點(diǎn):http://blog.chinaunix.net/u/5447/showart_1355244.html |
|