一
.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用於對外提供服務:兩台real serverifconfig 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
上的配置:
/*在回環裝置上繫結了乙個虛擬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...