本發(fā)明屬于文件系統(tǒng)海量元數(shù)據(jù)分布技術(shù)領(lǐng)域,特別是涉及一種海量元數(shù)據(jù)分片分布的方法及裝置。
背景技術(shù):
任何文件系統(tǒng)中的數(shù)據(jù)分為數(shù)據(jù)和元數(shù)據(jù)。數(shù)據(jù)是指普通文件中的實際數(shù)據(jù),而元數(shù)據(jù)指用來描述一個文件的特征的系統(tǒng)數(shù)據(jù),諸如訪問權(quán)限、文件擁有者以及文件數(shù)據(jù)塊的分布信息(inode…)等等。在分布式文件系統(tǒng)中,分布信息包括文件在磁盤上的位置以及磁盤在集群中的位置。用戶需要操作一個文件必須首先得到它的元數(shù)據(jù),才能定位到文件的位置并且得到文件的內(nèi)容或相關(guān)屬性。用戶使用文件系統(tǒng)過程中,文件系統(tǒng)元數(shù)據(jù)請求占據(jù)了所有請求50%以上的比例,諸如(readdir、getattr、open、close、setattr…)文件系統(tǒng)元數(shù)據(jù)對整個文件系統(tǒng)有著重要的影響。
大數(shù)據(jù)時代非結(jié)構(gòu)化的數(shù)據(jù)成爆炸式的增長,采用文件系統(tǒng)管理海量數(shù)據(jù)的方式越來越廣泛,但是文件數(shù)目巨大,例如,大規(guī)模傳感器會產(chǎn)生海量的數(shù)據(jù)片段,形成數(shù)量龐大的小數(shù)據(jù)文件。通常的元數(shù)據(jù)都要加載到內(nèi)存緩存,才能完成文件系統(tǒng)的基本功能,但是數(shù)據(jù)量巨大的元數(shù)據(jù)加載到內(nèi)存緩存過程慢、沖突檢測困難。傳統(tǒng)的文件系統(tǒng)元數(shù)據(jù)管理方法已經(jīng)不能滿足數(shù)據(jù)增長的需要。例如:單目錄文件個數(shù)為n,那么一個目錄在存儲設(shè)備的空間大小m:m=4kb*n(假設(shè)單元數(shù)據(jù)大小4kb),當(dāng)n為1億的時候,元數(shù)據(jù)數(shù)據(jù)塊m大概0.4tb,以單盤性能100mb/s計算,單是加載元數(shù)據(jù)到元數(shù)據(jù)的緩存就需要1個多小時,再加上超大的緩存問題,直接導(dǎo)致單目錄無法支持海量數(shù)量的文件。
技術(shù)實現(xiàn)要素:
本發(fā)明目的是提供一種海量元數(shù)據(jù)分片分布的方法及裝置,本發(fā)明解決了單目錄海量數(shù)目的文件,文件系統(tǒng)元數(shù)據(jù)管理效率低的問題。
為了實現(xiàn)上述目的,本發(fā)明采用以下的技術(shù)方案:
一種海量元數(shù)據(jù)分片分布的方法,包括以下步驟:
將單目錄的元數(shù)據(jù)數(shù)據(jù)塊劃分為多個元數(shù)據(jù)分片;
元數(shù)據(jù)數(shù)據(jù)塊依據(jù)預(yù)定規(guī)則分布在不同的元數(shù)據(jù)分片上;
將不同的元數(shù)據(jù)分片分別存儲在多個存儲設(shè)備上。
優(yōu)選地,元數(shù)據(jù)數(shù)據(jù)塊依據(jù)預(yù)定規(guī)則分布在不同的元數(shù)據(jù)分片上,進(jìn)一步包括:
元數(shù)據(jù)數(shù)據(jù)塊依據(jù)名稱哈希到不同的元數(shù)據(jù)分片上;
同一個元數(shù)據(jù)分片對應(yīng)具有相同哈希值的元數(shù)據(jù)數(shù)據(jù)塊。
優(yōu)選地,依據(jù)名稱的哈希值,獲得存儲在不同存儲設(shè)備上的元數(shù)據(jù)分片。
本發(fā)明還提供一種海量元數(shù)據(jù)分片分布的裝置,包括:
單目錄元數(shù)據(jù)數(shù)據(jù)塊劃分模塊,用于將單目錄的元數(shù)據(jù)數(shù)據(jù)塊劃分為多個元數(shù)據(jù)分片;
第一元數(shù)據(jù)數(shù)據(jù)塊分布模塊,用于元數(shù)據(jù)數(shù)據(jù)塊依據(jù)預(yù)定規(guī)則分布在不同的元數(shù)據(jù)分片上;
元數(shù)據(jù)分片存儲模塊,用于將不同的元數(shù)據(jù)分片分別存儲在多個存儲設(shè)備上。
優(yōu)選地,還包括:第二元數(shù)據(jù)數(shù)據(jù)塊分布模塊,用于元數(shù)據(jù)數(shù)據(jù)塊依據(jù)名稱哈希到不同的元數(shù)據(jù)分片上。
優(yōu)選地,還包括:元數(shù)據(jù)分片對應(yīng)模塊,用于同一個元數(shù)據(jù)分片對應(yīng)具有相同哈希值的元數(shù)據(jù)數(shù)據(jù)塊。
優(yōu)選地,還包括:元數(shù)據(jù)分片獲取模塊,用于依據(jù)名稱的哈希值,獲得存儲在不同存儲設(shè)備上的元數(shù)據(jù)分片。
與現(xiàn)有技術(shù)相比,本發(fā)明具有以下優(yōu)點:
1.本發(fā)明將單目錄的元數(shù)據(jù)數(shù)據(jù)塊劃分為多個元數(shù)據(jù)分片,元數(shù)據(jù)分片大小的減小,能夠?qū)崿F(xiàn)元數(shù)據(jù)緩存的加載、同步。
2.不同的元數(shù)據(jù)分片分別存儲在多個存儲設(shè)備上,能夠?qū)崿F(xiàn)元數(shù)據(jù)數(shù)據(jù)塊的并發(fā)讀寫,大大提升元數(shù)據(jù)數(shù)據(jù)塊的讀寫速度。
3.同一個元數(shù)據(jù)分片對應(yīng)具有相同哈希值的元數(shù)據(jù)數(shù)據(jù)塊,所有元數(shù)據(jù)分片組成整個目錄的命名空間,方便元數(shù)據(jù)數(shù)據(jù)塊的管理和維護。
附圖說明
圖1是本發(fā)明一種海量元數(shù)據(jù)分片分布的方法的流程示意圖;
圖2是本發(fā)明單目錄的元數(shù)據(jù)數(shù)據(jù)塊劃分和存儲元數(shù)據(jù)分片的結(jié)構(gòu)示意圖;
圖3是本發(fā)明一種海量元數(shù)據(jù)分片分布的裝置的結(jié)構(gòu)示意圖。
具體實施方式
為了便于理解,對本發(fā)明中出現(xiàn)的部分名詞作以下解釋說明:
哈希值,哈希算法將任意長度的二進(jìn)制值映射為固定長度的較小二進(jìn)制值,這個小的二進(jìn)制值成為哈希值。哈希值是一段數(shù)據(jù)唯一且極其緊湊的數(shù)值表示形式。如果散列一段明文而且哪怕只更改該段落的一個字母,隨后的哈希都將產(chǎn)生不同的值。
下面結(jié)合附圖和實施例,對本發(fā)明的具體實施方式作進(jìn)一步詳細(xì)描述:
本實施例提供一種海量元數(shù)據(jù)分片分布的方法,包括:
將單目錄的元數(shù)據(jù)數(shù)據(jù)塊劃分為多個元數(shù)據(jù)分片;
元數(shù)據(jù)數(shù)據(jù)塊依據(jù)預(yù)定規(guī)則分布在不同的元數(shù)據(jù)分片上;
將不同的元數(shù)據(jù)分片分別存儲在多個存儲設(shè)備上。
請參考圖1和圖2,圖1是本發(fā)明一種海量元數(shù)據(jù)分片分布的方法的流程示意圖;圖2是本發(fā)明單目錄的元數(shù)據(jù)數(shù)據(jù)塊劃分和存儲元數(shù)據(jù)分片的結(jié)構(gòu)示意圖;本實施例提供一種海量元數(shù)據(jù)分片分布的方法,包括以下步驟:
步驟s101,將單目錄的元數(shù)據(jù)數(shù)據(jù)塊劃分為多個元數(shù)據(jù)分片;
在本實施例中,將單目錄的元數(shù)據(jù)數(shù)據(jù)塊劃分為6個元數(shù)據(jù)分片。
步驟s102,單目錄的所有元數(shù)據(jù)數(shù)據(jù)塊依據(jù)名稱哈希到不同的元數(shù)據(jù)分片上,上面提到的名稱包括:目錄名稱、目錄下的文件名稱和子目錄名稱;
同一名稱的元數(shù)據(jù)數(shù)據(jù)塊分布在一個元數(shù)據(jù)分片上或者多個元數(shù)據(jù)分片上,但是同一個元數(shù)據(jù)分片對應(yīng)具有相同哈希值的元數(shù)據(jù)數(shù)據(jù)塊。
步驟s103,將不同的元數(shù)據(jù)分片分別存儲在多個存儲設(shè)備上;
在本實施例中,采用4臺存儲設(shè)備存儲6個元數(shù)據(jù)分片。
步驟s104,依據(jù)名稱的哈希值,獲得存儲在不同存儲設(shè)備上的元數(shù)據(jù)分片。
在本實施例中,元數(shù)據(jù)數(shù)據(jù)塊加載過程依據(jù)名稱的哈希值,找到6個元數(shù)據(jù)分片,分片加載存儲設(shè)備上的元數(shù)據(jù)分片。
本發(fā)明提出了海量元數(shù)據(jù)數(shù)據(jù)塊采用分片分布到存儲設(shè)備,通過將元數(shù)據(jù)數(shù)據(jù)塊分割為一定數(shù)量的分片進(jìn)行管理,使元數(shù)據(jù)數(shù)據(jù)塊能夠進(jìn)行緩存的加載、同步,同時實現(xiàn)元數(shù)據(jù)數(shù)據(jù)塊的并發(fā)讀寫,大大提升元數(shù)據(jù)數(shù)據(jù)塊的讀寫速度。
本實施例提供一種海量元數(shù)據(jù)分片分布的裝置,包括:
單目錄元數(shù)據(jù)數(shù)據(jù)塊劃分模塊,用于將單目錄的元數(shù)據(jù)數(shù)據(jù)塊劃分為多個元數(shù)據(jù)分片;
第一元數(shù)據(jù)數(shù)據(jù)塊分布模塊,用于元數(shù)據(jù)數(shù)據(jù)塊依據(jù)預(yù)定規(guī)則分布在不同的元數(shù)據(jù)分片上;
元數(shù)據(jù)分片存儲模塊,用于將不同的元數(shù)據(jù)分片分別存儲在多個存儲設(shè)備上。
請參考圖3,圖3是本發(fā)明一種海量元數(shù)據(jù)分片分布的裝置的結(jié)構(gòu)示意圖;本實施例提供一種海量元數(shù)據(jù)分片分布的裝置,包括:
單目錄元數(shù)據(jù)數(shù)據(jù)塊劃分模塊31,用于將單目錄的元數(shù)據(jù)數(shù)據(jù)塊劃分為多個元數(shù)據(jù)分片;
第一元數(shù)據(jù)數(shù)據(jù)塊分布模塊32,用于元數(shù)據(jù)數(shù)據(jù)塊依據(jù)預(yù)定規(guī)則分布在不同的元數(shù)據(jù)分片上;第一元數(shù)據(jù)數(shù)據(jù)塊分布模塊32包括第二元數(shù)據(jù)數(shù)據(jù)塊分布模塊34和元數(shù)據(jù)分片對應(yīng)模塊35;第二元數(shù)據(jù)數(shù)據(jù)塊分布模塊34,用于元數(shù)據(jù)數(shù)據(jù)塊依據(jù)名稱哈希到不同的元數(shù)據(jù)分片上;元數(shù)據(jù)分片對應(yīng)模塊35,用于同一個元數(shù)據(jù)分片對應(yīng)具有相同哈希值的元數(shù)據(jù)數(shù)據(jù)塊;
元數(shù)據(jù)分片存儲模塊33,用于將不同的元數(shù)據(jù)分片分別存儲在多個存儲設(shè)備上;
元數(shù)據(jù)分片獲取模塊36,用于依據(jù)名稱的哈希值,獲得存儲在不同存儲設(shè)備上的元數(shù)據(jù)分片。
以上所示僅是本發(fā)明的優(yōu)選實施方式,應(yīng)當(dāng)指出,對于本技術(shù)領(lǐng)域的普通技術(shù)人員來說,在不脫離本發(fā)明原理的前提下,還可以做出若干改進(jìn)和潤飾,這些改進(jìn)和潤飾也應(yīng)視為本發(fā)明的保護范圍。