一種重復(fù)數(shù)據(jù)刪除方法和裝置的制造方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及數(shù)據(jù)處理技術(shù)領(lǐng)域,特別涉及重復(fù)數(shù)據(jù)刪除方法和裝置。
【背景技術(shù)】
[0002]目前,網(wǎng)絡(luò)中的數(shù)據(jù)總量呈現(xiàn)指數(shù)級(jí)增長(zhǎng),這不僅需要耗費(fèi)越來(lái)越多的網(wǎng)絡(luò)帶寬傳輸數(shù)據(jù),同時(shí)還需占用巨大的數(shù)據(jù)存儲(chǔ)空間。為降低計(jì)算機(jī)數(shù)據(jù)存儲(chǔ)系統(tǒng)和計(jì)算機(jī)網(wǎng)絡(luò)的總體擁有成本(英文:Total Cost of Ownership,縮寫(xiě):TC0),企業(yè)紛紛開(kāi)始采用重復(fù)數(shù)據(jù)刪除技術(shù)。
[0003]重復(fù)數(shù)據(jù)刪除(Data deduplicat1n)技術(shù)目前已成為計(jì)算機(jī)系統(tǒng)領(lǐng)域的一項(xiàng)主流且極為重要的技術(shù)。其工作原理為從數(shù)據(jù)流中識(shí)別出重復(fù)數(shù)據(jù),只保留重復(fù)數(shù)據(jù)的一個(gè)備份,刪除其它冗余數(shù)據(jù),在刪除重復(fù)數(shù)據(jù)的位置以指針引用,從而節(jié)約大量的數(shù)據(jù)存儲(chǔ)空間或網(wǎng)絡(luò)帶寬。如何快速進(jìn)行重復(fù)數(shù)據(jù)刪除是一個(gè)比較重要的問(wèn)題。
【發(fā)明內(nèi)容】
[0004]本發(fā)明提供重復(fù)數(shù)據(jù)刪除方法和裝置,提高重復(fù)數(shù)據(jù)刪除的效率。
[0005]本發(fā)明第一方面提供一種重復(fù)數(shù)據(jù)刪除裝置,包括通過(guò)總線連接的處理器、存儲(chǔ)器和硬件加速器,其中:
[0006]所述存儲(chǔ)器,用于儲(chǔ)存用于數(shù)據(jù)分類的第一程序,及用于數(shù)據(jù)去重的第二程序;
[0007]所述處理器,用于調(diào)用所述存儲(chǔ)器中儲(chǔ)存的第一程序,將待處理數(shù)據(jù)劃分為N個(gè)數(shù)據(jù)流,并通過(guò)N個(gè)線程分別將所述N個(gè)數(shù)據(jù)流傳送給所述硬件加速器;所述N為大于I的正整數(shù);
[0008]所述硬件加速器,用于分別計(jì)算所述N個(gè)數(shù)據(jù)流中所包括的數(shù)據(jù)塊的標(biāo)識(shí)信息;
[0009]所述處理器,還用于調(diào)用所述存儲(chǔ)器中儲(chǔ)存的第二程序,根據(jù)所述硬件加速器計(jì)算的數(shù)據(jù)塊的標(biāo)識(shí)信息執(zhí)行重復(fù)數(shù)據(jù)刪除處理。
[0010]本發(fā)明第一方面的第一種可能實(shí)現(xiàn)方式中:
[0011]所述處理器,具體用于調(diào)用所述存儲(chǔ)器中儲(chǔ)存的第一程序后,根據(jù)如下信息中的至少一種將所述待處理數(shù)據(jù)劃分為N個(gè)數(shù)據(jù)流:應(yīng)用端口號(hào),文件類型和應(yīng)用類型。
[0012]結(jié)合本發(fā)明第一方面或第一方面的第一種可能實(shí)現(xiàn)方式,在本發(fā)明第一方面的第二種可能實(shí)現(xiàn)方式中,所述硬件加速器包括:N個(gè)原始數(shù)據(jù)緩沖區(qū)、數(shù)據(jù)分片模塊和N個(gè)結(jié)果數(shù)據(jù)緩沖區(qū);
[0013]所述N個(gè)原始數(shù)據(jù)緩沖區(qū),用于分別緩沖所述處理器傳送的N個(gè)數(shù)據(jù)流;
[0014]所述數(shù)據(jù)分片模塊,用于分別對(duì)所述N個(gè)數(shù)據(jù)流進(jìn)行分片得到每個(gè)所述數(shù)據(jù)流所包括的數(shù)據(jù)塊,并分別計(jì)算每個(gè)數(shù)據(jù)塊的標(biāo)識(shí)信息;
[0015]所述N個(gè)結(jié)果數(shù)據(jù)緩沖區(qū),用于分別緩沖所述數(shù)據(jù)分片模塊計(jì)算的N個(gè)數(shù)據(jù)流所包括的數(shù)據(jù)塊的標(biāo)識(shí)信息。
[0016]結(jié)合本發(fā)明第一方面第二種可能實(shí)現(xiàn)方式,在本發(fā)明第一方面的第三種可能實(shí)現(xiàn)方式中,所述數(shù)據(jù)分片模塊具體包括:確定子模塊,第一數(shù)據(jù)分片子模塊以及第二數(shù)據(jù)分片子模塊,其中:
[0017]所述確定子模塊,用于確定對(duì)每個(gè)數(shù)據(jù)流在執(zhí)行重復(fù)數(shù)據(jù)刪除處理時(shí)所需要的數(shù)據(jù)塊的大小,并根據(jù)所述對(duì)每個(gè)數(shù)據(jù)流在執(zhí)行重復(fù)數(shù)據(jù)刪除處理時(shí)所需要的數(shù)據(jù)塊的大小,將所述N個(gè)數(shù)據(jù)流分別發(fā)送給所述第一數(shù)據(jù)分片子模塊或所述第二數(shù)據(jù)分片子模塊;
[0018]所述第一數(shù)據(jù)分片子模塊,用于對(duì)接收的數(shù)據(jù)流進(jìn)行分片得到所述數(shù)據(jù)流所包括的數(shù)據(jù)塊,使得每個(gè)數(shù)據(jù)塊的大小為2的η次方,并分別計(jì)算所述數(shù)據(jù)流的每個(gè)數(shù)據(jù)塊的標(biāo)識(shí)息;
[0019]所述第二數(shù)據(jù)分片子模塊,用于對(duì)接收的數(shù)據(jù)流進(jìn)行分片得到所述數(shù)據(jù)流所包括的數(shù)據(jù)塊,使得每個(gè)數(shù)據(jù)塊的大小為非2的η次方,并分別計(jì)算所述數(shù)據(jù)流的每個(gè)數(shù)據(jù)塊的標(biāo)識(shí)信息。
[0020]結(jié)合本發(fā)明第一方面第三種可能實(shí)現(xiàn)方式,在本發(fā)明第一方面的第四種可能實(shí)現(xiàn)方式中,所述第一數(shù)據(jù)分片子模塊以及所述第二數(shù)據(jù)分片子模塊分別包括:
[0021]滑動(dòng)窗口計(jì)算模塊,用于在對(duì)數(shù)據(jù)流分片時(shí),計(jì)算沿著所述數(shù)據(jù)流滑動(dòng)的固定大小的滑動(dòng)窗口內(nèi)的數(shù)據(jù)的指紋;
[0022]分片點(diǎn)計(jì)算模塊;用于當(dāng)所述當(dāng)滑動(dòng)窗口計(jì)算模塊計(jì)算的指紋滿足預(yù)置條件時(shí),將所述滑動(dòng)窗口的位置作為所述數(shù)據(jù)流所包括的數(shù)據(jù)塊的分片點(diǎn);
[0023]所述指紋計(jì)算模塊,用于計(jì)算所述數(shù)據(jù)流的每個(gè)數(shù)據(jù)塊的數(shù)據(jù)指紋作為所述每個(gè)數(shù)據(jù)塊的標(biāo)識(shí)信息,并將所述數(shù)據(jù)流的每個(gè)數(shù)據(jù)塊的數(shù)據(jù)指紋傳送給所述數(shù)據(jù)流對(duì)應(yīng)的結(jié)果數(shù)據(jù)緩沖區(qū)。
[0024]本發(fā)明第二方面提供一種重復(fù)數(shù)據(jù)刪除方法,應(yīng)用于如權(quán)利要求1至6任一項(xiàng)所述的重復(fù)數(shù)據(jù)刪除裝置中,所述方法包括:
[0025]處理器調(diào)用存儲(chǔ)器中儲(chǔ)存的第一程序,將待處理數(shù)據(jù)劃分為N個(gè)數(shù)據(jù)流,并通過(guò)N個(gè)線程分別將所述N個(gè)數(shù)據(jù)流傳送給硬件加速器;所述N為大于I的正整數(shù);
[0026]硬件加速器分別計(jì)算所述N個(gè)數(shù)據(jù)流中每個(gè)數(shù)據(jù)流所包括的數(shù)據(jù)塊的標(biāo)識(shí)信息;
[0027]所述處理器調(diào)用所述存儲(chǔ)器中儲(chǔ)存的第二程序,根據(jù)所述硬件加速器計(jì)算的所述數(shù)據(jù)塊的標(biāo)識(shí)信息執(zhí)行重復(fù)數(shù)據(jù)刪除處理。
[0028]本發(fā)明第二方面的第一種可能實(shí)現(xiàn)方式中,所述將待處理數(shù)據(jù)劃分為N個(gè)數(shù)據(jù)流,具體包括:
[0029]根據(jù)如下任信息中的至少一種將所述待處理數(shù)據(jù)劃分為N個(gè)數(shù)據(jù)流:應(yīng)用端口號(hào),文件類型和應(yīng)用類型。
[0030]結(jié)合本發(fā)明第二方面或第二方面的第一種可能實(shí)現(xiàn)方式,在本發(fā)明第二方面的第二種可能實(shí)現(xiàn)方式中,所述硬件加速器分別計(jì)算所述N個(gè)數(shù)據(jù)流中所包括的數(shù)據(jù)塊的標(biāo)識(shí)信息,具體包括:
[0031]所述硬件加速器分別對(duì)所述N個(gè)數(shù)據(jù)流進(jìn)行分片得到每個(gè)所述數(shù)據(jù)流所包括的數(shù)據(jù)塊;并分別計(jì)算每個(gè)數(shù)據(jù)塊的標(biāo)識(shí)信息。
[0032]結(jié)合本發(fā)明第二方面第二種可能實(shí)現(xiàn)方式,在本發(fā)明第二方面的第三種可能實(shí)現(xiàn)方式中,所述硬件加速器分別對(duì)所述N個(gè)數(shù)據(jù)流進(jìn)行分片之前,所述方法還包括:
[0033]確定對(duì)每個(gè)數(shù)據(jù)流在執(zhí)行重復(fù)數(shù)據(jù)刪除處理時(shí)所需要的數(shù)據(jù)塊的大小,將數(shù)據(jù)塊的大小為2的η次方的數(shù)據(jù)流,和所述數(shù)據(jù)塊的大小為非2的η次方的數(shù)據(jù)流,分別發(fā)送給不同的數(shù)據(jù)分片子模塊。
[0034]結(jié)合本發(fā)明第二方面第三種可能實(shí)現(xiàn)方式,在本發(fā)明第二方面的第四種可能實(shí)現(xiàn)方式中,所述硬件加速器分別對(duì)所述N個(gè)數(shù)據(jù)流進(jìn)行分片得到每個(gè)數(shù)據(jù)流所包括的數(shù)據(jù)塊,具體包括:
[0035]所述不同的數(shù)據(jù)分片子模塊分別對(duì)接收到的數(shù)據(jù)流計(jì)算沿著所述數(shù)據(jù)流滑動(dòng)的固定大小的滑動(dòng)窗口內(nèi)的數(shù)據(jù)的指紋;
[0036]當(dāng)所述計(jì)算的指紋滿足預(yù)置條件時(shí),將滑動(dòng)窗口的位置作為所述數(shù)據(jù)流所包括數(shù)據(jù)塊的分片點(diǎn)。
[0037]可見(jiàn),本發(fā)明的重復(fù)數(shù)據(jù)刪除裝置,可以通過(guò)處理器調(diào)用存儲(chǔ)器中儲(chǔ)存的程序,將待處理數(shù)據(jù)劃分成多個(gè)數(shù)據(jù)流,這樣硬件加速器就可以同時(shí)分別計(jì)算這些數(shù)據(jù)流所包括的數(shù)據(jù)塊的標(biāo)識(shí)信息,然后再由處理器根據(jù)這些標(biāo)識(shí)信息進(jìn)行重復(fù)數(shù)據(jù)刪除處理。由于本發(fā)明中重復(fù)數(shù)據(jù)刪除裝置可以將待處理數(shù)據(jù)劃分成多個(gè)數(shù)據(jù)流,進(jìn)而并行對(duì)這些數(shù)據(jù)流進(jìn)行重復(fù)數(shù)據(jù)刪除的處理,可以提高重復(fù)數(shù)據(jù)刪除的效率;另外,本發(fā)明將計(jì)算數(shù)據(jù)流所包括的數(shù)據(jù)塊的標(biāo)識(shí)信息的功能,采用硬件結(jié)構(gòu)來(lái)實(shí)現(xiàn),而不是通過(guò)調(diào)用程序?qū)崿F(xiàn),可以有效地提高重復(fù)數(shù)據(jù)刪除流程的效率。
【附圖說(shuō)明】
[0038]為了更清楚地說(shuō)明本發(fā)明實(shí)施例的技術(shù)方案,下面將對(duì)實(shí)施例描述中所需要使用的附圖作簡(jiǎn)單地介紹,顯而易見(jiàn)地,下面描述中的附圖僅僅是本發(fā)明的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來(lái)講,在不付出創(chuàng)造性勞動(dòng)性的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
[0039]圖1是本發(fā)明實(shí)施例提供的一種重復(fù)數(shù)據(jù)刪除裝置的結(jié)構(gòu)示意圖;
[0040]圖