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