LVS簡介及使用

2022-04-03 14:04:47 字數 4561 閱讀 2574

.lvs是什麼?

lvs的英文全稱是

linux virtual server

,即linux

虛擬伺服器。它是我們國家的章文嵩博士的乙個開源專案。在

linux

記憶體2.6

中,它已經成為核心的一部分,在此之前的核心版本則需要重新編譯核心。

二.lvs

能幹什麼?

lvs主要用於多伺服器的負載均衡。它工作在網路層,可以實現高效能,高可用的伺服器集群技術。它廉價,可把許多低效能的伺服器組合在一起形成乙個超級伺服器。它易用,配置非常簡單,且有多種負載均衡的方法。它穩定可靠,即使在集群的伺服器中某台伺服器無法正常工作,也不影響整體效果。另外可擴充套件性也非常好。

三.

工作原理

如上圖,

lvs可分為三部分:

1.load balancer:這是

lvs的核心部分,它好比我們**

mvc模型的

controller

。它負責將客戶的請求按照一定的演算法分發到下一層不同的伺服器進行處理,自己本身不做具體業務的處理。另外該層還可用監控下一層的狀態,如果下一層的某台伺服器不能正常工作了,它會自動把其剔除,恢復後又可用加上。該層由一台或者幾台

director server

組成。2.

server array:該層負責具體業務。可有

web server

、mail server

、ftp server

、dns server

等組成。注意,其實上層的

director server

也可以當

real server

用的。3.

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。

六、具體配置操作

首先我們這裡有三颱機子,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上面的配置:

//首先在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

之後在其他客戶端機子上面,訪問

,則可以看到結果了。

LVS幾種模式簡介

1.nat 位址轉換技術 2.dr 直接路由模式 3.ip隧道 ip tunneling 4.fullnat模式 1.dr模式 lvs dr原理圖 實際圖 lvs的dr模式原理 1.通過更改資料報的mac位址實現資料報 的 2.所有的節點和lvs要求處於乙個區域網內 dr模式的特點 通過排程器上修改...

LVS 簡介與說明

一 ipvs的三種負載均衡技術 客戶通過virtual ip address 虛擬服務的ip位址 訪問網路服務時,請求報文到達排程器,排程器根據連線排程演算法從一組真實伺服器中選出一台伺服器,將報文的目標位址 virtual ip address改寫成選定伺服器的位址,報文的目標埠改寫成選定伺服器的...

NSUserDefaults簡介及使用

nsuserdefaults類提供了乙個與預設系統進行互動的程式設計介面。nsuserdefaults物件是用來儲存,恢復應用程式相關的偏好設定,配置資料等等。預設系統允許應用程式自定義它的行為去迎合使用者的喜好。你可以在程式執行的時候從使用者預設的資料庫中讀取程式的設定。同時nsuserdefau...