葛翔 彭會(huì)湘 甘朝輝
摘要:通過介紹通用文件服務(wù)器的功能,分析專用文件分發(fā)與下載服務(wù)器在私密性與傳輸方面的需求。闡述了負(fù)載與集群的概念,給出了一種負(fù)載均衡的集群的設(shè)計(jì)方案。通過對(duì)集群部署設(shè)計(jì)、負(fù)載均衡和文件傳輸協(xié)議等3部分進(jìn)行研究,整體實(shí)現(xiàn)了專用文件分發(fā)與下載服務(wù)器,為超大文件、多文件、多用戶和多地域的文件分發(fā)與下載服務(wù)提供了一種設(shè)計(jì)思路與實(shí)現(xiàn)方法。
關(guān)鍵詞:文件服務(wù);主動(dòng)推送;集群系統(tǒng);負(fù)載均衡
中圖分類號(hào):TP393文獻(xiàn)標(biāo)志碼:A文章編號(hào):1008-1739(2018)14-60-2
Design and Implementation of File Server Cluster System
GE Xiang, PENG Huixiang, GAN Zhaohui
(The 54th Research Institute of CETC, Shijiazhuang Hebei 050081, China)
0引言
當(dāng)前市場(chǎng)上雖然存在軟件即服務(wù)、平臺(tái)即服務(wù)、基礎(chǔ)設(shè)施即服務(wù)為代表的云服務(wù),可滿足企業(yè)數(shù)據(jù)的下載需求[1],但費(fèi)用較高,且不能實(shí)現(xiàn)用戶的定制需求。本系統(tǒng)是針對(duì)私密數(shù)據(jù)對(duì)多用戶、跨地域的分發(fā)與下載需求,結(jié)合現(xiàn)有的相關(guān)技術(shù),設(shè)計(jì)與實(shí)現(xiàn)一個(gè)在Windows服務(wù)器下運(yùn)行的文件分發(fā)與下載服務(wù)。文件分發(fā)與下載服務(wù)需要包涵主動(dòng)推送與用戶下載2種模式,而通用文件服務(wù)例如Windows文件服務(wù)器或Server-U都不具備主動(dòng)推送的功能,只能被動(dòng)接受用戶下載。文件分發(fā)與下載服務(wù)的用戶所在的網(wǎng)絡(luò)為廣域網(wǎng),包涵多級(jí)路由器和防火墻,網(wǎng)絡(luò)環(huán)境十分復(fù)雜。用戶IP對(duì)外不可見,隱藏在路由器后,所以服務(wù)器不知道用戶IP,不能直接連接用戶IP進(jìn)行文件推送,需要提前告知用戶文件服務(wù)器所在的IP,進(jìn)行被動(dòng)傳輸。已知用戶需求中需要下載的文件數(shù)量眾多、單個(gè)文件體量大,普通的單臺(tái)文件服務(wù)器很難滿足其性能要求,使用集群技術(shù)就可以大幅提高文件的下載效率。
1負(fù)載集群
集群,是2臺(tái)或多臺(tái)獨(dú)立的計(jì)算機(jī)或節(jié)點(diǎn)在一個(gè)群組內(nèi)共同工作,構(gòu)成一個(gè)松耦合的多處理器系統(tǒng),多臺(tái)設(shè)備之間通過網(wǎng)絡(luò)實(shí)現(xiàn)進(jìn)程間的通信。應(yīng)用程序可以通過網(wǎng)絡(luò)共享內(nèi)存進(jìn)行消息傳送,實(shí)現(xiàn)分布式計(jì)算。與單獨(dú)的計(jì)算機(jī)單處理器相比,集群能夠提供更高的可用性和可擴(kuò)充性。集群中的每個(gè)節(jié)點(diǎn)通常都擁有自己的資源(處理器、I/O、內(nèi)存、操作系統(tǒng)和存儲(chǔ)器),并對(duì)自己的用戶負(fù)責(zé)[2]。服務(wù)器集群就是用一組服務(wù)器作為一個(gè)整體代替單個(gè)服務(wù)器為用戶提供透明服務(wù)。
在集群系統(tǒng)中,一個(gè)重要的機(jī)制是負(fù)載均衡機(jī)制。負(fù)載均衡是建立在現(xiàn)有網(wǎng)絡(luò)結(jié)構(gòu)之上,使用多臺(tái)設(shè)備以對(duì)稱的方式組成一個(gè)服務(wù)整體,將大量的并發(fā)訪問或數(shù)據(jù)流量分擔(dān)到多臺(tái)節(jié)點(diǎn)設(shè)備進(jìn)行分別處理,減少用戶等待時(shí)間,有效擴(kuò)展網(wǎng)絡(luò)服務(wù)帶寬,增加吞吐量,加強(qiáng)網(wǎng)絡(luò)數(shù)據(jù)處理能力,提高網(wǎng)絡(luò)靈活性和可用性的機(jī)制[3]。
2集群部署與設(shè)計(jì)
分發(fā)網(wǎng)絡(luò)由分發(fā)調(diào)度服務(wù)、數(shù)據(jù)分發(fā)服務(wù)和數(shù)據(jù)下載客戶端3個(gè)部分構(gòu)成,如圖1所示。分發(fā)調(diào)度服務(wù)主要功能是處理客戶請(qǐng)求和協(xié)調(diào)數(shù)據(jù)分發(fā)服務(wù)器;數(shù)據(jù)分發(fā)服務(wù)主要功能是執(zhí)行分發(fā)任務(wù)保證文件不丟失;下載客戶端主要功能是申請(qǐng)下載任務(wù)接收文件。
在圖1中,分發(fā)調(diào)度服務(wù)與數(shù)據(jù)下載服務(wù)部署在一個(gè)網(wǎng)絡(luò),可以靈活配置。數(shù)據(jù)下載客戶端通過路由器在廣域網(wǎng)與分發(fā)調(diào)度服務(wù)連接,由于數(shù)據(jù)下載客戶端的IP隱藏在路由器后邊,所以服務(wù)器并不知道連接客戶端的真實(shí)地址,服務(wù)器需要仿照FTP被動(dòng)連接模式的工作原理[4],即分發(fā)調(diào)度提供數(shù)據(jù)下載服務(wù)地址,由客戶端主動(dòng)連接并下載對(duì)應(yīng)文件。此部署的優(yōu)勢(shì)為集群可以在防火墻后統(tǒng)一安全管理,客戶端不用開放任何端口即可實(shí)現(xiàn)下載,為此需要一套基于TCP長連接協(xié)議的應(yīng)用層協(xié)議。
(1)命令流程
分發(fā)調(diào)度服務(wù)是處理中心,與客戶端協(xié)商好下載任務(wù)后,即可根據(jù)負(fù)載情況選擇數(shù)據(jù)分發(fā)服務(wù)器。此命令流程可以使數(shù)據(jù)下載客戶端與數(shù)據(jù)分發(fā)服務(wù)互不影響,只需配置一次,集群可以靈活調(diào)整,客戶也可以任意地點(diǎn)登錄,如圖2所示。
圖中數(shù)字序號(hào)與字母序號(hào)對(duì)應(yīng)流程無先后順序,從步驟1開始執(zhí)行即為客戶端發(fā)起下載流程,而從步驟2開始執(zhí)行即為服務(wù)端發(fā)起推送流程,系統(tǒng)部署時(shí)必須至少保證有一個(gè)數(shù)據(jù)分發(fā)服務(wù)啟動(dòng)。
(2)負(fù)載均衡
系統(tǒng)采用分發(fā)調(diào)度服務(wù)、數(shù)據(jù)分發(fā)服務(wù)和數(shù)據(jù)下載客戶端3層架構(gòu)設(shè)計(jì)。數(shù)據(jù)下載客戶端可以選擇多個(gè)數(shù)據(jù)產(chǎn)品進(jìn)行數(shù)據(jù)下載;分發(fā)調(diào)度服務(wù)可以選擇多個(gè)數(shù)據(jù)產(chǎn)品進(jìn)行主動(dòng)推送,并協(xié)同安排多個(gè)數(shù)據(jù)分發(fā)服務(wù)向數(shù)據(jù)下載客戶端進(jìn)行數(shù)據(jù)傳輸,為了提高效率,要發(fā)送的數(shù)據(jù)產(chǎn)品可采用分布式存儲(chǔ),存儲(chǔ)于多個(gè)節(jié)點(diǎn)。從多個(gè)分發(fā)服務(wù)同時(shí)給一個(gè)下載客戶端傳輸文件,這樣可以大大縮短文件的傳輸時(shí)間,同時(shí)增加傳輸?shù)目煽啃?,有效避免網(wǎng)絡(luò)瓶頸。為提升系統(tǒng)的時(shí)效性,發(fā)揮網(wǎng)絡(luò)應(yīng)用效能,系統(tǒng)采用負(fù)載均衡技術(shù)實(shí)現(xiàn)數(shù)據(jù)產(chǎn)品的高效分發(fā)。
負(fù)載均衡算法采用加權(quán)輪詢法,較輪詢法有了一定的進(jìn)步,它給各節(jié)點(diǎn)按照相應(yīng)的處理能力設(shè)定了不同的權(quán)值,使其能夠接受相應(yīng)權(quán)值數(shù)的服務(wù)請(qǐng)求。將該算法應(yīng)用于請(qǐng)求處理的任務(wù)長度大致相同的情況時(shí),是比較簡(jiǎn)單、高效的[5]。使用此算法保證所有服務(wù)器在工作狀態(tài),且任務(wù)數(shù)量均衡。算法實(shí)現(xiàn)方式為首先實(shí)現(xiàn)一個(gè)根據(jù)任務(wù)數(shù)量由小到大進(jìn)行排序的隊(duì)列,當(dāng)新任務(wù)到來時(shí)使用隊(duì)列中第一個(gè)服務(wù)執(zhí)行此任務(wù)并將此服務(wù)移動(dòng)到隊(duì)列中其他相同任務(wù)數(shù)服務(wù)的末端,當(dāng)有服務(wù)完成一個(gè)任務(wù)時(shí)此服務(wù)同樣將移動(dòng)到隊(duì)列中其他相同任務(wù)數(shù)服務(wù)的末端,如圖3所示。
(3)文件傳輸協(xié)議
為了實(shí)現(xiàn)超大文件傳輸和斷點(diǎn)續(xù)傳,需要自主研發(fā)文件協(xié)議,協(xié)議如表1所示。
通過上表的數(shù)據(jù)結(jié)構(gòu)可以完成命令交互與文件傳輸。數(shù)據(jù)內(nèi)容為文件路徑與文件內(nèi)容。傳輸文件時(shí),報(bào)文類型為1。命令交互時(shí),報(bào)文類型為0,命令內(nèi)容如圖4所示。
3結(jié)束語
目前此負(fù)載集群文件分發(fā)與下載服務(wù)已通過測(cè)試進(jìn)入試用階段。使用過程中數(shù)據(jù)分發(fā)服務(wù)器均有任務(wù)生成,多客戶端、多任務(wù)下載任務(wù)正常。網(wǎng)絡(luò)異常后,可以斷點(diǎn)續(xù)傳節(jié)省用戶時(shí)間。本系統(tǒng)可以復(fù)用在文件傳輸領(lǐng)域,對(duì)于二次開發(fā)的使用者使用反射機(jī)制和動(dòng)態(tài)加載自主設(shè)計(jì)的分發(fā)界面,具有良好的擴(kuò)展性與穩(wěn)定性。
參考文獻(xiàn)
[1]李敏.中小企業(yè)云服務(wù)轉(zhuǎn)換意愿實(shí)證研究[D].合肥:中國科學(xué)技術(shù)大學(xué),2014..
[2]羅秉安,張立臣.集群系統(tǒng)的技術(shù)與應(yīng)用[J].微型電腦應(yīng)用, 2003,19(l):62-64.
[3]黃世權(quán).負(fù)載均衡在校園網(wǎng)的應(yīng)用[J].計(jì)算機(jī)與現(xiàn)代化,2009(6):124-126.
[4]周曉林,彭延昌,胡慶梅,等.基于廣域網(wǎng)防火墻技術(shù)的FTP被動(dòng)模式的文件傳輸[J].計(jì)算機(jī)系統(tǒng)應(yīng)用,2006(6):83.
[5]劉恩海,李偉,張素琪,等.集群文件服務(wù)系統(tǒng)中的負(fù)載均衡算法的研究[J].計(jì)算機(jī)工程與設(shè)計(jì),2013,34(8):2754-2758.