一、LVS概念 LVS是Linux Virtual Server的簡(jiǎn)稱,也就是Linux虛擬服務(wù)器。這是一個(gè)由章文嵩博士發(fā)起的一個(gè)開源項(xiàng)目,它的官方網(wǎng)站是http://www./.現(xiàn)在LVS已經(jīng)是Linux內(nèi)核標(biāo)準(zhǔn)的一部分。 使用LVS可以達(dá)到的技術(shù)目標(biāo)是:通過LVS達(dá)到的負(fù)載均衡技術(shù)和Linux操作系統(tǒng)實(shí)現(xiàn)一個(gè)高性能高可用的Linux服務(wù)器群集,它具有良好的可靠性,可拓展性和可操作性。從而以低廉的成本實(shí)現(xiàn)最優(yōu)的性能。 LVS從1998年開始,發(fā)展到現(xiàn)在已經(jīng)是一個(gè)比較成熟的項(xiàng)目了。利用LVS技術(shù)可以實(shí)現(xiàn)高性能,高可壓縮的網(wǎng)路服務(wù),例如WWW服務(wù),F(xiàn)TP服務(wù),MAIL服務(wù)等。比較著名的就是www.linux.com以及www.real.com. 二、LVS的體系架構(gòu) 使 用LVS架設(shè)的服務(wù)器集群系統(tǒng)有三個(gè)部分組成:最前端的負(fù)載均衡層(Loader Balancer),中間的服務(wù)器群組層,用Server Array表示,最底層的數(shù)據(jù)共享存儲(chǔ)層,用Shared Storage表示。在用戶看來所有的應(yīng)用都是透明的,用戶只是在使用一個(gè)虛擬服務(wù)器提供的高性能服務(wù)。 LVS的體系架構(gòu)如圖: LVS的各個(gè)層次的詳細(xì)介紹: Load Balancer層:位于整個(gè)集群系統(tǒng)的最前端,有一臺(tái)或者多臺(tái)負(fù)載調(diào)度器(Director Server)組成,LVS模塊就安裝在Director Server上,而Director的主要作用類似于一個(gè)路由器,它含有完成LVS功能所設(shè)定的路由表,通過這些路由表把用戶的請(qǐng)求分發(fā)給Server Array層的應(yīng)用服務(wù)器(Real Server)上。同時(shí),在Director Server上還要安裝對(duì)Real Server服務(wù)的監(jiān)控模塊Ldirectord,此模塊用于監(jiān)測(cè)各個(gè)Real Server服務(wù)的健康狀況。在Real Server不可用時(shí)把它從LVS路由表中剔除,恢復(fù)時(shí)重新加入。 Server Array層:由一組實(shí)際運(yùn)行應(yīng)用服務(wù)的機(jī)器組成,Real Server可以是WEB服務(wù)器、MAIL服務(wù)器、FTP服務(wù)器、DNS服務(wù)器、視頻服務(wù)器中的一個(gè)或者多個(gè),每個(gè)Real Server之間通過高速的LAN或分布在各地的WAN相連接。在實(shí)際的應(yīng)用中,Director Server也可以同時(shí)兼任Real Server的角色。 Shared Storage層:是為所有Real Server提供共享存儲(chǔ)空間和內(nèi)容一致性的存儲(chǔ)區(qū)域,在物理上,一般有磁盤陣列設(shè)備組成,為了提供內(nèi)容的一致性,一般可以通過NFS網(wǎng)絡(luò)文件系統(tǒng)共享數(shù) 據(jù),但是NFS在繁忙的業(yè)務(wù)系統(tǒng)中,性能并不是很好,此時(shí)可以采用集群文件系統(tǒng),例如Red hat的GFS文件系統(tǒng),oracle提供的OCFS2文件系統(tǒng)等。 從整個(gè)LVS結(jié)構(gòu)可以看出,Director Server是整個(gè)LVS的核心,目前,用于Director Server的操作系統(tǒng)只能是Linux和FreeBSD,linux2.6內(nèi)核不用任何設(shè)置就可以支持LVS功能,而FreeBSD作為 Director Server的應(yīng)用還不是很多,性能也不是很好。對(duì)于Real Server,幾乎可以是所有的系統(tǒng)平臺(tái),Linux、windows、Solaris、AIX、BSD系列都能很好的支持。
三、 LVS集群的特點(diǎn) 3.1 IP負(fù)載均衡與負(fù)載調(diào)度算法 1.IP負(fù)載均衡技術(shù) 負(fù)載均衡技術(shù)有很多實(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模塊來實(shí)現(xiàn)的,IPVS是LVS集群系統(tǒng)的核心軟件,它的主要作用是:安裝在Director Server上,同時(shí)在Director Server上虛擬出一個(gè)IP地址,用戶必須通過這個(gè)虛擬的IP地址訪問服務(wù)。這個(gè)虛擬IP一般稱為L(zhǎng)VS的VIP,即Virtual IP。訪問的請(qǐng)求首先經(jīng)過VIP到達(dá)負(fù)載調(diào)度器,然后由負(fù)載調(diào)度器從Real Server列表中選取一個(gè)服務(wù)節(jié)點(diǎn)響應(yīng)用戶的請(qǐng)求。 當(dāng)用戶的請(qǐng)求到達(dá)負(fù)載調(diào)度器后,調(diào)度器如何將請(qǐng)求發(fā)送到提供服務(wù)的Real Server節(jié)點(diǎn),而Real Server節(jié)點(diǎn)如何返回?cái)?shù)據(jù)給用戶,是IPVS實(shí)現(xiàn)的重點(diǎn)技術(shù),IPVS實(shí)現(xiàn)負(fù)載均衡機(jī)制有三種,分別是NAT、TUN和DR,詳述如下: VS/NAT: 即(Virtual Server via Network Address Translation) VS/TUN :即(Virtual Server via IP Tunneling) VS/DR: 即(Virtual Server via Direct Routing) 2.負(fù)載調(diào)度算法 上面我們談到,負(fù)載調(diào)度器是根據(jù)各 個(gè)服務(wù)器的負(fù)載情況,動(dòng)態(tài)地選擇一臺(tái)Real Server響應(yīng)用戶請(qǐng)求,那么動(dòng)態(tài)選擇是如何實(shí)現(xiàn)呢,其實(shí)也就是我們這里要說的負(fù)載調(diào)度算法,根據(jù)不同的網(wǎng)絡(luò)服務(wù)需求和服務(wù)器配置,IPVS實(shí)現(xiàn)了如下 八種負(fù)載調(diào)度算法,這里我們?cè)敿?xì)講述最常用的四種調(diào)度算法,剩余的四種調(diào)度算法請(qǐng)參考其它資料。 輪叫調(diào)度(Round Robin) “輪叫”調(diào)度也叫1:1調(diào)度,調(diào)度器通過“輪叫”調(diào)度算法將外部用戶請(qǐng)求按順序1:1的分配到集群中的每個(gè)Real Server上,這種算法平等地對(duì)待每一臺(tái)Real Server,而不管服務(wù)器上實(shí)際的負(fù)載狀況和連接狀態(tài)。 加權(quán)輪叫調(diào)度(Weighted Round Robin) “加 權(quán)輪叫”調(diào)度算法是根據(jù)Real Server的不同處理能力來調(diào)度訪問請(qǐng)求??梢詫?duì)每臺(tái)Real Server設(shè)置不同的調(diào)度權(quán)值,對(duì)于性能相對(duì)較好的Real Server可以設(shè)置較高的權(quán)值,而對(duì)于處理能力較弱的Real Server,可以設(shè)置較低的權(quán)值,這樣保證了處理能力強(qiáng)的服務(wù)器處理更多的訪問流量。充分合理的利用了服務(wù)器資源。同時(shí),調(diào)度器還可以自動(dòng)查詢Real Server的負(fù)載情況,并動(dòng)態(tài)地調(diào)整其權(quán)值。 最少鏈接調(diào)度(Least Connections) “最少連接”調(diào)度算法動(dòng)態(tài)地將網(wǎng)絡(luò)請(qǐng)求調(diào)度到已建立的鏈接數(shù)最少的服務(wù)器上。如果集群系統(tǒng)的真實(shí)服務(wù)器具有相近的系統(tǒng)性能,采用“最小連接”調(diào)度算法可以較好地均衡負(fù)載。 加權(quán)最少鏈接調(diào)度(Weighted Least Connections) “加權(quán)最少鏈接調(diào)度”是“最少連接調(diào)度”的超集,每個(gè)服務(wù)節(jié)點(diǎn)可以用相應(yīng)的權(quán)值表示其處理能力,而系統(tǒng)管理員可以動(dòng)態(tài)的設(shè)置相應(yīng)的權(quán)值,缺省權(quán)值為1,加權(quán)最小連接調(diào)度在分配新連接請(qǐng)求時(shí)盡可能使服務(wù)節(jié)點(diǎn)的已建立連接數(shù)和其權(quán)值成正比。 其它四種調(diào)度算法分別為:基于局部性的最少鏈接(Locality-Based Least Connections)、帶復(fù)制的基于局部性最少鏈接(Locality-Based Least Connections with Replication)、目標(biāo)地址散列(Destination Hashing)和源地址散列(Source Hashing),對(duì)于這四種調(diào)度算法的含義,本文不再講述,如果想深入了解這其余四種調(diào)度策略的話,可以登陸LVS中文站點(diǎn) zh.,查閱更詳細(xì)的信息。 3.2 高可用性 LVS是一個(gè)基于內(nèi)核級(jí)別的應(yīng)用 軟件,因此具有很高的處理性能,用LVS構(gòu)架的負(fù)載均衡集群系統(tǒng)具有優(yōu)秀的處理能力,每個(gè)服務(wù)節(jié)點(diǎn)的故障不會(huì)影響整個(gè)系統(tǒng)的正常使用,同時(shí)又實(shí)現(xiàn)負(fù)載的合 理均衡,使應(yīng)用具有超高負(fù)荷的服務(wù)能力,可支持上百萬個(gè)并發(fā)連接請(qǐng)求。如配置百兆網(wǎng)卡,采用VS/TUN或VS/DR調(diào)度技術(shù),整個(gè)集群系統(tǒng)的吞吐量可高 達(dá)1Gbits/s;如配置千兆網(wǎng)卡,則系統(tǒng)的最大吞吐量可接近10Gbits/s。 3.3 高可靠性 LVS負(fù)載均衡集群軟 件已經(jīng)在企業(yè)、學(xué)校等行業(yè)得到了很好的普及應(yīng)用,國(guó)內(nèi)外很多大型的、關(guān)鍵性的web站點(diǎn)也都采用了LVS集群軟件,所以它的可靠性在實(shí)踐中得到了很好的證 實(shí)。有很多以LVS做的負(fù)載均衡系統(tǒng),運(yùn)行很長(zhǎng)時(shí)間,從未做過重新啟動(dòng)。這些都說明了LVS的高穩(wěn)定性和高可靠性。 3.4 適用環(huán)境 LVS 對(duì)前端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等等。 3.5 開源軟件 LVS集群軟件是按GPL(GNU Public License)許可證發(fā)行的自由軟件,因此,使用者可以得到軟件的源代碼,并且可以根據(jù)自己的需要進(jìn)行各種修改,但是修改必須是以GPL方式發(fā)行。
|
|