萬勇泉,龐迎春,王江立,陳宇達,李 莉
WAN Yong-Quan,PANG Ying-Chun,WANG Jiang-Li,CHEN Yu-Da,LI-Li
(中國地質(zhì)調(diào)查局武漢地質(zhì)調(diào)查中心,武漢430205)
(Wuhan Center of China Geological Survey,Wuhan 430205)
全國地質(zhì)資料目錄服務(wù)中心異地負載均衡試驗
萬勇泉,龐迎春,王江立,陳宇達,李 莉
WAN Yong-Quan,PANG Ying-Chun,WANG Jiang-Li,CHEN Yu-Da,LI-Li
(中國地質(zhì)調(diào)查局武漢地質(zhì)調(diào)查中心,武漢430205)
(Wuhan Center of China Geological Survey,Wuhan 430205)
目前全國地質(zhì)資料目錄服務(wù)中心系統(tǒng)處于單點運行,數(shù)據(jù)安全級別較低;利用現(xiàn)有的軟硬件資源,通過部署智能DNS、反向代理服務(wù)器、Windows的DFS分布式文件系統(tǒng)、MySQL數(shù)據(jù)備份等,構(gòu)建試驗環(huán)境,實現(xiàn)數(shù)據(jù)的異地分布、負載均衡、備份和高可用。
資料目錄;負載均衡;容災(zāi)備份
Kay words:The data directory;load balancing;disaster backup
全國地質(zhì)資料目錄服務(wù)中心集成國家、?。▍^(qū)、市)、大區(qū)、行業(yè)館藏成果、原始和實物地質(zhì)資料目錄信息,實現(xiàn)目錄數(shù)據(jù)動態(tài)更新維護,以集中與分布結(jié)合的服務(wù)方式向社會動態(tài)發(fā)布地質(zhì)資料目錄信息。全國地質(zhì)資料目錄服務(wù)中心系統(tǒng)是以開源的MySQL、Apache等開發(fā)完成的一套目錄數(shù)據(jù)采集、管理與服務(wù)的網(wǎng)絡(luò)應(yīng)用系統(tǒng)[1-2]。
雖然各級單位與機構(gòu)的地質(zhì)資料目錄數(shù)據(jù)是分布式運行與存儲,但全國集中管理的目錄數(shù)據(jù)中心是處于單點運行的,沒有數(shù)據(jù)異地容災(zāi)備份方案與措施,也沒有異地的負載均衡方案,應(yīng)對突發(fā)事件的能力比較低,無法抵制戰(zhàn)爭與災(zāi)難的突襲,對數(shù)據(jù)安全性帶來隱患。
在充分利用現(xiàn)有的網(wǎng)絡(luò)環(huán)境和存儲設(shè)備,搭建地質(zhì)資料目錄數(shù)據(jù)服務(wù)負載均衡的試驗環(huán)境,為全國地質(zhì)資料目錄服務(wù)中心提供數(shù)據(jù)保護與負載均衡,增強應(yīng)對突發(fā)事件的能力,增加抵制戰(zhàn)爭與災(zāi)難突襲的能力,消除數(shù)據(jù)安全隱患,提升系統(tǒng)服務(wù)能力。
2.1 試驗系統(tǒng)構(gòu)建原則
基于需求多樣性、技術(shù)復(fù)雜性和產(chǎn)品異構(gòu)性的特點,走開放的、“海納百川”的技術(shù)路線,使用好現(xiàn)有成熟可靠的技術(shù)和產(chǎn)品。綜合技術(shù)、成本、融合、發(fā)展四個方面,合理、充分利用設(shè)備,堅持設(shè)備共享的原則,提高設(shè)備利用率。遵遁以下原則:
A.先進性和成熟性。以開放的標準為基礎(chǔ),杜絕新產(chǎn)品或新技術(shù)的堆砌,采用國際上成熟的、先進的具有多廠商廣泛支持的軟硬件技術(shù),保證可行性、可操作性以及整體架構(gòu)必要的生命周期。
B.可靠性和安全性。采用高穩(wěn)定和高可靠的軟硬件,保障24小時不間斷運行,建立包括環(huán)境、技術(shù)、管理三方面的安全體系,為數(shù)據(jù)和應(yīng)用提供最大限度的保護,在正常情況下保障數(shù)據(jù)復(fù)制的一致和完整以及應(yīng)用的同步,確保災(zāi)難發(fā)生時能夠及時有效地實現(xiàn)切換。
C.性能價格。雖然軟硬件性能與價格成正比關(guān)系,但同樣性能的產(chǎn)品也存在較大價格差異,通過選用具有高性價比的設(shè)備和軟件,兼顧性能和成本兩方面的因素。
D.易于擴展與維護。選擇基于開放式架構(gòu)、模塊化設(shè)計的軟硬件產(chǎn)品,保障系統(tǒng)間的完全兼容,關(guān)鍵設(shè)備提供適當冗余,保證橫向與縱向擴展的便利。產(chǎn)品具有完善的自身管理功能,具備狀態(tài)監(jiān)控、故障分析、自動告警、在線恢復(fù)等功能,從而降低維護復(fù)雜度和維護成本。
2.2 突破南北互通瓶頸
中國的網(wǎng)絡(luò)特點比較特殊,最為突出的是電信與聯(lián)通的互通問題上,主要表現(xiàn)為用戶訪問對方網(wǎng)絡(luò)的內(nèi)容時速度緩慢問題,這樣一來,對于網(wǎng)站在全國范圍內(nèi)的推廣非常不利。
那么智能DNS策略解析就很好的解決了上面所述的問題[3]。DNS策略解析最基本的功能是可以智能的判斷訪問網(wǎng)站的用戶,然后根據(jù)不同的訪問者把域名分別解析成不同的IP地址。如果訪問者是聯(lián)通用戶,DNS策略解析服務(wù)器會把域名對應(yīng)的聯(lián)通IP地址解析給這個訪問者。如果用戶是電信用戶,DNS策略解析服務(wù)器會把域名對應(yīng)的電信IP地址解析給這個訪問者。智能DNS策略解析還可以給多個主機實現(xiàn)負載均衡,這時來自各地的訪問流量會比較平均的分布到每一個主機上。
本次試驗環(huán)境采用的是wddns智能DNS系統(tǒng),wddns是一套可通過web在線管理的免費智能DNS系統(tǒng),基于Bind+MySQL構(gòu)建開發(fā),安裝方便,快速,可在最短時間內(nèi)架構(gòu)一套DNS/智能DNS系統(tǒng).目前支持電信/網(wǎng)通/教肓網(wǎng)/移動/鐵通/廣電/按省份解析 (31個省市)/搜索引擎蜘蛛等多線路,具有強大的監(jiān)控功能,服務(wù)器健康檢測,即宕機檢測和切換,DNS服務(wù)器健康監(jiān)控,宕機切換,防攻擊檢測,可選自動屏蔽攻擊者IP,易擴展DNS服務(wù)器,數(shù)據(jù)自動同步等。
試驗方案如圖1所示,聯(lián)通用戶的訪問者在訪問目錄中心時,智能DNS策略解析服務(wù)器就會把位于聯(lián)通網(wǎng)絡(luò)的目錄中心服務(wù)器(中國地質(zhì)調(diào)查局武漢地質(zhì)調(diào)查中心,武漢)對應(yīng)的IP地址解析給這個訪問者,實現(xiàn)聯(lián)通用戶直接訪問位于聯(lián)通網(wǎng)絡(luò)的目錄中心。電信用戶的訪問者在訪問目錄中心時,智能DNS策略解析服務(wù)器就會把位于電信網(wǎng)絡(luò)的目錄中心服務(wù)器(中國地質(zhì)調(diào)查局發(fā)展研究中心,北京)對應(yīng)的IP地址解析給這個訪問者,實現(xiàn)電信用戶直接訪問位于電信網(wǎng)絡(luò)的目錄中心,這樣就跨越了不用運營商之間的互通瓶頸,實現(xiàn)高速訪問。
2.3 服務(wù)網(wǎng)站負載均衡
Web服務(wù)器面對的訪問者數(shù)量快速增加,網(wǎng)絡(luò)服務(wù)器需要具備提供大量并發(fā)訪問服務(wù)的能力,因此對于提供大負載Web服務(wù)的服務(wù)器來講,CPU、I/O處理能力很快會成為瓶頸。簡單的提高硬件性能并不能真正解決這個問題,因為單臺服務(wù)器的性能總是有限的,一般來講,一臺PC服務(wù)器所能提供的并發(fā)訪問處理能力大約為1000個,更為高檔的專用服務(wù)器能夠支持3000-5000個并發(fā)訪問,這樣的能力還是無法滿足負載較大的網(wǎng)站的要求。尤其是網(wǎng)絡(luò)請求具有突發(fā)性,當某些重大事件發(fā)生時,網(wǎng)絡(luò)訪問就會急劇上升,從而造成網(wǎng)絡(luò)瓶頸,必須采用多臺服務(wù)器提供網(wǎng)絡(luò)服務(wù),并將網(wǎng)絡(luò)請求分配給這些服務(wù)器分擔,才能提供處理大量并發(fā)服務(wù)的能力[4]。
圖1 基于智能DNS的目錄中心負載均衡方案Fig.1 Catalogue Center load balancing scheme based on intelligent DNS
當使用多臺服務(wù)器來分擔負載的時候,最簡單的辦法是將不同的服務(wù)器用在不同的方面,也就是按提供的內(nèi)容進行分割,然而由于網(wǎng)絡(luò)訪問的突發(fā)性,使得很難確定那些頁面造成的負載太大,如果將服務(wù)的頁面分割的過細就會造成硬件資源很大浪費。事實上造成負載過大的頁面常常是在變化中的,如果要經(jīng)常按照負載變化來調(diào)整頁面所在的服務(wù)器,那么勢必對管理和維護造成極大的負擔。因此這種分割方法只能是大方向的調(diào)整,對于大負載的網(wǎng)站,根本的解決辦法還需要應(yīng)用負載均衡技術(shù)[4]。
負載均衡的多臺服務(wù)器為對稱方式部署,每臺服務(wù)器都具備等價的地位,都可以單獨對外提供服務(wù)而無須其他服務(wù)器的輔助。然后通過某種負載分擔技術(shù),將外部發(fā)送來的請求合理地分配到對稱結(jié)構(gòu)中的某一臺服務(wù)器上,而接收到請求的服務(wù)器都獨立回應(yīng)客戶機的請求。
使用代理服務(wù)器可將請求合理地轉(zhuǎn)發(fā)給多臺內(nèi)部Web服務(wù)器之一上,從而達到負載均衡的目的。這種代理方式與普通的代理方式有所不同,標準代理方式是客戶使用代理訪問多個外部Web服務(wù)器,而這種代理方式是多個客戶使用它訪問內(nèi)部Web服務(wù)器,因此也被稱為反向代理模式。使用反向代理的好處是,可以將負載均衡和代理服務(wù)器的高速緩存技術(shù)結(jié)合在一起,提供有益的性能,具備額外的安全性,外部客戶不能直接訪問真實的服務(wù)器。并且實現(xiàn)起來可以實現(xiàn)較好的負載均衡策略,將負載可以非常均衡的分給內(nèi)部服務(wù)器,不會出現(xiàn)負載集中到某個服務(wù)器的偶然現(xiàn)象。
試驗方案如圖2所示,網(wǎng)絡(luò)用戶訪問目錄中心的請求,首先根據(jù)前一節(jié)的智能DNS解析結(jié)果被發(fā)送到了位于北京或武漢的負載均衡反向代理服務(wù)器,負載均衡器再將用戶訪問請求合理地分配到位于北京或武漢的目錄中心服務(wù)網(wǎng)站服務(wù)器,然后該網(wǎng)站服務(wù)器獨立地為用戶提供服務(wù)。
位于北京和武漢的目錄中心服務(wù)網(wǎng)站內(nèi)容采用Windows的DFS分布式文件系統(tǒng)部署,實現(xiàn)網(wǎng)站配置文件和靜態(tài)頁面的同步更新。
2.4 數(shù)據(jù)庫異地備份
全國地質(zhì)資料目錄服務(wù)中心系統(tǒng)采用的是MySQL數(shù)據(jù)庫,試驗系統(tǒng)采用Replication方式實現(xiàn)MySQL數(shù)據(jù)庫的異地分布、負載均衡、備份和高可用。復(fù)制分成以下三步:
A.當數(shù)據(jù)發(fā)生變化時,Master將數(shù)據(jù)改變記錄到二進制日志(Binary log)中,這些記錄叫做二進制日志事件(Binary log events);
B.Slave將Master的Binary log events復(fù)制到中繼日志(relay log);
C.Slave重做中繼日志中的事件,改變自己的數(shù)據(jù)。
圖2 目錄中心網(wǎng)站服務(wù)負載均衡方案Fig.2 The directory service center website load balancing scheme
圖3描述了這一過程:
該過程的第一部分就是Master記錄二進制日志。在每個事務(wù)更新數(shù)據(jù)完成之前,Master在二日志記錄這些改變。MySQL將事務(wù)串行的寫入二進制日志,即使事務(wù)中的語句都是交叉執(zhí)行的。在事件寫入二進制日志完成后,Master通知存儲引擎提交事務(wù)。
下一步就是Slave將Master的Binary log拷貝到中繼日志。首先,Slave開始一個工作線程——I/O線程。I/O線程在Master上打開一個普通的連接,然后開始Binlog dump process。Binlog dump process從Master的二進制日志中讀取事件,如果已經(jīng)跟上Master,它會睡眠并等待Master產(chǎn)生新的事件。I/O線程將這些事件寫入中繼日志。
SQL Slave thread處理該過程的最后一步。SQL線程從中繼日志讀取事件,更新Slave的數(shù)據(jù),使其與Master中的數(shù)據(jù)一致。
在北京建立目錄中心MySQL Master主數(shù)據(jù)庫,在武漢建立目錄中心MySQL Slave從數(shù)據(jù)庫,主從MySQL數(shù)據(jù)庫管理器通過北京到武漢的10 M數(shù)字電路專線相連,采用Replication方式實現(xiàn)MySQL主從數(shù)據(jù)庫的異地分布、負載均衡、備份和高可用,方案如下圖所示。
圖3 Replication方式實現(xiàn)MySQL數(shù)據(jù)庫異地備份流程示意圖Fig.3 The realization of Replication MySQL database backup process schematic diagram
圖4 目錄中心數(shù)據(jù)庫異地異步備份與負載均衡方案Fig.4 Catalog Center database asynchronous remote backup and load balancing scheme
本試驗首先通過部署智能DNS解決了南北互通問題,再通過部署反向代理實現(xiàn)訪問請求在多個Web服務(wù)網(wǎng)站服務(wù)器上的合理分配,利用Windows的DFS分布式文件系統(tǒng)實現(xiàn)網(wǎng)站配置文件和靜態(tài)頁面的同步更新,采用MySQL數(shù)據(jù)庫自身的Replication功能和北京-武漢已有的10M數(shù)字電路專線實現(xiàn)了后臺數(shù)據(jù)庫的異地分布、負載均衡、備份和高可用。
經(jīng)測試,系統(tǒng)整體運行狀態(tài)良好,實現(xiàn)了全國地質(zhì)資料目錄數(shù)據(jù)的異地容災(zāi)備份,實現(xiàn)了目錄服務(wù)中心的負載均衡,達到了試驗?zāi)康摹?/p>
[1]MySQL:The world’s most popular open source database[OL]. http://www.mysql.com.
[2]The Apache Software Foundation[OL].http://www.apache.org.
[3]wddns智能DNS系統(tǒng),免費智能DNS系統(tǒng),自架智能DNS系統(tǒng),智能DNS軟件[OL].http://www.wdlinux.cn/wddns.
[4]如何利用負載均衡建設(shè)高負載網(wǎng)絡(luò)站點[OL].http://server. zdnet.com.cn/server/2008/1120/1243347.shtml.
Wan Y Q,Pang Y C Wang J L,Chen Y D and Li L.Remote load balancing test for the national geological data catalog service.,2014,30(4):405-409.
At present,the center of national geological data directory service system is in single point operation, data security level is low.We use the current software and hardware resources,through the deployment of intelligent DNS,the reverse proxy server,Windows DFS distributed file system,MySQL data backup,etc.,construct the test environment,realize the data remote distribution,load balancing,backup and high availability.
TP399
A
1007-3701(2014)04-405-05
10.3969/j.issn.1007-3701.2014.04.013
2014-05-09;
2014-05-29.
中國地質(zhì)調(diào)查大區(qū)地質(zhì)資料信息服務(wù)集群化示范項目資助(12120113025600).
萬勇泉(1965—),男,教授級高級工程師,從事地質(zhì)資料管理與開發(fā)工作,E-mail:wyongquan@cgs.cn