蘇李亮,王云福,侯 斌
(中廣核工程有限公司 深圳 518052)
信息化是核電工程設計單位實現發展與創新的重要手段,隨著核電工程設計信息化建設的逐步深入,海量的非結構化、半結構化的工程文件信息給網絡帶寬和服務器響應速度帶來了巨大的挑戰。海量信息的分布式存儲以及由負載均衡系統構建的Web服務器集群正是為滿足這一需求而設計的,對企業應用的數據進行分布式存儲,同時在現有網絡結構上實現負載均衡,是一種能夠提高網絡帶寬利用率、解決網絡擁塞問題、提供空閑服務器響應、提高用戶請求響應速度和避免單點故障的廉價的有效方法。
設計文檔管理平臺是中廣核工程有限公司設計院建立的企業內容管理平臺,其目標是實現設計文檔的海量存儲與管理,包括對各類結構化、半結構化工程文件的收集、分解、分類權限、審核、轉換、發布、更新、刪除、存儲、版本控制等過程,并保證數據的準確性、可復用性、安全性。
設計文檔管理平臺的系統架構由Web應用服務器層、內容管理服務器(Documentum content server)層、存儲庫層以及由文件存儲系統(file storage system)、數據庫組成的數據存儲層共4層組成。設計文檔管理平臺采用的分層架構模式使得系統具有靈活的可擴展性,每一層均可以進行多個節點的部署,如圖1所示。

圖 1 設計文檔管理平臺系統架構
從圖1可以得知,平臺架構上的Web應用層以及數據存儲層均以集中部署方式應用于整個企業。但隨著企業的迅猛發展,用戶規模大幅增長,設計平臺最初的架構已很難適應公司業務多項目、多基地格局的要求,為此,本文提出對平臺底層存儲采用分布式技術,同時結合前端Web應用層的負載均衡對平臺系統架構進行重構,以實現平臺的高性能、高可用、可伸縮性。
分布式文件系統是分布式系統的重要組成部分,主要任務是統一管理所有分布式節點計算機上的文件資源,對一般用戶和應用程序而言,它屏蔽了各個節點計算機底層文件系統的差異,對外提供統一的訪問接口。分布式文件系統通常要考慮并解決以下3個關鍵問題。
第一,透明性問題,分布式文件系統一般由多個節點組成,需要集體協作才能對外提供服務,分布式文件系統的透明性是指通過統一管理分布在局域網 (或廣域網)中的所有節點服務器,使其對用戶和應用程序的感覺好像只是一個高可用性的文件系統。
第二,一致性問題,即在各個應用服務器訪問分布式文件系統時,它們所訪問的文件和目錄內容之間的一致性關系。
第三,可擴展性問題,由于分布式系統的節點數量可能隨時隨地變化,因而分布式文件系統管理的文件對象也是隨時變化的,應用對分布式文件系統在性能和容量方面的要求也在不斷地增長。
基于設計文檔管理平臺的體系架構,采用分層模式,首先提出從存儲層上實現分布式技術的應用,對系統進行重構與擴展。
在基于內容復制的分布式存儲庫模式下,內容管理服務器負責每一個內容對象,包括文件實體和元數據的內部復制。內容管理服務器提供透明的服務,用戶可以在與一個存儲庫建立會話后,實現對該存儲庫內容對象的操作,并相應更新至其他多個節點的存儲庫上。
用戶可以訪問來自不同節點存儲庫的數據,并可以通過聯邦制的架構方式,使統治節點與各聯邦成員的節點自動保持同步,解決不同節點之間用戶、群組和訪問控制列表的一致性問題。系統架構如圖2所示。

圖 2 基于內容復制的分布式架構
基于內容復制的分布式存儲庫方案具有遠程節點訪問數據速度快,同時支持Web和客戶端形式的應用程序訪問以及內容冗余增強系統數據安全等優點。但硬件成本及軟件維護成本較高,各節點之間的數據復制以及一致性的保證需消耗大量系統資源,也是容易發生錯誤的地方,是該模式的不足之處。該模式比較適合節點產生大量需要納入內容管理的數據,并且需要與系統配套的維護人員。
在基于內容分布式存儲的存儲庫模式下,內容對象分散地存儲于主節點與各分支節點服務器上,內容管理服務器通過部署中間件實現對內容對象的存儲與復制。在主節點內容管理服務器上部署DMS(document messaging service)中間件,處理遠程用戶的異步寫操作。而在每個遠程節點都需完全部署一個內容管理服務器,僅負責處理內容對象的實體文件部分,同時需要部署ACS(accelerated content service)中間件,負責處理用戶請求的實體文件內容。當遠程用戶訪問內容數據時,主節點負責處理用戶請求內容數據的元數據,遠程節點負責處理用戶請求內容數據的實體文件,整個過程由部署在主節點與遠程節點的中間件處理,解決了分布式系統的透明性問題。
內容對象的元數據由主節點內容管理服務器進行存儲與維護,遠程節點不包含內容對象的元數據,數據的一致性由主節點唯一處理,從而保證了所有節點內容對象的數據一致性。系統架構如圖3所示。

圖3 基于內容分布式存儲的系統架構
基于內容分布式存儲的存儲庫方案與前一方案相比,遠程節點不維護內容對象的元數據,因此無法獨立應用,數據的有效冗余度下降,硬件成本一致,但軟件的維護成本則減少。該模式比較適合遠程節點需要通過客戶端形式的應用程序訪問大量實體文件數據的情況。
在現實生產環境中,設計文檔管理平臺僅采用B/S的模式,而上述兩種技術方案所支持的C/S模式沒有在遠程節點應用的需求。因此,本文提出采用基于內容緩存分布式存儲的存儲庫模式。
基于內容緩存分布式存儲的存儲庫模式,內容對象以緩存的方式分散地存儲于各個節點中間件服務器上,通過中間件的通信實現對內容對象緩存的存儲與復制。每個遠程節點僅需部署一個輕量級的BOCS(branch office caching service,分支辦公緩存服務)中間件服務器,負責對被請求內容對象的實體文件進行緩存。在主節點內容管理服務器上部署DMS中間件,負責處理遠程用戶的異步寫操作。
當遠程用戶訪問內容數據時,主節點負責處理用戶請求內容數據的元數據,遠程節點負責緩存并返回用戶請求內容數據的實體文件內容。第一次處理時,BOCS中間件對該內容對象的實體文件部分進行緩存,當再次請求已緩存的內容對象時則直接返回,從而提高了用戶訪問數據的性能。整個過程由部署在主節點與遠程節點中間件的服務器處理,解決了分布式系統的透明性問題。
內容對象的元數據及實體文件內容均在主節點內容管理服務器進行存儲與維護,遠程中間件節點僅處理對象的緩存數據,數據的一致性由主節點唯一處理,保證了內容對象數據的一致性。系統架構如圖4所示。

圖4 基于內容緩存分布式的系統架構
基于內容緩存分布式存儲的存儲庫技術與上述兩種技術方案相比,遠程節點為不維護內容對象的元數據,僅是一個輕量級的緩存中間件服務器,無法獨立應用,并且只可以處理HTTP或HTTPS方式的請求,不支持客戶端應用程序。但在硬件成本上則大大節省,同時軟件的維護成本也大大減少。該模式比較適合遠程節點僅需要通過Web形式的應用程序訪問大量實體文件數據的情況。
常見的負載均衡技術按其實現方法進行區分,主要有3種:基于DNS的負載均衡、基于反向代理的負載均衡和基于NAT的負載均衡。
·基于DNS的負載均衡技術:為一個域名配置多個IP地址,用戶在訪問同一域名時會得到其中一個IP地址,不同的用戶會得到不同的IP地址,從而訪問不同的服務器,以達到負載均衡的目的。
·基于反向代理的負載均衡技術:使用代理服務器將用戶請求均勻地轉發給多臺內部服務器之一,從而達到負載均衡的目的。
· 基于NAT的負載均衡技術:設置一個外部地址,當用戶訪問該外部地址時,地址轉換網關會把用戶請求轉發給多臺內部服務器之一,并且把請求的源地址改為自己的內部IP地址;當內部服務器把響應發給地址轉換網關時,地址轉換網關又把內部服務器的響應發給用戶,并且把響應的源地址改為外部地址。
從上述介紹與分析中可以得出,基于DNS的負載均衡、基于反向代理的負載均衡,均無法滿足會話保持的要求,而設計文檔管理平臺是基于J2EE體系的Web企業應用,實現內容管理等復雜業務邏輯,不是簡單的靜態內容,用戶訪問與操作應用系統時必須與同一臺前端Web應用服務器建立并保持會話。因此,本文提出采用業界較為先進的負載均衡器F5 BIG-IP提供的解決方案。
F5 BIG-IP是基于NAT的負載均衡技術的擴展,實現了L4/L7交換。F5 BIG-IP負載均衡處理主要包括以下幾個過程。
(1)截獲和檢查分析流量:保證只有合適的數據分組才能通過。
(2)服務器監控和健康檢查:隨時了解服務器群的可用性狀態。
(3)負載均衡和應用交換功能:通過各種策略或負載均衡算法將訪問請求導向到合適的服務器,這一過程包括目標服務器的選擇及NAT過程。
(4)會話保持:通過會話保持,保證一系列相關聯的會話不會被負載均衡到不同的服務器上。
在設計文檔管理平臺架構,采用F5 BIG-IP負載均衡的iRule策略將遠程節點的訪問通過IP規則分配至遠端的Web應用服務器,并用lesat connection策略對Web應用服務器集群進行監控與健康檢測。例如,上海的用戶訪問時,對請求進行截獲并應用iRule規則檢查,發現符合IP規則,則將請求發送到上海的Web服務器,再采用least connection策略對所有Web服務器進行監控和健康檢查,如果Web服務器SH1、SH2均為健康狀態,并且SH2的當前連接數小于SH1,則負載均衡器將請求發送至SH2,并維持用戶與Web服務器SH2的會話直至用戶的會話結束。在設計文檔管理平臺上,負載均衡應用方案如圖5所示。

圖5 F5負載均衡應用方案
綜合上述分布式存儲與負載均衡技術的分析與研究,提出將兩者結合到設計文檔管理平臺的系統架構上,實現系統架構從前端的負載均衡到后端內容數據分布式存儲的統一。目前采用新的系統架構方案已經在企業的生產環境中進行應用。改進后的設計文檔管理平臺的系統架構如圖6所示。

圖6 改進后的設計文檔管理平臺系統架構
本文所研究的分布式存儲與負載均衡技術,從解決大型企業局域網中分支機構訪問與存儲非結構化內容數據資源問題的角度出發,提出了輕量級的內容緩存分布式存儲技術方案,同時,結合負載均衡技術實現了系統的全局負載均衡,提高了系統的可用性與可靠性。目前系統已經在提供設計文檔相關的應用服務,運行效果良好。
隨著系統規模的增長,存儲服務器有可能成為系統性能的瓶頸和失效點,然而,虛擬化和云計算技術的結合帶來了全新的資源整合和使用模式,資源的按需分配和動態流動對于提高資源利用率、降低用戶總體擁有成本具有十分重要的意義。基于本文現在的工作,未來的一個研究方向將是利用虛擬化和云計算技術探索更加高效、高可用、低成本的系統架構方案。
1 吳思寧,賀勁,熊勁等.DCFS機群文件系統服務器組的設計與實現.2002全國開放式分布與并行計算學術會(DPCS2002),武漢,中國,2002
2 王云嵐,李增智,薛軍等.基于DNS的負載均衡算法研究.計算機工程與應用,2002,38(4):11~13
3 高國柱,將東興,金磊.一種基于反向代理的Web資源訪問控制系統的設計.計算機工程,2002,28(12):244~246
4 戶現鋒,張大陸.NAT技術及其在防火墻中的應用.微型機及應用,2000,19(6):32~33