馬今
摘 要:為了實(shí)現(xiàn)公司各地節(jié)點(diǎn)之間的工作文檔和數(shù)據(jù)文件的同步,公司實(shí)現(xiàn)了一個(gè)文件同步系統(tǒng)。論文介紹了該文件同步系統(tǒng)的運(yùn)行環(huán)境和應(yīng)用需求,探討了加密網(wǎng)絡(luò)對(duì)系統(tǒng)需求、設(shè)計(jì)方案的影響,進(jìn)而采用大文件傳輸工具箱作為基礎(chǔ)工具,實(shí)現(xiàn)了文件同步系統(tǒng)。同時(shí),論文探討了文件同步系統(tǒng)取得的成效。結(jié)果表明:加密網(wǎng)絡(luò)環(huán)境下多節(jié)點(diǎn)文件同步系統(tǒng)能夠滿足企業(yè)的應(yīng)用要求。
關(guān)鍵詞:文件同步;加密網(wǎng)絡(luò);大文件傳輸
中圖分類號(hào): TP309 文獻(xiàn)標(biāo)識(shí)碼:A
Practice and Research of File Synchronization System in Multi Node Encrypted Network
Ma Jin
(Beijing Primeton Yundong Technology.Co.Ltd., Beijing 100080)
Abstract: In order to realize the synchronization of work documents and data files between different nodes, a file synchronization system has been implemented. This paper introduces the running environment of the file synchronization system and application requirements, discusses the influence of network encryption system design requirements. File transfer toolbox as a basic tool, realizes the file synchronization system. At the end of this paper, the effectiveness of the file synchronization system is discussed. The results show that the multi node file synchronization system in the encrypted network environment can meet the application requirements of the organization.
Key words: File Synchronization; Encryption Network; Large File Transfer
1 引言
在公司的信息技術(shù)框架下,以數(shù)據(jù)庫服務(wù)為基礎(chǔ)的數(shù)據(jù)中心已經(jīng)穩(wěn)定運(yùn)行多年。隨著信息技術(shù)的日新月異,特別是大數(shù)據(jù)技術(shù)、地理信息技術(shù)、VR/AR技術(shù)等不斷成熟,越來越多專業(yè)領(lǐng)域的應(yīng)用開發(fā)團(tuán)隊(duì)加入到公司信息化建設(shè)中,共同參與數(shù)據(jù)的價(jià)值挖掘。然而,數(shù)據(jù)庫服務(wù)不適合大數(shù)據(jù)量高并發(fā)查詢,用戶不斷新增管理困難,數(shù)據(jù)訪問難以審計(jì)監(jiān)督等局限性逐漸顯現(xiàn)。公司逐漸用數(shù)據(jù)服務(wù)總線為基礎(chǔ)的服務(wù)中心,代替現(xiàn)有的數(shù)據(jù)中心對(duì)外提供數(shù)據(jù)服務(wù),對(duì)基礎(chǔ)數(shù)據(jù)的管理能力大大提升。
在初步完成了數(shù)據(jù)共享管理目標(biāo)之后,公司的文件共享管理任務(wù)被提上日程。無論是通知、制度、規(guī)范的文本下發(fā),還是電子工作文檔的傳遞,再到異構(gòu)的大量基礎(chǔ)數(shù)據(jù)需要集中進(jìn)行全網(wǎng)同步—公司急需在加密網(wǎng)絡(luò)中實(shí)現(xiàn)各個(gè)節(jié)點(diǎn)之間的文件同步功能。
2 文件同步系統(tǒng)的建設(shè)背景和任務(wù)目標(biāo)
經(jīng)過需求整理,該文件同步系統(tǒng)應(yīng)滿足一下功能需求。
(1)同步的文件大小在數(shù)十k至數(shù)G(超過10G的文件采用異步機(jī)制共享)。
(2)文件的共享方可以自由選擇共享給那些加密網(wǎng)內(nèi)的節(jié)點(diǎn)。
(3)根據(jù)當(dāng)前網(wǎng)絡(luò)的帶寬占用比例,自動(dòng)調(diào)節(jié)傳輸速度,保證數(shù)據(jù)服務(wù)擁有足夠帶寬。
(4)在帶寬不足以完成當(dāng)前文件同步任務(wù)時(shí),自動(dòng)將任務(wù)切換為異步發(fā)送,待網(wǎng)絡(luò)帶寬空余再繼續(xù)發(fā)送。
(5)發(fā)送完成后立即刪除所發(fā)送文件的本地實(shí)例,以節(jié)省空間。
(6)任意節(jié)點(diǎn)刪除或遷移本地接收到的文件實(shí)例,都不影響其它節(jié)點(diǎn)文件實(shí)例的存續(xù)。
(7)所有文件共享、子節(jié)點(diǎn)文件實(shí)例刪除都留有記錄供審計(jì)。
(8)所有文件傳輸、同步任務(wù)的起止時(shí)間都被監(jiān)控,以便發(fā)現(xiàn)節(jié)點(diǎn)故障或通道失效,實(shí)時(shí)發(fā)出預(yù)警。
3 加密網(wǎng)環(huán)境介紹及其對(duì)系統(tǒng)設(shè)計(jì)的影響
通常情況下,網(wǎng)絡(luò)系統(tǒng)安全與性能、功能是一對(duì)矛盾的關(guān)系,如果某個(gè)系統(tǒng)不對(duì)外界提供任何服務(wù)(網(wǎng)絡(luò)斷開)外界是不可能對(duì)其構(gòu)成安全威脅的。但是,本加密網(wǎng)出于業(yè)務(wù)要求,不僅網(wǎng)絡(luò)節(jié)點(diǎn)本身位于全國的省、市、自治區(qū)加密子網(wǎng),還連接著各地公共服務(wù)部門的數(shù)據(jù)提供方和數(shù)據(jù)服務(wù)提供方。因此,無法采用網(wǎng)絡(luò)斷開的方式保證本加密網(wǎng)絡(luò)的安全性。
在本加密網(wǎng)的實(shí)際環(huán)境中,首先對(duì)加密網(wǎng)的數(shù)據(jù)安全風(fēng)險(xiǎn)作出分析,統(tǒng)一規(guī)劃,全面考慮;其次,統(tǒng)一配置、監(jiān)管、管理各種技術(shù),如虛擬加密網(wǎng)、文件加密技術(shù)、公鑰基礎(chǔ)設(shè)施(PKI)技術(shù)、操作系統(tǒng)底層技術(shù)、網(wǎng)絡(luò)基礎(chǔ)協(xié)議等;最后,加強(qiáng)制訂了有關(guān)網(wǎng)絡(luò)安全保密的各項(xiàng)制度和規(guī)范,制訂自動(dòng)化的考核機(jī)制并保證能夠嚴(yán)格執(zhí)行。這些安全機(jī)制的設(shè)計(jì)和實(shí)現(xiàn)都在文件同步需求產(chǎn)生之前,安全機(jī)制的存在為文件同步系統(tǒng)的設(shè)計(jì)實(shí)現(xiàn)造成了不小的挑戰(zhàn)。
3.1 物理層數(shù)據(jù)存儲(chǔ)安全機(jī)制
因?yàn)閿?shù)據(jù)本身是絕密或者機(jī)密,所以本加密網(wǎng)對(duì)數(shù)據(jù)本身進(jìn)行加密,杜絕存儲(chǔ)介質(zhì)非法讀取、被盜、不安全替換、未脫敏丟棄等造成重要數(shù)據(jù)泄密的可能。沒有密鑰的情況下,數(shù)據(jù)是不能解密的;而密鑰不存儲(chǔ)在數(shù)據(jù)所在位置本地。endprint
3.2 網(wǎng)絡(luò)層數(shù)據(jù)傳輸安全機(jī)制
網(wǎng)絡(luò)傳輸?shù)臄?shù)據(jù)必須是二次加密,以防止非法監(jiān)聽、廣播方式截獲數(shù)據(jù);同時(shí)將網(wǎng)絡(luò)按照安全級(jí)別,在邏輯上劃分成了不同的虛擬保密子網(wǎng),不同保密子網(wǎng)的通信加密算法類型不同,由網(wǎng)關(guān)節(jié)點(diǎn)實(shí)現(xiàn)限于內(nèi)存中的解密再加密任務(wù)。網(wǎng)關(guān)節(jié)點(diǎn)只允許相鄰節(jié)點(diǎn)通過操作系統(tǒng)認(rèn)證才能連通,不相鄰節(jié)點(diǎn)通過防火墻杜絕穿透訪問可能。從而將非法接入導(dǎo)致的安全風(fēng)險(xiǎn)范圍限制在本節(jié)點(diǎn)范圍內(nèi)(省、市、自治區(qū)加密子網(wǎng)),杜絕風(fēng)險(xiǎn)擴(kuò)散可能。
3.3 系統(tǒng)層用戶接入安全機(jī)制
操作系統(tǒng)是所有計(jì)算機(jī)終端、工作站和服務(wù)器等正常運(yùn)行的基礎(chǔ)。根據(jù)操作系統(tǒng)應(yīng)用環(huán)境對(duì)安全的要求不同,本加密網(wǎng)分別做出了安全管理。具體安全管理措施包括服務(wù)器物理安全、系統(tǒng)補(bǔ)丁管理、登錄安全、用戶安全、文件權(quán)限安全、打印安全、注冊(cè)表安全、遠(yuǎn)程登錄(RLS)安全、遠(yuǎn)程訪問(RAS)安全、應(yīng)用安全等。
以上每一層安全機(jī)制都要求本系統(tǒng)一一設(shè)計(jì)對(duì)應(yīng)方案,以保證整個(gè)文件同步系統(tǒng)的順利運(yùn)行。
4 解決思路及系統(tǒng)設(shè)計(jì)原則
在這樣的實(shí)際環(huán)境下,本次文件同步系統(tǒng)的設(shè)計(jì)目標(biāo):通過文件同步系統(tǒng)的搭建,實(shí)現(xiàn)本加密網(wǎng)絡(luò)各地節(jié)點(diǎn)之間的文件同步功能,加強(qiáng)對(duì)文件的安全保護(hù),提高涉密文件的管理水平,保證加密網(wǎng)的安全、穩(wěn)定運(yùn)行,保證文件同步系統(tǒng)的安全、穩(wěn)定運(yùn)行,能夠通過國家涉密網(wǎng)絡(luò)的例行檢查,并遵循幾項(xiàng)設(shè)計(jì)原則。
(1)功能性不影響安全。文件同步系統(tǒng)的需要高可用性的運(yùn)行效果,但是任何影響安全性的功能設(shè)計(jì)將不能被接受。
(2)全方位實(shí)現(xiàn)功能、滿足性能。功能和性能要求必須從全方位、多層次加以考慮,來確保系統(tǒng)適用性。
(3)易于使用,盡可能低的學(xué)習(xí)成本。最終用戶對(duì)信息技術(shù)的了解非常有限,應(yīng)該允許最終用戶專注于自身業(yè)務(wù),而非學(xué)習(xí)和使用本系統(tǒng)。
(4)易于實(shí)施、管理與維護(hù)。系統(tǒng)運(yùn)行在加密網(wǎng)內(nèi),更多的維護(hù)次數(shù)會(huì)增加運(yùn)維成本;更多的人工介入,也大大增加安全風(fēng)險(xiǎn)。因此低維護(hù)甚至零維護(hù)是本系統(tǒng)設(shè)計(jì)的重要原則。
(5)可伸縮性。系統(tǒng)目前的使用規(guī)模:全國各地省、市、自治區(qū)級(jí)別加密子網(wǎng)內(nèi)的本系統(tǒng)二級(jí)單位,以及全國各地區(qū)、縣、自治縣級(jí)別加密子網(wǎng)內(nèi)的本系統(tǒng)三級(jí)單位。由于全國各地的環(huán)境千差萬別,系統(tǒng)整體建設(shè)周期將會(huì)進(jìn)行兩年時(shí)間。建設(shè)期間必須允許各個(gè)節(jié)點(diǎn)逐步注冊(cè)上來,并立即投入使用。
(5)節(jié)約系統(tǒng)投資。在保障安全性、功能性、可用性、易用性的前提下,必須充分考慮投資成本,將國家利益始終放在第一位。通過認(rèn)真規(guī)劃設(shè)計(jì),選擇實(shí)現(xiàn)機(jī)制,達(dá)到解決系統(tǒng)投資的目的。
5 實(shí)踐方案
為了能夠充分聽取專家意見,采納兄弟單位的實(shí)踐經(jīng)驗(yàn),公司成立了由科研單位和兄弟機(jī)構(gòu)專家組成的委員會(huì),共同設(shè)計(jì)實(shí)現(xiàn)本系統(tǒng)。經(jīng)過為期半年的產(chǎn)品選型、原型實(shí)現(xiàn)、實(shí)景測試,系統(tǒng)選定大文件傳輸(BFT)工具箱作為基礎(chǔ)開發(fā)平臺(tái)。在實(shí)際操作中,系統(tǒng)主體框架主要抽取自BFT工具箱的三個(gè)工具:BFT Agent、BFT Server、BFT Console。其中,BFT Server為中心服務(wù)節(jié)點(diǎn),集中管理傳輸代理節(jié)點(diǎn)信息、傳輸配置信息、日志記錄等;BFT Agent為傳輸代理節(jié)點(diǎn)是文件傳輸任務(wù)的最小執(zhí)行單元,負(fù)責(zé)監(jiān)控指定的本地文件系統(tǒng),可以發(fā)送和接受來自其它Agent或者其他文件數(shù)據(jù)源的文件;BFT Console為管理控制臺(tái)提供友好的交互界面,使用Web化的控制臺(tái)集中管理整個(gè)文件同步系統(tǒng)。
5.1 系統(tǒng)可用性
為保證系統(tǒng)可用性,杜絕網(wǎng)絡(luò)故障、設(shè)備故障帶來的單點(diǎn)故障,系統(tǒng)在全國五大區(qū)域分別部署了一套BFTServer中心服務(wù)節(jié)點(diǎn)。各區(qū)域的BFTAgent傳輸代理節(jié)點(diǎn)默認(rèn)與本區(qū)域的Server進(jìn)行通訊;一旦發(fā)現(xiàn)通訊失敗或者無法偵測心跳,則自動(dòng)跳轉(zhuǎn)至鄰近區(qū)域Server繼續(xù)通訊。由于BFT Server中心服務(wù)節(jié)點(diǎn)之間實(shí)時(shí)共享配置信息,所以上述跳轉(zhuǎn)基本上是無縫的,實(shí)踐中對(duì)于最終文件傳輸任務(wù)的影響程度低于100ms級(jí)別。
5.2 異步節(jié)點(diǎn)一致性
一般情況下,分布式條件下異步節(jié)點(diǎn)之間的一致性是必須著重關(guān)注的問題,由于配置信息時(shí)延所導(dǎo)致的文件重復(fù)傳輸類錯(cuò)誤會(huì)導(dǎo)致網(wǎng)絡(luò)和存儲(chǔ)資源浪費(fèi);而文件替換/覆蓋請(qǐng)求如果因?yàn)閯h除和添加逆序則會(huì)直接導(dǎo)致文件寫入后被刪除,導(dǎo)致數(shù)據(jù)丟失。經(jīng)過實(shí)踐分析,發(fā)現(xiàn)文件大小是影響異步一致性的主要敏感因素。因此,針對(duì)不同的業(yè)務(wù)數(shù)據(jù)進(jìn)行合理規(guī)劃設(shè)計(jì)是必須注意。通過設(shè)置BFTAgent,可以減小文件鎖、服務(wù)(配置)鎖粒度,從而降低鎖競爭帶來的開銷。例如BFTAgent在線狀態(tài),針對(duì)每個(gè)Agent配置一個(gè)分布式鎖,更新在線狀態(tài)必須獲得Agent對(duì)應(yīng)的鎖。而對(duì)于文件傳輸記錄這樣的無狀態(tài)數(shù)據(jù)無論在哪一個(gè)BFTServer都可以進(jìn)行持久化存儲(chǔ)在同一個(gè)數(shù)據(jù)庫中,從而達(dá)到嚴(yán)格模式與混雜模式兼容的最佳效果。
5.3 會(huì)話控制機(jī)制
傳輸會(huì)話中存在兩類角色,其中發(fā)送文件的Agent作為發(fā)送方,接受文件的另外一個(gè)Agent就是接收方。發(fā)送方首先會(huì)與接收方進(jìn)行協(xié)商,建立一個(gè)用于傳輸?shù)臅?huì)話連接,會(huì)話建立成功之后,發(fā)送方把發(fā)送的文件一段一段地切分,切分的每一個(gè)數(shù)據(jù)段在建立好的會(huì)話上發(fā)送到接收方,接收方接受數(shù)據(jù)并驗(yàn)證,驗(yàn)證通過之后存儲(chǔ)到本地,當(dāng)接收方接受完成整個(gè)文件之后會(huì)發(fā)送一個(gè)回執(zhí)到發(fā)送方,通知發(fā)送方文件已經(jīng)完整無誤的接受完成,可以進(jìn)行后續(xù)處理。
6 系統(tǒng)獲得的成效
6.1 分段傳輸
一個(gè)文件被切分為眾多數(shù)據(jù)段,每個(gè)數(shù)據(jù)段分配一個(gè)文件的塊號(hào),通過塊號(hào)可以準(zhǔn)確無誤地寫入到接收方的臨時(shí)文件中。當(dāng)最后一個(gè)文件塊到達(dá)接收方并寫入文件成功之后,更改臨時(shí)文件名,同時(shí)向發(fā)送方返回一個(gè)確認(rèn)消息,通知發(fā)送方,所有文件塊已經(jīng)接收完成,發(fā)送方可以進(jìn)行下一步操作。在傳輸過程中,每個(gè)數(shù)據(jù)段可以進(jìn)行例如校驗(yàn)、加密、多線程I/O等。endprint
6.2 數(shù)據(jù)校驗(yàn)
如果說數(shù)據(jù)在傳輸過程中產(chǎn)生錯(cuò)誤,錯(cuò)誤的數(shù)據(jù)沒有被發(fā)現(xiàn),那么接收到的文件也就無法保障正確性。分段方式傳輸則可以定位和發(fā)現(xiàn)錯(cuò)誤,保障文件內(nèi)容的完整無誤。文件傳輸在讀取文件時(shí),對(duì)已經(jīng)讀取的數(shù)據(jù)段進(jìn)行編號(hào)并計(jì)算校驗(yàn)和,校驗(yàn)和、編號(hào)和數(shù)據(jù)段一同發(fā)送到接收方。當(dāng)接收方接受完成之后校驗(yàn),如果驗(yàn)證錯(cuò)誤則立刻發(fā)送消息到發(fā)送方,發(fā)送方接收到這個(gè)信號(hào)之后會(huì)從出現(xiàn)問題的編號(hào)位置重新讀取數(shù)據(jù),并將I/O隊(duì)列清空。
6.3 斷點(diǎn)續(xù)傳
BFT工具箱具備從斷點(diǎn)位置重新傳輸?shù)哪芰?,而分段式的傳輸為斷點(diǎn)定位和續(xù)傳帶來便利。例如文件發(fā)送第N塊數(shù)據(jù)時(shí),連接被斷開或者會(huì)話異常,之后恢復(fù)連接并會(huì)話重試之后,發(fā)送方可以從上次中斷的文件塊開始繼續(xù)傳輸,不需要重新開始。因?yàn)榫W(wǎng)絡(luò)和應(yīng)用層面存在數(shù)據(jù)緩沖區(qū),所以文件傳輸?shù)臄帱c(diǎn)是按照接收方存儲(chǔ)到文件系統(tǒng)中的實(shí)際大小為準(zhǔn),在建立傳輸會(huì)話時(shí)由接收方提供給發(fā)送方,這樣發(fā)送方就能準(zhǔn)確定位斷點(diǎn)。
6.4 消息優(yōu)化
文件被分段傳輸,每個(gè)數(shù)據(jù)段都是在一個(gè)個(gè)消息上,使用Java對(duì)象作為消息進(jìn)行通訊,由于消息中攜帶有類型的元數(shù)據(jù),碼流過大,效率較低,所以BFT工具箱利用Google_Protobuf編解碼方案與BFT自定義編解碼兩種方式混合使用,提高消息的利用率降低碼流,以盡可能少的控制數(shù)據(jù)與文件數(shù)據(jù)放置在一個(gè)消息當(dāng)中。其中Protobuf主要負(fù)責(zé)非文件數(shù)據(jù)的復(fù)雜消息的交互,例如建立會(huì)話的請(qǐng)求、回執(zhí)消息等。對(duì)于文件切分出來的數(shù)據(jù)塊,則采用更為簡潔、直觀的自定義編解碼方式。文件數(shù)據(jù)消息使用特殊BFT自定義消息的主要原因:Protobuf沒有NIO接口。如果使用Protobuf只能產(chǎn)生byte[],這樣會(huì)出現(xiàn)內(nèi)存復(fù)制和GC過程。
6.5 流速控制
文件傳輸在實(shí)際傳輸文件的過程中,尤其是大文件,會(huì)占用網(wǎng)絡(luò)帶寬資源,影響其它進(jìn)程的使用,所以文件傳輸BFTAgent具備實(shí)時(shí)流控,可以在BFTAgent進(jìn)程和多個(gè)文件傳輸配置兩個(gè)維度分配流量,降低對(duì)其它進(jìn)程的影響。流控同時(shí)帶來另外一個(gè)應(yīng)用場景,那就是優(yōu)先級(jí)??梢葬槍?duì)優(yōu)先級(jí)高的文件,增加流出速率,讓高優(yōu)先級(jí)的文件傳輸?shù)母煲恍?/p>
文件傳輸?shù)膸捲O(shè)置主要分為兩部分,其中BFTAgent設(shè)置一個(gè)總的可用帶寬,BFTAgent所屬的文件傳輸服務(wù)從這個(gè)總帶寬中分配。BFT工具箱采用了緩沖隊(duì)列和定期采集I/O流速的方式實(shí)現(xiàn)帶寬控制,緩沖隊(duì)列具備最高水位線,限制可以存儲(chǔ)的待發(fā)數(shù)據(jù),防止內(nèi)存溢出,當(dāng)?shù)竭_(dá)控制閾值后,緩沖隊(duì)列超過最高水位線時(shí),發(fā)送不可寫事件,通知發(fā)送邏輯暫停讀取文件,等待恢復(fù)至水位線以下或任務(wù)被取消。
6.6 傳輸安全
對(duì)于傳輸過程中數(shù)據(jù)的安全性,文件傳輸系統(tǒng)支持安全套接字協(xié)議。為了滿足企業(yè)更多的定制化安全策略,同時(shí)也提供文件數(shù)據(jù)的加密、解密接口,可由用戶自行實(shí)現(xiàn)并放置到系統(tǒng)中,讓數(shù)據(jù)的傳輸更加安全。上述方式可以組合使用。
7 結(jié)束語
基于實(shí)際業(yè)務(wù)需求,結(jié)合BFT大文件傳輸工具箱,公司實(shí)現(xiàn)了各個(gè)節(jié)點(diǎn)之間的文件同步效果。雖然由于時(shí)間緊張,建設(shè)工程中發(fā)現(xiàn)了部分實(shí)踐問題未能及時(shí)得到解決(如加密網(wǎng)內(nèi)各個(gè)子系統(tǒng)服務(wù)器的系統(tǒng)時(shí)間,因?yàn)闆]有可以統(tǒng)一連接的時(shí)間同步服務(wù)而存在系統(tǒng)時(shí)間差,導(dǎo)致日志監(jiān)控出現(xiàn)時(shí)間不一致),但是整體項(xiàng)目目標(biāo)已經(jīng)基本達(dá)成。全國已接入的節(jié)點(diǎn)數(shù):省、市、自治區(qū)接入比例達(dá)到近六成;區(qū)、縣、自治縣接入比例已超三成。截至目前,系統(tǒng)運(yùn)行穩(wěn)定,文件同步功能可靠。
參考文獻(xiàn)
[1] Hervé,Chabanne,Pascal,Urien,Jean-Fer.RFID與物聯(lián)網(wǎng)[M].北京: 清華大學(xué)出版社,2016-01-01.
[2] 章立春.軟件保護(hù)及分析技術(shù)—原理與實(shí)踐[M].北京: 電子工業(yè)出版社, 2016-07-01.
[3] 陳志德,黃欣沂,許力.身份認(rèn)證安全協(xié)議理論與應(yīng)用[M].北京: 電子工業(yè)出版社, 2015-01.
[4] Junaid Ahmed Zubair.賽博安全標(biāo)準(zhǔn).實(shí)踐與工業(yè)應(yīng)用[M].北京: 國防工業(yè)出版社, 2015-6-1.endprint