LVS是什麼及做用?

LVS的概念和重要性

LVS:linux

概念:是Linux Virtual Server的簡寫,意即Linux虛擬服務器,是一個虛擬的服務器集羣系統web

做用:舉例算法

  像有三個小區,可是工做的時間和休息的時間不同,第一個是白天工做,一個是晚上工做,一個是比較散時間,服務器

  若是沒有負載均衡lvs的話,那麼這三個小區,都是隻是能用本身的那臺服務器,網絡

僅僅的用一臺服務器的帶寬1M,這樣的話,三個小區就會總會有一段時間會沒有人用,而其餘的小區又只能限制在一臺上負載均衡

(圖示:大圈表明小區集體,小圈表明服務器,1M表明一兆的帶寬)post

 

 

使用lvs以後的形式圖示性能

大圈:人羣網站

中間小圈:負載均衡服務器url

右邊小圈:服務器realserver

 

這樣就會均衡不一樣時段的可使用的服務器的數量

 

 

一.LVS是什麼?

LVS的英文全稱是Linux Virtual Server,即Linux虛擬服務器。

它是咱們國家的章文嵩博士的一個開源項目。在linux內存2.6中,它已經成爲內核的一部分,在此以前的內核版本則須要從新編譯內核。

 

二.LVS能幹什麼?

LVS主要用於多服務器的負載均衡。它工做在網絡層,能夠實現高性能,高可用的服務器集羣技術。

它廉價,可把許多低性能的服務器組合在一塊兒造成一個超級服務器。

它易用,配置很是簡單,且有多種負載均衡的方法。它穩定可靠,即便在集羣的服務器中某臺服務器沒法正常工做,也不影響總體效果。

另外可擴展性也很是好。

 

三.工做原理

 

 

 

 1.Load Balancer:這是LVS的核心部分,它比如咱們網站MVC模型的Controller。

它負責將客戶的請求按照必定的算法分發到下一層不一樣的服務器進行處理,本身自己不作具體業務的處理。

另外該層還可用監控下一層的狀態,若是下一層的某臺服務器不能正常工做了,它會自動把其剔除,恢復後又可用加上。

該層由一臺或者幾臺Director Server組成。

 

Server Array:該層負責具體業務。

可有WEB Server、mail Server、FTP Server、DNS Server等組成。

注意,其實上層的Director Server也能夠當Real server用的。

 

Shared Storage:主要是提升上一層數據和爲上一層保持數據一致。

 

四.負載均衡機制

前面咱們說了LVS是工做在網絡層。相對於其它負載均衡的解決辦法,好比DNS域名輪流解析、應用層負載的調度、客戶端的調度等,它的效率是很是高的。LVS的經過控制IP來實現負載均衡。IPVS是其具體的實現模塊。IPVS的主要做用:安裝在Director Server上面,在Director Server虛擬一個對外訪問的IP(VIP)。用戶訪問VIP,到達Director Server,Director Server根據必定的規則選擇一個Real Server,處理完成後而後返回給客戶端數據。這些步驟產生了一些具體的問題,好比如何選擇具體的Real Server,Real Server若是返回給客戶端數據等等。IPVS爲此有三種機制:

 

1.VS/NAT(Virtual Server via Network Address Translation),

即網絡地址翻轉技術實現虛擬服務器。當請求來到時,Diretor server上處理的程序將數據報文中的目標地址(即虛擬IP地址)改爲具體的某臺Real Server,端口也改爲Real Server的端口,而後把報文發給Real Server。

Real Server處理完數據後,須要返回給Diretor Server,而後Diretor server將數據包中的源地址和源端口改爲VIP的地址和端口,最後把數據發送出去。

由此能夠看出,用戶的請求和返回都要通過Diretor Server,若是數據過多,Diretor Server確定會不堪重負。

 

2.VS/TUN(Virtual Server via IP Tunneling),即IP隧道技術實現虛擬服務器。

它跟VS/NAT基本同樣,可是Real server是直接返回數據給客戶端,不須要通過Diretor server,這大大下降了Diretor server的壓力。

 

3.VS/DR(Virtual Server via Direct Routing),即用直接路由技術實現虛擬服務器。

跟前面兩種方式,它的報文轉發方法有所不一樣,VS/DR經過改寫請求報文的MAC地址,

將請求發送到Real Server,而Real Server將響應直接返回給客戶,免去了VS/TUN中的IP隧道開銷。

這種方式是三種負載調度機制中性能最高最好的,可是必需要求Director Server與Real Server都有一塊網卡連在同一物理網段上。


五.負載調度算法
  前面咱們都知道Director Server要選擇不一樣的Real server,那麼它具體的若是選擇Real Server以達到負載均衡的呢,

IPVS實現了八種調度方法,具體算法能夠查看官網或者百度,這裏就不一一列出了。官網:www.linuxvirtualserver.org。

 

6、具體配置操做

首先咱們這裏有三臺機子,IP分別是192.168.132.30(Diretor server),192.168.132.64(Real server 1),

192.168.132.68(real server 2)。在real server 1和2上面,已經配置好了web服務,

而且咱們假設還有一個對外訪問的虛擬IP是192.168.132.254(VIP)。另外在Diretor server上面已經安裝好了ipvsadm。
下面咱們VS/DR介紹詳細的配置過程。
Diretor server上面的配置:

 

Diretor server上面的配置: //首先在Director Server上綁定一個虛擬IP(也叫VIP),此IP用於對外提供服務: Ifconfig eth0:0 192.168.132.254 broadcast 192.168.132.254 netmask 255.255.255.255 up //給設備eth0:0指定一條路由 route add -host 192.168.132.254 dev eth0:0 //啓用系統的包轉發功能 echo "1">/proc/sys/net/ipv4/ip_forward //清楚ipvsadm之前的設置 ipvsadm -C //添加一個新的虛擬IP記錄192.168.132.254,其持續服務之間是120秒 ipvsadm -A -t 192.168.132.254:80 -s rr -p 120
 
//在新增的虛擬IP記錄中新增兩天real server記錄,-g即爲使用VS/DR模式 ipvsadm -a -t 192.168.132.254:80 -r 192.168.132.64:80 -g ipvsadm -a -t 192.168.132.254:80 -r 192.168.132.68:80 -g //啓用LVS服務 ipvsadm 兩臺real server上的配置: /*在迴環設備上綁定了一個虛擬IP地址,並設定其子網掩碼爲255.255.255.255,與Director Server上的虛擬IP保持互通*/ ifconfig lo:0 192.168.132.254 broadcast 192.168.132.254 netmask 255.255.255.255 up route add -host 192.168.132.254 dev lo:0 //禁用本機的ARP請求echo "1" >/proc/sys/net/ipv4/conf/lo/arp_ignore echo "1" >/proc/sys/net/ipv4/conf/all/arp_ignore echo "2" >/proc/sys/net/ipv4/conf/lo/arp_announce echo "2" >/proc/sys/net/ipv4/conf/all/arp_announce

以後在其餘客戶端機子上面,訪問http://192.168.132.254/,則能夠看到結果了。

最後我把這個寫出了SHELL腳本,能夠下載使用。   

相關文章
相關標籤/搜索