亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

存儲裝置和副本數(shù)據(jù)檢測方法

文檔序號:6484803閱讀:154來源:國知局
存儲裝置和副本數(shù)據(jù)檢測方法
【專利摘要】根據(jù)內(nèi)容的類型來選擇最佳塊切割方法。存儲裝置是一種用于響應(yīng)于來自經(jīng)由網(wǎng)絡(luò)連接到存儲裝置的主機系統(tǒng)的內(nèi)容存儲請求而將內(nèi)容存儲在備份卷中并且包括用于將內(nèi)容切割成一個或多個塊的塊切割單元和用于管理由塊切割單元切割出的一個或多個塊的副本狀態(tài)的復(fù)制判斷單元的存儲裝置;其中,所述塊切割單元基于指示內(nèi)容類型的內(nèi)容類型識別信息來選擇用于切割塊的方法。
【專利說明】存儲裝置和副本數(shù)據(jù)檢測方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及一種存儲裝置和一種副本數(shù)據(jù)檢測方法,并且適合于在用于根據(jù)數(shù)據(jù)的類型來執(zhí)行去重(deduplication)處理的存儲裝置和副本數(shù)據(jù)檢測方法中使用。
【背景技術(shù)】
[0002]經(jīng)由網(wǎng)絡(luò)連接到主機計算機的存儲裝置裝配有例如多個磁盤作為用于存儲數(shù)據(jù)的存儲設(shè)備。當(dāng)在存儲設(shè)備中存儲數(shù)據(jù)時,數(shù)據(jù)的量被減少,然后被存儲以便降低存儲介質(zhì)的成本。用于減少數(shù)據(jù)的量的方法的示例包括文件壓縮處理和去重處理。文件壓縮處理通過精簡一個文件中具有相同內(nèi)容的數(shù)據(jù)段來減少數(shù)據(jù)容量。另一方面,去重處理通過精簡不僅在一個文件中而且在多個文件中所檢測到的具有相同內(nèi)容的數(shù)據(jù)段來減少文件系統(tǒng)或存儲系統(tǒng)中的數(shù)據(jù)的總?cè)萘?。去重處理的一般問題是,例如通過增強去重效率來盡可能多地減少存儲容量,通過增加去重處理的處理性能來縮短去重所需的處理時間,并且減少對經(jīng)去重的數(shù)據(jù)的管理開銷。
[0003]作為去重處理單元的數(shù)據(jù)段在下文中將被稱為塊(chunk)。而且,作為將被存儲在存儲設(shè)備中的單元、在邏輯上聚集的數(shù)據(jù)在下文中將被稱為內(nèi)容。內(nèi)容的示例可以包括普通文件以及諸如檔案文件、備份文件或其中聚合了普通文件的虛擬卷文件這樣的文件。
[0004]去重處理包括用于依次地從內(nèi)容切割出塊的處理、用于判斷在切割出的塊中是否存在任何重復(fù)塊的處理以及用于存儲塊的處理。在塊切割處理期間切割具有相同塊內(nèi)容的較大數(shù)目的數(shù)據(jù)段是重要的,以便高效地執(zhí)行去重處理。
[0005]塊切割方法的示例包括固定長度塊切割方法和可變長度塊切割方法。固定長度塊切割方法是依次地切割出具有特定長度的塊的方法,該特定長度諸如4千字節(jié)(KB)或I兆字節(jié)(MB)??勺冮L度切割方法是通過基于內(nèi)容數(shù)據(jù)的本地條件來確定塊切割邊界而切割內(nèi)容的方法。
[0006]此外,專利文獻I公開了一種基本對象(原始對象)切割方法作為內(nèi)容劃分方法?;緦ο笫侵T如圖像、文本以及圖這樣的各種數(shù)據(jù),并且這些基本對象被嵌入在被稱為富媒體文件的數(shù)據(jù)對象中。一個富媒體文件包含多個基本對象,并且這些基本對象正常地被壓縮并且然后被嵌入在富媒體文件中。根據(jù)專利文獻1,富媒體文件的結(jié)構(gòu)被檢測,邏輯上有意義的數(shù)據(jù)段被提取,壓縮數(shù)據(jù)根據(jù)需要被解壓縮,并且由此基本對象被切割。
[0007]引用列表
[0008]專利文獻
[0009]PTLl:US2010/0088277A1
[0010]非專利文獻
[0011]NPLl:a.Muthitacharoenj et al.〃A Low-bandwidth Network FileSystem",Proceedings of the eighteenth ACM Symposium on Operating SystemsPrinciples, 2001,pp.175-187
【發(fā)明內(nèi)容】

[0012]技術(shù)問題
[0013]關(guān)于固定長度塊切割方法,用于切割塊的開銷小;然而,如果內(nèi)容數(shù)據(jù)的改變是通過例如數(shù)據(jù)插入實現(xiàn)的,則在數(shù)據(jù)插入之后塊被移位,并且經(jīng)移位的塊然后被切割,由此降低了去重效率。另一方面,關(guān)于可變長度塊切割方法,能夠增加去重效率,這是因為其中塊被切割的邊界位置即使在塊由于數(shù)據(jù)插入而被移位的情況下也不改變;然而,用于搜索塊邊界的處理開銷增加。此外,基本數(shù)據(jù)切割方法需要解壓縮處理的重復(fù)執(zhí)行以便切割基本數(shù)據(jù),使得存在去重處理的開銷增加的問題。
[0014]因此,問題在于考慮到去重效率與去重處理的開銷之間的權(quán)衡,即使通過使用上述塊切割方法中的任何一種來執(zhí)行去重處理,也不能優(yōu)化整個去重處理。
[0015]本發(fā)明是鑒于上述情況而設(shè)計的,并且旨在提出能夠根據(jù)內(nèi)容的類型而選擇最佳塊切割方法的存儲裝置和副本數(shù)據(jù)檢測方法。
[0016]問題的解決方案
[0017]為了解決上述問題,根據(jù)本發(fā)明提供了一種存儲裝置,該存儲裝置用于響應(yīng)于來自經(jīng)由網(wǎng)絡(luò)連接到存儲裝置的主機系統(tǒng)的內(nèi)容存儲請求而將內(nèi)容存儲在備份卷中,其中該存儲裝置包括:塊切割單元,用于將內(nèi)容切割成一個或多個塊;以及復(fù)制判斷單元,用于管理已經(jīng)由塊切割單元切割出的一個或多個塊的副本狀態(tài);其中,所述塊切割單元基于指示內(nèi)容的類型的內(nèi)容類型識別信息來選擇一種用于切割出所述塊的方法。
[0018]根據(jù)上述配置,備份裝置將由主機系統(tǒng)提供的內(nèi)容切割成一個或多個塊,并且管理切割出的塊的副本狀態(tài)。當(dāng)切割塊時,備份裝置基于指示內(nèi)容類型的內(nèi)容類型識別信息來選擇用于切割內(nèi)容的方法。相應(yīng)地,能夠通過根據(jù)內(nèi)容類型來選擇塊切割方法并且通過所選方法來切割塊而增強去重處理的去重效率和處理效率。
[0019]本發(fā)明的有益效果
[0020]根據(jù)本發(fā)明,能夠通過根據(jù)內(nèi)容的類型來選擇最佳塊切割方法而增強去重處理的去重效率和處理效率。
【專利附圖】

【附圖說明】
[0021]圖1是示出根據(jù)本發(fā)明的第一實施例的計算機系統(tǒng)的硬件配置的框圖。
[0022]圖2是解釋根據(jù)第一實施例的塊切割方法的概念圖。
[0023]圖3是解釋根據(jù)第一實施例的塊切割方法的概念圖。
[0024]圖4是解釋根據(jù)第一實施例的內(nèi)容的結(jié)構(gòu)的概念圖。
[0025]圖5是圖示根據(jù)第一實施例的用于塊切割處理的處理序列的流程圖。
[0026]圖6是示出根據(jù)第一實施例的塊切割方法控制表的圖表。
[0027]圖7是圖示根據(jù)第一實施例的用于塊切割處理的處理序列的流程圖。
[0028]圖8是圖示根據(jù)第一實施例的用于塊切割處理的處理序列的流程圖。
[0029]圖9是圖示根據(jù)第一實施例的用于去重處理的處理序列的流程圖。
[0030]圖10是解釋根據(jù)第一實施例的去重處理的概要的概念圖。
[0031]圖11是示出根據(jù)第一實施例的去重優(yōu)化屏幕的圖表。
[0032]圖12是示出根據(jù)第一實施例的去重試驗屏幕的圖表。[0033]圖13是示出根據(jù)本發(fā)明的第二實施例的計算機系統(tǒng)的硬件配置的框圖。
[0034]圖14是示出根據(jù)本發(fā)明的第三實施例的計算機系統(tǒng)的硬件配置的框圖。
【具體實施方式】
[0035]下面將參考附圖來詳細(xì)地描述本發(fā)明的實施例。
[0036](I)第一實施例
[0037]( 1-1)本實施例的概要
[0038]首先,將解釋本實施例的概要。用于減少數(shù)據(jù)量的方法的示例包括文件壓縮處理和去重處理。文件壓縮處理通過精簡一個文件中具有相同內(nèi)容的數(shù)據(jù)段來減少數(shù)據(jù)容量。另一方面,去重處理通過精簡不僅在一個文件中而且在多個文件中檢測到的具有相同內(nèi)容的數(shù)據(jù)段來減少文件系統(tǒng)或存儲系統(tǒng)中的數(shù)據(jù)的總?cè)萘俊Hブ靥幚淼囊话銌栴}是例如通過增強去重效率來盡可能多地減少存儲容量、通過增加去重處理的處理性能來縮短去重所需的處理時間、并且減少對經(jīng)去重的數(shù)據(jù)的管理開銷。
[0039]作為去重處理單元的數(shù)據(jù)段在下文中將被稱為塊。而且,作為將被存儲在存儲設(shè)備中的單元、在邏輯上聚集的數(shù)據(jù)在下文中將被稱為內(nèi)容。內(nèi)容的示例可以包括普通文件以及諸如檔案文件、備份文件或其中聚合了普通文件的虛擬卷文件這樣的文件。
[0040]去重處理包括用于依次地從內(nèi)容切割出塊的處理、用于判斷在切割出的塊中是否存在任何重復(fù)塊的處理以及用于存儲塊的處理。在塊切割處理期間切割具有相同塊內(nèi)容的較大數(shù)目的數(shù)據(jù)段是重要的,以便高效地執(zhí)行去重處理。
[0041]塊切割方法的示例包括固定長度塊切割方法和可變長度塊切割方法。固定長度塊切割方法是依次地切割出具有特定長度的塊的方法,該特定長度諸如4千字節(jié)(KB)或I兆字節(jié)(MB )。可變長度塊方法是通過基于內(nèi)容數(shù)據(jù)的本地條件來確定塊切割邊界而切割內(nèi)容的方法。
[0042]此外,存在基本對象(原始對象)切割方法作為內(nèi)容劃分方法。基本對象是諸如圖像、文本以及圖的各種數(shù)據(jù),并且這些基本對象被嵌入在被稱為富媒體文件的數(shù)據(jù)對象中。一個富媒體文件包含多個基本對象,并且這些基本對象正常地被壓縮,然后被嵌入富媒體文件中。通過該基本對象切割方法,富媒體文件的結(jié)構(gòu)被檢測,邏輯上有意義的數(shù)據(jù)段被提取,壓縮數(shù)據(jù)根據(jù)需要被解壓縮,并且基本對象由此被切割。
[0043]關(guān)于固定長度塊切割方法,用于切割塊的開銷??;然而,如果內(nèi)容數(shù)據(jù)的改變是通過例如數(shù)據(jù)插入實現(xiàn)的,則在數(shù)據(jù)插入之后塊被移位,并且經(jīng)移位的塊然后被切割,由此降低了去重效率。另一方面,關(guān)于可變長度塊切割方法,能夠增加去重效率,這是因為其中塊被切割的邊界位置即使在塊由于數(shù)據(jù)插入而被移位的情況下也沒有改變;然而,用于搜索塊邊界的處理的開銷增加。
[0044]此外,關(guān)于基本數(shù)據(jù)切割方法,能夠通過解壓縮數(shù)據(jù)來檢測已經(jīng)被壓縮隱藏的數(shù)據(jù)副本;然而,必須重復(fù)數(shù)據(jù)解壓縮處理以便切割基本數(shù)據(jù),這導(dǎo)致去重處理的開銷的增力口。另一方面,如果富媒體文件被簡單地拷貝而未被壓縮,則將不會大大地影響去重效率,即使在未將基本數(shù)據(jù)分解的情況下且在多個基本數(shù)據(jù)被嵌入的狀態(tài)下執(zhí)行塊切割處理也是如此;而問題是不能節(jié)省用于提取基本數(shù)據(jù)的開銷。
[0045]因此,問題在于考慮到去重效率與去重處理的開銷之間的權(quán)衡,即使通過使用上述塊切割方法中的任何一種來執(zhí)行去重處理也不能優(yōu)化整個去重處理。
[0046]因此,根據(jù)本實施例,通過基于每片(piece)內(nèi)容或內(nèi)容的每個部分的性質(zhì)來切換將在塊切割處理期間應(yīng)用的塊切割方法,根據(jù)每個內(nèi)容類型來選擇最佳塊切割方法。能夠通過檢測被附著于每片內(nèi)容的類型識別信息來判斷內(nèi)容類型。能夠通過預(yù)先知道對應(yīng)于內(nèi)容類型的內(nèi)容的性質(zhì)和結(jié)構(gòu),根據(jù)內(nèi)容類型來選擇最佳塊切割方法。
[0047]例如,如果某個內(nèi)容具有不會改變太多的類型,則期望的是應(yīng)對該內(nèi)容應(yīng)用固定長度塊方法以切割出塊。此外,在大尺寸內(nèi)容的情況下,切割出具有較大尺寸的塊導(dǎo)致較小的處理開銷;并且在小尺寸內(nèi)容的情況下,將被切割出的塊的尺寸應(yīng)優(yōu)選地是小的。而且,如果任何數(shù)據(jù)被插入內(nèi)容中,則期望的是應(yīng)該應(yīng)用可變長度塊方法來切割出塊。如果任何數(shù)據(jù)被插入內(nèi)容中,但該內(nèi)容不會改變太多,則可以在沒有復(fù)制效率劣化的情況下增強處理效率,并且能夠通過切割出大尺寸塊來降低管理開銷。
[0048]此外,可以將具有指定結(jié)構(gòu)的內(nèi)容劃分成諸如頭部(header)部分、主體部分以及尾部部分的各部分,并且將對每個部分應(yīng)用不同的塊切割方法。通過對每個部分應(yīng)用期望的塊切割方法,能夠優(yōu)化去重效率和處理效率。
[0049]此外,諸如備份文件、檔案文件或虛擬卷文件這樣的內(nèi)容被配置成使得在該文件(主體部分)中還包含多個文件。這些文件被稱為子內(nèi)容。如果內(nèi)容包含子內(nèi)容,則可以通過對子內(nèi)容執(zhí)行去重處理來預(yù)期去重效率的增強。因此,對子內(nèi)容也應(yīng)用適合于子內(nèi)容類型的塊切割方法。此外,如果子內(nèi)容具有指定結(jié)構(gòu),則根據(jù)子內(nèi)容的頭部部分、主體部分以及尾部部分的每個性質(zhì)來選擇塊切割方法,從而優(yōu)化去重處理。
[0050]因此,根據(jù)本實施例,能夠通過根據(jù)內(nèi)容類型來選擇最佳塊切割方法而增強去重處理的去重效率和處理效率。
[0051]( 1-2)計算機系統(tǒng)的硬件配置
[0052]接下來,將解釋計算機系統(tǒng)I的硬件配置。
[0053]參考圖1,計算機系統(tǒng)I包括備份裝置100、客戶端164、存儲裝置170、第一備份服務(wù)器150以及第二備份服務(wù)器152。根據(jù)本實施例的備份裝置100使用后處理型去重系統(tǒng)。后處理型去重系統(tǒng)是這樣一種系統(tǒng):其提取曾被存儲在備份裝置100中的存儲介質(zhì)中的數(shù)據(jù),然后對其進行去重,由此減小備份裝置100中的數(shù)據(jù)容量。
[0054]備份裝置100是裝配有諸如CPU和存儲器這樣的信息處理資源的計算機設(shè)備,經(jīng)由LAN接口 145連接到LAN (局域網(wǎng))140,并連接到第一備份服務(wù)器150和第二備份服務(wù)器 152。
[0055]第一備份服務(wù)器150是裝配有諸如CPU和存儲器這樣的信息處理資源的計算機設(shè)備,被連接到LAN140并經(jīng)由LAN168連接到多個客戶端164??蛻舳?64具有用于存儲數(shù)據(jù)的本地卷160。備份服務(wù)器150收集被存儲在本地卷160中的數(shù)據(jù),并且將該數(shù)據(jù)作為備份文件存儲在備份裝置100的備份卷112中。關(guān)于要存儲在備份卷112中的備份文件,文件服務(wù)器154經(jīng)由通過使用OS (操作系統(tǒng))120的本地文件系統(tǒng)112的訪問路徑132來將備份文件存儲在備份卷112中。
[0056]此外,第二備份服務(wù)器152是裝配有諸如CPU和存儲器這樣的信息處理資源的計算機設(shè)備,被連接到LAN140,并且還經(jīng)由SAN178連接到存儲裝置170。第二備份服務(wù)器152訪問存儲裝置170,收集被存儲在存儲裝置170的存儲區(qū)域中的數(shù)據(jù),并將該數(shù)據(jù)作為備份文件存儲在備份裝置100的備份卷112中。文件服務(wù)器154還經(jīng)由通過使用0S120的本地文件系統(tǒng)122的訪問路徑將此類備份文件存儲在備份卷112中。
[0057]管理服務(wù)器108經(jīng)由管理通信路徑139連接到備份裝置100。管理服務(wù)器108是裝配有諸如CPU和存儲器這樣的信息處理資源的計算機設(shè)備,并且是用于根據(jù)例如操作員的輸入來管理例如備份裝置100的去重處理的設(shè)備。管理通信路徑139可以是LAN140或為排他使用而提供的串行接口。
[0058]( 1-3)備份裝置的功能結(jié)構(gòu)
[0059]備份裝置100包括例如圖1中所示的去重卷110、備份卷112、處理器114以及存儲器116。存儲器116存儲處理器114、0S120、文件服務(wù)器154以及各種程序。各種軟件在被存儲于存儲器116中的0S120的控制下進行操作。被存儲在存儲器116中的軟件包括例如內(nèi)容遷移程序102、塊切割程序104以及復(fù)制判斷程序106。
[0060]內(nèi)容遷移程序102讀取被存儲在備份卷112中的備份文件,并將其作為內(nèi)容提供給塊切割程序104。此外,塊切割程序104從自內(nèi)容遷移程序102提供的內(nèi)容切割出作為去重處理單元的塊。塊切割程序104通過使用依賴于內(nèi)容類型的最佳塊切割方法來從內(nèi)容切割出塊。稍后將詳細(xì)地解釋由塊切割程序104進行的塊切割處理。
[0061]復(fù)制判斷程序106判斷已由塊切割程序104切割出的塊的副本狀態(tài),并根據(jù)需要經(jīng)由訪問路徑137將這些塊寫入去重卷110。此外,復(fù)制判斷程序106執(zhí)行去重處理并根據(jù)例如來自操作員的指令來監(jiān)視去重狀態(tài),該指令是經(jīng)由管理服務(wù)器108輸入的。
[0062]去重卷110和備份卷112由例如硬盤驅(qū)動(HDD)組成。
[0063](1-4)塊切割處理
[0064]接下來,將解釋根據(jù)本實施例的塊切割處理。塊切割程序104如上所述關(guān)于從內(nèi)容遷移程序102提供的內(nèi)容、根據(jù)內(nèi)容類型來選擇最佳塊切割方法。塊切割程序104然后使用所選擇的塊切割方法來執(zhí)行內(nèi)容切割處理。
[0065]將參考圖2來解釋塊切割方法。首先,將解釋固定長度塊方法。關(guān)于內(nèi)容500,如圖2中所示,具有固定長度的塊A (501)至塊D (504)已被切割出并被存儲在備份卷112中。此外,通過重寫內(nèi)容500的塊B (502)、另外將數(shù)據(jù)寫入內(nèi)容500且然后將其存儲在備份卷112中來獲得內(nèi)容510。
[0066]作為重寫內(nèi)容500的結(jié)果,內(nèi)容510的第二塊在重寫數(shù)據(jù)之后被改變?yōu)閴KB’(512),并且另外寫入的塊被切割為塊E (515)。此外,關(guān)于內(nèi)容500的塊D (504),如果塊D (504)的長度短于指定的固定長度,則在塊D (504)之后添加另外寫入的數(shù)據(jù),并切割具有指定的固定長度的數(shù)據(jù)。因此,關(guān)于內(nèi)容510的塊D’(514),被另外寫入到塊D (504)的數(shù)據(jù)被添加,并且不同于塊D (504)的塊D’(514)被存儲。
[0067]同時,不對塊A和塊C進行改變,并且其在內(nèi)容中的位置不改變,因此通過固定長度塊方法從內(nèi)容510切割出塊A (511)和塊C (513)。因此,由于內(nèi)容510的塊A (511)和塊C (513)和內(nèi)容500的塊A (501)和塊C (503)是冗余的,所以塊A (501)和塊C (503)被復(fù)制判斷程序106去重。換目之,塊A (511)和塊C (513)不被存儲在去重卷110中,并且僅記錄了指示對塊A (511)和塊C (513)的引用的引用信息。
[0068]此外,通過向內(nèi)容500中插入數(shù)據(jù)X (529)來獲得內(nèi)容520。連同數(shù)據(jù)X (529)的插入一起,內(nèi)容中的塊C (523)和塊D (524)的位置(偏移)改變。在固定長度塊方法的情況下,內(nèi)容520被切割成塊A (531)、塊F (535)、塊G (536)、塊H (537)以及塊I (538)。具體而言,雖然包括了已被存儲的塊C (523)和塊D (524)的內(nèi)容,但必須將塊F (535)至塊I (538)作為新塊存儲在去重卷110中。
[0069]接下來,將解釋可變長度塊方法。通過可變長度塊方法,即使塊的位置(偏移)如內(nèi)容520的塊C (523)—樣被移位,也能夠切割出塊。具體而言,關(guān)于可變長度塊方法,如果塊的本地數(shù)據(jù)滿足特定條件,則滿足該條件的位置被識別為塊的邊界。例如,在使位置移位I字節(jié)時,依次地計算內(nèi)容中的連續(xù)48字節(jié)數(shù)據(jù)的哈希值。然后,如果所計算的結(jié)果滿足特定條件,則將滿足該條件的位置設(shè)置為邊界。而且,如果未對48字節(jié)數(shù)據(jù)進行改變,其頂端和末端變成邊界,或者甚至在數(shù)據(jù)插入之后在48字節(jié)數(shù)據(jù)周圍,則該部分的哈希值不改變且該位置可以被設(shè)置為塊的邊界。
[0070]例如,參考圖5,通過可變長度塊方法,內(nèi)容500被劃分成塊A (501)至塊D (504)。具體而言,塊A (501)和塊B (502)之間的邊界由該邊界周圍的48字節(jié)數(shù)據(jù)的哈希值確定,并且塊B (502)和塊C (503)之間的邊界及塊C (503)和塊D (504)之間的邊界同樣地由相關(guān)邊界周圍的數(shù)據(jù)的哈希值確定。
[0071]關(guān)于內(nèi)容510,塊B (502)被重寫并改變成塊B’(512),但是能夠以高概率預(yù)期各塊之間的邊界周圍的數(shù)據(jù)未改變。相應(yīng)地,能夠關(guān)于內(nèi)容510切割出塊C和塊D,使得能夠?qū)KC和塊D去重。同樣地,關(guān)于內(nèi)容520,顯然,各塊之間的邊界周圍的數(shù)據(jù)未改變,這與數(shù)據(jù)X (529)的插入無關(guān)。因此,能夠切割出塊C (523)和塊D (524),并且能夠?qū)?nèi)容510的塊C和塊D去重。
[0072]結(jié)果,能夠通過可變長度塊方法來增加數(shù)據(jù)可以可能被插入其中的內(nèi)容的去重效率;然而,用于確定塊邊界的哈希值計算處理的開銷增加。
[0073]此外,在不通過上述固定長度塊方法和可變長度塊方法來執(zhí)行塊切割的情況下,通過將整個一個內(nèi)容識別為一個塊來執(zhí)行去重處理的單個實例方法也是可能的。
[0074]圖3示出了通過對內(nèi)容應(yīng)用上述塊切割方法來切割塊的結(jié)果。例如,內(nèi)容600示出了切割出具有8KB固定長度的塊的結(jié)果。塊A (601)至塊D (604)被切割成使得自其頂端開始的每個塊的尺寸依次地變成8千字節(jié)。因此,8千字節(jié)被添加到偏移,使得塊A (601)的偏移是0,塊B (602)的偏移是8千字節(jié),并且塊C (603)的偏移是16千字節(jié)。
[0075]另一方面,關(guān)于內(nèi)容610,切割出塊A’(611)至塊D’(614),但是每個塊的長度是不同的。結(jié)果,每個塊的偏移不一定是8千字節(jié)的倍數(shù)。由于通過基于內(nèi)容數(shù)據(jù)的本地性質(zhì),例如相關(guān)本地48字節(jié)數(shù)據(jù)的哈希值,來設(shè)置塊邊界而確定可變長度塊的長度所以長度本身是無意義的。然而,當(dāng)切割塊時,可以給定塊長度的最小值和最大值,以便防止切割出過短或過長的塊。
[0076]此外,內(nèi)容620示出由在不將內(nèi)容切割成多個塊的情況下將整個內(nèi)容作為一個塊621對待的單個實例方法實現(xiàn)的切割結(jié)果。
[0077]接下來,將參考圖4來解釋內(nèi)容結(jié)構(gòu)的典型示例。內(nèi)容700是并不特別地具有任何結(jié)構(gòu)的內(nèi)容。在此所使用的結(jié)構(gòu)意指關(guān)于數(shù)據(jù)布置的規(guī)則,根據(jù)該規(guī)則,指定數(shù)據(jù)存在于相關(guān)內(nèi)容中的指定位置處。此外,諸如塊切割程序104這樣的每個程序識別到該內(nèi)容包含該結(jié)構(gòu)。換言之,如果內(nèi)容被配置成具有某種結(jié)構(gòu),但該結(jié)構(gòu)未被程序識別,則這意味著該內(nèi)容的該結(jié)構(gòu)實際上并不存在。[0078]內(nèi)容700包含內(nèi)容類型識別信息702,且其余部分是實際上不具有任何結(jié)構(gòu)的主體部分706。而且,內(nèi)容700有時甚至可能不具有內(nèi)容類型識別信息,并且整個內(nèi)容可以是不具有任何結(jié)構(gòu)的數(shù)據(jù)。關(guān)于此類內(nèi)容,內(nèi)容類型識別信息702和主體部分706被共同地處理。
[0079]內(nèi)容750由內(nèi)容類型識別信息752、頭部部分754、主體部分756以及尾部部分758組成。內(nèi)容類型識別信息包含整個內(nèi)容的數(shù)據(jù)類型和關(guān)于創(chuàng)建該內(nèi)容的應(yīng)用的信息。內(nèi)容類型識別信息通常位于內(nèi)容的頂端部分處。能夠根據(jù)數(shù)據(jù)類型來識別該內(nèi)容中的數(shù)據(jù)的位置和長度及如何讀取數(shù)據(jù)。因此,根據(jù)數(shù)據(jù)類型能夠改變用于分析頭部部分和主體部分的方法。附帶地,本實施例描述了內(nèi)容類型識別信息752位于內(nèi)容的頂端部分處;然而,本發(fā)明不限于本示例,并且內(nèi)容類型識別信息752可以位于除內(nèi)容的頂端部分之外的位置處。
[0080]頭部部分754描述了內(nèi)容的結(jié)構(gòu),并且通常位于內(nèi)容的頂端附近。通過分析頭部部分754來識別內(nèi)容中的主體部分756和尾部部分758的位置。還可以獲得關(guān)于主體部分756的詳細(xì)組成及其位置的信息。附帶地,內(nèi)容類型識別信息752和頭部部分754可以被共同地處理。
[0081]尾部部分758通常位于內(nèi)容的末端處。諸如內(nèi)容長度信息這樣的關(guān)于整個內(nèi)容750的信息被存儲在尾部部分758中。而且,能夠?qū)⑽膊坎糠?58的信息用于內(nèi)容處理的有效檢查。在邏輯上無意義的填充數(shù)據(jù)有時可以被存儲在尾部部分758中。
[0082]同樣地,內(nèi)容790由內(nèi)容類型識別信息M (792)、頭部部分H (794)、主體部分D(796)以及尾部部分T (798)組成。主體部分D (796)包含一片或多片子內(nèi)容,并且內(nèi)容790包含例如兩片子內(nèi)容,其為子內(nèi)容I (710)和子內(nèi)容2 (720)。
[0083]子內(nèi)容本身可以具有與內(nèi)容700或內(nèi)容750類似的結(jié)構(gòu)。例如,子內(nèi)容I (710)僅由內(nèi)容類型識別信息Ml (712)和主體部分Dl (716)組成,其類似于內(nèi)容700中的那些。此外,子內(nèi)容2 (720)具有與內(nèi)容750的結(jié)構(gòu)類似的結(jié)構(gòu),并且子內(nèi)容2由內(nèi)容類型識別信息M2 (722)、頭部部分H2 (724)、主體部分D2 (726)以及尾部部分T2 (728)組成。此類結(jié)構(gòu)在內(nèi)容790是其中聚集了子內(nèi)容I (710)和子內(nèi)容2 (720)的檔案文件的情況下可能存在。具有此類結(jié)構(gòu)的內(nèi)容的其他示例包括備份文件、虛擬盤卷以及富媒體文件。
[0084]接下來,將解釋由備份裝置100的塊切割程序104執(zhí)行的塊切割處理的概要。參考圖5,當(dāng)從內(nèi)容遷移程序102接收到如圖4中所示的內(nèi)容700、內(nèi)容750或內(nèi)容790時,塊切割程序104評估內(nèi)容的長度(S101)。內(nèi)容的長度被包括在例如當(dāng)將內(nèi)容存儲在備份卷112中時創(chuàng)建的元數(shù)據(jù)中;并且被包括在當(dāng)內(nèi)容遷移程序102將內(nèi)容傳送至塊切割程序104時連同該內(nèi)容一起被傳送的信息中。具體而言,塊切割程序104判斷內(nèi)容長度是否等于或短于預(yù)先設(shè)定的指定最小值。
[0085]如果在步驟SlOl中確定了內(nèi)容長度等于或短于指定最小值,則塊切割程序104通過將內(nèi)容識別為單個塊來執(zhí)行塊切割處理(S102)。即使具有等于或短于指定最小值的長度的內(nèi)容變成去重目標(biāo),也不能大大地增強去重效率和數(shù)據(jù)存儲效率。因此,即使內(nèi)容包含多個塊,它們也被整體視為一個塊。
[0086]如果在步驟SlOl中確定了內(nèi)容長度長于指定最小值,則塊切割程序104獲得內(nèi)容類型識別信息(S103)??梢詫?nèi)容類型識別信息假設(shè)為位于相同位置處,諸如內(nèi)容的頂端,即使當(dāng)內(nèi)容具有與如圖4中所示的內(nèi)容700、750和792中的任何一個的結(jié)構(gòu)類似的結(jié)構(gòu)時都是如此。因此,能夠在不辨別相關(guān)內(nèi)容具有哪個結(jié)構(gòu)的情況下獲得內(nèi)容類型識別信息。附帶地,可以在沒有任何改變的情況下使用內(nèi)容類型識別信息的數(shù)據(jù),或者可以使用內(nèi)容類型識別信息的一部分的數(shù)據(jù),或者可以將內(nèi)容類型識別信息處理成能夠被容易地處理的數(shù)據(jù)。在以下說明中,將被提取為內(nèi)容類型識別信息的數(shù)據(jù)與各內(nèi)容類型相關(guān)聯(lián),以準(zhǔn)備用于每個內(nèi)容類型的適當(dāng)塊切割處理。
[0087]然后,基于在步驟S103中獲得的內(nèi)容類型識別信息來選擇特定于每個內(nèi)容的塊切割處理。具體而言,塊切割程序104首先判斷內(nèi)容類型識別信息是否是A (S104)。如果在步驟S104中確定了內(nèi)容類型識別信息是A,則塊切割程序104執(zhí)行為其內(nèi)容類型是A的內(nèi)容準(zhǔn)備的塊切割處理(S108 )。
[0088]如果在步驟S104中確定了內(nèi)容類型識別信息不是A,則塊切割程序104判斷內(nèi)容類型識別信息是否是B(S105)。如果在步驟S105中確定了內(nèi)容類型識別信息是B,則塊切割程序104執(zhí)行為其內(nèi)容類型是B的內(nèi)容準(zhǔn)備的塊切割處理(S109)。
[0089]如果在步驟S105中確定了內(nèi)容類型識別信息不是B,則塊切割程序104判斷內(nèi)容類型識別信息是否是C(S106)。如果在步驟S106中確定了內(nèi)容類型識別信息是C,則塊切割程序104執(zhí)行為其內(nèi)容類型是C的內(nèi)容準(zhǔn)備的塊切割處理(S110)。
[0090]如果在步驟S106中確定了內(nèi)容類型識別信息不是C,則塊切割程序104執(zhí)行用于其他內(nèi)容的塊切割處理(S107),并且然后終止塊切割處理。在上述說明中,對應(yīng)于每個內(nèi)容類型的塊切割處理是針對內(nèi)容類型是A至C中的任何一個的情況而準(zhǔn)備的;然而,本發(fā)明不限于這樣的示例,并且可以準(zhǔn)備對應(yīng)于多個內(nèi)容類型的塊切割處理。在這種情況下,依次地判斷內(nèi)容類型識別信息,并且以與在步驟S103至S105中相同的方式來執(zhí)行對應(yīng)于每個內(nèi)容類型的塊切割處理。
[0091]塊切割程序104將通過上述處理切割出的塊逐個地或作為塊的集合共同地提供給復(fù)制判斷程序106。然后,復(fù)制判斷程序106檢查每個塊的副本狀態(tài),并且執(zhí)行用于消除重復(fù)塊的處理和用于存儲新塊的處理。
[0092]塊切割程序104通過使用圖6中所示的塊切割方法控制表900來執(zhí)行切割處理。將參考圖6中的塊切割方法控制表來解釋切割處理的細(xì)節(jié)。塊切割方法控制表900是用于管理對應(yīng)于內(nèi)容類型的塊切割方法的表,并且由類型信息列901、類型列902、塊切割方法列903以及處理函數(shù)列904組成。類型信息列901存儲被包括在內(nèi)容中的內(nèi)容類型識別信息。類型列902存儲對應(yīng)于內(nèi)容類型識別信息的內(nèi)容類型。塊切割方法列903存儲對應(yīng)于內(nèi)容類型的塊切割方法。此外,如果內(nèi)容由頭部部分、主體部分以及尾部部分組成,則塊切割方法列903包括頭部部分塊長度列907、主體部分塊長度列908以及尾部部分塊長度列909。處理函數(shù)列904存儲關(guān)于用于切割處理的處理函數(shù)的信息。
[0093]在圖5中所示的步驟S104、S105、S106中,塊切割程序104將如在步驟S103中獲得的內(nèi)容的內(nèi)容類型識別信息與被存儲在塊切割方法控制表900的每個條目的類型信息列901中的內(nèi)容類型識別信息相比較;并且如果在步驟S103中獲得的內(nèi)容的內(nèi)容類型識別信息與被存儲在類型信息列901中的內(nèi)容類型識別信息匹配,則塊切割程序104確定相關(guān)內(nèi)容具有被存儲在對應(yīng)類型列902中的內(nèi)容類型。然后,塊切割程序104調(diào)用被存儲在與相關(guān)內(nèi)容類型的條目相對應(yīng)的處理函數(shù)列904中的處理函數(shù),并根據(jù)相關(guān)處理函數(shù)來執(zhí)行處理。[0094]例如,如果被包括在內(nèi)容中的內(nèi)容類型識別信息是A,則對應(yīng)的內(nèi)容類型是A,并且處理函數(shù)是Func_A。因此,在圖5中的步驟S108中調(diào)用處理函數(shù)Func_A,并且執(zhí)行塊切割處理。
[0095]此外,如果被包括在內(nèi)容中的內(nèi)容類型識別信息是B,則對應(yīng)的內(nèi)容類型是B,并且處理函數(shù)是Func_B。因此,在圖5中的步驟S109中調(diào)用處理函數(shù)Func_B,并且執(zhí)行塊切割處理。
[0096]此外,如果被包括在內(nèi)容中的內(nèi)容類型識別信息是C,則對應(yīng)的內(nèi)容類型是C,并且處理函數(shù)是Func_C。因此,在圖5中的步驟SllO中調(diào)用處理函數(shù)Func_C,并且執(zhí)行塊切割處理。
[0097]此外,被包括在內(nèi)容中的內(nèi)容類型識別信息是除了 A至C之外的,則對應(yīng)的內(nèi)容類型是0,并且處理函數(shù)是Func_0。因此,在圖5中的步驟S107中調(diào)用處理函數(shù)Func_0,并且執(zhí)行塊切割處理。
[0098]在步驟S107中,對類似于圖4中所示的內(nèi)容700的不具有結(jié)構(gòu)的內(nèi)容執(zhí)行塊切割處理。具體而言,不具有結(jié)構(gòu)的內(nèi)容的內(nèi)容類型是0,其對應(yīng)塊切割方法是可變長度塊切割方法,并且將要被切割出的塊的最小塊長度和最大塊長度是預(yù)先設(shè)定的。對應(yīng)于內(nèi)容類型O的處理函數(shù)Func_0通過反映被存儲在塊切割方法列903中的參數(shù)來執(zhí)行處理。例如,如果最小塊長度被設(shè)置成4KB且最大塊長度被設(shè)置成12KB,則在向(最后一次從其切割出塊的)偏移位置添加4KB的位置與向該偏移位置添加12KB的位置之間設(shè)置新的劃分線。
[0099]此外,在步驟SI 10中,對其內(nèi)容類型是C的內(nèi)容執(zhí)行塊切割處理;并且在對應(yīng)于內(nèi)容類型C的塊切割方法列903中進行設(shè)置,使得塊切割方法是固定長度塊切割方法,并且用Lb字節(jié)的固定長度來切割頭部部分,而用Lc字節(jié)的長度來切割除頭部部分之外的數(shù)據(jù)。此類內(nèi)容的示例可以是zip文件。如果指定的固定長度是32KB,則對應(yīng)于內(nèi)容類型C的處理函數(shù)Func_C依次地按32KB從內(nèi)容切割數(shù)據(jù),并將切割出的數(shù)據(jù)片識別為一個塊。
[0100]此外,在步驟S108中,對其內(nèi)容類型是A的內(nèi)容執(zhí)行塊切割處理;并且對應(yīng)于內(nèi)容類型A的切割方法列903顯示內(nèi)容具有與圖4中所示的內(nèi)容750的結(jié)構(gòu)類似的結(jié)構(gòu),并且應(yīng)通過將內(nèi)容劃分成頭部部分、主體部分以及尾部部分來處理該內(nèi)容。此類內(nèi)容的示例可以是HF (便攜式文檔格式)文件或虛擬盤文件。此外,切割方法列903顯示應(yīng)將頭部部分切割為單個塊,并且應(yīng)將主體部分切割成具有指定最大長度與最小長度之間的長度的可變長度塊,并且應(yīng)將尾部部分切割為單個塊。對應(yīng)于內(nèi)容類型A的處理函數(shù)據(jù)被存儲在切割方法列903中的規(guī)范來執(zhí)行塊切割處理。
[0101]現(xiàn)在,將參考圖7來解釋圖5中的步驟108中的對內(nèi)容類型A的塊切割處理的細(xì)節(jié)。在以下說明中,以圖4中所示的內(nèi)容750作為其內(nèi)容類型是A的內(nèi)容的示例。
[0102]在圖5中的步驟S108中,塊切割程序104調(diào)用處理函數(shù)Func_A,從而執(zhí)行塊切割處理。如上所述,在步驟S103中獲得內(nèi)容類型識別信息,因此塊切割程序104能夠基于該信息來識別內(nèi)容的頭部部分的結(jié)構(gòu)。內(nèi)容的頭部部分包含關(guān)于頭部部分的長度、內(nèi)容中的主體部分的位置(偏移)和長度以及尾部部分的位置和長度的信息。塊切割程序104分別基于上述信息而提取頭部部分、主體部分以及尾部部分。
[0103]具體而言,塊切割程序104首先提取內(nèi)容750的頭部部分(752和754) (S201)。塊切割程序104根據(jù)塊切割方法控制表900的切割方法列903中的規(guī)范來將頭部部分切割為一個塊(S202)。塊切割程序104使復(fù)制判斷程序106對在步驟S202中切割出的塊執(zhí)行去重處理(S203)。
[0104]接下來,塊切割程序104提取內(nèi)容750的主體部分756 (S204)。實際上,確定存儲器中的內(nèi)容數(shù)據(jù)中的主體部分的開始地址和結(jié)束地址。主體部分的開始地址和結(jié)束地址能夠通過預(yù)先參考頭部部分的內(nèi)容來獲得。然后,塊切割程序104根據(jù)塊切割方法控制表900的切割方法列903中的規(guī)范、通過可變長度塊切割方法來從主體部分756切割出塊(S205)。在步驟S205中切割出塊之后,塊切割程序104使得復(fù)制判斷程序106對塊執(zhí)行去重處理(S206)。稍后將詳細(xì)地解釋由復(fù)制判斷程序106進行的去重處理。
[0105]隨后,塊切割程序104判斷是否有尚未被切割為塊的任何數(shù)據(jù)仍在主體部分756的數(shù)據(jù)中(S207)。如果在步驟S207中確定了數(shù)據(jù)仍在主體部分756中,則塊切割程序104重復(fù)步驟S205和后續(xù)步驟中的處理。如果在步驟S207中確定了沒有數(shù)據(jù)留在主體部分756中(剩余字節(jié)=0),則塊切割程序104執(zhí)行步驟S208和后續(xù)步驟中的處理。
[0106]接下來,塊切割程序104提取內(nèi)容750的尾部部分758(S208)。實際上,塊切割程序104提取除了作為頭部部分和主體部分被提取的數(shù)據(jù)之外的全部剩余數(shù)據(jù)作為尾部部分。然后,塊切割程序104根據(jù)塊切割方法控制表900的切割方法列903中的規(guī)范來將整個尾部部分提取作為單個塊(S209)。在步驟S209中提取塊之后,塊切割程序104使得復(fù)制判斷程序106對該塊執(zhí)行去重處理(S210),并且然后終止內(nèi)容類型A的塊切割處理。
[0107]在圖5中的步驟S109中,對其內(nèi)容類型是B的內(nèi)容執(zhí)行塊切割處理;并且對應(yīng)于內(nèi)容類型B的切割方法列903顯示該內(nèi)容具有與圖4中所示的內(nèi)容790的結(jié)構(gòu)類似的結(jié)構(gòu),并且不僅內(nèi)容被劃分成頭部部分、主體部分以及尾部部分,而且主體部分被進一步劃分成多片子內(nèi)容。此類內(nèi)容的示例可以包括tar (磁帶檔案)文件或由備份軟件創(chuàng)建的檔案文件。檔案文件的文件格式,包括內(nèi)容中的主體部分和尾部部分的偏移以及子內(nèi)容存儲方法依賴于備份軟件而不同。對應(yīng)于內(nèi)容類型B的處理函數(shù)Func_B辨別例如文件格式的差異,并且提取每個部分和子內(nèi)容。然后,對應(yīng)于內(nèi)容類型B的處理函數(shù)Func_B根據(jù)被存儲在切割方法列903中的規(guī)范來執(zhí)行塊切割處理。
[0108]與圖6中所示的塊切割方法控制表900中的內(nèi)容類型B相對應(yīng)的塊切割方法列903顯示應(yīng)通過將內(nèi)容劃分成頭部部分、主體部分以及尾部部分來對其進行處理,應(yīng)通過使用指定長度的固定長度方法來切割頭部部分,應(yīng)將主體部分劃分成子內(nèi)容片,并且應(yīng)針對每片子內(nèi)容選擇塊切割方法,并且應(yīng)將尾部部分切割為單個塊。對應(yīng)于內(nèi)容類型B的處理函數(shù)Func_B根據(jù)上述規(guī)范來執(zhí)行切割處理。
[0109]將應(yīng)用于子內(nèi)容的塊切割方法類似于將應(yīng)用于內(nèi)容的切割方法。例如,如果子內(nèi)容不具有類似于子內(nèi)容I (710)的任何特殊結(jié)構(gòu),則可以從整個子內(nèi)容依次地切割出可變長度塊。此外,如果子內(nèi)容具有與子內(nèi)容720的結(jié)構(gòu)類似的結(jié)構(gòu),則可以通過對應(yīng)于內(nèi)容類型A的切割方法來從頭部部分、主體部分以及尾部部分的數(shù)據(jù)切割出塊。然而,即使子內(nèi)容720的主體部分726被進一步劃分成多片下級子內(nèi)容,也并不總是必須劃分子內(nèi)容并然后執(zhí)行塊切割處理。這是因為如果將包含在子內(nèi)容中的子內(nèi)容進一步分解,則用于子內(nèi)容分解處理的開銷增加。
[0110]現(xiàn)在,將參考圖8來解釋圖5中的步驟S109中的內(nèi)容類型B的塊切割處理的細(xì)節(jié)。在以下說明中,以圖4中所示的內(nèi)容790作為其內(nèi)容類型為B的內(nèi)容的示例。[0111]在圖5中的步驟S109,塊切割程序104調(diào)用處理函數(shù)Func_B,從而執(zhí)行塊切割處理。如上所述,在步驟S103中獲得內(nèi)容類型識別信息,因此塊切割程序104能夠基于該信息來識別內(nèi)容的頭部部分的結(jié)構(gòu)。塊切割程序104從內(nèi)容790提取頭部部分(792和794),并且獲得頭部部分794的位置信息、主體部分796的位置信息以及尾部部分798的位置信息(S301)。此外,在步驟Slll中,塊切割程序104從頭部部分796獲得主體部分的子內(nèi)容710和720的位置信息。這些信息條被用來在用于切割主體部分的后續(xù)處理期間提取子內(nèi)容。
[0112]塊切割程序104根據(jù)塊切割方法控制表900的切割方法列903中的規(guī)范來提取出頭部部分作為一個塊(S302)。塊切割程序104使得復(fù)制判斷程序106對在步驟S202中提取的塊執(zhí)行去重處理(S303)。然后,塊切割程序104判斷是否有尚未被切割為塊的任何數(shù)據(jù)仍在頭部部分794的數(shù)據(jù)中(S304)。如果在步驟S304中確定了數(shù)據(jù)仍在頭部部分794中,則塊切割程序104重復(fù)步驟S302和后續(xù)步驟中的處理。如果在步驟S304中確定了沒有數(shù)據(jù)留在頭部部分794中(剩余字節(jié)=0),則塊切割程序104執(zhí)行步驟S305和后續(xù)步驟中的處理。
[0113]隨后,塊切割程序104從主體部分796提取子內(nèi)容(S305)。如上所述,能夠基于從頭部部分794獲得的信息來識別內(nèi)容790中的子內(nèi)容的位置。
[0114]然后,塊切割程序104判斷在步驟S305中獲得的子內(nèi)容類型(S306 )。下面將解釋其中兩個類型的子內(nèi)容、內(nèi)容類型A和O作為子內(nèi)容被包括的情況。
[0115]將子內(nèi)容710的內(nèi)容類型假設(shè)為O。在這種情況下,通過對應(yīng)于內(nèi)容類型O的切割方法來切割內(nèi)容。具體而言,塊切割程序104通過固定長度塊方法來切割整個子內(nèi)容710,并且然后使復(fù)制判斷程序106執(zhí)行去重處理(S307)。
[0116]另一方面,將子內(nèi)容720的內(nèi)容類型假設(shè)為A。在這種情況下,通過對應(yīng)于內(nèi)容類型A的切割方法來切割內(nèi)容。具體而言,塊切割程序104從子內(nèi)容720提取頭部部分722、724作為單個塊,并使復(fù)制判斷程序106執(zhí)行去重處理(S308)。然后,塊切割程序104從子內(nèi)容720提取主體部分726,并且通過可變長度塊切割方法將其切割出來,并且然后使復(fù)制判斷程序106執(zhí)行去重處理(S309)。隨后,塊切割程序104從子內(nèi)容720提取尾部部分728,將其切割為單個塊,并且使復(fù)制判斷程序106執(zhí)行去重處理(S310)。
[0117]在對一個子內(nèi)容的切割處理終止之后,塊切割程序104檢查是否仍有尚未對其執(zhí)行切割處理的任何子內(nèi)容(S311);并且如果仍有任何子內(nèi)容,則塊切割程序104重復(fù)步驟S305和后續(xù)步驟中的處理。另一方面,如果在步驟S311中確定了對所有子內(nèi)容片的處理已經(jīng)終止,則塊切割程序104對內(nèi)容790執(zhí)行塊切割處理,使復(fù)制判斷程序106執(zhí)行去重處理(S312),并且然后終止內(nèi)容類型B的塊切割處理。
[0118](1-5)去重處理
[0119]接下來,將解釋由復(fù)制判斷程序106在例如步驟S206、S210、S303、S307、S308、S309中執(zhí)行的去重處理。下面將根據(jù)需要參考圖10中的去重處理的概要來解釋圖9中所示的去重處理。如圖9中所示,復(fù)制判斷程序106獲得從塊切割程序104提供的塊和塊信息(S401)。例如,該塊信息指諸如屬于相關(guān)塊的內(nèi)容的內(nèi)容ID、塊的位置(偏移)以及塊的長度的信息。
[0120]然后,復(fù)制判斷程序106計算在步驟S401中獲得的塊的指紋(fingerprint)(FP)(S402)。該指紋可以通過使用哈希函數(shù)來獲得。在此所使用的哈希函數(shù)是諸如SHA256的哈希函數(shù),其在密碼學(xué)上是足夠強大的,并且關(guān)于該哈希函數(shù),塊400的數(shù)據(jù)很可能由與塊400的該數(shù)據(jù)相關(guān)的哈希值唯一地確定。
[0121]隨后,復(fù)制判斷程序106搜索塊容器(container)表420并判斷在步驟S402中計算的指紋是否已被登記在塊容器表420中(S403)。指紋(FP) 423和容器ID425彼此相關(guān)聯(lián),并且在如圖10中所示的塊容器表420中被管理。復(fù)制判斷程序106判斷從塊400計算的指紋413是否被登記在塊容器表420的FP列423中。
[0122]返回參考圖9,如果在步驟S403中確定了所計算的指紋被登記在塊容器表420中,則復(fù)制判斷程序106從塊容器表420獲得對應(yīng)于所計算指紋的容器ID,并執(zhí)行步驟S406和后續(xù)步驟中的處理。另一方面,如果在步驟S403中確定了所計算的指紋尚未被登記在塊容器表420中,則復(fù)制判斷程序106執(zhí)行步驟S404和后續(xù)步驟中的處理。
[0123]如圖10中所示,已登記的塊在塊容器表420中被列出。換言之,如果在步驟S403中確定了所計算的指紋被登記在塊容器表420中,則不必將在步驟S401中獲得的塊重新存儲在去重卷110中,并且這意味著已經(jīng)成功地執(zhí)行了去重。另一方面,如果在步驟S403中確定了所計算的指紋尚未被登記在塊容器表420中,則必須將在步驟S401中獲得的塊重新存儲在去重卷110中。
[0124]返回參考圖9,去重程序106使容器準(zhǔn)備好將塊400存儲在塊容器表420中(S404)。容器意指其中聚集了某些塊的數(shù)據(jù)區(qū)塊(block)。塊被作為容器的一部分存儲在去重卷110中。每個容器由容器管理表430來管理。
[0125]如圖10中所示,容器管理表430是用于管理組成容器的塊的表格,并且其由指紋(FP)列433、容器偏移列437以及塊長度列439組成。指紋列322存儲相關(guān)塊的指紋。容器偏移列437將關(guān)于塊存儲位置的信息存儲在容器中。塊長度列439存儲關(guān)于塊長度的信息。此外,容器管理表430還可以存儲關(guān)于塊的其他信息。
[0126]返回參考圖9,去重程序106將塊數(shù)據(jù)寫入在步驟S404中準(zhǔn)備的容器440,并且還將關(guān)于塊的管理信息存儲在容器管理表430中(S405)。具體而言,去重程序106確定應(yīng)將塊存儲在容器440中的哪個位置處;并且將該位置的地址和塊長度存儲在容器管理表430中。相應(yīng)地,當(dāng)讀取塊時,去重程序106基于塊的指紋的值來搜索對應(yīng)于指紋的容器管理表430的條目,并讀取對應(yīng)于該指紋的容器偏移和塊長度。此外,去重程序106將指紋存儲在塊容器表420的FP列324中,并將用于存儲塊的容器的容器ID存儲在容器ID列425中。結(jié)果,可以對具有與塊400的塊內(nèi)容相同的塊內(nèi)容的塊執(zhí)行由后續(xù)去重處理進行的去重。
[0127]隨后,去重程序106將內(nèi)容管理信息登記在內(nèi)容管理表450中(S406 ),并終止去重處理。內(nèi)容管理表450由FP列453、內(nèi)容中的偏移列456、長度列459以及容器ID列455組成,如圖10中所示。FP列453存儲相關(guān)塊的指紋。內(nèi)容中的偏移列456將從內(nèi)容頂端開始的字節(jié)的數(shù)目存儲為相關(guān)塊在內(nèi)容中的位置。長度列459存儲塊長度。容器ID列455存儲相關(guān)塊所屬的容器的容器ID。當(dāng)通過使用內(nèi)容管理表450來讀取內(nèi)容的數(shù)據(jù)時,能夠用容器ID來識別存儲組成內(nèi)容的每個塊的容器,并且能夠基于內(nèi)容中的偏移和塊長度從內(nèi)容中讀取讀取目標(biāo)塊。
[0128]接下來,將參考圖11來解釋用于設(shè)置和改變內(nèi)容類型并設(shè)置和改變用于內(nèi)容或子內(nèi)容的塊切割方法的去重優(yōu)化屏幕1200。去重優(yōu)化屏幕1200被顯示于管理服務(wù)器108的顯示屏上,并且例如根據(jù)由操作員進行的輸入來實現(xiàn)參數(shù)設(shè)置。操作員在應(yīng)用方法字段1220的每個字段和相對于每個內(nèi)容類型1210的塊長度字段1230中輸入值??梢杂刹僮鲉T從先前設(shè)置的值中選擇每個字段的值。經(jīng)由去重優(yōu)化屏幕1200設(shè)置的諸如塊切割方法的設(shè)定值被存儲在圖6中的塊切割方法控制表900的相應(yīng)字段中。
[0129]例如,如果內(nèi)容類型1210是A,則操作員選擇指示對內(nèi)部結(jié)構(gòu)的分析的“基于結(jié)構(gòu)”作為應(yīng)用方法1220。此外,操作員選擇意指應(yīng)將頭部部分切割為一個塊的“單個實例”、意指應(yīng)通過可變長度切割方法從主體部分切割出塊的“可變長度”、以及意指應(yīng)將尾部部分切割為一個塊的“單個實例”。此外,如果內(nèi)容類型1210是C,則操作員選擇意指應(yīng)通過固定長度切割方法來切割塊的“固定長度”。此外,如果選擇了 “固定長度”,則操作員輸入固定值;并且如果選擇了“可變長度”,則操作員輸入在最大值與最小值之間的中間值。如果選擇了 “可變長度”,則將輸入的中間值的一半設(shè)置為最小值,并將中間值的兩倍大的值設(shè)置為最大值。此外,在“可變長度”的情況下,去重優(yōu)化屏幕1200可以是用于指定最小值和最大值的界面。
[0130]接下來,將參考圖12來解釋用于通過指定內(nèi)容來執(zhí)行去重處理并監(jiān)視去重的結(jié)果的去重試驗屏幕1400。去重試驗屏幕1400被顯示于管理服務(wù)器108的顯示屏上,并且例如根據(jù)由操作員進行的輸入來指定內(nèi)容。具體而言,操作員在內(nèi)容指定窗口 1440中指定目標(biāo)文件卷112中的文件。內(nèi)容類型字段1410顯示將應(yīng)用于內(nèi)容的塊切割方法。
[0131]當(dāng)按下去重命令按鈕1450時,對指定文件執(zhí)行去重處理,并在去重率顯示窗口1480和去重時間顯示窗口 1490中顯示執(zhí)行結(jié)果??梢燥@示除去重率或去重時間之外的關(guān)于去重的信息。此外,再次通過在內(nèi)容指定窗口 1440中指定內(nèi)容、改變應(yīng)用方法指定1420和塊長度指定1430的值以及按下去重命令按鈕1450來計算去重率和去重時間。通過調(diào)用復(fù)制判斷程序116來計算去重率和去重時間。
[0132]如果按下恢復(fù)命令按鈕1460,則指定內(nèi)容被從去重卷110提取,且然后再次被存儲在文件卷112中。
[0133]事實上,如果塊切割方法和塊長度指定在備份生成之間不同,則去重率減小。當(dāng)調(diào)節(jié)用于應(yīng)用塊切割方法的方法時,利用去重試驗屏幕1400上的塊切割方法和塊長度的改變。經(jīng)由去重試驗屏幕1400設(shè)置的例如塊切割方法和塊長度的設(shè)定值被存儲在塊切割方法控制表900中的相應(yīng)字段中。
[0134](1-6)本實施例的有益效果
[0135]根據(jù)本實施例,備份裝置100將從第一備份服務(wù)器150或第二備份服務(wù)器152提供的備份文件識別為內(nèi)容,將該內(nèi)容切割成一個或多個塊,并且如上所述地管理切割出的塊的副本狀態(tài)。當(dāng)切割塊時,基于指示內(nèi)容類型的內(nèi)容類型識別信息,備份裝置100選擇用于切割內(nèi)容的方法,無論是固定長度塊切割方法、可變長度塊切割方法還是單個實例塊切割方法。結(jié)果,能夠通過根據(jù)內(nèi)容類型來選擇塊切割方法并用所選方法來切割塊而增強去重處理的去重效率和處理效率。
[0136](2)第二實施例
[0137](2-1)計算機系統(tǒng)的硬件配置
[0138]接下來,將參考圖13來解釋計算機系統(tǒng)2的配置。計算機系統(tǒng)2被配置為在線(in-line)型去重系統(tǒng)。在線型去重系統(tǒng)意指對從主機系統(tǒng)提供的數(shù)據(jù)立即執(zhí)行去重處理。具體而言,如圖13中所示,計算機系統(tǒng)2的備份裝置200與根據(jù)第一實施例的備份裝置100之間的差別在于在備份裝置200中不需要備份卷。備份裝置200裝配有在線文件服務(wù)器254而不是備份裝置100的文件服務(wù)器154以及在線內(nèi)容遷移程序202而不是內(nèi)容遷移程序 102。
[0139]響應(yīng)于來自第一備份服務(wù)器150或第二備份服務(wù)器152的用以存儲備份文件的請求,在線文件服務(wù)器254向在線內(nèi)容遷移程序202提供備份文件。然后,在線內(nèi)容遷移程序202將已從在線文件服務(wù)器254提供的備份文件作為內(nèi)容提供給塊切割程序104。
[0140]塊切割程序104和復(fù)制判斷程序106的功能和處理與第一實施例中的那些相同,已省略了其詳細(xì)說明。
[0141 ] (2-2)本實施例的有益效果
[0142]由于根據(jù)如上所述的本實施例在備份裝置200中不需要備份卷,所以能夠減少存儲系統(tǒng)的資源。而且,由于能夠在將諸如備份文件的數(shù)據(jù)存儲在備份卷中的情況下立即執(zhí)行去重處理,所以能夠縮短備份處理的處理時間。
[0143](3)第三實施例
[0144](3-1)計算機系統(tǒng)的硬件配置
[0145]將參考圖14來解釋根據(jù)本實施例的計算機系統(tǒng)3的配置。計算機系統(tǒng)3與根據(jù)第一實施例的計算機系統(tǒng)I之間的差別是計算機系統(tǒng)3與用于備份數(shù)據(jù)的備份裝置300分離地裝配有用于執(zhí)行去重處理的去重裝置301。
[0146]備份裝置300包括備份卷112、處理器114、存儲器116、0S120以及本地文件系統(tǒng)122。此外,被存儲在存儲器116中的軟件包括例如內(nèi)容遷移程序302和塊切割程序304。
[0147]內(nèi)容遷移程序302讀取被存儲在備份卷112中的備份文件,并將其作為內(nèi)容提供給塊切割程序304。而且,塊切割程序304從自內(nèi)容遷移程序302提供的內(nèi)容中切割出作為去重處理單元的塊。塊切割程序304通過使用依賴于內(nèi)容類型的最佳塊切割方法來從內(nèi)容切割出塊。由于由塊切割程序103進行的塊切割處理是與在第一實施例中的處理相同的處理,所以已省略其詳細(xì)說明。由塊切割程序304切割出的塊經(jīng)由LAN140被提供給去重裝置301的復(fù)制判斷程序306。
[0148]去重裝置301包括去重卷110、處理器114、存儲器116、0S120以及本地文件系統(tǒng)122。此外,被存儲在存儲器116中的軟件包括例如復(fù)制判斷程序306。
[0149]復(fù)制判斷程序306檢查從備份裝置300的塊切割程序304提供的塊的副本狀態(tài),執(zhí)行用于消除重復(fù)塊的處理,并將新塊存儲在去重卷110中。
[0150]管理服務(wù)器308連接到備份裝置300和去重裝置301。管理服務(wù)器308經(jīng)由管理網(wǎng)絡(luò)334來監(jiān)視塊切割程序304的操作參數(shù)設(shè)置和操作狀態(tài)。而且,管理服務(wù)器308經(jīng)由管理網(wǎng)絡(luò)336來監(jiān)視復(fù)制判斷程序306的操作參數(shù)設(shè)置和操作狀態(tài)。
[0151 ] (3-3)本實施例的有益效果
[0152]根據(jù)本實施例,如上所述,備份裝置300裝配有塊切割程序304,并且去重設(shè)備301裝配有復(fù)制判斷程序306,使得由分離設(shè)備來執(zhí)行塊切割處理和復(fù)制判斷處理。結(jié)果,不同設(shè)備的處理器分別地執(zhí)行塊切割處理和復(fù)制判斷處理,使得能夠更高效地執(zhí)行去重處理。
[0153](4)其他實施例
[0154]上述實施例已描述了使用處理器114作為控制單元來控制關(guān)于根據(jù)此類實施例的各種功能的全部處理的情況;然而,本發(fā)明不限于那些實施例,并且可以與處理器114分離地提供用于作為此類控制單元來執(zhí)行處理的硬件和/或軟件。即使提供了此類硬件和/或軟件,也能夠獲得與上述實施例的那些益處相同的有益效果。
[0155]此外,例如,在本說明書中由備份裝置100或其他設(shè)備進行的處理的各步驟不一定必須按照在相關(guān)流程圖中所述的順序被按序處理。換言之,可以并行地執(zhí)行由備份裝置100或其他設(shè)備進行的處理中的各步驟,即使它們是不同的處理也是如此。
[0156]此外,可以將例如包含在備份裝置100中的諸如CPU、ROM以及RAM的硬件創(chuàng)建為計算機程序,用于實現(xiàn)與諸如上述備份裝置100的每個部件的功能相同的功能。此外,提供了在其中存儲了此類計算機程序的存儲介質(zhì)。
[0157]工業(yè)實用性
[0158]本發(fā)明可以被應(yīng)用于多種存儲裝置以根據(jù)數(shù)據(jù)的類型來執(zhí)行去重處理。
[0159]附圖標(biāo)記列表
[0160]100 備份裝置
[0161]102 內(nèi)容遷移程序
[0162]104 塊切割程序
[0163]106 復(fù)制判斷程序
[0164]108 管理服務(wù)器
[0165]110 去重卷
[0166]112 備份卷
[0167]114 處理器
[0168]116 存儲器
[0169]122 本地文件系統(tǒng)
[0170]150 第一備份服務(wù)器
[0171]152 第二備份服務(wù)器
[0172]160 本地卷
[0173]164 客戶端
[0174]170 存儲裝置
【權(quán)利要求】
1.一種存儲裝置,用于響應(yīng)于來自經(jīng)由網(wǎng)絡(luò)被連接到所述存儲裝置的主機系統(tǒng)的內(nèi)容存儲請求而將內(nèi)容存儲在備份卷中,所述存儲裝置包括: 塊切割單元,用于將所述內(nèi)容切割成一個或多個塊;以及 復(fù)制判斷單元,用于管理已經(jīng)由所述塊切割單元切割出的所述一個或多個塊的副本狀態(tài); 其中所述塊切割單元基于指示所述內(nèi)容的類型的內(nèi)容類型識別信息來選擇用于切割出所述塊的方法。
2.根據(jù)權(quán)利要求1所述的存儲裝置,其中如果基于所述內(nèi)容類型識別信息而確定了所述內(nèi)容是包括子內(nèi)容的內(nèi)容,則所述塊切割單元從所述內(nèi)容切割出所述子內(nèi)容,并且基于被包括在所述子內(nèi)容中的所述內(nèi)容類型識別信息來選擇用于所述子內(nèi)容的塊切割方法。
3.根據(jù)權(quán)利要求2所述的存儲裝置,其中如果所述內(nèi)容的內(nèi)容長度等于或短于指定長度,則所述塊切割單元選擇將所述內(nèi)容切割為單個塊的單個實例方法。
4.根據(jù)權(quán)利要求2所述的存儲裝置,其中如果基于所述內(nèi)容類型識別信息而確定了所述內(nèi)容是附加數(shù)據(jù)寫入型內(nèi)容,則所述塊切割單元選擇將所述內(nèi)容切割成具有指定長度的塊的固定長度塊方法。
5.根據(jù)權(quán)利要求2所述的存儲裝置,其中如果基于所述內(nèi)容類型識別信息而確定了所述內(nèi)容是數(shù)據(jù)插入型內(nèi)容,則所述塊切割單元選擇在被包括在所述內(nèi)容中的具有可變長度的數(shù)據(jù)段的每個邊界位置處切割出所述塊的可變長度塊方法。
6.根據(jù)權(quán)利要求2所述的存儲裝置,還包括塊切割方法管理表,所述塊切割方法管理表用于通過將用所述內(nèi)容類型識別信息所識別的內(nèi)容類型與所述塊切割方法相關(guān)聯(lián)來管理所述內(nèi)容類型和所述塊切割方法; 其中所述塊切割單元獲得被包括在所述內(nèi)容中的所述內(nèi)容類型識別信息,參考所述塊切割方法管理表,并且指定與所述內(nèi)容類型識別信息對應(yīng)的所述塊切割方法。
7.根據(jù)權(quán)利要求6所述的存儲裝置,其中與所述內(nèi)容類型識別信息對應(yīng)的所述塊切割方法是將所述內(nèi)容切割為單個塊的單個實例方法、將所述內(nèi)容切割成具有指定長度的塊的固定長度塊方法以及在被包括在所述內(nèi)容中的具有可變長度的數(shù)據(jù)段的每個邊界位置處切割出所述塊的可變長度塊方法。
8.根據(jù)權(quán)利要求2所述的存儲裝置,其中所述塊切割單元: 選擇將被從所述內(nèi)容切割出的所述塊的最小長度;以及 從所述內(nèi)容切割出所述塊,使得所述塊將具有等于或長于選擇的所述最小長度的長度。
9.根據(jù)權(quán)利要求2所述的存儲裝置,其中所述塊切割單元: 選擇將被從所述內(nèi)容切割出的所述塊的最大長度;以及 從所述內(nèi)容切割出所述塊,使得所述塊具有等于或短于選擇的所述最大長度的長度。
10.一種使用存儲裝置的副本數(shù)據(jù)檢測方法,所述存儲裝置用于響應(yīng)于來自經(jīng)由網(wǎng)絡(luò)連接到所述存儲裝置的主機系統(tǒng)的內(nèi)容存儲請求而將內(nèi)容存儲在備份卷中,所述副本數(shù)據(jù)檢測方法包括: 由塊切割單元執(zhí)行的第一步驟,所述第一步驟將所述內(nèi)容切割成一個或多個塊;以及 由復(fù)制判斷單元執(zhí)行的第二步驟,所述第二步驟管理已經(jīng)在所述第一步驟中被切割出的所述一個或多個塊的副本狀態(tài); 其中在所述第一步驟中,所述塊切割單元基于指示所述內(nèi)容的類型的內(nèi)容類型識別信息來選擇用于切割出所述塊的方法。
11.根據(jù)權(quán)利要求10所述的副本數(shù)據(jù)檢測方法,還包括如果基于所述內(nèi)容類型識別信息而確定了所述內(nèi)容是包括子內(nèi)容的內(nèi)容,則由所述塊切割單元執(zhí)行的第三步驟,所述第三步驟從所述內(nèi)容切割出所述子內(nèi)容,并且基于被包括在所述子內(nèi)容中的所述內(nèi)容類型識別信息來選擇用于所述子內(nèi)容的塊切割方法。
12.根據(jù)權(quán)利要求11所述的副本數(shù)據(jù)檢測方法,還包括如果所述內(nèi)容的內(nèi)容長度等于或短于指定長度,則由所述塊切割單元執(zhí)行的第四步驟,所述第四步驟選擇將所述內(nèi)容切割為單個塊的單個實例方法。
13.根據(jù)權(quán)利要求11所述的副本數(shù)據(jù)檢測方法,還包括如果基于所述內(nèi)容類型識別信息而確定了所述內(nèi)容是附加數(shù)據(jù)寫入型內(nèi)容,則由所述塊切割單元執(zhí)行的第五步驟,所述第五步驟選擇將所述內(nèi)容切割成具有指定長度的塊的固定長度塊方法。
14.根據(jù)權(quán)利要求11所述的副本數(shù)據(jù)檢測方法,還包括如果基于所述內(nèi)容類型識別信息而確定了所述內(nèi)容是數(shù)據(jù)插入型內(nèi)容,則由所述塊切割單元執(zhí)行的第六步驟,所述第六步驟選擇在被包括在所述內(nèi)容中的具有可變長度的數(shù)據(jù)段的每個邊界位置處切割出所述塊的可變長度塊方法。
15.根據(jù)權(quán)利 要求11所述的副本數(shù)據(jù)檢測方法,其中所述塊切割單元包括塊切割方法管理表,所述塊切割方法管理表用于通過將用所述內(nèi)容類型識別信息所識別的內(nèi)容類型與所述塊切割方法相關(guān)聯(lián)來管理所述內(nèi)容類型和所述塊切割方法;并且 其中所述副本數(shù)據(jù)檢測方法還包括由所述塊切割單元執(zhí)行的第七步驟,所述第七步驟獲得被包括在所述內(nèi)容中的所述內(nèi)容類型識別信息,參考所述塊切割方法管理表,并且指定與所述內(nèi)容類型識別信息對應(yīng)的所述塊切割方法。
16.根據(jù)權(quán)利要求15所述的副本數(shù)據(jù)檢測方法,其中與所述內(nèi)容類型識別信息對應(yīng)的所述塊切割方法是將所述內(nèi)容切割為單個塊的單個實例方法、將所述內(nèi)容切割成具有指定長度的塊的固定長度塊方法以及在被包括在所述內(nèi)容中的具有可變長度的數(shù)據(jù)段的每個邊界位置處切割出所述塊的可變長度塊方法。
17.根據(jù)權(quán)利要求11所述的副本數(shù)據(jù)檢測方法,還包括由所述塊切割單元執(zhí)行的第八步驟,所述第八步驟選擇將被從所述內(nèi)容切割出的所述塊的最小長度,并且從所述內(nèi)容切割出所述塊,使得所述塊將具有等于或長于選擇的所述最小長度的長度。
18.根據(jù)權(quán)利要求11所述的副本數(shù)據(jù)檢測方法,還包括由所述塊切割單元執(zhí)行的第九步驟,所述第九步驟選擇將被從所述內(nèi)容切割出的所述塊的最大長度,并且從所述內(nèi)容切割出所述塊,使得所述塊將具有等于或短于選擇的所述最大長度的長度。
【文檔編號】G06F11/14GK103917960SQ201180071682
【公開日】2014年7月9日 申請日期:2011年8月19日 優(yōu)先權(quán)日:2011年8月19日
【發(fā)明者】櫻庭健年, 堀泰三, 田代直光 申請人:株式會社日立制作所, 株式會社日立信息通信工程
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1