LVS是Linux Virtual Server的簡寫,意即Linux虛擬服務(wù)器,是一個(gè)虛擬的服務(wù)器集群系統(tǒng)。本項(xiàng)目在1998年5月由章文嵩博士成立,是中國國內(nèi)最早出現(xiàn)的自由軟件項(xiàng)目之一。
宗旨
使用集群技術(shù)和Linux操作系統(tǒng)實(shí)現(xiàn)一個(gè)高性能、高可用的服務(wù)器.
很好的可伸縮性(Scalability)
很好的可靠性(Reliability)
很好的可管理性(Manageability)。
特點(diǎn)
可伸縮網(wǎng)絡(luò)服務(wù)的幾種結(jié)構(gòu),它們都需要一個(gè)前端的負(fù)載調(diào)度器(或者多個(gè)進(jìn)行主從備份)。我們先分析實(shí)現(xiàn)虛擬網(wǎng)絡(luò)服務(wù)的主要技術(shù),指出IP負(fù)載均衡技術(shù)是在負(fù)載調(diào)度器的實(shí)現(xiàn)技術(shù)中效率最高的。在已有的IP負(fù)載均衡技術(shù)中,主要有通過網(wǎng)絡(luò)地址轉(zhuǎn)換(Network Address Translation)將一組服務(wù)器構(gòu)成一個(gè)高性能的、高可用的虛擬服務(wù)器,我們稱之為VS/NAT技術(shù)(Virtual Server via Network Address Translation)。在分析VS/NAT的缺點(diǎn)和網(wǎng)絡(luò)服務(wù)的非對稱性的基礎(chǔ)上,我們提出了通過IP隧道實(shí)現(xiàn)虛擬服務(wù)器的方法VS/TUN (Virtual Server via IP Tunneling),和通過直接路由實(shí)現(xiàn)虛擬服務(wù)器的方法VS/DR(Virtual Server via Direct Routing),它們可以極大地提高系統(tǒng)的伸縮性。VS/NAT、VS/TUN和VS/DR技術(shù)是LVS集群中實(shí)現(xiàn)的三種IP負(fù)載均衡技術(shù)。
技術(shù)
【1】技術(shù)簡介
LVS集群采用IP負(fù)載均衡技術(shù)和基于內(nèi)容請求分發(fā)技術(shù)。調(diào)度器具有很好的吞吐率,將請求均衡地轉(zhuǎn)移到不同的服務(wù)器上執(zhí)行,且調(diào)度器自動(dòng)屏蔽掉服務(wù)器的故障,從而將一組服務(wù)器構(gòu)成一個(gè)高性能的、高可用的虛擬服務(wù)器。整個(gè)服務(wù)器集群的結(jié)構(gòu)對客戶是透明的,而且無需修改客戶端和服務(wù)器端的程序。為此,在設(shè)計(jì)時(shí)需要考慮系統(tǒng)的透明性、可伸縮性、高可用性和易管理性。
【2】集群采用三層結(jié)構(gòu)
一般來說,LVS集群采用三層結(jié)構(gòu),其主要組成部分為:
A、負(fù)載調(diào)度器(load balancer),它是整個(gè)集群對外面的前端機(jī),負(fù)責(zé)將客戶的請求發(fā)送到一組服務(wù)器上執(zhí)行,而客戶認(rèn)為服務(wù)是來自一個(gè)IP地址(我們可稱之為虛擬IP地址)上的。
B、服務(wù)器池(server pool),是一組真正執(zhí)行客戶請求的服務(wù)器,執(zhí)行的服務(wù)有WEB、MAIL、斷點(diǎn)續(xù)傳和DNS等。
C、共享存儲(shared storage),它為服務(wù)器池提供一個(gè)共享的存儲區(qū),這樣很容易使得服務(wù)器池?fù)碛邢嗤膬?nèi)容,提供相同的服務(wù)。
【3】調(diào)度器
調(diào)度器是服務(wù)器集群系統(tǒng)的唯一入口點(diǎn)(Single Entry Point),它可以采用IP負(fù)載均衡技術(shù)、基于內(nèi)容請求分發(fā)技術(shù)或者兩者相結(jié)合。
在IP負(fù)載均衡技術(shù)中,需要服務(wù)器池?fù)碛邢嗤膬?nèi)容提供相同的服務(wù)。當(dāng)客戶請求到達(dá)時(shí),調(diào)度器只根據(jù)服務(wù)器負(fù)載情況和設(shè)定的調(diào)度算法從服務(wù)器池中選出一個(gè)服務(wù)器,將該請求轉(zhuǎn)發(fā)到選出的服務(wù)器,并記錄這個(gè)調(diào)度;當(dāng)這個(gè)請求的其他報(bào)文到達(dá),也會(huì)被轉(zhuǎn)發(fā)到前面選出的服務(wù)器。在基于內(nèi)容請求分發(fā)技術(shù)中,服務(wù)器可以提供不同的服務(wù),當(dāng)客戶請求到達(dá)時(shí),調(diào)度器可根據(jù)請求的內(nèi)容選擇服務(wù)器執(zhí)行請求。因?yàn)樗械牟僮鞫际窃贚inux操作系統(tǒng)核心空間中完成的,它的調(diào)度開銷很小,所以它具有很高的吞吐率。服務(wù)器池的結(jié)點(diǎn)數(shù)目是可變的。當(dāng)整個(gè)系統(tǒng)收到的負(fù)載超過目前所有結(jié)點(diǎn)的處理能力時(shí),可以在服務(wù)器池中增加服務(wù)器來滿足不斷增長的請求負(fù)載。
對大多數(shù)網(wǎng)絡(luò)服務(wù)來說,請求間不存在很強(qiáng)的相關(guān)性,請求可以在不同的節(jié)點(diǎn)上并行執(zhí)行,所以整個(gè)系統(tǒng)的性能基本上可以隨著服務(wù)器池的結(jié)點(diǎn)數(shù)目增加而線性增長。共享存儲通常是數(shù)據(jù)庫、網(wǎng)絡(luò)文件系統(tǒng)或者分布式文件系統(tǒng)。服務(wù)器結(jié)點(diǎn)需要?jiǎng)討B(tài)更新的數(shù)據(jù)一般存儲在數(shù)據(jù)庫系統(tǒng)中,同時(shí)數(shù)據(jù)庫會(huì)保證并發(fā)訪問時(shí)數(shù)據(jù)的一致性。靜態(tài)的數(shù)據(jù)可以存儲在網(wǎng)絡(luò)文件系統(tǒng)(如NFS/CIFS)中,但網(wǎng)絡(luò)文件系統(tǒng)的伸縮能力有限,一般來說,NFS/CIFS服務(wù)器只能支持3~6個(gè)繁忙的服務(wù)器結(jié)點(diǎn)。對于規(guī)模較大的集群系統(tǒng),可以考慮用分布式文件系統(tǒng),如Andrew文件系統(tǒng)、GFS、Coda和Intermezzo等。分布式文件系統(tǒng)可為各服務(wù)器提供共享的存儲區(qū),它們訪問分布式文件系統(tǒng)就像訪問本地文件系統(tǒng)一樣,同時(shí)分布式文件系統(tǒng)可提供良好的伸縮性和可用性。
【4】分布式鎖管理器
此外,當(dāng)不同服務(wù)器上的應(yīng)用程序同時(shí)讀寫訪問分布式文件系統(tǒng)上同一資源時(shí),應(yīng)用程序的訪問沖突需要消解才能使得資源處于一致狀態(tài)。這需要一個(gè)分布式鎖管理器(Distributed Lock Manager),它可能是分布式文件系統(tǒng)內(nèi)部提供的,也可能是外部的。開發(fā)者在寫應(yīng)用程序時(shí),可以使用分布式鎖管理器來保證應(yīng)用程序在不同結(jié)點(diǎn)上并發(fā)訪問的一致性。
負(fù)載調(diào)度器、服務(wù)器池和共享存儲系統(tǒng)通過高速網(wǎng)絡(luò)相連接,如100Mbps交換網(wǎng)絡(luò)、Myrinet和Gigabit網(wǎng)絡(luò)等。使用高速的網(wǎng)絡(luò),主要為避免當(dāng)系統(tǒng)規(guī)模擴(kuò)大時(shí)互聯(lián)網(wǎng)絡(luò)成為整個(gè)系統(tǒng)的瓶頸。
【5】監(jiān)視器
Graphic Monitor是為系統(tǒng)管理員提供整個(gè)集群系統(tǒng)的監(jiān)視器,它可以監(jiān)視系統(tǒng)的狀態(tài)。Graphic Monitor是基于瀏覽器的,所以無論管理員在本地還是異地都可以監(jiān)測系統(tǒng)的狀況。為了安全的原因,瀏覽器要通過HTTPS(Secure HTTP)協(xié)議和身份認(rèn)證后,才能進(jìn)行系統(tǒng)監(jiān)測,并進(jìn)行系統(tǒng)的配置和管理。
優(yōu)點(diǎn)
1、開源,免費(fèi)
2、在網(wǎng)上能找到一些相關(guān)技術(shù)資源
3、具有軟件負(fù)載均衡的一些優(yōu)點(diǎn)
缺點(diǎn)
1、最核心的就是沒有可靠的支持服務(wù),沒有人對其結(jié)果負(fù)責(zé);
2、功能比較簡單,支持復(fù)雜應(yīng)用的負(fù)載均衡能力較差,如算法較少等;
3、開啟隧道方式需重編譯內(nèi)核;
4、配置復(fù)雜;
5、主要應(yīng)用于Linux,目前沒有專門用于WINDOWS的版本,不過可以通過配置,使windows成為LVS集群中的real server(win2003、win2008中)。
參考資料 >
Linux虛擬服務(wù)器 LVS.www.oschina.net.2015-11-30