|
一、LVS概念 LVS是Linux Virtual Server的簡稱,也就是Linux虛擬服務(wù)器。這是一個由章文嵩博士發(fā)起的一個開源項目,它的官方網(wǎng)站是http://www./.現(xiàn)在LVS已經(jīng)是Linux內(nèi)核標準的一部分。 使用LVS可以達到的技術(shù)目標是:通過LVS達到的負載均衡技術(shù)和Linux操作系統(tǒng)實現(xiàn)一個高性能高可用的Linux服務(wù)器群集,它具有良好的可靠性,可拓展性和可操作性。從而以低廉的成本實現(xiàn)最優(yōu)的性能。 LVS從1998年開始,發(fā)展到現(xiàn)在已經(jīng)是一個比較成熟的項目了。利用LVS技術(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)有三個部分組成:最前端的負載均衡層(Loader Balancer),中間的服務(wù)器群組層,用Server Array表示,最底層的數(shù)據(jù)共享存儲層,用Shared Storage表示。在用戶看來所有的應(yīng)用都是透明的,用戶只是在使用一個虛擬服務(wù)器提供的高性能服務(wù)。 LVS的體系架構(gòu)如圖: LVS的各個層次的詳細介紹: Load Balancer層:位于整個集群系統(tǒng)的最前端,有一臺或者多臺負載調(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ù)時重新加入。 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的角色。 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負載均衡與負載調(diào)度算法 1.IP負載均衡技術(shù) 負載均衡技術(shù)有很多實現(xiàn)方案,有基于DNS域名輪流解析的方法、有基于客戶端調(diào)度訪問的方法、有基于應(yīng)用層系統(tǒng)負載的調(diào)度方法,還有基于IP地址的調(diào)度方法,在這些負載調(diào)度算法中,執(zhí)行效率最高的是IP負載均衡技術(shù)。 LVS 的IP負載均衡技術(shù)是通過IPVS模塊來實現(xiàn)的,IPVS是LVS集群系統(tǒng)的核心軟件,它的主要作用是:安裝在Director Server上,同時在Director Server上虛擬出一個IP地址,用戶必須通過這個虛擬的IP地址訪問服務(wù)。這個虛擬IP一般稱為LVS的VIP,即Virtual IP。訪問的請求首先經(jīng)過VIP到達負載調(diào)度器,然后由負載調(diào)度器從Real Server列表中選取一個服務(wù)節(jié)點響應(yīng)用戶的請求。 當(dāng)用戶的請求到達負載調(diào)度器后,調(diào)度器如何將請求發(fā)送到提供服務(wù)的Real Server節(jié)點,而Real Server節(jié)點如何返回數(shù)據(jù)給用戶,是IPVS實現(xiàn)的重點技術(shù),IPVS實現(xiàn)負載均衡機制有三種,分別是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.負載調(diào)度算法 上面我們談到,負載調(diào)度器是根據(jù)各 個服務(wù)器的負載情況,動態(tài)地選擇一臺Real Server響應(yīng)用戶請求,那么動態(tài)選擇是如何實現(xiàn)呢,其實也就是我們這里要說的負載調(diào)度算法,根據(jù)不同的網(wǎng)絡(luò)服務(wù)需求和服務(wù)器配置,IPVS實現(xiàn)了如下 八種負載調(diào)度算法,這里我們詳細講述最常用的四種調(diào)度算法,剩余的四種調(diào)度算法請參考其它資料。 輪叫調(diào)度(Round Robin) “輪叫”調(diào)度也叫1:1調(diào)度,調(diào)度器通過“輪叫”調(diào)度算法將外部用戶請求按順序1:1的分配到集群中的每個Real Server上,這種算法平等地對待每一臺Real Server,而不管服務(wù)器上實際的負載狀況和連接狀態(tài)。 加權(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的負載情況,并動態(tài)地調(diào)整其權(quán)值。 最少鏈接調(diào)度(Least Connections) “最少連接”調(diào)度算法動態(tài)地將網(wǎng)絡(luò)請求調(diào)度到已建立的鏈接數(shù)最少的服務(wù)器上。如果集群系統(tǒng)的真實服務(wù)器具有相近的系統(tǒng)性能,采用“最小連接”調(diào)度算法可以較好地均衡負載。 加權(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)、目標地址散列(Destination Hashing)和源地址散列(Source Hashing),對于這四種調(diào)度算法的含義,本文不再講述,如果想深入了解這其余四種調(diào)度策略的話,可以登陸LVS中文站點 zh.,查閱更詳細的信息。 3.2 高可用性 LVS是一個基于內(nèi)核級別的應(yīng)用 軟件,因此具有很高的處理性能,用LVS構(gòu)架的負載均衡集群系統(tǒng)具有優(yōu)秀的處理能力,每個服務(wù)節(jié)點的故障不會影響整個系統(tǒng)的正常使用,同時又實現(xiàn)負載的合 理均衡,使應(yīng)用具有超高負荷的服務(wù)能力,可支持上百萬個并發(fā)連接請求。如配置百兆網(wǎng)卡,采用VS/TUN或VS/DR調(diào)度技術(shù),整個集群系統(tǒng)的吞吐量可高 達1Gbits/s;如配置千兆網(wǎng)卡,則系統(tǒng)的最大吞吐量可接近10Gbits/s。 3.3 高可靠性 LVS負載均衡集群軟 件已經(jīng)在企業(yè)、學(xué)校等行業(yè)得到了很好的普及應(yīng)用,國內(nèi)外很多大型的、關(guān)鍵性的web站點也都采用了LVS集群軟件,所以它的可靠性在實踐中得到了很好的證 實。有很多以LVS做的負載均衡系統(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等等。 3.5 開源軟件 LVS集群軟件是按GPL(GNU Public License)許可證發(fā)行的自由軟件,因此,使用者可以得到軟件的源代碼,并且可以根據(jù)自己的需要進行各種修改,但是修改必須是以GPL方式發(fā)行。
|
|
|