国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項(xiàng)超值服

開通VIP
Linux服務(wù)器集群系統(tǒng)(二)--LVS集群的體系結(jié)構(gòu)

Linux服務(wù)器集群系統(tǒng)(二)

LVS集群的體系結(jié)構(gòu)

章文嵩 (wensong@linux-vs.org)
2002 年 4 月

本文主要介紹了LVS集群的體系結(jié)構(gòu)。先給出LVS集群的通用體系結(jié)構(gòu),并討論了其的設(shè)計(jì)原則和相應(yīng)的特點(diǎn);最后將LVS集群應(yīng)用于建立可伸縮的Web、Media、Cache和Mail等網(wǎng)絡(luò)服務(wù)。

1.引言
在過去的十幾年中,Internet從幾個(gè)研究機(jī)構(gòu)相連為信息共享的網(wǎng)絡(luò)發(fā)展成為擁有大量應(yīng)用和服務(wù)的全球性網(wǎng)絡(luò),它正成為人們生活中不可缺少的一部分。雖然Internet發(fā)展速度很快,但建設(shè)和維護(hù)大型網(wǎng)絡(luò)服務(wù)依然是一項(xiàng)挑戰(zhàn)性的任務(wù),因?yàn)橄到y(tǒng)必須是高性能的、高可靠的,尤其當(dāng)訪問負(fù)載不斷增長時(shí),系統(tǒng)必須能被擴(kuò)展來滿足不斷增長的性能需求。由于缺少建立可伸縮網(wǎng)絡(luò)服務(wù)的框架和設(shè)計(jì)方法,這意味著只有擁有非常出色工程和管理人才的機(jī)構(gòu)才能建立和維護(hù)大型的網(wǎng)絡(luò)服務(wù)。

針對這種情形,本文先給出LVS集群的通用體系結(jié)構(gòu),并討論了其的設(shè)計(jì)原則和相應(yīng)的特點(diǎn);最后將LVS集群應(yīng)用于建立可伸縮的Web、Media、Cache和Mail等網(wǎng)絡(luò)服務(wù)。

2.LVS集群的通用體系結(jié)構(gòu)
LVS集群采用IP負(fù)載均衡技術(shù)和基于內(nèi)容請求分發(fā)技術(shù)。調(diào)度器具有很好的吞吐率,將請求均衡地轉(zhuǎn)移到不同的服務(wù)器上執(zhí)行,且調(diào)度器自動屏蔽掉服務(wù)器的故障,從而將一組服務(wù)器構(gòu)成一個(gè)高性能的、高可用的虛擬服務(wù)器。整個(gè)服務(wù)器集群的結(jié)構(gòu)對客戶是透明的,而且無需修改客戶端和服務(wù)器端的程序。

 


圖1:LVS集群的體系結(jié)構(gòu)

 

為此,在設(shè)計(jì)時(shí)需要考慮系統(tǒng)的透明性、可伸縮性、高可用性和易管理性。一般來說,LVS集群采用三層結(jié)構(gòu),其體系結(jié)構(gòu)如圖1所示,三層主要組成部分為:

  • 負(fù)載調(diào)度器(load balancer),它是整個(gè)集群對外面的前端機(jī),負(fù)責(zé)將客戶的請求發(fā)送到一組服務(wù)器上執(zhí)行,而客戶認(rèn)為服務(wù)是來自一個(gè)IP地址(我們可稱之為虛擬IP地址)上的。
  • 服務(wù)器池(server pool),是一組真正執(zhí)行客戶請求的服務(wù)器,執(zhí)行的服務(wù)有WEB、MAIL、FTP和DNS等。
  • 共享存儲(shared storage),它為服務(wù)器池提供一個(gè)共享的存儲區(qū),這樣很容易使得服務(wù)器池?fù)碛邢嗤膬?nèi)容,提供相同的服務(wù)。

調(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á),也會被轉(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ù)庫會保證并發(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),如AFS[1]、GFS[2.3]、Coda[4]和 Intermezzo[5]等。分布式文件系統(tǒng)可為各服務(wù)器提供共享的存儲區(qū),它們訪問分布式文件系統(tǒng)就像訪問本地文件系統(tǒng)一樣,同時(shí)分布式文件系統(tǒng)可提供良好的伸縮性和可用性。此外,當(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)的瓶頸。

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)的配置和管理。

2.1. 為什么使用層次的體系結(jié)構(gòu)

層次的體系結(jié)構(gòu)可以使得層與層之間相互獨(dú)立,每一個(gè)層次提供不同的功能,在一個(gè)層次可以重用不同的已有軟件。例如,調(diào)度器層提供了負(fù)載平衡、可伸縮性和高可用性等,在服務(wù)器層可以運(yùn)行不同的網(wǎng)絡(luò)服務(wù),如Web、Cache、Mail和Media等,來提供不同的可伸縮網(wǎng)絡(luò)服務(wù)。明確的功能劃分和清晰的層次結(jié)構(gòu)使得系統(tǒng)容易建設(shè),以后整個(gè)系統(tǒng)容易維護(hù),而且系統(tǒng)的性能容易被擴(kuò)展。

2.2. 為什么是共享存儲

共享存儲如分布式文件系統(tǒng)在這個(gè)LVS集群系統(tǒng)是可選項(xiàng)。當(dāng)網(wǎng)絡(luò)服務(wù)需要有相同的內(nèi)容,共享存儲是很好的選擇,否則每臺服務(wù)器需要將相同的內(nèi)容復(fù)制到本地硬盤上。當(dāng)系統(tǒng)存儲的內(nèi)容越多,這種無共享結(jié)構(gòu)(Shared-nothing Structure)的代價(jià)越大,因?yàn)槊颗_服務(wù)器需要一樣大的存儲空間,任何的更新需要涉及到每臺服務(wù)器,系統(tǒng)的維護(hù)代價(jià)會非常高。

共享存儲為服務(wù)器組提供統(tǒng)一的存儲空間,這使得系統(tǒng)的內(nèi)容維護(hù)工作比較輕松,如Webmaster只需要更新共享存儲中的頁面,對所有的服務(wù)器都有效。分布式文件系統(tǒng)提供良好的伸縮性和可用性,當(dāng)分布式文件系統(tǒng)的存儲空間增加時(shí),所有服務(wù)器的存儲空間也隨之增大。對于大多數(shù) Internet服務(wù)來說,它們都是讀密集型(Read-intensive)的應(yīng)用,分布式文件系統(tǒng)在每臺服務(wù)器使用本地硬盤作Cache(如 2Gbytes的空間),可以使得訪問分布式文件系統(tǒng)本地的速度接近于訪問本地硬盤。

此外,存儲硬件技術(shù)的發(fā)展也促使從無共享的集群向共享存儲的集群遷移。存儲區(qū)域網(wǎng)(Storage Area Networks)技術(shù)解決了集群的每個(gè)結(jié)點(diǎn)可以直接連接/共享一個(gè)龐大的硬盤陣列,硬件廠商也提供多種硬盤共享技術(shù),如光纖通道(Fiber Channel)、共享SCSI(Shared SCSI)。InfiniBand是一個(gè)通用的高性能I/O規(guī)范,使得存儲區(qū)域網(wǎng)中以更低的延時(shí)傳輸I/O消息和集群通訊消息,并且提供很好的伸縮性。 InfiniBand得到絕大多數(shù)的大廠商的支持,如Compaq、Dell、Hewlett-Packard、IBM、Intel、Microsoft 和SUN Microsystems等,它正在成為一個(gè)業(yè)界的標(biāo)準(zhǔn)。這些技術(shù)的發(fā)展使得共享存儲變得容易,規(guī)模生產(chǎn)也會使得成本逐步降低。

2.3. 高可用性

集群系統(tǒng)的特點(diǎn)是它在軟硬件上都有冗余。系統(tǒng)的高可用性可以通過檢測節(jié)點(diǎn)或服務(wù)進(jìn)程故障和正確地重置系統(tǒng)來實(shí)現(xiàn),使得系統(tǒng)收到的請求能被存活的結(jié)點(diǎn)處理。

通常,我們在調(diào)度器上有資源監(jiān)測進(jìn)程來時(shí)刻監(jiān)視各個(gè)服務(wù)器結(jié)點(diǎn)的健康狀況。當(dāng)服務(wù)器對ICMP ping不可達(dá)時(shí)或者探測她的網(wǎng)絡(luò)服務(wù)在指定的時(shí)間沒有響應(yīng)時(shí),資源監(jiān)測進(jìn)程通知操作系統(tǒng)內(nèi)核將該服務(wù)器從調(diào)度列表中刪除或者失效。這樣,新的服務(wù)請求就不會被調(diào)度到壞的結(jié)點(diǎn)。資源監(jiān)測進(jìn)程能通過電子郵件或傳呼機(jī)向管理員報(bào)告故障。一旦監(jiān)測進(jìn)程到服務(wù)器恢復(fù)工作,通知調(diào)度器將其加入調(diào)度列表進(jìn)行調(diào)度。另外,通過系統(tǒng)提供的管理程序,管理員可發(fā)命令隨時(shí)可以將新機(jī)器加入服務(wù)來提高系統(tǒng)的處理性能,也可以將已有的服務(wù)器切出服務(wù),以便對服務(wù)器進(jìn)行系統(tǒng)維護(hù)。

現(xiàn)在前端的調(diào)度器有可能成為系統(tǒng)的單一失效點(diǎn)(Single Point of Failure)。一般來說,調(diào)度器的可靠性較高,因?yàn)檎{(diào)度器上運(yùn)行的程序較少而且大部分程序早已經(jīng)遍歷過,但我們不能排除硬件老化、網(wǎng)絡(luò)線路或者人為誤操作等主要故障。為了避免調(diào)度器失效而導(dǎo)致整個(gè)系統(tǒng)不能工作,我們需要設(shè)立一個(gè)從調(diào)度器作為主調(diào)度器的備份。兩個(gè)心跳(Heartbeat)進(jìn)程[6]分別在主、從調(diào)度器上運(yùn)行,它們通過串口線和UDP等心跳線來相互定時(shí)地匯報(bào)各自的健康狀況。當(dāng)從調(diào)度器不能聽得主調(diào)度器的心跳時(shí),從調(diào)度器通過ARP欺騙(Gratuitous ARP)來接管集群對外的Virtual IP Address,同時(shí)接管主調(diào)度器的工作來提供負(fù)載調(diào)度服務(wù)。當(dāng)主調(diào)度器恢復(fù)時(shí),這里有兩種方法,一是主調(diào)度器自動變成從調(diào)度器,二是從調(diào)度器釋放 Virtual IP Address,主調(diào)度器收回Virtual IP Address并提供負(fù)載調(diào)度服務(wù)。這里,多條心跳線可以使得因心跳線故障導(dǎo)致誤判(即從調(diào)度器認(rèn)為主調(diào)度器已經(jīng)失效,其實(shí)主調(diào)度器還在正常工作)的概論降到最低。

通常,當(dāng)主調(diào)度器失效時(shí),主調(diào)度器上所有已建立連接的狀態(tài)信息將丟失,已有的連接會中斷。客戶需要向重新連接,從調(diào)度器才會將新連接調(diào)度到各個(gè)服務(wù)器上,這對客戶會造成一定的不便。為此,IPVS調(diào)度器在Linux 內(nèi)核中實(shí)現(xiàn)一種高效狀態(tài)同步機(jī)制,將主調(diào)度器的狀態(tài)信息及時(shí)地同步到從調(diào)度器。當(dāng)從調(diào)度器接管時(shí),絕大部分已建立的連接會持續(xù)下去。

3.可伸縮Web服務(wù)

基于LVS的Web集群的體系結(jié)構(gòu)如圖2所示:第一層是負(fù)載調(diào)度器,一般采用IP負(fù)載均衡技術(shù),可以使得整個(gè)系統(tǒng)有較高的吞吐率;第二層是 Web服務(wù)器池,在每個(gè)結(jié)點(diǎn)上可以分別運(yùn)行HTTP服務(wù)或HTTPS服務(wù)、或者兩者都運(yùn)行;第三層是共享存儲,它可以是數(shù)據(jù)庫,可以是網(wǎng)絡(luò)文件系統(tǒng)或分布式文件系統(tǒng),或者是三者的混合。集群中各結(jié)點(diǎn)是通過高速網(wǎng)絡(luò)相連接的。

 


圖2:基于LVS的Web集群

 

對于動態(tài)頁面(如PHP、JSP和ASP等),需要訪問的動態(tài)數(shù)據(jù)一般存儲在數(shù)據(jù)庫服務(wù)器中。數(shù)據(jù)庫服務(wù)運(yùn)行在獨(dú)立的服務(wù)器上,為所有Web服務(wù)器共享。無論同一Web服務(wù)器上多個(gè)動態(tài)頁面訪問同一數(shù)據(jù),還是不同Web服務(wù)器上多個(gè)動態(tài)頁面訪問同一數(shù)據(jù),數(shù)據(jù)庫服務(wù)器有鎖機(jī)制使得這些訪問有序地進(jìn)行,從而保證數(shù)據(jù)的一致性。

對于靜態(tài)的頁面和文件(如HTML文檔和圖片等),可以存儲在網(wǎng)絡(luò)文件系統(tǒng)或者分布式文件系統(tǒng)中。至于選擇哪一種,看系統(tǒng)的規(guī)模和需求而定。通過共享的網(wǎng)絡(luò)文件系統(tǒng)或者分布式文件系統(tǒng),Webmaster可以看到統(tǒng)一的文檔存儲空間,維護(hù)和更新頁面比較方便,對共享存儲中頁面的修改對所有的服務(wù)器都有效。

在這種結(jié)構(gòu)下,當(dāng)所有服務(wù)器結(jié)點(diǎn)超載時(shí),管理員可以很快地加入新的服務(wù)器結(jié)點(diǎn)來處理請求,而無需將Web文檔等復(fù)制到結(jié)點(diǎn)的本地硬盤上。

有些Web服務(wù)可能用到HTTP Cookie,它是將數(shù)據(jù)存儲在客戶的瀏覽器來追蹤和標(biāo)識客戶的機(jī)制。使用HTTP Cookie后,來同一客戶的不同連接存在相關(guān)性,這些連接必須被發(fā)送到同一Web服務(wù)器。一些Web服務(wù)使用安全的HTTPS協(xié)議,它是HTTP協(xié)議加 SSL(Secure Socket Layer)協(xié)議。另有些Web服務(wù)可能使用安全的HTTPS協(xié)議,它是HTTP協(xié)議加SSL協(xié)議。當(dāng)客戶訪問HTTPS服務(wù)(HTTPS的缺省端口為 443)時(shí),會先建立一個(gè)SSL連接,來交換對稱公鑰加密的證書并協(xié)商一個(gè)SSL Key,來加密以后的會話。在SSL Key的生命周期內(nèi),后續(xù)的所有HTTPS連接都使用這個(gè)SSL Key,所以同一客戶的不同HTTPS連接也存在相關(guān)性。針對這些需要,IPVS調(diào)度器提供了持久服務(wù)的功能,它可以使得在設(shè)定的時(shí)間內(nèi),來自同一IP地址的不同連接會被發(fā)送到集群中同一個(gè)服務(wù)器結(jié)點(diǎn),可以很好地解決客戶連接的相關(guān)性問題。

4.可伸縮媒體服務(wù)

基于LVS的媒體集群的體系結(jié)構(gòu)如圖3所示:第一層是負(fù)載調(diào)度器,一般采用IP負(fù)載均衡技術(shù),可以使得整個(gè)系統(tǒng)有較高的吞吐率;第二層是 Web服務(wù)器池,在每個(gè)結(jié)點(diǎn)上可以運(yùn)行相應(yīng)的媒體服務(wù);第三層是共享存儲,通過網(wǎng)絡(luò)文件系統(tǒng)/分布式文件系統(tǒng)存儲媒體節(jié)目。集群中各結(jié)點(diǎn)是通過高速網(wǎng)絡(luò)相連接。

 


圖3:基于LVS的媒體集群

 

IPVS負(fù)載調(diào)度器一般使用直接路由方法(即VS/DR方法,將在以后文章中詳細(xì)敘述),來架構(gòu)媒體集群系統(tǒng)。調(diào)度器將媒體服務(wù)請求較均衡地分發(fā)到各個(gè)服務(wù)器上,而媒體服務(wù)器將響應(yīng)數(shù)據(jù)直接返回給客戶,這樣可以使得整個(gè)媒體集群系統(tǒng)具有很好的伸縮性。

媒體服務(wù)器可以運(yùn)行各種媒體服務(wù)軟件。目前,LVS集群對于Real Media、Windows Media和Apple Quicktime媒體服務(wù)都有很好的支持,都有真實(shí)的系統(tǒng)在運(yùn)行。一般來說,流媒體服務(wù)都會使用一個(gè)TCP連接(如RTSP協(xié)議:Real-Time Streaming Protocol)進(jìn)行帶寬的協(xié)商和流速的控制,通過UDP將流數(shù)據(jù)返回客戶。這里,IPVS調(diào)度器提供功能將TCP和UDP集中考慮,保證來自同一客戶的媒體TCP和UDP連接會被轉(zhuǎn)發(fā)到集群中同一臺媒體服務(wù)器,使得媒體服務(wù)準(zhǔn)確無誤地進(jìn)行。

共享存儲是媒體集群系統(tǒng)中最關(guān)鍵的問題,因?yàn)槊襟w文件往往非常大(一部片子需要幾百兆到幾千兆的存儲空間),這對存儲的容量和讀的速度有較高的要求。對于規(guī)模較小的媒體集群系統(tǒng),例如有3至6個(gè)媒體服務(wù)器結(jié)點(diǎn),存儲系統(tǒng)可以考慮用帶千兆網(wǎng)卡的Linux服務(wù)器,使用軟件RAID和日志型文件系統(tǒng),再運(yùn)行內(nèi)核的NFS服務(wù),會有不錯(cuò)的效果。對于規(guī)模較大的媒體集群系統(tǒng),最好選擇對文件分段(File Stripping)存儲和文件緩存有較好支持的分布式文件系統(tǒng);媒體文件分段存儲在分布式文件系統(tǒng)的多個(gè)存儲結(jié)點(diǎn)上,可以提高文件系統(tǒng)的性能和存儲結(jié)點(diǎn)間的負(fù)載均衡;媒體文件在媒體服務(wù)器上自動地被緩存,可提高文件的訪問速度。否則,可以考慮自己在媒體服務(wù)器上開發(fā)相應(yīng)的工具,如緩存工具能定時(shí)地統(tǒng)計(jì)出最近的熱點(diǎn)媒體文件,將熱點(diǎn)文件復(fù)制到本地硬盤上,并替換緩存中的非熱點(diǎn)文件,最后通知其他媒體服務(wù)器結(jié)點(diǎn)它所緩存的媒體文件以及負(fù)載情況;在媒體服務(wù)器上有應(yīng)用層調(diào)度工具,它收到客戶的媒體服務(wù)請求,若所請求的媒體文件緩存在本地硬盤上,則直接轉(zhuǎn)給本地媒體服務(wù)進(jìn)程服務(wù),否則先考慮該文件是否被其他媒體服務(wù)器緩存;如該文件被其他服務(wù)器緩存并且該服務(wù)器不忙,則將請求轉(zhuǎn)給該服務(wù)器上的媒體服務(wù)進(jìn)程處理,否則直接轉(zhuǎn)給本地媒體服務(wù)進(jìn)程,從后端的共享存儲中讀出媒體文件。

共享存儲的好處是媒體文件的管理人員看到統(tǒng)一的存儲空間,使得媒體文件維護(hù)工作比較方便。當(dāng)客戶訪問不斷增加使得整個(gè)系統(tǒng)超載時(shí),管理員可以很快地加入新的媒體服務(wù)器結(jié)點(diǎn)來處理請求。

Real公司以其高壓縮比的音頻視頻格式、Real媒體服務(wù)器和媒體播放器RealPlayer而聞名。Real公司正在使用以上結(jié)構(gòu)將由 20多臺服務(wù)器組成的LVS可伸縮Web和媒體集群,為其全球用戶提供Web和音頻視頻服務(wù)。Real公司的高級技術(shù)主管聲稱LVS擊敗所有他們嘗試過的商品化負(fù)載均衡產(chǎn)品[7]。

5.可伸縮Cache服務(wù)

有效的網(wǎng)絡(luò)Cache系統(tǒng)可以大大地減少網(wǎng)絡(luò)流量、降低響應(yīng)延時(shí)以及服務(wù)器的負(fù)載。但是,若Cache服務(wù)器超載而不能及時(shí)地處理請求,反而會增加響應(yīng)延時(shí)。所以,Cache服務(wù)的可伸縮性很重要,當(dāng)系統(tǒng)負(fù)載不斷增長時(shí),整個(gè)系統(tǒng)能被擴(kuò)展來提高Cache服務(wù)的處理能力。尤其,在主干網(wǎng)上的 Cache服務(wù)可能需要幾個(gè)Gbps的吞吐率,單臺服務(wù)器(例如SUN目前最高端的Enterprise 10000服務(wù)器)遠(yuǎn)不能達(dá)到這個(gè)吞吐率??梢姡ㄟ^PC服務(wù)器集群實(shí)現(xiàn)可伸縮Cache服務(wù)是很有效的方法,也是性能價(jià)格比最高的方法。

基于LVS的Cache集群的體系結(jié)構(gòu)如圖4所示:第一層是負(fù)載調(diào)度器,一般采用IP負(fù)載均衡技術(shù),可以使得整個(gè)系統(tǒng)有較高的吞吐率;第二層是Cache服務(wù)器池,一般Cache服務(wù)器放置在接近主干Internet連接處,它們可以分布在不同的網(wǎng)絡(luò)中。調(diào)度器可以有多個(gè),放在離客戶接近的地方。

 


圖4:基于LVS的Cache集群

 

IPVS負(fù)載調(diào)度器一般使用IP隧道方法(即VS/TUN方法,將在以后文章中詳細(xì)敘述),來架構(gòu)Cache集群系統(tǒng),因?yàn)镃ache服務(wù)器可能被放置不同的地方(例如在接近主干Internet連接處),而調(diào)度器與Cache服務(wù)器池可能不在同一個(gè)物理網(wǎng)絡(luò)中。采用VS/TUN方法,調(diào)度器只調(diào)度 Web Cache請求,而Cache服務(wù)器將響應(yīng)數(shù)據(jù)直接返回給客戶。在請求對象不能在本地命中的情況下,Cache服務(wù)器要向源服務(wù)器發(fā)請求,將結(jié)果取回,最后將結(jié)果返回給客戶;若采用NAT技術(shù)的商品化調(diào)度器,需要四次進(jìn)出調(diào)度器,完成這個(gè)請求。而用VS/TUN方法(或者VS/DR方法),調(diào)度器只調(diào)度一次請求,其他三次都由Cache服務(wù)器直接訪問Internet完成。所以,這種方法對Cache集群系統(tǒng)特別有效。

Cache服務(wù)器采用本地硬盤來存儲可緩存的對象,因?yàn)榇鎯删彺娴膶ο笫菍懖僮?,且占有一定的比例,通過本地硬盤可以提高I/O的訪問速度。Cache服務(wù)器間有專用的多播通道(Multicast Channel),通過ICP協(xié)議(Internet Cache Protocol)來交互信息。當(dāng)一臺Cache服務(wù)器在本地硬盤中未命中當(dāng)前請求時(shí),它可以通過ICP查詢其他Cache服務(wù)器是否有請求對象的副本,若存在,則從鄰近的Cache服務(wù)器取該對象的副本,這樣可以進(jìn)一步提高Cache服務(wù)的命中率。

為150多所大學(xué)和地區(qū)服務(wù)的英國國家JANET Web Cache網(wǎng)在1999年11月用以上LVS結(jié)構(gòu)實(shí)現(xiàn)可伸縮的Cache集群[8],只用了原有50多臺相互獨(dú)立Cache服務(wù)器的一半,用戶反映網(wǎng)絡(luò)速度跟夏天一樣快(學(xué)生放暑假)??梢?,通過負(fù)載調(diào)度可以摸平單臺服務(wù)器訪問的毛刺(Burst),提高整個(gè)系統(tǒng)的資源利用率。

6.可伸縮郵件服務(wù)

隨著Internet用戶不斷增長,很多ISP面臨他們郵件服務(wù)器超載的問題。當(dāng)郵件服務(wù)器不能容納更多的用戶賬號時(shí),有些ISP買更高檔的服務(wù)器來代替原有的,將原有服務(wù)器的信息(如用戶郵件)遷移到新服務(wù)器是很繁瑣的工作,會造成服務(wù)的中斷;有些ISP設(shè)置新的服務(wù)器和新的郵件域名,新的郵件用戶放置在新的服務(wù)器上,如上海電信現(xiàn)在用不同的郵件服務(wù)器public1.sta.net.cn、public2.sta.net.cn到 public9.sta.net.cn放置用戶的郵件賬號,這樣靜態(tài)地將用戶分割到不同的服務(wù)器上,會造成郵件服務(wù)器負(fù)載不平衡,系統(tǒng)的資源利用率低,對用戶來說郵件的地址比較難記。

 


圖5:基于LVS的可伸縮郵件集群

 

 

可以利用LVS框架實(shí)現(xiàn)高可伸縮、高可用的郵件服務(wù)系統(tǒng)。它的體系結(jié)構(gòu)如圖5所示:在前端是一個(gè)采用IP負(fù)載均衡技術(shù)的負(fù)載調(diào)度器;第二層是服務(wù)器池,有LDAP(Light-weight Directory Access Protocol)服務(wù)器和一組郵件服務(wù)器。第三層是數(shù)據(jù)存儲,通過分布式文件系統(tǒng)來存儲用戶的郵件。集群中各結(jié)點(diǎn)是通過高速網(wǎng)絡(luò)相連接。

用戶的信息如用戶名、口令、主目錄和郵件容量限額等存儲在LDAP服務(wù)器中,可以通過HTTPS讓管理員進(jìn)行用戶管理。在各個(gè)郵件服務(wù)器上運(yùn)行SMTP(Simple Mail Transfer Protocol)、POP3(Post Office Protocol version 3)、IMAP4(Internet Message Access Protocol version 4)和HTTP/HTTPS服務(wù)。SMTP接受和轉(zhuǎn)發(fā)用戶的郵件,SMTP服務(wù)進(jìn)程查詢LDAP服務(wù)器獲得用戶信息,再存儲郵件。POP3和IMAP4通過LDAP服務(wù)器獲得用戶信息,口令驗(yàn)證后,處理用戶的郵件訪問請求。這里,需要有機(jī)制避免不同服務(wù)器上的SMTP、POP3和IMAP4服務(wù)進(jìn)程對用戶郵件的讀寫沖突。HTTP/HTTPS服務(wù)是讓用戶通過瀏覽器可以訪問郵件。

IPVS調(diào)度器將SMTP、POP3、IMAP4和HTTP/HTTPS請求流負(fù)載較均衡地分發(fā)到各郵件服務(wù)器上,從上面各服務(wù)的處理流程來看,不管請求被發(fā)送到哪一臺郵件服務(wù)器處理,其結(jié)果是一樣的。這里,將SMTP、POP3、IMAP4和HTTP/HTTPS運(yùn)行在各個(gè)郵件服務(wù)器上進(jìn)行集中調(diào)度,有利于提高整個(gè)系統(tǒng)的資源利用率。

系統(tǒng)中可能的瓶頸是LDAP服務(wù)器,對LDAP服務(wù)中B+樹的參數(shù)進(jìn)行優(yōu)化,再結(jié)合高端的服務(wù)器,可以獲得較高的性能。若分布式文件系統(tǒng)沒有多個(gè)存儲結(jié)點(diǎn)間的負(fù)載均衡機(jī)制,則需要相應(yīng)的郵件遷移機(jī)制來避免郵件訪問的傾斜。

這樣,這個(gè)集群系統(tǒng)對用戶來說就像一個(gè)高性能、高可靠的郵件服務(wù)器(例如上海電信只要用一個(gè)郵件域名 public.sta.net.cn就可以)。當(dāng)郵件用戶不斷增長時(shí),只要在集群中增加服務(wù)器結(jié)點(diǎn)和存儲結(jié)點(diǎn)。用戶信息的集中存儲使得用戶管理變得容易,且集群系統(tǒng)有利于提高資源利用率。

7.小結(jié)

本文給出LVS集群的通用體系結(jié)構(gòu),并討論了它的設(shè)計(jì)原則和相應(yīng)的特點(diǎn);最后將LVS集群應(yīng)用于建立可伸縮的Web、Media、 Cache和Mail網(wǎng)絡(luò)服務(wù),并指出了系統(tǒng)架設(shè)時(shí)應(yīng)注意的要點(diǎn)。我們將在后續(xù)的文章中詳細(xì)解釋LVS集群的技術(shù)、實(shí)現(xiàn)和應(yīng)用。 

參考文獻(xiàn)

  1. J.H. Howard. An Overview of the Andrew File System. In Proceedings of the USENIX Winter Technical Conference, Dallas, TX, USA, February 1998.
  2. Kenneth W. Preslan, Andrew P. Barry, Jonathan E. Brassow, Grant M. Erickson, Erling Nygaard, Christopher J. Sabol, Steven R. Soltis, David C. Teigland, and Matthew T. O'Keefe. A 64-bit, Shared Disk File System for Linux. In Proceeding of 16th IEEE Mass Storage Systems Symposium, San Diego, CA, USA. March 15-18, 1999.
  3. Global File System Website. http://www.globalfilesystem.org.
  4. Coda File System Website. http://www.coda.cs.cmu.edu.
  5. InterMezzo File System Website. http://www.inter-mezzo.org.
  6. Alan Robertson, et al. Linux High Availability Project. http://www.linux-ha.org.
  7. Jerry Glomph Black. LVS testimonials from Real Networks. March 2000. http://marc.theaimsgroup.com/?l=linux-virtual-server&m=95385809030794&w=2
  8. Michael Sparks. Load Balancing the UK National JANET Web Cache Service Using Linux Virtual Servers. November 1999. http://wwwcache.ja.net/JanetService/PilotService.html.
關(guān)于作者

章文嵩,開放源碼及 Linux內(nèi)核的開發(fā)者,著名的Linux集群項(xiàng)目--LVS(Linux Virtual Server)的創(chuàng)始人和主要開發(fā)人員。他目前工作于國家并行與分布式處理重點(diǎn)實(shí)驗(yàn)室,主要從事集群技術(shù)、操作系統(tǒng)、對象存儲與數(shù)據(jù)庫的研究。他一直在自由軟件的開發(fā)上花費(fèi)大量時(shí)間,并以此為樂。

本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊舉報(bào)。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
LVS集群技術(shù)及簡明配置 - ◇Linux,BSD等平臺◇ - 專門網(wǎng)論壇--專業(yè)的筆記本...
集群系列二(LVS的算法)
LVS負(fù)載均衡原理和算法詳解
論文:Linux集群系統(tǒng)研究
LVS三種工作模式、十種調(diào)度算法介紹
LVS基本介紹
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服