基于資源定位器跳轉(zhuǎn)的分布式文件系統(tǒng)及其數(shù)據(jù)同步方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及數(shù)據(jù)存儲領(lǐng)域,特別涉及一種基于資源定位器跳轉(zhuǎn)的分布式文件系統(tǒng)及其數(shù)據(jù)同步方法。
【背景技術(shù)】
[0002]如今,人類已經(jīng)步入了信息化的時代,信息總量正以幾何級數(shù)方式增長,以社交網(wǎng)站、云計算為代表的信息系統(tǒng),需要處理的數(shù)據(jù)已經(jīng)達到PB級別,并朝著EB級別發(fā)展,為了解決日益增長的海量數(shù)據(jù)存儲需求,分布式文件存儲逐步成為了研宄熱點。分布式文件存儲系統(tǒng)包含多臺數(shù)據(jù)存儲服務(wù)器,為了提高數(shù)據(jù)的可靠性,這些存儲服務(wù)器間會根據(jù)文件的上傳記錄進行同步復(fù)制。這種文件同步方法屬于異步方式,異步方式會帶來文件同步延遲的問題,即如果用戶上傳完一個文件,馬上在沒有完成文件同步的數(shù)據(jù)存儲服務(wù)器上發(fā)起下載請求,就會出現(xiàn)找不到文件的現(xiàn)象。
【發(fā)明內(nèi)容】
[0003]本發(fā)明的目的是解決上述分布式文件存儲服務(wù)的文件同步延遲問題,本發(fā)明提出一種基于資源定位器跳轉(zhuǎn)的分布式文件系統(tǒng)及其數(shù)據(jù)同步方法。
[0004]為了達到上述的技術(shù)效果,本發(fā)明采取以下技術(shù)方案:一種基于資源定位器跳轉(zhuǎn)的分布式文件系統(tǒng),它包括資源定位器端,數(shù)據(jù)存儲服務(wù)器端和客戶端。所述數(shù)據(jù)存儲服務(wù)器端包括至少一組數(shù)據(jù)存儲服務(wù)器組,每一組數(shù)據(jù)存儲服務(wù)器組有一個或者多個數(shù)據(jù)存儲服務(wù)器節(jié)點,所述數(shù)據(jù)存儲服務(wù)器端用于完成對數(shù)據(jù)的存儲、同步和主動連接資源定位器端。所述資源定位器端用于處理由客戶端傳遞來的請求、監(jiān)控數(shù)據(jù)存儲服務(wù)器端運行狀況和為用戶分配可用的數(shù)據(jù)存儲服務(wù)器節(jié)點,起調(diào)度作用。所述客戶端是用戶的操作入口。
[0005]進一步的技術(shù)方案是:所述資源定位器端包括至少一臺定位服務(wù)器,各個定位服務(wù)器間相互獨立。
[0006]進一步的技術(shù)方案是:同一組的數(shù)據(jù)存儲服務(wù)器節(jié)點存儲的文件是一致的,不同組的數(shù)據(jù)存儲服務(wù)器節(jié)點是相互獨立的。
[0007]本發(fā)明同時還提供一種基于資源定位器跳轉(zhuǎn)的分布式文件系統(tǒng)的數(shù)據(jù)同步方法,包括以下步驟:
[0008]S1、布置分布式文件系統(tǒng),所述分布式文件系統(tǒng)包含資源定位器端、數(shù)據(jù)存儲服務(wù)器端和客戶端;所述數(shù)據(jù)存儲服務(wù)器端包括至少一組數(shù)據(jù)存儲服務(wù)器組,每一組數(shù)據(jù)存儲服務(wù)器組有一個或者多個數(shù)據(jù)存儲服務(wù)器節(jié)點,所述數(shù)據(jù)存儲服務(wù)器端用于完成對數(shù)據(jù)的存儲、同步和主動連接資源定位器端;所述資源定位器端用于處理由客戶端傳遞來的請求、監(jiān)控數(shù)據(jù)存儲服務(wù)器端運行狀況和為用戶分配可用的數(shù)據(jù)存儲服務(wù)器節(jié)點;所述客戶端是用戶的操作入口,當(dāng)用戶需要文件操作時,首先由客戶端向資源定位器端發(fā)起請求。
[0009]S2、資源定位器端根據(jù)客戶端的請求,判定用戶是上傳文件,還是下載文件;若是上傳文件,則執(zhí)行步驟S3后再執(zhí)行步驟S4,若是下載文件,則執(zhí)行步驟S5。
[0010]S3、資源定位器端查詢到可用的數(shù)據(jù)存儲服務(wù)器節(jié)點后,將數(shù)據(jù)存儲服務(wù)器節(jié)點的IP和端口信息返回給客戶端;客戶端上傳文件到數(shù)據(jù)存儲服務(wù)器節(jié)點;數(shù)據(jù)存儲服務(wù)器節(jié)點將上傳的文件內(nèi)容寫入磁盤、生成文件ID,并將文件ID返回給客戶端,客戶端存儲返回的文件ID信息,上傳操作完畢。
[0011]S4、數(shù)據(jù)存儲服務(wù)器節(jié)點采用主動推送的方式,將文件同步到其他數(shù)據(jù)存儲服務(wù)器節(jié)點。
[0012]S5、客戶端將要下載文件ID報告給資源定位器端;資源定位器端根據(jù)文件ID定位到客戶端需要訪問的數(shù)據(jù)存儲服務(wù)器節(jié)點所在的組,資源定位器的端檢查數(shù)據(jù)存儲服務(wù)器節(jié)點的同步狀態(tài),查詢可用的數(shù)據(jù)存儲服務(wù)器節(jié)點,并將可用的數(shù)據(jù)存儲服務(wù)器節(jié)點的信息返回給客戶端;客戶端將要下載文件的文件ID傳到可用的數(shù)據(jù)存儲服務(wù)器節(jié)點;數(shù)據(jù)存儲服務(wù)器節(jié)點根據(jù)要下載文件的文件ID所包含的信息和文件路徑信息,快速定位到要下載文件所在目錄,并根據(jù)文件名找到該文件;數(shù)據(jù)存儲服務(wù)器節(jié)點將該文件內(nèi)容返回到客戶端;下載操作完畢。
[0013]所述文件ID包含組名、路徑信息以及文件名,文件名包含的字段有:可用的數(shù)據(jù)存儲服務(wù)器節(jié)點的IP地址和文件的創(chuàng)建時間點。
[0014]進一步的技術(shù)方案是:步驟S4的具體方法為:
[0015]S41、數(shù)據(jù)存儲服務(wù)器節(jié)點的日志文件記錄文件上傳或刪除操作,日志只記錄文件名,不記錄文件內(nèi)容;
[0016]S42、數(shù)據(jù)存儲服務(wù)器節(jié)點對同組內(nèi)除了自己以外的每一個節(jié)點都啟動一個線程來進行文件同步;
[0017]S43、分布式文件系統(tǒng)系統(tǒng)一直啟動一個線程,對日志文件進行輪詢,檢查是否有需要同步的文件,并將已同步的文件記錄到另一個標(biāo)識文件中,以便查詢;
[0018]S44、每個數(shù)據(jù)存儲服務(wù)器節(jié)點定時將自身的狀態(tài)信息上報給資源定位器端,并向資源定位器端報告向每個數(shù)據(jù)存儲服務(wù)器節(jié)點同步到的最新文件的時間點;資源定位器端根據(jù)數(shù)據(jù)存儲服務(wù)器節(jié)點的同步信息,就能知道組內(nèi)的其他數(shù)據(jù)存儲服務(wù)器節(jié)點的同步情況以及最新文件被同步的時間點。
[0019]進一步的技術(shù)方案是:步驟S5中可用的數(shù)據(jù)存儲服務(wù)器節(jié)點是指以下任意一種情況時的節(jié)點:當(dāng)文件創(chuàng)建時間點等于該數(shù)據(jù)存儲服務(wù)器節(jié)點上的文件的被同步時間點時;或當(dāng)文件創(chuàng)建時間點小于數(shù)據(jù)節(jié)點上的文件的被同步時間點時;或系統(tǒng)設(shè)定同步延遲閥值,所述同步延遲閥值是同步產(chǎn)生延遲的可接受范圍,當(dāng)當(dāng)前時間點減去文件創(chuàng)建時間點大于該同步延遲閥值時。
[0020]本發(fā)明與現(xiàn)有技術(shù)相比,具有以下的有益效果:基于資源定位器跳轉(zhuǎn)的分布式文件系統(tǒng),資源定位器端主要做調(diào)度工作,在內(nèi)存中只記錄數(shù)據(jù)存儲服務(wù)器端的狀態(tài)信息和分組情況,是客戶端和數(shù)據(jù)存儲服務(wù)器端交互的樞紐。本系統(tǒng)通過采用在數(shù)據(jù)存儲服務(wù)器端進行分組存儲的方式來提高數(shù)據(jù)的可靠性,以及利用資源定位器來解決由于異步同步帶來的文件同步延遲的問題,既保證了用戶文件的安全,又解決了下載找不到文件的問題,為用戶帶來更好的體驗。
【附圖說明】
[0021]圖1是本發(fā)明所述的基于資源定位器跳轉(zhuǎn)解決分布式文件系統(tǒng)同步延遲的總流程不意圖;
[0022]圖2是本發(fā)明所述的基于資源定位器跳轉(zhuǎn)解決分布式文件系統(tǒng)同步延遲的結(jié)構(gòu)框圖。
【具體實施方式】
[0023]下面結(jié)合本發(fā)明的實施例對本發(fā)明作進一步的闡述和說明。
[0024]實施例:
[0025]如圖2所示,一種基于資源定位器跳轉(zhuǎn)的分布式文件系統(tǒng),包括
[0026]資源定位器端,包括一臺或者多臺定位服務(wù)器,各個定位服務(wù)器間相互獨立,主要起調(diào)度作用以及處理由客戶端傳遞而來的請求和監(jiān)控文件存儲服務(wù)器的運行狀況。
[0027]數(shù)據(jù)存儲服務(wù)器端,包括一個或者多個數(shù)據(jù)存儲服務(wù)器組,每一個組有一個或者多個數(shù)據(jù)存儲節(jié)點,主要完成對數(shù)據(jù)的存儲、同步,能主動連接資源定位器。同一組的數(shù)據(jù)存儲節(jié)點存儲的文件是一致的,不同組的數(shù)據(jù)存儲節(jié)點是相互獨立的。
[0028]客戶端,用戶的操作入口,連接資源定位器端,由資源定位器端為它分配可用的數(shù)據(jù)存儲節(jié)點。
[0029]一種基于資源定位器跳轉(zhuǎn)的分布式文件系統(tǒng)的數(shù)據(jù)同步方法,其具體的方法為,首先布置分布式文件系統(tǒng),系統(tǒng)包含資源定位器端、數(shù)據(jù)存儲服務(wù)器端、客戶端。當(dāng)用戶需要上傳文件時,首先由客戶端向資源定位器發(fā)起上傳請求;資源定位器查詢到可用的數(shù)據(jù)存儲服務(wù)器節(jié)點(即源節(jié)點)后,將源節(jié)點的ip和端口信息返回給客戶端;客戶端再進行上傳動作。數(shù)據(jù)存儲服務(wù)器節(jié)點將上傳的內(nèi)容寫入磁盤,并將文件ID返回給客戶端,上傳操作完畢。
[0030]當(dāng)文件上傳到源節(jié)點后,源節(jié)點采用主動推送的方式,將文件同步到其他源節(jié)點,且只有源節(jié)點數(shù)據(jù)才需要同步,備份數(shù)據(jù)不需要再次同步。該系統(tǒng)會一直啟動一個線程,對日志文件進行輪詢,檢查是否有需要同步的文件,并將已同步的文件記錄到另一個標(biāo)識文件中,以便查詢。
[0031]當(dāng)用戶需要馬上下載之前上傳的文件時,首先由客戶端發(fā)起下載請求,并將要下載文件ID傳到資源定位器端。資源定位器端會根據(jù)規(guī)則返回合適的數(shù)據(jù)存儲節(jié)點來提供下載服務(wù),客戶端與數(shù)據(jù)存儲節(jié)點直接相連,完成下載操作。
[0032]如圖1所示,在本具體實施例中,具體方法步驟為:
[0033]第一步,部署分布式文件系統(tǒng)。本發(fā)明所提及的分布式文件系統(tǒng),由客戶端,資源定位器端、數(shù)據(jù)存儲服務(wù)器端三部分組成,包括以下步驟:
[0034]步驟1.1,部署資源定位器。資源定位器端包括一臺或者多臺定位服務(wù)器,各個定位服務(wù)器間相互獨立,主要起調(diào)度作用以及處理由客戶端傳遞而來的請求和監(jiān)控文件存儲服務(wù)器的運行狀況。
[0035]步驟1.2,部署數(shù)據(jù)存儲服務(wù)器。數(shù)據(jù)存儲服務(wù)器端包括一個或者多個數(shù)據(jù)存儲服務(wù)器組,每一個組有一個或者多個數(shù)據(jù)存儲服務(wù)器節(jié)點,主要完成對數(shù)據(jù)的存儲、同步,能主動連接資源定位器。同一組的數(shù)據(jù)存儲節(jié)點存儲的文件是一致的,不同組的數(shù)據(jù)存儲服務(wù)器是相互獨立的。
[0036]步驟1.3,部署客戶端??蛻舳耸怯脩舻牟僮魅肟?,連接資源定位器端,由資源定位器端為它分配可用的數(shù)據(jù)存儲節(jié)點。
[0037]本發(fā)明所提及的分布式文件系統(tǒng),客戶端通過連接資源定位器端,由資源定位器端為用戶分配可用的數(shù)據(jù)存儲服務(wù)器節(jié)點,可以稱為源節(jié)點。客戶端直接和源節(jié)點通信完成文件的上傳,源節(jié)點返回文件ID,文件ID包含組名、路徑信息以及文件名,文件名包含的字段有:源節(jié)點的IP地址,文件的創(chuàng)建時間點。