分布式文件系統(tǒng)及其數(shù)據(jù)同步的方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及數(shù)據(jù)存儲領(lǐng)域,特別涉及一種分布式文件系統(tǒng)及其數(shù)據(jù)同步的方法。
【背景技術(shù)】
[0002]目前,人類已經(jīng)步入了信息化的時代,信息總量正以幾何級數(shù)方式增長,以社交網(wǎng)站、云計算為代表的信息系統(tǒng),需要處理的數(shù)據(jù)已經(jīng)達到PB級別,并朝著EB級別發(fā)展,為了解決日益增長的海量數(shù)據(jù)存儲需求,分布式文件存儲逐步成為了研宄熱點。文件的訪問主要分為兩種情況:一種是對文件進行修改,包括設(shè)置文件附件屬性以及刪除文件等操作;另一種則是文件的下載。由于文件系統(tǒng)是天生的靜態(tài)資源,因此在大多數(shù)時候,我們都需要文件系統(tǒng)提供文件的下載服務(wù)。由于分布式文件存儲系統(tǒng)的數(shù)據(jù)存儲服務(wù)器,通常由普通的、廉價的硬件組成,為了提高數(shù)據(jù)的可靠性,需要對不同服務(wù)器間的數(shù)據(jù)進行同步。但是目前的分布式文件系統(tǒng)的文件同步方式屬于異步方式,異步方式會帶來文件同步延遲的問題,即如果用戶上傳完一個文件,馬上在沒有完成文件同步的數(shù)據(jù)存儲服務(wù)器上發(fā)起下載請求,就會出現(xiàn)查找不到文件的現(xiàn)象。
【發(fā)明內(nèi)容】
[0003]【要解決的技術(shù)問題】
[0004]本發(fā)明的目的是提供一種分布式文件系統(tǒng)及其數(shù)據(jù)同步的方法,以解決目前的分布式文件系統(tǒng)數(shù)據(jù)同步時存在延遲的問題。
[0005]【技術(shù)方案】
[0006]本發(fā)明是通過以下技術(shù)方案實現(xiàn)的。
[0007]本發(fā)明涉及一種分布式文件系統(tǒng),該系統(tǒng)包括:
[0008]客戶端,被配置成向資源定位模塊發(fā)送文件上傳請求、向選擇的數(shù)據(jù)存儲節(jié)點發(fā)送文件下載請求;
[0009]資源定位模塊,包括至少一個資源定位器,所述資源定位器被配置成處理客戶端發(fā)送的文件上傳和/或下載請求、監(jiān)控數(shù)據(jù)存儲模塊的運行狀態(tài);
[0010]數(shù)據(jù)存儲模塊,包括至少一組數(shù)據(jù)存儲服務(wù)器,所述數(shù)據(jù)存儲服務(wù)器包括至少一個數(shù)據(jù)存儲節(jié)點,所述數(shù)據(jù)存儲節(jié)點均連接有Web服務(wù)器和擴展模塊,所述數(shù)據(jù)存儲節(jié)點用于實現(xiàn)文件的存儲、同步,所述Web服務(wù)器和擴展模塊用于提供HTTP下載服務(wù)。
[0011]作為一種優(yōu)選的實施方式,所述數(shù)據(jù)存儲模塊被配置成:當(dāng)客戶端選擇數(shù)據(jù)存儲節(jié)點發(fā)送下載請求,所選擇的數(shù)據(jù)存儲節(jié)點解析客戶端的下載請求得到待下載文件的文件ID,根據(jù)文件ID判定該數(shù)據(jù)存儲節(jié)點是否存儲有待下載文件,如果該數(shù)據(jù)存儲節(jié)點存儲有待下載文件,則該數(shù)據(jù)存儲節(jié)點根據(jù)文件ID定位到文件所在目錄,根據(jù)文件名查找待下載文件并由該數(shù)據(jù)存儲節(jié)點的Web服務(wù)器完成下載;反之則由該數(shù)據(jù)存儲節(jié)點的擴展模塊向源節(jié)點發(fā)送Redirect指令或向其他數(shù)據(jù)存儲節(jié)點發(fā)送Proxy指令,源節(jié)點接收指令后根據(jù)文件ID查找得到待下載文件并由源節(jié)點的Web服務(wù)器完成下載或其他數(shù)據(jù)存儲節(jié)點接收指令后根據(jù)文件ID查找得到待下載文件并由該數(shù)據(jù)存儲節(jié)點的Web服務(wù)器完成下載,所述源節(jié)點為用戶上傳所述待下載文件時資源定位模塊為用戶分配的數(shù)據(jù)存儲節(jié)點。
[0012]本發(fā)明還涉及一種分布式文件系統(tǒng)數(shù)據(jù)同步的方法,包括:
[0013]初始化分布式文件系統(tǒng)中數(shù)據(jù)存儲模塊的Web服務(wù)器和擴展模塊;
[0014]當(dāng)用戶上傳文件時,客戶端向資源定位模塊發(fā)起上傳請求,資源定位模塊中的資源定位器根據(jù)客戶端的上傳請求將客戶端與資源定位模塊連接,通過資源定位模塊為用戶分配源節(jié)點,客戶端與源節(jié)點通信完成文件的上傳并返回文件ID,所述源節(jié)點為資源定位器查詢得到的可用的數(shù)據(jù)存儲節(jié)點,所述文件ID至少包括數(shù)據(jù)存儲服務(wù)器的組名、文件路徑信息、文件名;
[0015]源節(jié)點將上傳的文件主動推送至與源節(jié)點同組的數(shù)據(jù)存儲節(jié)點。
[0016]作為一種優(yōu)選的實施方式,還包括:
[0017]當(dāng)用戶下載所述上傳成功的文件時,客戶端選擇數(shù)據(jù)存儲節(jié)點發(fā)送下載請求,所選擇的數(shù)據(jù)存儲節(jié)點解析客戶端的下載請求得到待下載文件的文件ID,根據(jù)文件ID判定該數(shù)據(jù)存儲節(jié)點是否存儲有待下載文件,如果該數(shù)據(jù)存儲節(jié)點存儲有待下載文件,則該數(shù)據(jù)存儲節(jié)點根據(jù)文件ID定位到文件所在目錄,根據(jù)文件名查找待下載文件并由該數(shù)據(jù)存儲節(jié)點的Web服務(wù)器完成下載;反之則由該數(shù)據(jù)存儲節(jié)點的擴展模塊向源節(jié)點發(fā)送Redirect指令或向其他數(shù)據(jù)存儲節(jié)點發(fā)送Proxy指令,源節(jié)點接收指令后根據(jù)文件ID查找得到待下載文件并由源節(jié)點的Web服務(wù)器完成下載或其他數(shù)據(jù)存儲節(jié)點接收指令后根據(jù)文件ID查找得到待下載文件并由該數(shù)據(jù)存儲節(jié)點的Web服務(wù)器完成下載。
[0018]作為另一種優(yōu)選的實施方式,所述初始化分布式文件系統(tǒng)中數(shù)據(jù)存儲模塊的Web服務(wù)器和擴展模塊具體包括:
[0019]加載分布式文件系統(tǒng)的WEB服務(wù)器的配置文件,得到數(shù)據(jù)存儲模塊中的Web服務(wù)器的監(jiān)聽端口、所存儲文件的路徑、擴展模塊信息;
[0020]加載分布式文件系統(tǒng)的擴展模塊的配置文件,得到所存儲文件的資源定位器IP地址以及端口號、數(shù)據(jù)存儲模塊中的數(shù)據(jù)存儲服務(wù)器信息。
[0021]作為另一種優(yōu)選的實施方式,還包括:更新數(shù)據(jù)存儲節(jié)點的日志文件;啟動線程對日志文件進行輪詢,檢查是否有需要同步的文件,并記錄已同步的文件。
[0022]作為另一種優(yōu)選的實施方式,所述日志文件為文件名稱。
[0023]【有益效果】
[0024]本發(fā)明提出的技術(shù)方案具有以下有益效果:
[0025]本發(fā)明提供了一種基于擴展模塊的分布式文件系統(tǒng),它通過資源定位器來做調(diào)度工作,在內(nèi)存中只記錄數(shù)據(jù)存儲模塊的狀態(tài)信息和分組情況,是客戶端和數(shù)據(jù)存儲服務(wù)器端交互的樞紐。
[0026]本發(fā)明提供的分布式文件系統(tǒng)將數(shù)據(jù)存儲在不同的數(shù)據(jù)存儲節(jié)點上,通過將數(shù)據(jù)存儲節(jié)點之間的數(shù)據(jù)進行同步、互相備份,提高了數(shù)據(jù)可靠性。
[0027]通過在數(shù)據(jù)存儲服務(wù)器端上配置WEB服務(wù)器以及擴展模塊,不僅解決了數(shù)據(jù)存儲節(jié)點間數(shù)據(jù)同步帶來的同步延遲問題,還可以提供負載均衡等高性能的HTTP下載服務(wù)。
[0028]因此,本發(fā)明既保證了用戶文件的安全,又解決了下載過程中無法查找到文件的問題,為用戶帶來更好的操作體驗。
【附圖說明】
[0029]圖1為本發(fā)明的實施例一提供的分布式文件系統(tǒng)的結(jié)構(gòu)框圖。
【具體實施方式】
[0030]為使本發(fā)明的目的、技術(shù)方案和優(yōu)點更加清楚,下面將結(jié)合附圖,對本發(fā)明的【具體實施方式】進行清楚、完整的描述,顯然,所描述的實施例是本發(fā)明的一部分實施例,而不是全部實施例,也不是對本發(fā)明的限制?;诒景l(fā)明的實施例,本領(lǐng)域普通技術(shù)人員在不付出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明的保護范圍。
[0031]實施例一提供一種分布式文件系統(tǒng)。
[0032]圖1為本發(fā)明實施例一提供的分布式文件系統(tǒng)的結(jié)構(gòu)框圖。如圖1所示,該系統(tǒng)包括客戶端、資源定位模塊和數(shù)據(jù)存儲模塊。
[0033]客戶端被配置成向資源定位模塊發(fā)送文件上傳請求、向選擇的數(shù)據(jù)存儲節(jié)點發(fā)送文件下載請求??蛻舳耸怯脩襞c分布式文件系統(tǒng)進行交互的操作入口。
[0034]資源定位模塊包括至少一個資源定位器,資源定位器被配置成處理客戶端發(fā)送的文件上傳和/或下載請求、監(jiān)控數(shù)據(jù)存儲模塊的運行狀態(tài)。
[0035]數(shù)據(jù)存儲模塊包括至少一組數(shù)據(jù)存儲服務(wù)器,數(shù)據(jù)存儲服務(wù)器包括至少一個數(shù)據(jù)存儲節(jié)點,數(shù)據(jù)存儲節(jié)點均連接有Web服務(wù)器和擴展模塊,數(shù)據(jù)存儲節(jié)點用于實現(xiàn)文件的存儲、同步,以及主動連接資源定位模塊的資源定位器,Web服務(wù)器和擴展模塊用于提供HTTP下載服務(wù)。需要說明,同一組數(shù)據(jù)存儲服務(wù)器的數(shù)據(jù)存儲節(jié)點所存儲的文件是一致的,不同組數(shù)據(jù)存儲服務(wù)器的數(shù)據(jù)存儲節(jié)點是相互獨立的。
[0036]本實施例中,數(shù)據(jù)存儲模塊被配置成:當(dāng)用戶上傳文件時,客戶端向資源定位模塊發(fā)起上傳請求,資源定位模塊中的資源定位器根據(jù)客戶端的上傳請求將客戶端與資源定位模塊連接,通過資源定位模塊為用戶分配源節(jié)點,客戶端與源節(jié)點通信完成文件的上傳并返回文件ID,源節(jié)點為資源定位器查詢得到的可用的數(shù)據(jù)存儲節(jié)點,文件ID至少包括數(shù)據(jù)存儲服務(wù)器的組名、文件路徑信息、文件名
[0037]本實施例中,數(shù)據(jù)存儲模塊還被配置成:當(dāng)客戶端選擇數(shù)據(jù)存儲節(jié)點發(fā)送下載請求,所選擇的數(shù)據(jù)存儲節(jié)點解析客戶端的下載請求得到待下載文件的文件ID,根據(jù)文件ID判定該數(shù)據(jù)存儲節(jié)點是否存儲有待下載文件,如果該數(shù)據(jù)存儲節(jié)點存儲有待下載文件,則該數(shù)據(jù)存儲節(jié)點根據(jù)文件ID定位到文件所在目錄,根據(jù)文件名查找待下載文件并由該數(shù)據(jù)存儲節(jié)點的Web服務(wù)器完成下載;反之則由該數(shù)據(jù)存儲節(jié)點的擴展模塊向源節(jié)點發(fā)