IP負載均衡技術

IP負載均衡技術前端

 

可伸縮網絡服務的幾種結構,它們都須要一個前端的負載調度器(或者多個進行主從備份)。咱們先分析實現虛擬網絡服務的主要技術,指出IP負載均衡技術是在負載調度器的實現技術中效率最高的。在已有的IP負載均衡技術中,主要有經過網絡地址轉換(Network Address Translation)將一組服務器構成一個高性能的、高可用的虛擬服務器,咱們稱之爲VS/NAT技術(Virtual Server via Network Address Translation)。在分析VS/NAT的缺點和網絡服務的非對稱性的基礎上,咱們提出了經過IP隧道實現虛擬服務器的方法VS/TUN (Virtual Server via IP Tunneling),和經過直接路由實現虛擬服務器的方法VS/DR(Virtual Server via Direct Routing),它們能夠極大地提升系統的伸縮性。VS/NAT、VS/TUN和VS/DR技術是LVS集羣中實現的三種IP負載均衡技術node

 

http://zh.linuxvirtualserver.org/node/25linux

 

IP負載均衡技術

 

上一章節講述了可伸縮網絡服務的幾種結構,它們都須要一個前端調度器。在調度器的實現技術中,IP負載均衡技術是效率最高的。在已有的IP負載均衡技術中有經過網絡地址轉換(Network Address Translation)將一組服務器構成一個高性能的、高可用的虛擬服務器,咱們稱之爲VS/NAT技術(Virtual Server via Network Address Translation),大多數商品化的IP負載均衡調度器產品都是使用此方法,如Cisco的LocalDirector、F5的Big/IP和Alteon的ACEDirector。在分析VS/NAT的缺點和網絡服務的非對稱性的基礎上,咱們提出經過IP隧道實現虛擬服務器的方法VS/TUN(Virtual Server via IP Tunneling),和經過直接路由實現虛擬服務器的方法VS/DR(Virtual Server via Direct Routing),它們能夠極大地提升系統的伸縮性。後端

本章節將描述三種IP負載均衡技術VS/NAT、VS/TUN和VS/DR的工做原理,以及它們的優缺點。在如下描述中,咱們稱客戶的socket和服務器的socket之間的數據通信爲鏈接,不管它們是使用TCP仍是UDP協議。瀏覽器

 

 

 

可伸縮網絡服務的定義

 

可伸縮性(Scalability)是在當今計算機技術中常常用到的詞彙。對於不一樣的人,可伸縮性有不一樣的含義。 如今,咱們來定義可伸縮網絡服務的含義。安全

可伸縮網絡服務是指網絡服務能隨着用戶數目的增加而擴展其性能,如在系統中增長服務器、內存或硬盤等;整個系統很容易被擴展,無需從新設置整個系統,無需中斷服務。換句話說,系統管理員擴展系統的操做對最終用戶是透明的,他們不會知道系統的改變。服務器

可伸縮系統一般是高可用的系統。在部分硬件(如硬盤、服務器、子網絡)和部分軟件(如操做系統、服務進程)的失效狀況下,系統能夠繼續提供服務,最終用戶不會感知到整個服務的中斷,除了正在失效點上處理請求的部分用戶可能會收到服務處理失敗,須要從新提交請求。Caching和複製是創建高可用系統的經常使用技術,創建多個副本會致使如何將原件的修改傳播到多個副本上的問題。網絡

實現可伸縮網絡服務的方法通常是經過一對多的映射機制,將服務請求流分而治之(Divide and Conquer)到多個結點上處理。一對多的映射能夠在不少層次上存在,如主機名上的DNS系統、網絡層的TCP/IP、文件系統等。虛擬(Virtual)是描述一對多映射機制的詞彙,將多個實體組成一個邏輯上的、虛擬的總體。例如,虛存(Virtual Memory)是現代操做系統中最典型的一對多映射機制,虛存創建一個虛擬內存空間,將它映射到多個物理內存上。併發

 

  • 可伸縮性(Scalability),當服務的負載增加時,系統能被擴展來知足需求,且不下降服務質量。
  • 高可用性(Availability),儘管部分硬件和軟件會發生故障,整個系統的服務必須是天天24小時每星期7天可用的。
  • 可管理性(Manageability),整個系統可能在物理上很大,但應該容易管理。
  • 價格有效性(Cost-effectiveness),整個系統實現是經濟的、易支付的。

單服務器顯然不能處理不斷增加的負載。這種服務器升級方法有下列不足:一是升級過程繁瑣,機器切換會使服務暫時中斷,並形成原有計算資源的浪費;二是越往高端的服務器,所花費的代價越大;三是一旦該服務器或應用軟件失效,會致使整個服務的中斷。負載均衡

經過高性能網絡或局域網互聯的服務器集羣正成爲實現高可伸縮的、高可用網絡服務的有效結構。這種鬆耦合結構比緊耦合的多處理器系統具備更好的伸縮性和性能價格比,組成集羣的PC服務器或RISC服務器和標準網絡設備由於大規模生產,價格低,具備很高的性能價格比。可是,這裏有不少挑戰性的工做,如何在集羣系統實現並行網絡服務,它對外是透明的,它具備良好的可伸縮性和可用性。

針對上述需求,咱們給出了基於IP層和基於內容請求分發的負載平衡調度解決方法,並在Linux內核中實現了這些方法,將一組服務器構成一個實現可伸縮的、高可用網絡服務的服務器集羣,咱們稱之爲Linux虛擬服務器(Linux Virtual Server)。在LVS集羣中,使得服務器集羣的結構對客戶是透明的,客戶訪問集羣提供的網絡服務就像訪問一臺高性能、高可用的服務器同樣。客戶程序不受服務器集羣的影響不需做任何修改。系統的伸縮性經過在服務機羣中透明地加入和刪除一個節點來達到,經過檢測節點或服務進程故障和正確地重置系統達到高可用性。

 

 

 

http://zh.linuxvirtualserver.org/node/12

LVS集羣的通用結構

 

LVS集羣採用IP負載均衡技術和基於內容請求分發技術。調度器具備很好的吞吐率,將請求均衡地轉移到不一樣的服務器上執行,且調度器自動屏蔽掉服務器的故障,從而將一組服務器構成一個高性能的、高可用的虛擬服務器。

 

圖2.1:LVS集羣的體系結構

爲此,在設計時須要考慮系統的透明性、可伸縮性、高可用性和易管理性。LVS集羣的體系結構如圖2.1所示,它有三個主要組成部分:

  • 負載調度器(load balancer),它是整個集羣對外面的前端機,負責將客戶的請求發送到一組服務器上執行,而客戶認爲服務是來自一個IP地址上的。它能夠是用IP負載均衡技術的負載調度器,也能夠是基於內容請求分發的負載調度器,還能夠是二者的結合。
  • 服務器池(server pool),是一組真正執行客戶請求的服務器,執行的服務有WEB、MAIL、FTP和DNS等。
  • 後端存儲(backend storage),它爲服務器池提供一個共享的存儲區,這樣很容易使得服務器池擁有相同的內容,提供相同的服務。

調度器採用IP負載均衡技術、基於內容請求分發技術或者二者相結合。在IP負載均衡技術中,須要服務器池擁有相同的內容提供相同的服務。當客戶請求到達時,調度器只根據負載狀況從服務器池中選出一個服務器,將該請求轉發到選出的服務器,並記錄這個調度;當這個請求的其餘報文到達,也會被轉發到前面選出的服務器。在基於內容請求分發技術中,服務器能夠提供不一樣的服務,當客戶請求到達時,調度器可根據請求的內容和服務器的狀況選擇服務器執行請求。由於全部的操做都是在操做系統核心空間中將完成的,它的調度開銷很小,因此它具備很高的吞吐率。

服務器池的結點數目是可變的。當整個系統收到的負載超過目前全部結點的處理能力時,能夠在服務器池中增長服務器來知足不斷增加的請求負載。對大多數網絡服務來講,結點與結點間不存在很強的相關性,因此整個系統的性能能夠隨着服務器池的結點數目增長而線性增加。

後端存儲一般用容錯的分佈式文件系統,如AFS、GFS、Coda和Intermezzo等。分佈式文件系統爲各服務器提供共享的存儲區,它們訪問分佈式文件系統就像訪問本地文件系統同樣。同時,分佈式文件系統提供良好的伸縮性和可用性。然而,當不一樣服務器上的應用程序同時訪問分佈式文件系統上同一資源時,應用程序的訪問衝突須要消解才能使得資源處於一致狀態。這須要一個分佈式鎖管理器(Distributed Lock Manager),它多是分佈式文件系統內部提供的,也多是外部的。開發者在寫應用程序時,可使用分佈式鎖管理器來保證應用程序在不一樣結點上併發訪問的一致性。

負載調度器、服務器池和分佈式文件系統經過高速網絡相連,如100Mbps交換機、Myrinet、CompactNET和Gigabit交換機等。使用高速的網絡,主要爲避免當系統規模擴大時互聯網絡成爲瓶頸。

Graphic Monitor是爲系統管理員提供整個集羣系統的監視器,它能夠監視系統中每一個結點的情況。Graphic Monitor是基於瀏覽器的,因此不管管理員在本地仍是異地均可以監測系統的情況。爲了安全的緣由,瀏覽器要經過HTTPS(Secure HTTP)協議和身份認證後,才能進行系統監測,並進行系統的配置和管理。

相關文章
相關標籤/搜索