Linux服務器集群系統(tǒng)之可伸縮Cache服務
Linux集群系統(tǒng)是當代許多公司采用的解決方案,Linux集群通過多臺機器連接起來,處理復雜的問題??梢詫⑼瑯?gòu)或者異構(gòu)的計算機連接起來,協(xié)同完成特定的任務。這樣就構(gòu)成了集群。LVS是Linux virtual server的縮寫,他的意思是Linux虛擬機服務。本文主要介紹的是基于Linux下的集群系統(tǒng)。
有效的網(wǎng)絡(luò)Cache系統(tǒng)可以大大地減少網(wǎng)絡(luò)流量、降低響應延時以及服務器的負載。但是,若Cache服務器超載而不能及時地處理請求,反而會增加響應延時。所以,Cache服務的可伸縮性很重要,當系統(tǒng)負載不斷增長時,整個系統(tǒng)能被擴展來提高Cache服務的處理能力。尤其,在主干網(wǎng)上的Cache服務可能需要幾個Gbps的吞吐率,單臺服務器(例如SUN目前最高端的Enterprise 10000服務器)遠不能達到這個吞吐率??梢?,通過PC服務器集群實現(xiàn)可伸縮Cache服務是很有效的方法,也是性能價格比最高的方法。
基于LVS的Cache集群的體系結(jié)構(gòu)如圖4所示:第一層是負載調(diào)度器,一般采用IP負載均衡技術(shù),可以使得整個系統(tǒng)有較高的吞吐率;第二層是Cache服務器池,一般Cache服務器放置在接近主干Internet連接處,它們可以分布在不同的網(wǎng)絡(luò)中。調(diào)度器可以有多個,放在離客戶接近的地方。
圖4:基于LVS的Cache集群
IPVS負載調(diào)度器一般使用IP隧道方法(即VS/TUN方法,將在以后文章中詳細敘述),來架構(gòu)Cache集群系統(tǒng),因為Cache服務器可能被放置不同的地方(例如在接近主干Internet連接處),而調(diào)度器與Cache服務器池可能不在同一個物理網(wǎng)絡(luò)中。采用VS/TUN方法,調(diào)度器只調(diào)度Web Cache請求,而Cache服務器將響應數(shù)據(jù)直接返回給客戶。在請求對象不能在本地命中的情況下,Cache服務器要向源服務器發(fā)請求,將結(jié)果取回,最后將結(jié)果返回給客戶;若采用NAT技術(shù)的商品化調(diào)度器,需要四次進出調(diào)度器,完成這個請求。而用VS/TUN方法(或者VS/DR方法),調(diào)度器只調(diào)度一次請求,其他三次都由Cache服務器直接訪問Internet完成。所以,這種方法對Cache集群系統(tǒng)特別有效。
Cache服務器采用本地硬盤來存儲可緩存的對象,因為存儲可緩存的對象是寫操作,且占有一定的比例,通過本地硬盤可以提高I/O的訪問速度。Cache服務器間有專用的多播通道(Multicast Channel),通過ICP協(xié)議(Internet Cache Protocol)來交互信息。當一臺Cache服務器在本地硬盤中未命中當前請求時,它可以通過ICP查詢其他Cache服務器是否有請求對象的副本,若存在,則從鄰近的Cache服務器取該對象的副本,這樣可以進一步提高Cache服務的命中率。
為150多所大學和地區(qū)服務的英國國家JANET Web Cache網(wǎng)在1999年11月用以上LVS結(jié)構(gòu)實現(xiàn)可伸縮的Cache集群[8],只用了原有50多臺相互獨立Cache服務器的一半,用戶反映網(wǎng)絡(luò)速度跟夏天一樣快(學生放暑假)??梢?,通過負載調(diào)度可以摸平單臺服務器訪問的毛刺(Burst),提高整個系統(tǒng)的資源利用率。
【編輯推薦】
- Linux集群原理與安裝配置匯總
- “懶惰”Linux集群管理員的11個秘訣
- 圖文詳解 文件柜內(nèi)DIY自己的Linux集群機
- 大型Linux集群的安裝節(jié)點和管理
- 大型Linux集群簡介和硬件配置
- 高性能Linux集群基礎(chǔ)知識