楊艷波 魏 巍
(中國電子科技集團(tuán)公司第五十四研究所河北石家莊050081)
自911以來,安全問題成為國內(nèi)外諸信息系統(tǒng)的關(guān)注點(diǎn)。從長遠(yuǎn)發(fā)展以及確保其安全、連續(xù)和穩(wěn)定運(yùn)行等方面考慮,建設(shè)信息系統(tǒng)災(zāi)難備份中心以保證其數(shù)據(jù)安全和業(yè)務(wù)連續(xù)性,有利于增強(qiáng)抵御風(fēng)險(xiǎn)能力,提高服務(wù)水平。
按照GB/T20988規(guī)定[1],災(zāi)難備份中心是用于災(zāi)難發(fā)生后接替主系統(tǒng)進(jìn)行數(shù)據(jù)處理和支持關(guān)鍵業(yè)務(wù)功能運(yùn)作的場所,可提供災(zāi)難備份系統(tǒng)、備用的基礎(chǔ)設(shè)計(jì)和專業(yè)技術(shù)支持及運(yùn)行維護(hù)管理能力。災(zāi)難備份系統(tǒng)由數(shù)據(jù)備份系統(tǒng)、備用數(shù)據(jù)處理系統(tǒng)和備用的網(wǎng)絡(luò)系統(tǒng)組成的信息系統(tǒng)。
災(zāi)難備份系統(tǒng)建設(shè)的終極目標(biāo)是實(shí)現(xiàn)“零數(shù)據(jù)丟失”、“業(yè)務(wù)無間斷連續(xù)運(yùn)行”。要實(shí)現(xiàn)時(shí)間無間隙災(zāi)難備份,高精度時(shí)間同步實(shí)現(xiàn)是必須考慮的問題。網(wǎng)絡(luò)測量與控制系統(tǒng)的精密時(shí)間同步標(biāo)準(zhǔn)-精密時(shí)間協(xié)議(Precision Time Protocol,PTP),可在網(wǎng)絡(luò)中不同設(shè)備間實(shí)現(xiàn)亞微秒級(jí)的同步精度。文章主要介紹基于PTP協(xié)議災(zāi)備系統(tǒng)時(shí)間同步的具體實(shí)現(xiàn)。
PTP基本原理的同步過程如圖1所示。
圖1 PTP同步過程圖
從時(shí)鐘偏移量的修正和傳輸時(shí)延的修正,需要用到4種報(bào)文:①同步報(bào)文Sync;②跟隨報(bào)文Follow_Up;③延時(shí)請(qǐng)求Delay_Req報(bào)文;④延時(shí)回應(yīng)Delay_Resp報(bào)文[2]。主時(shí)鐘周期性地向網(wǎng)絡(luò)上廣播發(fā)送同步Sync報(bào)文,與此同時(shí),主時(shí)鐘監(jiān)視上述同步報(bào)文實(shí)際發(fā)送的時(shí)間T1作為同步報(bào)文的精確時(shí)間戳,并在隨后的Follow Up報(bào)文中攜帶T1。網(wǎng)絡(luò)中的所有其它從時(shí)鐘在收到Sync同步報(bào)文后,首先記下報(bào)文的精確到達(dá)時(shí)間T2,然后在T3m時(shí)刻接收到Follow Up報(bào)文,從Follow Up報(bào)文中取出時(shí)間戳T1。
為了得到主從時(shí)鐘的傳輸時(shí)延,網(wǎng)絡(luò)中的所有從時(shí)鐘以單播方式向主時(shí)鐘發(fā)送延時(shí)請(qǐng)求Delay_Req報(bào)文,同時(shí)記錄該報(bào)文在網(wǎng)絡(luò)接口處的實(shí)際發(fā)送時(shí)間T3。主時(shí)鐘每次接收到延時(shí)請(qǐng)求報(bào)文時(shí)都會(huì)記下此報(bào)文的精確到達(dá)時(shí)間T4,并在隨后的Delay Resp報(bào)文中發(fā)送T4給相應(yīng)的從時(shí)鐘,從時(shí)鐘接受到Delay Resp報(bào)文后,并取出時(shí)間戳T4。
Sync報(bào)文在主從時(shí)鐘的時(shí)間差為:
Delay_Req報(bào)文在從主時(shí)鐘的時(shí)間差為:
若系統(tǒng)鏈路對(duì)稱均勻,則主從時(shí)鐘間的偏移量TOffset和傳輸延遲TDelay為:
通過TOffset和TDelay修正從時(shí)鐘的本地時(shí)間,從而與主時(shí)鐘實(shí)現(xiàn)時(shí)間同步[3]。
在災(zāi)備系統(tǒng)中,需要時(shí)間同步的設(shè)備有若干計(jì)算機(jī),被網(wǎng)絡(luò)設(shè)備和安全設(shè)備分隔成多個(gè)子網(wǎng),呈網(wǎng)狀網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)。采用主從式算法[4],如圖2所示。
圖2 容災(zāi)系統(tǒng)主從算法原理圖
①主校時(shí)服務(wù)器位于根,與外部時(shí)間資源采用直接時(shí)間傳遞技術(shù)連接或利用本機(jī)的時(shí)鐘作為整個(gè)系統(tǒng)的時(shí)間基準(zhǔn)。當(dāng)進(jìn)行時(shí)間同步時(shí),主校時(shí)服務(wù)器的時(shí)鐘信號(hào)傳遞給子網(wǎng)校時(shí)服務(wù)器,子網(wǎng)校時(shí)服務(wù)器的時(shí)鐘信號(hào)傳遞給子網(wǎng)各設(shè)備;
②主校時(shí)服務(wù)器與子網(wǎng)校時(shí)服務(wù)基于PTP完成網(wǎng)絡(luò)時(shí)間標(biāo)準(zhǔn)的時(shí)間同步,子網(wǎng)校時(shí)服務(wù)與校時(shí)代理完成子網(wǎng)內(nèi)設(shè)備的時(shí)間同步。系統(tǒng)的時(shí)間同步全部采用軟件實(shí)現(xiàn)報(bào)文由報(bào)文頭、報(bào)文主體及擴(kuò)展字段等部分組成,在以太網(wǎng)中,按照TCP/IP協(xié)議模型,數(shù)據(jù)報(bào)文封裝在UDP中;
③主校時(shí)服務(wù)器可選擇網(wǎng)絡(luò)中一臺(tái)性能高的機(jī)器,亦可獨(dú)立部署一臺(tái)高性能計(jì)算機(jī)。本方案中選擇獨(dú)立部署一臺(tái)微機(jī)服務(wù)器[5],通過直連主交換機(jī)經(jīng)由主交換機(jī)與各子網(wǎng)交換機(jī)網(wǎng)絡(luò)連接。操作系統(tǒng)為Windows系統(tǒng),安裝主校時(shí)服務(wù)軟件;
④子網(wǎng)校時(shí)服務(wù)選擇各子網(wǎng)中一臺(tái)負(fù)載較小機(jī)器,安裝子網(wǎng)校時(shí)服務(wù)軟件;
⑤其余設(shè)備均部署校時(shí)代理軟件。
容災(zāi)備份系統(tǒng)時(shí)間同步軟件工作流程如圖3所示。
圖3 時(shí)間同步軟件工作流程
⑴主校時(shí)服務(wù)軟件與子網(wǎng)校時(shí)服務(wù)軟件的時(shí)間同步工作流程
①主校時(shí)服務(wù)軟件通過界面輸入(或外部接口)獲取標(biāo)準(zhǔn)時(shí)間源的標(biāo)準(zhǔn)時(shí)間,進(jìn)行本地校時(shí);②主校時(shí)服務(wù)軟件通過讀取System.DateTime的Now屬性,獲取本地時(shí)間;③主校時(shí)服務(wù)軟件生成主時(shí)鐘同步報(bào)文并發(fā)送;④主校時(shí)服務(wù)軟件生成主時(shí)鐘跟隨報(bào)文并發(fā)送;⑤子網(wǎng)校時(shí)服務(wù)軟件接收同步報(bào)文,記錄接收時(shí)間,解析報(bào)文內(nèi)容;⑥子網(wǎng)校時(shí)服務(wù)軟件接收主時(shí)鐘跟隨報(bào)文,解析報(bào)文內(nèi)容,獲取時(shí)間戳;⑦子網(wǎng)校時(shí)服務(wù)軟件獲取本地時(shí)間,生成并發(fā)送從時(shí)鐘延時(shí)請(qǐng)求報(bào)文;⑧主校時(shí)服務(wù)軟件接收延時(shí)請(qǐng)求報(bào)文;⑨主校時(shí)服務(wù)軟件獲取本地時(shí)間,生成延時(shí)回應(yīng)報(bào)文并發(fā)送;⑩子網(wǎng)校時(shí)服務(wù)軟件接收延時(shí)回應(yīng)報(bào)文,解析報(bào)文,子網(wǎng)校時(shí)服務(wù)軟件計(jì)算偏移量和傳輸時(shí)延,修正本地時(shí)間。
⑵子網(wǎng)校時(shí)服務(wù)軟件與校時(shí)代理軟件的時(shí)間同步工作流程
①子網(wǎng)校時(shí)服務(wù)軟件通過JNI接口,獲取本地時(shí)間,子網(wǎng)校時(shí)服務(wù)軟件生成主時(shí)鐘同步報(bào)文并發(fā)送;②子網(wǎng)校時(shí)服務(wù)軟件生成主時(shí)鐘跟隨報(bào)文并發(fā)送;校時(shí)代理軟件接收同步報(bào)文,記錄接收時(shí)間,解析報(bào)文內(nèi)容,校時(shí)代理軟件接收主時(shí)鐘跟隨報(bào)文,解析報(bào)文內(nèi)容,獲取時(shí)間戳;③校時(shí)代理軟件獲取本地時(shí)間,生成并發(fā)送從時(shí)鐘延時(shí)請(qǐng)求報(bào)文。子網(wǎng)校時(shí)服務(wù)軟件接收延時(shí)請(qǐng)求報(bào)文;④子網(wǎng)校時(shí)服務(wù)軟件獲取本地時(shí)間,生成延時(shí)回應(yīng)報(bào)文并發(fā)送,校時(shí)代理軟件接收延時(shí)回應(yīng)報(bào)文,解析報(bào)文,校時(shí)代理務(wù)軟件計(jì)算校正值,通過SetLocal-Time接口函數(shù)設(shè)置本地時(shí)間;⑤主校時(shí)服務(wù)軟件完成標(biāo)準(zhǔn)時(shí)間獲取、本地校時(shí)、本地時(shí)間獲取、同步報(bào)文生成、跟隨報(bào)文生成、延時(shí)回應(yīng)報(bào)文生成、延時(shí)請(qǐng)求報(bào)文生成、報(bào)文發(fā)送等功能模塊;⑥子網(wǎng)校時(shí)服務(wù)軟件完成同步報(bào)文、跟隨報(bào)文、延時(shí)回應(yīng)報(bào)文接收與解析、計(jì)算修正值、本地校時(shí)以及本地時(shí)間獲取、同步報(bào)文生成、跟隨報(bào)文生成、延時(shí)回應(yīng)報(bào)文生成、延時(shí)請(qǐng)求報(bào)文接收及解析、報(bào)文發(fā)送等功能模塊;⑦校時(shí)代理軟件完成同步報(bào)文、跟隨報(bào)文、延時(shí)回應(yīng)報(bào)文接收與解析、計(jì)算修正值、本地校時(shí)等功能模塊;⑧時(shí)間同步軟件系統(tǒng)按照10次/s的頻率周期進(jìn)行處理[6],對(duì)5個(gè)子網(wǎng)(其中一個(gè)子網(wǎng)邊界有阻隔措施)、42臺(tái)計(jì)算機(jī)進(jìn)行系統(tǒng)測試,測試結(jié)果為時(shí)間同步精度達(dá)到秒級(jí),子網(wǎng)時(shí)間同步精度可達(dá)到0.1 s。
基于PTP協(xié)議進(jìn)行容災(zāi)備份系統(tǒng)時(shí)間同步設(shè)計(jì)實(shí)現(xiàn),可以完成不同子網(wǎng)、不同設(shè)備的時(shí)間同步問題。且本項(xiàng)目中考慮實(shí)際局域網(wǎng)的子網(wǎng)分隔,進(jìn)行主從算法時(shí)間同步,可以更好保證子網(wǎng)的時(shí)間一致性。
[1]G B/T 20988,信息安全技術(shù)信息系統(tǒng)災(zāi)難恢復(fù)規(guī)范[S].
[2]劉 高,金施群.基于I EEE1588協(xié)議的局域網(wǎng)精確時(shí)鐘同步研究[J].現(xiàn)代顯示,2012(135):24-28.
[3]陳 宜,劉 偉,宜 鑫,等.I EEE1588時(shí)鐘同步技術(shù)在330kV延安變智能改造中的應(yīng)用[J].信息系統(tǒng)工程,2012(8):98-100.
[4]賀 鵬,李 菁.計(jì)算機(jī)網(wǎng)絡(luò)時(shí)間同步技術(shù)研究[J].三峽大學(xué)學(xué)報(bào),2003,25(4):319-323.
[5]雷小青.局域網(wǎng)統(tǒng)一授時(shí)系統(tǒng)的設(shè)想[J].信息與電腦,2012:72-73.
[6]徐海龍,羅雙喜.精密時(shí)間同步協(xié)議研究與實(shí)現(xiàn)[J].計(jì)算機(jī)工程與設(shè)計(jì),2012,33(7):2591-2595.