在網絡服務中,一端是客戶程序,另一端是服務程序,在中間可能有代理程序,可以在不同的層次上實現多臺服務器的負載均衡。
?
1、?
解決網絡服務性能問題的四種集群方法
?
1.1???
基于
RR-DNS
(
Round-Robin Domain Name System
)
?
服務器組擁有相同的域名,
RR-DNS
服務器會把域名輪流解析到這組服務器的不同
IP
地址,從而將訪問負載分到各臺服務器上。
?
1.2???
基于客戶端
?
每個客戶程序都具有一定的服務器集群的知識,進而把以負載均衡的方式將請求發到不同的服務器。
?
1.3???
基于應用層的負載均衡調度
?
多臺服務器通過高速的互聯網絡連接成一個集群系統,在前端有一個基于應用層的負載調度器。當用戶訪問請求到達調度器時,請求會提交給作負載均衡調度的應用程序,分析請求,根據各個服務器的負載情況,選出一臺服務器,重寫請求并向選出的服務器訪問,取得結果后,再返回給用戶。
?
1.4???
基于
IP
層的負載均衡調度
?
用戶通過虛擬
IP
地址(
Virtual IP Address
)訪問服務時,訪問請求的報文會到達負載調度器,由它進行負載均衡調度,從一組真實服務器選出一個,將報文的目標地址
Virtual IP Address
改寫成選定服務器的地址,報文的目標端口改寫成選定服務器的相應端口,最后將報文發送給選定的服務器。真實服務器的回應報文經過負載調度器時,將報文的源地址和源端口改為
Virtual IP Address
和相應的端口,再把報文發給用戶。
?
2、?
LVS
集群中實現的三種
IP
負載均衡技術
?
2.1 VS/NAT
(
Virtual Server via Network Address Translation
):通過網絡地址轉換(
Network Address Translation
)將內部地址轉化為
Internets
上可用的外部地址。
?
2.2 VS/TUN
(
Virtual Server via IP Tunneling
):通過
IP
隧道實現虛擬服務器,將請求報文封裝動態地轉發給后端服務器,響應報文能從后端服務器直接返回給客戶。
?
因請求報文較短而響應報文往往包含大量的數據,可以大大降低負載均衡器的壓力。
所有的服務器必須支持“IP Tunneling”或者“IP Encapsulation”協議。
?
IP
隧道(
IP tunneling
)是將一個
IP
報文封裝在另一個
IP
報文的技術,這可以使得目標為一個
IP
地址的數據報文能被封裝和轉發到另一個
IP
地址。
IP
隧道技術亦稱為
IP
封裝技術(
IP encapsulation
)。
IP
隧道主要用于移動主機和虛擬私有網絡(
Virtual Private Network
),在其中隧道都是靜態建立的,隧道一端有一個
IP
地址,另一端也有唯一的
IP
地址。
?
2.3 VS/DR
(
Virtual Server via Direct Routing
):通過直接路由實現虛擬服務器。
?
與
VS/TUN
方法相同,
VS/DR
利用大多數
Internet
服務的非對稱特點,負載調度器中只負責調度請求,而服務器直接將響應返回給客戶,可以極大地提高整個集群系統的吞吐量。
?
調度器和服務器組都必須在物理上有一個網卡通過不分斷的局域網相連,如通過高速的交換機或者
HUB
相連,
服務器網絡設備(或者設備別名)不作ARP響應,或者能將報文重定向(Redirect)到本地的Socket端口上。
?
2.4 數據比較
? | VS/NAT | VS/TUN | VS/DR |
Server | any | Tunneling | Non-arp device |
server network | private | LAN/WAN | LAN |
server number | low (10~20) | High (100) | High (100) |
server gateway | load balancer | own router | Own router |
資源:
Linux Virtual Server
http://www.linuxvirtualserver.org/LVS中文站點?????????
http://zh.linuxvirtualserver.org/
posted on 2006-08-14 14:46
Xu Jianxiang 閱讀(742)
評論(0) 編輯 收藏 所屬分類:
Server Side