亚洲成精品动漫久久精久,九九在线精品视频播放,黄色成人免费观看,三级成人影院,久碰久,四虎成人欧美精品在永久在线

掃一掃
關(guān)注微信公眾號

基于linux的負(fù)載均衡技術(shù)
2007-01-18   中國IT實(shí)驗(yàn)室

前言
  當(dāng)前,無論在企業(yè)網(wǎng)、園區(qū)網(wǎng)還是在廣域網(wǎng)如Internet上,業(yè)務(wù)量的發(fā)展都超出了過去最樂觀的估計(jì),上網(wǎng)熱潮風(fēng)起云涌,新的應(yīng)用層出不窮,即使按照當(dāng)時(shí)最優(yōu)配置建設(shè)的網(wǎng)絡(luò),也很快會感到吃不消。尤其是各個(gè)網(wǎng)絡(luò)的核心部分,其數(shù)據(jù)流量和計(jì)算強(qiáng)度之大,使得單一設(shè)備根本無法承擔(dān),而如何在完成同樣功能的多個(gè)網(wǎng)絡(luò)設(shè)備之間實(shí)現(xiàn)合理的業(yè)務(wù)量分配,使之不致于出現(xiàn)一臺設(shè)備過忙、而別的設(shè)備卻未充分發(fā)揮處理能力的情況,就成了一個(gè)問題,負(fù)載均衡機(jī)制也因此應(yīng)運(yùn)而生。
  
  負(fù)載均衡建立在現(xiàn)有網(wǎng)絡(luò)結(jié)構(gòu)之上,它提供了一種廉價(jià)有效的方法擴(kuò)展服務(wù)器帶寬和增加吞吐量,加強(qiáng)網(wǎng)絡(luò)數(shù)據(jù)處理能力,提高網(wǎng)絡(luò)的靈活性和可用性。它主要完成以下任務(wù):解決網(wǎng)絡(luò)擁塞問題,服務(wù)就近提供,實(shí)現(xiàn)地理位置無關(guān)性;為用戶提供更好的訪問質(zhì)量;提高服務(wù)器響應(yīng)速度;提高服務(wù)器及其他資源的利用效率;避免了網(wǎng)絡(luò)關(guān)鍵部位出現(xiàn)單點(diǎn)失效。
  
  定義
  其實(shí),負(fù)載均衡并非傳統(tǒng)意義上的“均衡”,一般來說,它只是把有可能擁塞于一個(gè)地方的負(fù)載交給多個(gè)地方分擔(dān)。如果將其改稱為“負(fù)載分擔(dān)”,也許更好懂一些。說得通俗一點(diǎn),負(fù)載均衡在網(wǎng)絡(luò)中的作用就像輪流值日制度,把任務(wù)分給大家來完成,以免讓一個(gè)人累死累活。不過,這種意義上的均衡一般是靜態(tài)的,也就是事先確定的“輪值”策略。
  
  與輪流值日制度不同的是,動態(tài)負(fù)載均衡通過一些工具實(shí)時(shí)地分析數(shù)據(jù)包,掌握網(wǎng)絡(luò)中的數(shù)據(jù)流量狀況,把任務(wù)合理分配出去。結(jié)構(gòu)上分為本地負(fù)載均衡和地域負(fù)載均衡(全局負(fù)載均衡),前一種是指對本地的服務(wù)器集群做負(fù)載均衡,后一種是指對分別放置在不同的地理位置、在不同的網(wǎng)絡(luò)及服務(wù)器群集之間作負(fù)載均衡。
  
  服務(wù)器群集中每個(gè)服務(wù)結(jié)點(diǎn)運(yùn)行一個(gè)所需服務(wù)器程序的獨(dú)立拷貝,諸如Web、FTP、Telnet或e-mail服務(wù)器程序。對于某些服務(wù)(如運(yùn)行在Web服務(wù)器上的那些服務(wù))而言,程序的一個(gè)拷貝運(yùn)行在群集內(nèi)所有的主機(jī)上,而網(wǎng)絡(luò)負(fù)載均衡則將工作負(fù)載在這些主機(jī)間進(jìn)行分配。對于其他服務(wù)(例如e-mail),只有一臺主機(jī)處理工作負(fù)載,針對這些服務(wù),網(wǎng)絡(luò)負(fù)載均衡允許網(wǎng)絡(luò)通訊量流到一個(gè)主機(jī)上,并在該主機(jī)發(fā)生故障時(shí)將通訊量移至其他主機(jī)。
  
  負(fù)載均衡技術(shù)實(shí)現(xiàn)結(jié)構(gòu)
  在現(xiàn)有網(wǎng)絡(luò)結(jié)構(gòu)之上,負(fù)載均衡提供了一種廉價(jià)有效的方法擴(kuò)展服務(wù)器帶寬和增加吞吐量,加強(qiáng)網(wǎng)絡(luò)數(shù)據(jù)處理能力,提高網(wǎng)絡(luò)的靈活性和可用性。它主要完成以下任務(wù):
  
  ◆解決網(wǎng)絡(luò)擁塞問題,服務(wù)就近提供,實(shí)現(xiàn)地理位置無關(guān)性
  ◆為用戶提供更好的訪問質(zhì)量
  ◆提高服務(wù)器響應(yīng)速度
  ◆提高服務(wù)器及其他資源的利用效率
  ◆避免了網(wǎng)絡(luò)關(guān)鍵部位出現(xiàn)單點(diǎn)失效
  
  廣義上的負(fù)載均衡既可以設(shè)置專門的網(wǎng)關(guān)、負(fù)載均衡器,也可以通過一些專用軟件與協(xié)議來實(shí)現(xiàn)。對一個(gè)網(wǎng)絡(luò)的負(fù)載均衡應(yīng)用,從網(wǎng)絡(luò)的不同層次入手,根據(jù)網(wǎng)絡(luò)瓶頸所在進(jìn)行具體分析。從客戶端應(yīng)用為起點(diǎn)縱向分析,參考OSI的分層模型,我們把負(fù)載均衡技術(shù)的實(shí)現(xiàn)分為客戶端負(fù)載均衡技術(shù)、應(yīng)用服務(wù)器技術(shù)、高層協(xié)議交換、網(wǎng)絡(luò)接入?yún)f(xié)議交換等幾種方式。
  
  負(fù)載均衡的層次
  ◆基于客戶端的負(fù)載均衡
  
  這種模式指的是在網(wǎng)絡(luò)的客戶端運(yùn)行特定的程序,該程序通過定期或不定期的收集服務(wù)器群的運(yùn)行參數(shù):CPU占用情況、磁盤IO、內(nèi)存等動態(tài)信息,再根據(jù)某種選擇策略,找到可以提供服務(wù)的最佳服務(wù)器,將本地的應(yīng)用請求發(fā)向它。如果負(fù)載信息采集程序發(fā)現(xiàn)服務(wù)器失效,則找到其他可替代的服務(wù)器作為服務(wù)選擇。整個(gè)過程對于應(yīng)用程序來說是完全透明的,所有的工作都在運(yùn)行時(shí)處理。因此這也是一種動態(tài)的負(fù)載均衡技術(shù)。
  
  但這種技術(shù)存在通用性的問題。因?yàn)槊恳粋€(gè)客戶端都要安裝這個(gè)特殊的采集程序;并且,為了保證應(yīng)用層的透明運(yùn)行,需要針對每一個(gè)應(yīng)用程序加以修改,通過動態(tài)鏈接庫或者嵌入的方法,將客戶端的訪問請求能夠先經(jīng)過采集程序再發(fā)往服務(wù)器,以重定向的過程進(jìn)行。對于每一個(gè)應(yīng)用幾乎要對代碼進(jìn)行重新開發(fā),工作量比較大。
  
  所以,這種技術(shù)僅在特殊的應(yīng)用場合才使用到,比如在執(zhí)行某些專有任務(wù)的時(shí)候,比較需要分布式的計(jì)算能力,對應(yīng)用的開發(fā)沒有太多要求。另外,在采用JAVA構(gòu)架模型中,常常使用這種模式實(shí)現(xiàn)分布式的負(fù)載均衡,因?yàn)閖ava應(yīng)用都基于虛擬機(jī)進(jìn)行,可以在應(yīng)用層和虛擬機(jī)之間設(shè)計(jì)一個(gè)中間層,處理負(fù)載均衡的工作。
  
  ◆應(yīng)用服務(wù)器的負(fù)載均衡技術(shù)
  
  如果將客戶端的負(fù)載均衡層移植到某一個(gè)中間平臺,形成三層結(jié)構(gòu),則客戶端應(yīng)用可以不需要做特殊的修改,透明的通過中間層應(yīng)用服務(wù)器將請求均衡到相應(yīng)的服務(wù)結(jié)點(diǎn)。比較常見的實(shí)現(xiàn)手段就是反向代理技術(shù)。使用反向代理服務(wù)器,可以將請求均勻轉(zhuǎn)發(fā)給多臺服務(wù)器,或者直接將緩存的數(shù)據(jù)返回客戶端,這樣的加速模式在一定程度上可以提升靜態(tài)網(wǎng)頁的訪問速度,從而達(dá)到負(fù)載均衡的目的。
  
  使用反向代理的好處是,可以將負(fù)載均衡和代理服務(wù)器的高速緩存技術(shù)結(jié)合在一起,提供有益的性能。然而它本身也存在一些問題,首先就是必須為每一種服務(wù)都專門開發(fā)一個(gè)反向代理服務(wù)器,這就不是一個(gè)輕松的任務(wù)。
  
  反向代理服務(wù)器本身雖然可以達(dá)到很高效率,但是針對每一次代理,代理服務(wù)器就必須維護(hù)兩個(gè)連接,一個(gè)對外的連接,一個(gè)對內(nèi)的連接,因此對于特別高的連接請求,代理服務(wù)器的負(fù)載也就非常之大。反向代理能夠執(zhí)行針對應(yīng)用協(xié)議而優(yōu)化的負(fù)載均衡策略,每次僅訪問最空閑的內(nèi)部服務(wù)器來提供服務(wù)。但是隨著并發(fā)連接數(shù)量的增加,代理服務(wù)器本身的負(fù)載也變得非常大,最后反向代理服務(wù)器本身會成為服務(wù)的瓶頸。
  
  ◆基于域名系統(tǒng)的負(fù)載均衡
  
  NCSA的可擴(kuò)展Web是最早使用動態(tài)DNS輪詢技術(shù)的web系統(tǒng)。在DNS中為多個(gè)地址配置同一個(gè)名字,因而查詢這個(gè)名字的客戶機(jī)將得到其中一個(gè)地址,從而使得不同的客戶訪問不同的服務(wù)器,達(dá)到負(fù)載均衡的目的。在很多知名的web站點(diǎn)都使用了這個(gè)技術(shù):包括早期的yahoo站點(diǎn)、163等。動態(tài)DNS輪詢實(shí)現(xiàn)起來簡單,無需復(fù)雜的配置和管理,一般支持bind8.2以上的類unix系統(tǒng)都能夠運(yùn)行,因此廣為使用。
  
  DNS負(fù)載均衡是一種簡單而有效的方法,但是存在不少問題。
  
  首先域名服務(wù)器無法知道服務(wù)結(jié)點(diǎn)是否有效,如果服務(wù)結(jié)點(diǎn)失效,余名系統(tǒng)依然會將域名解析到該節(jié)點(diǎn)上,造成用戶訪問失效。
  
  其次,由于DNS的數(shù)據(jù)刷新時(shí)間TTL(Time to LIVE)標(biāo)志,一旦超過這個(gè)TTL,其他DNS服務(wù)器就需要和這個(gè)服務(wù)器交互,以重新獲得地址數(shù)據(jù),就有可能獲得不同IP地址。因此為了使地址能隨機(jī)分配,就應(yīng)使TTL盡量短,不同地方的DNS服務(wù)器能更新對應(yīng)的地址,達(dá)到隨機(jī)獲得地址。然而將TTL設(shè)置得過短,將使DNS流量大增,而造成額外的網(wǎng)絡(luò)問題。
  
  最后,它不能區(qū)分服務(wù)器的差異,也不能反映服務(wù)器的當(dāng)前運(yùn)行狀態(tài)。當(dāng)使用DNS負(fù)載均衡的時(shí)候,必須盡量保證不同的客戶計(jì)算機(jī)能均勻獲得不同的地址。例如,用戶A可能只是瀏覽幾個(gè)網(wǎng)頁,而用戶B可能進(jìn)行著大量的下載,由于域名系統(tǒng)沒有合適的負(fù)載策略,僅僅是簡單的輪流均衡,很容易將用戶A的請求發(fā)往負(fù)載輕的站點(diǎn),而將B的請求發(fā)往負(fù)載已經(jīng)很重的站點(diǎn)。因此,在動態(tài)平衡特性上,動態(tài)DNS輪詢的效果并不理想。
  
  ◆高層協(xié)議內(nèi)容交換技術(shù)
  
  除了上述的幾種負(fù)載均衡方式之外,還有在協(xié)議內(nèi)部支持負(fù)載均衡能力的技術(shù),即URL交換或七層交換,提供了一種對訪問流量的高層控制方式。Web內(nèi)容交換技術(shù)檢查所有的HTTP報(bào)頭,根據(jù)報(bào)頭內(nèi)的信息來執(zhí)行負(fù)載均衡的決策。例如可以根據(jù)這些信息來確定如何為個(gè)人主頁和圖像數(shù)據(jù)等內(nèi)容提供服務(wù),常見的有HTTP協(xié)議中的重定向能力等。
  
  HTTP運(yùn)行于TCP連接的最高層。客戶端通過恒定的端口號80的TCP服務(wù)直接連接到服務(wù)器,然后通過TCP連接向服務(wù)器端發(fā)送一個(gè)HTTP請求。協(xié)議交換根據(jù)內(nèi)容策略來控制負(fù)載,而不是根據(jù)TCP端口號,所以不會造成訪問流量的滯留。
  
  由于負(fù)載平衡設(shè)備要把進(jìn)入的請求分配給多個(gè)服務(wù)器,因此,它只能在TCP連接時(shí)建立,且HTTP請求通過后才能確定如何進(jìn)行負(fù)載的平衡。當(dāng)一個(gè)網(wǎng)站的點(diǎn)擊率達(dá)到每秒上百甚至上千次時(shí),TCP連接、HTTP報(bào)頭信息的分析以及進(jìn)程的時(shí)延已經(jīng)變得很重要了,要盡一切可能提高這幾各部份的性能。
  
  在HTTP請求和報(bào)頭中有很多對負(fù)載平衡有用的信息。我們可以從這些信息中獲知客戶端所請求的URL和網(wǎng)頁,利用這個(gè)信息,負(fù)載平衡設(shè)備就可以將所有的圖像請求引導(dǎo)到一個(gè)圖像服務(wù)器,或者根據(jù)URL的數(shù)據(jù)庫查詢內(nèi)容調(diào)用CGI程序,將請求引導(dǎo)到一個(gè)專用的高性能數(shù)據(jù)庫服務(wù)器。
  
  如果網(wǎng)絡(luò)管理員熟悉內(nèi)容交換技術(shù),他可以根據(jù)HTTP報(bào)頭的cookie字段來使用Web內(nèi)容交換技術(shù)改善對特定客戶的服務(wù),如果能從HTTP請求中找到一些規(guī)律,還可以充分利用它作出各種決策。除了TCP連接表的問題外,如何查找合適的HTTP報(bào)頭信息以及作出負(fù)載平衡決策的過程,是影響Web內(nèi)容交換技術(shù)性能的重要問題。如果Web服務(wù)器已經(jīng)為圖像服務(wù)、SSL對話、數(shù)據(jù)庫事務(wù)服務(wù)之類的特殊功能進(jìn)行了優(yōu)化,那么,采用這個(gè)層次的流量控制將可以提高網(wǎng)絡(luò)的性能。
  
  ◆網(wǎng)絡(luò)接入?yún)f(xié)議交換
  
  大型的網(wǎng)絡(luò)一般都是由大量專用技術(shù)設(shè)備組成的,如包括防火墻、路由器、第3、4層交換機(jī)、負(fù)載均衡設(shè)備、緩沖服務(wù)器和Web服務(wù)器等。如何將這些技術(shù)設(shè)備有機(jī)地組合在一起,是一個(gè)直接影響到網(wǎng)絡(luò)性能的關(guān)鍵性問題。現(xiàn)在許多交換機(jī)提供第四層交換功能,對外提供一個(gè)一致的IP地址,并映射為多個(gè)內(nèi)部IP地址,對每次TCP和UDP連接請求,根據(jù)其端口號,按照即定的策略動態(tài)選擇一個(gè)內(nèi)部地址,將數(shù)據(jù)包轉(zhuǎn)發(fā)到該地址上,達(dá)到負(fù)載均衡的目的。很多硬件廠商將這種技術(shù)集成在他們的交換機(jī)中,作為他們第四層交

熱詞搜索:

上一篇:使用TCP/IP協(xié)議棧指紋進(jìn)行遠(yuǎn)程操作系統(tǒng)辨識
下一篇:使用Linux建立IP隧道

分享到: 收藏