用于在存儲(chǔ)系統(tǒng)上存取文件的方法和系統(tǒng)的制作方法【專利摘要】本公開提供一種用于在存儲(chǔ)系統(tǒng)上存取文件的方法和系統(tǒng)。本方法包括建構(gòu)哈希存儲(chǔ)器表,其中哈希存儲(chǔ)器表包含分別對(duì)應(yīng)于多個(gè)索引哈希碼的多個(gè)哈希存儲(chǔ)桶,每一哈希存儲(chǔ)桶具有指向至少一個(gè)存儲(chǔ)盒的指針,每一存儲(chǔ)盒具有物理地址欄位和哈希碼欄位。物理地址欄位分別記錄存儲(chǔ)文件的物理地址,且哈希碼欄位分別記錄對(duì)應(yīng)于文件的驗(yàn)證哈希碼。其中索引哈希碼是通過將文件的金鑰輸入到索引哈希函數(shù)來產(chǎn)生的,且驗(yàn)證哈希碼是通過將文件的金鑰輸入到驗(yàn)證哈希函數(shù)來產(chǎn)生的。本方法包括還包括使用以存儲(chǔ)桶為基礎(chǔ)的替代策略將哈希存儲(chǔ)器表載入到緩沖器中,使得文件能夠根據(jù)哈希存儲(chǔ)器表來進(jìn)行存取?!緦@f明】用于在存儲(chǔ)系統(tǒng)上存取文件的方法和系統(tǒng)【
技術(shù)領(lǐng)域:
】[0001]本公開涉及一種用于在存儲(chǔ)系統(tǒng)上存取文件的方法和系統(tǒng)。【
背景技術(shù):
】[0002]元數(shù)據(jù)(字面上稱為“關(guān)于數(shù)據(jù)的數(shù)據(jù)”)已被廣泛用于組織信息。元數(shù)據(jù)的建立和管理主要是從事編目錄、分類和編索引的信息專業(yè)人員的職責(zé)。隨著信息已變得越來越計(jì)算機(jī)化和數(shù)字化,元數(shù)據(jù)已包含在數(shù)據(jù)管理系統(tǒng)和管理功能的管理和互通性中。舉例來說,文件的元數(shù)據(jù)指定描述文件的一系列屬性,例如按字節(jié)計(jì)的大小、路徑、最后修改時(shí)間、擁有者、可存取性等等。[0003]當(dāng)今,例如云端存儲(chǔ)服務(wù)(cloudstorageservice)等許多網(wǎng)絡(luò)服務(wù)需要在數(shù)據(jù)庫(kù)系統(tǒng)對(duì)文件執(zhí)行各種操作時(shí)管理并維護(hù)元數(shù)據(jù)。由于大多數(shù)數(shù)據(jù)庫(kù)系統(tǒng)未在操作隨機(jī)性方面得到優(yōu)化,因此具有密集低空間和時(shí)間局部性要求(intensivelowspatialandtemporallocalityrequest)的操作(例如在云端系統(tǒng)(cloudsystem)上讀取、寫入、刪除或更新文件)限制了磁盤調(diào)度靈活性且導(dǎo)致緩沖存儲(chǔ)器(buffermemory)的低效使用。隨著元數(shù)據(jù)的數(shù)目不斷增加,輸入/輸出(input/output,1/0)速度相應(yīng)地減小且整體性能進(jìn)而受到顯著限制。一般的元數(shù)據(jù)存取方法在面對(duì)具有低存取局部性的更新密集型輸入工作負(fù)荷時(shí)受到嚴(yán)重挑戰(zhàn)。因此,如何減少磁盤1/0操作以云端存儲(chǔ)系統(tǒng)或其它網(wǎng)絡(luò)服務(wù)的效能是此領(lǐng)域技術(shù)人員所致力的目標(biāo)?!?br/>發(fā)明內(nèi)容】[0004]本公開實(shí)施例提供一種用于在具有緩沖器和磁盤的存儲(chǔ)系統(tǒng)上存取文件的方法。所述方法包括建構(gòu)哈希存儲(chǔ)器表,其中所述哈希存儲(chǔ)器表具有分別對(duì)應(yīng)于多個(gè)索引哈希碼的多個(gè)哈希存儲(chǔ)桶,每一哈希存儲(chǔ)桶具有指向至少一個(gè)存儲(chǔ)盒的指針,每一存儲(chǔ)盒具有物理地址欄位和哈希碼欄位,所述物理地址欄位分別記錄存儲(chǔ)所述文件的物理地址,且所述哈希碼欄位分別記錄對(duì)應(yīng)于所述文件的驗(yàn)證哈希碼。所述索引哈希碼是通過將所述文件的金鑰輸入到索引哈希函數(shù)來產(chǎn)生的,且所述驗(yàn)證哈希碼是通過將所述文件的所述金鑰輸入到驗(yàn)證哈希函數(shù)來產(chǎn)生的。所述方法還包含使用以存儲(chǔ)桶為基礎(chǔ)的替代策略將所述哈希存儲(chǔ)器表載入到所述緩沖器中,且根據(jù)載入到所述緩沖器中的所述哈希存儲(chǔ)器表來存取所述文件。[0005]本公開實(shí)施例亦提供另一種用于在具有緩沖器和磁盤的存儲(chǔ)系統(tǒng)上存取文件的方法。所述方法包括:建構(gòu)用于記錄所述文件的元數(shù)據(jù)的哈希存儲(chǔ)器表;在將所述文件寫入到所述磁盤中的同時(shí),將所述文件的邏輯文件名嵌入到所述磁盤中的存儲(chǔ)所述文件的物理地址中;使用以存儲(chǔ)桶為基礎(chǔ)的替代策略將所述哈希存儲(chǔ)器表載入到所述緩沖器中;以及根據(jù)載入到所述緩沖器中的所述哈希存儲(chǔ)器表和嵌入到所述磁盤的物理地址中的所述邏輯文件名來存取所述文件。[0006]本公開實(shí)施例提供一種存儲(chǔ)系統(tǒng),其包括微處理器、緩沖器、磁盤和元數(shù)據(jù)管理單元。所述緩沖器和所述磁盤分別耦接至所述微處理器。所述元數(shù)據(jù)管理單元耦接至所述微處理器且用以建構(gòu)哈希存儲(chǔ)器表,所述哈希存儲(chǔ)器表包含分別對(duì)應(yīng)于多個(gè)索引哈希碼的多個(gè)哈希存儲(chǔ)桶。每一哈希存儲(chǔ)桶具有指向至少一個(gè)存儲(chǔ)盒的指針,每一存儲(chǔ)盒具有物理地址欄位和哈希碼欄位,物理地址欄位分別記錄存儲(chǔ)文件的物理地址,且所述哈希碼欄位分別記錄對(duì)應(yīng)于所述文件的驗(yàn)證哈希碼。所述索引哈希碼是通過將所述文件的金鑰輸入到索引哈希函數(shù)來產(chǎn)生的,且所述驗(yàn)證哈希碼是通過將所述文件的所述金鑰輸入到驗(yàn)證哈希函數(shù)來產(chǎn)生的。所述元數(shù)據(jù)管理單元還用以使用以存儲(chǔ)桶為基礎(chǔ)的替代策略將所述哈希存儲(chǔ)器表載入到所述緩沖器中且根據(jù)載入到所述緩沖器中的所述哈希存儲(chǔ)器表來存取所述文件。[0007]本公開實(shí)施例提供另一種存儲(chǔ)系統(tǒng),其包含微處理器、緩沖器、磁盤和元數(shù)據(jù)管理單元。所述緩沖器和所述磁盤分別耦接至所述微處理器。所述元數(shù)據(jù)管理單元耦接至所述微處理器且用以建構(gòu)用于記錄所述文件的元數(shù)據(jù)的哈希存儲(chǔ)器表。所述元數(shù)據(jù)管理單元還用以在將所述文件寫入到所述磁盤中的同時(shí),將所述文件的邏輯文件名嵌入到所述磁盤中的存儲(chǔ)所述文件的物理地址中。所述元數(shù)據(jù)管理單元還用以使用以存儲(chǔ)桶為基礎(chǔ)的替代策略將所述哈希存儲(chǔ)器表載入到所述緩沖器中,且根據(jù)載入到所述緩沖器中的所述哈希存儲(chǔ)器表和嵌入到所述磁盤的物理地址中的所述邏輯文件名來存取所述文件。[0008]為讓本公開的上述特征和優(yōu)點(diǎn)能更明顯易懂,下文特舉實(shí)施例,并配合附圖作詳細(xì)說明如下?!緦@綀D】【附圖說明】[0009]圖1為根據(jù)本公開一實(shí)施例的存儲(chǔ)系統(tǒng)的方塊圖。[0010]圖2為根據(jù)圖1實(shí)施例中的哈希存儲(chǔ)器表(hashmemorytable)的示意性方塊圖。[0011]圖3為說明根據(jù)本公開一實(shí)施例的用于存取磁盤中的文件的方法的流程圖。[0012]圖4為說明根據(jù)本公開一實(shí)施例的用于當(dāng)將新文件寫入到磁盤中時(shí)更新哈希存儲(chǔ)器表的方法的流程圖。[0013]圖5為說明根據(jù)本公開一實(shí)施例的用于當(dāng)執(zhí)行文件讀取請(qǐng)求時(shí)更新哈希存儲(chǔ)器表的方法的流程圖。[0014]圖6為說明根據(jù)本公開一實(shí)施例的用于當(dāng)從磁盤刪除文件時(shí)更新哈希存儲(chǔ)器表的方法的流程圖。[0015]圖7為說明根據(jù)本公開一實(shí)施例的用于當(dāng)將文件移動(dòng)到另一物理地址時(shí)更新哈希存儲(chǔ)器表的方法的流程圖。[0016]圖8為說明根據(jù)本公開一實(shí)施例的用于當(dāng)將當(dāng)機(jī)恢復(fù)請(qǐng)求(crash-recoveryrequest)發(fā)送到元數(shù)據(jù)管理單元時(shí)恢復(fù)哈希存儲(chǔ)器表的方法的流程圖。[0017]【主要元件符號(hào)說明】[0018]50:用戶端計(jì)算機(jī)[0019]100:存儲(chǔ)系統(tǒng)[0020]105:主要服務(wù)器[0021]110:微處理器[0022]120:緩沖器[0023]130:磁盤[0024]132:文件系統(tǒng)[0025]140:元數(shù)據(jù)管理單元[0026]142:哈希存儲(chǔ)器表[0027]144:元數(shù)據(jù)數(shù)據(jù)庫(kù)[0028]146:控制模塊[0029]150:備用服務(wù)器[0030]152:副本[0031]201:金鑰[0032]202:索引哈希函數(shù)[0033]203:第一搜索哈希碼[0034]204:驗(yàn)證哈希函數(shù)[0035]205:第二搜索哈希碼[0036]210:哈希存儲(chǔ)桶[0037]211:索引哈希碼[0038]212:存儲(chǔ)盒數(shù)目[0039]213:指針[0040]220:存儲(chǔ)盒[0041]221:物理地址欄位[0042]222:哈希碼欄位[0043]230:陣列[0044]S301、S302、S303:存取磁盤中的文件的步驟[0045]S401、S402、S403、S404、S405、S406、S407、S408、S409、S410:當(dāng)將新文件寫入到磁盤中時(shí)更新哈希存儲(chǔ)器表的步驟[0046]S510、S502、S503、S504、S505、S506、S507、S508、S509、S510、S511、S512:當(dāng)執(zhí)行文件讀取請(qǐng)求時(shí)更新哈希存儲(chǔ)器表的步驟[0047]S601、S602、S603、S604、S605、S606、S607、S608、S609、S610、S611、S612、S613、S614、S615、S616:當(dāng)從磁盤刪除文件時(shí)更新哈希存儲(chǔ)器表的步驟[0048]S701、S702、S703、S704、S705、S706、S707、S708、S709、S710、S711、S712、S713:當(dāng)將文件更新到另一物理地址時(shí)更新哈希存儲(chǔ)器表的步驟[0049]S801、S802、S803、S804、S805、S806:當(dāng)向元數(shù)據(jù)管理單元發(fā)送當(dāng)機(jī)恢復(fù)請(qǐng)求時(shí)恢復(fù)哈希存儲(chǔ)器表的步驟【具體實(shí)施方式】[0050]為讓本公開的上述特征和優(yōu)點(diǎn)能更明顯易懂,下文特舉實(shí)施例,并配合附圖作詳細(xì)說明如下。范例實(shí)施例范例實(shí)施例在任何可能之處,將相同的參考標(biāo)號(hào)用于圖式和描述中來指代相同或相似的部分。[0051]圖1為根據(jù)本公開一實(shí)施例的存儲(chǔ)系統(tǒng)的方塊圖。[0052]請(qǐng)參照?qǐng)D1,存儲(chǔ)系統(tǒng)100包含主要服務(wù)器(mainserver)105和備用服務(wù)器(backupserer)150。存儲(chǔ)系統(tǒng)100可被實(shí)作為云端系統(tǒng)的一部分,但本公開并不限于此??蛻艨赏ㄟ^例如鍵盤等輸入裝置或例如鼠標(biāo)、軌跡球或觸摸墊等指向裝置將命令輸入到用戶端計(jì)算機(jī)50中,進(jìn)而將文件存儲(chǔ)到存儲(chǔ)系統(tǒng)100中或從存儲(chǔ)系統(tǒng)100中讀取文件。[0053]主要服務(wù)器105包括微處理器110、緩沖器120、磁盤130和元數(shù)據(jù)管理單元140。緩沖器120、磁盤130和元數(shù)據(jù)管理單元140分別耦接至微處理器110,且備用服務(wù)器150耦接至元數(shù)據(jù)管理單元140。[0054]微處理器110可為專用或?qū)iT的微處理器,其用以通過執(zhí)行機(jī)器可讀軟件碼語言來執(zhí)行特定任務(wù),其中所述機(jī)器可讀軟件碼語言定義與用以通過與存儲(chǔ)系統(tǒng)100的其它元件通信來實(shí)行例如文件讀取、文件寫入、文件刪除、文件更新或元數(shù)據(jù)數(shù)據(jù)庫(kù)恢復(fù)等功能操作的操作有關(guān)的功能。[0055]緩沖器120用以暫存頻繁存儲(chǔ)和檢索的數(shù)據(jù)。例如,緩沖器120可為隨機(jī)存取存儲(chǔ)器(randomaccessmemory,RAM)、靜態(tài)隨機(jī)存取存儲(chǔ)器(staticrandomaccessmemory,SRAM)或動(dòng)態(tài)隨機(jī)存取存儲(chǔ)器(dynamicrandomaccessmemory,DRAM)等較快速的存儲(chǔ)器,其用以存儲(chǔ)暫時(shí)數(shù)據(jù)以獲得快速得多的存取時(shí)間。[0056]磁盤130用于存儲(chǔ)和檢索文件。舉例來說,磁盤130可為硬盤驅(qū)動(dòng)器(harddiskdrive,HDD)或固態(tài)驅(qū)動(dòng)器(solidstatedrive,SSD)。磁盤130包括用以存儲(chǔ)和組織計(jì)算機(jī)文件及其所含有的數(shù)據(jù)的抽象物(abstraction)的文件系統(tǒng)132,,且用以將多個(gè)文件組織為單個(gè)字節(jié)流、陣列、連結(jié)清單或其它數(shù)據(jù)結(jié)構(gòu)。[0057]元數(shù)據(jù)管理單元140用以將存儲(chǔ)在磁盤130中的文件的所有元數(shù)據(jù)記錄于緩沖器120中且根據(jù)所記錄的元數(shù)據(jù)存取所述文件。舉例來說,元數(shù)據(jù)管理單元140包含哈希存儲(chǔ)器表142、元數(shù)據(jù)數(shù)據(jù)庫(kù)144和控制模塊146。在范例實(shí)施例中,控制模塊146由多個(gè)模塊組成且用以建構(gòu)或維護(hù)哈希存儲(chǔ)器表142以用于記錄文件的元數(shù)據(jù),且還將哈希存儲(chǔ)器表142載入到緩沖器120中以及將哈希存儲(chǔ)器表142中所記錄的信息存儲(chǔ)到元數(shù)據(jù)數(shù)據(jù)庫(kù)144中。在另一范例實(shí)施例中,元數(shù)據(jù)管理單元140(或控制模塊146)還用以將元數(shù)據(jù)數(shù)據(jù)庫(kù)的副本152備份到備用服務(wù)器150中。[0058]哈希技術(shù)(hashingtechnique)廣泛用于計(jì)算機(jī)硬件和軟件系統(tǒng)中,例如,其適于允許元數(shù)據(jù)等大量元素的動(dòng)態(tài)成長(zhǎng)和縮小,因此僅對(duì)所存儲(chǔ)元素的數(shù)目有極少的限制。舉例來說,對(duì)應(yīng)于一個(gè)文件的元數(shù)據(jù)的大小可高達(dá)256字節(jié),其中元數(shù)據(jù)可含有文件的用戶名、完整路徑和文件名。如果在存儲(chǔ)系統(tǒng)100上存在10億個(gè)文件,則所有元數(shù)據(jù)將需要多達(dá)256GB存儲(chǔ)空間來存儲(chǔ)且其可能致使存儲(chǔ)器不足。哈希是涉及從金鑰(key)計(jì)算哈希碼(hashcode)且使用哈希碼來在表中查找匹配。計(jì)算哈希碼的函數(shù)被稱為哈希函數(shù)(hashfunction)并且非常適合于在元數(shù)據(jù)存儲(chǔ)和檢索中加速查表或數(shù)據(jù)比對(duì)工作且因此在文件存儲(chǔ)和檢索中加速工作。哈希存儲(chǔ)器表實(shí)施方案的效率取決于所使用的哈希函數(shù)。[0059]圖2為根據(jù)本公開圖1實(shí)施例中的哈希存儲(chǔ)器表142的示意性方塊圖。[0060]請(qǐng)參照?qǐng)D2,哈希存儲(chǔ)器表142包括多個(gè)哈希存儲(chǔ)桶(hashbucket)210。每一個(gè)哈希存儲(chǔ)桶210包括多則信息,每一信息是由索引哈希碼(indexhashcode)211、存儲(chǔ)盒數(shù)目212和指針(pointer)213組成。[0061]索引哈希碼211為用于在磁盤130中識(shí)別文件以管理文件的信息。例如,索引哈希碼211為4個(gè)字節(jié)。指針213指向至少一個(gè)存儲(chǔ)盒220,其中同一指針?biāo)鶇⒖嫉拇鎯?chǔ)盒220形成陣列230。例如,每一指針213為8個(gè)字節(jié)。存儲(chǔ)盒數(shù)目212記錄對(duì)應(yīng)陣列230內(nèi)的存儲(chǔ)盒220的數(shù)目。[0062]每一存儲(chǔ)盒220包括物理地址欄位(physicaladdressfield)221和哈希碼欄位(hashcodefield)222。每一物理地址欄位221分別記錄存儲(chǔ)文件的物理地址。物理地址欄位221中的物理地址可為索引節(jié)編號(hào)(inodenumber),其包含指向其中存儲(chǔ)所述文件的塊的指針。此外,物理地址還可為以二進(jìn)位數(shù)字字或十六進(jìn)位數(shù)字的形式表示的塊編號(hào)。例如,每一物理地址欄位221為6個(gè)字節(jié)。哈希碼欄位222分別記錄對(duì)應(yīng)于所述文件的驗(yàn)證哈希碼(verificationhashcode)。例如,哈希碼欄位222為4個(gè)字節(jié)。此外,每一還可包括例如最近修改日期、版本、存取權(quán)、目錄旗標(biāo)等其它信息。[0063]索引哈希碼211和哈希碼欄位222中的驗(yàn)證哈希碼是通過使用哈希函數(shù)來計(jì)算。在本范例實(shí)施例中,索引哈希碼211和記錄在哈希碼欄位222中的驗(yàn)證哈希碼是通過將金鑰201分別輸入到索引哈希函數(shù)202和驗(yàn)證哈希函數(shù)204中來產(chǎn)生,其中金鑰201是對(duì)應(yīng)于欲存儲(chǔ)到磁盤130中的文件。舉例來說,每一金鑰可含有對(duì)應(yīng)于文件的邏輯文件名的文字串。當(dāng)進(jìn)行文件存取操作時(shí),對(duì)應(yīng)于欲存取的文件的金鑰201會(huì)被輸入至索引哈希函數(shù)202和驗(yàn)證哈希函數(shù)204以分別產(chǎn)生第一搜索哈希碼(searchhashcode)203和第二搜索哈希碼205。接著分別將第一搜索哈希碼203和第二搜索哈希碼205與索引哈希碼211和哈希碼欄位222中所記錄的驗(yàn)證哈希碼進(jìn)行比較以進(jìn)行文件識(shí)別。[0064]此外,索引哈希函數(shù)202和驗(yàn)證哈希函數(shù)204為不同的哈希函數(shù),這可減小在產(chǎn)生哈希碼時(shí)發(fā)生碰撞(collosion)的機(jī)率。具體來說,當(dāng)實(shí)作內(nèi)容可定址存儲(chǔ)的系統(tǒng)含有兩個(gè)具有不同內(nèi)容但具有相同哈希碼的文件時(shí)會(huì)發(fā)生哈希碰撞。哈希存儲(chǔ)器表的原理是將可能無限大的元素集合分割為有限數(shù)目的哈希碼。不同金鑰的哈希碼的相依性在較佳的情況下應(yīng)為非明顯。在使用良好的哈希函數(shù)下,金鑰中的所有位會(huì)影響所產(chǎn)生的哈希碼。例如,索引哈希函數(shù)202為Murmur3哈希函數(shù),其能夠有效地產(chǎn)生32位哈希值且實(shí)現(xiàn)具有最小重復(fù)頻率的較好分布。例如,驗(yàn)證哈希函數(shù)204可為FNVlA哈希函數(shù),其以32、64、128、256、512和1024位格式來呈現(xiàn)且易于實(shí)施??衫斫獾氖牵?dāng)全部存儲(chǔ)桶的數(shù)目為10億時(shí),發(fā)生四次以上碰撞的機(jī)率小于0.30%。雖然與全部存儲(chǔ)桶的大小相比所述機(jī)率相對(duì)較低,但稍后將解釋范例實(shí)施例如何解決此問題。[0065]此外,需注意的是,當(dāng)將額外存儲(chǔ)盒插入到哈希存儲(chǔ)器表中時(shí),其可能導(dǎo)致整個(gè)存儲(chǔ)器耗盡。在本范例實(shí)施例中,緩沖器會(huì)使用以存儲(chǔ)桶為基礎(chǔ)的替代策略(bucket-basedreplacementpolicy)來選擇最少存取的存儲(chǔ)桶中的至少一個(gè)來收回,直到緩沖器的存儲(chǔ)器足以用于所述額外存儲(chǔ)盒為止。所述替代策略為以存儲(chǔ)桶為基礎(chǔ),且可不為以存儲(chǔ)盒為基礎(chǔ),由此保證用于比較第二搜索哈希碼的正確性。例如,此程序還可在存儲(chǔ)器使用率大于(例如)90%時(shí)進(jìn)行。[0066]圖3為說明根據(jù)本公開一實(shí)施例的用于存取磁盤中的文件的方法的流程圖。[0067]請(qǐng)參照?qǐng)D3,在本范例實(shí)施例中,元數(shù)據(jù)管理單元140(或控制模塊146)會(huì)建構(gòu)哈希存儲(chǔ)器表142(步驟S301)。接著,元數(shù)據(jù)管理單元140(或控制模塊146)將哈希存儲(chǔ)器表142載入到緩沖器120中(步驟S302)。并且,元數(shù)據(jù)管理單元140(或控制模塊146)會(huì)根據(jù)載入在緩沖器120中的哈希存儲(chǔ)器表142存取所請(qǐng)求的文件(步驟S303)。具體地說,當(dāng)接受文件寫入請(qǐng)求、文件更新請(qǐng)求、文件刪除請(qǐng)求或文件更新請(qǐng)求時(shí),元數(shù)據(jù)管理單元140(或控制模塊146)會(huì)使用以存儲(chǔ)桶為基礎(chǔ)的替代策略維護(hù)載入到緩沖器120中的哈希存儲(chǔ)器表142,使得可用較少磁盤I/O操作來存取磁盤130中所存儲(chǔ)的文件。[0068]圖4為說明根據(jù)本公開一實(shí)施例的用于當(dāng)將新文件寫入到磁盤中時(shí)更新哈希存儲(chǔ)器表的方法的流程圖。[0069]請(qǐng)參照?qǐng)D4,在此范例實(shí)施例中,從用戶端計(jì)算機(jī)50將新文件寫入到磁盤130中(步驟S401)。如前所述,當(dāng)全部存儲(chǔ)桶的數(shù)目為10億時(shí),發(fā)生四次以上碰撞的機(jī)率小于0.30%。為了解決此問題,在一范例實(shí)施例中,當(dāng)用戶端計(jì)算機(jī)50寫入或上載文件時(shí),將新文件的金鑰(即,邏輯地址)寫入在物理地址的第一區(qū)段中,使得如果有一個(gè)以上文件在哈希碼匹配程序之后被識(shí)別,那么第一區(qū)段可確認(rèn)所搜索的文件是否確實(shí)為所匹配的文件。因此,新文件的物理地址會(huì)從磁盤130的文件系統(tǒng)132被獲取(步驟S402)。新文件的金鑰201會(huì)被嵌入到存儲(chǔ)新文件所在的物理地址中(步驟S403)。接下來,索引哈希函數(shù)202會(huì)被輸入新文件的金鑰201以產(chǎn)生對(duì)應(yīng)于新文件的索引哈希碼211(步驟S404)。接著,對(duì)應(yīng)于新文件的新產(chǎn)生的索引哈希碼211是否已經(jīng)存在于哈希存儲(chǔ)器表142中會(huì)被確認(rèn)(步驟S405)。[0070]如果對(duì)應(yīng)于新文件的新產(chǎn)生的索引哈希碼211已經(jīng)存在于哈希存儲(chǔ)器表142中,則具有物理地址欄位221和哈希碼欄位222的新存儲(chǔ)盒220會(huì)被加入至指針213所指向的陣列230,且對(duì)應(yīng)哈希存儲(chǔ)桶210的存儲(chǔ)盒數(shù)目212會(huì)被加一(步驟S406)。如果對(duì)應(yīng)于新文件的新產(chǎn)生的索引哈希碼211并不存在于哈希存儲(chǔ)器表142中,則新哈希存儲(chǔ)桶210會(huì)被插入到哈希存儲(chǔ)器表142中(步驟S407)。對(duì)應(yīng)于新文件的存儲(chǔ)盒220會(huì)被加入并通過哈希存儲(chǔ)桶210的新設(shè)置的指針213來指向所加入的存儲(chǔ)盒220,同時(shí)對(duì)應(yīng)于新文件的存儲(chǔ)盒數(shù)目212會(huì)被記錄為一(步驟S408)。驗(yàn)證哈希函數(shù)204會(huì)被輸入新文件的金鑰201以產(chǎn)生對(duì)應(yīng)于新文件的驗(yàn)證哈希碼(步驟S409)。存儲(chǔ)新文件的物理地址和對(duì)應(yīng)于新文件的驗(yàn)證哈希碼會(huì)分別被記錄到對(duì)應(yīng)于新文件的存儲(chǔ)盒220的物理地址欄位221和哈希碼欄位222中(步驟S410),由此完成哈希存儲(chǔ)器表142的更新。[0071]圖5為說明根據(jù)本公開一實(shí)施例的用于當(dāng)執(zhí)行文件讀取請(qǐng)求時(shí)更新哈希存儲(chǔ)器表的方法的流程圖。[0072]請(qǐng)參照?qǐng)D5,在此范例實(shí)施例中,當(dāng)由用戶端計(jì)算機(jī)50選擇欲讀取的特定文件(步驟S501)時(shí),對(duì)應(yīng)于所述特定文件的金鑰201會(huì)被產(chǎn)生(步驟S502)。之后,對(duì)應(yīng)于所述特定文件的金鑰201會(huì)被輸入至索引哈希函數(shù)202以產(chǎn)生對(duì)應(yīng)于特定文件的第一搜索哈希碼203(步驟S503)。然后,對(duì)應(yīng)于特定文件的第一搜索哈希碼203會(huì)與每一哈希存儲(chǔ)桶210中中的索引哈希碼211進(jìn)行比較。接著,具有相同于對(duì)應(yīng)于特定文件的第一搜索哈希碼203的索引哈希碼211的哈希存儲(chǔ)桶210會(huì)被識(shí)別(步驟S504),其中所識(shí)別的哈希存儲(chǔ)桶210會(huì)包括指向陣列230的指針213。接下來,對(duì)應(yīng)于特定文件的金鑰201會(huì)被輸入至驗(yàn)證哈希函數(shù)204以產(chǎn)生對(duì)應(yīng)于特定文件的第二搜索哈希碼205(步驟S505)。接著,從第一存儲(chǔ)盒開始以反復(fù)運(yùn)算型式將第二搜索哈希碼205會(huì)與由指針213指向的陣列230內(nèi)的記錄在每一存儲(chǔ)盒220的哈希碼欄位222中的驗(yàn)證哈希碼進(jìn)行比較(步驟S506)。接著,判斷是否找到至少一個(gè)匹配(步驟S507)。如果沒有找到任何匹配時(shí),則向用戶端計(jì)算機(jī)50發(fā)出錯(cuò)誤異常(步驟S508)。如果找到至少一個(gè)匹配時(shí),則判斷是否正好找到一個(gè)匹配(步驟S509)。如果正好找到一個(gè)匹配時(shí),則立即通過指向?qū)?yīng)于同一存儲(chǔ)盒220內(nèi)的驗(yàn)證哈希碼的物理地址欄位221中的物理地址來識(shí)別所匹配的文件的實(shí)際位置(步驟S510)。如果找到多個(gè)匹配時(shí),則將金鑰201與嵌入在所匹配存儲(chǔ)盒220內(nèi)的物理地址中的邏輯文件名進(jìn)行比較,而無須開啟所有所識(shí)別的文件來進(jìn)行驗(yàn)證(步驟S511)。最后,可通過使用例如Linux系統(tǒng)上的Debugfs等指令來讀取文件(S512)。[0073]圖6為說明根據(jù)本公開一實(shí)施例的用于當(dāng)從磁盤刪除文件時(shí)更新哈希存儲(chǔ)器表的方法的流程圖。[0074]參看圖6,在本范例實(shí)施例中,當(dāng)由用戶端計(jì)算機(jī)50選擇欲刪除的特定文件(步驟S601)時(shí),產(chǎn)生對(duì)應(yīng)于所述特定文件的金鑰201(步驟S602)。接下來,在步驟S603到步驟S611中識(shí)別對(duì)應(yīng)于所述特定文件的存儲(chǔ)盒220,其中步驟S603到S611可參考圖5中的步驟S503到S511,且下文中將不再詳細(xì)解釋。在識(shí)別對(duì)應(yīng)于特定文件的存儲(chǔ)盒220之后,特定文件會(huì)從磁盤130中被刪除(步驟S612),并且對(duì)應(yīng)于特定文件的存儲(chǔ)盒220會(huì)被刪除(步驟S613)。接著,判斷對(duì)應(yīng)哈希存儲(chǔ)桶210中的存儲(chǔ)盒數(shù)目212是否為一(步驟S614)。如果對(duì)應(yīng)哈希存儲(chǔ)桶210中的存儲(chǔ)盒數(shù)目212為一時(shí),則哈希存儲(chǔ)桶210會(huì)被相應(yīng)地刪除(步驟S615)。如果對(duì)應(yīng)哈希存儲(chǔ)桶210中的存儲(chǔ)盒數(shù)目212大于一時(shí),則存儲(chǔ)盒數(shù)目212會(huì)被減去一(步驟S616),由此完成哈希存儲(chǔ)器表142的更新。[0075]圖7為說明根據(jù)本公開一實(shí)施例的用于當(dāng)將文件更新到另一物理地址時(shí)更新哈希存儲(chǔ)器表的方法的流程圖。[0076]請(qǐng)參照?qǐng)D7,在此范例實(shí)施例中,當(dāng)由用戶端計(jì)算機(jī)50選擇欲更新的特定文件(步驟S701)時(shí),對(duì)應(yīng)于特定文件的金鑰201會(huì)被產(chǎn)生(步驟S702)。接下來,在步驟S703到步驟S711中識(shí)別對(duì)應(yīng)于特定文件的存儲(chǔ)盒220,其中步驟S703到S711可參考圖5中的步驟S503到S511,且下文中將不再詳細(xì)解釋。在識(shí)別對(duì)應(yīng)于特定文件的存儲(chǔ)盒220之后,特定文件會(huì)從物理地址221中被更新到另一物理地址221(步驟S712)。接著,在對(duì)應(yīng)于特定文件的存儲(chǔ)盒220的物理地址欄位221中存儲(chǔ)此特定文件的物理地址會(huì)被更新為此另一物理地址(步驟S713),由此完成哈希存儲(chǔ)器表142的更新。值得注意的是,為了確保哈希存儲(chǔ)器表142正常的運(yùn)作,可周期性地對(duì)文件系統(tǒng)132進(jìn)行磁盤重組,使得以緊鄰方式存儲(chǔ)文件。磁盤重組涉及將各區(qū)塊移動(dòng)到新位置。當(dāng)因磁盤重組目的(尤其是清理自由空間且優(yōu)化持久性)而移動(dòng)某些塊,元數(shù)據(jù)管理單元140(或控制模塊146)需被告知物理地址的任何改變。[0077]請(qǐng)?jiān)俅螀⒄請(qǐng)D1,應(yīng)注意的是,包括元數(shù)據(jù)的哈希存儲(chǔ)器表142會(huì)存儲(chǔ)在元數(shù)據(jù)數(shù)據(jù)庫(kù)144中,并且元數(shù)據(jù)數(shù)據(jù)庫(kù)144會(huì)以載入在緩沖器120中的哈希存儲(chǔ)器表142以及磁盤130的文件系統(tǒng)132來同步地更新。在范例實(shí)施例中,元數(shù)據(jù)數(shù)據(jù)庫(kù)的副本152會(huì)被建立在備用服務(wù)器150中。在元數(shù)據(jù)數(shù)據(jù)庫(kù)的副本152中,在哈希存儲(chǔ)器表142中找到的元數(shù)據(jù)會(huì)被備份且會(huì)被用于恢復(fù)程序。此程序還可持續(xù)修改副本且局部地存儲(chǔ)此副本在暫時(shí)目錄中。所改變的數(shù)據(jù)的副本還可以預(yù)定義的時(shí)間間隔來使用。當(dāng)備用服務(wù)器150被連接時(shí),未存于備用服務(wù)器150上的所有暫時(shí)數(shù)據(jù)會(huì)被傳送。當(dāng)復(fù)原元數(shù)據(jù)數(shù)據(jù)庫(kù)144時(shí),其可復(fù)原到在特定時(shí)間處存在或在一段時(shí)間周期內(nèi)已經(jīng)存在的內(nèi)容,使得元數(shù)據(jù)數(shù)據(jù)庫(kù)144可復(fù)原到其最近版本。通常當(dāng)主要服務(wù)器105關(guān)機(jī)時(shí),其會(huì)維持一致狀態(tài)。也就是說,元數(shù)據(jù)數(shù)據(jù)庫(kù)144內(nèi)的所有內(nèi)容和所有文件系統(tǒng)132的內(nèi)容會(huì)被同步。在發(fā)生當(dāng)機(jī)之后,有可能造成存儲(chǔ)系統(tǒng)100處于不一致狀態(tài)。也就是說,在主要服務(wù)器105中的文件系統(tǒng)132與元數(shù)據(jù)數(shù)據(jù)庫(kù)144的內(nèi)容之間可能存在不一致。[0078]圖8為說明根據(jù)本公開一實(shí)施例的用于當(dāng)向元數(shù)據(jù)管理單元發(fā)送當(dāng)機(jī)恢復(fù)請(qǐng)求時(shí)恢復(fù)哈希存儲(chǔ)器表的方法的流程圖。[0079]參看圖8,在主要服務(wù)器105當(dāng)機(jī)之后,在下一次啟動(dòng)時(shí)可執(zhí)行恢復(fù)程序。每當(dāng)主要服務(wù)器105啟動(dòng)時(shí),確定先前關(guān)機(jī)是否有不一致狀態(tài)(步驟S801)。如果主要服務(wù)器105從先前關(guān)機(jī)中存有一致狀態(tài)時(shí),則根據(jù)元數(shù)據(jù)數(shù)據(jù)庫(kù)144來初始化并建構(gòu)哈希存儲(chǔ)器表142(步驟S802)。如果主要服務(wù)器105從先前關(guān)機(jī)中存有不一致狀態(tài)(B卩,主要服務(wù)器105歸因于當(dāng)機(jī)而關(guān)機(jī))時(shí),則向備用服務(wù)器150發(fā)送當(dāng)機(jī)恢復(fù)請(qǐng)求(步驟S803)。備用服務(wù)器檢查元數(shù)據(jù)數(shù)據(jù)庫(kù)的副本152與元數(shù)據(jù)數(shù)據(jù)庫(kù)144中的哈希存儲(chǔ)器表之間的不一致(步驟S804)。接著,從元數(shù)據(jù)數(shù)據(jù)庫(kù)的副本152發(fā)送欲在元數(shù)據(jù)數(shù)據(jù)庫(kù)144中恢復(fù)的內(nèi)容(步驟S805)。最后,將所恢復(fù)的哈希存儲(chǔ)器表142載入到緩沖器120以準(zhǔn)備好用于處理元數(shù)據(jù)查詢(步驟S806)。[0080]在范例實(shí)施例中,元數(shù)據(jù)管理單元的上述控制模塊可以軟件形式來實(shí)施且存儲(chǔ)在包含CD-ROM、磁帶、軟盤或光學(xué)數(shù)據(jù)存儲(chǔ)裝置在內(nèi)的計(jì)算機(jī)可讀記錄媒體中。[0081]綜合上述,本公開提供用于元數(shù)據(jù)的方法和系統(tǒng),其具有高更新效率和長(zhǎng)系統(tǒng)使用持久性。所述方法和系統(tǒng)以哈希型式進(jìn)行元數(shù)據(jù)管理且通過減少用以識(shí)別文件匹配或文件匹配不存在的磁盤I/o操作的數(shù)目來顯著地改善例如文件寫入請(qǐng)求、讀取請(qǐng)求、更新請(qǐng)求和刪除請(qǐng)求等物理磁盤存取效率。因此,與常規(guī)的數(shù)據(jù)庫(kù)管理系統(tǒng)相比,效率得以改善,且執(zhí)行時(shí)間成本得以降低。本公開合適地適用于例如具有密集工作負(fù)荷和更新的云存儲(chǔ)服務(wù)等網(wǎng)絡(luò)服務(wù)。[0082]雖然本公開已以實(shí)施例公開如上,然其并非用以限定本公開,本領(lǐng)域技術(shù)人員,在不脫離本公開的精神和范圍內(nèi),當(dāng)可作些許的更動(dòng)與潤(rùn)飾,故本公開的保護(hù)范圍當(dāng)視所附權(quán)利要求書界定范圍為準(zhǔn)。【權(quán)利要求】1.一種用于在具有緩沖器和磁盤的存儲(chǔ)系統(tǒng)上存取文件的方法,所述方法包括:建構(gòu)一哈希存儲(chǔ)器表,其中所述哈希存儲(chǔ)器表包括多個(gè)哈希存儲(chǔ)桶,所述多個(gè)哈希存儲(chǔ)桶分別對(duì)應(yīng)于多個(gè)索引哈希碼,每一所述哈希存儲(chǔ)桶具有一指針,每一所述指針指向至少一個(gè)存儲(chǔ)盒,每一所述存儲(chǔ)盒具有一物理地址欄位和一哈希碼欄位,所述物理地址欄位分別記錄存儲(chǔ)所述文件的物理地址,所述哈希碼欄位分別記錄對(duì)應(yīng)于所述文件的驗(yàn)證哈希碼,所述索引哈希碼是通過將所述文件的金鑰輸入到一索引哈希函數(shù)來產(chǎn)生,且所述驗(yàn)證哈希碼是通過將所述文件的所述金鑰輸入到一驗(yàn)證哈希函數(shù)來產(chǎn)生;使用一以存儲(chǔ)桶為基礎(chǔ)的替代策略將所述哈希存儲(chǔ)器表載入到所述緩沖器中;以及根據(jù)載入到所述緩沖器中的所述哈希存儲(chǔ)器表來存取所述文件。2.如權(quán)利要求1所述的方法,其中所述根據(jù)載入到所述緩沖器中的所述哈希存儲(chǔ)器表來存取所述文件的步驟包括:將一新文件寫入到所述磁盤中且從所述磁盤的一文件系統(tǒng)獲得存儲(chǔ)所述新文件的一物理地址;將一新哈希存儲(chǔ)桶插入在所述哈希存儲(chǔ)器表中;通過將所述新文件的一金鑰輸入到所述索引哈希函數(shù)中來產(chǎn)生對(duì)應(yīng)于所述新哈希存儲(chǔ)桶的一索引哈希碼;在所述新哈希存儲(chǔ)桶中加入對(duì)應(yīng)于所述新文件的一存儲(chǔ)盒且設(shè)置所述新哈希存儲(chǔ)桶的一指針,其中所述指針指向?qū)?yīng)于所述新文件的所述存儲(chǔ)盒;通過將所述新文件的所述金鑰輸入到所述驗(yàn)證哈希函數(shù)中來產(chǎn)生對(duì)應(yīng)于所述新文件的一驗(yàn)證哈希碼;將存儲(chǔ)所述新文件的物理地址記錄到對(duì)應(yīng)于所述新文件的所述存儲(chǔ)盒的所述物理地址欄位中;以及將對(duì)應(yīng)于所述新文件的所述驗(yàn)證哈希碼記錄到對(duì)應(yīng)于所述新文件的所述存儲(chǔ)盒的所述哈希碼欄位中。3.如權(quán)利要求2所述的方法,其中所述根據(jù)載入到所述緩沖器中的所述哈希存儲(chǔ)器表來存取所述文件的步驟還包括:在將所述新文件寫入到所述磁盤中的同時(shí),將所述新文件的邏輯文件名嵌入到存儲(chǔ)所述新文件的所述物理地址中。4.如權(quán)利要求2所述的方法,其中所述根據(jù)載入到所述緩沖器中的所述哈希存儲(chǔ)器表來存取所述文件的步驟還包括:接收用于讀取所述新文件的一指令;通過將所述新文件的所述金鑰輸入到所述索引哈希函數(shù)中來產(chǎn)生一第一搜索哈希碼;通過將所述第一搜索哈希碼與所述索引哈希碼進(jìn)行比較來從所述哈希存儲(chǔ)桶中識(shí)別所述新哈希存儲(chǔ)桶;根據(jù)對(duì)應(yīng)于所述第一搜索哈希碼的所述新哈希存儲(chǔ)桶的所述指針來讀取至少一個(gè)搜索存儲(chǔ)盒;通過將所述新文件的所述金鑰輸入到所述驗(yàn)證哈希函數(shù)中來產(chǎn)生一第二搜索哈希碼;通過將所述第二搜索哈希碼與所述至少一個(gè)搜索存儲(chǔ)盒的至少一個(gè)哈希碼欄位中所記錄的至少一個(gè)驗(yàn)證哈希碼進(jìn)行比較來在所述至少一個(gè)搜索存儲(chǔ)盒當(dāng)中識(shí)別對(duì)應(yīng)于所述新文件的所述存儲(chǔ)盒;以及根據(jù)對(duì)應(yīng)于所述新文件的所述存儲(chǔ)盒的所述物理地址欄位中所記錄的所述物理地址來從所述磁盤讀取所述新文件的內(nèi)容。5.如權(quán)利要求3所述的方法,其中所述根據(jù)載入到所述緩沖器中的所述哈希存儲(chǔ)器表來存取所述文件的步驟還包括:接收用于讀取所述新文件的一指令;通過將所述新文件的所述金鑰輸入到所述索引哈希函數(shù)中來產(chǎn)生一第一搜索哈希碼;通過將所述第一搜索哈希碼與所述索引哈希碼進(jìn)行比較來從所述哈希存儲(chǔ)桶中識(shí)別所述新哈希存儲(chǔ)桶;根據(jù)對(duì)應(yīng)于所述第一搜索哈希碼的所述新哈希存儲(chǔ)桶的所述指針來讀取至少一個(gè)搜索存儲(chǔ)盒;通過將所述新文件的所述金鑰輸入到所述驗(yàn)證哈希函數(shù)中來產(chǎn)生第二搜索哈希碼;通過將所述第二搜索哈希碼與所述至少一個(gè)搜索存儲(chǔ)盒的至少一個(gè)哈希碼欄位中所記錄的至少一個(gè)驗(yàn)證哈希碼進(jìn)行比較且將所述新文件的所述邏輯文件名與嵌入到存儲(chǔ)對(duì)應(yīng)于至少一個(gè)搜索存儲(chǔ)盒的至少一個(gè)文件的至少一個(gè)物理地址中的至少一個(gè)邏輯文件名進(jìn)行比較來在所述至少一個(gè)搜索存儲(chǔ)盒當(dāng)中識(shí)別對(duì)應(yīng)于所述新文件的所述存儲(chǔ)盒;以及根據(jù)對(duì)應(yīng)于所述新文件的所述存儲(chǔ)盒的所述物理地址欄位中所記錄的所述物理地址來從所述磁盤讀取所述新文件的內(nèi)容。6.如權(quán)利要求2所述的方法,其中所述根據(jù)載入到所述緩沖器中的所述哈希存儲(chǔ)器表來存取所述文件的步驟還包括:當(dāng)所述磁盤的所述文件系統(tǒng)將所述新文件從存儲(chǔ)所述新文件的所述物理地址移動(dòng)到另一物理地址時(shí),將所述另一物理地址更新到所述哈希存儲(chǔ)器表中的對(duì)應(yīng)于所述新文件的所述存儲(chǔ)盒的所述物理地址欄位中。7.如權(quán)利要求2所述的方法,其中所述根據(jù)載入到所述緩沖器中的所述哈希存儲(chǔ)器表來存取所述文件的步驟還包括:當(dāng)所述磁盤的所述文件系統(tǒng)將所述新文件從存儲(chǔ)所述新文件的所述物理地址刪除時(shí),刪除所述哈希存儲(chǔ)器表中對(duì)應(yīng)于所述新文件的所述存儲(chǔ)盒。8.如權(quán)利要求1所述的方法,還包括:建構(gòu)一元數(shù)據(jù)數(shù)據(jù)庫(kù);以及將所述哈希存儲(chǔ)器表中所記錄的信息存儲(chǔ)到所述元數(shù)據(jù)數(shù)據(jù)庫(kù)中。9.如權(quán)利要求8所述的方法,還包括:將所述元數(shù)據(jù)數(shù)據(jù)庫(kù)的一副本備份到備用服務(wù)器中;以及根據(jù)所述備用服務(wù)器中所存儲(chǔ)的所述元數(shù)據(jù)數(shù)據(jù)庫(kù)的所述副本來恢復(fù)所述哈希存儲(chǔ)器表。10.一種用于在具有緩沖器和磁盤的存儲(chǔ)系統(tǒng)上存取文件的方法,所述方法包括:建構(gòu)用于記錄所述文件的一元數(shù)據(jù)的一哈希存儲(chǔ)器表;在將所述文件寫入到所述磁盤中的同時(shí),將所述文件的邏輯文件名嵌入到所述磁盤中的存儲(chǔ)所述文件的一物理地址中;將所述哈希存儲(chǔ)器表載入到所述緩沖器中;以及根據(jù)載入到所述緩沖器中的所述哈希存儲(chǔ)器表和嵌入到所述磁盤的所述物理地址中的所述邏輯文件名來存取所述文件。11.一種存儲(chǔ)系統(tǒng),包括:一微處理器;一緩沖器,耦接至所述微處理器;一磁盤,耦接至所述微處理器;一元數(shù)據(jù)管理單元,耦接至所述微處理器且用以建構(gòu)一哈希存儲(chǔ)器表,其中所述哈希存儲(chǔ)器表包含多個(gè)哈希存儲(chǔ)桶,所述多個(gè)哈希存儲(chǔ)桶分別對(duì)應(yīng)于多個(gè)索引哈希碼,每一所述哈希存儲(chǔ)桶具有指針,每一所述指針指向至少一個(gè)存儲(chǔ)盒,每一所述存儲(chǔ)盒具有一物理地址欄位和一哈希碼欄位,所述物理地址欄位分別記錄存儲(chǔ)文件的物理地址,所述哈希碼欄位分別記錄對(duì)應(yīng)于所述文件的驗(yàn)證哈希碼,所述索引哈希碼是通過將所述文件的金鑰輸入到一索引哈希函數(shù)來產(chǎn)生,且所述驗(yàn)證哈希碼是通過將所述文件的所述金鑰輸入到一驗(yàn)證哈希函數(shù)來產(chǎn)生,所述元數(shù)據(jù)管理單元還用以使用一以存儲(chǔ)桶為基礎(chǔ)的替代策略將所述哈希存儲(chǔ)器表載入到所述緩沖器中且根據(jù)載入到所述緩沖器中的所述哈希存儲(chǔ)器表來存取所述文件。12.如權(quán)利要求11所述的存儲(chǔ)系統(tǒng),其中所述元數(shù)據(jù)管理單元將一新文件寫入到所述磁盤中且從所述磁盤的一文件系統(tǒng)中獲得存儲(chǔ)所述新文件的一物理地址,其中所述元數(shù)據(jù)管理單元通過將所述新文件的一金鑰輸入到所述索引哈希函數(shù)中來產(chǎn)生對(duì)應(yīng)于一新哈希存儲(chǔ)桶的索引哈希碼且通過將所述新文件的所述金鑰輸入到所述驗(yàn)證哈希函數(shù)中來產(chǎn)生對(duì)應(yīng)于所述新文件的一驗(yàn)證哈希碼,其中所述元數(shù)據(jù)管理單元將一新哈希存儲(chǔ)桶插入在所述哈希存儲(chǔ)器表中,將對(duì)應(yīng)于所述新文件的一存儲(chǔ)盒加入在所述新哈希存儲(chǔ)桶中,且設(shè)定所述新哈希存儲(chǔ)桶的一指針,其中所述指針指向?qū)?yīng)于所述新文件的所述存儲(chǔ)盒,其中所述元數(shù)據(jù)管理單元將存儲(chǔ)所述新文件的所述物理地址記錄到對(duì)應(yīng)于所述新文件的所述存儲(chǔ)盒的物理地址欄位中且將對(duì)應(yīng)于所述新文件的所述驗(yàn)證哈希碼記錄到對(duì)應(yīng)于所述新文件的所述存儲(chǔ)盒的所述哈希碼欄位中。13.如權(quán)利要求12所述的存儲(chǔ)系統(tǒng),其中所述元數(shù)據(jù)管理單元還用以在將所述新文件寫入到所述磁盤中的同時(shí),將所述新文件的邏輯文件名嵌入到存儲(chǔ)所述新文件的所述物理地址中。14.如權(quán)利要求12所述的存儲(chǔ)系統(tǒng),其中所述元數(shù)據(jù)管理單元還用以接收用于讀取所述新文件的一指令,通過將所述新文件的所述金鑰輸入到所述索引哈希函數(shù)中來產(chǎn)生一第一搜索哈希碼,通過將所述第一搜索哈希碼與所述索引哈希碼進(jìn)行比較來從所述哈希存儲(chǔ)桶中識(shí)別所述新哈希存儲(chǔ)桶;根據(jù)對(duì)應(yīng)于所述第一搜索哈希碼的所述新哈希存儲(chǔ)桶的所述指針來讀取至少一個(gè)搜索存儲(chǔ)盒;以及通過將所述新文件的所述金鑰輸入到所述驗(yàn)證哈希函數(shù)中來產(chǎn)生一第二搜索哈希碼,其中所述元數(shù)據(jù)管理單元還用以通過將所述第二搜索哈希碼與所述至少一個(gè)搜索存儲(chǔ)盒的至少一個(gè)哈希碼欄位中所記錄的至少一個(gè)驗(yàn)證哈希碼進(jìn)行比較來在所述至少一個(gè)搜索存儲(chǔ)盒當(dāng)中識(shí)別對(duì)應(yīng)于所述新文件的所述存儲(chǔ)盒,且根據(jù)對(duì)應(yīng)于所述新文件的所述存儲(chǔ)盒的所述物理地址欄位中所記錄的所述物理地址來從所述磁盤讀取所述新文件的內(nèi)容。15.如權(quán)利要求13所述的存儲(chǔ)系統(tǒng),其中所述元數(shù)據(jù)管理單元還用以接收用于讀取所述新文件的一指令,通過將所述新文件的所述金鑰輸入到所述索引哈希函數(shù)中來產(chǎn)生一第一搜索哈希碼,通過將所述第一搜索哈希碼與所述索引哈希碼進(jìn)行比較來從所述哈希存儲(chǔ)桶中識(shí)別所述新哈希存儲(chǔ)桶;根據(jù)對(duì)應(yīng)于所述第一搜索哈希碼的所述新哈希存儲(chǔ)桶的所述指針來讀取至少一個(gè)搜索存儲(chǔ)盒;以及通過將所述新文件的所述金鑰輸入到所述驗(yàn)證哈希函數(shù)中來產(chǎn)生一第二搜索哈希碼,其中所述元數(shù)據(jù)管理單元還用以通過將所述第二搜索哈希碼與所述至少一個(gè)搜索存儲(chǔ)盒的至少一個(gè)哈希碼欄位中所記錄的至少一個(gè)驗(yàn)證哈希碼進(jìn)行比較及將所述新文件的所述邏輯文件名與嵌入到存儲(chǔ)對(duì)應(yīng)于至少一個(gè)搜索存儲(chǔ)盒的至少一個(gè)文件的至少一個(gè)物理地址中的至少一個(gè)邏輯文件名進(jìn)行比較來在所述至少一個(gè)搜索存儲(chǔ)盒當(dāng)中識(shí)別對(duì)應(yīng)于所述新文件的所述存儲(chǔ)盒,且根據(jù)對(duì)應(yīng)于所述新文件的所述存儲(chǔ)盒的所述物理地址欄位中所記錄的所述物理地址來從所述磁盤讀取所述新文件的內(nèi)容。16.如權(quán)利要求12所述的存儲(chǔ)系統(tǒng),其中當(dāng)所述磁盤的所述文件系統(tǒng)將所述新文件從存儲(chǔ)所述新文件的所述物理地址移動(dòng)到另一物理地址時(shí),所述元數(shù)據(jù)管理單元還用以將所述另一物理地址更新到所述哈希存儲(chǔ)器表中的對(duì)應(yīng)于所述新文件的所述存儲(chǔ)盒的所述物理地址欄位中。17.如權(quán)利要求12所述的存儲(chǔ)系統(tǒng),其中當(dāng)所述磁盤的所述文件系統(tǒng)將所述新文件從存儲(chǔ)所述新文件的所述物理地址刪除時(shí),所述元數(shù)據(jù)管理單元還用以刪除所述哈希存儲(chǔ)器表中對(duì)應(yīng)于所述新文件的所述存儲(chǔ)盒。18.如權(quán)利要求11所述的存儲(chǔ)系統(tǒng),其中所述元數(shù)據(jù)管理單元還包括一元數(shù)據(jù)數(shù)據(jù)庫(kù)且將所述哈希存儲(chǔ)器表中所記錄的信息存儲(chǔ)到所述元數(shù)據(jù)數(shù)據(jù)庫(kù)中。19.如權(quán)利要求18所述的存儲(chǔ)系統(tǒng),還包括:一備用服務(wù)器,其中所述元數(shù)據(jù)管理單元還用以將所述元數(shù)據(jù)數(shù)據(jù)庫(kù)的一副本備份到所述備用服務(wù)器中,其中所述元數(shù)據(jù)管理單元還用以根據(jù)所述備用服務(wù)器中所存儲(chǔ)的所述元數(shù)據(jù)數(shù)據(jù)庫(kù)的所述副本來恢復(fù)所述哈希存儲(chǔ)器表。20.—種存儲(chǔ)系統(tǒng),包括:一微處理器;一緩沖器,耦接至所述微處理器;一磁盤,耦接至所述微處理器;以及一元數(shù)據(jù)管理單元,耦接至所述微處理器且用以建構(gòu)用于記錄所述文件的一元數(shù)據(jù)的一哈希存儲(chǔ)器表,其中所述元數(shù)據(jù)管理單元還用以在將所述文件寫入到所述磁盤中的同時(shí),將所述文件的邏輯文件名嵌入到所述磁盤中的存儲(chǔ)所述文件的物理地址中,其中所述元數(shù)據(jù)管理單元還用以使用一以存儲(chǔ)桶為基礎(chǔ)的替代策略將所述哈希存儲(chǔ)器表載入到所述緩沖器中,其中所述元數(shù)據(jù)管理單元還用以根據(jù)載入到所述緩沖器中的所述哈希存儲(chǔ)器表和嵌入到所述磁盤的所述物理地址中的所述邏輯文件名來存取所述文件?!疚臋n編號(hào)】G06F17/30GK103902623SQ201210587636【公開日】2014年7月2日申請(qǐng)日期:2012年12月28日優(yōu)先權(quán)日:2012年12月26日【發(fā)明者】闕志克,迪利普.拉梅什,阿克沙伊.科厚兒,林秉宏申請(qǐng)人:財(cái)團(tuán)法人工業(yè)技術(shù)研究院