劉 雙 崔金玉
(綏化學(xué)院電氣工程學(xué)院 黑龍江 綏化 152061)
在我們的生活中,計算機(jī)已經(jīng)到了一個舉足輕重的地位,而且現(xiàn)在隨著互聯(lián)網(wǎng)的發(fā)展,他更加與我們密切相關(guān)。Linux系統(tǒng)就是在基于unix系統(tǒng)的基礎(chǔ)上衍生出來的當(dāng)下最流行的企業(yè)級的操作系統(tǒng),它具有良好的安全性、高效性、穩(wěn)定性、可擴(kuò)展性和易用性。如今社會在進(jìn)步,在現(xiàn)今,Linux操作系統(tǒng)不斷的發(fā)展不斷的壯大,并且提供了GNU軟件和標(biāo)準(zhǔn)化的PVM、MPI消息傳遞機(jī)制,其中非常重要的一點(diǎn)就是在普通機(jī)器上的網(wǎng)絡(luò)的相關(guān)方向,這使得linux得到了更加快速而有力的發(fā)展。
簡而言之,集群就是很多的計算機(jī)組成在一起的整體,他們以一個整體的形式對外提供服務(wù)。其中他們每一臺計算機(jī)都是這個劇群的節(jié)點(diǎn)。一個非常完美的集群就是,當(dāng)用戶訪問一個網(wǎng)站其實(shí)就是訪問的一個集群中的一個節(jié)點(diǎn),因?yàn)槊總€網(wǎng)站都不可能是由一臺計算機(jī)組成的,在客戶的眼中,集群就是一個整體,而不是由多個計算機(jī)組成的系統(tǒng)。并且集群還有很好的可操作性,它會隨著管理員和現(xiàn)實(shí)中的需要而增加節(jié)點(diǎn)或是減少節(jié)點(diǎn)。
集群系統(tǒng)一般可以分成兩類,一類是HA集群,就是高可用集群。HA實(shí)際上是兩臺(或更多)的計算機(jī)以一種相互的方式互相的監(jiān)聽的一種操作。當(dāng)其中Primary server出現(xiàn)故障的時候,Standby server能夠快速而且安全的接替工作,是用戶感覺不到有什么不一樣的地方。在Primary server恢復(fù)正常之后,Standby server又會把工作還給 Primary server。在現(xiàn)今的發(fā)展前景下,基于 LVS的 HA方案 Linux已經(jīng)是高端的市場必須的方式,所以許多公司都在這方面加大了研究力度。現(xiàn)在,我們就能夠通過相關(guān)的軟件去實(shí)現(xiàn)這一操作。
我們可以使用“mon”、“heart beat”、“fake”和“coda”四個軟件來構(gòu)筑具有高可用性的 Virtual Server(虛擬服務(wù)器)。“mon”就是我們現(xiàn)在所收知的一個資源管理系統(tǒng)。“heartbeat”使用在幾臺計算機(jī)之間傳送信條信息的一個設(shè)備。“Fake”是一個實(shí)現(xiàn)IP接管的軟件。
當(dāng)服務(wù)器故障時,處理過程如下:“mon”踏實(shí)工作在負(fù)載均衡器上的,他的工作就是觀察真?zhèn)€集群中每一個節(jié)點(diǎn)的工作情況。在配置文件“fping.monitor”中寫入要檢測服務(wù)器節(jié)點(diǎn),然后“mon”就是對這個節(jié)點(diǎn)驚醒沒多少秒鐘的檢測,查看這個節(jié)點(diǎn)是否還是活著的節(jié)點(diǎn)。
并且,其他的的服務(wù)也是要進(jìn)城一些配置的,這樣“mon”進(jìn)程將每個多少秒就檢測一下所有節(jié)點(diǎn)的進(jìn)程情況。例如:http.monitor:就是配置監(jiān)控 http服務(wù);ftp.monitor:用于配置監(jiān)控 ftp服務(wù);諸如此類。當(dāng)一切都完成的時候,其中的一個服務(wù)器放生故障的時候或者是失效的時候、服務(wù)器就會發(fā)送一個通知報告,所以,負(fù)載均衡器就會知道具體到底是哪個節(jié)點(diǎn)發(fā)生故障。
現(xiàn)在,組在均衡器就成了現(xiàn)在唯一需要保護(hù)的點(diǎn)了,他成了單點(diǎn)失效。為了不讓這一現(xiàn)象的出現(xiàn),我們這時候就要對負(fù)載均衡器做一個備份服務(wù)器來完成當(dāng)他故障的時候來頂替他的工作的任務(wù)。“fake”作用就是當(dāng)出現(xiàn)這一情況的時候,備份的服務(wù)器能夠迅速的將服務(wù)接管過來,并且能夠繼續(xù)對外提供服務(wù)。
而“心跳”的作用就是能夠時時的監(jiān)控負(fù)載均衡器的工作情況和工作狀態(tài)。它是通過在負(fù)載均衡器和備份服務(wù)器上有個叫“心跳的”的進(jìn)程來實(shí)現(xiàn)的,他們是以一種方式傳遞我還活著的信息。當(dāng)備用的服務(wù)器在一定的時間內(nèi)收不到負(fù)載均衡發(fā)出的“我還活著”的消息時,備份服務(wù)器機(jī)會激活“fake”來進(jìn)行工作并接管IP地址,并提供正常的服務(wù);當(dāng)負(fù)載均衡器恢復(fù)工作的時候,備份服務(wù)器就會自動將“fake”進(jìn)程關(guān)閉,這時負(fù)載均衡器就會重新接管服務(wù),負(fù)載均衡器重新開始工作。
另一種就是LB集群,也就是通常所說的負(fù)載均衡,它的主要作用就是,每個組成集群的機(jī)器都對外提供相同的服務(wù),這樣就可以做到負(fù)載均衡的作用,并且同時還能夠?qū)⒖捎眯蕴岣撸阅軆r格比極高。
負(fù)載均衡服務(wù)器集群系統(tǒng)一般由路由控制設(shè)備、客戶端、調(diào)度服務(wù)器、業(yè)務(wù)服務(wù)器等4部分組成。對一陣各系統(tǒng)來說的性能方面都有著很嚴(yán)謹(jǐn)?shù)脑O(shè)計,當(dāng)有客戶來進(jìn)行請求的時候,都必須經(jīng)過防火墻的檢測,而且必須按照路由設(shè)置的的訪問權(quán)限來執(zhí)行,所有者就幫掙了得到的請求都是合法的。
具體過程就是客戶先向服務(wù)器發(fā)出請求,通過互聯(lián)網(wǎng)將客戶的請求發(fā)到調(diào)度服務(wù)器,但是在這之前還要經(jīng)過防火墻和路由器的驗(yàn)證才能完成。調(diào)度服務(wù)器的作用就是通過一種調(diào)度算法找出現(xiàn)在真?zhèn)€集群中負(fù)載最低的節(jié)點(diǎn),這樣就將客戶端的請求轉(zhuǎn)到這臺機(jī)器上來,從而完成客戶端的請求。依據(jù)服務(wù)使用網(wǎng)絡(luò)協(xié)議的不同,完成負(fù)載均衡的機(jī)制是有所不同的,通常是分為兩類。如果業(yè)務(wù)是基于TCP流連接模式,就是通常所說的NAT方式,這種方式會產(chǎn)生兩次鏈接,在現(xiàn)在對整體性能要求非常高的集群中已經(jīng)逐漸被另一種方式所代替;第二種就是,如果服務(wù)是基于無連接的UDP協(xié)議,就是所說的DR方式,他是可以直接通過調(diào)度服務(wù)器直接轉(zhuǎn)發(fā)到應(yīng)用節(jié)點(diǎn)上的,并不會產(chǎn)生兩次鏈接,這樣完成任務(wù)就大大提高了效率。
[1]Richard Stevens W.Bill Fenner,Rudoff M.UNIX Network Programming[M].北京:清華大學(xué)出版社,2004,1:137-142.
[2]Paxson V.,Allman M.Computing TCP’s Retransmission Timer[S].RFC 2988,2000,11:17-26.