一種分布式文件系統(tǒng)數(shù)據(jù)遷移的方法
【專利摘要】本發(fā)明公開了一種分布式文件系統(tǒng)數(shù)據(jù)遷移的方法,該方法包括:數(shù)據(jù)遷移時,遷移的源文件選擇為經(jīng)常修改或寫入的文件,對于正在遷移的文件,將對其修改或新寫入的數(shù)據(jù)直接寫入到待遷移的目的節(jié)點上,在原有數(shù)據(jù)上建立新數(shù)據(jù)的索引,而未修改的數(shù)據(jù)再遷移。本發(fā)明相對于傳統(tǒng)的冷數(shù)據(jù)遷移可以大大減少負載均衡的時間,并且節(jié)省大量的網(wǎng)絡io和磁盤io,達到各節(jié)點數(shù)據(jù)負載的快速均衡。
【專利說明】一種分布式文件系統(tǒng)數(shù)據(jù)遷移的方法
【技術領域】
[0001]本發(fā)明涉及計算機領域,具體涉及一種分布式文件系統(tǒng)數(shù)據(jù)遷移的方法。
【背景技術】
[0002]分布式文件系統(tǒng)一般包含客戶端,元數(shù)據(jù)服務器和數(shù)據(jù)服務器,客戶端負責文件數(shù)據(jù)的訪問接口制定,元數(shù)據(jù)服務器處理文件的布局及基本屬性,數(shù)據(jù)服務器存儲文件的數(shù)據(jù)內(nèi)容。
[0003]各個數(shù)據(jù)服務節(jié)點間的負載,容量均衡常常對整個系統(tǒng)的性能和穩(wěn)定性有很大的影響,而在線擴容,也即添加新節(jié)點又是一個分布式文件系統(tǒng)必備的特征,而新節(jié)點的添加必然導致整個分布式文件系統(tǒng)新老節(jié)點在容量和負載上的不均衡,而數(shù)據(jù)遷移是解決該問題的常用方法。
[0004]傳統(tǒng)的數(shù)據(jù)遷移,選擇的源文件為不經(jīng)常訪問的文件,以期達到正常寫入和遷移的互相干擾,但這種方法均衡起來比較慢,且對正在遷移的文件進行修改或寫入操作會導致遷移失敗,從而導致之前已遷移數(shù)據(jù)占用了無效的網(wǎng)絡帶寬和磁盤io。
【發(fā)明內(nèi)容】
[0005]針對現(xiàn)有技術的不足,本發(fā)明的目的是提供一種分布式文件系統(tǒng)數(shù)據(jù)遷移的方法,本發(fā)明提出了選擇經(jīng)常訪問的文件為源文件,可以達到快速的均衡,且不會導致網(wǎng)絡帶寬和磁盤io的浪費。
[0006]本發(fā)明的目的是采用下述技術方案實現(xiàn)的:
[0007]本發(fā)明提供一種分布式文件系統(tǒng)數(shù)據(jù)遷移的方法,其改進之處在于,所述方法包括:分布式文件系統(tǒng)數(shù)據(jù)遷移時,遷移的源文件選擇為經(jīng)常修改或寫入的分布式文件,對于正在遷移的分布式文件,將對其修改或新寫入的數(shù)據(jù)直接寫入到待遷移的目的節(jié)點上,在原有數(shù)據(jù)上建立新數(shù)據(jù)的索引,未修改的數(shù)據(jù)再遷移;
[0008]所述方法包括下述步驟:
[0009](I)通過對分布式文件的修改或寫入訪問次數(shù)統(tǒng)計,確定訪問頻次高的分布式文件為遷移的源文件;
[0010](2)當有數(shù)據(jù)寫入源文件時,客戶端向元數(shù)據(jù)服務器獲取布局信息后,發(fā)送到指定的源節(jié)點(源文件的布局位置所在的節(jié)點為源節(jié)點,一個源文件可對應多個源節(jié)點);
[0011](3)源節(jié)點在遷移的目的節(jié)點上創(chuàng)建索引節(jié)點,然后將數(shù)據(jù)轉發(fā)到索引節(jié)點上;
[0012](4)索引節(jié)點完成數(shù)據(jù)寫入后返回給源節(jié)點,源節(jié)點修改索引記錄;
[0013](5)源節(jié)點返回給客戶端,完成寫入,并且相當于完成該塊數(shù)據(jù)的遷移工作;
[0014](6)后臺控制器對沒有寫入過的內(nèi)容做遷移,即從源節(jié)點復制出數(shù)據(jù)寫到目的節(jié)點上,并記錄寫入的索引記錄;
[0015](7)當源節(jié)點上的內(nèi)容均遷移到索引節(jié)點后,通知元數(shù)據(jù)服務器修改文件布局信息,刪除本地對象(本地對象為源節(jié)點上對應的文件數(shù)據(jù)內(nèi)容,可將本地對象均替換為源節(jié)點對應的文件數(shù)據(jù)內(nèi)容),至此分布式文件數(shù)據(jù)遷移完畢。
[0016]進一步地,所述修改或新寫入的數(shù)據(jù)直接寫入到待遷移的目的節(jié)點上包括下述方式:
[0017]方式1:數(shù)據(jù)到達源節(jié)點時,由源節(jié)點直接轉發(fā)到待遷移的目的節(jié)點上;
[0018]方式2:寫入時由客戶端直接寫到待遷移的目的節(jié)點上,然后通知源節(jié)點的對象。
[0019]進一步地,所述原有數(shù)據(jù)上建立新數(shù)據(jù)的索引包括:通過位圖文件bitmap、數(shù)組或樹結構建立源節(jié)點和目的節(jié)點的索引關系;
[0020]按客戶端的最小操作單位4K對應Ibit記錄源節(jié)點和目的節(jié)點的關系,即每寫入一次,將對應偏移處的位圖文件bitmap、數(shù)組或樹結構置為I。
[0021]進一步地,所述步驟(3)中,源節(jié)點查看讀取的內(nèi)容是否在索引節(jié)點上,若是則讀取索引節(jié)點上的內(nèi)容;若否,則直接讀取本地內(nèi)容返回。
[0022]與現(xiàn)有技術比,本發(fā)明達到的有益效果是:
[0023]本發(fā)明提供的分布式文件系統(tǒng)數(shù)據(jù)遷移的方法,該方法選擇經(jīng)常訪問的文件為源文件,可以達到快速的均衡,且不會導致網(wǎng)絡帶寬和磁盤io的浪費。數(shù)據(jù)遷移時,遷移的源文件選擇為經(jīng)常修改或寫入的文件,對于正在遷移的文件,將對其修改或新寫入的數(shù)據(jù)直接寫入到待遷移的目的節(jié)點上,在原有數(shù)據(jù)上建立新數(shù)據(jù)的索引,而未修改的數(shù)據(jù)再遷移。
【專利附圖】
【附圖說明】
[0024]圖1是本發(fā)明提供的數(shù)據(jù)遷移寫入的流程圖。
【具體實施方式】
[0025]下面結合附圖對本發(fā)明的【具體實施方式】作進一步的詳細說明。
[0026]本發(fā)明提供一種分布式文件系統(tǒng)數(shù)據(jù)遷移的方法,所述方法包括:分布式文件系統(tǒng)數(shù)據(jù)遷移時,遷移的源文件選擇為經(jīng)常修改或寫入的分布式文件,對于正在遷移的分布式文件,將對其修改或新寫入的數(shù)據(jù)直接寫入到待遷移的目的節(jié)點上,在原有數(shù)據(jù)上建立新數(shù)據(jù)的索引,未修改的數(shù)據(jù)再遷移;
[0027]數(shù)據(jù)遷移寫入的流程圖如圖1所示,包括下述步驟:
[0028](I)通過對分布式文件的修改或寫入訪問次數(shù)統(tǒng)計,確定訪問頻次高的分布式文件為遷移的源文件;
[0029](2)當有數(shù)據(jù)寫入源文件時,客戶端向元數(shù)據(jù)服務器獲取布局信息后,發(fā)送到指定的源節(jié)點(源文件和源節(jié)點兩者是什么關系);
[0030](3)源節(jié)點在遷移的目的節(jié)點上創(chuàng)建索引節(jié)點,然后將數(shù)據(jù)轉發(fā)到索引節(jié)點上;
[0031](4)索引節(jié)點完成數(shù)據(jù)寫入后返回給源節(jié)點,源節(jié)點修改索引記錄;
[0032](5)源節(jié)點返回給客戶端,完成寫入,并且相當于完成該塊數(shù)據(jù)的遷移工作;
[0033](6)后臺控制器對沒有寫入過的內(nèi)容做遷移,即從源節(jié)點復制出數(shù)據(jù)寫到目的節(jié)點上,并記錄寫入的索引記錄;
[0034](7)當源節(jié)點上的內(nèi)容均遷移到索引節(jié)點后,通知元數(shù)據(jù)服務器修改文件布局信息,刪除本地對象(本地對象指的是什么?),至此分布式文件數(shù)據(jù)遷移完畢。
[0035]修改或新寫入的數(shù)據(jù)直接寫入到待遷移的目的節(jié)點上包括下述方式:[0036]方式1:數(shù)據(jù)到達源節(jié)點時,由源節(jié)點直接轉發(fā)到待遷移的目的節(jié)點上;
[0037]方式2:寫入時由客戶端直接寫到待遷移的目的節(jié)點上,然后通知源節(jié)點的對象。
[0038]原有數(shù)據(jù)上建立新數(shù)據(jù)的索引包括:通過位圖文件bitmap、數(shù)組或樹結構建立源節(jié)點和目的節(jié)點的索引關系。
[0039]A.數(shù)據(jù)索引的記錄方法:
[0040]可以通過位圖文件bitmap的形式記錄,按客戶端的最小操作單位4K對應Ibit記錄源對象和目的對象的關系,即每寫入一次,將對應偏移處的bitmap置為1.[0041]B.下面闡述在遷移過程中數(shù)據(jù)是如何被客戶端正常訪問到的:
[0042]<1>當客戶端需要讀取文件時,向元數(shù)據(jù)服務器獲取布局之后,發(fā)送到指定的源節(jié)點
[0043]〈2>源節(jié)點查看讀取的內(nèi)容是否在索引對象上,若是則讀取索引對象上的內(nèi)容,若否,則直接讀取本地內(nèi)容返回。
[0044]本發(fā)明相對于傳統(tǒng)的冷數(shù)據(jù)遷移可以大大減少負載均衡的時間,并且節(jié)省大量的網(wǎng)絡io和磁盤io,達到各節(jié)點數(shù)據(jù)負載的快速均衡。
[0045]最后應當說明的是:以上實施例僅用以說明本發(fā)明的技術方案而非對其限制,盡管參照上述實施例對本發(fā)明進行了詳細的說明,所屬領域的普通技術人員應當理解:依然可以對本發(fā)明的【具體實施方式】進行修改或者等同替換,而未脫離本發(fā)明精神和范圍的任何修改或者等同替換,其均應涵蓋在本發(fā)明的權利要求范圍當中。
【權利要求】
1.一種分布式文件系統(tǒng)數(shù)據(jù)遷移的方法,其特征在于,所述方法包括:分布式文件系統(tǒng)數(shù)據(jù)遷移時,遷移的源文件選擇為經(jīng)常修改或寫入的分布式文件,對于正在遷移的分布式文件,將對其修改或新寫入的數(shù)據(jù)直接寫入到待遷移的目的節(jié)點上,在原有數(shù)據(jù)上建立新數(shù)據(jù)的索引,未修改的數(shù)據(jù)再遷移; 所述方法包括下述步驟: (1)通過對分布式文件的修改或寫入訪問次數(shù)統(tǒng)計,確定訪問頻次高的分布式文件為遷移的源文件; (2)當有數(shù)據(jù)寫入源文件時,客戶端向元數(shù)據(jù)服務器獲取布局信息后,發(fā)送到指定的源節(jié)點; (3)源節(jié)點在遷移的目的節(jié)點上創(chuàng)建索引節(jié)點,然后將數(shù)據(jù)轉發(fā)到索引節(jié)點上; (4)索引節(jié)點完成數(shù)據(jù)寫入后返回給源節(jié)點,源節(jié)點修改索引記錄; (5)源節(jié)點返回給客戶端,完成寫入,并且相當于完成該塊數(shù)據(jù)的遷移工作; (6)后臺控制器對沒有寫入過的內(nèi)容做遷移,即從源節(jié)點復制出數(shù)據(jù)寫到目的節(jié)點上,并記錄寫入的索引記錄; (7)當源節(jié)點上的內(nèi)容均遷移到索引節(jié)點后,通知元數(shù)據(jù)服務器修改文件布局信息,刪除本地對象,至此分布式文件數(shù)據(jù)遷移完畢。
2.如權利要求1所述的方法,其特征在于,所述修改或新寫入的數(shù)據(jù)直接寫入到待遷移的目的節(jié)點上包括下述方式: 方式1:數(shù)據(jù)到達源節(jié)點時,由源節(jié)點直接轉發(fā)到待遷移的目的節(jié)點上; 方式2:寫入時由客戶端直接寫到待遷移的目的節(jié)點上,然后通知源節(jié)點的對象。
3.如權利要求1所述的方法,其特征在于,所述原有數(shù)據(jù)上建立新數(shù)據(jù)的索引包括:通過位圖文件bitmap、數(shù)組或樹結構建立源節(jié)點和目的節(jié)點的索引關系; 按客戶端的最小操作單位4K對應Ibit記錄源節(jié)點和目的節(jié)點的關系,即每寫入一次,將對應偏移處的位圖文件bitmap、數(shù)組或樹結構置為I。
4.如權利要求1所述的方法,其特征在于,所述步驟(3)中,源節(jié)點查看讀取的內(nèi)容是否在索引節(jié)點上,若是則讀取索引節(jié)點上的內(nèi)容;若否,則直接讀取本地內(nèi)容返回。
【文檔編號】G06F17/30GK103793475SQ201410005142
【公開日】2014年5月14日 申請日期:2014年1月6日 優(yōu)先權日:2014年1月6日
【發(fā)明者】郭照斌, 季旻, 姜國梁, 馬振杰, 楊鵬 申請人:無錫城市云計算中心有限公司