一、 集群(Cluster)和負載均衡(Load Balance) 的概念 2
1. 集群(Cluster): 2
2. 負載均衡(Load Balance): 2
3. 特點: 2
二、 LVS系統結構與特點 3
1. Linux Virtual Server: 3
2. 體系結構: 3
3. LVS的三種模式工作原理和優缺點: 3
三、 安裝配置LVS 4
1. 安裝前準備: 4
2. 理解LVS中的相關一些術語 4
3. 配置實例 5
3.1. 需要的軟體包和包的安裝 5
3.2. real server群: 5
3.3. virtual server: 6
3.4. 備援主機的設定(HA) 6
四、 LVS測試 8
五、 小結 9
六、 What is virtual server 圖示(LVS/NAT)? 10
YouRong Sun Friday, April 12, 2002
集群(Cluster)和負載均衡(Load Balance) 的概念
1. 集群(Cluster):是一組獨立的計算機系統構成一個松耦合的多處理器系統,它們之間通過網絡實現進程間的通信。應用程序可以通過網絡共享內存進行消息傳送,實現分布式計算機。
2. 負載均衡(Load Balance):先得從集群講起,集群就是一組連在一起的計算機,從外部看它是一個系統,各節點可以是不同的操作系統或不同硬件構成的計算機。如一個提供Web服務的集群,對外界來看是一個大Web服務器。不過集群的節點也可以單獨提供服務。
3. 特點:在現有網絡結構之上,負載均衡提供了一種廉價有效的方法擴展服務器帶寬和增加吞吐量,加強網絡數據處理能力,提高網絡的靈活性和可用性。集群系統(Cluster)主要解決下面幾個問題:
高可靠性(HA)。利用集群管理軟件,當主服務器故障時,備份服務器能夠自動接管主服務器的工作,並及時切換過去,以實現對用戶的不間斷服務。
高性能計算(HP)。即充分利用集群中的每一台計算機的資源,實現復雜運算的並行處理,通常用於科學計算領域,比如基因分析,化學分析等。
負載平衡。即把負載壓力根據某種算法合理分配到集群中的每一台計算機上,以減輕主服務器的壓力,降低對主服務器的硬件和軟件要求。
LVS系統結構與特點
1. Linux Virtual Server:,簡稱LVS。是由中國一個Linux程序員章文嵩博士發起和領導的優秀的基於Linux系統的服務器集群解決方案,其實現目標是創建一個具有良好的擴展性、高可靠性、高性能和高可用性的。許多商業的集群產品,比如RedHat的Piranha,Turbo Linux公司的Turbo Cluster等,都是基於LVS的核心代碼的。請參考http://www.linuxvirtualserver.org
2. 體系結構:使用LVS架設的服務器集群系統從體系結構上看是透明的,最終用戶只感覺到一個虛擬服務器.物理服務器之間可以通過高速的LAN或分布在各地的WAN相連。最前端是負載均衡器,它負責將各種服務請求分發給後面的物理服務器,讓整個集群表現得象一個服務於同一IP地址的虛擬服務器。
請參考附件中的圖示
3. LVS的三種模式工作原理和優缺點: Linux Virtual Server的主要是在負載均衡器上實現的,負載均衡器是一台加了LVS Patch的2.2.x版內核的Linux系統。LVS Patch可以通過重新編譯內核的方法加入內核,也可以當作一個動態的模塊插入現在的內核中。
負載均衡器可以運行在以下三種模式下中的一種或幾種:
Virtual Server via NAT(VS-NAT):用地址翻譯實現虛擬服務器.地址轉換器有能被外界訪問到的合法IP地址,它修改來自專有網絡的流出包的地址,外界看起來包是來自地址轉換器本身,當外界包送到轉換器時,它能判斷出應該將包送到內部網的哪個節點。優點是節省IP地址,能對內部進行偽裝;缺點是效率低,因為返回給請求方的流量經過轉換器。
Virtual Server via IP Tunneling (VS-TUN):用IP隧道技術實現虛擬服務器.這種方式是在集群的節點不在同一個網段時可用的轉發機制,是將IP包封裝在其他網絡流量中的方法,為了安全的考慮,應該使用隧道技術中的VPN,也可使用租用專線。 集群所能提供的服務是基於TCP/IP的Web服務、Mail服務、News服務、DNS服務、Proxy服務器等等.
Virtual Server via Direct Routing(VS-DR):用直接路由技術實現虛擬服務器。當參與集群的計算機和作為控制管理的計算機在同一個網段時可以用此法,控制管理的計算機接收到請求包時直接送到參與集群的節點。優點是返回給客戶的流量不經過控制主機,速度快開銷少。
VS-NAT VS-TUN VS-DR
Server any tunneling non-arp device
server network private LAN/WAN LAN
server number low (10~20) high high
server gateway load balancer own router own router
安裝配置LVS
經過一個星期的調試,成功實現LVS/NAT 模式下的HTTP/Telnet 等的服務,所以下面具體實現步驟都是以LVS/NAT的實現為目的.如下:
1. 安裝前準備:
首先說明,雖然本文的測試環境中用的是3台相同配置的服務器,但LVS並不要求集群中的服務器規格劃一,相反,可以根據服務器的不同配置和負載情況,調整負載分配策略,充分利用集群環境中的每一台服務器。如下表:
Srv Eth0 Eth0:0 Eth1 Eth1:0
Vs1 10.134.8.55 10.134.8.64 192.168.10.1 192.168.10.254
Vsbak 10.134.8.85 192.168.10.10
Rs1 192.168.10.11
Rs2 192.168.10.12
其中,10.134.8.64是允許用戶訪問的IP。
這4台服務器中,vs1作為虛擬服務器(即負載平衡服務器),負責將用戶的訪問請求轉發到集群內部的rs1,rs2,然後由rs1,rs2分別處理。 client為客戶端測試機器,可以為任意操作系統。
所有OS為redhat6.2,其中VS1 and VSBak 的核心是2.2.19, 而且patch 過ipvs的包, 所有real server的Subnet mask 都是24位, Vs1 and Vsbak 的10.134.8 網段是21 位.
2. 理解LVS中的相關一些術語
2.1. ipvsadm :ipvsadm是LVS的一個用戶界面。在負載均衡器上編譯、安裝ipvsadm。
2.2. 調度算法: LVS的負載均衡器有以下幾種調度規則:Round-robin,簡稱rr,weighted Round-robin,簡稱wrr,每個新的連接被輪流指派到每個物理服務器。Least-connected,簡稱lc,weighted Least-connected,簡稱wlc,每個新的連接被分配到負擔最小的服務器。
2.3. Persistent client connection,簡稱pcc,(持續的客戶端連接,內核2.2.10版以後才支持)。所有來自同一個IP的客戶端將一直連接到同一個物理服務器。超時時間被設置為360秒。Pcc是為https和cookie服務設置的。在這處調度規則下,第一次連接後,所有以後來自相同客戶端的連接(包括來自其它端口)將會發送到相同的物理服務器。但這也會帶來一個問題,因為大約有25%的Internet可能具有相同的IP地址。
2.4. Persistent port connection調度算法 在內核2.2.12版以後,pcc功能已從一個調度算法(你可以選擇不同的調度算法:rr、wrr、lc、wlc、pcc)演變成為了一個開關選項(你可以讓rr、 wrr、lc、wlc具備pcc的屬性)。在設置時,如果你沒有選擇調度算法時,ipvsadm將默認為wlc算法。 在Persistent port connection(ppc)算法下,連接的指派是基於端口的,例如,來自相同終端的80端口與443端口的請求,將被分配到不同的物理服務器上。不幸的是,如果你需要在的網站上采用cookies時將出問題,因為http是使用80端口,然而cookies需要使用443端口,這種方法下,很可能會出現cookies不正常的情況。
2.5. Load Node Feature of Linux Director:讓Load balancer 也可以處理users 請求。
2.6. IPVS connection synchronization。
2.7. ARP Problem of LVS/TUN and LVS/DR:這個問題只在LVS/DR,LVS/TUN 時存在。
3. 配置實例
3.1. 需要的軟體包和包的安裝
I. piranha-gui-0.4.12-2*.rpm (GUI接口cluster設定工具)
II. piranha-0.4.12-2*.rpm
III. ipchains-1.3.9-6lp*.rpm (架設NAT)
取得套件,或mount到光盤,進入RPMS目錄進行安裝
# rpm –Uvh piranha*
# rpm –Uvh ipchains*
3.2. real server群:
真正提供服務的server(如web server),在NAT型式下是以內部虛擬網域的形式,設定如同一般虛擬網域中clinet端使用網域:192.168.10.0/24 架設方式同一般使用虛擬IP之局域網絡
設網卡IP
real1 :192.168.10.11/24
real2 :192.168.10.12/24
每台server均將default gateway指向192.168.10.254 192.168.10.254為該網域唯一對外之信道,設定在virtual server上,使該網域進出均需通過virtual server 。
每台server均開啟httpd功能。
每台server均開啟httpd功能供web server服務,可以在各real server上放置不同內容之網頁,可由浏覽器觀察其對各real server讀取網頁的情形。
每台server都開啟rstatd,sshd,rwalld,ruser,rsh,rsync,並且從Vserver上面拿到相同的lvs.conf文件。
3.3. virtual server:
作用在導引封包的對外主機,專職負責封包的轉送,不提供服務,但因為在NAT型式下必須對進出封包進行改寫,所以負擔亦重:
IP設置:
對外eth0:IP:10.134.8.55 eth0:0 :10.134.8.64 (VIP,user's Access IP)
對內eth1:192.168.10.1 eth1:0 :192.168.10.254 (NAT Router,real srv's gateway)
NAT形式下僅virtual server有真實IP,Real serv