何志強(qiáng),崔新會,鄭艷娟
HE Zhi-qiang,CUI Xin-hui,ZHENG Yan-juan
(河北金融學(xué)院 河北省科技金融重點(diǎn)實(shí)驗(yàn)室,保定 071051)
交通/治安卡口系統(tǒng)是運(yùn)行在主干道路上,實(shí)現(xiàn)車輛抓拍、記錄同時(shí)負(fù)責(zé)違章檢測的監(jiān)控系統(tǒng)。此類系統(tǒng)為無人值守運(yùn)行,故其安全性和可靠性要求較高。本文作者結(jié)合自身的工程經(jīng)驗(yàn),就目前的卡口系統(tǒng)存在的問題進(jìn)行了分析,提出了基于現(xiàn)有系統(tǒng)實(shí)現(xiàn)分布式存儲的解決方法。
目前此類系統(tǒng)中主要為第一代高清卡口系統(tǒng),是按照早期交通測速抓拍標(biāo)準(zhǔn)設(shè)計(jì),經(jīng)過多年運(yùn)行后逐漸暴露出了問題。由于早期網(wǎng)絡(luò)覆蓋率低,卡口系統(tǒng)被設(shè)計(jì)為單機(jī)運(yùn)行、人工現(xiàn)場管理的模式。目前公安網(wǎng)的覆蓋率有了顯著提高,卡口系統(tǒng)的網(wǎng)絡(luò)化成本顯著降低,如何充分利用網(wǎng)絡(luò)提高現(xiàn)有系統(tǒng)的效能成為亟待解決的問題。
由于單機(jī)卡口系統(tǒng)資源獨(dú)立,相互無法共享,且環(huán)境的差異使不同卡口負(fù)荷差別明顯,特別是存儲資源。由于卡口具備交通違法檢測功能,違法記錄保留時(shí)間較長,這些累積數(shù)據(jù)導(dǎo)致某些路段的系統(tǒng)存儲資源十分緊張。目前的卡口系統(tǒng)主機(jī)性能尚能滿足信息處理的要求,而存儲資源成為限制其效能發(fā)揮的主要因素。
為了適應(yīng)網(wǎng)絡(luò)化環(huán)境,現(xiàn)有的系統(tǒng)可從架構(gòu)和功能兩方面進(jìn)行改造。其中架構(gòu)上的改造思路是主機(jī)上收實(shí)現(xiàn)集群化管理,現(xiàn)場模塊全面IP化,在網(wǎng)絡(luò)中實(shí)施QOS策略。從架構(gòu)上改進(jìn)的方法最大化的利用了網(wǎng)絡(luò),簡化了前端功能,優(yōu)化了結(jié)構(gòu),提高了可靠性和資源利用率,但所有模塊均需重新設(shè)計(jì),因而更適于新投入的項(xiàng)目。
圖1 采用分布式存儲技術(shù)互聯(lián)后的卡口系統(tǒng)
功能上改進(jìn)可以以現(xiàn)有的卡口為基礎(chǔ),針對矛盾最突出的存儲資源問題,通過分布式存儲技術(shù)實(shí)現(xiàn)主機(jī)間存儲資源共享。如圖1所示,分立的卡口系統(tǒng)通過網(wǎng)絡(luò)實(shí)現(xiàn)存儲資源共享,還可使用專用存儲主機(jī),使存儲資源擴(kuò)充更加靈活。采用分布式存儲體系后的卡口主控軟件結(jié)構(gòu)如圖2所示,相比其他改進(jìn)方式,此方式只需修改存儲訪問層,是現(xiàn)有系統(tǒng)升級的最佳方案之一。
圖2 采用分布式存儲體系后的卡口主控機(jī)軟件體系結(jié)構(gòu)
由于分布式存儲運(yùn)行過程中,網(wǎng)絡(luò)資源的可用性的不確定性很大,這要求該系統(tǒng)應(yīng)具有主機(jī)信息的自動匯總、更新和分發(fā)能力,故需要設(shè)計(jì)一個(gè)能夠?qū)崿F(xiàn)卡口主機(jī)之間相互自主發(fā)現(xiàn)的動態(tài)主機(jī)發(fā)現(xiàn)協(xié)議(Dynamic Host Discover Protocol,簡稱DHDP)。
為了使主機(jī)間能夠自主發(fā)現(xiàn),同時(shí)能夠保證系統(tǒng)的強(qiáng)壯性,DHDP應(yīng)具備自主性、快速性和較低的帶寬需求性等特點(diǎn),針對這些需求,筆者從如下兩個(gè)角度入手進(jìn)行了設(shè)計(jì)。
1)廣播與單播
為了實(shí)現(xiàn)主機(jī)間相互發(fā)現(xiàn),最簡單的方法是利用廣播。在主機(jī)數(shù)量較少的時(shí)候,所有主機(jī)參與廣播是可以接受的,但隨著主機(jī)數(shù)量的增加,此方式易引起廣播風(fēng)暴,因此在DHDP中應(yīng)盡量限制廣播的使用。從實(shí)現(xiàn)的角度分析,沒有廣播的觸發(fā)會導(dǎo)致DHDP協(xié)議計(jì)算出現(xiàn)死鎖,尤其是在新主機(jī)加入或處于初始態(tài)下會出現(xiàn)死鎖。理論上任一主機(jī)發(fā)出廣播均可使其他主機(jī)發(fā)現(xiàn)其存在,即部分主機(jī)的廣播即可打破死鎖,使協(xié)議完成計(jì)算。因此筆者將主機(jī)廣播設(shè)計(jì)成采用p堅(jiān)持算法的策略,即按概率p堅(jiān)持是否發(fā)出廣播,這樣既可在有效減少廣播的同時(shí)保證協(xié)議計(jì)算能夠完成。
2)主機(jī)的角色
當(dāng)主機(jī)能夠相互發(fā)現(xiàn)后,分布式存儲就具備了運(yùn)行條件。但若沒有信息更新的話,該體系將是脆弱的,例如有主機(jī)故障退出時(shí),若其不可達(dá)信息未通告的話就會導(dǎo)致出錯(cuò),因此DHDP要能快速收斂。純對等模式很難實(shí)現(xiàn)快速收斂,因此主機(jī)信息的匯總和分發(fā)應(yīng)采用C/S模式,即有專門主機(jī)負(fù)責(zé)信息匯總、輪詢,及時(shí)發(fā)現(xiàn)并通告不可達(dá)主機(jī)。負(fù)責(zé)信息匯總的主機(jī)被稱為“根主機(jī)”(簡稱根)和“備份根主機(jī)”。由于根除了信息匯總、通告外,還要承擔(dān)卡口監(jiān)控任務(wù),故一般由性能高且負(fù)荷輕的主機(jī)擔(dān)任。
DHDP協(xié)議的關(guān)鍵問題是根的確定。筆者將DHDP協(xié)議狀態(tài)機(jī)設(shè)計(jì)如圖3所示,可直接按狀態(tài)機(jī)偽碼編程實(shí)現(xiàn)協(xié)議,狀態(tài)機(jī)轉(zhuǎn)換過程及原理描述如下:
圖3 動態(tài)主機(jī)發(fā)現(xiàn)協(xié)議狀態(tài)機(jī)
假設(shè)某主機(jī)未加入DHDP協(xié)議體系,該主機(jī)會依概率p堅(jiān)持廣播DHDP協(xié)議數(shù)據(jù)單元(Dynamic Host Discover Protocol Unit, 簡 稱DHDPU);若依概率p選擇不廣播,則會啟動定時(shí)器,等待其他節(jié)點(diǎn)的報(bào)文,若超時(shí)后未收到報(bào)文則會重新嘗試廣播。在概率p取值合理的情況下,網(wǎng)絡(luò)中只有少數(shù)主機(jī)會發(fā)送廣播,在實(shí)現(xiàn)協(xié)議計(jì)算的同時(shí)廣播得到了有效抑制。p堅(jiān)持算法結(jié)合定時(shí)器的設(shè)計(jì)還可以在新主機(jī)在加入已收斂的網(wǎng)絡(luò)時(shí)完成協(xié)議計(jì)算的觸發(fā)。
如前所述,DHDP協(xié)議的根應(yīng)由性能好且負(fù)荷小的主機(jī)擔(dān)任,因此根的選舉在實(shí)現(xiàn)自動化的同時(shí)也要接受人工干預(yù)。本文采用了“可管理優(yōu)先級”方式實(shí)現(xiàn)根選舉的管理,優(yōu)先級采用“優(yōu)先級字段+IP地址”作為主機(jī)優(yōu)先級取值,其中優(yōu)先級字段為1字節(jié),占據(jù)優(yōu)先級值的高8位;優(yōu)先級值的低32位為主機(jī)IP,優(yōu)先級值越小則其優(yōu)先級越高。在無人工干預(yù)的情況下,優(yōu)先級字段默值為0xff,這樣IP地址最小的主機(jī)將成為根。當(dāng)希望某主機(jī)成為根時(shí),只需修改其優(yōu)先級字段即可。
從圖3的狀態(tài)機(jī)可見,初始態(tài)可能是在體系結(jié)構(gòu)完全沒有計(jì)算的狀態(tài)下,如狀態(tài)I,該主機(jī)依概率p發(fā)出廣播報(bào)文后,可能收到其他主機(jī)的報(bào)文,此時(shí)該主機(jī)做優(yōu)先級對比,若該主機(jī)為已知的最高優(yōu)先級,則將過渡至狀態(tài)K,在定時(shí)器控制下等待更高優(yōu)先級回應(yīng),若未收到更高優(yōu)先級回應(yīng),該主機(jī)將成為根。成為根后,該主機(jī)會選擇次高優(yōu)先級主機(jī)作為備份根,并將自身匯總的主機(jī)信息發(fā)送至備份根,同時(shí)將主機(jī)信息選擇分發(fā)給普通主機(jī)。若該主機(jī)收到更高優(yōu)先級回應(yīng),則會放棄“擬根主機(jī)”并對最高優(yōu)先級主機(jī)回應(yīng)。
若該主機(jī)由狀態(tài)D過度到狀態(tài)E,即有來自根的回應(yīng),說明現(xiàn)有的協(xié)議體系已經(jīng)完成了收斂。在加入時(shí),該主機(jī)與根比對優(yōu)先級值,若自身優(yōu)先級比現(xiàn)有的根優(yōu)先級高則新主機(jī)將會代替原有的根并重新指定備份根(狀態(tài)G);若新主機(jī)優(yōu)先級較根優(yōu)先級低,則成為普通主機(jī)(狀態(tài)H),根主機(jī)會通告新主機(jī)加入。
根會監(jiān)聽網(wǎng)上的應(yīng)答報(bào)文,準(zhǔn)備新主機(jī)加入或根主機(jī)交接。因此,DHDP協(xié)議在實(shí)施過程中,暫定的根主機(jī)僅作為過渡角色將很快被取代的話,則該主機(jī)的優(yōu)先級字段不能夠取最高值——0x00,而應(yīng)取一個(gè)較低值如0xfd以保留升級空間。
在協(xié)議數(shù)據(jù)格式方面,由于協(xié)議報(bào)文肩負(fù)著主機(jī)角色的分配任務(wù),因此該協(xié)議報(bào)文必須包含優(yōu)先級字段,以實(shí)現(xiàn)主機(jī)間的優(yōu)先級比對;協(xié)議數(shù)據(jù)報(bào)文還應(yīng)能反映主機(jī)角色;為了區(qū)分不同主機(jī)間的報(bào)文應(yīng)答關(guān)系,應(yīng)有SYN字段用以容納報(bào)文序號,應(yīng)有ACK字段用于與SYN序號對應(yīng);為了今后升級需要,單元中還應(yīng)提供保留字段;同時(shí)協(xié)議報(bào)文還要承擔(dān)協(xié)議體系中主機(jī)信息的更新、根的遷移、備份根指定等不同用途的協(xié)議報(bào)文,因此DHDP協(xié)議報(bào)格式如圖4所示。
圖4 協(xié)議報(bào)文格式
本文分析了交通/治安卡口系統(tǒng)的工作特性,及現(xiàn)有的系統(tǒng)在網(wǎng)絡(luò)化形勢下亟需改進(jìn)的問題,提出了在此類系統(tǒng)中采用分布式存儲的解決方案,針對此類系統(tǒng)的運(yùn)行環(huán)境設(shè)計(jì)了一套適用于此類主機(jī)網(wǎng)絡(luò)的動態(tài)主機(jī)發(fā)現(xiàn)協(xié)議DHDP,實(shí)現(xiàn)了協(xié)議體系中主機(jī)的動態(tài)發(fā)現(xiàn)和管理,能夠?qū)崿F(xiàn)未來系統(tǒng)的無縫升級。由于本協(xié)議針對的應(yīng)用目標(biāo)群為中小規(guī)模的專用網(wǎng)絡(luò),因此協(xié)議體系采用了扁平的運(yùn)行模式,當(dāng)此協(xié)議應(yīng)用到大規(guī)模系統(tǒng)中時(shí),可能會遇到根主機(jī)負(fù)載過大的情況。DHDP協(xié)議的分布化設(shè)計(jì)將是我們下一步需要研究的內(nèi)容。
[1] 吳俁,楊智,曲直,肖臻,代亞非. P2P存儲系統(tǒng)中基于用戶體驗(yàn)的可用性模型與應(yīng)用[J]. 中國科學(xué): 信息科學(xué),2011,9.
[2] 羅桂蘭,趙海,張文波,趙明,張浩華. 論CSMA/CD協(xié)議的數(shù)學(xué)原理[J]. 自動化學(xué)報(bào),2007,5.
[3] 宋瑋. 分布式存儲系統(tǒng)中的節(jié)點(diǎn)自主性問題研究[D]. 華南理工大學(xué),2010.