論析河北文化信息資源共享中心共享工程平臺負載均衡解決方案
佚名
作者:吳秀紅紀鋒亞王小培
論文關鍵詞:文化共享工程;負載均衡;W EB服務器;F5ZopePloneZeo
論文摘要:本文詳細敘述了河北文化信息資源共享中心在共享.Y-程平臺建設中實施的負載均衡方案,涉及到相關技術的介紹及硬件、軟件以及實施解決方案的具體建設情況。
文化共享工程的數字資源已形成包括圖書期刊、舞臺藝術、音樂美術、影視作品、科普知識和文物鑒賞等內容的分布式文化信息資源庫群。每年提供不少于1萬冊的電子圖書,每年采集制作1000小時舞臺藝術、知識講座、影視節目等視頻資源;到2010年,共計100Th的數字資源向人民大眾服務。網絡的各個核心部分隨著業務量的提高、訪問量和數據流量的快速增長,其處理能力和計算強度也相應增大,使得單一設備根本無法承擔。在此情況下,如果扔掉現有設備去做大量的硬件升級,這樣將造成現有資源的浪費,而且如果再面臨下一次業務量的提升,這又將導致再一次硬件升級的高額成本投入,甚至性能再卓越的設備也不能滿足當前業務量的需求。升級或更新原有的設備并不能解決真正的問題,必須采用多臺服務器提供網絡服務分擔網絡請求才能提供處理大量并發服務的能力。因此,負載均衡技術成為工程網絡平臺建設的關鍵。
1負載均衡技術
負載均衡(Load Balance)建立在現有網絡結構之上,它提供了一種廉價有效透明的方法擴展網絡設備和服務器的帶寬、增加吞吐量、加強網絡數據處理能力、提高網絡的靈活性和可用性。有兩方面的含義:首先,大量的并發訪問或數據流量分擔到多臺節點設備上分別處理,減少用戶等待響應的時間;其次,單個重負載的運算分擔到多臺節點設備上做并行處理,每個節點設備處理結束后,將結果匯總,返回給用戶,系統處理能力得到大幅度提高。其關鍵是采用何種技術在服務器之間進行均衡的負載分配。
從負載均衡所采用的設備對象可以分為:軟件負載均衡、硬件負載均衡。
軟件負載均衡解決方案是指在一臺或多臺服務器相應的操作系統上安裝一個或多個附加軟件來實現負載均衡,如DNS Load Balance,CheckPoint Firewall-1 onnectControl等,它的優點是基于特定環境,配置簡單,使用靈活,成本低廉,可以滿足一般的負載均衡需求。
軟件解決方案缺點也較多,因為每臺服務器上安裝額外的軟件運行會消耗系統不定量的資源,越是功能強大的模塊,消耗得越多,所以當連接請求特別大的時候,軟件本身會成為服務器工作成敗的一個關鍵;軟件可擴展性并不是很好,受到操作系統的限制;由于操作系統本身的Bug,往往會引起安全問題。
硬件負載均衡解決方案是直接在服務器和外部網絡間安裝負載均衡設備,這種設備我們通常稱之為負載均衡器,由于專門的設備完成專門的任務,獨立于操作系統,整體性能得到大量提高,加上多樣化的負載均衡策略,智能化的流量管理,可達到最佳的負載均衡需求。負載均衡器有多種多樣的形式,除了作為獨立意義上的負載均衡器外,有些負載均衡器集成在交換設備中,置于服務器與Internet鏈接之間,有些則以兩塊網絡適配器將這一功能集成到PC中,一塊連接到Internet上,一塊連接到后端服務器群的內部網絡上。
一般而言,硬件負載均衡在功能、性能上優于軟件方式,不過成本昂貴。
2文化共享工程平臺負載均衡的硬件實施方案
河北文化信息資源共享中心采用FS-BIG-2400作為負載均衡器。其作用于網絡四一七層,覆蓋智能化流量管理,優化,負載均衡,應用交換以及安全套接層虛擬專網SSL. VPN,具備智能,靈活、緊湊、安全、高可用、高可靠和高可擴展性的特點。
FS-BIG-2400利用虛擬IP地址(VIP由IP地址和TCP/UDP應用的端口組成,它是一個地址)來為用戶的一個或多個目標服務器(稱為節點:目標服務器的IP地址和TCP/UDP應用的端口組成,它可以是Internet的私網地址)提供服務。因此,它能夠為大量的基于TCP/IP的網絡應用提供服務器負載均衡服務。FS-BIG-2400連續地對目標服務器進行L4到L7合理性檢查,當用戶通過VIP請求目標服務器服務時,根據目標服務器之間性能和網絡健康情況,選擇性能最佳的服務器響應用戶的請求。如果能夠充分利用所有的服務器資源,將所有流量均衡的分配到各個服務器,就可以有效地避免“不平衡”現象的發生。
FS - BIG - 2400是一臺對流量和內容進行管理分配的設備。它提供12種靈活的算法將數據流有效地轉發到它所連接的服務器群。目前根據不同網站的訪問方式以及資源訪問的頻率,在負載均衡器策略選擇中,我們分別采用了輪詢(RoundRobin )、比率(Ratio )、最少的連接方式(LeastConnection)和最快模式(Fastest)這四種算法。
例如對~w,dhhc.net的訪間,其對應的內網解析地址為:192.168.1.10,端口號為800
在負載均衡器FS的pool中設置虛擬服務器的IP地址和端口號:192.168.1.10:80;
設置目標服務器即真正提供WEB服務的服務器(共3個)的IP地址和端口號分別是:
10,1,1,1:80對應192,168.1.10:80
10.1.1.2:80對應192,168.1,10:80
10.1,1,3:80對應192.168.1.10:80
為其分配最快模式(Fastest)的算法,這樣在每一次訪問到來時,就直接傳遞給響應最快的服務器。負載均衡技術實施一年多的時間中,極大提高了服務器處理能力和計算強度,對今后的業務的增長打下了良好的基礎。尤其是2006年8月開始舉辦的“我的數字生活”活動以來,訪問量和數據流量的快速增長,河北省圖書館網和河北文化信息資源共享中心網每月近巧萬的訪問人次,網頁的訪問量達到500000個,在此期間我們的整體網絡一直都在提供持續、高質量的服務。再一次驗證了我們這種方案的正確可行性。
3文化共享工程平臺負載均衡的軟件實施方案
河北文化信息資源共享中心采用ndcnc內容管理系統的zeo架構作為資源發布平臺。通過增加業務服務器分散用戶請求服務,提高了訪問性能和系統的穩定性。
ndcnc系統是在Plone內容管理系統之上開發的內容管理系統。Plone本身是Zope應用的產品,是基于CMF框架結構開發而成的。
Plone系統是基于Zope內容管理框架(CMF) ( CMF的Zope技術2002年獲得Linux Journal應用服務器大獎,是一款最先進的應用服務器軟件。)面向對象Python語言開發的內容管理系統的開放源代碼系統;通過語言接口可以使用C,VC+ + ,Java,Jython等其他語言;系統支持集群和負載平衡、數據庫分布管理等應用;支持跨平臺應用,包括Window。系統、Liunx系統、FreeBSD系統、Unix系統和Solari。系統,底層支持Unicode編碼體系;具有豐富的功能和依存各種準則:Java和Python腳本語言、SQL語句、RDBMS連接、Session管理、全文檢索、虛擬主機、數據分散管理、鏡像網站、用戶權限統一管理、i18n統一國際化功能和內容狀態控制;支持以下標準協議:HTTP , XML -RPC,WebDAV,FTP,ICP和SOAP。
Zope是框架結構開源軟件,Zope全面支持對象管理:系統內部任何事物按照對象操作,標準數據庫使用對象數據庫ZODB(ZODB是目前最具竟爭力的對象數據庫,支持Undo、版本和事務處理),提供其他關系數據庫連接功能支持PostgreSQL,MySQL,SQL Server,Oracle和DB2等產
Zope和Plone是開源軟件,開放源代碼的最大好處就是即使開發者在不積極介人的情況下,用戶自身也可以進行維護、開發、委托第三方服務;性能價格比高可以減少財政的壓力;可靠性好;彈性大;安全性好,故障以及安全報告可以得到及時更新和反饋;代碼透明且可被修改。
下圖是Plone系統框架結構:
ZEO是一個允許多個tope程序共同使用一個tope對象數據庫的系統。通過使用ZEO系統,你可以一臺或多臺服務器上運行多個ZOPE實例,這樣就可以將所有對網站的請求分散在多個服務器上。我們可以隨著訪問者不斷增多而添加新的服務器,這樣就可以保證服務的穩定性和可靠性了。更重要的是,采用了這套系統后,當我們的某一臺服務器出現故障時,在我們修復這臺服務器的同時,其他的ZOPE實例服務器仍然可以保證網站的正常訪問。而且,ZEO系統保證所有的ZOPE實例呈現的數據都保持高度一致,即全部從同一個ZOPE對象數據庫提取數據。 ZEO是一個客戶端朋及務端架構,客戶端是一個ZOPE實例程序(zeoclient),服務端是ZEO存儲服務器(ZEO Storage Server),下圖是其結構示意圖:
ZEO SERVER安裝
安裝Zope 2.7,比如安裝到如下目錄:
c:\ndcnc\zope
添加ZEO實例
例如:添加到d: \ ndcnc \ zeo,使用8000端口:
python c:\zope\bin\mkzeoinstance.py d:\ndcnc\zeo 8000
拷貝初始數據庫Data. fs到實例var目錄中,名字為master-main, fs
配置zeo.conf,修改數據庫區域的設置:
path$INSTANCE/var/master-main. fs
配置zeo. bat
)set PYTHON=C:\zope\bin\python.exe
)set ZODB_HOME=C:\zope\lib\python
)set CONFIG_FILE=d:\ndcnc\zeo\etc\zeo.conf
)set PYTHONPATH= %ZODB_HOME%
@ set RUNZEO = % ZODB_ HOME %\ZEO\runzeo.PY
“%PYTHON %”“% RUNZEO %”一C“%CONFIG_FILE%”%1 %2%3 %4 %5 %6 %7
ZEO CLIENT安裝
確保Zope 2. 7已經安裝,比如安裝到c八ndcnc \zope目錄中
安裝tope實例,如:
python c八ndcnc、zope\bin\mkzopeinstance. py
創建實例到目錄:d八ndcnc \ clientl
配置etc/tope. conf,修改數據庫區域的設置
mount-point/
server (zeo的ip) :9000
cache一size 1000000000
storage mam
name master-mam
var$INSTANCE/var
cache一size 100000
配置runzope.bat
)set PYTHON=C:\ndcnc\Python\python.exe
)set ZOPE_HOME=c:\ndcnc\zope
@set ZODB3_ HOME=C:\ndcnc\zope\lib\python
)set INSTANCE_HOME二d:\ndcnc\zeoclient
)set SOFTWARE_ HOME=c:\ndcnc\wpe\lib\ python
)set CONFIC;一FILE=d:\ndcnc\clientl\etc\ zeo. conf
)set PYTHONPATH= %SOFTWARE_HOME% ) set RUNZEO=%ZODB3_HOME% /ZEO/runzeo. PY
“%PYTHON%”“%RUNZEO %”一C“%CONFIGFILE%”%1 %2 %3 %4 %5 %6 %7
至此所有安裝配置結束,測試服務器和客戶端。