版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p><b> 目 錄</b></p><p><b> 1 緒 論1</b></p><p> 1.1 課題研究背景、目的與意義1</p><p> 1.2 國(guó)內(nèi)外的研究現(xiàn)狀2</p><p> 1.3 相關(guān)知識(shí)概述3</p><p>
2、 1.4 課題研究?jī)?nèi)容5</p><p> 2 課題整體規(guī)劃6</p><p> 2.1 工程設(shè)計(jì)中主要運(yùn)用的技術(shù)6</p><p> 2.2 工程整體規(guī)劃7</p><p> 3 需求分析10</p><p> 3.1 可行性研究10</p><p> 3
3、.2 用戶(hù)業(yè)務(wù)分析10</p><p> 3.3 用戶(hù)性能分析11</p><p> 3.4 服務(wù)管理分析11</p><p> 4 總體設(shè)計(jì)12</p><p> 4.1 工作環(huán)境設(shè)定12</p><p> 4.2 軟件安裝及主要文件的配置13</p><p>
4、; 4.3 測(cè)試高可用/高可靠性16</p><p> 5 詳細(xì)設(shè)計(jì)18</p><p> 5.1 LVS集群的特點(diǎn)18</p><p> 5.2 IPVS幾種常用的負(fù)載均衡調(diào)度算法19</p><p> 5.3 LVS 三種工作方式的具體原理20</p><p> 5.4 LVS集群
5、系統(tǒng)的設(shè)計(jì)及實(shí)現(xiàn)23</p><p> 5.5 三種工作模式的比較33</p><p> 6 系統(tǒng)實(shí)施35</p><p><b> 結(jié)束語(yǔ)39</b></p><p><b> 致 謝40</b></p><p><b> 參考文獻(xiàn)41&
6、lt;/b></p><p><b> 附 錄42</b></p><p> 附錄A 主要源程序42</p><p> 附錄B 用戶(hù)手冊(cè)44</p><p> 附錄C 軟件光盤(pán)45</p><p> 附錄D 科技譯文47</p><p>&
7、lt;b> 1 緒 論</b></p><p> 本文針對(duì)基于Linux下的REDHAT操作系統(tǒng),計(jì)算機(jī)集群虛擬化的問(wèn)題進(jìn)行研究,具體的研究?jī)?nèi)容包括研究該課題的可行性,并從用戶(hù)業(yè)務(wù),用戶(hù)性能及服務(wù)管理等三方面進(jìn)行了分析;課題的主要技術(shù)及運(yùn)用高可用集群實(shí)現(xiàn)課題研究的基本思路,并簡(jiǎn)單介紹了HA集群的實(shí)現(xiàn)過(guò)程;負(fù)載均衡集群的工作原理、工作方式及工作過(guò)程等內(nèi)容。</p><p&
8、gt; 1.1 課題研究背景、目的與意義</p><p> 全球范圍內(nèi)Linux的發(fā)展?fàn)顩r讓人鼓舞,從全球來(lái)看Linux的增長(zhǎng)是非常快的。目前,全球Linux市場(chǎng)超過(guò)70億美元整個(gè)操作系統(tǒng)的市場(chǎng)來(lái)看,Linux的增長(zhǎng)比其他操作系統(tǒng)都來(lái)得更加快。而中國(guó)比全球的增長(zhǎng)更顯得快,從大致的增長(zhǎng)率來(lái)看,全球大概是9%-13%的增長(zhǎng)率,在中國(guó),Linux的服務(wù)器市場(chǎng)是33%的增長(zhǎng)率。</p><p&g
9、t; 拿IBM做例子,Linux是IBM所大力倡導(dǎo)的,同時(shí)也在不斷投入。從Linux解決方案來(lái)講,IBM全球最大的提供商之一。IBM所有的服務(wù)器都支持Linux,另外有超過(guò)500種中間件產(chǎn)品都支持Linux平臺(tái),IBM全球Service也都提供了對(duì)Linux的支持與服務(wù)。在IBM,有超過(guò)600名的員工在LTC工作,LTC(Linux Technology Center)是最早IBM建立起來(lái)的一個(gè)圍繞Linux的開(kāi)發(fā)組織和技術(shù)部門(mén),在這
10、里面其中有超過(guò)300人,就專(zhuān)門(mén)圍繞Linux內(nèi)核進(jìn)行了創(chuàng)新的工作。</p><p> 現(xiàn)在Web服務(wù)中越來(lái)越多地使用CGI、動(dòng)態(tài)主頁(yè)等CPU密集型應(yīng)用,這對(duì)服務(wù)器的性能有較高要求。未來(lái)的網(wǎng)絡(luò)服務(wù)會(huì)提供更豐富的內(nèi)容、更好的交互性、更高的安全性等,需要服務(wù)器具有更強(qiáng)的CPU和I/O處理能力。例如,通過(guò)HTTPS(Secure HTTP)取一個(gè)靜態(tài)頁(yè)面需要的處理性能比通過(guò)HTTP的高一個(gè)數(shù)量級(jí),HTTPS正在被電子商
11、務(wù)站點(diǎn)廣為使用。所以,網(wǎng)絡(luò)流量并不能說(shuō)明全部問(wèn)題,要考慮到應(yīng)用本身的發(fā)展也需要越來(lái)越強(qiáng)的處理性能。</p><p> 本課題首先對(duì)現(xiàn)有服務(wù)器集群系統(tǒng)的技術(shù)進(jìn)行了分析,介紹了幾個(gè)典型的集群系統(tǒng),重點(diǎn)討論了負(fù)載均衡集群(LVS)和高可用集群(High Availability)的工作原理和實(shí)現(xiàn)技術(shù)。然后根據(jù)現(xiàn)有的集群技術(shù)的缺點(diǎn)進(jìn)行了改進(jìn),將負(fù)載均衡集群和高可用集群整合在一起,結(jié)合Linux 軟件RAID5技術(shù)實(shí)現(xiàn)了
12、三層構(gòu)架的WWW服務(wù)器集群,以較低的價(jià)格達(dá)到了昂貴的商業(yè)硬件存儲(chǔ)解決方案所實(shí)現(xiàn)的效果,同時(shí)可以滿(mǎn)足大流量的站點(diǎn)訪問(wèn)以及設(shè)備故障的自動(dòng)更替。</p><p> 1.2 國(guó)內(nèi)外的研究現(xiàn)狀</p><p> 九十年代末期,Linux操作系統(tǒng)不斷走向成熟,它的健壯性不斷增強(qiáng),并且提供了GNU軟件和標(biāo)準(zhǔn)化的PVM、MPI消息傳遞機(jī)制,最重要的是Linux在普通PC機(jī)上提供了對(duì)高性能網(wǎng)絡(luò)的支持,
13、這樣就大大推動(dòng)了基于Linux的集群系統(tǒng)的發(fā)展。在國(guó)內(nèi),包括中國(guó)科學(xué)院在內(nèi)的許多大學(xué)與研究機(jī)構(gòu)早在20世紀(jì)90年代就開(kāi)始了基于Linux集群研究,聯(lián)想、浪潮等國(guó)內(nèi)許多公司都有Linux集群產(chǎn)品和解決方案。</p><p> Google、Baidu和騰訊后臺(tái)均采用Linux集群,其中Google在2005年就達(dá)到了200萬(wàn)臺(tái),不僅如此,Linux集群大量在金融、證券、電信以及IT行業(yè)使用。名為 High-Ava
14、ilability Linux 的開(kāi)源項(xiàng)目的目標(biāo)是,通過(guò)社區(qū)開(kāi)發(fā)努力提供一個(gè)提升 Linux 可靠性(reliability)、可用性(availability)和可服務(wù)性(serviceability)(RAS)的群集解決方案。Linux-HA 項(xiàng)目得到了廣泛的應(yīng)用,是很多有趣的高可用性解決方案的重要組成部分。 </p><p> LVS是中國(guó)章文嵩博士發(fā)起和領(lǐng)導(dǎo)的優(yōu)秀的集群解決方案,許多商業(yè)的集群產(chǎn)品,比如
15、RedHat的Piranha等,都是基于LVS的核心代碼的。</p><p> HA和LVS的不足主要有:HA集群一般都是以?xún)蓚€(gè)節(jié)點(diǎn)的形式出現(xiàn)的,單機(jī)處理能力有限,所以當(dāng)服務(wù)器壓力較大時(shí),想擴(kuò)容服務(wù)器的處理能力往往得把以前的服務(wù)器淘汰掉,浪費(fèi)了以前的投資;LVS集群的真實(shí)服務(wù)器都是靠前端IP負(fù)載器進(jìn)行調(diào)度分配的,所以存在單點(diǎn)故障,如果IP負(fù)載器Down機(jī),整個(gè)集群系統(tǒng)就會(huì)癱瘓。所以必須把HA和LVS整合在一起。
16、真實(shí)服務(wù)器的數(shù)據(jù)源所涉及的共享存儲(chǔ)一般都是利用商業(yè)的硬件解決方案,如SAN網(wǎng)絡(luò)區(qū)域存儲(chǔ),對(duì)于小型集群系統(tǒng)來(lái)說(shuō),投入非常高昂,完全可以利用Linux的軟件RAID5技術(shù)和NFS網(wǎng)絡(luò)文件系統(tǒng)來(lái)實(shí)現(xiàn)。</p><p> 1.3 相關(guān)知識(shí)概述</p><p> 1.3.1 集群的定義</p><p> 集群(Cluster)就是一組計(jì)算機(jī),它們作為一個(gè)整體向用戶(hù)提
17、供一組網(wǎng)絡(luò)資源。這些單個(gè)的計(jì)算機(jī)系統(tǒng)就是集群的節(jié)點(diǎn)(Node)。一個(gè)理想的集群是,用戶(hù)從來(lái)不會(huì)意識(shí)到集群系統(tǒng)底層的節(jié)點(diǎn),在他們看來(lái),集群是一個(gè)系統(tǒng),而非多個(gè)計(jì)算機(jī)系統(tǒng)。并且集群系統(tǒng)的管理員可以隨意增加和刪改集群系統(tǒng)的節(jié)點(diǎn)。</p><p> 集群計(jì)算機(jī)通常用來(lái)改進(jìn)單個(gè)計(jì)算機(jī)的計(jì)算速度和可靠性。一般情況下集群計(jì)算機(jī)比單個(gè)計(jì)算機(jī),工作站或超級(jí)計(jì)算機(jī)性能價(jià)格比要高得多。</p><p> 1
18、.3.2 集群的分類(lèi)</p><p> 集群分為同構(gòu)與異構(gòu)兩種,它們的區(qū)別在于:組成集群系統(tǒng)的計(jì)算機(jī)之間的體系結(jié)構(gòu)是否相同。集群計(jì)算機(jī)按功能和結(jié)構(gòu)的不同可以分成:高可用性集群 (High-availability clusters,簡(jiǎn)稱(chēng)HA)、負(fù)載均衡集群(Load balancing clusters)、高性能計(jì)算集群(High-Performance Clusters,簡(jiǎn)稱(chēng)HPC)等幾類(lèi)。</p&g
19、t;<p> 高可用性集群一般是指當(dāng)集群中有某個(gè)節(jié)點(diǎn)失效的情況下,其上的任務(wù)會(huì)自動(dòng)轉(zhuǎn)移到其他正常的節(jié)點(diǎn)上。還指可以將集群中的某節(jié)點(diǎn)進(jìn)行離線維護(hù)再上線,該過(guò)程并不影響整個(gè)集群的運(yùn)行。</p><p> 負(fù)載均衡集群運(yùn)行時(shí)一般通過(guò)一個(gè)或者多個(gè)前端負(fù)載均衡器將工作負(fù)載分發(fā)到后端的一組服務(wù)器上,從而達(dá)到整個(gè)系統(tǒng)的高性能和高可用性。這樣的計(jì)算機(jī)集群有時(shí)也被稱(chēng)為服務(wù)器群(Server Farm)。一般高可用
20、性集群和負(fù)載均衡集群會(huì)使用類(lèi)似的技術(shù),或同時(shí)具有高可用性與負(fù)載均衡的特點(diǎn)。</p><p> 1.3.3 集群的優(yōu)點(diǎn)</p><p> 集群具有以下幾個(gè)方面的優(yōu)點(diǎn):</p><p><b> (1)性能</b></p><p> 網(wǎng)絡(luò)服務(wù)的工作負(fù)載通常是大量相互獨(dú)立的任務(wù),通過(guò)一組服務(wù)器分而治之,可以獲得很高的
21、整體性能。</p><p><b> ?。?)性能/價(jià)格比</b></p><p> 組成集群系統(tǒng)的PC服務(wù)器或RISC服務(wù)器和標(biāo)準(zhǔn)網(wǎng)絡(luò)設(shè)備因?yàn)榇笠?guī)模生產(chǎn)降低成本,價(jià)格低,具有最高的性能/價(jià)格比。若整體性能隨著結(jié)點(diǎn)數(shù)的增長(zhǎng)而接近線性增加,該系統(tǒng)的性能/價(jià)格比接近于PC服務(wù)器。所以,這種松耦合結(jié)構(gòu)比緊耦合的多處理器系統(tǒng)具有更好的性能/價(jià)格比。</p>&
22、lt;p><b> ?。?)可伸縮性</b></p><p> 集群系統(tǒng)中的結(jié)點(diǎn)數(shù)目可以增長(zhǎng)到幾千個(gè),乃至上萬(wàn)個(gè),其伸縮性遠(yuǎn)超過(guò)單臺(tái)超級(jí)計(jì)算機(jī)。</p><p><b> (4)高可用性</b></p><p> 在硬件和軟件上都有冗余,通過(guò)檢測(cè)軟硬件的故障,將故障屏蔽,由存活結(jié)點(diǎn)提供服務(wù),可實(shí)現(xiàn)高可用性。&l
23、t;/p><p> 1.4 課題研究?jī)?nèi)容</p><p> 本文主要內(nèi)容安排如下:</p><p> 第一章緒論研究了選擇該課題的背景和意義、國(guó)內(nèi)外研究的現(xiàn)狀以及完成課題所需要的相關(guān)技術(shù)描述。通過(guò)對(duì)選題的背景和意義的調(diào)查闡述了該課題的研究?jī)r(jià)值,國(guó)內(nèi)外的研究現(xiàn)狀確定了該課題研究的獨(dú)特點(diǎn),相關(guān)知識(shí)概述的部分則表述了研究該課題所需要的關(guān)鍵技術(shù)。</p>
24、<p> 第二章工程規(guī)劃研究了三層架構(gòu)的WWW服務(wù)器集群所需的關(guān)鍵技術(shù)并簡(jiǎn)單介紹了高可用集群的工作過(guò)程。</p><p> 第三章需求分析從技術(shù)可行性、經(jīng)濟(jì)可行性以及操作可行性進(jìn)行了分析,得出了服務(wù)器集群是有研究?jī)r(jià)值的。站在用戶(hù)需求的角度分析,該課題從業(yè)務(wù)、性能和系統(tǒng)管理等方面完全可以滿(mǎn)足用戶(hù)的需求。</p><p> 第四章總體設(shè)計(jì)介紹了高可用集群的設(shè)計(jì)及實(shí)現(xiàn)過(guò)程,通過(guò)詳
25、細(xì)的配置說(shuō)明實(shí)現(xiàn)了高可用集群的基本功能,并進(jìn)行了模擬測(cè)試且測(cè)試成功。</p><p> 第五章詳細(xì)設(shè)計(jì)介紹了負(fù)載均衡系統(tǒng)的三種工作模式及實(shí)現(xiàn)過(guò)程,通過(guò)詳細(xì)的實(shí)現(xiàn)過(guò)程,對(duì)比出三種工作模式的不同功能,為系統(tǒng)設(shè)計(jì)提供了參考,用戶(hù)可根據(jù)自身需求選擇特定的工作模式。</p><p> 第六章系統(tǒng)實(shí)施,詳細(xì)介紹架設(shè)三層WWW服務(wù)器集群的過(guò)程,并且測(cè)試完成。</p><p>
26、 第七部分是結(jié)束語(yǔ),介紹了實(shí)現(xiàn)整個(gè)課題過(guò)程中自己所做的工作,以及課題沒(méi)有完成的內(nèi)容和缺陷,同時(shí)在總結(jié)過(guò)程中反思了自己在整個(gè)設(shè)計(jì)過(guò)程中的不足。</p><p><b> 2 課題整體規(guī)劃</b></p><p> 2.1 工程設(shè)計(jì)中主要運(yùn)用的技術(shù)</p><p> 工程設(shè)計(jì)中主要運(yùn)用了以下幾個(gè)技術(shù):</p><p&
27、gt;<b> (1)雙機(jī)熱備技術(shù)</b></p><p> 所謂雙機(jī)熱備,就是將中心服務(wù)器安裝成互為備份的兩臺(tái)服務(wù)器,并且在同一時(shí)間內(nèi)只有一臺(tái)服務(wù)器運(yùn)行。當(dāng)其中運(yùn)行著的一臺(tái)服務(wù)器出現(xiàn)故障無(wú)法啟動(dòng)時(shí),另一臺(tái)備份服務(wù)器會(huì)迅速的自動(dòng)啟動(dòng)并運(yùn)行(一般為2分鐘左右),從而保證整個(gè)網(wǎng)絡(luò)系統(tǒng)的正常運(yùn)行!雙機(jī)熱備的工作機(jī)制實(shí)際上是為整個(gè)網(wǎng)絡(luò)系統(tǒng)的中心服務(wù)器提供了一種故障自動(dòng)恢復(fù)能力。</p>
28、;<p> ?。?)IP負(fù)載調(diào)度均衡技術(shù)</p><p> 用戶(hù)通過(guò)虛擬IP地址(Virtual IP Address)訪問(wèn)服務(wù)時(shí),訪問(wèn)請(qǐng)求的報(bào)文會(huì)到達(dá)負(fù)載調(diào)度器,由它進(jìn)行負(fù)載均衡調(diào)度,從一組真實(shí)服務(wù)器選出一個(gè),將報(bào)文的目標(biāo)地址Virtual IP Address改寫(xiě)成選定服務(wù)器的地址,報(bào)文的目標(biāo)端口改寫(xiě)成選定服務(wù)器的相應(yīng)端口,最后將報(bào)文發(fā)送給選定的服務(wù)器。真實(shí)服務(wù)器的回應(yīng)報(bào)文經(jīng)過(guò)負(fù)載調(diào)度器時(shí),將
29、報(bào)文的源地址和源端口改為Virtual IP Address和相應(yīng)的端口,再把報(bào)文發(fā)給用戶(hù)。</p><p><b> (3)共享存儲(chǔ)</b></p><p> 共享存儲(chǔ)為服務(wù)器組提供統(tǒng)一的存儲(chǔ)空間,這使得系統(tǒng)的維護(hù)工作比較輕松,如Webmaster只需要更新共享存儲(chǔ)中的頁(yè)面,對(duì)所有的服務(wù)器都有效。分布式文件系統(tǒng)提供良好的伸縮性和可用性,當(dāng)分布式文件系統(tǒng)的存儲(chǔ)空間
30、增加時(shí),所有服務(wù)器的存儲(chǔ)空間也隨之增大。對(duì)于大多數(shù)Internet服務(wù)來(lái)說(shuō),它們都是讀密集型(Read-intensive)的應(yīng)用,分布式文件系統(tǒng)在每臺(tái)服務(wù)器使用本地硬盤(pán)作Cache(如2Gbytes的空間),可以使得訪問(wèn)分布式文件系統(tǒng)本地的速度接近于訪問(wèn)本地硬盤(pán)。</p><p> RAID是“Redundant Array of Independent Disk”的縮寫(xiě),中文意思是獨(dú)立冗余磁盤(pán)陣列。冗余磁盤(pán)
31、陣列技術(shù)誕生于1987年,由美國(guó)加州大學(xué)伯克利分校提出。簡(jiǎn)單地解釋?zhuān)褪菍臺(tái)硬盤(pán)通過(guò)RAID Controller(分Hardware,Software)結(jié)合成虛擬單臺(tái)大容量的硬盤(pán)使用。RAID的采用為存儲(chǔ)系統(tǒng)(或者服務(wù)器的內(nèi)置存儲(chǔ))帶來(lái)巨大利益,其中提高傳輸速率和提供容錯(cuò)功能是最大的優(yōu)點(diǎn)。</p><p> (4)VMware Workstation</p><p> VMware
32、 Workstation是一款功能強(qiáng)大的桌面虛擬計(jì)算機(jī)軟件,提供用戶(hù)可在單一的桌面上同時(shí)運(yùn)行不同的操作系統(tǒng),和進(jìn)行開(kāi)發(fā)、測(cè)試 、部署新的應(yīng)用程序的最佳解決方案。VMware Workstation可在一部實(shí)體機(jī)器上模擬完整的網(wǎng)絡(luò)環(huán)境,以及可便于攜帶的虛擬機(jī)器,其更好的靈活性與先進(jìn)的技術(shù)勝過(guò)了市面上其他的虛擬計(jì)算機(jī)軟件。對(duì)于企業(yè) IT開(kāi)發(fā)人員和系統(tǒng)管理員而言,VMware在虛擬網(wǎng)路,實(shí)時(shí)快照,拖曳共享文件夾,支持PXE等方面的特點(diǎn)使它成為
33、必不可少的工具。</p><p> 2.2 工程整體規(guī)劃</p><p> 2.2.1 高可用集群</p><p> 計(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í)間
34、。系統(tǒng)的可維護(hù)性越好,平均維修時(shí)間越短。計(jì)算機(jī)系統(tǒng)的可用性定義為:MTTF/(MTTF+MTTR) * 100%。由此可見(jiàn),計(jì)算機(jī)系統(tǒng)的可用性定義為系統(tǒng)保持正常運(yùn)行時(shí)間的百分比。</p><p> 計(jì)算機(jī)產(chǎn)業(yè)界通常用表2.1所示的“9”的個(gè)數(shù)來(lái)劃分計(jì)算機(jī)系統(tǒng)可用性的類(lèi)型。</p><p> 表2.1 可用性的分類(lèi)</p><p> 通過(guò)硬件冗余或軟件的方法都
35、可以從很大程度上提高系統(tǒng)的可用性。硬件冗余主要是通過(guò)在系統(tǒng)中維護(hù)多個(gè)冗余部件如硬盤(pán)、網(wǎng)線等來(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ù)。</p><p> 高可用(High Availability)集群,簡(jiǎn)稱(chēng)HA集群。常見(jiàn)的就是2個(gè)節(jié)點(diǎn)做成的HA集群,有很多通俗的名稱(chēng),比如“雙機(jī)熱備
36、”,“雙機(jī)互備”,“雙機(jī)”。這樣做的好處是當(dāng)服務(wù)啟動(dòng)的時(shí)候,兩臺(tái)服務(wù)器一個(gè)作為主,另一個(gè)是從。測(cè)試機(jī)每幾秒會(huì)ping主機(jī),當(dāng)發(fā)現(xiàn)主機(jī)沒(méi)有回應(yīng),就證明主機(jī)宕機(jī)了,那么從機(jī)馬上會(huì)啟動(dòng)相應(yīng)的服務(wù),繼續(xù)進(jìn)行服務(wù)。這樣就可以保證服務(wù)不間斷。</p><p> 高可用性群集的出現(xiàn)是為了使群集的整體服務(wù)盡可能可用,以便考慮計(jì)算硬件和軟件的易錯(cuò)性。如果高可用性群集中的主節(jié)點(diǎn)發(fā)生了故障,那么這段時(shí)間內(nèi)將由次節(jié)點(diǎn)代替它。次節(jié)點(diǎn)通常
37、是主節(jié)點(diǎn)的鏡像,所以當(dāng)它代替主節(jié)點(diǎn)時(shí),它可以完全接管其身份,并且因此使系統(tǒng)環(huán)境對(duì)于用戶(hù)是一致的。盡管集群系統(tǒng)本身獨(dú)立于它在使用的軟件或硬件,但要有效運(yùn)行系統(tǒng)時(shí),硬件連接將起關(guān)鍵作用。</p><p> 2.2.2 HA集群的工作過(guò)程</p><p> HA集群的工作過(guò)程包括以下幾個(gè)階段:</p><p> ?。?)自動(dòng)偵測(cè)(Auto-Detect)階段。由主機(jī)
38、上的軟件通過(guò)冗余偵測(cè)線,經(jīng)由復(fù)雜的監(jiān)聽(tīng)程序進(jìn)行邏輯判斷,來(lái)相互偵測(cè)對(duì)方運(yùn)行的情況,所檢查的項(xiàng)目有主機(jī)硬件(CPU和周邊)、主機(jī)網(wǎng)絡(luò)、主機(jī)操作系統(tǒng)、數(shù)據(jù)庫(kù)引擎及其它應(yīng)用程序、主機(jī)與磁盤(pán)陣列連線。為確保偵測(cè)的正確性,防止錯(cuò)誤的判斷,可設(shè)定安全偵測(cè)時(shí)間,包括偵測(cè)時(shí)間間隔,偵測(cè)次數(shù)以調(diào)整安全系數(shù),并且由主機(jī)的冗余通信連線,將所匯集的訊息記錄下來(lái),以供維護(hù)。</p><p> ?。?)自動(dòng)切換(Auto-Switch)階段
39、。某一主機(jī)如果確認(rèn)對(duì)方故障,則正常主機(jī)除繼續(xù)進(jìn)行原來(lái)的任務(wù),還將依據(jù)各種容錯(cuò)備援模式接管預(yù)先設(shè)定的備援作業(yè)程序,并進(jìn)行后續(xù)的程序及服務(wù)。</p><p> ?。?)自動(dòng)恢復(fù)(Auto-Recovery)階段。在正常主機(jī)代替故障主機(jī)工作后,故障主機(jī)可離線進(jìn)行修復(fù)工作。在故障主機(jī)修復(fù)后,透過(guò)冗余通訊線與原正常主機(jī)連線,自動(dòng)切換回修復(fù)完成的主機(jī)上。整個(gè)回復(fù)過(guò)程完成由EDI-HA自動(dòng)完成,亦可依據(jù)預(yù)先配置,選擇回復(fù)動(dòng)作為
40、半自動(dòng)或不回復(fù)。</p><p> 2.2.3 High-Availability Linux 項(xiàng)目和 HeartBeat</p><p> HeartBeat是可以從Linux-HA項(xiàng)目Web站點(diǎn)公開(kāi)獲得的軟件包之一。它提供了所有HA系統(tǒng)所需要的基本功能,比如啟動(dòng)和停止資源、監(jiān)測(cè)群集中系統(tǒng)的可用性、在群集中的節(jié)點(diǎn)間轉(zhuǎn)移共享IP地址的所有者等。它通過(guò)串行線、以太網(wǎng)接口或者同時(shí)使用二者
41、來(lái)監(jiān)測(cè)特定服務(wù)(或多個(gè)服務(wù))的健康狀況。當(dāng)前版本支持兩節(jié)點(diǎn)配置,使用專(zhuān)門(mén)的HeartBeat“pings”來(lái)檢查服務(wù)的狀態(tài)和可用性。</p><p><b> 3 需求分析</b></p><p> 3.1 可行性研究</p><p> 本課題主要從以下幾個(gè)方面進(jìn)行了可行性研究:</p><p><b&g
42、t; ?。?)技術(shù)可行性</b></p><p> LINUX系統(tǒng)是開(kāi)源系統(tǒng),完成虛擬化集群所需的軟件基本上都是開(kāi)源的。在大學(xué)學(xué)習(xí)期間開(kāi)設(shè)了Linux系統(tǒng)的專(zhuān)業(yè)課程,我也參加了培訓(xùn),通過(guò)自身的學(xué)習(xí)已基本掌握了Linux系統(tǒng)調(diào)試以及架設(shè)服務(wù)器集群的具體方法,在技術(shù)方面的難題是可以克服并解決的。</p><p><b> ?。?)經(jīng)濟(jì)可行性</b></
43、p><p> 眾所周知,Linux系統(tǒng)是開(kāi)源、免費(fèi)的,而完成該課題所需要的軟件如VMware Workstation、HeartBeat等軟件都可以在網(wǎng)上免費(fèi)獲得,且性能可以滿(mǎn)足設(shè)計(jì)要求。在運(yùn)用到實(shí)際工作環(huán)境中時(shí),該系統(tǒng)本身的目的就在于取代昂貴的設(shè)備來(lái)完成滿(mǎn)足高訪問(wèn)量的需求。</p><p><b> ?。?)操作可行性</b></p><p>
44、 系統(tǒng)在操作上是簡(jiǎn)單快捷的,該系統(tǒng)運(yùn)用了高可用集群技術(shù),每個(gè)節(jié)點(diǎn)都會(huì)有備用節(jié)點(diǎn),當(dāng)該節(jié)點(diǎn)出現(xiàn)故障時(shí),系統(tǒng)會(huì)自動(dòng)切換到備用節(jié)點(diǎn),保證系統(tǒng)正常提供其自身功能。在節(jié)點(diǎn)故障后,用戶(hù)可在系統(tǒng)正常工作的前提下對(duì)故障設(shè)備進(jìn)行修復(fù),當(dāng)修復(fù)完成后,系統(tǒng)會(huì)自動(dòng)切換回原來(lái)的節(jié)點(diǎn)。</p><p> 綜上所述,架設(shè)三層架構(gòu)的WWW服務(wù)器集群系統(tǒng),從技術(shù)、經(jīng)濟(jì)及操作方面都是可行的。</p><p> 3.2
45、 用戶(hù)業(yè)務(wù)分析</p><p> 該系統(tǒng)針對(duì)訪問(wèn)量較大的提供Web服務(wù)的網(wǎng)站進(jìn)行設(shè)計(jì),用戶(hù)的需求在于保證其提供的服務(wù)滿(mǎn)足7*24小時(shí)不宕機(jī),并且當(dāng)訪問(wèn)量增大時(shí)不影響服務(wù)器響應(yīng)速度,可根據(jù)訪問(wèn)量的增大靈活的增加服務(wù)器數(shù)量,維護(hù)工作簡(jiǎn)單,價(jià)格低廉且性?xún)r(jià)比高。</p><p> 3.3 用戶(hù)性能分析</p><p> 網(wǎng)站訪問(wèn)量的高低,除了網(wǎng)站用戶(hù)數(shù)外,服務(wù)性能也
46、是其關(guān)鍵因素之一。一般Web服務(wù)在響應(yīng)速度、吞吐量及并發(fā)用戶(hù)數(shù)需求方面的要求是比較高的,在保證正常網(wǎng)絡(luò)流量訪問(wèn)的前提下,還要防備吞吐量及并發(fā)用戶(hù)數(shù)的短期增長(zhǎng),這就對(duì)系統(tǒng)的可擴(kuò)展性提出了要求。該系統(tǒng)在擴(kuò)展性方面是比較靈活的,當(dāng)用戶(hù)提出增加服務(wù)器數(shù)量的要求時(shí),可在短時(shí)間內(nèi)方便快捷的增加或減少,且不會(huì)影響服務(wù)器正常提供服務(wù)。</p><p> 3.4 服務(wù)管理分析</p><p> 服務(wù)器
47、大部分情況下是存放在服務(wù)器機(jī)房的,距離公司比較遠(yuǎn),該系統(tǒng)可滿(mǎn)足用戶(hù)遠(yuǎn)程管理的需求,用戶(hù)只需登錄到各服務(wù)器節(jié)點(diǎn)上,即可實(shí)現(xiàn)對(duì)該服務(wù)器的各項(xiàng)管理,并且遠(yuǎn)程登錄的方式可根據(jù)用戶(hù)對(duì)安全性的要求來(lái)設(shè)定。該系統(tǒng)設(shè)定了日志備份,當(dāng)出現(xiàn)故障時(shí),用戶(hù)可通過(guò)日志查詢(xún)故障原因。系統(tǒng)采用了高可用集群技術(shù),節(jié)點(diǎn)出現(xiàn)故障后可自動(dòng)切換服務(wù)節(jié)點(diǎn),并且各節(jié)點(diǎn)所存儲(chǔ)的數(shù)據(jù)時(shí)相同的,做到了數(shù)據(jù)備份。如果用戶(hù)對(duì)數(shù)據(jù)備份方面的要求較高,系統(tǒng)還可以單獨(dú)增加數(shù)據(jù)備份節(jié)點(diǎn),用來(lái)存儲(chǔ)日
48、益增加的存儲(chǔ)數(shù)據(jù)。</p><p><b> 4 總體設(shè)計(jì)</b></p><p> 4.1 工作環(huán)境設(shè)定</p><p> 本課題的工作環(huán)境設(shè)定具體如下:</p><p> 虛擬機(jī)版本:VMware Workstation 6.5.2 build-156735;</p><p>
49、服務(wù)器操作系統(tǒng):HA1和HA2都采用Redhat6.4;</p><p> 客戶(hù)機(jī)(測(cè)試):Win7 IP:202.114.216.174。</p><p> 選擇虛擬機(jī)網(wǎng)卡工作模式,全部設(shè)為橋接,直接連接到物理網(wǎng)絡(luò),并配置各節(jié)點(diǎn)的IP地址,詳細(xì)設(shè)置如下。</p><p> 高可用集群的拓?fù)浣Y(jié)構(gòu)圖如圖4.1所示。</p><p> 圖
50、4.1 高可用集群</p><p> 調(diào)度分發(fā)器的網(wǎng)絡(luò)配置如下:</p><p> VIP:202.114.216.177</p><p> node1: 主機(jī)名 HA1 </p><p> eth0: 202.114.216.234 //對(duì)外IP地址</p><p>
51、 eth1: 192.168.88.10 //HA心跳使用地址</p><p> node2:主機(jī)名:HA2</p><p> eth0: 202.114.216.235 //對(duì)外IP地址</p><p> eth1: 192.168.88.20
52、 //HA心跳使用地址</p><p> 4.2 軟件安裝及主要文件的配置</p><p> 本設(shè)計(jì)的軟件安裝及主要文件配置如下:</p><p> ?。?)安裝HeartBeat軟件</p><p> 在安裝過(guò)程中需要解決依賴(lài)包的問(wèn)題,第一次安裝時(shí)會(huì)出錯(cuò),要安裝兩次,并解壓HeartBeat包含的文件。</p>
53、<p> rpm -ivh HeartBeat-pils-2.1.3-3.el5.centos.i386.rpm</p><p> mkdir /mnt/cdrom</p><p> mount /dev/cdrom /mnt/cdrom</p><p> cd /mnt/cdrom/CentOS</p><p> rp
54、m -ivh telnet-0.17-39.el5.i386.rpm </p><p> rpm -ivh PyXML-0.8.4-4.i386.rpm </p><p><b> cd ~</b></p><p> rpm -ivh HeartBeat-stonith-2.1.3-
55、3.el5.centos.i386.rpm</p><p> rpm -ivh HeartBeat-2.1.3-3.el5.centos.i386.rpm </p><p> rpm -q HeartBeat -d </p><p><b> ?。?)配置所需文件</b></p>&l
56、t;p> 在每個(gè)節(jié)點(diǎn)上配置HeartBeat,需要有authkeys、ha.cf、haresources三個(gè)文件,它們必須存在于/etc/ha.d/目錄里:</p><p> cp /usr/share/doc/HeartBeat-2.1.3/authkeys /etc/ha.d/ </p><p> cp /usr/share/doc/HeartBeat-2.1.3/ha.c
57、f /etc/ha.d/</p><p> cp /usr/share/doc/HeartBeat-2.1.3/haresources /etc/ha.d/</p><p> ?。?)配置/etc/ha.d/ha.cf</p><p> 在配置文件中要指明日志文件存放位置,指明心跳時(shí)間為2秒(即每?jī)擅腌娫趀th1上發(fā)送一次廣播),指明服務(wù)切換時(shí)間為30秒(30秒
58、內(nèi)沒(méi)反應(yīng)切換服務(wù)),指明心跳延遲的時(shí)間為10秒(當(dāng)10秒鐘內(nèi)備份機(jī)不能聯(lián)系上主機(jī)(當(dāng)前活動(dòng)的服務(wù)器,即無(wú)心跳信號(hào)),就會(huì)往日志中寫(xiě)入一個(gè)警告日志,但此時(shí)不會(huì)切換服務(wù)),設(shè)置網(wǎng)絡(luò)重啟時(shí)間為120秒(在一些配置中,節(jié)點(diǎn)重啟后需要花一些時(shí)間啟動(dòng)網(wǎng)絡(luò),這個(gè)時(shí)間和“deadtime”不同,要單獨(dú)對(duì)待,至少是標(biāo)準(zhǔn)死亡時(shí)間的兩倍)。詳細(xì)配置內(nèi)容如下:</p><p> vi /etc/ha.d/ha.cf</p>
59、<p> logfile /var/log/ha-log //日志文件存放位置</p><p> logfacility local0 </p><p> keepalive 2 //心跳時(shí)間</p><p> deadtime 30
60、 // 服務(wù)切換時(shí)間</p><p> warntime 10 //心跳延遲時(shí)間</p><p> initdead 120 //網(wǎng)絡(luò)重啟時(shí)間</p><p> udpport 694 //心跳檢測(cè)的通信端口</p><p
61、> bcast eth1 //指明心跳連接的接口號(hào)</p><p> ucast eth1 192.168.88.20 //心跳連接的pc的ip</p><p> auto_failback on //主服務(wù)器恢復(fù)正常自動(dòng)切換回來(lái)</p><p> node
62、 HA1 //兩個(gè)的主機(jī)名</p><p> node HA2</p><p> ping 202.114.216.254 //網(wǎng)關(guān) </p><p> ?。?)配置/etc/ha.d/haresources</p><p> vi /etc/ha.d/hareso
63、urces </p><p> HA1 202.114.216.177 httpd</p><p> ?。?)配置vi /etc/ha.d/authkeys</p><p> 該文件時(shí)安全方面的配置,里面有三種認(rèn)證方式:crc md5 sha1,在這里使用第一種認(rèn)證方式,最后要更改文件的權(quán)限。</p><p> vi /etc/ha.
64、d/authkeys</p><p> auth 1 1 crc </p><p> chmod 600 /etc/ha.d/authkeys</p><p> ?。?)遠(yuǎn)程同步配置文件</p><p> 兩臺(tái)心跳的服務(wù)器的配置基本上是完全一樣的,所以用sftp遠(yuǎn)程傳到另一個(gè)已經(jīng)安裝完成,同樣是放在 /etc/ha.d中,唯一不一樣的
65、是這臺(tái)機(jī)器的ha.cf中的ucast eth1 192.168.88.20改為92.168.8.10。同樣把a(bǔ)uthkeys的權(quán)限也改為600。</p><p> ?。?)配置/etc/hosts文件</p><p> 需要把兩臺(tái)心跳連接的電腦的主機(jī)信息寫(xiě)上。</p><p> node1的hosts內(nèi)容如下:</p><p> vim
66、 /etc/hosts </p><p> 127.0.0.1 localhost.localdomain localhost</p><p> 202.114.216.234 HA1</p><p> 192.168.88.10 HA1</p><p> 192.168.88.20 HA2&
67、lt;/p><p> 202.114.216.235 HA2</p><p> node2的hosts內(nèi)容如下:</p><p> 127.0.0.1 localhost.localdomain localhost</p><p> 202.114.216.235 HA2</p><p>
68、 192.168.88.20 HA2</p><p> 192.168.88.10 HA1</p><p> 202.114.216.234 HA1</p><p> (8)Apache網(wǎng)頁(yè)服務(wù)器的架設(shè)</p><p> 首先要將光驅(qū)掛載,并從掛載的光驅(qū)軟件安裝包目錄中安裝Apache服務(wù)器,命令如下:</p
69、><p> mkdir /mnt/cdrom </p><p> mount /dev/cdrom /mnt/cdrom </p><p> cd /mnt/cdrom/CentOS </p><p> rpm -iv
70、h httpd-2.2.3-31.el5.centos.i386.rpm </p><p> 分別編輯2臺(tái)真實(shí)服務(wù)器的不同網(wǎng)頁(yè)內(nèi)容:</p><p> vi /var/www/html/index.html</p><p> This is Xfu.edu.cn Apache Server HA 11111111111</p><
71、p> This is Xfu.edu.cn Apache Server HA 2222222222</p><p> 4.3 測(cè)試高可用/高可靠性</p><p> 首先把兩臺(tái)機(jī)器的心跳服務(wù)都啟動(dòng),命令如下:</p><p> service HeartBeat start</p><p> 過(guò)幾秒鐘后會(huì)發(fā)現(xiàn)HA1主機(jī)的網(wǎng)卡
72、信息中出現(xiàn)eth0:0接口,它的IP是202.114.216.177 就是剛才做的虛擬主機(jī)的IP;而且執(zhí)行ps -ef | grep httpd發(fā)現(xiàn)httpd服務(wù)會(huì)自動(dòng)啟動(dòng),因?yàn)樵?etc/ha.d/haresources 配置了HA1 202.114.216.177 httpd自動(dòng)啟動(dòng);而HA2卻并沒(méi)有產(chǎn)生eth0:0接口,也沒(méi)有自動(dòng)啟動(dòng)httpd服務(wù),說(shuō)明HA2處于偵聽(tīng)檢測(cè)的狀態(tài)。</p><p> 同時(shí)訪
73、問(wèn)http://202.114.216.177,可以顯示:This is Xfu.edu.cn Apache Server HA 1111111111。</p><p> 在HA1上執(zhí)行service HeartBeat stop,在用ifconfig 和ps -ef | grep httpd發(fā)現(xiàn)eth0:0接口消失并且httpd服務(wù)自動(dòng)停止;在HA2上執(zhí)行ipfconfig和ps -ef | grep htt
74、pd發(fā)現(xiàn)產(chǎn)生了eth0:0接口,IP地址為:202.114.216.177并且自動(dòng)啟動(dòng)了httpd服務(wù),所明自動(dòng)切換接管服務(wù)成功。</p><p> 同時(shí)訪問(wèn)http://202.114.216.177,應(yīng)該可以顯示:This is Xfu.edu.cn Apache Server HA 2222222222。</p><p> 再在HA1上執(zhí)行service HeartBeat st
75、art ,在用ifconfig 和ps -ef | grep httpd發(fā)現(xiàn)又產(chǎn)生了eth0:0接口,IP地址為:202.114.216.177并且自動(dòng)啟動(dòng)了httpd服務(wù);在HA2上執(zhí)行ipfconfig和ps -ef | grep httpd發(fā)現(xiàn)eth0:0接口消失并且httpd服務(wù)自動(dòng)關(guān)閉。同時(shí)訪問(wèn)http://202.114.216.177,應(yīng)該又可以顯示:This is Xfu.edu.cn Apache Server HA
76、1111111111;可以看到HA1又接管了其WEB服務(wù),說(shuō)明HA高可用性群集的實(shí)驗(yàn)是成功的。</p><p><b> 5 詳細(xì)設(shè)計(jì)</b></p><p> 虛擬服務(wù)器的體系結(jié)構(gòu):一組服務(wù)器通過(guò)高速的局域網(wǎng)或者地理分布的廣域網(wǎng)相互連接,在它們的前端有一個(gè)負(fù)載調(diào)度器(Load Balancer)。負(fù)載調(diào)度器能無(wú)縫地將網(wǎng)絡(luò)請(qǐng)求調(diào)度到真實(shí)服務(wù)器上,從而使得服務(wù)器集
77、群的結(jié)構(gòu)對(duì)客戶(hù)是透明的,客戶(hù)訪問(wèn)集群系統(tǒng)提供的網(wǎng)絡(luò)服務(wù)就像訪問(wèn)一臺(tái)高性能、高可用的服務(wù)器一樣。</p><p> 客戶(hù)程序不受服務(wù)器集群的影響不需作任何修改。系統(tǒng)的伸縮性通過(guò)在服務(wù)機(jī)群中透明地加入和刪除一個(gè)節(jié)點(diǎn)來(lái)達(dá)到,通過(guò)檢測(cè)節(jié)點(diǎn)或服務(wù)進(jìn)程故障和正確地重置系統(tǒng)達(dá)到高可用性。由于負(fù)載調(diào)度技術(shù)是在Linux內(nèi)核中實(shí)現(xiàn)的,所以稱(chēng)之為L(zhǎng)inux虛擬服務(wù)器(Linux Virtual Server)。</p>
78、<p> 5.1 LVS集群的特點(diǎn)</p><p> LVS集群的特點(diǎn)有以下幾個(gè)方面:</p><p><b> ?。?)功能</b></p><p> 有實(shí)現(xiàn)三種IP負(fù)載均衡技術(shù)和八種連接調(diào)度算法的IPVS軟件。在IPVS內(nèi)部實(shí)現(xiàn)上,采用了高效的Hash函數(shù)和垃圾回收機(jī)制,能正確處理所調(diào)度報(bào)文相關(guān)的ICMP消息(有些商品
79、化的系統(tǒng)反而不能)。虛擬服務(wù)的設(shè)置數(shù)目沒(méi)有限制,每個(gè)虛擬服務(wù)有自己的服務(wù)器集。它支持持久的虛擬服務(wù)(如HTTP Cookie和HTTPS等需要該功能的支持),并提供詳盡的統(tǒng)計(jì)數(shù)據(jù),如連接的處理速率和報(bào)文的流量等。針對(duì)大規(guī)模拒絕服務(wù)(Deny of Service)攻擊,實(shí)現(xiàn)了三種防衛(wèi)策略:有基于內(nèi)容請(qǐng)求分發(fā)的應(yīng)用層交換軟件KTCPVS,它也是在Linux內(nèi)核中實(shí)現(xiàn)。有相關(guān)的集群管理軟件對(duì)資源進(jìn)行監(jiān)測(cè),能及時(shí)將故障屏蔽,實(shí)現(xiàn)系統(tǒng)的高可用性
80、。主、從調(diào)度器能周期性地進(jìn)行狀態(tài)同步,從而實(shí)現(xiàn)更高的可用性。</p><p><b> ?。?)適用性</b></p><p> 后端服務(wù)器可運(yùn)行任何支持TCP/IP的操作系統(tǒng),包括Linux,各種Unix(如FreeBSD、Sun Solaris、HP Unix等),Mac/OS和Windows NT/2000等。負(fù)載調(diào)度器能夠支持絕大多數(shù)的TCP和UDP協(xié)議:協(xié)
81、議內(nèi)容TCPHTTP,F(xiàn)TP,PROXY,SMTP,POP3,IMAP4,DNS,LDAP,HTTPS,SSMTP等UDPDNS,NTP,ICP,視頻、音頻流播放協(xié)議等無(wú)需對(duì)客戶(hù)機(jī)和服務(wù)器作任何修改,可適用大多數(shù)Internet服務(wù)。</p><p><b> ?。?)性能</b></p><p> LVS服務(wù)器集群系統(tǒng)具有良好的伸縮性,可支持幾百萬(wàn)個(gè)并發(fā)連接。配置
82、100M網(wǎng)卡,采用VS/TUN或VS/DR調(diào)度技術(shù),集群系統(tǒng)的吞吐量可高達(dá)1Gbits/s;如配置千兆網(wǎng)卡,則系統(tǒng)的最大吞吐量可接近10Gbits/s。</p><p><b> ?。?)可靠性</b></p><p> LVS服務(wù)器集群軟件已經(jīng)在很多大型的、關(guān)鍵性的站點(diǎn)得到很好的應(yīng)用,所以它的可靠性在真實(shí)應(yīng)用得到很好的證實(shí)。有很多調(diào)度器運(yùn)行一年多,未作一次重啟動(dòng)。
83、</p><p><b> ?。?)軟件許可證</b></p><p> LVS集群軟件是按GPL(GNU Public License)許可證發(fā)行的自由軟件,這意味著你可以得到軟件的源代碼,有權(quán)對(duì)其進(jìn)行修改,但必須保證你的修改也是以GPL方式發(fā)行。</p><p> 5.2 IPVS幾種常用的負(fù)載均衡調(diào)度算法 </p>&
84、lt;p> 針對(duì)不同的網(wǎng)絡(luò)服務(wù)需求和服務(wù)器配置,IPVS調(diào)度器實(shí)現(xiàn)了十種負(fù)載調(diào)度算法,常見(jiàn)的算法有以下四種:</p><p> (1)輪詢(xún)(Round Robin)。調(diào)度器通過(guò)“輪詢(xún)”調(diào)度算法將外部請(qǐng)求按順序輪流分配到集群中的真實(shí)服務(wù)器上,它均等地對(duì)待每一臺(tái)服務(wù)器,而不管服務(wù)器上實(shí)際的連接數(shù)和系統(tǒng)負(fù)載。</p><p> (2)加權(quán)輪詢(xún)(Weighted Round Robin
85、)。調(diào)度器通過(guò)“加權(quán)輪詢(xún)”調(diào)度算法根據(jù)真實(shí)服務(wù)器的不同處理能力來(lái)調(diào)度訪問(wèn)請(qǐng)求。這樣可以保證處理能力強(qiáng)的服務(wù)器處理更多的訪問(wèn)流量。調(diào)度器可以自動(dòng)問(wèn)詢(xún)真實(shí)服務(wù)器的負(fù)載情況,并動(dòng)態(tài)地調(diào)整其權(quán)值。</p><p> (3)最少鏈接(Least Connections)。調(diào)度器通過(guò)“最少連接”調(diào)度算法動(dòng)態(tài)地將網(wǎng)絡(luò)請(qǐng)求調(diào)度到已建立的鏈接數(shù)最少的服務(wù)器上。如果集群系統(tǒng)的真實(shí)服務(wù)器具有相近的系統(tǒng)性能,采用“最小連接”調(diào)度算法可
86、以較好地均衡負(fù)載。</p><p> ?。?)加權(quán)最少鏈接(Weighted Least Connections)。在集群系統(tǒng)中的服務(wù)器性能差異較大的情況下,調(diào)度器采用“加權(quán)最少鏈接”調(diào)度算法優(yōu)化負(fù)載均衡性能,具有較高權(quán)值的服務(wù)器將承受較大比例的活動(dòng)連接負(fù)載。調(diào)度器可以自動(dòng)問(wèn)詢(xún)真實(shí)服務(wù)器的負(fù)載情況,并動(dòng)態(tài)地調(diào)整其權(quán)值。</p><p> 5.3 LVS 三種工作方式的具體原理</
87、p><p> 5.3.1 Virtual Server via Network Address Translation(VS/NAT)</p><p> 通過(guò)網(wǎng)絡(luò)地址轉(zhuǎn)換,調(diào)度器重寫(xiě)請(qǐng)求報(bào)文的目標(biāo)地址,根據(jù)預(yù)設(shè)的調(diào)度算法,將請(qǐng)求分派給后端的真實(shí)服務(wù)器;真實(shí)服務(wù)器的響應(yīng)報(bào)文通過(guò)調(diào)度器時(shí),報(bào)文的源地址被重寫(xiě),再返回給客戶(hù),完成整個(gè)負(fù)載調(diào)度過(guò)程。由于IPv4中IP 地址空間的日益緊張和安全方面
88、的原因,很多網(wǎng)絡(luò)使用保留IP地址(10.0.0.0/8、172.16.0.0/16和192.168.0.0/24)。這些私有地址不在Internet上使用,而是專(zhuān)門(mén)為內(nèi)部網(wǎng)絡(luò)預(yù)留的。當(dāng)內(nèi)部網(wǎng)絡(luò)中的主機(jī)要訪問(wèn)Internet或被Internet訪問(wèn)時(shí),就需要采用網(wǎng)絡(luò)地址轉(zhuǎn)換(Network Address Translation, 以下簡(jiǎn)稱(chēng)NAT),將內(nèi)部地址轉(zhuǎn)化為Internet 上可用的外部地址。NAT的工作原理是報(bào)文頭(目標(biāo)地址、源
89、地址和端口等)被正確改寫(xiě)后,客戶(hù)相信它們連接一個(gè)IP 地址,而不同IP地址的服務(wù)器組也認(rèn)為它們是與客戶(hù)直接相連的。由此,可以用NAT方法將不同IP 地址的并行網(wǎng)絡(luò)服務(wù)變成在一個(gè)IP地址上的一個(gè)虛擬服務(wù)。</p><p> VS/NAT的體系結(jié)構(gòu)如圖5.1所示。在一組服務(wù)器前有一個(gè)調(diào)度器,它們是通過(guò)Switch相連接的。這些服務(wù)器提供相同的網(wǎng)絡(luò)服務(wù)、相同的內(nèi)容,即不管請(qǐng)求被發(fā)送到哪一臺(tái)服務(wù)器,執(zhí)行結(jié)果是一樣的。服
90、務(wù)的內(nèi)容可以復(fù)制到每臺(tái)服務(wù)器的本地硬盤(pán)上,可以通過(guò)網(wǎng)絡(luò)文件系統(tǒng)(如NFS)共享,也可以通過(guò)一個(gè)分布式文件系統(tǒng)來(lái)提供。</p><p> 圖5.1 LVS/NAT集群</p><p> 5.3.2 Virtual Server via Direct Routing(VS/DR)</p><p> VS/DR通過(guò)改寫(xiě)請(qǐng)求報(bào)文的MAC地址,將請(qǐng)求發(fā)送到真實(shí)服務(wù)器
91、,而真實(shí)服務(wù)器將響應(yīng)直接返回給客戶(hù)。同VS/TUN技術(shù)一樣,VS/DR技術(shù)可極大地提高集群系統(tǒng)的伸縮性。這種方法沒(méi)有IP隧道的開(kāi)銷(xiāo),對(duì)集群中的真實(shí)服務(wù)器也沒(méi)有必須支持IP隧道協(xié)議的要求,但是要求調(diào)度器與真實(shí)服務(wù)器都有一塊網(wǎng)卡連在同一物理網(wǎng)段上。</p><p> VS/DR的體系結(jié)構(gòu)如圖5.2所示,調(diào)度器和服務(wù)器組都必須在物理上有一個(gè)網(wǎng)卡通過(guò)不分?jǐn)嗟木钟蚓W(wǎng)相連,如通過(guò)高速的交換機(jī)相連。VIP地址為調(diào)度器和服務(wù)器
92、組共享,調(diào)度器配置的VIP地址是對(duì)外可見(jiàn)的,用于接收虛擬服務(wù)的請(qǐng)求報(bào)文;所有的服務(wù)器把VIP地址配置在各自的Non-ARP網(wǎng)絡(luò)設(shè)備上,它對(duì)外面是不可見(jiàn)的,只是用于處理目標(biāo)地址為VIP的網(wǎng)絡(luò)請(qǐng)求。</p><p> 圖5.2 LVS/DR集群</p><p> 5.3.3 Virtual Server via IP Tunneling(VS/TUN)</p><p
93、> 采用NAT技術(shù)時(shí),由于請(qǐng)求和響應(yīng)報(bào)文都必須經(jīng)過(guò)調(diào)度器地址重寫(xiě),當(dāng)客戶(hù)請(qǐng)求越來(lái)越多時(shí),調(diào)度器的處理能力將成為瓶頸。為了解決這個(gè)問(wèn)題,調(diào)度器把請(qǐng)求報(bào)文通過(guò)IP隧道轉(zhuǎn)發(fā)至真實(shí)服務(wù)器,而真實(shí)服務(wù)器將響應(yīng)直接返回給客戶(hù),所以調(diào)度器只處理請(qǐng)求報(bào)文。由于一般網(wǎng)絡(luò)服務(wù)應(yīng)答比請(qǐng)求報(bào)文大許多,采用 VS/TUN技術(shù)后,集群系統(tǒng)的最大吞吐量可以提高10倍。</p><p> IP隧道(IP tunneling)是將一個(gè)I
94、P報(bào)文封裝在另一個(gè)IP報(bào)文的技術(shù),這可以使得目標(biāo)為一個(gè)IP地址的數(shù)據(jù)報(bào)文能被封裝和轉(zhuǎn)發(fā)到另一個(gè)IP地址。IP隧道技術(shù)亦稱(chēng)為IP封裝技術(shù)(IP encapsulation)。IP隧道主要用于移動(dòng)主機(jī)和虛擬私有網(wǎng)絡(luò)(Virtual Private Network),在其中隧道都是靜態(tài)建立的,隧道一端有一個(gè)IP地址,另一端也有唯一的IP地址。利用IP隧道技術(shù)將請(qǐng)求報(bào)文封裝轉(zhuǎn)發(fā)給后端服務(wù)器,響應(yīng)報(bào)文能從后端服務(wù)器直接返回給客戶(hù)。但在這里,后端服
95、務(wù)器有一組而非一個(gè),所以不可能靜態(tài)地建立一一對(duì)應(yīng)的隧道,而是動(dòng)態(tài)地選擇一臺(tái)服務(wù)器,將請(qǐng)求報(bào)文封裝和轉(zhuǎn)發(fā)給選出的服務(wù)器。這樣,可以利用IP隧道的原理將一組服務(wù)器上的網(wǎng)絡(luò)服務(wù)組成在一個(gè)IP地址上的虛擬網(wǎng)絡(luò)服務(wù)。VS/TUN的體系結(jié)構(gòu)如圖5.3所示,各個(gè)服務(wù)器將VIP地址配置在自己的IP隧道設(shè)備上。</p><p> 圖5.3 LVS/TUN集群</p><p> 5.4 LVS集群系統(tǒng)
96、的設(shè)計(jì)及實(shí)現(xiàn)</p><p> 5.4.1 通過(guò)NAT實(shí)現(xiàn)虛擬服務(wù)器(VS/NAT)</p><p> LVS/NAT集群拓?fù)浣Y(jié)構(gòu)圖如圖5.1所示。</p><p><b> ?。?)工作環(huán)境設(shè)定</b></p><p> 虛擬機(jī)版本:VMware Workstation 6.5.2 build-156735;&
97、lt;/p><p> 服務(wù)器操作系統(tǒng):所有機(jī)器全部采用Red Hat Enterprise Linux 5;</p><p> 客戶(hù)機(jī)(測(cè)試):Win7 IP:202.114.216.174。</p><p><b> ?。?)網(wǎng)絡(luò)IP配置</b></p><p> 虛擬機(jī)網(wǎng)卡工作模式:全部設(shè)為橋接,直接連接到物理網(wǎng)絡(luò)
98、</p><p> Directorserver(LVS1):</p><p> eth0(外網(wǎng)卡):202.114.216.177</p><p> Gateway: 202.114.216.254</p><p> DnsServer :202.114.216.3</p><p> eth1(內(nèi)網(wǎng)卡):1
99、92.168.88.1 </p><p> Gateway: 202.114.216.254</p><p> DnsServer :202.114.216.3</p><p> Realserver 1(RS1) eth0: 192.168.88.10</p><p> Realserver 1(RS2) eth
100、0: 192.168.88.20</p><p> Realserver 3(RS3) eth0: 192.168.88.30</p><p> Gateway: 192.168.88.1</p><p> ?。?)下載ipvsadm軟件包</p><p> route add default gw 202.114.216.2
101、54 //因eth1是后配置,所以默認(rèn)網(wǎng)關(guān)被覆為192.168.88.1,連接不上公網(wǎng),必須重新增加一條默認(rèn)路由。</p><p> wget http://www.Linuxvirtualserver.org/software/kernel-2.6/ipvsadm-1.24.tar.gz</p><p> ?。?)對(duì)內(nèi)核進(jìn)行軟連接</p><p> 因?yàn)?/p>
102、ipvsadm在安裝的過(guò)程中先要去查找/usr/src/Linux 這個(gè)信息,所以要先把內(nèi)核信息做軟連接到/usr/src/Linux。如果不這么做,在安裝的過(guò)程中會(huì)報(bào)錯(cuò)。</p><p> ln -s /usr/src/kernels/2.6.18-8.el5-i686/ /usr/src/Linux </p><p> ?。?)包的解壓,編譯和安裝</p><p&
103、gt; tar -zxvf ipvsadm-1.24.tar.gz </p><p> cd ipvsadm-1.24</p><p><b> make all</b></p><p> make install</p><p><b> ?。?)配置LVS</b></p>
104、<p> vi /etc/init.d/vip.sh</p><p> echo "1" > /proc/sys/net/ipv4/ip_forward //打開(kāi)IP轉(zhuǎn)發(fā)</p><p> ipvsadm –C //清除現(xiàn)有Ipvs規(guī)則</p>&l
105、t;p> ipvsadm -A -t 202.114.216.177:80 -s rr //使用輪詢(xún)調(diào)度算法</p><p> ipvsadm -a -t 202.114.216.177:80 -r 192.168.88.10:80 -m -w 1 </p><p> //添加RS1服務(wù)器的調(diào)度</p><p> ipvsadm
106、 -a -t 202.114.216.177:80 -r 192.168.88.20:80 -m -w 1 </p><p> ipvsadm -a -t 202.114.216.177:80 -r 192.168.88.30:80 -m -w 1 </p><p> chmod 777 /etc/init.d/vip.sh //修改權(quán)
107、限</p><p> /etc/init.d/vip.sh //執(zhí)行腳本</p><p> ?。?) Apache網(wǎng)頁(yè)服務(wù)器的架設(shè)</p><p> mkdir /mnt/cdrom //建立光驅(qū)掛載目錄 </p><p> moun
108、t /dev/cdrom /mnt/cdrom //掛載光驅(qū)</p><p> cd /mnt/cdrom/Server //進(jìn)入RPM軟件安裝包目錄</p><p> rpm -ivh httpd-2.2.3-6.el5.i386.rpm //安裝Apache服務(wù)器軟件</p><p>
109、 分別編輯3臺(tái)真實(shí)服務(wù)器的不同網(wǎng)頁(yè)內(nèi)容:</p><p> vi /var/www/html/index.html</p><p> This is Xfu.edu.cn Apache Server 1111111111 //RS1的內(nèi)容</p><p> This is Xfu.edu.cn Apache Server 2222222222 /
110、/RS2的內(nèi)容</p><p> This is Xfu.edu.cn Apache Server 3333333333 //RS3的內(nèi)容</p><p> 啟動(dòng)Apache服務(wù)器:service httpd start </p><p> ?。?)測(cè)試LVS/NAT集群</p><p> 如圖5.4所示,依次打開(kāi)VIP
111、地址:202.114.216.177,可以分別看到RS1、RS2、RS3的網(wǎng)頁(yè)內(nèi)容。</p><p> 在LVS1上執(zhí)行ipvsadm -L -n –stats,可以詳細(xì)的看到鏈接請(qǐng)求的分布狀態(tài),是依次輪詢(xún)的,說(shuō)明LVS/NAT負(fù)載均衡實(shí)驗(yàn)是成功的。</p><p> 在圖5.4中,左側(cè)顯示的是網(wǎng)頁(yè)內(nèi)容,執(zhí)行三次的結(jié)果顯示了三次不同的網(wǎng)頁(yè)界面,右側(cè)顯示的是鏈接請(qǐng)求分布的狀態(tài)。</
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫(kù)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 基于redhat系統(tǒng)的計(jì)算機(jī)集群虛擬化技術(shù)的設(shè)計(jì)與實(shí)現(xiàn)
- 畢業(yè)設(shè)計(jì)(論文)+計(jì)算機(jī)科學(xué)與技術(shù)+基于discuz!的大學(xué)計(jì)算機(jī)基礎(chǔ)論壇系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)
- 計(jì)算機(jī)科學(xué)與技術(shù)畢業(yè)設(shè)計(jì)-基于web的家政服務(wù)系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
- 計(jì)算機(jī)科學(xué)與技術(shù)畢業(yè)設(shè)計(jì)-賓館管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
- 計(jì)算機(jī)畢業(yè)設(shè)計(jì)---基于web的教學(xué)評(píng)價(jià)系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
- 計(jì)算機(jī)科學(xué)與技術(shù)畢業(yè)設(shè)計(jì)-資料管理系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)
- 計(jì)算機(jī)科學(xué)與技術(shù)畢業(yè)設(shè)計(jì)-基于android平臺(tái)的家具展示系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
- 計(jì)算機(jī)科學(xué)與技術(shù)畢業(yè)設(shè)計(jì)-病床呼叫管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
- 計(jì)算機(jī)虛擬實(shí)驗(yàn)系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn).pdf
- 計(jì)算機(jī)專(zhuān)業(yè)畢業(yè)設(shè)計(jì)--在線考試系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
- 計(jì)算機(jī)科學(xué)與與技術(shù)畢業(yè)設(shè)計(jì)基于內(nèi)容的微博推薦系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)
- 基于網(wǎng)絡(luò)的虛擬實(shí)驗(yàn)平臺(tái)遠(yuǎn)程指導(dǎo)模塊的設(shè)計(jì)與實(shí)現(xiàn)—計(jì)算機(jī)畢業(yè)設(shè)計(jì)(論文)
- 計(jì)算機(jī)科學(xué)與技術(shù)畢業(yè)設(shè)計(jì)-基于sqlserver的業(yè)務(wù)流程管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
- 基于web的圖書(shū)管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)計(jì)算機(jī)科學(xué)與技術(shù)畢業(yè)設(shè)計(jì)論文
- 基于web的圖書(shū)管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)計(jì)算機(jī)科學(xué)與技術(shù)畢業(yè)設(shè)計(jì)論文
- 計(jì)算機(jī)科學(xué)與技術(shù)畢業(yè)設(shè)計(jì)超市管理系統(tǒng)的設(shè)計(jì)
- 計(jì)算機(jī)科學(xué)與技術(shù)畢業(yè)設(shè)計(jì)基于android的esl管理系統(tǒng)的設(shè)計(jì)
- 計(jì)算機(jī)科學(xué)與技術(shù)畢業(yè)設(shè)計(jì)
- 計(jì)算機(jī)科學(xué)與技術(shù)畢業(yè)設(shè)計(jì)-基于esper的復(fù)雜事件處理系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)
- 計(jì)算機(jī)科學(xué)與技術(shù)畢業(yè)設(shè)計(jì)-新生注冊(cè)與宿舍管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
評(píng)論
0/150
提交評(píng)論