本公開的各種實(shí)施例總體上涉及存儲(chǔ)領(lǐng)域,并更為具體地涉及用于數(shù)據(jù)備份的方法及設(shè)備。
背景技術(shù):
::在數(shù)據(jù)存儲(chǔ)設(shè)備中,例如emc公司的數(shù)據(jù)備份產(chǎn)品datadomain(數(shù)據(jù)域)中,在將大量數(shù)據(jù)讀備份到存儲(chǔ)設(shè)備(例如,磁盤)之前,首先需要執(zhí)行重復(fù)數(shù)據(jù)刪除操作,也稱去重(de-duplication)操作,以僅將大量數(shù)據(jù)中的更新部分備份到存儲(chǔ)設(shè)備中,從而節(jié)省了存儲(chǔ)空間。然而在這種數(shù)據(jù)存儲(chǔ)設(shè)備中,包括了去重操作在內(nèi)的諸如數(shù)據(jù)分段、壓縮/解壓縮、加密/解密之類的相關(guān)操作均是通過中央處理器(cpu)來完成的。因此,連接大量待備份數(shù)據(jù)與存儲(chǔ)設(shè)備之間的網(wǎng)絡(luò)接口卡(nic/fc)通常不具備任何可編程功能。雖然上述用于數(shù)據(jù)備份的操作可以通過cpu來執(zhí)行,但是這種基于cpu的解決方案往往占用了大量cpu資源,并且導(dǎo)致單位功耗輸出的性能(例如,每毫瓦輸出的性能)較低,此外cpu在某些單線程的處理上與例如現(xiàn)場(chǎng)可編程門陣列(fpga)之類的硬件設(shè)備相比并不具有優(yōu)勢(shì)。也可以使用專門用于執(zhí)行上述操作的專用硬件(例如,專用集成電路,asic)代替cpu來完成上述操作。這種基于專用硬件的解決方案雖然可以實(shí)現(xiàn)較高的單位功耗輸出的性能,但由于其在硬件上的不可改變性,使得這種基于專用硬件的網(wǎng)絡(luò)接口卡的擴(kuò)展性或設(shè)計(jì)靈活性受到大大受限。技術(shù)實(shí)現(xiàn)要素:為了解決上述問題,本公開的實(shí)施例提供了一種基于網(wǎng)絡(luò)接口卡并尤其例如是基于fpga的網(wǎng)絡(luò)接口卡的用于數(shù)據(jù)備份的方法及設(shè)備。本公開的第一方面提供了一種用于數(shù)據(jù)備份的方法,包括:在網(wǎng)絡(luò)接口卡中,對(duì)輸入的第一數(shù)據(jù)進(jìn)行分段處理,以獲得多個(gè)數(shù)據(jù)段;在該網(wǎng)絡(luò)接口卡中,為各個(gè)數(shù)據(jù)段確定相應(yīng)的摘要數(shù)據(jù);以及在中央處理器中,將該各個(gè)數(shù)據(jù)段的該摘要數(shù)據(jù)與對(duì)應(yīng)于已處理數(shù)據(jù)段的已有摘要數(shù)據(jù)逐一地進(jìn)行比較,并基于比較結(jié)果來確定是否將與該摘要數(shù)據(jù)對(duì)應(yīng)的數(shù)據(jù)段進(jìn)行去重操作,以執(zhí)行數(shù)據(jù)備份。根據(jù)本公開的實(shí)施例,該網(wǎng)絡(luò)接口卡可以被配置為基于現(xiàn)場(chǎng)可編程門陣列fpga的網(wǎng)絡(luò)接口卡。由于將一部分例如數(shù)據(jù)分段等尤其適于網(wǎng)絡(luò)接口卡執(zhí)行的操作移入到網(wǎng)絡(luò)接口卡中執(zhí)行,因此降低了對(duì)cpu的資源占用,從而在整體上實(shí)現(xiàn)了性價(jià)比以及功耗性能比的優(yōu)化。根據(jù)本公開的實(shí)施例,在該網(wǎng)絡(luò)接口卡中,為各個(gè)數(shù)據(jù)段確定相應(yīng)的摘要數(shù)據(jù)(fingerprint,fp)可以包括:在該網(wǎng)絡(luò)接口卡中,為各個(gè)數(shù)據(jù)段基于安全哈希算法sha1來確定相應(yīng)的摘要數(shù)據(jù)。需要指出,使用摘要數(shù)據(jù)代替數(shù)據(jù)段的優(yōu)點(diǎn)在于,使用少量的字節(jié)數(shù)(例如,僅16個(gè)字節(jié))就可以代表各個(gè)數(shù)據(jù)段,以使得在后面進(jìn)行去重操作時(shí),無需使每個(gè)數(shù)據(jù)段以逐字節(jié)的方式與已有數(shù)據(jù)段進(jìn)行比較,而是只需將表示相應(yīng)數(shù)據(jù)段的具有少量字節(jié)數(shù)的摘要數(shù)據(jù)與已有的摘要數(shù)據(jù)比較即可。使用例如sha1算法獲得的摘要數(shù)據(jù)盡管丟失了信息量,但由于該算法的精巧設(shè)計(jì),使得通過使用該算法獲得的摘要數(shù)據(jù)來進(jìn)行后續(xù)去重判斷時(shí)的錯(cuò)誤率極低。因此大幅降低了cpu計(jì)算的復(fù)雜度。根據(jù)本公開的實(shí)施例,該方法還可以包括在對(duì)該第一數(shù)據(jù)進(jìn)行分段處理之前,通過協(xié)議處理,從輸入到該網(wǎng)絡(luò)接口卡中的數(shù)據(jù)包中獲得該第一數(shù)據(jù)。該協(xié)議處理操作使得能夠從通過例如網(wǎng)絡(luò)接口卡接口(nic)或 光纖通道接口(fc)等不同接口輸入的數(shù)據(jù)包(datapacket)中提取相應(yīng)的原始數(shù)據(jù),以用于隨后的分段處理。根據(jù)本公開的實(shí)施例,在該中央處理器中,將該各個(gè)數(shù)據(jù)段的該摘要數(shù)據(jù)與已有摘要數(shù)據(jù)逐一地進(jìn)行比較,并基于比較結(jié)果來確定是否將與該摘要數(shù)據(jù)對(duì)應(yīng)的數(shù)據(jù)段進(jìn)行去重操作包括如果該摘要數(shù)據(jù)與已有摘要數(shù)據(jù)中的任何一個(gè)相匹配,則該中央處理器對(duì)與該摘要數(shù)據(jù)相對(duì)應(yīng)的數(shù)據(jù)段進(jìn)行去重操作。根據(jù)本公開的實(shí)施例,在該中央處理器中,將該各個(gè)數(shù)據(jù)段的該摘要數(shù)據(jù)與已有摘要數(shù)據(jù)逐一地進(jìn)行比較,并基于比較結(jié)果來確定是否將與該摘要數(shù)據(jù)對(duì)應(yīng)的數(shù)據(jù)段進(jìn)行去重操作包括如果該摘要數(shù)據(jù)不與已有摘要數(shù)據(jù)中的任何一個(gè)相匹配,則該中央處理器確定與該摘要數(shù)據(jù)相對(duì)應(yīng)的數(shù)據(jù)段確定為無法進(jìn)行去重操作的數(shù)據(jù)段;以及在該網(wǎng)絡(luò)接口卡中對(duì)該無法進(jìn)行去重操作的數(shù)據(jù)段進(jìn)行壓縮操作。這種在數(shù)據(jù)備份到存儲(chǔ)設(shè)備之前進(jìn)行的在線(in-line)去重操作有效地減少了重復(fù)數(shù)據(jù)對(duì)存儲(chǔ)空間的占用。可選地,該方法還可以包括:在該網(wǎng)絡(luò)接口卡中對(duì)壓縮后的數(shù)據(jù)段進(jìn)行加密操作。根據(jù)本公開的實(shí)施例,該方法還可以包括:在為每個(gè)數(shù)據(jù)段確定相應(yīng)的摘要數(shù)據(jù)之后,從該網(wǎng)絡(luò)接口卡中將該摘要數(shù)據(jù)連同與該摘要數(shù)據(jù)相對(duì)應(yīng)的該數(shù)據(jù)段寫入到第一緩存中。根據(jù)本公開的實(shí)施例,該方法還可以包括:在將該摘要數(shù)據(jù)與已有摘要數(shù)據(jù)逐一地進(jìn)行比較之前,中央處理器從該第一緩存中讀取該摘要數(shù)據(jù)。根據(jù)本公開的實(shí)施例,該方法還可以包括:在將該摘要數(shù)據(jù)與已有摘要數(shù)據(jù)逐一地進(jìn)行比較之后,中央處理器從該第一緩存中讀取該無法進(jìn)行去重操作的數(shù)據(jù)段,用于在該網(wǎng)絡(luò)接口卡中的壓縮操作。使用例如一個(gè)或多個(gè)第一緩存加快了中央處理器對(duì)經(jīng)過網(wǎng)絡(luò)接 口卡處理的待備份數(shù)據(jù)的讀寫(i/o)速度。根據(jù)本公開的實(shí)施例,該方法還可以包括:在該壓縮操作或該加密操作之后,將在該網(wǎng)絡(luò)接口卡中壓縮后的數(shù)據(jù)段或加密后的數(shù)據(jù)段寫入到第二緩存中。本公開的第二方面提供了一種用于數(shù)據(jù)備份的設(shè)備,包括:數(shù)據(jù)分段裝置,用于在網(wǎng)絡(luò)接口卡中,對(duì)輸入的第一數(shù)據(jù)進(jìn)行分段處理,以獲得多個(gè)數(shù)據(jù)段;摘要數(shù)據(jù)確定裝置,用于在該網(wǎng)絡(luò)接口卡中,為各個(gè)數(shù)據(jù)段確定相應(yīng)的摘要數(shù)據(jù);以及去重確定裝置,用于在中央處理器中,將該各個(gè)數(shù)據(jù)段的該摘要數(shù)據(jù)與對(duì)應(yīng)于已處理數(shù)據(jù)段的已有摘要數(shù)據(jù)逐一地進(jìn)行比較,并基于比較結(jié)果來確定是否將與該摘要數(shù)據(jù)對(duì)應(yīng)的數(shù)據(jù)段進(jìn)行去重操作,以執(zhí)行數(shù)據(jù)備份。根據(jù)本公開的實(shí)施例,該網(wǎng)絡(luò)接口卡被配置為基于現(xiàn)場(chǎng)可編程門陣列fpga的網(wǎng)絡(luò)接口卡。根據(jù)本公開的實(shí)施例,該摘要數(shù)據(jù)確定裝置包括:安全哈希算法單元,用于在該網(wǎng)絡(luò)接口卡中,為各個(gè)數(shù)據(jù)段基于安全哈希算法來確定相應(yīng)的摘要數(shù)據(jù)。根據(jù)本公開的實(shí)施例,該設(shè)備還包括:數(shù)據(jù)預(yù)處理裝置,用于在對(duì)該第一數(shù)據(jù)進(jìn)行分段處理之前,通過協(xié)議處理,從輸入到該網(wǎng)絡(luò)接口卡中的數(shù)據(jù)包中獲得該第一數(shù)據(jù)。根據(jù)本公開的實(shí)施例,該去重確定裝置包括:去重執(zhí)行單元,用于如果該摘要數(shù)據(jù)與已有摘要數(shù)據(jù)中的任何一個(gè)相匹配,則該中央處理器對(duì)與該摘要數(shù)據(jù)相對(duì)應(yīng)的數(shù)據(jù)段進(jìn)行去重操作。根據(jù)本公開的實(shí)施例,該去重確定裝置包括:壓縮判定單元,用于如果該摘要數(shù)據(jù)不與已有摘要數(shù)據(jù)中的任何一個(gè)相匹配,則中該中央處理器確定與該摘要數(shù)據(jù)相對(duì)應(yīng)的數(shù)據(jù)段確定為無法進(jìn)行去重操作的數(shù)據(jù)段;以及壓縮執(zhí)行單元,用于在該網(wǎng)絡(luò)接口卡中對(duì)該無法進(jìn)行去重操作的數(shù)據(jù)段進(jìn)行壓縮操作。根據(jù)本公開的實(shí)施例,該設(shè)備還包括:加密單元,用于在該網(wǎng)絡(luò)接口卡中對(duì)壓縮后的數(shù)據(jù)段進(jìn)行加密操作。根據(jù)本公開的實(shí)施例,該設(shè)備還包括:第一數(shù)據(jù)寫入單元,用于在為每個(gè)數(shù)據(jù)段確定相應(yīng)的摘要數(shù)據(jù)之后,從該網(wǎng)絡(luò)接口卡中將該摘要數(shù)據(jù)連同與該摘要數(shù)據(jù)相對(duì)應(yīng)的該數(shù)據(jù)段寫入到第一緩存中。根據(jù)本公開的實(shí)施例,該設(shè)備還包括:第一數(shù)據(jù)讀取單元,用于在將該摘要數(shù)據(jù)與已有摘要數(shù)據(jù)逐一地進(jìn)行比較之前,中央處理器從該第一緩存中讀取該摘要數(shù)據(jù)。根據(jù)本公開的實(shí)施例,該設(shè)備還包括:在第二數(shù)據(jù)讀取單元,用于將該摘要數(shù)據(jù)與已有摘要數(shù)據(jù)逐一地進(jìn)行比較之后,中央處理器從該第一緩存中讀取該無法進(jìn)行去重操作的數(shù)據(jù)段,用于在該網(wǎng)絡(luò)接口卡中的壓縮操作。根據(jù)本公開的實(shí)施例,該設(shè)備還包括:第二數(shù)據(jù)寫入單元,用于在該壓縮操作或該加密操作之后,將在該網(wǎng)絡(luò)接口卡中壓縮后的數(shù)據(jù)段或加密后的數(shù)據(jù)段寫入到第二緩存中。本公開的第三方面提供了一種用于數(shù)據(jù)備份的計(jì)算機(jī)程序產(chǎn)品,該計(jì)算機(jī)程序產(chǎn)品被有形地存儲(chǔ)在非瞬態(tài)計(jì)算機(jī)可讀介質(zhì)上并且包括機(jī)器可執(zhí)行指令,該機(jī)器可執(zhí)行指令在被執(zhí)行時(shí)使機(jī)器執(zhí)行根據(jù)權(quán)利要求1至11任一項(xiàng)該的方法的步驟。本公開的第四方面提供了一種數(shù)據(jù)存儲(chǔ)設(shè)備,該數(shù)據(jù)存儲(chǔ)設(shè)備用于執(zhí)行本公開第一方面中所述的用于數(shù)據(jù)備份的方法。附圖說明圖1示出了根據(jù)本公開的實(shí)施例的用于數(shù)據(jù)備份的方法的流程圖。圖2示出了根據(jù)本公開的實(shí)施例的基于fpga的用于數(shù)據(jù)備份的系統(tǒng)的結(jié)構(gòu)圖。圖3示出了根據(jù)本公開實(shí)施例的用于數(shù)據(jù)備份的設(shè)備的框圖。具體實(shí)施方式下面將參考附圖中示出的若干示例實(shí)施例來描述本公開的原理。雖然附圖中顯示了本公開的優(yōu)選實(shí)施例,但應(yīng)當(dāng)理解,描述這些實(shí)施例僅是為了使本領(lǐng)域技術(shù)人員能夠更好地理解進(jìn)而實(shí)現(xiàn)本公開,而并非以任何方式限制本公開的范圍。圖1示出了根據(jù)本公開的實(shí)施例的用于數(shù)據(jù)備份的方法100的流程圖。如圖1所示,該方法100包括下面主要步驟s110-s130:在步驟s110,在網(wǎng)絡(luò)接口卡中,對(duì)輸入的第一數(shù)據(jù)進(jìn)行分段處理,以獲得多個(gè)數(shù)據(jù)段;在步驟s120,在該網(wǎng)絡(luò)接口卡中,為各個(gè)數(shù)據(jù)段確定相應(yīng)的摘要數(shù)據(jù);以及在步驟s130,在中央處理器中,將該各個(gè)數(shù)據(jù)段的該摘要數(shù)據(jù)與對(duì)應(yīng)于已處理數(shù)據(jù)段的已有摘要數(shù)據(jù)逐一地進(jìn)行比較,并基于比較結(jié)果來確定是否將與該摘要數(shù)據(jù)對(duì)應(yīng)的數(shù)據(jù)段進(jìn)行去重操作。優(yōu)選地,該網(wǎng)絡(luò)接口卡可以被配置為基于現(xiàn)場(chǎng)可編程門陣列fpga的網(wǎng)絡(luò)接口卡。相比于cpu和專用集成硬件設(shè)備而言,fpga具有在單位功耗輸出的性能與可擴(kuò)展性之間的很好的折中。換言之,fpga不但由于擁有軟件和硬件兩者的可編程能力而具有相比于專用集成硬件而言更好的可擴(kuò)展性,而且fpga非常適合處理如上所提及的諸如數(shù)據(jù)分段、壓縮/解壓縮、加密/解密之類的一些特定操作,因此使得fpga具有多倍于cpu的單位功耗輸出的性能。這使得利用fpga而實(shí)現(xiàn)的連接待備份數(shù)據(jù)與存儲(chǔ)裝置之間的網(wǎng)絡(luò)接口卡具有整體上較高的性價(jià)比以及提高的功耗性能比。從圖1中方法100的步驟中可以看出,由于可以證明數(shù)據(jù)分段步驟s110與摘要數(shù)據(jù)確定步驟s120是尤其適于網(wǎng)絡(luò)接口卡執(zhí)行的操作,因此被并入到優(yōu)選為fpga的網(wǎng)絡(luò)接口卡中執(zhí)行,而去重操作s130由于更適于cpu執(zhí)行,因此仍保持為由cpu執(zhí)行。這種處理任務(wù)上的分割實(shí)現(xiàn)了整體上的性價(jià)比以及功耗性能比的優(yōu)化。圖2示出了根據(jù)本公開的實(shí)施例的基于fpga的用于數(shù)據(jù)備份的系統(tǒng)的結(jié)構(gòu)圖。下面結(jié)合圖2,對(duì)圖1中的方法100的步驟進(jìn)行詳細(xì)描述。根據(jù)本公開的實(shí)施例,該方法100可以額外地包括:在對(duì)該第一數(shù)據(jù)進(jìn)行分段處理(即,步驟s110)之前,通過協(xié)議處理,從輸入到該網(wǎng)絡(luò)接口卡中的數(shù)據(jù)包中獲得第一數(shù)據(jù)。根據(jù)圖2所示的實(shí)施例,取決于不同的外部數(shù)據(jù)來源,不同的外部數(shù)據(jù)包首先通過網(wǎng)絡(luò)接口卡接口(nic)201或光纖通道接口(fc)202被輸入到基于fpga網(wǎng)絡(luò)接口卡210中,由于輸入到網(wǎng)絡(luò)接口卡210中的數(shù)據(jù)包并不是原始數(shù)據(jù),因此隨后需要通過不同的協(xié)議處理來從輸入的數(shù)據(jù)包中提取相應(yīng)的作為原始數(shù)據(jù)的第一數(shù)據(jù),以用于隨后的數(shù)據(jù)分段處理。圖2中所示的協(xié)議處理包括例如tcp/ip和fc的傳輸層協(xié)議處理203,以及例如網(wǎng)絡(luò)文件系統(tǒng)(nfs)/通用因特網(wǎng)文件系統(tǒng)(cifs)的應(yīng)用層協(xié)議處理204。在獲得作為原始數(shù)據(jù)的第一數(shù)據(jù)之后,接下來,方法進(jìn)行到步驟s110。在步驟s110處,在網(wǎng)絡(luò)接口卡中,對(duì)輸入的第一數(shù)據(jù)進(jìn)行分段處理,以獲得多個(gè)數(shù)據(jù)段。根據(jù)圖2所示的實(shí)施例,將作為原始數(shù)據(jù)的第一數(shù)據(jù)例如通過錨點(diǎn)(anchor)算法進(jìn)行分段處理,如由方框205所指示。根據(jù)本公開的一個(gè)具體示例,經(jīng)分段處理后的多個(gè)數(shù)據(jù)段可以具有從幾kb到幾gb范圍內(nèi)的不等的大小。根據(jù)本公開的一個(gè)具體示例,對(duì)第一數(shù)據(jù)的分段處理可以優(yōu)選地采用不定長(zhǎng)的方式。這是由于用戶對(duì)一個(gè)文件(例如,gb數(shù)量級(jí)的文件)的改動(dòng)可能很小,例如,僅增加幾個(gè)字節(jié),這種情況下,如果采用定長(zhǎng)分段處理,則后面所有沒有被改變的數(shù)據(jù)段也都將隨之被改變。采用不定長(zhǎng)分段處理則可以適應(yīng)性地僅關(guān)注于發(fā)生改變的那些數(shù)據(jù)段,并且使得未發(fā)生改變的那些數(shù)據(jù)段不受影響,從而提高了去重的效率。需要指出,本公開并不旨在限定用于數(shù)據(jù)分段處理的算法,任何數(shù)據(jù)分段算法均應(yīng)落入本公開的保護(hù)范圍內(nèi)。在獲得各個(gè)數(shù)據(jù)段之后,接下來,方法100進(jìn)行到步驟s120。 在步驟s120處,在該網(wǎng)絡(luò)接口卡中,為各個(gè)數(shù)據(jù)段確定相應(yīng)的摘要數(shù)據(jù)。根據(jù)本公開的實(shí)施例,步驟s120可以包括在該網(wǎng)絡(luò)接口卡中,為各個(gè)數(shù)據(jù)段基于安全哈希算法(sha1)來確定相應(yīng)的摘要數(shù)據(jù),由方框205所指示。同樣,本公開并不旨在限定用于獲得摘要數(shù)據(jù)的算法,除sha1之外的其他任何用于獲得摘要數(shù)據(jù)的算法同樣應(yīng)當(dāng)落入本公開的保護(hù)范圍內(nèi)。要指出,使用摘要數(shù)據(jù)代替數(shù)據(jù)段的優(yōu)點(diǎn)在于,僅使用少量的字節(jié)數(shù)(例如,sha1算法輸出的摘要數(shù)據(jù)僅為16個(gè)字節(jié))就可以代表數(shù)據(jù)段,以使得在后面繼進(jìn)行去重操作時(shí),無需使每個(gè)數(shù)據(jù)段以逐字節(jié)的方式與已有數(shù)據(jù)段進(jìn)行比較,而是只需將對(duì)應(yīng)于數(shù)據(jù)段的具有少量字節(jié)數(shù)的摘要數(shù)據(jù)與已有的摘要數(shù)據(jù)比較即可。使用例如sha1算法獲得的摘要數(shù)據(jù)盡管丟失了信息量,但由于該算法的精巧設(shè)計(jì),使得通過使用該算法獲得的摘要數(shù)據(jù)來進(jìn)行后續(xù)去重判斷時(shí)的錯(cuò)誤率極低。這大幅降低了cpu計(jì)算的復(fù)雜度。根據(jù)本公開的實(shí)施例,該方法100還可以包括:在為每個(gè)數(shù)據(jù)段確定相應(yīng)的摘要數(shù)據(jù)之后,從該網(wǎng)絡(luò)接口卡中將該摘要數(shù)據(jù)連同與該摘要數(shù)據(jù)相對(duì)應(yīng)的該數(shù)據(jù)段寫入到第一緩存中(例如寫入到圖2中所示的231、232中),示意性地如箭頭208和209所指示的路徑。可選地,也可以在獲得多個(gè)數(shù)據(jù)段之后并且在為每個(gè)數(shù)據(jù)段確定相應(yīng)的摘要數(shù)據(jù)之前就將該多個(gè)數(shù)據(jù)段寫入到第一緩存231中,然后,在為每個(gè)數(shù)據(jù)段確定相應(yīng)的摘要數(shù)據(jù)之后,從該網(wǎng)絡(luò)接口卡中將該摘要數(shù)據(jù)寫入到第一緩存中232。同樣,本公開并不旨在限定將數(shù)據(jù)段和摘要數(shù)據(jù)寫入到第一緩存的順序。根據(jù)圖2所示的實(shí)施例,該第一緩存包括用于存儲(chǔ)原始數(shù)據(jù)的原始數(shù)據(jù)緩存231,以及用于存儲(chǔ)錨點(diǎn)和摘要數(shù)據(jù)的錨點(diǎn)和摘要數(shù)據(jù)緩存232。根據(jù)圖2所示的實(shí)施例,該第一緩存被配置為存儲(chǔ)器230 的一部分。原始數(shù)據(jù)和摘要數(shù)據(jù)被寫入到原始數(shù)據(jù)緩存231和錨點(diǎn)和摘要數(shù)據(jù)的錨點(diǎn)和摘要數(shù)據(jù)緩存232中,示意性地分別由圖2的路徑208和209示出。在獲得摘要數(shù)據(jù)(即,步驟s120)之后,接下來,方法100進(jìn)行到步驟s130。在步驟s130處,在中央處理器中,將該各個(gè)數(shù)據(jù)段的該摘要數(shù)據(jù)與對(duì)應(yīng)于已處理數(shù)據(jù)段的已有摘要數(shù)據(jù)逐一地進(jìn)行比較,并基于比較結(jié)果來確定是否將與該摘要數(shù)據(jù)對(duì)應(yīng)的數(shù)據(jù)段進(jìn)行去重操作。根據(jù)本公開的實(shí)施例,在將該摘要數(shù)據(jù)與已有摘要數(shù)據(jù)逐一地進(jìn)行比較之前,中央處理器首先從該第一緩存中讀取該摘要數(shù)據(jù)用于后續(xù)的比較操作,示意性地如箭頭221所指示的路徑。根據(jù)本公開的實(shí)施例,在該中央處理器中,將該各個(gè)數(shù)據(jù)段的該摘要數(shù)據(jù)與已有摘要數(shù)據(jù)逐一地進(jìn)行比較,并基于比較結(jié)果來確定是否將與該摘要數(shù)據(jù)對(duì)應(yīng)的數(shù)據(jù)段進(jìn)行去重操作包括如果該摘要數(shù)據(jù)與已有摘要數(shù)據(jù)中的任何一個(gè)相匹配,則該中央處理器對(duì)與該摘要數(shù)據(jù)相對(duì)應(yīng)的數(shù)據(jù)段進(jìn)行去重操作。根據(jù)本公開的一個(gè)具體示例,全部已有的摘要數(shù)據(jù)可以被存儲(chǔ)在例如摘要數(shù)據(jù)查找表(lookuptable)中,以便使與待被備份的數(shù)據(jù)段對(duì)應(yīng)的摘要數(shù)據(jù)與已有數(shù)據(jù)摘要進(jìn)行快速比較。根據(jù)本公開的實(shí)施例,在該中央處理器中,將該各個(gè)數(shù)據(jù)段的該摘要數(shù)據(jù)與已有摘要數(shù)據(jù)逐一地進(jìn)行比較,并基于比較結(jié)果來確定是否將與該摘要數(shù)據(jù)對(duì)應(yīng)的數(shù)據(jù)段進(jìn)行去重操作還包括如果該摘要數(shù)據(jù)不與已有摘要數(shù)據(jù)中的任何一個(gè)相匹配,則該中央處理器確定與該摘要數(shù)據(jù)相對(duì)應(yīng)的數(shù)據(jù)段確定為無法進(jìn)行去重操作的數(shù)據(jù)段,即,的確需要被備份到存儲(chǔ)設(shè)備中的被更新/被添加的數(shù)據(jù)段;以及在該網(wǎng)絡(luò)接口卡中對(duì)該無法進(jìn)行去重操作的數(shù)據(jù)段進(jìn)行壓縮操作,如虛線方框206所示。根據(jù)本公開的實(shí)施例,在將該摘要數(shù)據(jù)與已有摘要數(shù)據(jù)逐一地進(jìn)行比較之后,中央處理器需要從該第一緩存中讀取該無法進(jìn)行去 重操作的數(shù)據(jù)段,并將其發(fā)送到fpga中,以用于在該網(wǎng)絡(luò)接口卡中進(jìn)行壓縮操作,如箭頭222所指示的路徑。同樣可以證明,相比于cpu而言,基于fpga的網(wǎng)絡(luò)接口卡更適于執(zhí)行壓縮/解壓縮操作??蛇x地,可以在該網(wǎng)絡(luò)接口卡中對(duì)壓縮后的數(shù)據(jù)段進(jìn)行加密操作,如虛線方框207所示。根據(jù)本公開的實(shí)施例,在該壓縮操作206或可選的加密操作207之后,將在該網(wǎng)絡(luò)接口卡中壓縮后的數(shù)據(jù)段或加密后的數(shù)據(jù)段寫入到第二緩存中,如箭頭223所指示的路徑。根據(jù)圖2所示的實(shí)施例,該第二緩存例如為用于存儲(chǔ)壓縮數(shù)據(jù)的壓縮數(shù)據(jù)緩存233。根據(jù)圖2所示的實(shí)施例,該第二緩存同樣被配置為存儲(chǔ)器230的一部分。通過圖2所示的實(shí)施例可以看出,與傳統(tǒng)的網(wǎng)絡(luò)接口卡相比,基于fpga的網(wǎng)絡(luò)接口卡的設(shè)計(jì)在pcie總線上僅額外地引入了針對(duì)的錨點(diǎn)(anchor)、摘要數(shù)據(jù)、以及壓縮數(shù)據(jù)的流量。圖3示出了根據(jù)本公開實(shí)施例的用于數(shù)據(jù)備份的設(shè)備的框圖300。設(shè)備300包括下面主要裝置:數(shù)據(jù)分段裝置310,用于在網(wǎng)絡(luò)接口卡中,對(duì)輸入的第一數(shù)據(jù)進(jìn)行分段處理,以獲得多個(gè)數(shù)據(jù)段;摘要數(shù)據(jù)確定裝置320,用于在該網(wǎng)絡(luò)接口卡中,為各個(gè)數(shù)據(jù)段確定相應(yīng)的摘要數(shù)據(jù);以及去重確定裝置330,用于在中央處理器中,將該各個(gè)數(shù)據(jù)段的該摘要數(shù)據(jù)與對(duì)應(yīng)于已處理數(shù)據(jù)段的已有摘要數(shù)據(jù)逐一地進(jìn)行比較,并基于比較結(jié)果來確定是否將與該摘要數(shù)據(jù)對(duì)應(yīng)的數(shù)據(jù)段進(jìn)行去重操作,以執(zhí)行數(shù)據(jù)備份。根據(jù)本公開的實(shí)施例,該網(wǎng)絡(luò)接口卡被配置為基于現(xiàn)場(chǎng)可編程門陣列fpga的網(wǎng)絡(luò)接口卡。根據(jù)本公開的實(shí)施例,該摘要數(shù)據(jù)確定裝置320包括:安全哈希算法單元,用于在該網(wǎng)絡(luò)接口卡中,為各個(gè)數(shù)據(jù)段基于安全哈希算法來確定相應(yīng)的摘要數(shù)據(jù)。根據(jù)本公開的實(shí)施例,該設(shè)備300還包括:數(shù)據(jù)預(yù)處理裝置, 用于在對(duì)該第一數(shù)據(jù)進(jìn)行分段處理之前,通過協(xié)議處理,從輸入到該網(wǎng)絡(luò)接口卡中的數(shù)據(jù)包中獲得該第一數(shù)據(jù)。根據(jù)本公開的實(shí)施例,該去重確定裝置330包括:去重執(zhí)行單元,用于如果該摘要數(shù)據(jù)與已有摘要數(shù)據(jù)中的任何一個(gè)相匹配,則該中央處理器對(duì)與該摘要數(shù)據(jù)相對(duì)應(yīng)的數(shù)據(jù)段進(jìn)行去重操作。根據(jù)本公開的實(shí)施例,該去重確定裝置330包括:壓縮判定單元,用于如果該摘要數(shù)據(jù)不與已有摘要數(shù)據(jù)中的任何一個(gè)相匹配,則中該中央處理器確定與該摘要數(shù)據(jù)相對(duì)應(yīng)的數(shù)據(jù)段確定為無法進(jìn)行去重操作的數(shù)據(jù)段;以及壓縮執(zhí)行單元,用于在該網(wǎng)絡(luò)接口卡中對(duì)該無法進(jìn)行去重操作的數(shù)據(jù)段進(jìn)行壓縮操作。根據(jù)本公開的實(shí)施例,該設(shè)備300還包括:加密單元,用于在該網(wǎng)絡(luò)接口卡中對(duì)壓縮后的數(shù)據(jù)段進(jìn)行加密操作。根據(jù)本公開的實(shí)施例,該設(shè)備300還包括:第一數(shù)據(jù)寫入單元,用于在為每個(gè)數(shù)據(jù)段確定相應(yīng)的摘要數(shù)據(jù)之后,從該網(wǎng)絡(luò)接口卡中將該摘要數(shù)據(jù)連同與該摘要數(shù)據(jù)相對(duì)應(yīng)的該數(shù)據(jù)段寫入到第一緩存中。根據(jù)本公開的實(shí)施例,該設(shè)備300還包括:第一數(shù)據(jù)讀取單元,用于在將該摘要數(shù)據(jù)與已有摘要數(shù)據(jù)逐一地進(jìn)行比較之前,中央處理器從該第一緩存中讀取該摘要數(shù)據(jù)。根據(jù)本公開的實(shí)施例,該設(shè)備300還包括:在第二數(shù)據(jù)讀取單元,用于將該摘要數(shù)據(jù)與已有摘要數(shù)據(jù)逐一地進(jìn)行比較之后,中央處理器從該第一緩存中讀取該無法進(jìn)行去重操作的數(shù)據(jù)段,用于在該網(wǎng)絡(luò)接口卡中的壓縮操作。根據(jù)本公開的實(shí)施例,該設(shè)備300還包括:第二數(shù)據(jù)寫入單元,用于在該壓縮操作或該加密操作之后,將在該網(wǎng)絡(luò)接口卡中壓縮后的數(shù)據(jù)段或加密后的數(shù)據(jù)段寫入到第二緩存中。綜上所述,本公開的各個(gè)實(shí)施例提供了一種用于數(shù)據(jù)備份的方法設(shè)備,該方法包括:在網(wǎng)絡(luò)接口卡中,對(duì)輸入的第一數(shù)據(jù)進(jìn)行分段處理,以獲得多個(gè)數(shù)據(jù)段;在該網(wǎng)絡(luò)接口卡中,為各個(gè)數(shù)據(jù)段確 定相應(yīng)的摘要數(shù)據(jù);以及在中央處理器中,將該各個(gè)數(shù)據(jù)段的該摘要數(shù)據(jù)與對(duì)應(yīng)于已處理數(shù)據(jù)段的已有摘要數(shù)據(jù)逐一地進(jìn)行比較,并基于比較結(jié)果來確定是否將與該摘要數(shù)據(jù)對(duì)應(yīng)的數(shù)據(jù)段進(jìn)行去重操作,以執(zhí)行數(shù)據(jù)備份。由于將一部分例如數(shù)據(jù)分段、壓縮/解壓縮、加密/解密等尤其適于網(wǎng)絡(luò)接口卡執(zhí)行的操作移入到網(wǎng)絡(luò)接口卡中執(zhí)行,因此降低了對(duì)cpu的資源占用,從而在整體上實(shí)現(xiàn)了性價(jià)比以及功耗性能比的優(yōu)化。此外,利用本公開的所述方法以及設(shè)備執(zhí)行的數(shù)據(jù)備份操作,使得數(shù)據(jù)在被備份到存儲(chǔ)設(shè)備之前就進(jìn)行了高效的在線去重操作,從而有效地減少了重復(fù)數(shù)據(jù)對(duì)存儲(chǔ)空間的占用。以上所述僅為本公開的可選實(shí)施例,并不用于限制本公開,對(duì)于本領(lǐng)域的技術(shù)人員來說,本公開可以有各種更改和變化。凡在本公開的精神和原則之內(nèi),所作的任何修改、等效替換、改進(jìn)等,均應(yīng)包含在本公開的保護(hù)范圍之內(nèi)。當(dāng)前第1頁(yè)12當(dāng)前第1頁(yè)12