多級(jí)別內(nèi)聯(lián)數(shù)據(jù)去重的制作方法
【專利說明】多級(jí)別內(nèi)聯(lián)數(shù)據(jù)去重
【背景技術(shù)】
[0001] 除非在此處進(jìn)行說明,否則此處所描述的材料不是本申請(qǐng)權(quán)利要求的現(xiàn)有技術(shù)并 且不因包含在該部分中而承認(rèn)是現(xiàn)有技術(shù)。
[0002] 隨著網(wǎng)絡(luò)和數(shù)據(jù)存儲(chǔ)技術(shù)的發(fā)展,越來越多的計(jì)算服務(wù)通過基于云的數(shù)據(jù)中心提 供給用戶或客戶,基于云的數(shù)據(jù)中心能夠?qū)崿F(xiàn)對(duì)各種級(jí)別的計(jì)算資源的租用存取。數(shù)據(jù)中 心能夠?yàn)閭€(gè)人和組織提供一系列的系統(tǒng)配置和操作的解決方案。雖然數(shù)據(jù)中心被配備成處 理極大規(guī)模的數(shù)據(jù)存儲(chǔ)和處理,但是數(shù)據(jù)存儲(chǔ)仍花費(fèi)資源、帶寬、速度和裝備財(cái)政成本。數(shù) 據(jù)中心操作的另一方面是用戶間數(shù)據(jù)(例如,應(yīng)用、配置數(shù)據(jù)和可消耗數(shù)據(jù))的去重。
[0003] 固定尺寸分塊(chunking)和基于Rabin指紋的內(nèi)容相關(guān)分塊(⑶C)是數(shù)據(jù)去重 中用來提高壓縮率的兩種常用策略。一種有效去重的期望方面在于,當(dāng)基礎(chǔ)數(shù)據(jù)具有小的 變化時(shí),其是魯棒的。通過并入靈活的塊尺寸,內(nèi)容相關(guān)分塊(或可變尺寸分塊)對(duì)小的變 化具有一定的魯棒性。然而,現(xiàn)有的CDC技術(shù)不使用在較大可變尺寸塊內(nèi)的"重復(fù)數(shù)據(jù)"來 改善去重。而且,除了空間節(jié)約之外,去重系統(tǒng)需要能夠以高的吞吐量執(zhí)行去重。由于去重 涉及到對(duì)大的數(shù)據(jù)集的處理,所以可能降低去重吞吐量的輔助存儲(chǔ)盤瓶頸是主要的挑戰(zhàn)。
[0004] 發(fā)明概述
[0005] 本公開一般描述了用于為數(shù)據(jù)中心環(huán)境提供多級(jí)別內(nèi)聯(lián)數(shù)據(jù)(inlinedata)重復(fù) 的技術(shù)。
[0006] 根據(jù)一些示例,一種用于提供多級(jí)別內(nèi)聯(lián)數(shù)據(jù)去重的方法可以包括:對(duì)待去重?cái)?shù) 據(jù)采指紋以生成被取指紋內(nèi)容;將數(shù)據(jù)劃分成多個(gè)塊,其中每個(gè)塊的尺寸取決于對(duì)應(yīng)的被 取指紋內(nèi)容的尺寸;將每個(gè)塊劃分成可變尺寸子塊和固定尺寸子塊;以及對(duì)固定尺寸子塊 進(jìn)行去重。
[0007] 根據(jù)其他示例,配置成執(zhí)行多級(jí)別內(nèi)聯(lián)數(shù)據(jù)去重的服務(wù)器可以包括:存儲(chǔ)器,其配 置成存儲(chǔ)指令;以及處理器,其配置成與存儲(chǔ)的指令相結(jié)合來執(zhí)行去重應(yīng)用。處理器可配置 成:對(duì)待去重?cái)?shù)據(jù)采指紋以生成被取指紋內(nèi)容;將數(shù)據(jù)劃分成多個(gè)塊,其中每個(gè)塊的尺寸 取決于對(duì)應(yīng)的被取指紋內(nèi)容的尺寸;將每個(gè)塊劃分成可變尺寸子塊和固定尺寸子塊;以及 對(duì)固定尺寸子塊去重。
[0008] 根據(jù)另外的示例,計(jì)算機(jī)可讀存儲(chǔ)器設(shè)備中可以存儲(chǔ)有用于執(zhí)行多級(jí)別內(nèi)聯(lián)數(shù)據(jù) 去重的指令。所述指令可以包括:由待去重?cái)?shù)據(jù)生成被取指紋內(nèi)容;將數(shù)據(jù)劃分成多個(gè)塊, 其中每個(gè)塊的尺寸取決于對(duì)應(yīng)的被取指紋內(nèi)容的尺寸;將每個(gè)塊劃分成可變尺寸子塊和固 定尺寸子塊;以及對(duì)固定尺寸子塊去重。
[0009] 前面的概述僅僅是示例性的,而不意在以任何方式進(jìn)行限制。通過參考附圖以及 下面的詳細(xì)說明,除了上文所描述的示例性的方案、實(shí)施例和特征之外,另外的方案、實(shí)施 例和特征將變得清晰可見。
【附圖說明】
[0010] 通過下面結(jié)合附圖給出的詳細(xì)說明和隨附的權(quán)利要求,本公開的前述特征以及其 它特征將變得更加清晰。應(yīng)理解的是,這些附圖僅描繪了依照本公開的多個(gè)實(shí)施例,因此, 不應(yīng)視為對(duì)本發(fā)明范圍的限制,將通過利用附圖結(jié)合附加的具體描述和細(xì)節(jié)對(duì)本公開進(jìn)行 說明,在附圖中:
[0011] 圖1示出了示例的數(shù)據(jù)中心,其中可以為數(shù)據(jù)中心環(huán)境提供多級(jí)別內(nèi)聯(lián)數(shù)據(jù)重 復(fù);
[0012] 圖2示出了示例的多級(jí)別內(nèi)聯(lián)數(shù)據(jù)重復(fù)系統(tǒng)的體系結(jié)構(gòu);
[0013] 圖3示出了多級(jí)別內(nèi)聯(lián)數(shù)據(jù)重復(fù)系統(tǒng)可以處理的示例的數(shù)據(jù)塊和子塊;
[0014] 圖4示出了多級(jí)別內(nèi)聯(lián)數(shù)據(jù)重復(fù)系統(tǒng)所采用的指紋詞典的示例的數(shù)據(jù)結(jié)構(gòu);
[0015] 圖5示出了通用計(jì)算設(shè)備,其可用于實(shí)施多級(jí)別內(nèi)聯(lián)數(shù)據(jù)重復(fù)系統(tǒng);
[0016] 圖6是示出用于提供多級(jí)別內(nèi)聯(lián)數(shù)據(jù)重復(fù)系統(tǒng)的示例方法的流程圖;以及
[0017] 圖7示出了示例的計(jì)算機(jī)程序產(chǎn)品的框圖,
[0018] 所有都是依照本文所描述的至少一些實(shí)施例來布置的。
[0019] 發(fā)明詳述
[0020] 在下面的詳細(xì)說明中,將參考附圖,附圖構(gòu)成了詳細(xì)說明的一部分。在附圖中,除 非上下文指出,否則相似的符號(hào)通常表示相似的部件。在詳細(xì)說明、附圖和權(quán)利要求中所描 述的示例性實(shí)施例不意在限制??梢允褂闷渌鼘?shí)施例,并且可以做出其它改變,而不偏離本 文呈現(xiàn)的主題的精神或范圍。將易于理解的是,如本文大致描述且如圖中所圖示的,本公開 的方案能夠以各種不同配置來布置、替代、組合、分離和設(shè)計(jì),所有這些都在本文中明確地 構(gòu)思出。
[0021] 本公開總體尤其涉及與為數(shù)據(jù)中心環(huán)境提供多級(jí)別、內(nèi)聯(lián)數(shù)據(jù)去重有關(guān)的方法、 裝置、系統(tǒng)、設(shè)備和/或計(jì)算機(jī)程序產(chǎn)品。
[0022] 簡(jiǎn)單來說,本申請(qǐng)?zhí)峁┝擞糜跀?shù)據(jù)去重的技術(shù),與常規(guī)技術(shù)相比,其以相對(duì)高的吞 吐量以及以相對(duì)少的存儲(chǔ)空間。以使用Rabin指紋法的內(nèi)容相關(guān)分塊(CDC)為基礎(chǔ),數(shù)據(jù) 可被采指紋且存儲(chǔ)在塊中,所述塊的尺寸取決于被取指紋的內(nèi)容的尺寸。在一些示例中,可 以對(duì)數(shù)據(jù)進(jìn)行多級(jí)例如兩級(jí)分塊,從而防止兩個(gè)以上數(shù)據(jù)塊共用的子塊不被去重。例如,在 第一級(jí)別,可以采用CDC算法來采指紋以及以內(nèi)容相關(guān)尺寸(可變尺寸)對(duì)數(shù)據(jù)分塊,在第 二級(jí)別,CDC塊可分割成小的固定尺寸塊。然后,分割后的CDC塊可用于去重。
[0023] 圖1示出了示例的數(shù)據(jù)中心,其中依照本文所描述的至少一些實(shí)施例,可以為數(shù) 據(jù)中心環(huán)境提供多級(jí)別內(nèi)聯(lián)數(shù)據(jù)重復(fù)。
[0024] 如圖100所示,物理數(shù)據(jù)中心102可以包括多個(gè)服務(wù)器以及諸如防火墻、路由器和 類似設(shè)備的專業(yè)設(shè)備??梢栽诿總€(gè)服務(wù)器上或者多個(gè)服務(wù)器之間建立多個(gè)虛擬服務(wù)器或虛 擬機(jī)104,用于向數(shù)據(jù)使用客戶端108提供服務(wù)。在一些實(shí)施方案中,一個(gè)或多個(gè)虛擬機(jī)可 以分組成虛擬數(shù)據(jù)中心106。數(shù)據(jù)使用客戶端108可以包括經(jīng)由計(jì)算設(shè)備118通過一個(gè)或 多個(gè)網(wǎng)絡(luò)110與數(shù)據(jù)中心102交互(112)的個(gè)人用戶、經(jīng)由服務(wù)器116與數(shù)據(jù)中心102交 互的企業(yè)客戶端、或者經(jīng)由服務(wù)器組114與數(shù)據(jù)中心102交互的其他數(shù)據(jù)中心。
[0025] 現(xiàn)代數(shù)據(jù)中心越來越是基于云的實(shí)體。由數(shù)據(jù)中心提供的服務(wù)包括但不限于數(shù)據(jù) 存儲(chǔ)、數(shù)據(jù)處理、托管應(yīng)用或者甚至是虛擬桌面。在多種情形下,大量的數(shù)據(jù)可能在多個(gè)用 戶間共用。例如,在托管應(yīng)用情形下,用戶可能產(chǎn)生同一應(yīng)用的多個(gè)副本,而只有極少的定 制部分。因此,對(duì)于大量的用戶情況,大量的應(yīng)用數(shù)據(jù)以及一些消耗數(shù)據(jù)都可能是重復(fù)的, 并且定制數(shù)據(jù)和一些消耗數(shù)據(jù)是唯一的。通過對(duì)共同的數(shù)據(jù)部分去重,可以節(jié)約大量的存 儲(chǔ)空間。由于無需數(shù)據(jù)中心來維護(hù)、復(fù)制以及以其他方式處理大量數(shù)據(jù),還可以節(jié)約諸如帶 寬和處理能力的附加資源。
[0026] 在根據(jù)一些示例的系統(tǒng)中,還可以對(duì)數(shù)據(jù)進(jìn)行多級(jí),例如兩級(jí),分塊,從而防止兩 個(gè)以上的數(shù)據(jù)塊共用的子塊無法被去重。第一階段可以采用CDC算法來對(duì)數(shù)據(jù)采指紋以及 以內(nèi)容相關(guān)尺寸對(duì)數(shù)據(jù)分塊,第二階段或后續(xù)階段隨后將CDC塊分割成小的固定尺寸塊, 這些固定尺寸塊可用于去重。通過對(duì)CDC采指紋的數(shù)據(jù)的尺寸應(yīng)用滑動(dòng)窗口,可以形成可 變尺寸塊。如果指紋的最后N位的十進(jìn)制等值等于預(yù)定數(shù)M,則可以為塊選擇該尺寸。否 貝1J,窗口尺寸可以滑動(dòng)(例如一個(gè)字節(jié))且重復(fù)處理,直至達(dá)到預(yù)定數(shù)值或者最大塊尺寸。 CDC塊的指紋可利用加密散列函數(shù)(例如,SHA-1)來計(jì)算且存儲(chǔ)在指紋數(shù)據(jù)庫中,這樣可有 助于去除冗余的可變尺寸CDC塊。然后,CDC塊可被劃分成固定尺寸子塊,該固定尺寸子塊 的SHA-1指紋還可以被計(jì)算且存儲(chǔ)在二維單元陣列("指紋詞典"的部分)中。然后,可以 利用指紋詞典來對(duì)子塊去重。為了優(yōu)化空間需求,指紋詞典可以包含被稱為存儲(chǔ)器內(nèi)Bloom 過濾器的部件,該部件可以被設(shè)計(jì)為利用對(duì)單元陣列進(jìn)行操作的Bloom過濾器判定子塊是 否已被存儲(chǔ)。在其他示例中,可將一位或多位的數(shù)據(jù)與所述單共同存儲(chǔ)以減少查找時(shí)間。
[0027] 圖2示出了依照本文所描述的至少一些實(shí)施例布置的示例的多級(jí)別內(nèi)聯(lián)數(shù)據(jù)重 復(fù)系統(tǒng)的體系結(jié)構(gòu)。
[0028] 如圖200所示,根據(jù)示例的多級(jí)別內(nèi)聯(lián)去重系統(tǒng)可以包括分塊器220和塊管理器 230。分塊器220可以接收數(shù)據(jù)流且將數(shù)據(jù)劃分成塊。分塊器220可以利用多階段分塊技 術(shù)將數(shù)據(jù)分劃成塊和子塊。一旦生成塊和子塊,可以計(jì)算它們的指紋,塊、子塊連同其指紋 一起可以傳送到塊管理器230。
[0029] 分塊器220可以包括三個(gè)子部件:(1)第一階段可變尺寸分塊器222,用于實(shí)施 CDC技術(shù)以將數(shù)據(jù)分塊成大的塊;(2)第二階段固定尺寸分塊器224,用于對(duì)大的塊應(yīng)用固 定尺寸分塊以生成子塊;以及(3)指紋生成器226,用于為每個(gè)塊計(jì)算指紋(