專利名稱:在包含源和目標(biāo)的分布式環(huán)境中進(jìn)行重復(fù)數(shù)據(jù)刪除的集成方法
技術(shù)領(lǐng)域:
本發(fā)明一般地涉及在數(shù)據(jù)存儲系統(tǒng)內(nèi)執(zhí)行的數(shù)據(jù)存儲和維護(hù)操作。更具體地說, 本發(fā)明涉及一種用于通過在數(shù)據(jù)源和目標(biāo)兩者上執(zhí)行重復(fù)數(shù)據(jù)刪除(deduplication)活動,有效地在存儲管理系統(tǒng)中執(zhí)行重復(fù)數(shù)據(jù)刪除的集成方法。
背景技術(shù):
重復(fù)數(shù)據(jù)刪除(消除冗余數(shù)據(jù)的過程)正在成為在存儲系統(tǒng)中部署的重要技術(shù)。 重復(fù)數(shù)據(jù)刪除可以減少所需的存儲容量,因?yàn)閮H存儲每個唯一的數(shù)據(jù)部分。在典型的配置中,諸如存儲管理服務(wù)器或VTL (虛擬磁帶庫)之類的基于盤的存儲系統(tǒng)能夠檢測冗余數(shù)據(jù) “區(qū)” (extent)(也稱為“塊” (chunk))并且通過避免對這樣的區(qū)進(jìn)行冗余存儲來減少重復(fù)。 例如,重復(fù)數(shù)據(jù)刪除存儲系統(tǒng)可以將文件A分為數(shù)據(jù)塊a_h,檢測到數(shù)據(jù)塊b和e為冗余數(shù)據(jù),并且將所述冗余數(shù)據(jù)塊僅存儲一次。所述冗余可能在文件A中出現(xiàn),也可能在存儲系統(tǒng)中存儲的其他文件中出現(xiàn)。存在對數(shù)據(jù)對象進(jìn)行重復(fù)數(shù)據(jù)刪除的已知技術(shù)。但是,現(xiàn)有的重復(fù)數(shù)據(jù)刪除解決方案不允許共享在源或目標(biāo)上執(zhí)行的重復(fù)數(shù)據(jù)刪除操作所產(chǎn)生的數(shù)據(jù)塊。客戶被迫部署低效且不完整的重復(fù)數(shù)據(jù)刪除設(shè)備(appliance),或者在無法共享已執(zhí)行重復(fù)數(shù)據(jù)刪除的數(shù)據(jù)的兩個產(chǎn)品上部署重復(fù)數(shù)據(jù)刪除。
發(fā)明內(nèi)容
本發(fā)明的一方面包括使用執(zhí)行重復(fù)數(shù)據(jù)刪除的集成方法解決上述問題的解決方案。在一個實(shí)施例中,一種系統(tǒng)配置允許在源(客戶端)和目標(biāo)(服務(wù)器)重復(fù)數(shù)據(jù)刪除活動之間進(jìn)行無縫切換(如在此互換地使用那樣,客戶端為源,服務(wù)器為目標(biāo))。所述切換可以在文件級或節(jié)點(diǎn)級(節(jié)點(diǎn)是目標(biāo)存儲服務(wù)器內(nèi)看到的來自源客戶端的所有數(shù)據(jù)的表示) 上發(fā)生。因此,客戶端節(jié)點(diǎn)A可以被配置為執(zhí)行源端重復(fù)數(shù)據(jù)刪除,而客戶端節(jié)點(diǎn)B將被配置為執(zhí)行目標(biāo)端重復(fù)數(shù)據(jù)刪除。此外,由目標(biāo)或源上執(zhí)行的重復(fù)數(shù)據(jù)刪除活動產(chǎn)生的塊可以在多個節(jié)點(diǎn)之間以及在不同文件之間重復(fù)使用。在本發(fā)明的一個實(shí)現(xiàn)中,此集成重復(fù)數(shù)據(jù)刪除功能是通過部署同一重復(fù)數(shù)據(jù)刪除過程和在源和目標(biāo)之間共享重復(fù)數(shù)據(jù)刪除索引來實(shí)現(xiàn)的。諸如壓縮和加密之類的任何數(shù)據(jù)轉(zhuǎn)換在數(shù)據(jù)塊的指紋識別(fingerprinting)和散列識別之后執(zhí)行,以確保在整個存儲管理系統(tǒng)的任何部分上存儲的數(shù)據(jù)塊都相互完全相同。在其他實(shí)現(xiàn)中,提供了判定重復(fù)數(shù)據(jù)刪除位置的策略,以允許對將在客戶端或者服務(wù)器環(huán)境中執(zhí)行的重復(fù)數(shù)據(jù)刪除的范圍進(jìn)行自動的和粒度的定義。盡管本公開針對客戶端和服務(wù)器描述了本發(fā)明的各方面,但是本發(fā)明并不限于客戶端-服務(wù)器實(shí)現(xiàn)。相反,所公開的操作可以應(yīng)用于涉及源和目標(biāo)之間已執(zhí)行重復(fù)數(shù)據(jù)刪除的數(shù)據(jù)的存儲和檢索的任何解決方案。
本發(fā)明的一個實(shí)施例允許在分布式存儲管理系統(tǒng)中的源位置或目標(biāo)位置上執(zhí)行數(shù)據(jù)文件重復(fù)數(shù)據(jù)刪除。所述存儲管理系統(tǒng)具有與目標(biāo)計算系統(tǒng)相連的源計算系統(tǒng),以及位于所述目標(biāo)計算系統(tǒng)內(nèi)的目標(biāo)數(shù)據(jù)存儲。所述存儲管理系統(tǒng)進(jìn)一步維護(hù)用于跟蹤在所述目標(biāo)數(shù)據(jù)存儲內(nèi)存儲的已執(zhí)行重復(fù)數(shù)據(jù)刪除的數(shù)據(jù)塊的共享索引。在一個實(shí)施例中,所述共享索引作為數(shù)據(jù)庫進(jìn)行共享,并且可由源計算機(jī)器和目標(biāo)計算機(jī)器中的每個進(jìn)行訪問。替代地,共享索引可通過在源和所述目標(biāo)之間實(shí)現(xiàn)數(shù)據(jù)塊信息的通信的客戶端-服務(wù)器協(xié)議進(jìn)行訪問。提供了重復(fù)數(shù)據(jù)刪除過程以對要存儲在目標(biāo)數(shù)據(jù)存儲內(nèi)的數(shù)據(jù)塊執(zhí)行重復(fù)數(shù)據(jù)刪除。重復(fù)數(shù)據(jù)刪除是通過在目標(biāo)計算系統(tǒng)或源計算系統(tǒng)上執(zhí)行重復(fù)數(shù)據(jù)刪除指令來執(zhí)行的。因此,使用重復(fù)數(shù)據(jù)刪除過程將數(shù)據(jù)文件轉(zhuǎn)換為一組已執(zhí)行重復(fù)數(shù)據(jù)刪除的數(shù)據(jù)塊。在重復(fù)數(shù)據(jù)刪除之后,該組已執(zhí)行重復(fù)數(shù)據(jù)刪除的數(shù)據(jù)塊存儲在目標(biāo)數(shù)據(jù)存儲內(nèi),并且在共享索引中更新該組已執(zhí)行重復(fù)數(shù)據(jù)刪除的數(shù)據(jù)塊的重復(fù)數(shù)據(jù)刪除信息。該組已執(zhí)行重復(fù)數(shù)據(jù)刪除的數(shù)據(jù)塊可以在以后恢復(fù)到源。進(jìn)一步的實(shí)施例使用指紋識別算法定義數(shù)據(jù)塊,但是只要源和目標(biāo)使用同一種機(jī)制,被選擇定義數(shù)據(jù)塊的任何機(jī)制都將是可行的。在一個實(shí)施例中,所述重復(fù)數(shù)據(jù)刪除過程包括用于將數(shù)據(jù)分為可變大小塊的指紋識別算法和用于識別源計算系統(tǒng)和所述目標(biāo)計算系統(tǒng)中的每個上的重復(fù)數(shù)據(jù)塊的散列算法。替代地,所述重復(fù)數(shù)據(jù)刪除過程可以包括用于在源計算系統(tǒng)上執(zhí)行的重復(fù)數(shù)據(jù)刪除活動的第一組指紋識別和散列算法,以及用于在目標(biāo)計算系統(tǒng)上執(zhí)行的重復(fù)數(shù)據(jù)刪除活動的第二組指紋識別和散列算法。此外在進(jìn)一步的實(shí)施例中,數(shù)據(jù)轉(zhuǎn)換在指紋識別和散列識別之后執(zhí)行。這些數(shù)據(jù)轉(zhuǎn)換可以包括壓縮和加密中的一項(xiàng)或兩項(xiàng)。響應(yīng)于將所述一組已執(zhí)行重復(fù)數(shù)據(jù)刪除的數(shù)據(jù)塊恢復(fù)到源計算機(jī)器,可由源計算機(jī)器針對每個數(shù)據(jù)塊撤消所述數(shù)據(jù)轉(zhuǎn)換。替代地,在將所述一組已執(zhí)行重復(fù)數(shù)據(jù)刪除的數(shù)據(jù)塊恢復(fù)到源計算機(jī)器之前,可由目標(biāo)計算機(jī)器撤消所述轉(zhuǎn)換。本發(fā)明的另一實(shí)施例根據(jù)使用選定策略在分布式存儲管理系統(tǒng)中的源位置或目標(biāo)位置上執(zhí)行數(shù)據(jù)文件的重復(fù)數(shù)據(jù)刪除。該存儲管理系統(tǒng)還被配置為支持與目標(biāo)計算系統(tǒng)相連的源計算系統(tǒng),其中目標(biāo)數(shù)據(jù)存儲位于目標(biāo)計算系統(tǒng)內(nèi),并且存儲在目標(biāo)數(shù)據(jù)存儲中的數(shù)據(jù)的重復(fù)數(shù)據(jù)刪除信息通過共享索引進(jìn)行管理。在該實(shí)施例中,針對將要存儲在目標(biāo)數(shù)據(jù)存儲內(nèi)的數(shù)據(jù)文件的重復(fù)數(shù)據(jù)刪除選擇散列算法。在該實(shí)施例中,應(yīng)用從多個已定義策略中選定的策略以判定重復(fù)數(shù)據(jù)刪除活動在源計算機(jī)器上或者在目標(biāo)計算機(jī)器上的位置。使用選定的重復(fù)數(shù)據(jù)刪除過程在所判定的位置上對數(shù)據(jù)文件執(zhí)行重復(fù)數(shù)據(jù)刪除,并且在共享索引內(nèi)更新數(shù)據(jù)文件的重復(fù)數(shù)據(jù)刪除信息。在進(jìn)一步的實(shí)施例中,除了其他因素之外,可以根據(jù)時間、系統(tǒng)負(fù)荷、文件類型、文件特征、客戶端節(jié)點(diǎn)和策略域來選擇所述選定策略。
現(xiàn)在將僅通過舉例,參考下面的附圖中所示的優(yōu)選實(shí)施例對本發(fā)明進(jìn)行描述,這些附圖是圖1A-1C示出在現(xiàn)有技術(shù)中公知的分別在源、目標(biāo)和設(shè)備上執(zhí)行重復(fù)數(shù)據(jù)刪除活動的存儲管理系統(tǒng)的示例配置;圖2A示出根據(jù)本發(fā)明的一個實(shí)施例在源上執(zhí)行集成重復(fù)數(shù)據(jù)刪除活動的存儲管理系統(tǒng)的示例配置;圖2B示出根據(jù)本發(fā)明的一個實(shí)施例在目標(biāo)上執(zhí)行集成重復(fù)數(shù)據(jù)刪除活動的存儲管理系統(tǒng)示例配置;圖3示出顯示根據(jù)本發(fā)明的一個實(shí)施例如何在源上執(zhí)行重復(fù)數(shù)據(jù)刪除活動的流程圖;以及圖4示出顯示根據(jù)本發(fā)明的一個實(shí)施例在存儲系統(tǒng)內(nèi)的源和目標(biāo)上執(zhí)行重復(fù)數(shù)據(jù)刪除的示例操作的流程圖。
具體實(shí)施例方式本發(fā)明的各種實(shí)施例實(shí)現(xiàn)了對存儲管理系統(tǒng)內(nèi)發(fā)生的重復(fù)數(shù)據(jù)刪除活動的優(yōu)化控制?,F(xiàn)有的存儲系統(tǒng)只在一個位置上執(zhí)行重復(fù)數(shù)據(jù)刪除活動。與之相比,此處公開的配置實(shí)現(xiàn)了可以在數(shù)據(jù)源位置和數(shù)據(jù)目標(biāo)位置中的任何一個或兩個上執(zhí)行的集成和優(yōu)化的重復(fù)數(shù)據(jù)刪除過程。在現(xiàn)有的存儲管理配置中,通過唯一地在源、目標(biāo)或外部存儲設(shè)備上執(zhí)行重復(fù)數(shù)據(jù)刪除活動產(chǎn)生了若干折衷。本發(fā)明的各種實(shí)施例通過允許在源或目標(biāo)上執(zhí)行重復(fù)數(shù)據(jù)刪除過程,解決了這些限制。這使得能夠成功地存儲、查找和使用在存儲系統(tǒng)中通過客戶端或服務(wù)器端重復(fù)數(shù)據(jù)刪除產(chǎn)生的匹配數(shù)據(jù)塊。本發(fā)明的各種實(shí)施例進(jìn)一步提供了響應(yīng)于多種因素,對重復(fù)數(shù)據(jù)刪除活動的增強(qiáng)控制。整個存儲管理系統(tǒng)中執(zhí)行的重復(fù)數(shù)據(jù)刪除活動的位置可以根據(jù)特定的策略、文件類型、條件或其他已定義的設(shè)置在粒度級別上進(jìn)行控制。在用于對數(shù)據(jù)對象執(zhí)行重復(fù)數(shù)據(jù)刪除的典型的重復(fù)數(shù)據(jù)刪除過程中,首先使用諸如Rabin指紋之類的方法將對象分為多個數(shù)據(jù)塊。通過使用諸如MD5或SHA-I之類的散列函數(shù)產(chǎn)生每個數(shù)據(jù)塊的散列值,然后將該值與系統(tǒng)上已存儲的塊的值進(jìn)行比較,來檢測冗余數(shù)據(jù)塊。這些已存儲塊的散列值在索引中進(jìn)行維護(hù)。如果識別到冗余塊,則使用匹配塊的指針替換此塊。在客戶端-服務(wù)器存儲管理系統(tǒng)中,重復(fù)數(shù)據(jù)刪除活動的位置(即,識別和刪除冗余數(shù)據(jù)塊的位置)取決于特定系統(tǒng)的配置。使用現(xiàn)有配置,可以在數(shù)據(jù)源(客戶端)、數(shù)據(jù)目標(biāo)(存儲服務(wù)器)、或與存儲服務(wù)器相連的重復(fù)數(shù)據(jù)刪除設(shè)備上執(zhí)行重復(fù)數(shù)據(jù)刪除。與每個重復(fù)數(shù)據(jù)刪除操作位置關(guān)聯(lián)的若干優(yōu)點(diǎn)和缺點(diǎn)如下在數(shù)據(jù)源上執(zhí),行重ff數(shù)據(jù)刪除將數(shù)據(jù)傳輸?shù)侥繕?biāo)之前,在數(shù)據(jù)源上執(zhí)行重復(fù)數(shù)據(jù)刪除活動的一些優(yōu)點(diǎn)包括節(jié)約網(wǎng)絡(luò);節(jié)約數(shù)據(jù)存儲;以及在源硬件上而非在目標(biāo)上花費(fèi)CPU周期。一些缺點(diǎn)包括可能出現(xiàn)導(dǎo)致不可恢復(fù)數(shù)據(jù)的散列沖突;即使源硬件正用于其他目的或者目標(biāo)具有可用周期, 也需要在源上使用CPU周期;以及已在目標(biāo)存儲服務(wù)器上存儲的遺留數(shù)據(jù)不能被重復(fù)數(shù)據(jù)刪除利用。圖IA示出現(xiàn)有技術(shù)中公知的在源位置上執(zhí)行重復(fù)數(shù)據(jù)刪除活動的存儲管理系統(tǒng)100的示例配置。所述存儲系統(tǒng)包括客戶端(數(shù)據(jù)源)120和服務(wù)器(數(shù)據(jù)目標(biāo))140,它們通過網(wǎng)絡(luò)130相連。在所述存儲系統(tǒng)的正常操作過程中,數(shù)據(jù)從諸如客戶端120之類的各種客戶端節(jié)點(diǎn)傳輸?shù)椒?wù)器140內(nèi)的數(shù)據(jù)存儲庫145以進(jìn)行備份、歸檔、遷移或其他管理。如圖所示,文件105由客戶端120攝取。當(dāng)讀取文件105時,該文件被分為若干區(qū)塊(block)或塊,示為塊1”110、1”111、1”112、1”113、“(”114。在該示例中,塊 A 110與塊A 113重復(fù),且塊B 111與塊B112重復(fù)。在該操作中,客戶端120通常不會等到整個文件被攝取就會將塊發(fā)送到服務(wù)器 140(取決于客戶端配置,產(chǎn)生一個或僅少數(shù)幾個塊的特別小的文件除外)??蛻舳?20從一文件位置讀取數(shù)據(jù),或者當(dāng)諸如電子郵件或數(shù)據(jù)庫服務(wù)器之類的第三方應(yīng)用在存儲器緩沖區(qū)中提供數(shù)據(jù)時讀取數(shù)據(jù)。當(dāng)客戶端120讀取文件105的數(shù)據(jù)時,重復(fù)數(shù)據(jù)刪除(DEDUP) 過程122執(zhí)行指紋識別、散列、識別重復(fù)數(shù)據(jù)塊以及將唯一的數(shù)據(jù)塊發(fā)送到服務(wù)器。因此, 客戶端120將在任何已執(zhí)行重復(fù)數(shù)據(jù)刪除的相關(guān)數(shù)據(jù)最終傳輸?shù)酱鎯旆?wù)器140之前執(zhí)行文件105的重復(fù)數(shù)據(jù)刪除。盡管圖IA示出對文件105執(zhí)行帶內(nèi)重復(fù)數(shù)據(jù)刪除(在將文件攝入客戶端數(shù)據(jù)存儲期間執(zhí)行重復(fù)數(shù)據(jù)刪除),但是本領(lǐng)域的技術(shù)人員將理解,也可以使用類似的客戶端重復(fù)數(shù)據(jù)刪除操作對文件105執(zhí)行帶外重復(fù)數(shù)據(jù)刪除(在將文件攝入客戶端之后執(zhí)行重復(fù)數(shù)據(jù)刪除)。數(shù)據(jù)塊151、152、153組示出通過網(wǎng)絡(luò)130將哪些數(shù)據(jù)塊從客戶端傳輸?shù)酱鎯Ψ?wù)器。由于文件105的塊在客戶端系統(tǒng)120上執(zhí)行了重復(fù)數(shù)據(jù)刪除操作,因此僅將三個已執(zhí)行重復(fù)數(shù)據(jù)刪除的塊,而非原始文件105中的五個塊傳輸?shù)酱鎯Ψ?wù)器140。但是如圖所示,數(shù)據(jù)塊A’ 161和C’ 162已存在于存儲服務(wù)器數(shù)據(jù)存儲145上。在該示例中,塊A’ 161 和A 151、以及C’162和C 153分別是包含相同內(nèi)容的重復(fù)塊。因?yàn)槲丛诜?wù)器上執(zhí)行重復(fù)數(shù)據(jù)刪除操作,所以塊A’ 161和C’ 162會與新添加到數(shù)據(jù)存儲的塊A 163、B 164和C 165 并存。在數(shù)據(jù)目標(biāo)上執(zhí)行重復(fù)數(shù)據(jù)刪除在數(shù)據(jù)目標(biāo)上(S卩,在存儲服務(wù)器上)執(zhí)行重復(fù)數(shù)據(jù)刪除活動的一些優(yōu)點(diǎn)包括節(jié)約存儲服務(wù)器上的數(shù)據(jù)存儲;以及在目標(biāo)硬件上而非源上花費(fèi)CPU周期。一些缺點(diǎn)包括 在將數(shù)據(jù)傳輸?shù)侥繕?biāo)時,必須在網(wǎng)絡(luò)上發(fā)送冗余、重復(fù)的數(shù)據(jù);即使可以在源上CPU周期可用,也要在目標(biāo)上花費(fèi)CPU周期。圖IB示出現(xiàn)有技術(shù)中公知的在目標(biāo)位置上執(zhí)行重復(fù)數(shù)據(jù)刪除活動的存儲管理系統(tǒng)100的示例配置。客戶端120、目標(biāo)140和網(wǎng)絡(luò)連接130的配置與圖IA中示出的配置類似。同樣,將文件105輸入客戶端120。使用目標(biāo)端重復(fù)數(shù)據(jù)刪除,客戶端120甚至可能不知道文件105由塊構(gòu)成,因?yàn)樵撐募蓛H作為比特流125在客戶端內(nèi)進(jìn)行處理。客戶端120不會在被發(fā)送到目標(biāo)140的文件內(nèi)插入任何類型的塊分割符。文件 150的副本以未執(zhí)行重復(fù)數(shù)據(jù)刪除操作的形式通過網(wǎng)絡(luò)130傳輸?shù)侥繕?biāo)存儲服務(wù)器存儲庫 140,這意味著傳輸最初輸入客戶端(10 的整個文件。因此,被傳輸文件150的某些部分可能包含相互重復(fù)的塊。根據(jù)目標(biāo)上的重復(fù)數(shù)據(jù)刪除組件142的操作,將對已傳輸文件執(zhí)行重復(fù)數(shù)據(jù)刪除操作。在該帶外重復(fù)數(shù)據(jù)刪除示例中,當(dāng)整個文件150到達(dá)目標(biāo)140時,將根據(jù)數(shù)據(jù)存儲145上已有的數(shù)據(jù)對構(gòu)成文件150的各塊,塊A 151、B152、B153、A巧4、C155,執(zhí)行重復(fù)數(shù)據(jù)刪除操作。塊A,161和C,162分別與塊A 151和A 154、以及C 155重復(fù)。沒有與塊“B”重復(fù)的塊。因此,在重復(fù)數(shù)據(jù)刪除之后,在這些新加入的塊中,塊A 151、B153、A 1 和C155 從數(shù)據(jù)存儲中刪除,而僅有B 152保留于數(shù)據(jù)存儲145中(示為B 16 。而且,在執(zhí)行重復(fù)數(shù)據(jù)刪除操作之后,每個唯一的塊僅有一個副本存在于目標(biāo)數(shù)據(jù)存儲145上。在設(shè)備上執(zhí)行重復(fù)數(shù)據(jù)刪除存在可以在目標(biāo)存儲服務(wù)器上執(zhí)行WAN重復(fù)數(shù)據(jù)刪除或基于存儲的重復(fù)數(shù)據(jù)刪除的設(shè)備。如此處使用的那樣,設(shè)備一般是指運(yùn)行軟件以跨存儲網(wǎng)絡(luò)執(zhí)行數(shù)據(jù)管理操作的專用獨(dú)立系統(tǒng)。通常,設(shè)備被配置為在添加到存儲網(wǎng)絡(luò)之后,開始對目標(biāo)存儲服務(wù)器上存儲的數(shù)據(jù)執(zhí)行重復(fù)數(shù)據(jù)刪除。例如,所述設(shè)備可以維護(hù)將數(shù)據(jù)重復(fù)數(shù)據(jù)刪除到一組虛擬磁帶上的虛擬磁帶庫。在設(shè)備上執(zhí)行重復(fù)數(shù)據(jù)刪除活動的一些優(yōu)點(diǎn)包括部署不依賴于存儲系統(tǒng)的備份軟件或備份操作的單獨(dú)組件;以及在單獨(dú)的設(shè)備硬件上而非在目標(biāo)硬件或源硬件上花費(fèi) CPU周期。一些缺點(diǎn)包括對于使用基于存儲的重復(fù)數(shù)據(jù)刪除設(shè)備,通過網(wǎng)絡(luò)將冗余數(shù)據(jù)發(fā)送到目標(biāo);對于使用基于WAN的重復(fù)數(shù)據(jù)刪除設(shè)備,冗余數(shù)據(jù)存在于存儲中;如果一起使用基于存儲的和基于WAN的重復(fù)數(shù)據(jù)刪除設(shè)備,則可能對于選擇哪些數(shù)據(jù)執(zhí)行重復(fù)數(shù)據(jù)刪除,很難提供任何粒度;CPU周期仍在目標(biāo)硬件上花費(fèi);所述設(shè)備執(zhí)行其數(shù)據(jù)不可知的重復(fù)數(shù)據(jù)刪除操作;以及所述設(shè)備經(jīng)常嘗試對不應(yīng)該被執(zhí)行重復(fù)數(shù)據(jù)刪除的數(shù)據(jù)(例如,首部、 壓縮數(shù)據(jù)或加密數(shù)據(jù))執(zhí)行重復(fù)數(shù)據(jù)刪除。圖IC示出使用在現(xiàn)有技術(shù)中公知的重復(fù)數(shù)據(jù)刪除設(shè)備170上執(zhí)行重復(fù)數(shù)據(jù)刪除活動的存儲管理系統(tǒng)100的示例配置。再次地,源120、網(wǎng)絡(luò)130和目標(biāo)140的配置與圖IA 和IB中示出的配置相同。設(shè)備170也通過網(wǎng)絡(luò)130與目標(biāo)140相連。設(shè)備170使用其自己包含的處理能力和資源在目標(biāo)140上執(zhí)行重復(fù)數(shù)據(jù)刪除操作。因此,設(shè)備170操作以通過根據(jù)其重復(fù)數(shù)據(jù)刪除能力和過程刪除其數(shù)據(jù)存儲內(nèi)存儲的冗余數(shù)據(jù),來維護(hù)已執(zhí)行重復(fù)數(shù)據(jù)刪除的數(shù)據(jù)存儲庫。如圖所示,文件105被輸入客戶端120,然后整個被傳輸?shù)椒?wù)器140。由塊“A”151 和154、“B”152和153、以及“C” 155構(gòu)成的所述文件然后整個被傳輸?shù)皆O(shè)備170。如數(shù)據(jù)存儲175上所示,當(dāng)數(shù)據(jù)在重復(fù)數(shù)據(jù)刪除之前首先被添加到設(shè)備數(shù)據(jù)存儲中時,位于數(shù)據(jù)存儲內(nèi)的許多數(shù)據(jù)塊(例如“A”161、163和166 ;“B”164和165 ;以及“C” 162和167)將
相互重復(fù)。圖IC進(jìn)一步示出在使用帶外重復(fù)數(shù)據(jù)刪除過程執(zhí)行重復(fù)數(shù)據(jù)刪除之前的設(shè)備數(shù)據(jù)存儲175和執(zhí)行重復(fù)數(shù)據(jù)刪除之后的設(shè)備數(shù)據(jù)存儲175’上的重復(fù)數(shù)據(jù)刪除操作。數(shù)據(jù)存儲175’示出在使用設(shè)備170中的重復(fù)數(shù)據(jù)刪除功能172在服務(wù)器上執(zhí)行重復(fù)數(shù)據(jù)刪除之后,服務(wù)器內(nèi)存儲的數(shù)據(jù)塊。所述設(shè)備通過操作刪除設(shè)備上的所有冗余數(shù)據(jù)塊,從而產(chǎn)生每個數(shù)據(jù)塊的唯一副本A’ 181、C’ 182和B183。重復(fù)數(shù)據(jù)刪除處理172通過在設(shè)備170上執(zhí)行的過程發(fā)生,從而重復(fù)數(shù)據(jù)刪除活動的結(jié)果對于服務(wù)器140而言是透明的。重復(fù)數(shù)據(jù)刪除設(shè)備170然后可以將數(shù)據(jù)像未執(zhí)行重復(fù)數(shù)據(jù)刪除那樣發(fā)送回服務(wù)器。盡管現(xiàn)有的每種解決方案表面上導(dǎo)致成功的重復(fù)數(shù)據(jù)刪除,但是通過現(xiàn)有技術(shù)中公知的在客戶端、目標(biāo)或存儲設(shè)備執(zhí)行重復(fù)數(shù)據(jù)刪除活動會產(chǎn)生各種折衷和困難。目標(biāo)端和源端重復(fù)數(shù)據(jù)刪除的結(jié)合可以提供減少或徹底消除這些困難的解決方案,尤其是當(dāng)動態(tài)地管理重復(fù)數(shù)據(jù)刪除活動的位置時。以下公開描述了在重復(fù)數(shù)據(jù)刪除期間通常會遇到的優(yōu)勢和風(fēng)險,同時闡述了本發(fā)明的各種實(shí)施例可如何動態(tài)地消除這些風(fēng)險。散列沖突目標(biāo)端重復(fù)數(shù)據(jù)刪除可以通過諸如在執(zhí)行重復(fù)數(shù)據(jù)刪除之前制作數(shù)據(jù)副本或逐字節(jié)比較之類的技術(shù)減輕由于未檢測到的散列沖突導(dǎo)致的數(shù)據(jù)丟失風(fēng)險。相比之下,源端重復(fù)數(shù)據(jù)刪除更可能在客戶端攝入數(shù)據(jù)時由于未檢測到的散列沖突遭受數(shù)據(jù)丟失風(fēng)險。如果此風(fēng)險是不可接受的,則優(yōu)選地可執(zhí)行服務(wù)器端重復(fù)數(shù)據(jù)刪除,并使用適當(dāng)?shù)姆椒ㄏL(fēng)險(例如在重復(fù)數(shù)據(jù)刪除之前將數(shù)據(jù)復(fù)制到副本存儲池)。一個示例是公司策略要求在服務(wù)器上對機(jī)密電子郵件執(zhí)行重復(fù)數(shù)據(jù)刪除。工作負(fù)載平衡工作負(fù)載平衡的最終方法是實(shí)現(xiàn)有關(guān)在何處執(zhí)行重復(fù)數(shù)據(jù)刪除以平衡網(wǎng)絡(luò)和CPU 使用率的優(yōu)化決策。當(dāng)網(wǎng)絡(luò)出現(xiàn)瓶頸時,最優(yōu)地執(zhí)行客戶端重復(fù)數(shù)據(jù)刪除;否則,應(yīng)該在服務(wù)器上執(zhí)行重復(fù)數(shù)據(jù)刪除。這可以是運(yùn)行時決策,也可以是日程安排的。例如,在周末,當(dāng)沒有很多網(wǎng)絡(luò)流量時,應(yīng)該使用服務(wù)器端重復(fù)數(shù)據(jù)刪除。在工作日,網(wǎng)絡(luò)可能成為性能瓶頸并且客戶端可最優(yōu)地執(zhí)行重復(fù)數(shù)據(jù)刪除。可以使用歷史數(shù)據(jù)判定何時在客戶端或服務(wù)器上部署重復(fù)數(shù)據(jù)刪除。其他相關(guān)規(guī)則可能包括僅在服務(wù)器上對大文件執(zhí)行重復(fù)數(shù)據(jù)刪除,因
為例如如果文件大小大于5GB,則客戶端重復(fù)數(shù)據(jù)刪除會使備份速度變慢,從而錯過備份窗□。集成重復(fù)數(shù)據(jù)刪除活動優(yōu)選地,重復(fù)數(shù)據(jù)刪除將考慮數(shù)據(jù)格式。在本發(fā)明的多種實(shí)施例中,該機(jī)制是客戶端-服務(wù)器備份產(chǎn)品的一部分,這與外部解決方案不同。與備份產(chǎn)品的集成使得能夠使用對該產(chǎn)品(即,數(shù)據(jù)格式)的了解優(yōu)化重復(fù)數(shù)據(jù)刪除。了解數(shù)據(jù)格式可以實(shí)現(xiàn)基于文件類型的優(yōu)化-可以使用針對特定文件類型優(yōu)化的不同重復(fù)數(shù)據(jù)刪除算法。例如,可以使用 Rabin-Karp算法作為基算法,但是如果其他指紋識別算法對某些文件類型而言性能更好, 也可以使用這些算法。另一示例是對壓縮數(shù)據(jù)(如MP3或PDF文件)的重復(fù)數(shù)據(jù)刪除,可以指定僅在服務(wù)器上對這些文件執(zhí)行重復(fù)數(shù)據(jù)刪除。遺留數(shù)據(jù)重用優(yōu)選地,已存儲在服務(wù)器上的遺留數(shù)據(jù)可以使用服務(wù)器端重復(fù)數(shù)據(jù)刪除執(zhí)行重復(fù)數(shù)據(jù)刪除,而新備份既可以使用服務(wù)器端重復(fù)數(shù)據(jù)刪除,也可以使用客戶端重復(fù)數(shù)據(jù)刪除。 現(xiàn)有系統(tǒng)不可能這樣做,現(xiàn)有系統(tǒng)只能部署以后的客戶端重復(fù)數(shù)據(jù)刪除,因此不能對遺留的客戶端數(shù)據(jù)應(yīng)用重復(fù)數(shù)據(jù)刪除。本發(fā)明的多種實(shí)施例允許客戶端重復(fù)數(shù)據(jù)刪除與服務(wù)器上執(zhí)行重復(fù)數(shù)據(jù)刪除的遺留數(shù)據(jù)共享公共塊。這是相對于僅客戶端解決方案的優(yōu)勢,因?yàn)楝F(xiàn)在可以對遺留數(shù)據(jù)執(zhí)行重復(fù)數(shù)據(jù)刪除,而不考慮遺留數(shù)據(jù)的位置。成功地在源(客戶端)和目標(biāo)(服務(wù)器)兩者上執(zhí)行重復(fù)數(shù)據(jù)刪除操作的關(guān)鍵包括在這兩個位置上使用相同的重復(fù)數(shù)據(jù)刪除過程算法和重復(fù)數(shù)據(jù)刪除索引。此外,諸如壓縮和加密之類的任意數(shù)據(jù)轉(zhuǎn)換活動都在指紋識別和散列識別之后執(zhí)行以確保在各個位置上的準(zhǔn)確的重復(fù)數(shù)據(jù)刪除結(jié)果。
作為由一個實(shí)施例執(zhí)行的重復(fù)數(shù)據(jù)刪除配置示例,重復(fù)數(shù)據(jù)刪除操作針對源端和目標(biāo)端重復(fù)數(shù)據(jù)刪除兩者采用相同的可變大小塊散列算法。替代地,可以混用多種算法,例如針對某些文件使用可變大小塊散列,且針對其他文件使用單一實(shí)例存儲,前提是針對源端和目標(biāo)端重復(fù)數(shù)據(jù)刪除應(yīng)用相同的算法選擇規(guī)則。無論在源還是目標(biāo)上執(zhí)行重復(fù)數(shù)據(jù)刪除,均在存儲系統(tǒng)內(nèi)使用相同的重復(fù)數(shù)據(jù)刪除索引以跟蹤現(xiàn)有的塊并重組已執(zhí)行重復(fù)數(shù)據(jù)刪除的對象,從而允許源端和目標(biāo)端重復(fù)數(shù)據(jù)刪除共享公共數(shù)據(jù)。此索引可以使用共享數(shù)據(jù)庫實(shí)現(xiàn),也可以通過使用允許在源和目標(biāo)之間實(shí)現(xiàn)塊信息通信的客戶端-服務(wù)器協(xié)議來實(shí)現(xiàn)(即,通過將相應(yīng)的塊信息從目標(biāo)轉(zhuǎn)發(fā)到源)。當(dāng)僅在識別重復(fù)塊之后執(zhí)行數(shù)據(jù)轉(zhuǎn)換時,這可以避免轉(zhuǎn)換干擾重復(fù)數(shù)據(jù)塊識別的可能性。當(dāng)恢復(fù)數(shù)據(jù)時,由客戶端(源)在塊級別上撤消所述轉(zhuǎn)換。這允許客戶端接收混合 (壓縮的、未壓縮的和加密的)塊流。替代地,所述轉(zhuǎn)換可以在恢復(fù)之前由服務(wù)器(目標(biāo)) 撤消。圖2A示出根據(jù)本發(fā)明的一個實(shí)施例在客戶端源上執(zhí)行集成重復(fù)數(shù)據(jù)刪除活動的存儲管理系統(tǒng)200的配置示例的操作。如圖所示,客戶端220(數(shù)據(jù)源)通過網(wǎng)絡(luò)230與服務(wù)器MO(數(shù)據(jù)目標(biāo))相連。再次地,在存儲系統(tǒng)的正常操作過程中,數(shù)據(jù)由客戶端220攝取,并傳輸?shù)椒?wù)器MO內(nèi)的數(shù)據(jù)存儲庫M5以進(jìn)行備份、歸檔、遷移或其他管理。一旦被客戶端220攝入,文件便會通過重復(fù)數(shù)據(jù)刪除組件222被執(zhí)行重復(fù)數(shù)據(jù)刪除,然后文件塊最終被傳輸?shù)椒?wù)器M0。該重復(fù)數(shù)據(jù)刪除步驟是通過檢查哪些數(shù)據(jù)塊不在服務(wù)器240上來執(zhí)行的。因此,不是根據(jù)客戶端上現(xiàn)有的數(shù)據(jù)塊對文件執(zhí)行重復(fù)數(shù)據(jù)刪除, 而是重復(fù)數(shù)據(jù)刪除過程驗(yàn)證哪些數(shù)據(jù)塊存儲在目標(biāo)上。在一個實(shí)施例中,這是通過查詢位于目標(biāo)MO內(nèi)的索引241執(zhí)行的,該索引跟蹤哪些塊存儲在服務(wù)器數(shù)據(jù)存儲對5內(nèi)。在圖2A所示的示例中,當(dāng)在客戶端上執(zhí)行重復(fù)數(shù)據(jù)刪除操作時,所述客戶端將判定只有“A”、“B”和“C”塊是唯一的。此外,當(dāng)在存儲系統(tǒng)上查詢索引241時,該索引內(nèi)的重復(fù)數(shù)據(jù)刪除信息242被傳輸?shù)剿隹蛻舳艘赃M(jìn)一步通知所述客戶端塊A’261和C’262(“A” 和“C”數(shù)據(jù)塊的副本)當(dāng)前位于服務(wù)器數(shù)據(jù)存儲245上。因此,通過來自索引241的信息, 客戶端將發(fā)現(xiàn)未存儲在服務(wù)器數(shù)據(jù)存儲245上的僅有的唯一塊是“B”塊的副本。被發(fā)送到服務(wù)器進(jìn)行存儲的僅有的塊將是塊B 251,其作為塊263被存儲在數(shù)據(jù)存儲245上。圖3示出進(jìn)一步闡述根據(jù)本發(fā)明的一個實(shí)施例如何在客戶端上執(zhí)行重復(fù)數(shù)據(jù)刪除的流程圖。該流程圖提供客戶端重復(fù)數(shù)據(jù)刪除活動(在圖4的步驟431-434中標(biāo)示)的一個示例實(shí)現(xiàn)。如圖3所示,在步驟310,當(dāng)文件/對象“F”要備份到存儲服務(wù)器的存儲庫時,由客戶端啟動重復(fù)數(shù)據(jù)刪除過程。如果在步驟320,可以在客戶端上執(zhí)行重復(fù)數(shù)據(jù)刪除,則在重復(fù)數(shù)據(jù)刪除過程期間在客戶端上執(zhí)行多個步驟。如果客戶端不能執(zhí)行重復(fù)數(shù)據(jù)刪除,則如步驟330所示將在客戶端上發(fā)生正常的非重復(fù)數(shù)據(jù)刪除處理,這很可能涉及在服務(wù)器上執(zhí)行文件重復(fù)數(shù)據(jù)刪除。對于將在客戶端上執(zhí)行重復(fù)數(shù)據(jù)刪除活動的情況,文件/對象“F”將在步驟341 中進(jìn)行指紋識別。這將導(dǎo)致產(chǎn)生文件/對象“F”的若干塊。將在步驟342檢索文件的下一數(shù)據(jù)塊(第一數(shù)據(jù)塊) ,并在步驟343針對該數(shù)據(jù)塊產(chǎn)生散列、吼)、長度、吼)。在圖3
11中未示出的一個實(shí)施例的替代實(shí)現(xiàn)中,指紋識別作為此循環(huán)的一部分發(fā)生。因此,不是先對整個文件進(jìn)行指紋識別,然后再處理每個塊,而是在每個塊在指紋識別期間被識別時處理每個數(shù)據(jù)塊。接下來,重復(fù)數(shù)據(jù)刪除過程將在步驟350判定由值D^lj]識別的塊是否位于服務(wù)器上。如果該塊已存儲在服務(wù)器上,則在步驟370,僅在服務(wù)器內(nèi)創(chuàng)建對塊DvIj]的引用, 因此僅將塊引用發(fā)送到服務(wù)器。如果該塊不在服務(wù)器上,則需要將塊數(shù)據(jù)發(fā)送到服務(wù)器。根據(jù)是否將在步驟360對塊進(jìn)行壓縮,準(zhǔn)備將數(shù)據(jù)塊發(fā)送到服務(wù)器。如果塊中的數(shù)據(jù)將不被壓縮,則在步驟380將塊D”散列h和長度^發(fā)送到服務(wù)器。塊將被存儲在服務(wù)器數(shù)據(jù)存儲上,并且散列h和長度將被存儲在重復(fù)數(shù)據(jù)刪除索引中。如果塊中的數(shù)據(jù)要被壓縮,則在步驟361將塊Dj壓縮為塊c (Dj)。在步驟362將壓縮塊c (Dj)以及散列Iij 和長度一起發(fā)送到服務(wù)器,其中塊存儲在服務(wù)器數(shù)據(jù)存儲庫中,散列和長度存儲在重復(fù)數(shù)據(jù)刪除索引中。在步驟385,針對文件/對象“F”中每個其他的數(shù)據(jù)塊重復(fù)在服務(wù)器內(nèi)查找塊的過程。一旦完成所有塊,則在步驟395將針對整個文件產(chǎn)生的MD5簽名MD5 (F)發(fā)送到服務(wù)器??梢栽谖募謴?fù)操作期間可選地使用MD5摘要來驗(yàn)證數(shù)據(jù)完整性。本領(lǐng)域的技術(shù)人員將理解,本說明書中通篇描述的客戶端重復(fù)數(shù)據(jù)刪除技術(shù)可以由客戶端執(zhí)行,且能夠通過各種排列進(jìn)行修改,例如執(zhí)行帶內(nèi)重復(fù)數(shù)據(jù)刪除、帶外重復(fù)數(shù)據(jù)刪除,或者在不同時間在客戶端數(shù)據(jù)存儲上執(zhí)行重復(fù)數(shù)據(jù)刪除。在任何一種排列中,此技術(shù)都展示出可如何使用根據(jù)本發(fā)明的重復(fù)數(shù)據(jù)刪除索引在源或目標(biāo)上對文件執(zhí)行重復(fù)數(shù)據(jù)刪除,而同時高效地將文件傳輸并存儲到重復(fù)數(shù)據(jù)刪除數(shù)據(jù)存儲中。圖2B示出根據(jù)本發(fā)明的一個實(shí)施例在目標(biāo)服務(wù)器上執(zhí)行集成重復(fù)數(shù)據(jù)刪除活動的存儲管理系統(tǒng)200的示例配置。與圖2A類似,客戶端220(數(shù)據(jù)源)通過網(wǎng)絡(luò)230與服務(wù)器MO (數(shù)據(jù)目標(biāo))相連。再次地,使用目標(biāo)端重復(fù)數(shù)據(jù)刪除,客戶端220可能甚至不知道文件205由數(shù)據(jù)塊構(gòu)成,因?yàn)樵撐募蓛H作為比特流225在客戶端內(nèi)進(jìn)行處理。在該實(shí)施例中,由于重復(fù)數(shù)據(jù)刪除在目標(biāo)240上執(zhí)行,因此文件250 (將在服務(wù)器上被分割為塊A 251、B 252, B 253、A 2 和C 255)的每個部分通過網(wǎng)絡(luò)230傳輸?shù)椒?wù)器M0。當(dāng)目標(biāo)240攝取文件的每個塊時,重復(fù)數(shù)據(jù)刪除組件243通過操作在目標(biāo)上執(zhí)行重復(fù)數(shù)據(jù)刪除。該組件訪問重復(fù)數(shù)據(jù)刪除索引241以判定哪些塊已存儲在服務(wù)器數(shù)據(jù)存儲 245 內(nèi)。在圖2B的示例中,重復(fù)數(shù)據(jù)刪除過程243將通過使用重復(fù)數(shù)據(jù)刪除信息242判定索引242已包含“A”和“C”數(shù)據(jù)塊(作為A,261和C,262存儲在目標(biāo)數(shù)據(jù)存儲245上) 的條目。在重復(fù)數(shù)據(jù)刪除之后唯一要添加到目標(biāo)的數(shù)據(jù)塊是塊“B”的副本,因此,將“B”數(shù)據(jù)塊的唯一副本放置在數(shù)據(jù)存儲上,作為263。本領(lǐng)域的技術(shù)人員將理解,圖2B展示了帶內(nèi)重復(fù)數(shù)據(jù)刪除的一個實(shí)施例。因此,如果在目標(biāo)上替代地使用帶外重復(fù)數(shù)據(jù)刪除,則將在識別數(shù)據(jù)存儲內(nèi)的重復(fù)塊之后,從所述數(shù)據(jù)存儲中刪除這些重復(fù)的塊。本領(lǐng)域的技術(shù)人員將理解,本公開中通篇描述的服務(wù)器端重復(fù)數(shù)據(jù)刪除技術(shù)可以由服務(wù)器執(zhí)行,且能夠通過各種排列進(jìn)行修改,例如執(zhí)行帶內(nèi)重復(fù)數(shù)據(jù)刪除、帶外重復(fù)數(shù)據(jù)刪除,或者在不同時間在服務(wù)器數(shù)據(jù)存儲上執(zhí)行重復(fù)數(shù)據(jù)刪除。在任何一種排列中,此技術(shù)都展示出可如何使用根據(jù)本發(fā)明的重復(fù)數(shù)據(jù)刪除索引由源客戶端或目標(biāo)服務(wù)器針對文件執(zhí)行重復(fù)數(shù)據(jù)刪除,而仍然在重復(fù)數(shù)據(jù)刪除數(shù)據(jù)存儲內(nèi)高效地管理文件。給定允許共享源端和目標(biāo)端重復(fù)數(shù)據(jù)刪除活動產(chǎn)生的公共數(shù)據(jù)的存儲系統(tǒng)基礎(chǔ)設(shè)施(例如使用上述配置)的情況下,可以采用各種技術(shù)判定何時以及在什么程度上在特定客戶端機(jī)器上執(zhí)行源重復(fù)數(shù)據(jù)刪除,以及何時利用目標(biāo)重復(fù)數(shù)據(jù)刪除。在一個實(shí)施例中, 定義基于規(guī)則的策略以允許存儲管理系統(tǒng)根據(jù)規(guī)則集或系統(tǒng)狀況判定在何處執(zhí)行重復(fù)數(shù)據(jù)刪除。下面是此類策略的一組非限制示例。策略可以基于客戶端節(jié)點(diǎn),即,對其中的數(shù)據(jù)執(zhí)行重復(fù)數(shù)據(jù)刪除操作的機(jī)器。替代地,策略還可以基于定義一組具有相同策略要求的客戶端的策略域。作為一個示例,如果將一組機(jī)器指定為包含高敏感性數(shù)據(jù),則將不在源上執(zhí)行重復(fù)數(shù)據(jù)刪除。這使得將文件傳輸?shù)椒?wù)器并在必要時進(jìn)行備份,且僅在此后才執(zhí)行重復(fù)數(shù)據(jù)刪除以刪除數(shù)據(jù)中的冗余塊。策略可以基于文件(對象)特征,例如文件所存儲的文件系統(tǒng)、文件路徑、文件名、 文件類型或文件大小。該策略可以使用選擇規(guī)則實(shí)現(xiàn)以根據(jù)文件本身的特征判定優(yōu)選地將在何處執(zhí)行重復(fù)數(shù)據(jù)刪除。策略可以基于時間??梢詫?shí)現(xiàn)日程安排以基于時間相關(guān)的度量改變以上公開的策略。例如,可在周末應(yīng)用與工作日相比不同的策略。策略可以基于系統(tǒng)負(fù)荷。通過監(jiān)視受保護(hù)客戶端機(jī)器、服務(wù)器系統(tǒng)以及網(wǎng)絡(luò)上的負(fù)荷,可以做出有關(guān)節(jié)省和/或使用最佳可用資源的決策。例如,當(dāng)網(wǎng)絡(luò)流量過大時,可以使用源端重復(fù)數(shù)據(jù)刪除以避免不必要地將數(shù)據(jù)傳輸?shù)侥繕?biāo)。策略可以針對特定節(jié)點(diǎn)或源系統(tǒng)、或針對特定文件、數(shù)據(jù)類型、設(shè)備、或針對源系統(tǒng)中的子系統(tǒng)分別在粒度級別上進(jìn)行定義。本領(lǐng)域的技術(shù)人員將理解,此處描述的各種策略技術(shù)可以進(jìn)行組合和集成以創(chuàng)建增強(qiáng)的系統(tǒng),該系統(tǒng)允許在源和目標(biāo)之間實(shí)現(xiàn)穩(wěn)定的重復(fù)數(shù)據(jù)刪除切換,但是仍然反應(yīng)靈敏,并且可以自定義以僅在特定情況下在一位置上執(zhí)行重復(fù)數(shù)據(jù)刪除。進(jìn)一步地,本領(lǐng)域的技術(shù)人員將理解,此處描述的策略可以手動地或自動地跨網(wǎng)絡(luò)的一部分或跨整個網(wǎng)絡(luò)實(shí)現(xiàn)。圖4示出根據(jù)本發(fā)明的一個實(shí)施例執(zhí)行集成重復(fù)數(shù)據(jù)刪除的操作的流程圖。所述操作在步驟410開始,這時要針對數(shù)據(jù)對象執(zhí)行重復(fù)數(shù)據(jù)刪除。通過重復(fù)數(shù)據(jù)刪除活動在源上還是目標(biāo)上執(zhí)行來判定后續(xù)的活動。因此,可以在步驟420根據(jù)策略選擇此位置,這與要考慮若干策略因素(例如時間、系統(tǒng)負(fù)荷、文件特征、客戶端節(jié)點(diǎn)或策略域)相一致。在執(zhí)行客戶端重復(fù)數(shù)據(jù)刪除的情況下,在步驟431應(yīng)用諸如指紋識別和散列算法之類的重復(fù)數(shù)據(jù)刪除過程中的各種算法來識別構(gòu)成數(shù)據(jù)對象的數(shù)據(jù)塊的特征。在此,根據(jù)當(dāng)前存儲在目標(biāo)上的數(shù)據(jù)塊執(zhí)行重復(fù)數(shù)據(jù)刪除過程,這樣在步驟432將訪問所述目標(biāo)維護(hù)的重復(fù)數(shù)據(jù)刪除索引來判定此信息。特定數(shù)據(jù)塊的散列和識別通常必須在可完全地訪問該特定數(shù)據(jù)塊的索引信息之前執(zhí)行。接著,在步驟433對數(shù)據(jù)塊執(zhí)行任何數(shù)據(jù)轉(zhuǎn)換(例如加密)。然后在步驟434將已執(zhí)行重復(fù)數(shù)據(jù)刪除的數(shù)據(jù)對象塊從客戶端傳輸?shù)椒?wù)器進(jìn)行存儲。針對服務(wù)器端重復(fù)數(shù)據(jù)刪除采用的步驟也是類似的。第一步包括在步驟441從客戶端接收數(shù)據(jù)對象。一旦收到數(shù)據(jù)塊,便會在服務(wù)器上執(zhí)行重復(fù)數(shù)據(jù)刪除算法,包括在步驟 442將指紋識別和散列算法應(yīng)用于數(shù)據(jù)對象及其塊;在步驟443訪問所述數(shù)據(jù)對象塊的重復(fù)數(shù)據(jù)刪除索引信息;以及最后在步驟444執(zhí)行任意數(shù)據(jù)轉(zhuǎn)換。
當(dāng)需要在步驟450從服務(wù)器檢索數(shù)據(jù)對象時,將執(zhí)行下面的步驟。在步驟461從服務(wù)器檢索已執(zhí)行重復(fù)數(shù)據(jù)刪除的數(shù)據(jù)對象的塊。在一個實(shí)施例中,將數(shù)據(jù)傳輸?shù)娇蛻舳酥?,可以在步驟462執(zhí)行撤消數(shù)據(jù)轉(zhuǎn)換,例如解密和解壓縮塊。在步驟463,通過數(shù)據(jù)塊流將數(shù)據(jù)傳輸?shù)娇蛻舳?。在步驟471,客戶端從服務(wù)器接收數(shù)據(jù)塊流,并且該數(shù)據(jù)塊流可以包括具有混合類型轉(zhuǎn)換的塊,例如壓縮的、未壓縮的和加密的數(shù)據(jù)塊。在另一實(shí)施例中,如果尚未在服務(wù)器上撤銷數(shù)據(jù)轉(zhuǎn)換,則一旦在步驟472完全接收數(shù)據(jù),則在客戶端上執(zhí)行所述反向轉(zhuǎn)換。最后,在步驟473將數(shù)據(jù)塊重組到它們對應(yīng)的數(shù)據(jù)對象。本領(lǐng)域的技術(shù)人員將理解,本發(fā)明的各方面可以實(shí)現(xiàn)為系統(tǒng)、方法或計算機(jī)程序產(chǎn)品。因此,本發(fā)明的各方面可以采取完全硬件實(shí)施例、完全軟件實(shí)施例(包括固件、駐留軟件、微代碼等)或組合了軟件和硬件方面的實(shí)施例的形式,所有這些軟件和硬件方面在此通常被稱為“電路”、“模塊”或“系統(tǒng)”。此外,本發(fā)明的各方面可以采取體現(xiàn)在一個或多個計算機(jī)可讀介質(zhì)(在介質(zhì)中具有計算機(jī)可讀程序代碼)中的計算機(jī)程序產(chǎn)品的形式??梢允褂靡粋€或多個計算機(jī)可讀介質(zhì)的任意組合。所述計算機(jī)可讀介質(zhì)可以是計算機(jī)可讀信號介質(zhì)或計算機(jī)可讀存儲介質(zhì)。計算機(jī)可讀存儲介質(zhì)例如可以是(但不限于) 電、磁、光、電磁、紅外線或半導(dǎo)體系統(tǒng)、裝置或設(shè)備或上述任何適合的組合。計算機(jī)可讀存儲介質(zhì)的更具體的示例(非窮舉列表)可以包括以下項(xiàng)具有一條或多條線的電連接、便攜式計算機(jī)軟盤、硬盤、隨機(jī)存取存儲器(RAM)、只讀存儲器(ROM)、可擦寫可編程只讀存儲器 (EPR0M或閃存)、光纖、便攜式光盤只讀存儲器(CD-ROM)、光存儲設(shè)備、磁存儲設(shè)備或上述任何適合的組合。在本文檔的上下文中,計算機(jī)可讀存儲介質(zhì)可以是任何能夠包含或存儲由指令執(zhí)行系統(tǒng)、裝置或設(shè)備使用或與所述指令執(zhí)行系統(tǒng)、裝置或設(shè)備結(jié)合的程序的有形介質(zhì)。計算機(jī)可讀信號介質(zhì)可以包括其中包含計算機(jī)可讀程序代碼(例如,在基帶中或作為載波的一部分)的傳播數(shù)據(jù)信號。此類傳播信號可以采取任何多樣的形式,包括但不限于電磁、光或上述任何適合的組合。計算機(jī)可讀信號介質(zhì)可以是任何并非計算機(jī)可讀存儲介質(zhì)以及傳送、傳播或傳輸由指令執(zhí)行系統(tǒng)、裝置或設(shè)備使用或與所述指令執(zhí)行系統(tǒng)、裝置或設(shè)備結(jié)合的程序的計算機(jī)可讀介質(zhì)??梢允褂萌魏芜m當(dāng)?shù)慕橘|(zhì)(包括但不限于無線、線纜、光纜、RF等或上述任何適合的組合)來傳輸計算機(jī)可讀介質(zhì)中包含的程序代碼。用于執(zhí)行本發(fā)明的各方面的操作的計算機(jī)程序代碼可以使用包含一種或多種編程語言的任意組合來編寫,所述編程語言包括諸如Java、Smalltalk, C++或類似語言之類的面向?qū)ο蟮木幊陶Z言或者諸如“C”編程語言或類似的編程語言之類的常規(guī)過程編程語言。所述程序代碼可以作為獨(dú)立的軟件包完全地在用戶計算機(jī)上執(zhí)行,部分地在用戶計算機(jī)上執(zhí)行,部分地在用戶計算機(jī)上并部分地在遠(yuǎn)程計算機(jī)上執(zhí)行,或者完全地在遠(yuǎn)程計算機(jī)或服務(wù)器上執(zhí)行。在后者的情況中,所述遠(yuǎn)程計算機(jī)可以通過包括局域網(wǎng)(LAN)或廣域網(wǎng)(WAN)的任何類型網(wǎng)絡(luò)與用戶的計算機(jī)相連,也可以與外部計算機(jī)進(jìn)行連接(例如,使用因特網(wǎng)服務(wù)提供商通過因特網(wǎng)連接)。上面參考根據(jù)本發(fā)明的實(shí)施例的方法、裝置(系統(tǒng))和計算機(jī)程序產(chǎn)品的流程圖和/或方塊圖對本發(fā)明的各方面進(jìn)行描述。將理解,所述流程圖和/或方塊圖的每個方塊以及所述流程圖和/或方塊圖中的方塊的組合可以由計算機(jī)程序指令來實(shí)現(xiàn)。這些計算機(jī)程序指令可以被提供給通用計算機(jī)、專用計算機(jī)或其他可編程數(shù)據(jù)處理裝置的處理器以產(chǎn)
14生機(jī)器,以便通過所述計算機(jī)或其他可編程數(shù)據(jù)處理裝置的處理器執(zhí)行的所述指令產(chǎn)生用于實(shí)現(xiàn)在一個或多個流程圖和/或方塊圖方塊中指定的功能/操作的裝置。這些計算機(jī)程序指令也可以被存儲在引導(dǎo)計算機(jī)、其他可編程數(shù)據(jù)處理裝置或其他設(shè)備以特定方式執(zhí)行功能的計算機(jī)可讀介質(zhì)中,以便存儲在所述計算機(jī)可讀介質(zhì)中的所述指令產(chǎn)生一件包括實(shí)現(xiàn)在所述一個或多個流程圖和/或方塊圖方塊中指定的功能/操作的指令的制品。所述計算機(jī)程序指令還可被加載到計算機(jī)、其他可編程數(shù)據(jù)處理裝置或其他設(shè)備,以導(dǎo)致在所述計算機(jī)、其他可編程裝置或其他設(shè)備上執(zhí)行一系列操作步驟以產(chǎn)生計算機(jī)實(shí)現(xiàn)的過程,從而在所述計算機(jī)或其他可編程裝置上執(zhí)行的指令提供用于實(shí)現(xiàn)在一個或多個流程圖和/或方塊圖方塊中指定的功能/操作的過程。附圖中的流程圖和方塊圖示出了根據(jù)本發(fā)明的各種實(shí)施例的系統(tǒng)、方法和計算機(jī)程序產(chǎn)品的可能實(shí)施方式的架構(gòu)、功能和操作。在此方面,所述流程圖或方塊圖中的每個方塊都可以表示代碼的模塊、段或部分,所述代碼包括用于實(shí)現(xiàn)指定的邏輯功能的一個或多個可執(zhí)行指令。還應(yīng)指出,在某些備選實(shí)施方式中,在方塊中說明的功能可以不按圖中說明的順序發(fā)生。例如,示為連續(xù)的兩個方塊可以實(shí)際上被基本同時地執(zhí)行,或者某些時候,取決于所涉及的功能,可以以相反的順序執(zhí)行所述方塊。還應(yīng)指出,所述方塊圖和/或流程圖的每個方塊以及所述方塊圖和/或流程圖中的方塊的組合可以由執(zhí)行指定功能或操作的基于專用硬件的系統(tǒng)或?qū)S糜布陀嬎銠C(jī)指令的組合來實(shí)現(xiàn)。盡管上面描述了本發(fā)明的具有一定程度特性的各種代表性實(shí)施例,但是本領(lǐng)域的技術(shù)人員可以在不偏離說明書和權(quán)利要求中闡述的創(chuàng)新主題的精神或范圍的情況下,對所公開的實(shí)施例做出多種更改。
權(quán)利要求
1.一種用于在分布式存儲管理系統(tǒng)中的源位置和目標(biāo)位置中的每一個上實(shí)現(xiàn)數(shù)據(jù)文件的重復(fù)數(shù)據(jù)刪除的方法,所述存儲管理系統(tǒng)包含與目標(biāo)計算系統(tǒng)相連的源計算系統(tǒng)以及位于所述目標(biāo)計算系統(tǒng)內(nèi)的目標(biāo)數(shù)據(jù)存儲,所述方法包括維護(hù)用于跟蹤在所述目標(biāo)數(shù)據(jù)存儲內(nèi)存儲的已執(zhí)行重復(fù)數(shù)據(jù)刪除的數(shù)據(jù)塊的共享索引;提供用于對數(shù)據(jù)塊執(zhí)行重復(fù)數(shù)據(jù)刪除的重復(fù)數(shù)據(jù)刪除過程,所述數(shù)據(jù)塊將以已執(zhí)行重復(fù)數(shù)據(jù)刪除的形式存儲在所述目標(biāo)數(shù)據(jù)存儲內(nèi);允許所述目標(biāo)計算系統(tǒng)執(zhí)行重復(fù)數(shù)據(jù)刪除指令以及允許所述源計算系統(tǒng)執(zhí)行重復(fù)數(shù)據(jù)刪除指令;使用所述重復(fù)數(shù)據(jù)刪除過程將數(shù)據(jù)文件重復(fù)數(shù)據(jù)刪除為一組已執(zhí)行重復(fù)數(shù)據(jù)刪除的數(shù)據(jù)塊,所述重復(fù)數(shù)據(jù)刪除過程包括由所述源計算系統(tǒng)或所述目標(biāo)計算系統(tǒng)執(zhí)行的一組重復(fù)數(shù)據(jù)刪除指令;將所述一組已執(zhí)行重復(fù)數(shù)據(jù)刪除的數(shù)據(jù)塊存儲在所述目標(biāo)數(shù)據(jù)存儲內(nèi);以及在所述共享索引內(nèi)更新用于所述一組已執(zhí)行重復(fù)數(shù)據(jù)刪除的數(shù)據(jù)塊的重復(fù)數(shù)據(jù)刪除 fn息ο
2.如權(quán)利要求1中所述的方法,其中所述重復(fù)數(shù)據(jù)刪除指令包括用于在所述源計算系統(tǒng)和所述目標(biāo)計算系統(tǒng)中的每一個上進(jìn)行重復(fù)數(shù)據(jù)刪除的可變大小塊散列算法。
3.如權(quán)利要求1或2中所述的方法,其中所述重復(fù)數(shù)據(jù)刪除指令包括用于在所述源計算系統(tǒng)上執(zhí)行的重復(fù)數(shù)據(jù)刪除活動的第一組指紋識別和散列算法,以及用于在所述目標(biāo)計算系統(tǒng)上執(zhí)行的重復(fù)數(shù)據(jù)刪除活動的第二組指紋識別和散列算法。
4.如上述任一權(quán)利要求中所述的方法,進(jìn)一步包括將所述一組已執(zhí)行重復(fù)數(shù)據(jù)刪除的數(shù)據(jù)塊恢復(fù)到所述源。
5.如上述任一權(quán)利要求中所述的方法,進(jìn)一步包括在指紋識別和散列識別之后執(zhí)行數(shù)據(jù)轉(zhuǎn)換,所述指紋識別和散列識別在所述重復(fù)數(shù)據(jù)刪除過程中進(jìn)行。
6.如權(quán)利要求5中所述的方法,其中所述數(shù)據(jù)轉(zhuǎn)換包括壓縮和加密中的一項(xiàng)或兩項(xiàng)。
7.如權(quán)利要求5或6中所述的方法,進(jìn)一步包括響應(yīng)于將所述一組已執(zhí)行重復(fù)數(shù)據(jù)刪除的數(shù)據(jù)塊恢復(fù)到所述源計算系統(tǒng),由所述源計算系統(tǒng)針對每個數(shù)據(jù)塊撤消所述數(shù)據(jù)轉(zhuǎn)換。
8.如權(quán)利要求5至7中任一權(quán)利要求中所述的方法,進(jìn)一步包括在將所述一組已執(zhí)行重復(fù)數(shù)據(jù)刪除的數(shù)據(jù)塊恢復(fù)到所述源計算系統(tǒng)之前,由所述目標(biāo)計算系統(tǒng)撤消所述數(shù)據(jù)轉(zhuǎn)換。
9.如上述任一權(quán)利要求中所述的方法,其中所述共享索引作為所述存儲管理系統(tǒng)內(nèi)可由所述源計算系統(tǒng)和所述目標(biāo)計算系統(tǒng)中的每一個訪問的數(shù)據(jù)庫被共享。
10.如上述任一權(quán)利要求中所述的方法,其中所述共享索引可通過在所述源和所述目標(biāo)之間實(shí)現(xiàn)數(shù)據(jù)塊信息通信的客戶端-服務(wù)器協(xié)議進(jìn)行訪問。
11.一種在分布式存儲管理系統(tǒng)中的選定源位置或目標(biāo)位置上實(shí)現(xiàn)數(shù)據(jù)文件的重復(fù)數(shù)據(jù)刪除的方法,所述存儲管理系統(tǒng)包含與目標(biāo)計算系統(tǒng)相連的源計算系統(tǒng)以及位于所述目標(biāo)計算系統(tǒng)內(nèi)的目標(biāo)數(shù)據(jù)存儲,所述方法包括跟蹤所述目標(biāo)存儲庫內(nèi)存儲的已執(zhí)行重復(fù)數(shù)據(jù)刪除的數(shù)據(jù)塊的重復(fù)數(shù)據(jù)刪除信息;提供用于對要存儲在所述目標(biāo)數(shù)據(jù)存儲內(nèi)的數(shù)據(jù)文件執(zhí)行重復(fù)數(shù)據(jù)刪除的重復(fù)數(shù)據(jù)刪除過程;應(yīng)用從多個已定義策略中選定的策略以判定執(zhí)行所述重復(fù)數(shù)據(jù)刪除過程的位置在所述源計算系統(tǒng)上或者在所述目標(biāo)計算系統(tǒng)上;通過執(zhí)行所述重復(fù)數(shù)據(jù)刪除過程在所判定的位置上對數(shù)據(jù)文件執(zhí)行重復(fù)數(shù)據(jù)刪除;以及更新數(shù)據(jù)文件的所跟蹤的重復(fù)數(shù)據(jù)刪除信息。
12.如權(quán)利要求11中所述的方法,其中所述選定策略是根據(jù)時間、系統(tǒng)負(fù)荷、文件特征、客戶端節(jié)點(diǎn)以及策略域中的一項(xiàng)或多項(xiàng)進(jìn)行選擇的。
13.一種存儲管理系統(tǒng),包括 源計算系統(tǒng);與所述源計算系統(tǒng)相連的目標(biāo)計算系統(tǒng); 位于所述目標(biāo)計算系統(tǒng)內(nèi)的目標(biāo)數(shù)據(jù)存儲; 位于所述存儲管理系統(tǒng)內(nèi)的至少一個處理器;以及位于所述存儲管理系統(tǒng)內(nèi)的至少一個存儲器,所述存儲器存儲可通過所述至少一個處理器運(yùn)行以在所述存儲管理系統(tǒng)中的源位置和目標(biāo)位置中的每一個上實(shí)現(xiàn)數(shù)據(jù)文件的重復(fù)數(shù)據(jù)刪除的指令,所述指令通過執(zhí)行來維護(hù)用于跟蹤在所述目標(biāo)數(shù)據(jù)存儲內(nèi)存儲的已執(zhí)行重復(fù)數(shù)據(jù)刪除的數(shù)據(jù)塊的共享索引;提供用于對數(shù)據(jù)塊執(zhí)行重復(fù)數(shù)據(jù)刪除的重復(fù)數(shù)據(jù)刪除過程,所述數(shù)據(jù)塊將以已執(zhí)行重復(fù)數(shù)據(jù)刪除的形式存儲在所述目標(biāo)數(shù)據(jù)存儲內(nèi);允許所述目標(biāo)計算系統(tǒng)執(zhí)行重復(fù)數(shù)據(jù)刪除指令以及允許所述源計算系統(tǒng)執(zhí)行重復(fù)數(shù)據(jù)刪除指令;使用所述重復(fù)數(shù)據(jù)刪除過程將數(shù)據(jù)文件重復(fù)數(shù)據(jù)刪除為一組已執(zhí)行重復(fù)數(shù)據(jù)刪除的數(shù)據(jù)塊,所述重復(fù)數(shù)據(jù)刪除過程包括由所述源計算系統(tǒng)或所述目標(biāo)計算系統(tǒng)執(zhí)行的一組重復(fù)數(shù)據(jù)刪除指令;將所述一組已執(zhí)行重復(fù)數(shù)據(jù)刪除的數(shù)據(jù)塊存儲在所述目標(biāo)數(shù)據(jù)存儲內(nèi);以及在所述共享索引內(nèi)更新用于所述一組已執(zhí)行重復(fù)數(shù)據(jù)刪除的數(shù)據(jù)塊的重復(fù)數(shù)據(jù)刪除fn息
14.如權(quán)利要求13中所述的存儲管理系統(tǒng),其中所述重復(fù)數(shù)據(jù)刪除指令包括用于在所述源計算系統(tǒng)和所述目標(biāo)計算系統(tǒng)中的每一個上進(jìn)行重復(fù)數(shù)據(jù)刪除的可變大小塊散列算法。
15.如權(quán)利要求13或14中所述的存儲管理系統(tǒng),其中所述重復(fù)數(shù)據(jù)刪除指令包括用于在所述源計算系統(tǒng)上執(zhí)行的重復(fù)數(shù)據(jù)刪除活動的第一組指紋識別和散列算法,以及用于在所述目標(biāo)計算系統(tǒng)上執(zhí)行的重復(fù)數(shù)據(jù)刪除活動的第二組指紋識別和散列算法。
16.如權(quán)利要求13至15中任一權(quán)利要求中所述的存儲管理系統(tǒng),進(jìn)一步包括將所述一組已執(zhí)行重復(fù)數(shù)據(jù)刪除的數(shù)據(jù)塊恢復(fù)到所述源。
17.如權(quán)利要求13至16中任一權(quán)利要求中所述的存儲管理系統(tǒng),進(jìn)一步包括指令通過執(zhí)行來在指紋識別和散列識別之后執(zhí)行數(shù)據(jù)轉(zhuǎn)換,所述指紋識別和散列識別在所述重復(fù)數(shù)據(jù)刪除過程中進(jìn)行,其中所述數(shù)據(jù)轉(zhuǎn)換包括壓縮和加密中的一項(xiàng)或兩項(xiàng)。
18.如權(quán)利要求13至17中任一權(quán)利要求中所述的存儲管理系統(tǒng),其中所述共享索引作為所述存儲管理系統(tǒng)內(nèi)可由所述源計算系統(tǒng)和所述目標(biāo)計算系統(tǒng)中的每一個訪問的數(shù)據(jù)庫被共享。
19.一種存儲管理系統(tǒng),包括 源計算系統(tǒng);與所述源計算系統(tǒng)相連的目標(biāo)計算系統(tǒng); 位于所述目標(biāo)計算系統(tǒng)內(nèi)的目標(biāo)數(shù)據(jù)存儲; 位于所述存儲管理系統(tǒng)內(nèi)的至少一個處理器;以及位于所述存儲管理系統(tǒng)內(nèi)的至少一個存儲器,所述存儲器存儲可通過所述至少一個處理器運(yùn)行以在所述存儲管理系統(tǒng)中的選定源位置或目標(biāo)位置上實(shí)現(xiàn)數(shù)據(jù)文件的重復(fù)數(shù)據(jù)刪除的指令,所述指令通過執(zhí)行來跟蹤所述目標(biāo)存儲庫內(nèi)存儲的已執(zhí)行重復(fù)數(shù)據(jù)刪除的數(shù)據(jù)塊的重復(fù)數(shù)據(jù)刪除信息; 提供用于對要存儲在所述目標(biāo)數(shù)據(jù)存儲內(nèi)的數(shù)據(jù)文件執(zhí)行重復(fù)數(shù)據(jù)刪除的重復(fù)數(shù)據(jù)刪除過程;應(yīng)用從多個已定義策略中選定的策略以判定用于執(zhí)行所述重復(fù)數(shù)據(jù)刪除過程的位置在所述源計算系統(tǒng)上或者在所述目標(biāo)計算系統(tǒng)上;通過執(zhí)行所述重復(fù)數(shù)據(jù)刪除過程在所判定的位置上對數(shù)據(jù)文件執(zhí)行重復(fù)數(shù)據(jù)刪除;以及更新數(shù)據(jù)文件的所跟蹤的重復(fù)數(shù)據(jù)刪除信息。
20.如權(quán)利要求19中所述的存儲管理系統(tǒng),其中所述選定策略是根據(jù)時間、系統(tǒng)負(fù)荷、 文件特征、客戶端節(jié)點(diǎn)以及策略域中的一項(xiàng)或多項(xiàng)進(jìn)行被的。
21.一種存儲在計算機(jī)可讀介質(zhì)上并可以加載到數(shù)字計算機(jī)的內(nèi)部存儲器中的計算機(jī)程序,其包括軟件代碼部分,當(dāng)所述程序在計算機(jī)上運(yùn)行時,所述軟件代碼部分用于執(zhí)行權(quán)利要求1至12中任一權(quán)利要求中的方法。
全文摘要
本發(fā)明的一方面包括允許在客戶端(源)位置和服務(wù)器(目標(biāo))位置兩者上執(zhí)行重復(fù)數(shù)據(jù)刪除活動的存儲管理系統(tǒng)配置。所述重復(fù)數(shù)據(jù)刪除操作的位置然后可以根據(jù)系統(tǒng)狀況或預(yù)定策略進(jìn)行優(yōu)化。在一個實(shí)施例中,通過使用統(tǒng)一的重復(fù)數(shù)據(jù)刪除過程算法以及訪問同一重復(fù)數(shù)據(jù)刪除索引(包含有關(guān)散列的數(shù)據(jù)塊的信息)來實(shí)現(xiàn)在客戶端和服務(wù)器之間的重復(fù)數(shù)據(jù)刪除活動的無縫切換。此外,對數(shù)據(jù)塊的任何數(shù)據(jù)轉(zhuǎn)換是在識別數(shù)據(jù)塊之后執(zhí)行的。因此,使用該存儲配置,所述存儲系統(tǒng)可以找到并利用通過客戶端或服務(wù)器端重復(fù)數(shù)據(jù)刪除產(chǎn)生的匹配塊。
文檔編號G06F11/14GK102473127SQ201080030039
公開日2012年5月23日 申請日期2010年7月12日 優(yōu)先權(quán)日2009年7月16日
發(fā)明者A·霍赫貝格, 希瑟 D·G·范, D·M·坎農(nóng), J·P·史密斯, M·亞庫舍夫, M·安格林 申請人:國際商業(yè)機(jī)器公司