一、 LVS簡介
LVS是Linux Virtual Server的簡稱,也就是Linux虛擬服務(wù)器, 是一個由章文嵩博士發(fā)起的自由軟件項目。現(xiàn)在LVS已經(jīng)是 Linux標(biāo)準(zhǔn)內(nèi)核的一部分,在Linux2.4內(nèi)核以前,使用LVS時必須要重新編譯內(nèi)核以支持LVS功能模塊,但是從Linux2.4內(nèi)核以后,已經(jīng)完全內(nèi)置了LVS的各個功能模塊,無需給內(nèi)核打任何補丁,可以直接使用LVS提供的各種功能。
使用LVS技術(shù)要達(dá)到的目標(biāo)是:通過LVS提供的負(fù)載均衡技術(shù)和Linux操作系統(tǒng)實現(xiàn)一個高性能、高可用的服務(wù)器群集,它具有良好可靠性、可擴展性和可操作性。從而以低廉的成本實現(xiàn)最優(yōu)的服務(wù)性能。
LVS自從1998年開始,發(fā)展到現(xiàn)在已經(jīng)是一個比較成熟的技術(shù)項目了。可以利用LVS技術(shù)實現(xiàn)高可伸縮的、高可用的網(wǎng)絡(luò)服務(wù),例如WWW服務(wù)、Cache服務(wù)、DNS服務(wù)、FTP服務(wù)、MAIL服務(wù)、視頻/音頻點播服務(wù)等等,有許多比較著名網(wǎng)站和組織都在使用LVS架設(shè)的集群系統(tǒng),例如:Linux的門戶網(wǎng)站(www.linux.com)、向RealPlayer提供音頻視頻服務(wù)而聞名的Real公司(www.real.com)、全球最大的開源網(wǎng)站(sourceforge.net)等。
二、 LVS體系結(jié)構(gòu)
使用LVS架設(shè)的服務(wù)器集群系統(tǒng)有三個部分組成:最前端的負(fù)載均衡層,用Load Balancer表示,中間的服務(wù)器群組層,用Server Array表示,最底端的數(shù)據(jù)共享存儲層,用Shared Storage表示,在用戶看來,所有的內(nèi)部應(yīng)用都是透明的,用戶只是在使用一個虛擬服務(wù)器提供的高性能服務(wù)。
下面對LVS的各個組成部分進(jìn)行詳細(xì)介紹:
l Load Balancer層:位于整個集群系統(tǒng)的最前端,有一臺或者多臺負(fù)載調(diào)度器(Director Server)組成,LVS模塊就安裝在Director Server上,而Director的主要作用類似于一個路由器,它含有完成LVS功能所設(shè)定的路由表,通過這些路由表把用戶的請求分發(fā)給Server Array層的應(yīng)用服務(wù)器(Real Server)上。同時,在Director Server上還要安裝對Real Server服務(wù)的監(jiān)控模塊Ldirectord,此模塊用于監(jiān)測各個Real Server服務(wù)的健康狀況。在Real Server不可用時把它從LVS路由表中剔除,恢復(fù)時重新加入。
l Server Array層:由一組實際運行應(yīng)用服務(wù)的機器組成,Real Server可以是WEB服務(wù)器、MAIL服務(wù)器、FTP服務(wù)器、DNS服務(wù)器、視頻服務(wù)器中的一個或者多個,每個Real Server之間通過高速的LAN或分布在各地的WAN相連接。在實際的應(yīng)用中,Director Server也可以同時兼任Real Server的角色。
l Shared Storage層:是為所有Real Server提供共享存儲空間和內(nèi)容一致性的存儲區(qū)域,在物理上,一般有磁盤陣列設(shè)備組成,為了提供內(nèi)容的一致性,一般可以通過NFS網(wǎng)絡(luò)文件系統(tǒng)共享數(shù)據(jù),但是NFS在繁忙的業(yè)務(wù)系統(tǒng)中,性能并不是很好,此時可以采用集群文件系統(tǒng),例如Red hat的GFS文件系統(tǒng),oracle提供的OCFS2文件系統(tǒng)等。
從整個LVS結(jié)構(gòu)可以看出,Director Server是整個LVS的核心,目前,用于Director Server的操作系統(tǒng)只能是Linux和FreeBSD,linux2.6內(nèi)核不用任何設(shè)置就可以支持LVS功能,而FreeBSD作為Director Server的應(yīng)用還不是很多,性能也不是很好。
對于Real Server,幾乎可以是所有的系統(tǒng)平臺,Linux、windows、Solaris、AIX、BSD系列都能很好的支持。
三、 LVS集群的特點
3.1 IP負(fù)載均衡與負(fù)載調(diào)度算法
1.IP負(fù)載均衡技術(shù)
負(fù)載均衡技術(shù)有很多實現(xiàn)方案,有基于DNS域名輪流解析的方法、有基于客戶端調(diào)度訪問的方法、有基于應(yīng)用層系統(tǒng)負(fù)載的調(diào)度方法,還有基于IP地址的調(diào)度方法,在這些負(fù)載調(diào)度算法中,執(zhí)行效率最高的是IP負(fù)載均衡技術(shù)。
LVS的IP負(fù)載均衡技術(shù)是通過IPVS模塊來實現(xiàn)的,IPVS是LVS集群系統(tǒng)的核心軟件,它的主要作用是:安裝在Director Server上,同時在Director Server上虛擬出一個IP地址,用戶必須通過這個虛擬的IP地址訪問服務(wù)。這個虛擬IP一般稱為LVS的VIP,即Virtual IP。訪問的請求首先經(jīng)過VIP到達(dá)負(fù)載調(diào)度器,然后由負(fù)載調(diào)度器從Real Server列表中選取一個服務(wù)節(jié)點響應(yīng)用戶的請求。
當(dāng)用戶的請求到達(dá)負(fù)載調(diào)度器后,調(diào)度器如何將請求發(fā)送到提供服務(wù)的Real Server節(jié)點,而Real Server節(jié)點如何返回數(shù)據(jù)給用戶,是IPVS實現(xiàn)的重點技術(shù),IPVS實現(xiàn)負(fù)載均衡機制有三種,分別是NAT、TUN和DR,詳述如下:
l VS/NAT: 即(Virtual Server via Network Address Translation)
也就是網(wǎng)絡(luò)地址翻譯技術(shù)實現(xiàn)虛擬服務(wù)器,當(dāng)用戶請求到達(dá)調(diào)度器時,調(diào)度器將請求報文的目標(biāo)地址(即虛擬IP地址)改寫成選定的Real Server地址,同時報文的目標(biāo)端口也改成選定的Real Server的相應(yīng)端口,最后將報文請求發(fā)送到選定的Real Server。在服務(wù)器端得到數(shù)據(jù)后,Real Server返回數(shù)據(jù)給用戶時,需要再次經(jīng)過負(fù)載調(diào)度器將報文的源地址和源端口改成虛擬IP地址和相應(yīng)端口,然后把數(shù)據(jù)發(fā)送給用戶,完成整個負(fù)載調(diào)度過程。
可以看出,在NAT方式下,用戶請求和響應(yīng)報文都必須經(jīng)過Director Server地址重寫,當(dāng)用戶請求越來越多時,調(diào)度器的處理能力將稱為瓶頸。
l VS/TUN :即(Virtual Server via IP Tunneling)
也就是IP隧道技術(shù)實現(xiàn)虛擬服務(wù)器。它的連接調(diào)度和管理與VS/NAT方式一樣,只是它的報文轉(zhuǎn)發(fā)方法不同,VS/TUN方式中,調(diào)度器采用IP隧道技術(shù)將用戶請求轉(zhuǎn)發(fā)到某個Real Server,而這個Real Server將直接響應(yīng)用戶的請求,不再經(jīng)過前端調(diào)度器,此外,對Real Server的地域位置沒有要求,可以和Director Server位于同一個網(wǎng)段,也可以是獨立的一個網(wǎng)絡(luò)。因此,在TUN方式中,調(diào)度器將只處理用戶的報文請求,集群系統(tǒng)的吞吐量大大提高。
l VS/DR: 即(Virtual Server via Direct Routing)
也就是用直接路由技術(shù)實現(xiàn)虛擬服務(wù)器。它的連接調(diào)度和管理與VS/NAT和VS/TUN中的一樣,但它的報文轉(zhuǎn)發(fā)方法又有不同,VS/DR通過改寫請求報文的MAC地址,將請求發(fā)送到Real Server,而Real Server將響應(yīng)直接返回給客戶,免去了VS/TUN中的IP隧道開銷。這種方式是三種負(fù)載調(diào)度機制中性能最高最好的,但是必須要求Director Server與Real Server都有一塊網(wǎng)卡連在同一物理網(wǎng)段上。
2.負(fù)載調(diào)度算法
上面我們談到,負(fù)載調(diào)度器是根據(jù)各個服務(wù)器的負(fù)載情況,動態(tài)地選擇一臺Real Server響應(yīng)用戶請求,那么動態(tài)選擇是如何實現(xiàn)呢,其實也就是我們這里要說的負(fù)載調(diào)度算法,根據(jù)不同的網(wǎng)絡(luò)服務(wù)需求和服務(wù)器配置,IPVS實現(xiàn)了如下八種負(fù)載調(diào)度算法,這里我們詳細(xì)講述最常用的四種調(diào)度算法,剩余的四種調(diào)度算法請參考其它資料。
l 輪叫調(diào)度(Round Robin)
“輪叫”調(diào)度也叫1:1調(diào)度,調(diào)度器通過“輪叫”調(diào)度算法將外部用戶請求按順序1:1的分配到集群中的每個Real Server上,這種算法平等地對待每一臺Real Server,而不管服務(wù)器上實際的負(fù)載狀況和連接狀態(tài)。
l 加權(quán)輪叫調(diào)度(Weighted Round Robin)
“加權(quán)輪叫”調(diào)度算法是根據(jù)Real Server的不同處理能力來調(diào)度訪問請求?梢詫γ颗_Real Server設(shè)置不同的調(diào)度權(quán)值,對于性能相對較好的Real Server可以設(shè)置較高的權(quán)值,而對于處理能力較弱的Real Server,可以設(shè)置較低的權(quán)值,這樣保證了處理能力強的服務(wù)器處理更多的訪問流量。充分合理的利用了服務(wù)器資源。同時,調(diào)度器還可以自動查詢Real Server的負(fù)載情況,并動態(tài)地調(diào)整其權(quán)值。
l 最少鏈接調(diào)度(Least Connections)
“最少連接”調(diào)度算法動態(tài)地將網(wǎng)絡(luò)請求調(diào)度到已建立的鏈接數(shù)最少的服務(wù)器上。如果集群系統(tǒng)的真實服務(wù)器具有相近的系統(tǒng)性能,采用“最小連接”調(diào)度算法可以較好地均衡負(fù)載。
l 加權(quán)最少鏈接調(diào)度(Weighted Least Connections)
“加權(quán)最少鏈接調(diào)度”是“最少連接調(diào)度”的超集,每個服務(wù)節(jié)點可以用相應(yīng)的權(quán)值表示其處理能力,而系統(tǒng)管理員可以動態(tài)的設(shè)置相應(yīng)的權(quán)值,缺省權(quán)值為1,加權(quán)最小連接調(diào)度在分配新連接請求時盡可能使服務(wù)節(jié)點的已建立連接數(shù)和其權(quán)值成正比。
其它四種調(diào)度算法分別為:基于局部性的最少鏈接(Locality-Based Least Connections)、帶復(fù)制的基于局部性最少鏈接(Locality-Based Least Connections with Replication)、目標(biāo)地址散列(Destination Hashing)和源地址散列(Source Hashing),對于這四種調(diào)度算法的含義,本文不再講述,如果想深入了解這其余四種調(diào)度策略的話,可以登陸LVS中文站點zh.linuxvirtualserver.org,查閱更詳細(xì)的信息。
3.2 高可用性
LVS是一個基于內(nèi)核級別的應(yīng)用軟件,因此具有很高的處理性能,用LVS構(gòu)架的負(fù)載均衡集群系統(tǒng)具有優(yōu)秀的處理能力,每個服務(wù)節(jié)點的故障不會影響整個系統(tǒng)的正常使用,同時又實現(xiàn)負(fù)載的合理均衡,使應(yīng)用具有超高負(fù)荷的服務(wù)能力,可支持上百萬個并發(fā)連接請求。如配置百兆網(wǎng)卡,采用VS/TUN或VS/DR調(diào)度技術(shù),整個集群系統(tǒng)的吞吐量可高達(dá)1Gbits/s;如配置千兆網(wǎng)卡,則系統(tǒng)的最大吞吐量可接近10Gbits/s。
3.3 高可靠性
LVS負(fù)載均衡集群軟件已經(jīng)在企業(yè)、學(xué)校等行業(yè)得到了很好的普及應(yīng)用,國內(nèi)外很多大型的、關(guān)鍵性的web站點也都采用了LVS集群軟件,所以它的可靠性在實踐中得到了很好的證實。有很多以LVS做的負(fù)載均衡系統(tǒng),運行很長時間,從未做過重新啟動。這些都說明了LVS的高穩(wěn)定性和高可靠性。
3.4 適用環(huán)境
LVS對前端Director Server目前僅支持Linux和FreeBSD系統(tǒng),但是支持大多數(shù)的TCP和UDP協(xié)議,支持TCP協(xié)議的應(yīng)用有:HTTP,HTTPS ,F(xiàn)TP,SMTP,,POP3,IMAP4,PROXY,LDAP,SSMTP等等。支持UDP協(xié)議的應(yīng)用有:DNS,NTP,ICP,視頻、音頻流播放協(xié)議等。
LVS對Real Server的操作系統(tǒng)沒有任何限制,Real Server可運行在任何支持TCP/IP的操作系統(tǒng)上,包括Linux,各種Unix(如FreeBSD、Sun Solaris、HP Unix等),Mac/OS和Windows等。
3.5 開源軟件
LVS集群軟件是按GPL(GNU Public License)許可證發(fā)行的自由軟件,因此,使用者可以得到軟件的源代碼,并且可以根據(jù)自己的需要進(jìn)行各種修改,但是修改必須是以GPL方式發(fā)行。
億恩科技地址(ADD):鄭州市黃河路129號天一大廈608室 郵編(ZIP):450008 傳真(FAX):0371-60123888
聯(lián)系:億恩小凡
QQ:89317007
電話:0371-63322206 本文出自:億恩科技【1tcdy.com】
服務(wù)器租用/服務(wù)器托管中國五強!虛擬主機域名注冊頂級提供商!15年品質(zhì)保障!--億恩科技[ENKJ.COM]
|