一種海量文件生成的方法、裝置制造方法
【專利摘要】本發(fā)明實施例公開了一種海量文件生成的方法、裝置。本發(fā)明涉及信息【技術領域】,能夠在較短時間內(nèi)將源文件系統(tǒng)中的所有元數(shù)據(jù)寫入模板文件以及將模板文件導入目標文件系統(tǒng),進而大大縮短了創(chuàng)建海量文件的時間。本發(fā)明實施例提供的方法包括:提取源文件系統(tǒng)中的所有元數(shù)據(jù),其中,所述元數(shù)據(jù)用于描述所述源文件系統(tǒng)及所述源文件系統(tǒng)的組織結構;將提取的所述元數(shù)據(jù)寫入模板文件;將所述模板文件中的元數(shù)據(jù)導入所述目標文件系統(tǒng)以在所述目標文件系統(tǒng)中生成海量文件。
【專利說明】一種海量文件生成的方法、裝置
【技術領域】
[0001]本發(fā)明涉及信息【技術領域】,尤其涉及一種海量文件生成的方法、裝置。
【背景技術】
[0002]在文件系統(tǒng)及網(wǎng)絡存儲技術(Network Storage Technologies,簡稱NAS)系統(tǒng)測試中,需要進行文件系統(tǒng)規(guī)格測試,在進行文件系統(tǒng)規(guī)格測試之前首先要在文件系統(tǒng)中生成海量文件。
[0003]在現(xiàn)有技術中,采取傳統(tǒng)方法在文件系統(tǒng)中創(chuàng)建單個文件過程涉及查找及分配磁盤空間、倉Il建索引節(jié)點(index node,簡稱inode)以及寫入用戶數(shù)據(jù)等過程。利用傳統(tǒng)方法來創(chuàng)建單個文件時耗時并不長,但用該方法創(chuàng)建幾千萬個文件時則非常耗時。
[0004]發(fā)明人發(fā)現(xiàn)現(xiàn)有技術至少存在以下問題:在對文件系統(tǒng)進行系統(tǒng)規(guī)格測試之前,采用傳統(tǒng)方法來創(chuàng)建海量文件非常耗時,導致測試效率低。
【發(fā)明內(nèi)容】
[0005]本發(fā)明實施例提供一種海量文件生成的方法、裝置,能夠大大縮短了創(chuàng)建海量文件的時間,提高創(chuàng)建海量文件的效率。
[0006]為達到上述目的,本發(fā)明實施例提供了如下技術方案:
[0007]第一方面,本發(fā)明實施例提供了一種海量文件生成的方法,包括:
[0008]提取源文件系統(tǒng)中的所有元數(shù)據(jù),其中,所述元數(shù)據(jù)用于描述所述源文件系統(tǒng)及所述源文件系統(tǒng)的組織結構;
[0009]將提取的所述元數(shù)據(jù)寫入模板文件;
[0010]將所述模板文件中的元數(shù)據(jù)導入所述目標文件系統(tǒng)以在所述目標文件系統(tǒng)中生成海量文件。
[0011]根據(jù)第一方面,在第一種可能的實現(xiàn)方式中,所述模板文件包含所述源文件系統(tǒng)中的元數(shù)據(jù)塊地址表及元數(shù)據(jù)塊,其中,所述元數(shù)據(jù)塊地址表中包括所述元數(shù)據(jù)在所述源文件系統(tǒng)中的邏輯地址;
[0012]所述將所述模板文件中的元數(shù)據(jù)導入所述目標文件系統(tǒng)以在所述目標文件系統(tǒng)中生成海量文件,包括:
[0013]讀取所述模板文件中的元數(shù)據(jù);
[0014]根據(jù)所述元數(shù)據(jù)塊地址表確定所述元數(shù)據(jù)在所述目標文件系統(tǒng)中的邏輯地址,其中,所述目標文件系統(tǒng)中的邏輯地址與所述元數(shù)據(jù)在所述源文件系統(tǒng)中的邏輯地址一致;
[0015]根據(jù)確定的所述邏輯地址將所述元數(shù)據(jù)寫入所述目標系統(tǒng)中以在目標系統(tǒng)中生成海量文件。
[0016]結合第一方面或第一方面的第一種可能的實現(xiàn)方式,在第二種可能的實現(xiàn)方式中,所述提取源文件系統(tǒng)中的所有元數(shù)據(jù),包括:
[0017]掃描所述源文件系統(tǒng)包含的所有元數(shù)據(jù)塊,其中,所述元數(shù)據(jù)塊用于存儲所述元數(shù)據(jù);
[0018]讀取所述源文件系統(tǒng)包含的所有元數(shù)據(jù)塊中的元數(shù)據(jù)。
[0019]結合第一方面或第一方面的第一種可能的實現(xiàn)方式,在第三種可能的實現(xiàn)方式中,所述提取源文件系統(tǒng)中的所有元數(shù)據(jù),包括:
[0020]查詢所述源文件系統(tǒng)中的元數(shù)據(jù)索引位圖,其中,所述元數(shù)據(jù)索引位圖中的每一位分別表示所述源文件系統(tǒng)的一個數(shù)據(jù)塊或者元數(shù)據(jù)塊;
[0021]根據(jù)所述元數(shù)據(jù)索引位圖中的元數(shù)據(jù)塊的標識獲取所述源文件系統(tǒng)中對應的元數(shù)據(jù)塊中的元數(shù)據(jù)。
[0022]第二方面,本發(fā)明實施例提供了一種海量文件生成裝置,包括:
[0023]提取模塊,用于提取源文件系統(tǒng)中的所有元數(shù)據(jù),其中,所述元數(shù)據(jù)用于描述所述源文件系統(tǒng)及所述源文件系統(tǒng)的組織結構;
[0024]寫模塊,用于將所述提取模塊提取的所述元數(shù)據(jù)寫入模板文件;
[0025]導入模塊,用于將所述模板文件中的元數(shù)據(jù)導入所述目標文件系統(tǒng)以在所述目標文件系統(tǒng)中生成海量文件。
[0026]結合第二方面,在第一種可能的實現(xiàn)方式中,所述模板文件包含所述源文件系統(tǒng)中的元數(shù)據(jù)塊地址表及元數(shù)據(jù)塊,其中,所述元數(shù)據(jù)塊地址表中包括所述元數(shù)據(jù)在所述源文件系統(tǒng)中的邏輯地址;
[0027]所述導入模塊具體用于:讀取所述模板文件中的元數(shù)據(jù);根據(jù)所述元數(shù)據(jù)塊地址表確定所述元數(shù)據(jù)在所述目標文件系統(tǒng)中的邏輯地址,其中,所述目標文件系統(tǒng)中的邏輯地址與所述元數(shù)據(jù)在所述源文件系統(tǒng)中的邏輯地址一致;根據(jù)確定的所述邏輯地址將所述元數(shù)據(jù)寫入所述目標文件系統(tǒng)中以在所述目標文件系統(tǒng)中生成海量文件。
[0028]結合第二方面或第二方面的第一種可能的實現(xiàn)方式,在第二種可能的實現(xiàn)方式中,
[0029]所述提取模塊具體用于:掃描所述源文件系統(tǒng)包含的所有元數(shù)據(jù)塊,其中,所述元數(shù)據(jù)塊用于存儲所述元數(shù)據(jù);讀取所述源文件系統(tǒng)包含的所有元數(shù)據(jù)塊中的元數(shù)據(jù)。
[0030]結合第二方面或第二方面的第一種可能的實現(xiàn)方式,在第三種可能的實現(xiàn)方式中,
[0031]所述提取模塊具體用于:查詢所述源文件系統(tǒng)中的元數(shù)據(jù)索引位圖,其中,所述元數(shù)據(jù)索引位圖中的每一位分別表示所述源文件系統(tǒng)的一個數(shù)據(jù)塊或者元數(shù)據(jù)塊;根據(jù)所述元數(shù)據(jù)索引位圖中的元數(shù)據(jù)塊的標識獲取所述源文件系統(tǒng)中的元數(shù)據(jù)塊中的元數(shù)據(jù)。
[0032]第三方面,本發(fā)明實施例提供了一種海量文件生成裝置,包括:
[0033]處理器,用于提取源文件系統(tǒng)中的所有元數(shù)據(jù),其中,所述元數(shù)據(jù)用于描述所述源文件系統(tǒng)及所述源文件系統(tǒng)的組織結構;將所述提取模塊提取的所述元數(shù)據(jù)寫入模板文件;將所述模板文件中的元數(shù)據(jù)導入所述目標文件系統(tǒng)以在所述目標文件系統(tǒng)中生成海量文件。
[0034]結合第三方面,在第一種可能的實現(xiàn)方式中,所述模板文件包含所述源文件系統(tǒng)中的元數(shù)據(jù)塊地址表及元數(shù)據(jù)塊,其中,所述元數(shù)據(jù)塊地址表中包括所述元數(shù)據(jù)在所述源文件系統(tǒng)中的邏輯地址;
[0035]所述處理器具體用于:
[0036]讀取所述模板文件中的元數(shù)據(jù);
[0037]根據(jù)所述元數(shù)據(jù)塊地址表確定所述元數(shù)據(jù)在所述目標文件系統(tǒng)中的邏輯地址,其中,所述目標文件系統(tǒng)中的邏輯地址與所述元數(shù)據(jù)在所述源文件系統(tǒng)中的邏輯地址一致;
[0038]根據(jù)確定的所述邏輯地址將所述元數(shù)據(jù)寫入所述目標文件系統(tǒng)中以在所述目標文件系統(tǒng)中生成海量文件。
[0039]結合第三方面或第三方面的第一種可能的實現(xiàn)方式,所述處理器具體用于:
[0040]掃描所述源文件系統(tǒng)包含的所有元數(shù)據(jù)塊,其中,所述元數(shù)據(jù)塊用于存儲所述元數(shù)據(jù);
[0041]讀取所述源文件系統(tǒng)包含的所有元數(shù)據(jù)塊中的元數(shù)據(jù)。
[0042]結合第三方面或第三方面的第一種可能的實現(xiàn)方式,所述處理器具體用于:
[0043]查詢所述源文件系統(tǒng)中的元數(shù)據(jù)索引位圖,其中,所述元數(shù)據(jù)索引位圖中的每一位分別表示所述源文件系統(tǒng)的一個數(shù)據(jù)塊或者元數(shù)據(jù)塊;
[0044]根據(jù)所述元數(shù)據(jù)索引位圖中的元數(shù)據(jù)塊的標識獲取所述源文件系統(tǒng)中的元數(shù)據(jù)塊中的元數(shù)據(jù)。
[0045]本發(fā)明實施例提供的一種海量文件生成的方法、裝置,通過提取源文件系統(tǒng)中的所有元數(shù)據(jù),將提取的所有元數(shù)據(jù)寫入模板文件,并將該模板文件中的元數(shù)據(jù)導入目標文件系統(tǒng)的方法在目標文件系統(tǒng)中生成海量文件,由于元數(shù)據(jù)占空間較小,所以能夠在較短時間內(nèi)將元數(shù)據(jù)寫入模板文件以及將模板文件導入目標文件系統(tǒng),因而大大縮短了創(chuàng)建海量文件的時間,提高了創(chuàng)建海量文件的效率。
【專利附圖】
【附圖說明】
[0046]為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術中的技術方案,下面將對實施例或現(xiàn)有技術描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實施例,對于本領域普通技術人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
[0047]圖1為本發(fā)明實施例提供的一種場景示意圖;
[0048]圖2為本發(fā)明實施例提供的一種海量文件生成的方法的流程示意圖;
[0049]圖3為本發(fā)明實施例提供的一種元數(shù)據(jù)模板文件格式示意圖;
[0050]圖4為本發(fā)明實施例提供的另一種海量文件生成的方法的流程示意圖;
[0051]圖5為本發(fā)明實施例提供的一種元數(shù)據(jù)的組成結構示意圖;
[0052]圖6為本發(fā)明實施例提供的一種普通文件的文件描述表結構示意圖;
[0053]圖7為本發(fā)明實施例提供的一種目錄文件的文件描述表結構示意圖;
[0054]圖8為本發(fā)明實施例提供的另一種海量文件生成的方法的流程示意圖;
[0055]圖9為本發(fā)明實施例提供的一種元數(shù)據(jù)索引位圖示意圖;
[0056]圖10為本發(fā)明實施例提供的一種海量文件生成裝置的示意圖;
[0057]圖11為本發(fā)明實施例提供的另一種海量文件生成裝置的示意圖。
【具體實施方式】
[0058]下面將結合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發(fā)明一部分實施例,而不是全部的實施例?;诒景l(fā)明中的實施例,本領域普通技術人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護的范圍。
[0059]參見圖1,為本發(fā)明實施例提供的一種應用場景示意圖,為測試某文件系統(tǒng),且需要從功能,規(guī)格,性能,大壓力,長時間五方面開展測試,為了提高測試效率,可以在五臺物理機上分別生成該文件系統(tǒng),并分別在每個物理機上進行一項測試。例如,參見圖1,可以在物理機I上對該文件系統(tǒng)進行功能測試,在物理機2上對該文件系統(tǒng)進行規(guī)格測試,在物理機3上對該文件系統(tǒng)進行性能測試,在物理機4上對該文件系統(tǒng)進行大壓力測試,在物理機5上對該文件系統(tǒng)進行長時間測試。
[0060]現(xiàn)有技術中,在五臺物理機上分別采用傳統(tǒng)的海量文件生成方法生成海量文件,例如,需要分別在物理機I至物理機5上采取查找及分配磁盤空間、創(chuàng)建節(jié)點索引、寫入用戶數(shù)據(jù)的方法來創(chuàng)建單個文件,然后采取這種創(chuàng)建單個文件的方法創(chuàng)建海量文件,使創(chuàng)建海量文件耗時,導致測試效率低。
[0061]為了克服現(xiàn)有技術的缺陷,本發(fā)明實施例提供一種海量文件的生成方法,該方法可以由如圖1中所示的任意一個承載文件系統(tǒng)的物理機來完成。參見圖2,該方法包括:
[0062]201:提取源文件系統(tǒng)中的所有元數(shù)據(jù),其中,所述元數(shù)據(jù)用于描述源文件系統(tǒng)及所述源文件系統(tǒng)的組織結構;
[0063]源文件系統(tǒng)包括元數(shù)據(jù)塊和數(shù)據(jù)塊,元數(shù)據(jù)塊和數(shù)據(jù)塊分別為源文件系統(tǒng)中的固定大小的空間,例如,若源文件系統(tǒng)劃分為很多個文件系統(tǒng)塊,每個文件系統(tǒng)塊的大小為1K,則該IK大小的文件系統(tǒng)塊可能為元數(shù)據(jù)塊,也可以為數(shù)據(jù)塊。元數(shù)據(jù)塊用于存儲元數(shù)據(jù),數(shù)據(jù)塊用于存儲數(shù)據(jù)。
[0064]文件系統(tǒng)的元數(shù)據(jù)能夠影響文件系統(tǒng)的測試結果,文件系統(tǒng)的數(shù)據(jù)不影響文件系統(tǒng)的測試結果,所以,元數(shù)據(jù)分別相同的兩個文件系統(tǒng)的測試結果相同。
[0065]其中,源文件系統(tǒng)可以裝載在物理機I至物理機5中任意一個,目標文件系統(tǒng)分別裝載在與源文件系統(tǒng)不同的物理機上。
[0066]202:將提取的所述元數(shù)據(jù)寫入模板文件;
[0067]其中,模板文件可以為二進制文件,包含源文件系統(tǒng)中的元數(shù)據(jù)地址表和元數(shù)據(jù)塊,元數(shù)據(jù)地址表包含元數(shù)據(jù)在源文件系統(tǒng)中的邏輯地址,元數(shù)據(jù)塊用于存儲元數(shù)據(jù),參見圖3,為本發(fā)明實施例提供的一種模板文件格式示意圖,如圖所示,模板文件可以包括元數(shù)據(jù)塊地址表,例如,塊I地址、塊2地址、塊3地址等,元數(shù)據(jù)塊區(qū),例如,塊1、塊2、塊3等,可選的,模板文件還可以包括文件信息表,例如,文件描述符、文件系統(tǒng)容量、塊大小、元數(shù)據(jù)塊個數(shù)等,模板文件可以為上述格式,也可以采取其它的模板文件格式,本發(fā)明實施例對此不進行限制。
[0068]203:將所述模板文件中的元數(shù)據(jù)導入所述目標文件系統(tǒng)以在所述目標文件系統(tǒng)中生成海量文件。
[0069]為了使得源文件系統(tǒng)與目標文件系統(tǒng)測試結果一致,需要源文件系統(tǒng)和目標文件系統(tǒng)的元數(shù)據(jù)相同,所以,需要把源文件系統(tǒng)的某邏輯地址的元數(shù)據(jù)導出并將該元數(shù)據(jù)在源文件系統(tǒng)的邏輯地址及元數(shù)據(jù)塊寫入模板文件,并導入目標文件系統(tǒng),元數(shù)據(jù)在該目標文件系統(tǒng)中的邏輯地址與該元數(shù)據(jù)在源文件系統(tǒng)中的邏輯地址一致,例如:將源文件系統(tǒng)的第10個磁盤塊的元數(shù)據(jù)導出并將該元數(shù)據(jù)塊在源文件系統(tǒng)的邏輯地址及元數(shù)據(jù)塊寫入模板文件,并將該元數(shù)據(jù)塊中的元數(shù)據(jù)導入至目標文件系統(tǒng)的第10個磁盤塊。
[0070]本發(fā)明實施例提供的一種海量文件生成的方法,通過提取源文件系統(tǒng)中的所有元數(shù)據(jù),將提取的所有元數(shù)據(jù)寫入模板文件,并將該模板文件中的元數(shù)據(jù)導入目標文件系統(tǒng)的方法在目標文件系統(tǒng)中生成海量文件,由于元數(shù)據(jù)占空間較小,所以能夠在較短時間內(nèi)將元數(shù)據(jù)寫入模板文件以及將模板文件導入目標文件系統(tǒng),因而大大縮短了創(chuàng)建海量文件的時間,提高了創(chuàng)建海量文件的效率。
[0071]參見圖4,為本發(fā)明實施例提供的另一種海量文件生成的方法,如圖所示,可以包括以下步驟:
[0072]S401:掃描源文件系統(tǒng)包含的所有元數(shù)據(jù)塊,其中,元數(shù)據(jù)塊用于存儲元數(shù)據(jù),元數(shù)據(jù)用于描述源文件系統(tǒng)及該源文件系統(tǒng)的組織結構;
[0073]源文件系統(tǒng)可以為已經(jīng)包含多個文件的文件系統(tǒng),也可以采用傳統(tǒng)方法在源文件系統(tǒng)中生成海量文件。例如,一種傳統(tǒng)方法生成海量文件的方法可以為:采取查找及分配磁盤空間、創(chuàng)建節(jié)點索引、寫入用戶數(shù)據(jù)的方法在文件系統(tǒng)中創(chuàng)建單個文件,并采取這種創(chuàng)建單個文件的方法在該文件系統(tǒng)中創(chuàng)建海量文件,本發(fā)明實施例對此不進行限制。
[0074]文件系統(tǒng)可以包括元數(shù)據(jù)和數(shù)據(jù)兩部分,如圖5,為本發(fā)明實施例提供的一種元數(shù)據(jù)的組成結構示意圖,元數(shù)據(jù)可以包括文件系統(tǒng)描述信息和文件描述信息,文件系統(tǒng)描述信息可以用于描述該文件系統(tǒng)的容量、類型、分組結構、已使用塊索引、空閑塊索引、已使用索引節(jié)點inode和空閑索引節(jié)點inode等;文件描述信息可以用于描述該文件系統(tǒng)中包含的每個文件的大小、創(chuàng)建時間、權限、磁盤分布結構等。示例性的,元數(shù)據(jù)的最小分配單元是文件系統(tǒng)塊,即一個文件系統(tǒng)塊可以為元數(shù)據(jù)塊,也可以為數(shù)據(jù)塊。
[0075]由于在文件系統(tǒng)測試過程中,絕大部分用例并不關注文件系統(tǒng)生成的文件的內(nèi)容,也就是該文件系統(tǒng)中包含的數(shù)據(jù)部分,因此,在本發(fā)明實施例中,僅掃描出文件系統(tǒng)中的元數(shù)據(jù)。
[0076]對于普通文件,如果文件系統(tǒng)包含的普通文件較小,該文件的數(shù)據(jù)塊地址可以由索引節(jié)點inode中的直接數(shù)據(jù)塊來描述;如果文件系統(tǒng)包含的普通文件較大,該文件的數(shù)據(jù)塊地址可以由一級間接塊指針、二級間接塊指針、三級間接塊指針,最終指向數(shù)據(jù)塊,如圖6所示,為本發(fā)明實施例提供的一種普通文件的文件描述表結構示意圖,文件系統(tǒng)中的普通文件越大,則使用的間接塊指針的級別越高。間接數(shù)據(jù)塊屬于文件系統(tǒng)元數(shù)據(jù)的一部分。
[0077]對于目錄文件,如圖7所示,為本發(fā)明實施例提供的一種目錄文件的文件描述表結構示意圖,目錄文件的文件描述表結構與上述普通文件的文件描述表結構完全一致,但目錄文件的文件內(nèi)容可以為該目錄所包含的文件的信息,例如,文件名,索引節(jié)點inode號等。示例性的,目錄文件的文件內(nèi)容屬于文件系統(tǒng)的元數(shù)據(jù)。
[0078]S402:讀取源文件系統(tǒng)包含的所有元數(shù)據(jù)塊中的元數(shù)據(jù);
[0079]S403:將讀取的源文件系統(tǒng)中的元數(shù)據(jù)寫入模板文件;
[0080]S404:讀取模板文件中的元數(shù)據(jù),其中,模板文件包含源文件系統(tǒng)中的元數(shù)據(jù)塊地址表及元數(shù)據(jù)塊,元數(shù)據(jù)塊地址表包括元數(shù)據(jù)在源文件系統(tǒng)中的邏輯地址;
[0081]S405:根據(jù)元數(shù)據(jù)塊地址表確定元數(shù)據(jù)在目標文件系統(tǒng)中的邏輯地址,其中,所述目標文件系統(tǒng)中的邏輯地址與元數(shù)據(jù)在源文件系統(tǒng)中的邏輯地址一致;
[0082]S406:根據(jù)確定的邏輯地址將元數(shù)據(jù)寫入目標系統(tǒng)中以在目標系統(tǒng)中生成海量文件。
[0083]目標文件系統(tǒng)需要新生成的海量文件與源文件系統(tǒng)的大小相同,新生成的海量文件的名稱、大小、權限等文件屬性與源文件中的完全一致,僅文件內(nèi)容,即文件系統(tǒng)數(shù)據(jù)不同,例如,源文件系統(tǒng)中的一個文件名稱為a.avi,文件內(nèi)容為視頻信息,而目的文件系統(tǒng)中文件名稱仍為a.avi,但文件內(nèi)容為隨機信息。
[0084]本發(fā)明實施例提供的一種海量文件生成的方法,通過提取源文件系統(tǒng)中的所有元數(shù)據(jù),將提取的所有元數(shù)據(jù)寫入模板文件,并將該模板文件中的元數(shù)據(jù)導入目標文件系統(tǒng)的方法在目標文件系統(tǒng)中生成海量文件,由于元數(shù)據(jù)占空間較小,所以能夠在較短時間內(nèi)將元數(shù)據(jù)寫入模板文件以及將模板文件導入目標文件系統(tǒng),因而大大縮短了創(chuàng)建海量文件的時間。
[0085]參見圖8,為本發(fā)明實施例提供的另一種海量文件生成的方法,如圖所示,可以包括以下步驟:
[0086]S801:查詢源文件系統(tǒng)中的元數(shù)據(jù)索引位圖,其中,元數(shù)據(jù)索引位圖中每一位分別表示源文件系統(tǒng)的一個數(shù)據(jù)塊或者元數(shù)據(jù)塊,且分別用不同的標識表示源文件系統(tǒng)中的元數(shù)據(jù)塊和數(shù)據(jù)塊;
[0087]元數(shù)據(jù)索引位圖為文件系統(tǒng)中的一個文件系統(tǒng)標準接口,該文件系統(tǒng)標準接口是該文件系統(tǒng)提供的應用程序編程接口(Applicat1n Programming Interface,簡稱API)函數(shù),通過API函數(shù),可以對文件系統(tǒng)及該文件系統(tǒng)中的文件進行操作。在文件系統(tǒng)出廠時已經(jīng)在該文件系統(tǒng)中預設了初始的元數(shù)據(jù)索引位圖。
[0088]在本發(fā)明實施例中,元數(shù)據(jù)索引位圖中可以用標識I來表示源文件系統(tǒng)中的元數(shù)據(jù)塊,可以用標識O來表示源文件系統(tǒng)中的數(shù)據(jù)塊。也可以用其它的標識來表示元數(shù)據(jù)索引位圖中分別表示元數(shù)據(jù)塊和數(shù)據(jù)塊的標識,本發(fā)明實施例對此不進行限制。示例性的,在本發(fā)明實施例中,以元數(shù)據(jù)索引位圖中標識為O和I分別表示源文件系統(tǒng)中的數(shù)據(jù)塊和元數(shù)據(jù)塊為例對元數(shù)據(jù)索引位圖進行具體說明,如圖9,為本發(fā)明實施例提供的一種元數(shù)據(jù)索引位圖示意圖,如圖所示,元數(shù)據(jù)索引位圖中每一個標識代表文件系統(tǒng)的一個文件系統(tǒng)塊,元數(shù)據(jù)索引位圖中標識為O表示該文件系統(tǒng)塊是數(shù)據(jù)塊,元數(shù)據(jù)索引位圖為I表示該文件系統(tǒng)塊是元數(shù)據(jù)塊,該文件系統(tǒng)在進行塊分配、回收、修改時可以修改對應的元數(shù)據(jù)索引位圖中對應標識位的狀態(tài)。
[0089]元數(shù)據(jù)索引位圖中標識位的狀態(tài)由各文件系統(tǒng)廠商進行具體實現(xiàn),遵循這種元數(shù)據(jù)索引位圖接口后,任何類型文件系統(tǒng),用戶都可以使用統(tǒng)一的、簡單的方式來獲取文件系統(tǒng)中的元數(shù)據(jù)。
[0090]元數(shù)據(jù)索引位圖占用的空間大小由該文件系統(tǒng)容量和文件系統(tǒng)塊大小決定,例如,在某文件系統(tǒng)中,如果每個文件系統(tǒng)塊大小為8千字節(jié)(Kilo Bytes,簡稱KB),則每萬億字節(jié)(Terabytes,簡稱TB)空間需要分配元數(shù)據(jù)索引位圖大小16兆字節(jié)(Mega Bytes,簡稱 MB)。
[0091]S802:根據(jù)元數(shù)據(jù)索引位圖的標識獲取源文件系統(tǒng)中對應的元數(shù)據(jù)塊中的元數(shù)據(jù);
[0092]S803:將獲取的源文件系統(tǒng)中的元數(shù)據(jù)寫入模板文件;
[0093]S804:讀取模板文件中的元數(shù)據(jù),其中,模板文件包含源文件系統(tǒng)中的元數(shù)據(jù)塊地址表及元數(shù)據(jù)塊,元數(shù)據(jù)塊地址表包括元數(shù)據(jù)在源文件系統(tǒng)中的邏輯地址;
[0094]S805:根據(jù)元數(shù)據(jù)塊地址表確定元數(shù)據(jù)在目標文件系統(tǒng)中的邏輯地址,其中,目標文件系統(tǒng)中的邏輯地址與元數(shù)據(jù)在源文件系統(tǒng)中的邏輯地址一致;
[0095]S806:根據(jù)確定的邏輯地址將元數(shù)據(jù)寫入目標系統(tǒng)中以在目標系統(tǒng)中生成海量文件。
[0096]本發(fā)明實施例提供的一種海量文件生成的方法,通過提取源文件系統(tǒng)中的所有元數(shù)據(jù),將提取的所有元數(shù)據(jù)寫入模板文件,并將該模板文件中的元數(shù)據(jù)導入目標文件系統(tǒng)的方法在目標文件系統(tǒng)中生成海量文件,由于元數(shù)據(jù)占空間較小,所以能夠在較短時間內(nèi)將元數(shù)據(jù)寫入模板文件以及將模板文件導入目標文件系統(tǒng),因而大大縮短了創(chuàng)建海量文件的時間,提高了創(chuàng)建海量文件的效率。
[0097]參見圖10,為本發(fā)明實施例提供的一種海量文件生成裝置100,如圖所示,可以包括:
[0098]提取模塊1001,用于提取源文件系統(tǒng)中的所有元數(shù)據(jù),其中,所述元數(shù)據(jù)用于描述所述源文件系統(tǒng)及所述源文件系統(tǒng)的組織結構;
[0099]提取模塊1001具體用于:掃描源文件系統(tǒng)包含的所有元數(shù)據(jù)塊,其中,元數(shù)據(jù)塊用于存儲元數(shù)據(jù);讀取源文件系統(tǒng)包含的所有元數(shù)據(jù)塊中的元數(shù)據(jù)。
[0100]提取模塊1001具體用于:查詢源文件系統(tǒng)中的元數(shù)據(jù)索引位圖,其中,元數(shù)據(jù)索引位圖中的每一位分別表示源文件系統(tǒng)的一個數(shù)據(jù)塊或者元數(shù)據(jù)塊;根據(jù)元數(shù)據(jù)索引位圖中的元數(shù)據(jù)塊的標識獲取源文件系統(tǒng)中的元數(shù)據(jù)塊中的元數(shù)據(jù)。
[0101]寫模塊1002,用于將提取模塊1001提取的元數(shù)據(jù)寫入模板文件;
[0102]導入模塊1003,用于將模板文件中的元數(shù)據(jù)導入目標文件系統(tǒng)以在目標文件系統(tǒng)中生成海量文件。
[0103]模板文件包含源文件系統(tǒng)中的元數(shù)據(jù)塊地址表及元數(shù)據(jù)塊,其中,元數(shù)據(jù)塊地址表中包括元數(shù)據(jù)在源文件系統(tǒng)中的邏輯地址;
[0104]導入模塊1003具體用于:讀取模板文件中的元數(shù)據(jù);根據(jù)元數(shù)據(jù)塊地址表確定元數(shù)據(jù)在目標文件系統(tǒng)中的邏輯地址,其中,目標文件系統(tǒng)中的邏輯地址與元數(shù)據(jù)在所述源文件系統(tǒng)中的邏輯地址一致;根據(jù)確定的邏輯地址將元數(shù)據(jù)寫入目標文件系統(tǒng)中以在目標文件系統(tǒng)中生成海量文件。
[0105]本發(fā)明實施例提供的一種海量文件生成裝置100,通過提取源文件系統(tǒng)中的所有元數(shù)據(jù),將提取的所有元數(shù)據(jù)寫入模板文件,并將該模板文件中的元數(shù)據(jù)導入目標文件系統(tǒng)的方法在目標文件系統(tǒng)中生成海量文件,由于元數(shù)據(jù)占空間較小,所以能夠在較短時間內(nèi)將元數(shù)據(jù)寫入模板文件以及將模板文件導入目標文件系統(tǒng),因而大大縮短了創(chuàng)建海量文件的時間,提高了創(chuàng)建海量文件的效率。
[0106]參見圖11,為本發(fā)明實施例提供的一種海量文件生成裝置100,如圖所示,海量文件生成裝置100可以包括至少一個處理器1001,存儲器1002,用于進行該海量文件生成裝置100內(nèi)部各設備之間的連接的至少一個通信總線1003,用于實現(xiàn)這些裝置之間的連接和相互通信。
[0107]其中,通信總線1003可以是工業(yè)標準體系結構(Industry StandardArchitecture,簡稱為ISA)總線、外部設備互連(Peripheral Component,簡稱為PCI)總線或擴展工業(yè)標準體系結構(Extended Industry Standard Architecture,簡稱為EISA)總線等。該總線1003可以分為地址總線、數(shù)據(jù)總線、控制總線等。
[0108]存儲器1002可以包括只讀存儲器和隨機存取存儲器,并向處理器1001提供指令和數(shù)據(jù)。
[0109]處理器1001可以是一個中央處理器(Central Processing Unit,簡稱為CPU),或者是特定集成電路(Applicat1n Specific Integrated Circuit,簡稱為ASIC),或者是被配置成實施本發(fā)明實施例的一個或多個集成電路。
[0110]處理器1001具體用于:提取源文件系統(tǒng)中的所有元數(shù)據(jù),其中,元數(shù)據(jù)用于描述源文件系統(tǒng)及該源文件系統(tǒng)的組織結構;將提取的元數(shù)據(jù)寫入模板文件;將模板文件中的元數(shù)據(jù)導入目標文件系統(tǒng)以在目標文件系統(tǒng)中生成海量文件。
[0111]進一步的,模板文件包含源文件系統(tǒng)中的元數(shù)據(jù)塊地址表及元數(shù)據(jù)塊,其中,元數(shù)據(jù)塊地址表中包括元數(shù)據(jù)在源文件系統(tǒng)中的邏輯地址;
[0112]處理器1001具體用于:讀取模板文件中的元數(shù)據(jù);根據(jù)元數(shù)據(jù)塊地址表確定元數(shù)據(jù)在目標文件系統(tǒng)中的邏輯地址,其中,目標文件系統(tǒng)中的邏輯地址與元數(shù)據(jù)在源文件系統(tǒng)中的邏輯地址一致;根據(jù)確定的邏輯地址將元數(shù)據(jù)寫入目標文件系統(tǒng)中以在目標文件系統(tǒng)中生成海量文件。
[0113]處理器1001具體用于:掃描源文件系統(tǒng)包含的所有元數(shù)據(jù)塊,其中,元數(shù)據(jù)塊用于存儲元數(shù)據(jù);讀取源文件系統(tǒng)包含的所有元數(shù)據(jù)塊中的元數(shù)據(jù)。
[0114]處理器1001具體用于:查詢源文件系統(tǒng)中的元數(shù)據(jù)索引位圖,其中,元數(shù)據(jù)索引位圖中的每一位分別表示源文件系統(tǒng)的一個數(shù)據(jù)塊或者元數(shù)據(jù)塊;根據(jù)元數(shù)據(jù)索引位圖中的元數(shù)據(jù)塊的標識獲取源文件系統(tǒng)中對應的元數(shù)據(jù)塊中的元數(shù)據(jù)。
[0115]本發(fā)明實施例提供的一種海量文件生成裝置100,通過提取源文件系統(tǒng)中的所有元數(shù)據(jù),將提取的所有元數(shù)據(jù)寫入模板文件,并將該模板文件中的元數(shù)據(jù)導入目標文件系統(tǒng)的方法在目標文件系統(tǒng)中生成海量文件,由于元數(shù)據(jù)占空間較小,所以能夠在較短時間內(nèi)將元數(shù)據(jù)寫入模板文件以及將模板文件導入目標文件系統(tǒng),因而大大縮短了創(chuàng)建海量文件的時間,提高了創(chuàng)建海量文件的效率。
[0116]所屬領域的技術人員可以清楚地了解到,為描述的方便和簡潔,上述描述的系統(tǒng),裝置和單元的具體工作過程,可以參考前述方法實施例中的對應過程,在此不再贅述。
[0117]在本申請所提供的幾個實施例中,應該理解到,所揭露的系統(tǒng),裝置和方法,可以通過其它的方式實現(xiàn)。例如,以上所描述的裝置實施例僅僅是示意性的,例如,所述單元的劃分,僅僅為一種邏輯功能劃分,實際實現(xiàn)時可以有另外的劃分方式,例如多個單元或組件可以結合或者可以集成到另一個系統(tǒng),或一些特征可以忽略,或不執(zhí)行。另一點,所顯示或討論的相互之間的耦合或直接耦合或通信連接可以是通過一些接口,裝置或單元的間接耦合或通信連接,可以是電性,機械或其它的形式。
[0118]所述作為分離部件說明的單元可以是或者也可以不是物理上分開的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位于一個地方,或者也可以分布到多個網(wǎng)絡單元上??梢愿鶕?jù)實際的需要選擇其中的部分或者全部單元來實現(xiàn)本實施例方案的目的。
[0119]另外,在本發(fā)明各個實施例中的各功能單元可以集成在一個處理單元中,也可以是各個單元單獨物理包括,也可以兩個或兩個以上單元集成在一個單元中。上述集成的單元既可以采用硬件的形式實現(xiàn),也可以采用硬件加軟件功能單元的形式實現(xiàn)。
[0120]上述以軟件功能單元的形式實現(xiàn)的集成的單元,可以存儲在一個計算機可讀取存儲介質(zhì)中。上述軟件功能單元存儲在一個存儲介質(zhì)中,包括若干指令用以使得一臺計算機設備(可以是個人計算機,服務器,或者網(wǎng)絡設備等)執(zhí)行本發(fā)明各個實施例所述方法的部分步驟。而前述的存儲介質(zhì)包括:U盤、移動硬盤、只讀存儲器(Read-Only Memory,簡稱ROM)、隨機存取存儲器(Random Access Memory,簡稱RAM)、磁碟或者光盤等各種可以存儲程序代碼的介質(zhì)。
[0121]最后應說明的是:以上實施例僅用以說明本發(fā)明的技術方案,而非對其限制;盡管參照前述實施例對本發(fā)明進行了詳細的說明,本領域的普通技術人員應當理解:其依然可以對前述各實施例所記載的技術方案進行修改,或者對其中部分技術特征進行等同替換;而這些修改或者替換,并不使相應技術方案的本質(zhì)脫離本發(fā)明各實施例技術方案的精神和范圍。
【權利要求】
1.一種海量文件生成的方法,其特征在于,包括: 提取源文件系統(tǒng)中的所有元數(shù)據(jù),其中,所述元數(shù)據(jù)用于描述所述源文件系統(tǒng)及所述源文件系統(tǒng)的組織結構; 將提取的所述元數(shù)據(jù)寫入模板文件; 將所述模板文件中的元數(shù)據(jù)導入所述目標文件系統(tǒng)以在所述目標文件系統(tǒng)中生成海量文件。
2.根據(jù)權利要求1所述的方法,其特征在于, 所述模板文件包含所述源文件系統(tǒng)中的元數(shù)據(jù)塊地址表及元數(shù)據(jù)塊,其中,所述元數(shù)據(jù)塊地址表中包括所述元數(shù)據(jù)在所述源文件系統(tǒng)中的邏輯地址; 所述將所述模板文件中的元數(shù)據(jù)導入所述目標文件系統(tǒng)以在所述目標文件系統(tǒng)中生成海量文件,包括: 讀取所述模板文件中的元數(shù)據(jù); 根據(jù)所述元數(shù)據(jù)塊地址表確定所述元數(shù)據(jù)在所述目標文件系統(tǒng)中的邏輯地址,其中,所述目標文件系統(tǒng)中的邏輯地址與所述元數(shù)據(jù)在所述源文件系統(tǒng)中的邏輯地址一致;根據(jù)確定的所述邏輯地址將所述元數(shù)據(jù)寫入所述目標系統(tǒng)中以在目標系統(tǒng)中生成海量文件。
3.根據(jù)權利要求1或2所述的方法,其特征在于,所述提取源文件系統(tǒng)中的所有元數(shù)據(jù),包括: 掃描所述源文件系統(tǒng)包含的所有元數(shù)據(jù)塊,其中,所述元數(shù)據(jù)塊用于存儲所述元數(shù)據(jù); 讀取所述源文件系統(tǒng)包含的所有元數(shù)據(jù)塊中的元數(shù)據(jù)。
4.根據(jù)權利要求1或2所述的方法,其特征在于,所述提取源文件系統(tǒng)中的所有元數(shù)據(jù),包括: 查詢所述源文件系統(tǒng)中的元數(shù)據(jù)索引位圖,其中,所述元數(shù)據(jù)索引位圖中的每一位分別表示所述源文件系統(tǒng)的一個數(shù)據(jù)塊或者元數(shù)據(jù)塊; 根據(jù)所述元數(shù)據(jù)索引位圖中的元數(shù)據(jù)塊的標識獲取所述源文件系統(tǒng)中的元數(shù)據(jù)塊中的元數(shù)據(jù)。
5.一種海量文件生成裝置,其特征在于,包括: 提取模塊,用于提取源文件系統(tǒng)中的所有元數(shù)據(jù),其中,所述元數(shù)據(jù)用于描述所述源文件系統(tǒng)及所述源文件系統(tǒng)的組織結構; 寫模塊,用于將所述提取模塊提取的所述元數(shù)據(jù)寫入模板文件; 導入模塊,用于將所述模板文件中的元數(shù)據(jù)導入所述目標文件系統(tǒng)以在所述目標文件系統(tǒng)中生成海量文件。
6.根據(jù)權利要求5所述的裝置,其特征在于, 所述模板文件包含所述源文件系統(tǒng)中的元數(shù)據(jù)塊地址表及元數(shù)據(jù)塊,其中,所述元數(shù)據(jù)塊地址表中包括所述元數(shù)據(jù)在所述源文件系統(tǒng)中的邏輯地址; 所述導入模塊具體用于: 讀取所述模板文件中的元數(shù)據(jù); 根據(jù)所述元數(shù)據(jù)塊地址表確定所述元數(shù)據(jù)在所述目標文件系統(tǒng)中的邏輯地址,其中,所述目標文件系統(tǒng)中的邏輯地址與所述元數(shù)據(jù)在所述源文件系統(tǒng)中的邏輯地址一致;根據(jù)確定的所述邏輯地址將所述元數(shù)據(jù)寫入所述目標文件系統(tǒng)中以在所述目標文件系統(tǒng)中生成海量文件。
7.根據(jù)權利要求5或6所述的裝置,其特征在于, 所述提取模塊具體用于: 掃描所述源文件系統(tǒng)包含的所有元數(shù)據(jù)塊,其中,所述元數(shù)據(jù)塊用于存儲所述元數(shù)據(jù); 讀取所述源文件系統(tǒng)包含的所有元數(shù)據(jù)塊中的元數(shù)據(jù)。
8.根據(jù)權利要求5或6所述的裝置,其特征在于, 所述提取模塊具體用于: 查詢所述源文件系統(tǒng)中的元數(shù)據(jù)索引位圖,其中,所述元數(shù)據(jù)索引位圖中的每一位分別表示所述源文件系統(tǒng)的一個數(shù)據(jù)塊或者元數(shù)據(jù)塊; 根據(jù)所述元數(shù)據(jù)索引位圖中的元數(shù)據(jù)塊的標識獲取所述源文件系統(tǒng)中的元數(shù)據(jù)塊中的元數(shù)據(jù)。
【文檔編號】G06F17/30GK104424238SQ201310378384
【公開日】2015年3月18日 申請日期:2013年8月27日 優(yōu)先權日:2013年8月27日
【發(fā)明者】陶毅 申請人:華為技術有限公司