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