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