1. 程式人生 > >LVS 的IP負載均衡技術

LVS 的IP負載均衡技術

NAT實現虛擬伺服器 (VS/NAT)

NAT的工作原理是報文頭(目標地址、源地址、目標埠)被正確改寫後,客戶相信他們連線一個IP地址,而不同IP地址的伺服器也認為他們是與客戶直接相連的。由此,可以用NAT方法將不同IP地址的並行網路服務變成一個IP上的網路虛擬服務。 VS/NAT 體系結構如下圖所示。在一組伺服器前端有一個排程器,他們通過Switch/HUB連線的。這些伺服器提供相同的網路服務、相同的內容,即不管請求被派發到哪一臺後端的realserver,執行結果都是一樣的。服務內容可以複製到每臺伺服器的本地硬碟中,也可以通過網路檔案系統(例如NFS)共享,也可以通過一個分散式的檔案系統來提供。

在這裡插入圖片描述

客戶端通過Virtual IP 訪問網路伺服器時,請求到達排程器,排程器根據連線排程演算法挑選一臺
後端的realserver,將報文的Virtual IP改為選定的readlserver的IP地址,報文的目標埠跟改為
選定readlserver的指定埠,最後將修改後的報文傳送給readlserver。同時,排程器在連線hash
表中記錄這個連結,往這個連結的下一個報文到來時,從連線hash表中可以獲得原選定的readlserver
伺服器的地址和埠,進行同樣的改寫操作,並將報文傳送給原選定readlserver。
	
當來自真實伺服器的響應報文經過排程器時,排程去將響應報文的源地址和源埠改為Virtual IP
對應的埠和地址,再把報文返回給使用者。  我們在連線上引入一個狀態機,不同的報文會使得
連線處於不同的狀態,不同的狀態有不同的超時值。在TCP連線中,根據標準的TCP有限狀態機
進行狀態轉移;在UDP中,我們只設置一個UDP狀態。不同狀態的超時值是可以設定的,在預設
狀態下,SYN狀態的超時未1min,ESTABLISHED狀態的超時值為15min,FIN的為1min;UDP狀
態超時值為5min。當連線終止或者超時,排程器會將這個連線從hash表中刪除。

這樣,客戶端只是看見了Virtual IP在提供服務,而伺服器的後端叢集對使用者來說就是透明的。對
改寫後的報文,應用增量調整checksum演算法調整TCP checksum的值,避免掃描整個報文來計算