歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux綜合 >> Linux資訊 >> 更多Linux

中軟Linux負載均衡集群系統解決方案

一、Linux虛擬服務器簡介

基於中軟Linux的虛擬服務器(Linux Virtual Server,即LVS)是一個具有高可用性特點的負載均衡集群系統。該系統可以提供與服務器節點的數量、性能成正比的負載能力,有效提高服務的吞吐量、可靠性、冗余度、適應性,性能價格比高。同時,LVS也是利用低端設備實現高端服務器性能的有效途徑。中軟Linux虛擬服務器(Linux Virtual Server,即LVS)是建立在一個主控服務器(Director)及若干真實服務器(real-server)所組成的集群之上。real- server負責實際提供服務,主控服務器根據指定的調度算法對real-server進行控制。而集群的結構對於用戶來說是透明的,客戶端只與單個的 IP(集群系統的虛擬IP)進行通信,也就是說從客戶端的視角來看,這裡只存在單個服務器。Real-server可以提供眾多服務,如 FTP, http, dns, telnet, nntp, smtp 等。主控服務器負責對Real-Server進行控制。客戶端在向LVS發出服務請求時,Director會通過特定的調度算法來指定由某個Real- Server來應答請求,而客戶端只與Load Balancer的IP(即虛擬IP,VIP)進行通信。二、優點*提高吞吐量:為獲得更高的吞吐量,在LVS中增加real-servers,其開銷只是線性增長;而如果我們選擇更換一台更高性能的服務器來獲得相當的吞吐量,其開銷要大得多,而且被替換掉的舊服務器會造成資源的浪費。*冗余:如果LVS中某real-server由於需要升級或其它原因而停止服務,其退出以及恢復工作,並不會造成整個LVS對客戶端服務的中斷。*適應性:不管是需要吞吐量逐漸地變化(因日常事務量變化),還是快速地變化(因突發事務量變化),服務器數量的增減對於客戶端都是透明的。三、結構圖 傳統的“客戶端/服務器”的關系在LVS中仍舊適用,原因在於:*所有服務器的IP地址都映射為一個IP(即VIP),客戶端只能看見此IP地址*所有服務器都認為它與客戶端是直接聯系的。上圖一個LVS的基礎設置四、基本原理及功能事實上,director的主要作用類似於一個路由器,但它含有為完成LVS功能所設定的路由表。這些路由表允許director把屬於LVS設定服務的包轉發到real-servers。如果http(端口80)是LVS設定服務,那麼這些包都會被director轉發,而director並不監聽 VIP:80。director使用三種不同的轉發方法1、VS-NAT:基於網絡地址轉換(network address translation ,NAT)2、VS-DR :直接路由(direct routing,DR),包上的MAC地址被更改,然後被轉發到real-server3、VS-Tun :隧道(tunnelling) ,包被IPIP封裝,然後被轉發到real-server。VS-NAT方式實現較為容易,只需要一個功能tcpip棧,缺點在於吞吐量不夠大,而且支持的real-server數有限。而VS-DR方式則吞吐量較大,並支持大量的real-server。VS-TUN方式的特點和VS-DR相似,不過主要用於real-server分布在因特網之上的情況, real-servers對於director可以是遠程的,real-servers之間可以處於不同網段。不過,VS-DR和VS-TUN轉發方式需要對real-server的ifconfig和路由表進行修改。LVS可以提供幾乎所有的服務(單端口和2端口服務),除了VS-DR和VS-Tun不可以提供從real-servers進行初始化連接的服務(有identd,rsh)。Real-servers可以是相同的,提供相同的服務(如http ,ftp),文件系統保持內容上的一致,這種類型的LVS用來提高可服務客戶端數量。Real-server也可以不同,有各自不同的服務或操作系統。五、VS-NAT(基於網絡地址轉換,network address translation ,NAT)VS-NAT是LVS最基本的方法,如果想要設置一個用於測試的LVS,這是一個最簡單的方法。當客戶發出請求,director會將接受到的包的目標地址重寫為某個real-server,並將其轉發到real-server。Real-server的回復會發到director,director將回復包的源地址改寫為VIP不像VS-DR和VS-TUN,real-server只需要一個功能tcpip棧。Real-server可以是任意操作系統,在real-server上也不必做什麼配置修改(除了在路由表中,需要把real-server的默認網關設為director)。下圖為VS-NAT方式的拓補和工作流程示意圖。 六、VS-DR(直接路由,direct routing,DR) Director接到來自client的請求包後,根據調度算法選擇一個real-server,解析出此real-server的MAC地址,並且向此MAC發送包含一個IP datagram的鏈路層包。Real-server收到包後,恢復IP datagram,查找路由表後發現這個VIP就在本地(設備lo:0,non-arp),移交給端口監聽器。因為Real-server收到從CIP- >VIP的包,構造回復包時就是VIP->CIP。Real-server查找路由表,並通過到client的缺省gateway發送回復。回復不經過director。在real-server上所需做的工作就是配置一個non-arping的lo:0設備。並且服務需要監聽VIP的相應端口。VS-DR方式吞吐量較大,支持的real-server數量較多。七、VS-Tun(隧道,tunnelling)這種方式是基於VS-DR方式的,不同的只是director將包IPIP封裝,然後轉發到real-server。VS-TUN的real- servers相對於director可以遠程;而且每個real-server都可以在單獨的網絡上,但需要在路由器上做工作,允許源地址為VIP的輸出包。配置方法和要求與VS-DR方式類似。只是需要將lo:0設備換為tunl0設備,其對應模塊為ipip。




Copyright © Linux教程網 All Rights Reserved