專(zhuān)利名稱(chēng):可移動(dòng)介質(zhì)上的公共因子分解的硬件加速的制作方法
技術(shù)領(lǐng)域:
本發(fā)明大體上涉及數(shù)據(jù)存儲(chǔ)系統(tǒng),以及涉及(但不限于)在可 移動(dòng)介質(zhì)上存儲(chǔ)信息的數(shù)據(jù)存儲(chǔ)系統(tǒng)。
背景技術(shù):
傳統(tǒng)的備份涉及一系列完全備份、增量備份、或差異備份,其 保存相同的或緩慢變化的數(shù)據(jù)的多種拷貝。這種備份方法導(dǎo)致較高 程度的數(shù)據(jù)冗余。
多年以來(lái),隨著基于磁帶的存儲(chǔ)器變得便宜,磁帶和基于磁盤(pán) 的存儲(chǔ)系統(tǒng)的價(jià)格之間已有相當(dāng)大的差距。因此,傳統(tǒng)的數(shù)據(jù)存儲(chǔ) 解決方案已是基于^t帶的存儲(chǔ)系統(tǒng),其利用約為2:1的平均壓縮比 率的傳統(tǒng)算法來(lái)壓縮數(shù)據(jù)。有利地,基于磁帶的存儲(chǔ)系統(tǒng)使用可移 動(dòng)磁帶盒帶(cartridge ),可以將其拿到裝置外的位置用于災(zāi)害恢復(fù)。 然而,恢復(fù)基于》茲帶的存儲(chǔ)系統(tǒng)中的數(shù)據(jù)的處理緩慢、復(fù)雜并且不 可靠。名為7>共因子分解(commonality factoring )的重復(fù)凄史據(jù)冊(cè)J除是 通過(guò)消除冗余數(shù)據(jù)來(lái)降低存儲(chǔ)需求的處理。重復(fù)數(shù)據(jù)刪除是基于磁 盤(pán)的數(shù)據(jù)存儲(chǔ)系統(tǒng),其大大地降低了的對(duì)磁盤(pán)空間的需求。然而, 包括重復(fù)刪除方法的基于磁盤(pán)的數(shù)據(jù)存儲(chǔ)系統(tǒng)并不能輕易地被導(dǎo) 出到可移動(dòng)介質(zhì)。為了將經(jīng)重復(fù)刪除的數(shù)據(jù)導(dǎo)出到可移動(dòng)介質(zhì),必 須首先將經(jīng)重復(fù)刪除的數(shù)據(jù)再次形成為其原始形式然后再被記錄 在可移動(dòng)磁帶盒帶上,因此,需要比經(jīng)重復(fù)刪除的版本更多的存儲(chǔ) 空間。
重復(fù)數(shù)據(jù)刪除是資源密集處理,將其在軟件中作為公共因子分 解解決方案的一部分來(lái)4丸行。由于該密集計(jì)算處理,^吏用高端的線 程多核/多處理器服務(wù)器來(lái)提供對(duì)于執(zhí)行該重復(fù)刪除處理來(lái)說(shuō)充分 的性能。通過(guò)使用多核/多處理器服務(wù)器所獲得的性能總量取決于所 使用的算法和其在軟件中的實(shí)現(xiàn)。然而,這些多核/多處理器服務(wù)器 的總費(fèi)用和功耗較高。
發(fā)明內(nèi)容
在多種實(shí)施例中,描述了用于在可移動(dòng)存儲(chǔ)介質(zhì)上存儲(chǔ)數(shù)據(jù)的 乂>共因子分解的系統(tǒng)和方法。這些系統(tǒng)和方法允"i午以高歲文方式將高 度壓縮的數(shù)據(jù)(例如,利用包括重復(fù)刪除的歸檔或備份方法所壓縮 的數(shù)據(jù))存儲(chǔ)在便攜式存儲(chǔ)裝置上(諸如,可移動(dòng)存儲(chǔ)盒帶)。該 方法包括將數(shù)據(jù)(例如,用于備份的數(shù)據(jù)文件)分為多個(gè)唯一組 塊(chunk);以及基于這些唯一組塊來(lái)計(jì)算標(biāo)識(shí)符(例如,哈希標(biāo) 識(shí)符)??梢酝ㄟ^(guò)計(jì)算標(biāo)識(shí)符以及將其他J且塊的標(biāo)識(shí)符與之前所計(jì) 算的唯一組塊的標(biāo)識(shí)符進(jìn)行比較來(lái)識(shí)別冗余組塊。當(dāng)識(shí)別出冗余組
塊時(shí),生成對(duì)于現(xiàn)存的唯一組塊的索引,乂人而可以相對(duì)于其他組塊 來(lái)重建該組塊,以使原始數(shù)據(jù)再現(xiàn)。該方法還包括將多個(gè)唯一組塊、 多個(gè)標(biāo)識(shí)符和/或多個(gè)索引中的一個(gè)或多個(gè)存儲(chǔ)在可移動(dòng)存儲(chǔ)介質(zhì) 上。
在某些方面,可以使用硬件和/或軟件來(lái)加速該公共因子分解處 理。耳又決于實(shí)施例,可將加速石更件和/或軟件置于多個(gè)裝置中。例如,
用于組塊(chunking)和/或哈希(hash)功能的硬件和/或軟件可以 位于主4幾、可移動(dòng)存儲(chǔ)裝置、可移動(dòng)盒帶架(例如,插座)、以及 可移動(dòng)存儲(chǔ)盒帶中的一個(gè)或多個(gè)。
在一個(gè)實(shí)施例中,公開(kāi)了 一種用于利用可移動(dòng)存儲(chǔ)盒帶存儲(chǔ)數(shù) 據(jù)的公共因子分解系統(tǒng)。該系統(tǒng)包括處理器、連接到處理器的擴(kuò)展 總線、以及連接到該擴(kuò)展總線的插座。將該插座配置為接納可移動(dòng) 存儲(chǔ)盒帶。將擴(kuò)展模塊可拆卸地連接到擴(kuò)展總線。將該擴(kuò)展模塊配 置為將數(shù)據(jù)傳送到可移動(dòng)存儲(chǔ)盒帶。該擴(kuò)展模塊包括組塊模塊和哈 希模塊。該組塊模塊被配置為將原始數(shù)據(jù)流分為多個(gè)組塊。將哈希 模塊以流水線方式連接到組塊模塊,從而對(duì)哈希模塊的輸入的至少 一部分包括來(lái)自組塊才莫塊的輸出。該口合希才莫塊一皮配置為確定每個(gè)組 塊是否p舉一以及向可移動(dòng)存儲(chǔ)盒帶轉(zhuǎn)發(fā)確定為p眷一的組塊。
在另 一個(gè)實(shí)施例中,公開(kāi)了 一種用于利用可移動(dòng)存儲(chǔ)盒帶存儲(chǔ) 數(shù)據(jù)的公共因子分解方法。在一個(gè)步驟中,在可拆卸地連接到主機(jī) 的擴(kuò)展模塊處接收原始數(shù)據(jù)流。該擴(kuò)展模塊包括組塊模塊和哈希模 塊。以流水線架構(gòu)來(lái)配置哈希模塊和組塊沖莫塊,從而對(duì)哈希才莫塊的 輸入的至少一部分包括來(lái)自組塊才莫塊的輸出。在組塊才莫塊處,將原 始數(shù)據(jù)流分為多個(gè)組塊。向所述哈希模塊轉(zhuǎn)發(fā)這些模塊。該哈希模 塊計(jì)算所轉(zhuǎn)發(fā)的每個(gè)組塊的標(biāo)識(shí)符;存儲(chǔ)標(biāo)識(shí)符;并且基于標(biāo)識(shí)符
來(lái)確定每個(gè)組塊是否唯一。將標(biāo)識(shí)符和多個(gè)唯一組塊中的至少一個(gè) 轉(zhuǎn)發(fā)到可移動(dòng)存儲(chǔ)盒帶。該可移動(dòng)存儲(chǔ)盒帶包括存儲(chǔ)驅(qū)動(dòng)器。
在又一實(shí)施例中,公開(kāi)了 一種用于利用可移動(dòng)存儲(chǔ)盒帶存儲(chǔ)數(shù) 據(jù)的公共因子分解的擴(kuò)展卡。該擴(kuò)展卡包括組塊模塊和哈希模塊。 該組塊模塊被配置為接收來(lái)自主機(jī)的原始數(shù)據(jù)流并將該原始數(shù)據(jù) 流分為多個(gè)組塊。該擴(kuò)展卡^皮配置為可拆卸地連接到主^^幾和可移動(dòng)
存儲(chǔ)盒帶并將數(shù)據(jù)存儲(chǔ)在可移動(dòng)存儲(chǔ)盒帶上。哈希模塊以流水線方 式連接到組塊模塊,從而對(duì)該哈希模塊的輸入的至少 一部分包括來(lái)
自組塊模塊的輸出。該哈希模塊被配置為接收來(lái)自組塊模塊的多 個(gè)組塊;計(jì)算所接收的每個(gè)組塊的標(biāo)識(shí)符;基于標(biāo)識(shí)符來(lái)確定每個(gè) 組塊是否唯一;并將唯一組塊存儲(chǔ)在可移動(dòng)存儲(chǔ)盒帶上。
在下文中,根據(jù)所提供的詳細(xì)描述,本公開(kāi)的更多應(yīng)用領(lǐng)域?qū)?變得顯而易見(jiàn)。應(yīng)當(dāng)了解,雖然簡(jiǎn)述了各個(gè)實(shí)施例,但具體描述和 特定實(shí)例都^又旨在i兌明而不用來(lái)限至本發(fā)明的范圍。
圖1示出了數(shù)據(jù)存儲(chǔ)系統(tǒng)的實(shí)施例的框圖。
圖2示出了用于執(zhí)行公共因子分解的系統(tǒng)的實(shí)施例的框圖。
圖3示出了用于執(zhí)行7>共因子分解的系統(tǒng)的可替換實(shí)施例的框圖。
圖4示出了用于執(zhí)行公共因子分解的系統(tǒng)的可替換實(shí)施例的框圖。
圖5A、圖5B、和圖5C示出了用于執(zhí)行公共因子分解的數(shù)據(jù) 存儲(chǔ)系統(tǒng)的可替換實(shí)施例的示意圖。
圖6示出了用于在可移動(dòng)數(shù)據(jù)盒帶上存儲(chǔ)數(shù)據(jù)的處理的實(shí)例的 流程圖。
在附圖中,類(lèi)似的部件和/或特征可具有相同的參考標(biāo)號(hào)。此外, 可以通過(guò)在參考標(biāo)號(hào)之后加上破折號(hào)和用于區(qū)分類(lèi)似部件的第二 標(biāo)號(hào)來(lái)區(qū)分相同類(lèi)型的各個(gè)部件。如果在本說(shuō)明書(shū)中僅使用了第一
參考標(biāo)號(hào),則不管第二參考標(biāo)號(hào)如何,該描述適用于具有相同的第 一參考標(biāo)號(hào)的任何一個(gè)類(lèi)似部件。
具體實(shí)施例方式
以下的描述僅僅提供了優(yōu)選的示例性實(shí)施例,并且不用于限定 本發(fā)明的范圍、可應(yīng)用性、和配置。確切地,優(yōu)選示例性實(shí)施例的 以下描述將能夠?qū)崿F(xiàn)優(yōu)選實(shí)施例的描述提供給本領(lǐng)域技術(shù)人員。應(yīng) 當(dāng)了解,在不背離所附權(quán)利要求闡明的精神和范圍的情況下,可以 對(duì)組成部分的功能和配置進(jìn)4于各種改變。
本公開(kāi)大體涉及用于數(shù)據(jù)備份、存儲(chǔ)和存檔應(yīng)用的數(shù)據(jù)存儲(chǔ)系
統(tǒng)。其具體地涉及容納作為存儲(chǔ)介質(zhì)的硬盤(pán)驅(qū)動(dòng)器(HDD)的新一 代可移動(dòng)存儲(chǔ)盒帶。貫穿i兌明書(shū),可以用HDD來(lái)描述存4諸介質(zhì), 但應(yīng)當(dāng)理解,可以可替換地使用閃存或固態(tài)盤(pán)(SSD)驅(qū)動(dòng)器。
本發(fā)明的實(shí)施例集中于 一種系統(tǒng),用于將比4吏用傳統(tǒng)的 Lempel-Ziv ( LZ )壓縮方法所允許的凄t據(jù)更多的lt據(jù)存儲(chǔ)在單一的 存儲(chǔ)盒帶上。這通過(guò)實(shí)現(xiàn)公共因子分解(或,重復(fù)刪除)來(lái)實(shí)現(xiàn)。 具體地,才艮據(jù)本發(fā)明的系統(tǒng)4吏處理加速,乂人而以可與線性》茲帶開(kāi)方文 (LTO )磁帶驅(qū)動(dòng)器相竟?fàn)幍乃俣葋?lái)執(zhí)行數(shù)據(jù)縮減而不需要高端服 務(wù)器來(lái)^U于此處理。
根據(jù)本發(fā)明的一個(gè)實(shí)施例,提供了 一種用于利用存儲(chǔ)盒帶存儲(chǔ) 數(shù)據(jù)的加速公共因子分解系統(tǒng)。該系統(tǒng)包括用于將原始數(shù)據(jù)流分為 多個(gè)組塊的組塊模塊。在組塊模塊中,將流水線操作和查詢(xún)表用于 優(yōu)化。該系統(tǒng)還包括p合希才莫塊,用于確定每個(gè)組塊是否唯一或是否 是之前所存儲(chǔ)的多個(gè)組塊中的任意組塊的副本。在由組塊模塊處理 了組塊的最后一個(gè)字節(jié)之前由該哈希模塊處理每個(gè)組塊的第一字 節(jié)來(lái)實(shí)現(xiàn)平行性。
在該實(shí)施例中,組塊才莫塊可包4舌用于Rabin "指鄉(xiāng)丈,,識(shí)別的部 或用于執(zhí)行滑動(dòng)窗口檢驗(yàn)和的部。此外,在該實(shí)施例中,該哈希模 塊可以包括用于信息摘要算法5 (MD5)哈希的部、用于安全哈希 算法-1 ( SHA-1 )哈希的部、以及用于安全哈希算法-2 ( SHA-2 )哈 希的部中的一個(gè)或多個(gè)。
根據(jù)本發(fā)明的另 一實(shí)施例,提供了另 一種用于利用存儲(chǔ)盒帶存 儲(chǔ)數(shù)據(jù)的加速公共因子分解系統(tǒng)。該系統(tǒng)包括上述的組塊模塊和哈 希才莫塊,并且還包括附加數(shù)據(jù)處理才莫塊。
在該實(shí)施例中,該附加數(shù)據(jù)處理模塊可以包括數(shù)據(jù)壓縮模塊、 加密模塊、及糾錯(cuò)編碼(ECC)模塊中的一個(gè)或多個(gè)。此外,該數(shù) 據(jù)壓縮模塊可以包括用于執(zhí)行Lempel-Ziv Stac ( LZS )算法的部。 此外,加密模塊可以包括用于執(zhí)行三重?cái)?shù)據(jù)加密標(biāo)準(zhǔn)(3DES )算法、 高級(jí)加密標(biāo)準(zhǔn)-128( AES-128 )算法、或高級(jí)加密標(biāo)準(zhǔn)-256( AES-256 ) 算法的部。
才艮據(jù)本發(fā)明的又一實(shí)施例,4是供了又一種用于利用存4諸盒帶存 儲(chǔ)數(shù)據(jù)的加速公共因子分解系統(tǒng)。該系統(tǒng)包括上述的組塊模塊、哈 希模塊、和附加數(shù)據(jù)處理模塊,并且還包括由附加數(shù)據(jù)處理模塊跟 隨的數(shù)據(jù)庫(kù)搜索模塊,數(shù)據(jù)庫(kù)搜索模塊用于基于來(lái)自哈希模塊的輸 出來(lái)才丸4亍組塊#:據(jù)庫(kù)的4叟索并且<義將唯一組塊傳遞到附加^:才居處 理模塊。目的是減少附加數(shù)據(jù)處理模塊的帶寬需求。
根據(jù)本發(fā)明的又一實(shí)施例,提供了又一種用于利用存儲(chǔ)盒帶存 儲(chǔ)數(shù)據(jù)的加速公共因子分解系統(tǒng)。該系統(tǒng)包括組塊模塊和相關(guān)聯(lián)模 塊,其中,利用并行的多條數(shù)據(jù)通路。目的是加速公共因子分解處理。在該實(shí)施例中,多條數(shù)據(jù)通路可以包括單個(gè)的數(shù)據(jù)流,通過(guò)在 不一定與由程序分組模塊所計(jì)算的組塊邊界對(duì)齊的位置處將數(shù)據(jù) 流截?cái)喽鴮⒃撈鄑據(jù)流分裂為多個(gè)事例,其中,數(shù)據(jù)流的截?cái)嗖糠值?大小是固定的或可變的。
首先參考圖1,示出了數(shù)據(jù)存儲(chǔ)系統(tǒng)100的實(shí)施例。該凄史據(jù)存 儲(chǔ)系統(tǒng)100可以包括主機(jī)102和可移動(dòng)的驅(qū)動(dòng)器插槽(drive bay ) 104。主4幾102包括處理器和擴(kuò)展總線。該擴(kuò)展總線連接到處理器 并且被配置為經(jīng)由標(biāo)準(zhǔn)接口將凄t據(jù)傳送至驅(qū)動(dòng)器插槽104??梢苿?dòng) 的驅(qū)動(dòng)器插槽104可以包括可移動(dòng)盒帶裝置110和可移動(dòng)盒帶架 (holder) 106。主才幾102可以與可移動(dòng)盒帶裝置110通4言i也連4妄。 作為實(shí)例,可移動(dòng)盒帶裝置110到主機(jī)102的接口可以是小型計(jì)算 才幾系統(tǒng)4妄口 (SCSI)、光纖通道(FC)4妾口、以太網(wǎng)4妄口、高級(jí)技 術(shù)附件(ATA)接口的任一版本,或允許可移動(dòng)盒帶裝置110與主 機(jī)102進(jìn)行通信的任何其他類(lèi)型的接口 。盒帶架106可以是塑料插 座并且可以物理地安裝到可移動(dòng)盒帶裝置110的電路板。盒帶架106 還可以包括彈出和鎖定4幾構(gòu)。可移動(dòng)存儲(chǔ)盒帶108為凄t據(jù)存儲(chǔ)系統(tǒng) IOO提供了存儲(chǔ)能力,其中,存儲(chǔ)盒帶108可拆卸地連接到可移動(dòng) 盒帶裝置110。還可以選擇性地將便攜式存儲(chǔ)盒帶108鎖定在盒帶 架106中。在可替換實(shí)施例中,可以通過(guò)接口電纜112使主機(jī)102 與盒帶架106通信地連4妄。
如將在下面多個(gè)實(shí)施例中詳細(xì)描述的,在以下多個(gè)位置中的一 個(gè)或多個(gè)位置處可以將公共因子分解功能實(shí)現(xiàn)為擴(kuò)展模塊1)在 存儲(chǔ)盒帶108中;2)在可移動(dòng)盒帶裝置110中和盒帶架106外部; 以及3 )在主才幾102中。
如上所述,本發(fā)明識(shí)別之前已經(jīng)存^f諸的原始凄t據(jù)流中的重復(fù)部 分,從而可以存儲(chǔ)對(duì)該數(shù)據(jù)部分的索引來(lái)代替在重復(fù)部分本身。用 于才丸行該處理的多個(gè)步驟如下(1 )將原始凄t據(jù)流分為可以用于分
析冗余度的多個(gè)小組塊(數(shù)據(jù)部分)的步驟;(2)計(jì)算每個(gè)組塊的 標(biāo)識(shí)符的步驟;(3)通過(guò)搜索標(biāo)識(shí)符數(shù)據(jù)庫(kù),而由于未在之前的組 塊中發(fā)現(xiàn)相同的組塊來(lái)確定每個(gè)組塊是否是唯一的步驟;以及(4) 組織唯一組塊、標(biāo)識(shí)符和相關(guān)聯(lián)的元數(shù)據(jù)從而可以再次生成原始數(shù) 據(jù)流的步驟。該原始數(shù)據(jù)流可以代表諸如音頻、視頻、文本的任何 形式的數(shù)據(jù)并且可以是多個(gè)文件或?qū)ο蟆?br>
上述處理的步驟(1)和(2)是處理器密集型的,因此適于對(duì) 其應(yīng)用石更件加速。同樣地,這些步艱《可以與作為整個(gè)^t據(jù)存〗渚處理 的 一部分的諸如傳統(tǒng)的凄t據(jù)壓縮和加密的其他lt據(jù)^修改步驟相結(jié) 合。按照集成方式來(lái)考慮所有這些步驟以提供最大化的系統(tǒng)吞吐量。
Rabin "指紋"識(shí)別是將輸入的數(shù)據(jù)流分為可用于冗余度分析 的淖交小的lt據(jù)組塊的方法。該方法具有^者如不呈現(xiàn)滾動(dòng)的4交-驗(yàn)和的 較簡(jiǎn)單方法的易管理的統(tǒng)計(jì)屬性,但在多個(gè)實(shí)施例中可以使用任意 的程序分組算法。該方法可以在軟件中實(shí)現(xiàn)為公共因子分解方案的 一部分,為了加速這些產(chǎn)品的上市時(shí)間可以用成本和/或性能作為代 價(jià)來(lái)制造這些產(chǎn)品。4吏用最高端的多核/多處理器月良務(wù)器來(lái)4是供壽欠件 算法的充分的性能。替代在軟件中實(shí)現(xiàn)該方法,本發(fā)明的一個(gè)實(shí)施 例以使用硬件的解決方案來(lái)實(shí)現(xiàn)該方法,其利用較低的成本和較低 的功率損耗提供了增加的性能。在2007年7月6日提交的第 60/948,394號(hào)美國(guó)臨時(shí)專(zhuān)利申請(qǐng)中描述了按照流水線方式硬件實(shí)現(xiàn) Rabin "指紋,,識(shí)別方法的細(xì)節(jié)。通過(guò)以流水線方式實(shí)3見(jiàn)該石更4牛,可 以利用最小化的邏輯操作以合理的時(shí)鐘速率獲得較高的吞吐量。
Rabin "指紋"識(shí)別基本上是在一個(gè)數(shù)據(jù)流中每次單個(gè)字節(jié)對(duì) 多項(xiàng)式的操作。由于多數(shù)系統(tǒng)對(duì)與8比特字節(jié)邊界對(duì)齊的數(shù)據(jù)起很 好的作用,因此多項(xiàng)式才喿作的結(jié)果4又與每八比特相關(guān)。由于不考慮
中間計(jì)算,因此我們可以通過(guò)每次直接計(jì)算下個(gè)8比特的指紋值來(lái) 使計(jì)算最優(yōu)化。
可以對(duì)ft據(jù)的滑動(dòng)窗口 (例如,緩沖陣列中的48個(gè)字節(jié))來(lái) 計(jì)算Rabin指紋。對(duì)于每次計(jì)算,用最新的字節(jié)來(lái)代替陣列中最舊 的字節(jié)。第一流水線階4殳(stage)用最新的字節(jié)替代最舊的字節(jié)并 且基于最舊字節(jié)來(lái)執(zhí)行查找,其提供了可用于從指紋中移除最舊的 字節(jié)的影響的值。接下來(lái)的流水線階段利用該輸入而從指紋中移除 最舊的數(shù)據(jù),然后使用另 一查詢(xún)表將該指紋與新的數(shù)據(jù)結(jié)合來(lái)生成 新的指紋。最后的流水線階|殳確定新的指紋的部分是否與用于確定 組塊邊界的預(yù)定4企-驗(yàn)值相匹配并且#^驗(yàn)該組塊大小是否適合最小/ 最大范圍內(nèi)。
利用Rabin "指紋"識(shí)別或諸如滑動(dòng)窗口檢驗(yàn)和的較簡(jiǎn)單的方 法的組塊步驟的輸出是稱(chēng)作組塊的ft據(jù)序列,可以對(duì)其進(jìn)4于分析來(lái) 確定是否其之前已經(jīng)被存儲(chǔ)系統(tǒng)存儲(chǔ)。高效地確定是否之前已經(jīng)存 儲(chǔ)該組塊的一個(gè)方法是對(duì)數(shù)據(jù)計(jì)算稱(chēng)作p合希的單向函數(shù),其允許估文 出具有較高統(tǒng)計(jì)可能性的關(guān)于該數(shù)據(jù)是否是之前所存儲(chǔ)數(shù)據(jù)中的 任何數(shù)據(jù)的副本的確定。多種哈希算法(諸如MD5、 SHA-1以及 SHA-2族)可用于此目的。目標(biāo)是選擇一種算法,其具有統(tǒng)計(jì)上足 夠小的沖突偶然性,可以假設(shè)其不會(huì)產(chǎn)生錯(cuò)誤匹配。該哈希算法能 夠才氐雄卩導(dǎo)致該沖突的有意或惡意嘗試。該,哈希算法應(yīng)該是安全的; MD5不能被真正地認(rèn)作安全而SHA-1具有某些潛在的弱點(diǎn),但這 些弱點(diǎn)可以不應(yīng)用于某些應(yīng)用??梢?艮l居應(yīng)用來(lái)選擇p合希算法的類(lèi) 型。此外,在某些實(shí)施例中,可以4吏用多種p合希算法。
接下來(lái)參考圖2,示出了用于執(zhí)行公共因子分解的系統(tǒng)200的 實(shí)施例的框圖。系統(tǒng)200包括直接連接到哈希模塊204的組塊模塊 202。在該實(shí)施例中,組塊才莫塊202執(zhí)行以下步驟利用Rabin "指 紋,,識(shí)別算法在lt據(jù)流206的滑動(dòng)窗口上將原始的凄t據(jù)流206分為
較小組塊。其他實(shí)施例可使用不同的方法和算法,例如,滑動(dòng)窗口 校驗(yàn)和。再次參考圖1,在如下所討論的多個(gè)實(shí)施例中,可以根據(jù)
擴(kuò)展模塊的位置從不同的源來(lái)提供原始的數(shù)據(jù)流206。例如,在多 個(gè)實(shí)施例中,主才幾102、可移動(dòng)盒帶裝置110、或存〗諸盒帶108都 可以將原始數(shù)據(jù)流206轉(zhuǎn)發(fā)到組塊才莫塊202。
組塊才莫塊202將稱(chēng)作組塊206-1的凄t據(jù)字節(jié)序列連同對(duì)于每個(gè) 數(shù)據(jù)字節(jié)序列是否已到達(dá)組塊邊界的指示208 —起輸出。每個(gè)序列 指示208的末端也被稱(chēng)作記錄末端或EOR。這當(dāng)EOR 208和凄史據(jù) 組塊206-1凈皮傳遞至p合希才莫塊204時(shí)允許它們同步。在該實(shí)施例中, 將組塊模塊202以流水線方式連接到哈希模塊204,從而對(duì)哈希模 塊204的至少一部分輸入包括了來(lái)自組塊4莫塊202的輸出。在一個(gè) 實(shí)施例中,在相同的組塊的最后字節(jié)被組塊模塊202處理之前,哈 希模塊204處理來(lái)自數(shù)據(jù)字節(jié)206-1序列的每個(gè)組塊的第一字節(jié)。 其他實(shí)施例可以獲耳又來(lái)自組塊才莫塊202的完整組塊然后通過(guò)p合希才莫 塊204來(lái)運(yùn)行該組塊。
哈希模塊204執(zhí)行以下步驟計(jì)算來(lái)自數(shù)據(jù)字節(jié)206-1序列的 每個(gè)組塊的標(biāo)識(shí)符,然后確定該組塊的p眷一性??梢酝ㄟ^(guò)爿尋標(biāo)i口、符 存^f諸到數(shù)據(jù)庫(kù)中并且搜索該標(biāo)識(shí)符的^:據(jù)庫(kù)來(lái)確定每個(gè)組塊是否 唯一來(lái)執(zhí)行該確定步驟。在發(fā)現(xiàn)該組塊唯一的情況下,將該唯一組 塊及其標(biāo)識(shí)符存4諸在可移動(dòng)存4諸盒帶108上的組塊/ID lt悟庫(kù)220 中。表I示出了在將唯一的組塊流及其標(biāo)識(shí)符存4諸在可移動(dòng)存^f諸盒 帶108上的組塊/ID數(shù)據(jù)庫(kù)220的實(shí)例。
表I存4諸在組塊/ID凄t據(jù)庫(kù)中的唯一組塊及標(biāo)識(shí)符的實(shí)例 唯一組塊 組塊0 組塊1 組塊2 ^組塊N
標(biāo)識(shí)符 ID 0 ID 1 ID 2 … ID N
如果組塊不唯一 ,則丟棄該冗余組塊并創(chuàng)建對(duì)存在的p舉一組塊 的索引,乂人而可以與其他J且塊相關(guān);也重新構(gòu)造該冗余組塊以重新生
成該原始數(shù)據(jù)流206。然后將對(duì)現(xiàn)存的唯一組塊的索引轉(zhuǎn)發(fā)至可移 動(dòng)存儲(chǔ)盒帶108用于存儲(chǔ)在索引數(shù)據(jù)庫(kù)222中。在表II中示出了存 4諸在索引凄t據(jù)庫(kù)222中的索引流的實(shí)例。其他實(shí)施例可以包4舌用于 確定組塊唯一性的單獨(dú)的才莫塊。哈希才莫塊204輸出唯一組塊206-2 流、記錄末端指示208、每個(gè)p眷一組塊210的長(zhǎng)度流、每個(gè)p舉一組 i夾212的p合希1直;;危、以及索引214 5危。
表II.存儲(chǔ)在索引數(shù)據(jù)庫(kù)中的索引的實(shí)例索引 Ref0 Refl Ref2... RefR,
R》N
參考圖3,示出了用于執(zhí)行公共因子分解的系統(tǒng)300的可替換 實(shí)施例的框圖。在系統(tǒng)300中,用于執(zhí)行數(shù)據(jù)處理的附加模塊308 -故直接連接到組塊才莫塊202和p合希才莫塊204結(jié)合的輸出端。其有助 于優(yōu)化多個(gè)模塊之間的數(shù)據(jù)流。該附加數(shù)據(jù)處理模塊308包括壓縮 模塊302和加密模塊304。將來(lái)自哈希模塊204的唯一組塊206-2 ;危、索引214 ;危、以及i己錄末端208 ;充發(fā)送到壓縮才莫塊302。壓縮 模塊302利用(例如)Lempel畫(huà)Ziv Stac ( LZS )算法來(lái)執(zhí)行唯一組 塊206-2的傳統(tǒng)的凄t據(jù)壓縮。
接下來(lái)將經(jīng)壓縮的唯一組塊306、索引214、以及記錄末端208 發(fā)送到加密才莫塊304。該加密才莫塊304可以〗吏用不同算法,例如, 三重?cái)?shù)據(jù)加密標(biāo)準(zhǔn)(3DES )、高級(jí)加密標(biāo)準(zhǔn)-128/256( AES-128/256 )。 其他實(shí)施例還可以包4舌i者如糾4昔編碼;才莫塊(例如,Reed-Solomon ) 的附加數(shù)據(jù)處理模塊??梢詫?lái)自哈希模塊的輸出(例如,唯一組 塊210的長(zhǎng)度、哈希值212 )選擇性地傳送到壓縮模塊302和加密 模塊304。這將為每個(gè)模塊提供同步的輸出。類(lèi)似圖3中所示系統(tǒng)的系統(tǒng)具有減少擴(kuò)展模塊和主系統(tǒng)存儲(chǔ)器 (當(dāng)數(shù)據(jù)未被處理時(shí)很可能存儲(chǔ)于此)之間的數(shù)據(jù)通信量的優(yōu)點(diǎn)。
表III示出了在LZS壓縮和7>共因子分解中的每一個(gè)均提供大約2:1 的數(shù)據(jù)縮減的情況下,總線帶寬中的節(jié)約的實(shí)例。在該實(shí)施例中, 將最終輸出數(shù)據(jù)速率描述為"D"。
表III.具有集成才莫塊的系統(tǒng)帶寬中的縮減的實(shí)例
對(duì)于4個(gè)獨(dú)立才莫塊的到^5更件的帶寬4D + 4D + 2D + D11D
對(duì)于4個(gè)獨(dú)立模塊的來(lái)自硬件的帶寬D + D2D
對(duì)于2個(gè)一半的到;更件的帶寬4D + 2D6D
對(duì)于2個(gè)一半的來(lái)自硬件的帶寬D
對(duì)于完全集成的到硬件的帶寬4D
對(duì)于完全集成的來(lái)自硬件的帶寬2D
可以/人表III中的示例性凄史字看出,完全集成的一個(gè)優(yōu)點(diǎn)是,人 系統(tǒng)存儲(chǔ)器到硬件加速模塊的帶寬上的縮減,與未集成的方法相比 其幾乎是三倍。同樣地,完全集成比部分集成的方法在帶寬上4是供
了更好的平衡,其在使用諸如PCI-Express的雙向串行接口時(shí)是有 優(yōu)勢(shì)的。
現(xiàn)在參考圖4,示出了用于執(zhí)4亍7>共因子分解的系統(tǒng)400的又 一實(shí)施例的框圖。該系統(tǒng)400包括組塊模塊202(未在此圖中示出)、 哈希模塊204-1、以及附加數(shù)據(jù)處理模塊308。該哈希模塊204-1包 括哈希計(jì)算器402、搜索模塊404、以及標(biāo)識(shí)符數(shù)據(jù)庫(kù)406。在該實(shí) 施例中,哈希計(jì)算器402執(zhí)行以下步驟計(jì)算每個(gè)組塊的標(biāo)識(shí)符而 不確定組塊的唯一性。因此,該,合希計(jì)算器402輸出數(shù)據(jù)組塊序列 206-3、記錄末端指示208-1、每個(gè)組塊210-1的長(zhǎng)度、以及每個(gè)組 塊212-1的標(biāo)識(shí)符。搜索模塊404基于輸出自哈希計(jì)算器402的標(biāo) 識(shí)符212-1來(lái)執(zhí)行對(duì)數(shù)據(jù)庫(kù)406的搜索并將唯一組塊206-4傳送到 凄i據(jù)處理一莫塊308。
搜索模塊404包括足夠的緩沖來(lái)存儲(chǔ)來(lái)自哈希計(jì)算器402的輸
剩余部分。通過(guò)將搜索模塊404 —列式的(inline )放置在數(shù)據(jù)流中, 假設(shè)對(duì)于該實(shí)施例僅有平均一半的組塊是唯一的,則可以將數(shù)據(jù)通 路剩余部分的帶寬需求減少 一半。這可以簡(jiǎn)化剩余的數(shù)據(jù)處理模塊 308的i殳計(jì)并且減少在擴(kuò)展才莫塊和系統(tǒng)其余部分之間的4妾口上的負(fù) 載。凄t據(jù)處理才莫塊308可以包括壓縮才莫塊和加密才莫塊。其他實(shí)施例 還可以包括糾一睹編碼沖莫塊。
在某些實(shí)施例中,以足夠高的速率運(yùn)行組塊模塊204的單一事 例以滿(mǎn)足系統(tǒng)的帶寬需求可能不是完全實(shí)際的。在這些情況下,具 象呈現(xiàn)組塊模塊204及相關(guān)聯(lián)模塊的多個(gè)事例來(lái)產(chǎn)生用于增加總帶 寬的多條平行數(shù)據(jù)通路(例如,在多個(gè)實(shí)施例中,可以有兩條、三 條、四條、五條、六條、七條、八條或更多條平行數(shù)據(jù)通路)可能 是有意義的。在4妄收并且處理多個(gè)輸入凄t據(jù)流206的情況下,可以 將這些數(shù)據(jù)流簡(jiǎn)單地映射到數(shù)據(jù)通路的多個(gè)事例。在單一的數(shù)據(jù)流 206需要比單一事例提供的帶寬更寬的帶寬的情況下,可以在多個(gè) 事例之間劃開(kāi)該凄t據(jù)流。對(duì)此最簡(jiǎn)單的方法是將該凄t據(jù)流206截?cái)?為 一 個(gè)事例就好像已經(jīng)到達(dá)數(shù)據(jù)末端,并且將該數(shù)據(jù)重新定向到其 他事例。
該解決方案具有在截?cái)帱c(diǎn)處產(chǎn)生錯(cuò)誤組塊邊界的副作用。由于 利用了相似的組塊可能已經(jīng)使用的不同的方法來(lái)確定該組塊的邊 界,因此最后的組塊未必與存在的組塊匹配。只要凄t悟流所截?cái)嗟?部分相對(duì)于各個(gè)組塊大小是大的,則其未必會(huì)導(dǎo)致公共因子分解的 效率中的明顯差異。例如,如果所截?cái)嗟牟糠质?0MB而組塊平均 大小為8KB,則每個(gè)部分將大約是1250個(gè)組塊。這些組塊中l(wèi)又有 2個(gè)(最初的組塊和最后的組塊)可能受到截?cái)嗟挠绊懀瑥亩谝?個(gè)實(shí)施例中將僅降低0.16 %的效率。
接下來(lái)參考圖5A,示出了用于執(zhí)行公共因子分解的數(shù)據(jù)存儲(chǔ) 系統(tǒng)500-1的實(shí)施例的示意圖。在該實(shí)施例中,將公共因子分解實(shí) 現(xiàn)為存儲(chǔ)盒帶508-1內(nèi)的擴(kuò)展模塊502-1。該擴(kuò)展模塊502-1也被稱(chēng) 作組塊和哈希模塊(C/H ),在該實(shí)施例中其代表用于公共因子分解 的首要引擎??梢酝ㄟ^(guò)硬件、軟件、或它們的組合來(lái)實(shí)現(xiàn)該擴(kuò)展模 塊502-1。對(duì)于硬件實(shí)現(xiàn)方式,可以在一個(gè)或多個(gè)專(zhuān)用集成電^各 (ASIC)、數(shù)字信號(hào)處理器(DSP)、數(shù)字信號(hào)處理裝置(DSPD)、 可編程邏輯裝置(PLD)、現(xiàn)場(chǎng)可編程門(mén)陣列(FPGA)、處理器、 控制器、微處理器、設(shè)計(jì)為執(zhí)行上述功能的其他電子單元、和/或它 們的組合內(nèi)實(shí)現(xiàn)該處理單元。其他實(shí)施例可以在一個(gè)位置中僅包括 C/H模塊的一個(gè)或多個(gè)部分而在另 一位置中包括其他部分。
首先經(jīng)由諸如SCSI (小型計(jì)算才幾系統(tǒng)接口 )、串行ATA (高級(jí) 4支術(shù)附件)、并行ATA、 SAS (串行連接SCSI)、 FirewireTM、以太 網(wǎng)、UWB、 USB、 BluetoothTM、 WiFi等任意標(biāo)準(zhǔn)接口將原始數(shù)據(jù) 流/人主才幾102發(fā)送到盒帶架506-1。該盒帶架506-1可包4舌電、光、 和/或無(wú)線接口來(lái)與存儲(chǔ)盒帶508-1交換lt據(jù)和指令。在盒帶架506-1 和存儲(chǔ)盒帶508-1之間的接口也可以使用以上類(lèi)似的標(biāo)準(zhǔn)接口 。因 此,通過(guò)與盒帶架506-1的電、光、和/或無(wú)線連4妄器配對(duì),可以經(jīng) 由盒帶架506-1將存儲(chǔ)盒帶508-1可拆卸地連接到可移動(dòng)盒帶裝置 510-1。
在該實(shí)施例中,將擴(kuò)展模塊502-1并入可移動(dòng)存4諸盒帶508-1 本身中,因此產(chǎn)生了自包含的基于磁盤(pán)的存儲(chǔ)盒帶。某些實(shí)施例可 以4吏用存儲(chǔ)盒帶508-1中處理器來(lái)I丸行C/H才莫塊。該處理器可以在 石更盤(pán)驅(qū)動(dòng)器的內(nèi)部或外部^旦在任^T情況下都在盒帶內(nèi)。在一個(gè)實(shí)施 例中,對(duì)于硬盤(pán)驅(qū)動(dòng)器的固件升級(jí)允許實(shí)現(xiàn)C/H功能性。在另一實(shí) 施例中,C/H模塊在硬盤(pán)驅(qū)動(dòng)器外部且位于存儲(chǔ)盒帶508-1內(nèi)的電 路卡上。
參考圖5B,示出了數(shù)據(jù)存儲(chǔ)系統(tǒng)500-2的又一實(shí)施例的示意 圖。在該實(shí)施例中,公共因子分解被實(shí)現(xiàn)為可移動(dòng)盒帶裝置510-2 內(nèi)的擴(kuò)展模塊502-2。首先通過(guò)在之前實(shí)施例中所述的任意標(biāo)準(zhǔn)接 口將要被存儲(chǔ)在存儲(chǔ)盒帶508-2上的數(shù)據(jù)從主機(jī)102發(fā)送到可移動(dòng) 盒帶裝置510-2。接下來(lái)原始數(shù)據(jù)流進(jìn)入擴(kuò)展才莫塊502-2用于以可 移動(dòng)盒帶裝置水平處理。接下來(lái)通過(guò)上述相似的標(biāo)準(zhǔn)接口將重復(fù)刪 除數(shù)據(jù)經(jīng)由盒帶架506-2發(fā)送到存儲(chǔ)盒帶508-2。
接下來(lái)參考圖5C,示出了用于利用存儲(chǔ)盒帶執(zhí)行公共因子分 解的數(shù)據(jù)存儲(chǔ)系統(tǒng)500-3的實(shí)施例的示意圖。在該實(shí)施例中,公共 因子分解實(shí)現(xiàn)為主機(jī)102-3內(nèi)的擴(kuò)展卡502-3。主機(jī)102-3包括擴(kuò)展 總線,其連4妄到主才幾的處理器。在多個(gè)實(shí)施例中,可將擴(kuò)展卡插入 計(jì)算才幾擴(kuò)展總線(例如,PCI、 ISA、 AGP總線)。在擴(kuò)展卡上的7> 共因子分解的實(shí)現(xiàn)可通過(guò)使用硬件和/或軟件來(lái)完成。 一旦通過(guò)主機(jī) 102-3中的組塊和哈希模塊502-3而實(shí)現(xiàn)了對(duì)數(shù)據(jù)執(zhí)行的公共因子 分解,則可以將經(jīng)重復(fù)刪除的#1據(jù)發(fā)送到盒帶架506-3并然后經(jīng)由 標(biāo)準(zhǔn)接口發(fā)送到存儲(chǔ)盒帶508-3。
接下來(lái)參考圖6,示出了用于在可移動(dòng)存儲(chǔ)盒帶108上存儲(chǔ)數(shù) 據(jù)的處理600的實(shí)施例。處理600的所描述部分開(kāi)始于框602,其 中,取決于擴(kuò)展模塊502位置而從多個(gè)源接收原始數(shù)據(jù)流。例如, 在多個(gè)實(shí)施例中,擴(kuò)展模塊502可以接收來(lái)自主機(jī)102、可移動(dòng)盒 帶裝置510、盒帶架506、或存儲(chǔ)盒帶508的原始lt據(jù)。在某些實(shí) 施例中,該原始數(shù)據(jù)流可包括多個(gè)文件。在某些實(shí)施例中,沒(méi)有4姿 照可辨別方式將該流劃分為多個(gè)文件。
在框604處,使用組塊模塊202來(lái)將數(shù)據(jù)流分為數(shù)據(jù)組塊序列 并生成i己錄末端(EOR)來(lái)定義組塊邊界。 一旦禾呈序分組才莫塊202 產(chǎn)生了組塊,則處理繼續(xù)至塊606,其中,,哈希才莫塊204計(jì)算每個(gè) 組塊的標(biāo)識(shí)符。在多個(gè)實(shí)施例中,可以4吏用不同的算法,例如,信
息摘要算法(MD5)、安全哈希算法-1 (SHA-1)、以及安全哈希算 法-2 (SHA-2)。 4妻下來(lái)在一醫(yī)608處將標(biāo)識(shí)符存^f諸到標(biāo)識(shí)符lt據(jù)庫(kù) 楊中。
在才匡610處,由于在之前的組塊中未發(fā)現(xiàn)相同的組塊而#文出每 個(gè)組塊是否唯一的確定。在框610處,使用哈希模塊204通過(guò)搜索 標(biāo)識(shí)才尋凄t才居庫(kù)406來(lái)確定每個(gè)組塊是否p舉一。某些實(shí)施例在沖醫(yī)610 處可以使用單獨(dú)的搜索模塊404用于確定每個(gè)組塊的唯一性。在這 種情況下,搜索模塊404基于來(lái)自哈希計(jì)算器402的輸出來(lái)執(zhí)行對(duì) 標(biāo)識(shí)符凄t才居庫(kù)406的4叟索以確定每個(gè)組塊是否。舉一。如果該纟且塊。舉 一,則處理乂人框610流向選4奪沖匡612以沖丸4亍諸如壓縮、力。密、以及 糾錯(cuò)編碼的附加數(shù)據(jù)處理。接下來(lái)在框614處將唯一的組塊及其相 關(guān)耳關(guān)的標(biāo)識(shí)符存^f諸在可移動(dòng)介質(zhì)上。如果該組塊不唯一,則處理,人 框610走到框616,其中,冗余的數(shù)據(jù)組塊凈皮丟棄并且產(chǎn)生對(duì)存在 的唯一組塊的索引。4妄下來(lái)在框618處將對(duì)存在的唯一組塊的索引 轉(zhuǎn)發(fā)到可移動(dòng)介質(zhì)用于存儲(chǔ)。然后處理返回到框602用于4丸行7>共 因子分解。
盡管在上文中已經(jīng)結(jié)合特定裝置描述了本發(fā)明的原理,但是應(yīng) 當(dāng)清楚地了解,該描述僅僅是作為實(shí)例,并不限定本發(fā)明的范圍。
權(quán)利要求
1.一種用于利用可移動(dòng)存儲(chǔ)盒帶存儲(chǔ)數(shù)據(jù)的公共因子分解系統(tǒng),包括處理器;擴(kuò)展總線,連接到所述處理器;插座,連接到所述擴(kuò)展總線并且被配置為接納所述可移動(dòng)存儲(chǔ)盒帶;以及擴(kuò)展模塊,可拆卸地連接到所述擴(kuò)展總線,其中,所述擴(kuò)展模塊被配置為將數(shù)據(jù)傳送到所述可移動(dòng)存儲(chǔ)盒帶,所述擴(kuò)展模塊包括組塊模塊,被配置為將原始數(shù)據(jù)流分為多個(gè)組塊;以及哈希模塊,被配置為以流水線方式連接到所述組塊模塊,從而對(duì)所述哈希模塊的輸入的至少一部分包括來(lái)自所述組塊模塊的輸出,所述哈希模塊被配置為確定每個(gè)所述組塊是否唯一,以及向所述可移動(dòng)存儲(chǔ)盒帶轉(zhuǎn)發(fā)確定為唯一的組塊。
2. 根據(jù)權(quán)利要求1所述的用于利用可移動(dòng)存儲(chǔ)盒帶存儲(chǔ)數(shù)據(jù)的 7〉共因子分解系統(tǒng),其中,在由所述組塊才莫塊處理每個(gè)所述組 塊的最后一個(gè)字節(jié)之前由所述哈希^t塊處理所述組塊的第一 字節(jié)。
3, 根據(jù)權(quán)利要求1所述的用于利用可移動(dòng)存儲(chǔ)盒帶存儲(chǔ)數(shù)據(jù)的 /^共因子分解系統(tǒng),其中,所述原始數(shù)據(jù)流包括多個(gè)文件。
4. 根據(jù)權(quán)利要求1所述的用于利用可移動(dòng)存儲(chǔ)盒帶存儲(chǔ)數(shù)據(jù)的 公共因子分解系統(tǒng),其中,所述哈希模塊被進(jìn)一步配置為計(jì)算所轉(zhuǎn)發(fā)的每個(gè)所述組塊的標(biāo)識(shí)符;存儲(chǔ)所述標(biāo)識(shí)符;以及 基于所述標(biāo)識(shí)符來(lái)確定所述組塊是否唯一。
5. 根據(jù)權(quán)利要求1所述的用于利用可移動(dòng)存儲(chǔ)盒帶存儲(chǔ)數(shù)據(jù)的 />共因子分解系統(tǒng),進(jìn)一步包括附加數(shù)據(jù)處理才莫塊。
6. 根據(jù)權(quán)利要求5所述的用于利用可移動(dòng)存儲(chǔ)盒帶存儲(chǔ)數(shù)據(jù)的 公共因子分解系統(tǒng),其中,所述附加數(shù)據(jù)處理模塊包括數(shù)據(jù)壓 縮模塊、加密模塊、和糾錯(cuò)編碼模塊中的一個(gè)或多個(gè)。
7. 根據(jù)權(quán)利要求5所述的用于利用可移動(dòng)存儲(chǔ)盒帶存儲(chǔ)數(shù)據(jù)的 公共因子分解系統(tǒng),進(jìn)一步包括標(biāo)識(shí)符數(shù)據(jù)庫(kù)搜索模塊,用于 基于來(lái)自所述哈希模塊的輸出來(lái)執(zhí)行對(duì)標(biāo)識(shí)符數(shù)據(jù)庫(kù)的搜索 并且將所述p眷一組塊發(fā)送到所述附加ft據(jù)處理才莫塊。
8. 根據(jù)權(quán)利要求1所述的用于利用可移動(dòng)存儲(chǔ)盒帶存儲(chǔ)數(shù)據(jù)的 公共因子分解系統(tǒng),其中,并行的多條數(shù)據(jù)通路被采用。
9. 根據(jù)權(quán)利要求8所述的用于利用可移動(dòng)存儲(chǔ)盒帶存儲(chǔ)數(shù)據(jù)的 公共因子分解系統(tǒng),其中,所述多條數(shù)據(jù)通路包括單個(gè)的數(shù)據(jù)流,通過(guò)在不一定與 由所述程序分組模塊所計(jì)算的組塊邊界對(duì)齊的位置處將所述 數(shù)據(jù)流截?cái)喽鴮⑺鰯?shù)據(jù)流分裂為多個(gè)事例,其中,所述數(shù)據(jù) 流的截?cái)嗖糠值拇笮∈枪潭ǖ幕蚩勺兊摹?br>
10. 根據(jù)權(quán)利要求1所述的用于利用可移動(dòng)存儲(chǔ)盒帶存儲(chǔ)數(shù)據(jù)的公共因子分解系統(tǒng),其中,所述哈希模塊被配置為使用信息摘要算法5 (MD5)哈希、安全哈希算法-1 (SHA-1)哈希、以 及安全p合希算法-2 (SHA-2) t合希中的一個(gè)或多個(gè)。
11. 一種用于利用可移動(dòng)存儲(chǔ)盒帶存儲(chǔ)數(shù)據(jù)的公共因子分解方法, 包括在可拆卸地連接到主機(jī)的擴(kuò)展模塊處接收原始數(shù)據(jù)流, 其中,所述擴(kuò)展模塊包括組塊才莫塊,以及 哈希模塊,其中,以流水線架構(gòu)來(lái)配置所述p合希才莫塊和所述纟且 塊模塊,從而對(duì)所述p合希沖莫塊的輸入的至少一部分包括 來(lái)自所述組塊模塊的輸出;在所述組塊才莫塊處,將所述原始凄t據(jù)流分為多個(gè)組塊;以及向所述哈希模塊轉(zhuǎn)發(fā)多個(gè)所述組塊,其中,所述哈希模塊執(zhí)行以下步驟計(jì)算所轉(zhuǎn)發(fā)的每個(gè)所述組塊的標(biāo)識(shí)符;存4諸所述標(biāo)識(shí)符;以及基于所述標(biāo)識(shí)符來(lái)確定每個(gè)所述組塊是否唯一;以及將所述標(biāo)識(shí)符和多個(gè)p舉一組塊中的至少一個(gè)發(fā)送到 所述可移動(dòng)存儲(chǔ)盒帶,其中,所述可移動(dòng)存儲(chǔ)盒帶包括 存儲(chǔ)驅(qū)動(dòng)器。
12. 根據(jù)權(quán)利要求11所述的用于利用可移動(dòng)存儲(chǔ)盒帶存儲(chǔ)數(shù)據(jù)的 公共因子分解方法,其中,所述標(biāo)識(shí)符存儲(chǔ)在低延遲存儲(chǔ)器中。
13. 根據(jù)權(quán)利要求11所述的用于利用可移動(dòng)存儲(chǔ)盒帶存儲(chǔ)數(shù)據(jù)的 公共因子分解方法,其中,所述組塊模塊和所述哈希模塊中的至少 一 個(gè)4立于所述主才幾夕卜告卩。展卡,包括組塊模塊,被配置為接收來(lái)自主機(jī)的原始數(shù)據(jù)流,以及將所述原始數(shù)據(jù)流分為多個(gè)組塊,其中,所述擴(kuò)展 卡^皮配置為可拆卸i也連4妄到所述主4幾和所述可移動(dòng)存4諸盒 帶,以及將數(shù)據(jù)存^t在所述可移動(dòng)存儲(chǔ)盒帶上;以及,哈希才莫塊,以流水線方式連^妄到所述組塊才莫塊,/人而對(duì) 所述p合希才莫塊的輸入的至少一部分包括來(lái)自所述組塊才莫塊的 輸出,其中,所述哈希才莫塊被配置為接收來(lái)自所述組塊才莫塊的多個(gè)所述組塊,計(jì)算4姿收到的多個(gè)所述組塊中的每個(gè)組塊的標(biāo)識(shí)付,基于所述標(biāo)識(shí)f尋來(lái)確定每個(gè)所述組塊是否p舉一,以及將唯一組塊存4諸在所述可移動(dòng)存儲(chǔ)盒帶上。
14.
15. 根據(jù)權(quán)利要求14所述的用于利用可移動(dòng)存儲(chǔ)盒帶存儲(chǔ)數(shù)據(jù)的 公共因子分解的擴(kuò)展卡,其中,所述原始數(shù)據(jù)流包括多個(gè)文件。
16. 根據(jù)權(quán)利要求14所述的用于利用可移動(dòng)存儲(chǔ)盒帶存儲(chǔ)數(shù)據(jù)的 公共因子分解的擴(kuò)展卡,其中,并行的多條數(shù)據(jù)通路被采用。
17. 根據(jù)權(quán)利要求14所述的用于利用可移動(dòng)存儲(chǔ)盒帶存儲(chǔ)數(shù)據(jù)的 公共因子分解的擴(kuò)展卡,其中,在由所述組塊沖莫塊處理每個(gè)所 述組塊的最后一個(gè)字節(jié)之前由所述p合希才莫塊處理所述組塊的 第一字節(jié)。
18. 根據(jù)權(quán)利要求14所述的用于利用可移動(dòng)存儲(chǔ)盒帶存儲(chǔ)數(shù)據(jù)的 公共因子分解的擴(kuò)展卡,進(jìn)一步包括附加數(shù)據(jù)處理模塊。
19. 根據(jù)權(quán)利要求18所述的用于利用可移動(dòng)存儲(chǔ)盒帶存儲(chǔ)數(shù)據(jù)的 公共因子分解的擴(kuò)展卡,進(jìn)一步包括標(biāo)識(shí)符數(shù)據(jù)庫(kù)搜索^T莫塊, 用于基于來(lái)自所述哈希才莫塊的輸出執(zhí)4亍對(duì)標(biāo)識(shí)符數(shù)據(jù)庫(kù)的控: 索并且將所述唯一組塊轉(zhuǎn)發(fā)到所述附加凄t據(jù)處理才莫塊。
20. 根據(jù)權(quán)利要求18所述的用于利用可移動(dòng)存儲(chǔ)盒帶存儲(chǔ)數(shù)據(jù)的 公共因子分解的擴(kuò)展卡,其中,所述附加數(shù)據(jù)處理模塊包括數(shù) 據(jù)壓縮模塊、加密模塊、和糾錯(cuò)編碼才莫塊中的一個(gè)或多個(gè)。
全文摘要
本發(fā)明描述了用于在可移動(dòng)存儲(chǔ)介質(zhì)上存儲(chǔ)數(shù)據(jù)的公共因子分解的系統(tǒng)和方法。這些系統(tǒng)和方法允許高度壓縮的數(shù)據(jù)以高效的方式存儲(chǔ)在便攜式存儲(chǔ)裝置上。該方法包括將數(shù)據(jù)分為多個(gè)唯一組塊并基于多個(gè)唯一組塊計(jì)算標(biāo)識(shí)符。通過(guò)計(jì)算標(biāo)識(shí)符并且將其他組塊的標(biāo)識(shí)符與之前計(jì)算的唯一組塊的標(biāo)識(shí)符進(jìn)行比較可以識(shí)別冗余組塊。當(dāng)識(shí)別出冗余組塊時(shí),生成對(duì)存在的唯一組塊的索引,從而可以關(guān)于其他組塊來(lái)重新構(gòu)造該組塊以使原始數(shù)據(jù)再現(xiàn)。該方法還包括將一個(gè)或多個(gè)唯一組塊、標(biāo)識(shí)符和/或索引存儲(chǔ)在可移動(dòng)存儲(chǔ)介質(zhì)上。取決于實(shí)施例,加速硬件和/或軟件可以位于多種裝置中。
文檔編號(hào)G06F3/06GK101339494SQ200810130549
公開(kāi)日2009年1月7日 申請(qǐng)日期2008年7月7日 優(yōu)先權(quán)日2007年7月6日
發(fā)明者史蒂文·W·斯克羅格斯, 馬修·D·邦杜蘭特 申請(qǐng)人:普羅斯特系統(tǒng)公司