重復(fù)數(shù)據(jù)刪除是一種目前主流且非常熱門的存儲(chǔ)技術(shù),可對(duì)存儲(chǔ)容量進(jìn)行有效優(yōu)化。它通過(guò)刪除數(shù)據(jù)集中重復(fù)的數(shù)據(jù),只保留其中一份,從而消除冗余數(shù)據(jù)。
一、重復(fù)數(shù)據(jù)刪除的原理
每一個(gè)數(shù)據(jù)塊通過(guò)散列算法(例如MD5 或者SHA-1)為每一個(gè)數(shù)據(jù)產(chǎn)生一個(gè)特定的散列值。將這個(gè)散列值與現(xiàn)有的散列值索引相比較,如果它已經(jīng)存在于索引中,那么這個(gè)數(shù)據(jù)就是重復(fù)的,不需要進(jìn)行存儲(chǔ)。否則,這個(gè)新的散列值將被添加到索引中,這個(gè)新的數(shù)據(jù)也因此被存儲(chǔ)。
要使重復(fù)刪除平臺(tái)處理更精確,就需要更大的索引。例如,基于文件的重復(fù)刪除只需要一個(gè)百萬(wàn)大小或千萬(wàn)大小的單一散列值索引。相比之下基于塊的重復(fù)刪除會(huì)涉及到更多的單一數(shù)據(jù)塊,這個(gè)數(shù)字通常會(huì)達(dá)到十億級(jí)。這樣精確的重復(fù)刪除需要更強(qiáng)的處理能力以便可以為其提供更大的索引。除非硬件的設(shè)計(jì)與對(duì)索引的要求相適應(yīng),否則隨索引的不斷擴(kuò)展,平臺(tái)的性能將隨之下降。
一般而言,散列算法很少會(huì)將兩個(gè)不同的數(shù)據(jù)塊產(chǎn)生出相同的值。當(dāng)這樣的“散列碰撞”發(fā)生時(shí),系統(tǒng)就不會(huì)存儲(chǔ)新的數(shù)據(jù),因?yàn)橄到y(tǒng)看到同一個(gè)散列值已經(jīng)存在。這被稱為“false positive”(誤報(bào)),會(huì)導(dǎo)致數(shù)據(jù)丟失。一些廠商結(jié)合不同的散列算法,以降低散列碰撞的可能性。另一些廠商還會(huì)檢查元數(shù)據(jù)來(lái)確認(rèn)數(shù)據(jù),從而避免散列碰撞。
二、in-band(帶內(nèi))重復(fù)刪除和out-of-band(帶外)重復(fù)刪除的對(duì)比
目前重復(fù)數(shù)據(jù)刪除有兩種技術(shù)架構(gòu),即在線處理(in-line)和后處理(Post-Processing)。也有叫源端消重技術(shù)和目標(biāo)端消重技術(shù)。In-line是指數(shù)據(jù)保存到二級(jí)存儲(chǔ)系統(tǒng)前進(jìn)行重復(fù)數(shù)據(jù)刪除。這樣降低了對(duì)存儲(chǔ)性能和容量的需求,但是卻增加了一個(gè)需要管理的設(shè)備,有可能影響備份的性能;而Post-process 是指在數(shù)據(jù)備份處理之后才進(jìn)行重復(fù)數(shù)據(jù)刪除。它需要暫時(shí)存儲(chǔ)全部數(shù)據(jù),因而需要更大的存儲(chǔ)空間,所以雖然對(duì)備份性能影響較小,但減少備份介質(zhì)數(shù)量的效果并不明顯。In-band 處理效率較高,但處理速度會(huì)稍慢一些,因?yàn)轭~外的處理需要更多的存儲(chǔ)時(shí)間,從而導(dǎo)致備份窗口占用更久的時(shí)間。Out-of-band 處理不會(huì)影響系統(tǒng)的性能,但它需要略多一些的磁盤空間。
In-band 的優(yōu)點(diǎn)在于它只對(duì)數(shù)據(jù)執(zhí)行一次處理。而缺點(diǎn)是,它會(huì)減慢寫入備份的速度,影響備份窗口,具體情況視實(shí)施而定。在線(inline)陣營(yíng)認(rèn)為,雖然它們可能會(huì)在某種程度上減慢備份速度,但它們執(zhí)行完成后,就完成工作了。但是out-of-band 仍然還有重要的工作未完成,即存儲(chǔ)數(shù)據(jù)。In-band能夠減少需要傳輸?shù)膫浞輸?shù)據(jù)量,從而簡(jiǎn)化了傳統(tǒng)的遠(yuǎn)端備份問題。對(duì)移動(dòng)辦公的用戶、遠(yuǎn)程的服務(wù)器和工作站,能高效地通過(guò)現(xiàn)有廣域網(wǎng)(WAN)把數(shù)據(jù)傳輸給數(shù)據(jù)中心。
Out-of-band 處理的方式為,寫入原始數(shù)據(jù),讀取,并確認(rèn)其是否為冗余數(shù)據(jù),若是,則用一個(gè)或多個(gè)指針進(jìn)行代替。其優(yōu)點(diǎn)是,out-of-band 能夠提供并行處理(多處理器)能力解決問題,而in-band 只能為每個(gè)備份流提供一種處理能力。其缺點(diǎn)是,需要對(duì)數(shù)據(jù)進(jìn)行多次讀寫,而多次的讀寫會(huì)導(dǎo)致磁盤空間的占用。另外,由于out-of-band 系統(tǒng)在完成重復(fù)數(shù)據(jù)刪除之前,必須有足夠的磁盤空間來(lái)存儲(chǔ)最新的備份集,所以,out-of-band 處理方式需要比in-band 處理方式需要多一些磁盤空間。Out-of-band 陣營(yíng)反駁說(shuō),減慢原始備份速度是不能接受的,但是他們能夠?yàn)榈诙斓膫浞菁皶r(shí)完成重復(fù)數(shù)據(jù)刪除。
正因?yàn)镮n-band、Out-of-band各有優(yōu)勢(shì),現(xiàn)在很多軟件備份產(chǎn)品具有源端和目標(biāo)端的重復(fù)數(shù)據(jù)刪除功能,例如,CommVault的Simpana、EMC的NetWorker,IBM的Tivoli(TSM)管理系統(tǒng)和賽門鐵克的NetBackup,都會(huì)在他們的軟件中提供源和目標(biāo)端重復(fù)數(shù)據(jù)刪除功能。源端重復(fù)數(shù)據(jù)刪除主要是適用于小數(shù)據(jù)集以及遠(yuǎn)程數(shù)據(jù),而目標(biāo)端重復(fù)數(shù)據(jù)刪除主要是用于對(duì)大量的數(shù)據(jù)集合備份的情況下,這時(shí)備份客戶端和備份服務(wù)器之間不受帶寬限制。
雖然重復(fù)數(shù)據(jù)刪除是一項(xiàng)對(duì)吞吐量很高的技術(shù),大多數(shù)用戶表示他們?cè)谶@方面的體驗(yàn)并不明顯。在選擇重復(fù)數(shù)據(jù)刪除產(chǎn)品的時(shí)候,我們建議用戶首先考慮切身需求,這就包括了估算的數(shù)據(jù)增長(zhǎng)速度、預(yù)算以及所需要的特性。相對(duì)而言,備份軟件、虛擬帶庫(kù)的兼容性、可靠性、可操作性等更加重要。最后,要對(duì)重復(fù)刪除產(chǎn)品進(jìn)行足夠數(shù)據(jù)量的輸入的檢測(cè),以檢驗(yàn)其是否滿足你每天的備份數(shù)據(jù)量。如果你所購(gòu)買的產(chǎn)品無(wú)法在第二天晚上備份任務(wù)開始之前,及時(shí)完成重復(fù)數(shù)據(jù)刪除工作,那你肯定要有麻煩了
三、重復(fù)數(shù)據(jù)刪除產(chǎn)品的去重比率
真要計(jì)算出你的數(shù)據(jù)的去重比率,并非易事。廠商所公布的去重比率其實(shí)是在一種特定條件下的人為控制因素介入之后的結(jié)果。“有廠商竟然夸張的聲稱可以達(dá)到400:1的比率,這種情況基本上你永遠(yuǎn)無(wú)法遇到。” “假設(shè)你對(duì)一個(gè)由500個(gè)文件組成的數(shù)據(jù)集進(jìn)行去重操作,為了便于備份,每個(gè)文件1GB大小。” EMC的CTODan Codd說(shuō)道,“第二天,有一個(gè)文件變化了,你對(duì)其進(jìn)行了去重操作,這樣的話,備份相當(dāng)于只備份了這個(gè)變化的文件,那么此時(shí)的去重比率是多少呢?你可以說(shuō)它是500:1”。
對(duì)于同一個(gè)重復(fù)數(shù)據(jù)刪除過(guò)程,其結(jié)果隨著你計(jì)算式所使用的時(shí)間段的不同而不同。“結(jié)果可能是40:1甚至20:1。因此這個(gè)指標(biāo)僅有參考意義。
四、火星艙重復(fù)數(shù)據(jù)刪除技術(shù)優(yōu)勢(shì)
火星艙提供數(shù)據(jù)塊級(jí)重復(fù)數(shù)據(jù)刪除功能,重復(fù)數(shù)據(jù)刪除是在內(nèi)部進(jìn)行的,可根據(jù)文件系統(tǒng)的大小進(jìn)行調(diào)整,不需要使用特殊的存儲(chǔ)陣列來(lái)對(duì)數(shù)據(jù)進(jìn)行重復(fù)刪除?;鹦桥撛跀?shù)據(jù)集級(jí)上的適用性表明你只需對(duì)包含冗余數(shù)據(jù)的數(shù)據(jù)集進(jìn)行重復(fù)刪除,而不用牽扯到其他的數(shù)據(jù)集。由于它是內(nèi)部重復(fù)數(shù)據(jù)刪除功能,因此增加處理核心和內(nèi)存就可以提高重復(fù)數(shù)據(jù)刪除的速度。
目前數(shù)據(jù)備份的需求主要在數(shù)據(jù)中心、信息中心,而數(shù)據(jù)中心、信息中心需要備份的主要是數(shù)據(jù)庫(kù)數(shù)據(jù),并且數(shù)據(jù)中心、信息中心的瓶頸不在于網(wǎng)絡(luò)帶寬,但重復(fù)數(shù)據(jù)刪除引擎通過(guò)檢查冗余數(shù)據(jù)中的唯一重復(fù)特征來(lái)判斷是否可以將冗余的部分存儲(chǔ)為一個(gè)符號(hào)鏈接,從而降低數(shù)據(jù)對(duì)存儲(chǔ)空間的需求。這個(gè)過(guò)程是一個(gè)極其消耗CPU資源的過(guò)程。所以一般源端的重復(fù)數(shù)據(jù)刪除不能很好的運(yùn)行在數(shù)據(jù)庫(kù)或者其他事物性系統(tǒng)上,因?yàn)樗鼤?huì)在主機(jī)端增加處理負(fù)載,可能高達(dá)25%。當(dāng)這些類型的應(yīng)用在目標(biāo)端進(jìn)行重復(fù)數(shù)據(jù)刪除時(shí)就不會(huì)產(chǎn)生那種負(fù)載了。因此火星艙的重復(fù)數(shù)據(jù)刪除無(wú)需擔(dān)心由于重復(fù)刪除處理使CPU 負(fù)擔(dān)加重而導(dǎo)致備份服務(wù)器和二級(jí)存儲(chǔ)目標(biāo)之間出現(xiàn)瓶頸。
對(duì)于遠(yuǎn)程備份而言,火星艙是通過(guò)自己專有的遠(yuǎn)程傳輸技術(shù)來(lái)達(dá)到數(shù)據(jù)壓縮、穩(wěn)定傳輸?shù)哪康?。而如果僅僅只考慮重復(fù)數(shù)據(jù)刪除技術(shù),會(huì)遇到網(wǎng)絡(luò)斷線數(shù)據(jù)重傳等問題。