新四季網

在包含源和目標的分布式環境中進行重複數據刪除的集成方法

2023-07-27 02:06:06

專利名稱:在包含源和目標的分布式環境中進行重複數據刪除的集成方法
技術領域:
本發明一般地涉及在數據存儲系統內執行的數據存儲和維護操作。更具體地說, 本發明涉及一種用於通過在數據源和目標兩者上執行重複數據刪除(deduplication)活動,有效地在存儲管理系統中執行重複數據刪除的集成方法。
背景技術:
重複數據刪除(消除冗餘數據的過程)正在成為在存儲系統中部署的重要技術。 重複數據刪除可以減少所需的存儲容量,因為僅存儲每個唯一的數據部分。在典型的配置中,諸如存儲管理伺服器或VTL (虛擬磁帶庫)之類的基於盤的存儲系統能夠檢測冗餘數據 「區」 (extent)(也稱為「塊」 (chunk))並且通過避免對這樣的區進行冗餘存儲來減少重複。 例如,重複數據刪除存儲系統可以將文件A分為數據塊a_h,檢測到數據塊b和e為冗餘數據,並且將所述冗餘數據塊僅存儲一次。所述冗餘可能在文件A中出現,也可能在存儲系統中存儲的其他文件中出現。存在對數據對象進行重複數據刪除的已知技術。但是,現有的重複數據刪除解決方案不允許共享在源或目標上執行的重複數據刪除操作所產生的數據塊。客戶被迫部署低效且不完整的重複數據刪除設備(appliance),或者在無法共享已執行重複數據刪除的數據的兩個產品上部署重複數據刪除。

發明內容
本發明的一方面包括使用執行重複數據刪除的集成方法解決上述問題的解決方案。在一個實施例中,一種系統配置允許在源(客戶端)和目標(伺服器)重複數據刪除活動之間進行無縫切換(如在此互換地使用那樣,客戶端為源,伺服器為目標)。所述切換可以在文件級或節點級(節點是目標存儲伺服器內看到的來自源客戶端的所有數據的表示) 上發生。因此,客戶端節點A可以被配置為執行源端重複數據刪除,而客戶端節點B將被配置為執行目標端重複數據刪除。此外,由目標或源上執行的重複數據刪除活動產生的塊可以在多個節點之間以及在不同文件之間重複使用。在本發明的一個實現中,此集成重複數據刪除功能是通過部署同一重複數據刪除過程和在源和目標之間共享重複數據刪除索引來實現的。諸如壓縮和加密之類的任何數據轉換在數據塊的指紋識別(fingerprinting)和散列識別之後執行,以確保在整個存儲管理系統的任何部分上存儲的數據塊都相互完全相同。在其他實現中,提供了判定重複數據刪除位置的策略,以允許對將在客戶端或者伺服器環境中執行的重複數據刪除的範圍進行自動的和粒度的定義。儘管本公開針對客戶端和伺服器描述了本發明的各方面,但是本發明並不限於客戶端-伺服器實現。相反,所公開的操作可以應用於涉及源和目標之間已執行重複數據刪除的數據的存儲和檢索的任何解決方案。
本發明的一個實施例允許在分布式存儲管理系統中的源位置或目標位置上執行數據文件重複數據刪除。所述存儲管理系統具有與目標計算系統相連的源計算系統,以及位於所述目標計算系統內的目標數據存儲。所述存儲管理系統進一步維護用於跟蹤在所述目標數據存儲內存儲的已執行重複數據刪除的數據塊的共享索引。在一個實施例中,所述共享索引作為資料庫進行共享,並且可由源計算機器和目標計算機器中的每個進行訪問。替代地,共享索引可通過在源和所述目標之間實現數據塊信息的通信的客戶端-伺服器協議進行訪問。提供了重複數據刪除過程以對要存儲在目標數據存儲內的數據塊執行重複數據刪除。重複數據刪除是通過在目標計算系統或源計算系統上執行重複數據刪除指令來執行的。因此,使用重複數據刪除過程將數據文件轉換為一組已執行重複數據刪除的數據塊。在重複數據刪除之後,該組已執行重複數據刪除的數據塊存儲在目標數據存儲內,並且在共享索引中更新該組已執行重複數據刪除的數據塊的重複數據刪除信息。該組已執行重複數據刪除的數據塊可以在以後恢復到源。進一步的實施例使用指紋識別算法定義數據塊,但是只要源和目標使用同一種機制,被選擇定義數據塊的任何機制都將是可行的。在一個實施例中,所述重複數據刪除過程包括用於將數據分為可變大小塊的指紋識別算法和用於識別源計算系統和所述目標計算系統中的每個上的重複數據塊的散列算法。替代地,所述重複數據刪除過程可以包括用於在源計算系統上執行的重複數據刪除活動的第一組指紋識別和散列算法,以及用於在目標計算系統上執行的重複數據刪除活動的第二組指紋識別和散列算法。此外在進一步的實施例中,數據轉換在指紋識別和散列識別之後執行。這些數據轉換可以包括壓縮和加密中的一項或兩項。響應於將所述一組已執行重複數據刪除的數據塊恢復到源計算機器,可由源計算機器針對每個數據塊撤消所述數據轉換。替代地,在將所述一組已執行重複數據刪除的數據塊恢復到源計算機器之前,可由目標計算機器撤消所述轉換。本發明的另一實施例根據使用選定策略在分布式存儲管理系統中的源位置或目標位置上執行數據文件的重複數據刪除。該存儲管理系統還被配置為支持與目標計算系統相連的源計算系統,其中目標數據存儲位於目標計算系統內,並且存儲在目標數據存儲中的數據的重複數據刪除信息通過共享索引進行管理。在該實施例中,針對將要存儲在目標數據存儲內的數據文件的重複數據刪除選擇散列算法。在該實施例中,應用從多個已定義策略中選定的策略以判定重複數據刪除活動在源計算機器上或者在目標計算機器上的位置。使用選定的重複數據刪除過程在所判定的位置上對數據文件執行重複數據刪除,並且在共享索引內更新數據文件的重複數據刪除信息。在進一步的實施例中,除了其他因素之外,可以根據時間、系統負荷、文件類型、文件特徵、客戶端節點和策略域來選擇所述選定策略。


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

同类文章

一種新型多功能組合攝影箱的製作方法

一種新型多功能組合攝影箱的製作方法【專利摘要】本實用新型公開了一種新型多功能組合攝影箱,包括敞開式箱體和前攝影蓋,在箱體頂部設有移動式光源盒,在箱體底部設有LED脫影板,LED脫影板放置在底板上;移動式光源盒包括上蓋,上蓋內設有光源,上蓋部設有磨沙透光片,磨沙透光片將光源封閉在上蓋內;所述LED脫影

壓縮模式圖樣重疊檢測方法與裝置與流程

本發明涉及通信領域,特別涉及一種壓縮模式圖樣重疊檢測方法與裝置。背景技術:在寬帶碼分多址(WCDMA,WidebandCodeDivisionMultipleAccess)系統頻分復用(FDD,FrequencyDivisionDuplex)模式下,為了進行異頻硬切換、FDD到時分復用(TDD,Ti

個性化檯曆的製作方法

專利名稱::個性化檯曆的製作方法技術領域::本實用新型涉及一種檯曆,尤其涉及一種既顯示月曆、又能插入照片的個性化檯曆,屬於生活文化藝術用品領域。背景技術::公知的立式檯曆每頁皆由月曆和畫面兩部分構成,這兩部分都是事先印刷好,固定而不能更換的。畫面或為風景,或為模特、明星。功能單一局限性較大。特別是畫

一種實現縮放的視頻解碼方法

專利名稱:一種實現縮放的視頻解碼方法技術領域:本發明涉及視頻信號處理領域,特別是一種實現縮放的視頻解碼方法。背景技術: Mpeg標準是由運動圖像專家組(Moving Picture Expert Group,MPEG)開發的用於視頻和音頻壓縮的一系列演進的標準。按照Mpeg標準,視頻圖像壓縮編碼後包

基於加熱模壓的纖維增強PBT複合材料成型工藝的製作方法

本發明涉及一種基於加熱模壓的纖維增強pbt複合材料成型工藝。背景技術:熱塑性複合材料與傳統熱固性複合材料相比其具有較好的韌性和抗衝擊性能,此外其還具有可回收利用等優點。熱塑性塑料在液態時流動能力差,使得其與纖維結合浸潤困難。環狀對苯二甲酸丁二醇酯(cbt)是一種環狀預聚物,該材料力學性能差不適合做纖

一種pe滾塑儲槽的製作方法

專利名稱:一種pe滾塑儲槽的製作方法技術領域:一種PE滾塑儲槽一、 技術領域 本實用新型涉及一種PE滾塑儲槽,主要用於化工、染料、醫藥、農藥、冶金、稀土、機械、電子、電力、環保、紡織、釀造、釀造、食品、給水、排水等行業儲存液體使用。二、 背景技術 目前,化工液體耐腐蝕貯運設備,普遍使用傳統的玻璃鋼容

釘的製作方法

專利名稱:釘的製作方法技術領域:本實用新型涉及一種釘,尤其涉及一種可提供方便拔除的鐵(鋼)釘。背景技術:考慮到廢木材回收後再加工利用作業的方便性與安全性,根據環保規定,廢木材的回收是必須將釘於廢木材上的鐵(鋼)釘拔除。如圖1、圖2所示,目前用以釘入木材的鐵(鋼)釘10主要是在一釘體11的一端形成一尖

直流氧噴裝置的製作方法

專利名稱:直流氧噴裝置的製作方法技術領域:本實用新型涉及ー種醫療器械,具體地說是ー種直流氧噴裝置。背景技術:臨床上的放療過程極易造成患者的局部皮膚損傷和炎症,被稱為「放射性皮炎」。目前對於放射性皮炎的主要治療措施是塗抹藥膏,而放射性皮炎患者多伴有局部疼痛,對於止痛,多是通過ロ服或靜脈注射進行止痛治療

新型熱網閥門操作手輪的製作方法

專利名稱:新型熱網閥門操作手輪的製作方法技術領域:新型熱網閥門操作手輪技術領域:本實用新型涉及一種新型熱網閥門操作手輪,屬於機械領域。背景技術::閥門作為流體控制裝置應用廣泛,手輪傳動的閥門使用比例佔90%以上。國家標準中提及手輪所起作用為傳動功能,不作為閥門的運輸、起吊裝置,不承受軸向力。現有閥門

用來自動讀取管狀容器所載識別碼的裝置的製作方法

專利名稱:用來自動讀取管狀容器所載識別碼的裝置的製作方法背景技術:1-本發明所屬領域本發明涉及一種用來自動讀取管狀容器所載識別碼的裝置,其中的管狀容器被放在循環於配送鏈上的文檔匣或託架裝置中。本發明特別適用於,然而並非僅僅專用於,對引入自動分析系統的血液樣本試管之類的自動識別。本發明還涉及專為實現讀