|
重復(fù)數(shù)據(jù)刪除(De-duplication),簡(jiǎn)稱“去重”,是主流的存儲(chǔ)技術(shù)之一,通過對(duì)比校驗(yàn)技術(shù)刪除存儲(chǔ)設(shè)備上重復(fù)的數(shù)據(jù),只保留其中一份,從而消除冗余數(shù)據(jù),優(yōu)化存儲(chǔ)設(shè)備的物理空間,從而滿足日益增長(zhǎng)的數(shù)據(jù)存儲(chǔ)需求。 經(jīng)過近些年的發(fā)展,重復(fù)數(shù)據(jù)刪除技術(shù)已經(jīng)很成熟,本文整理了部分知識(shí),有助于大家進(jìn)一步了解重復(fù)數(shù)據(jù)刪除。 雖然存儲(chǔ)介質(zhì)的價(jià)格已經(jīng)非常廉價(jià),但若能在有限的存儲(chǔ)介質(zhì)上實(shí)現(xiàn)更高的存儲(chǔ)效率,何樂而不為呢?此外,重復(fù)數(shù)據(jù)刪除技術(shù)最大的一個(gè)收益點(diǎn)是能降低備份大數(shù)據(jù)量時(shí)對(duì)各資源的消耗和依賴。巨量數(shù)據(jù)的備份不論對(duì)生產(chǎn)系統(tǒng)還是備份系統(tǒng)都是一個(gè)不小的沖擊,況且隨著系統(tǒng)的發(fā)展,備份系統(tǒng)越來越大,備份的數(shù)據(jù)越來越多,備份的計(jì)劃與安排越來越受制于備份數(shù)據(jù)量的規(guī)模。重復(fù)數(shù)據(jù)刪除技術(shù)提供了一個(gè)物美價(jià)廉的解決方案,更提高了整個(gè)系統(tǒng)的效率。 也許在很多不太關(guān)注重復(fù)數(shù)據(jù)刪除技術(shù)的工程師心中,重復(fù)數(shù)據(jù)還是那個(gè)效率低、成本高的空殼子,但實(shí)際上重復(fù)數(shù)據(jù)刪除技術(shù)早已發(fā)展到了一個(gè)新的高度。借個(gè)人實(shí)施經(jīng)歷中一個(gè)真實(shí)的案例,看看現(xiàn)如今的重復(fù)數(shù)據(jù)刪除技術(shù)的性能:一臺(tái)Windows虛擬機(jī)存儲(chǔ)著490 GB(有效數(shù)據(jù))非結(jié)構(gòu)化文件(文件主要為word/Excel/PPT/PDF等),日變化量大約15 GB/DAY,虛擬機(jī)的配置為2 * 2.8 GHz CPU,8 GB內(nèi)存,千兆網(wǎng)卡。部署了一套源端、在線、基于CPU-內(nèi)存的重復(fù)數(shù)據(jù)刪除備份(重復(fù)數(shù)據(jù)刪除設(shè)備并非物理機(jī)而是虛擬機(jī)),所有配置均采用默認(rèn)配置、不作定制優(yōu)化。首次備份耗時(shí)35 min,消重效率87%,消重時(shí)CPU消耗上漲5%,內(nèi)存占用小于200MB,網(wǎng)絡(luò)負(fù)載約3 MB/S左右。第二次備份耗時(shí)19min,消重效率98%,CPU、內(nèi)存消耗與首次備份差不多,但網(wǎng)絡(luò)負(fù)載明顯下降,偶爾占用1~2MB/S。(@Li Fei 某保險(xiǎn)公司 系統(tǒng)架構(gòu)師) 二、主流的幾種重復(fù)數(shù)據(jù)刪除技術(shù) 重復(fù)數(shù)據(jù)刪除已經(jīng)不是一個(gè)新的話題了,如今各個(gè)廠商的存儲(chǔ)或備份產(chǎn)品都有這項(xiàng)功能。不過,當(dāng)我們?cè)谡f重刪時(shí),我們是在說同一個(gè)重刪嗎?關(guān)于重刪,其實(shí)還有很多細(xì)微的差別,今天小編就來講一講。 所謂重復(fù)數(shù)據(jù)刪除,顧名思義,就是要把一些具有重復(fù)性的數(shù)據(jù)刪除掉。重刪是一個(gè)過程,其基本方法是通過算法,把一個(gè)文件切割成不同的小塊,這些切割后小數(shù)據(jù)文件切片有很多是相同的,在真正在保存的時(shí)候,我們只要保存不同的數(shù)據(jù)塊的一份,這是任何一個(gè)重復(fù)數(shù)據(jù)刪除算法的根基。 不過,在這根基之上卻有很多種重刪。 首先最簡(jiǎn)單的是文件級(jí)重刪,這實(shí)際上可以不認(rèn)為是一個(gè)重復(fù)數(shù)據(jù)刪除,它只是一個(gè)重復(fù)數(shù)據(jù)忽略,因?yàn)樗粫?huì)在文件級(jí)別進(jìn)行掃描,比如文件的特性、文件的修改時(shí)間,保證每次只備份同一個(gè)文件。如果說這個(gè)文件做了一些小的修改,整個(gè)文件還是需要備份的,所以它的力度是非常低的。 接下來是塊級(jí)重刪,也就是之前講的先要通過一個(gè)算法,把文件進(jìn)行切割,切割成一個(gè)一個(gè)小的塊,然后每個(gè)塊進(jìn)行比對(duì)。比對(duì)過后,只有不同的塊才會(huì)被分走,這樣可以保證重復(fù)數(shù)據(jù)會(huì)在子文件級(jí)進(jìn)行相應(yīng)的刪除,從而提高每個(gè)文件相同的比率。然后被切割的這個(gè)文件,我們?cè)俑缴弦唤M指針表。這個(gè)指針圖表上列出文件是由哪些小的塊組成的,保證我們?cè)谶€原的時(shí)候,通過這個(gè)基因圖和相應(yīng)的數(shù)據(jù)塊,可以恢復(fù)任何的文件。 那么怎么樣可以提高我們的重復(fù)數(shù)據(jù)刪除率呢?就是這個(gè)塊的大小,塊切得越小,相應(yīng)的重復(fù)數(shù)據(jù)就越多。比如我們切一個(gè)西瓜,西瓜上有很多西瓜子,把西瓜切得越小塊,沒有西瓜子的塊就會(huì)越多。對(duì)重刪來說這就是算法,而算法主要分兩類: 定長(zhǎng)重刪。數(shù)據(jù)按照固定長(zhǎng)度進(jìn)行分塊,之后進(jìn)行重刪。例如一個(gè)文件大小為128M,按照128K來切,切完就是一千份的子文件,然后對(duì)這一千份進(jìn)行對(duì)比,把重復(fù)數(shù)據(jù)去掉就是定長(zhǎng)重刪。 變長(zhǎng)重刪。數(shù)據(jù)被劃分成不同大小的塊進(jìn)行重刪,一般來說變長(zhǎng)重刪可以獲得更好的重刪效果,因?yàn)閷?duì)企業(yè)來說數(shù)據(jù)是不斷更新的。比如定長(zhǎng)重刪下數(shù)據(jù)被切割形成一系列字母組合,由于數(shù)據(jù)變化插入了一個(gè)字母,因此整個(gè)數(shù)據(jù)的順序就改變了,再按照128K切的話,對(duì)于備份軟件來說所有行都是一個(gè)全新的數(shù)據(jù)塊,所以要重新做備份。而變長(zhǎng)重刪可以保證其余的數(shù)據(jù)塊不變,只在新增字母的塊增加一個(gè)大小上限就可以了,因此變長(zhǎng)重刪效率更高。 按照重刪處理的位置,這里也可以分為兩類: 源端重刪。在備份的時(shí)候,在備份端上agent就有重復(fù)數(shù)據(jù)刪除的算法和功能,它可以在備份以前進(jìn)行相應(yīng)的切割和對(duì)比,只把一些新變化的數(shù)據(jù)傳送到備份服務(wù)器上,這樣可以大大降低備份數(shù)據(jù)量,在網(wǎng)絡(luò)傳輸過程中的數(shù)據(jù)量也降低,這樣可以降低整個(gè)備份網(wǎng)絡(luò)的帶寬要求,對(duì)企業(yè)來說也可以減少日常運(yùn)維成本。 目標(biāo)端重刪。直接將數(shù)據(jù)傳輸?shù)较鄳?yīng)的磁帶設(shè)備、磁帶庫或者是虛擬帶庫上,在目標(biāo)端進(jìn)行重復(fù)數(shù)據(jù)刪除的算法、對(duì)比,然后把一些相應(yīng)新的數(shù)據(jù)塊元素和指針表也保留下來。 還有按照數(shù)據(jù)的重刪執(zhí)行的時(shí)間進(jìn)行分類: 在線重刪。備份的時(shí)候先做重復(fù)數(shù)據(jù)刪除,在數(shù)據(jù)存儲(chǔ)到硬盤之前,重復(fù)數(shù)據(jù)已經(jīng)被去除掉了。 后重刪。指的是在寫到存儲(chǔ)設(shè)備的同時(shí)不進(jìn)行重刪處理,先把原始數(shù)據(jù)寫到硬盤上,隨后啟動(dòng)后臺(tái)進(jìn)程對(duì)這些原始數(shù)據(jù)進(jìn)行重刪處理。與在線重刪相比較,后重刪需要更高的硬盤性能,需要更多的硬盤數(shù)量,并且在線重刪可以大大降低數(shù)據(jù)的備份量和網(wǎng)絡(luò)帶寬的需求,因此效率更高。 三、如何進(jìn)行相關(guān)技術(shù)的選擇? 1,在線?離線? 在線消重,顧名思義是在備份時(shí)就進(jìn)行消重,落盤到備份存儲(chǔ)介質(zhì)的數(shù)據(jù)都是經(jīng)過消重處理的數(shù)據(jù)。離線消重,是指數(shù)據(jù)備份到備份存儲(chǔ)后再進(jìn)行消重。 如果在線消重要保持一個(gè)高效性能,這就消耗備份系統(tǒng)以及宿主機(jī)一部分資源。在線消重技術(shù)發(fā)展初期,硬件與軟件的契合度并不高,導(dǎo)致在線消重備份時(shí)需要消耗相當(dāng)一部分宿主機(jī)資源、拉低備份性能。同時(shí)重復(fù)數(shù)據(jù)刪除技術(shù)雛形期,主要以類HASH鏈表式的消重手段為主,鏈表式消重技術(shù)對(duì)主機(jī)計(jì)算資源與后端存儲(chǔ)、備份介質(zhì)都有一定要求,且HASH鏈表越長(zhǎng)消重越慢。因此,重復(fù)數(shù)據(jù)刪除技術(shù)在初期并不被人看好。 2,源端消重?目標(biāo)端消重? 源端消重,是指?jìng)浞蒈浖诳蛻舳松汐@取到備份數(shù)據(jù)時(shí)就開始消重過程,在備份系統(tǒng)內(nèi)傳輸?shù)臄?shù)據(jù)均是消重后的數(shù)據(jù)。源端消重技術(shù)由于需要在備份時(shí)進(jìn)行消重,因而需要占用宿主機(jī)一部分資源來執(zhí)行消重。 目標(biāo)端消重,是指?jìng)浞蒈浖呀?jīng)備份到備份存儲(chǔ),在數(shù)據(jù)緩存到備份存儲(chǔ)里或已存儲(chǔ)到備份存儲(chǔ)上再進(jìn)行消重過程。目標(biāo)端消重技術(shù)已在重復(fù)數(shù)據(jù)刪除的發(fā)展歷程上輝煌過一段時(shí)間,因?yàn)榇思夹g(shù)不會(huì)消耗源端資源同時(shí)也不會(huì)降低備份性能,目標(biāo)端消重性能完全依賴備份存儲(chǔ)自身資源和效率。 3,基于類HASH鏈表式消重?基于CPU-內(nèi)存式消重? 類HASH鏈表式消重是重復(fù)數(shù)據(jù)刪除技術(shù)發(fā)展史上的一大核心技術(shù),即使在今天也占有一定市場(chǎng)。HASH鏈表式消重,實(shí)現(xiàn)方式是將數(shù)據(jù)切片,然后計(jì)算出每塊數(shù)據(jù)片的HASH值之類能唯一標(biāo)記該數(shù)據(jù)片的索引值,若在消重的唯一索引鏈表上命中,則消重。若沒有命中則更新索引鏈表,將數(shù)據(jù)片經(jīng)過處理后存儲(chǔ)在備份介質(zhì)上。熟悉了鏈表式消重的過程,可以很清楚的知道這種技術(shù)的弊端就是當(dāng)索引表非常長(zhǎng)后,消重效率會(huì)越來越低。 基于CPU-內(nèi)存式消重技術(shù)。在發(fā)展初期,CPU的性能和內(nèi)存的大小處處受限,這種技術(shù)的發(fā)展左右碰壁。但經(jīng)過摩爾定律的驅(qū)使,現(xiàn)在的CPU和內(nèi)存已經(jīng)取得卓越的性能,基于CPU-內(nèi)存式消重技術(shù)取得了相當(dāng)不錯(cuò)的成績(jī)。與類HASH鏈表式消重不同的是,該技術(shù)在消重前會(huì)將唯一索引鏈表直接加載進(jìn)內(nèi)存,消重時(shí)會(huì)直接將備份數(shù)據(jù)加載到內(nèi)存,切片,計(jì)算每個(gè)數(shù)據(jù)片索引值,然后完成索引值對(duì)比、更新,最后處理數(shù)據(jù)、存儲(chǔ)。幾乎整個(gè)重復(fù)數(shù)據(jù)刪除過程都在CPU和內(nèi)存中完成,現(xiàn)在CPU和內(nèi)存的處理效率遠(yuǎn)比數(shù)據(jù)在磁盤上流動(dòng)的效率高。經(jīng)過長(zhǎng)時(shí)間的發(fā)展,基于CPU-內(nèi)存的消重算法已經(jīng)臻于完善,對(duì)CPU和內(nèi)存的利用效率完全滿足商業(yè)標(biāo)準(zhǔn)?,F(xiàn)在此種技術(shù)已經(jīng)升級(jí),不僅僅可以基于LAN進(jìn)行消重備份,而且能支持基于SAN的消重備份了。不得不說,基于CPU-內(nèi)存式消重技術(shù)早已不是當(dāng)年“吳下阿蒙”。 4,定長(zhǎng)消重?可變長(zhǎng)消重? 影響重復(fù)數(shù)據(jù)刪除效率的核心因素之一便是消重切片過程中的切片精度。顯而易見,若是切片精度越高,那么數(shù)據(jù)片重復(fù)命中率越高,消重效率越好。若對(duì)于不同長(zhǎng)度的數(shù)據(jù)片能夠動(dòng)態(tài)調(diào)整切片精度,適應(yīng)每份備份數(shù)據(jù)的情況,那么消重效率更加高效?,F(xiàn)在定長(zhǎng)消重的精度范圍主流水平約在6K或8K(min)、16K(max)左右,可變長(zhǎng)消重的精度范圍現(xiàn)已突破到4K(min)、16K(max)。(@Li Fei 某保險(xiǎn)公司 系統(tǒng)架構(gòu)師) 但是個(gè)人比較喜歡源端去重,現(xiàn)在目標(biāo)端去重要么硬件廠商已經(jīng)做了(各種虛擬帶庫),要么只支持磁盤類型的,對(duì)磁帶設(shè)備兼容不好。 源端去重相比會(huì)消耗額外的資源,但現(xiàn)在基本都性能過剩,并且去重后的數(shù)據(jù)量減少適應(yīng)的場(chǎng)景更多,比如遠(yuǎn)端復(fù)制。(@王巧雷 系統(tǒng)工程師) 能用源端盡量用源端,搭配OST設(shè)備和萬兆網(wǎng),扁平化傳統(tǒng)備份架構(gòu),實(shí)現(xiàn)去SAN化和驅(qū)動(dòng)器化。(@sam_8286 系統(tǒng)工程師) 我來潑一盆冷水,這是一項(xiàng)看上去很美的技術(shù),但是開啟重復(fù)數(shù)據(jù)刪除功能會(huì)占用大量CPU資源,影響整體存儲(chǔ)的IO性能,現(xiàn)今磁盤容量快速增長(zhǎng),價(jià)格快速下降,重復(fù)數(shù)據(jù)刪除帶來的存儲(chǔ)空間利用率的優(yōu)勢(shì)很快就被抵消掉了。所以只有極少量的場(chǎng)景需要重復(fù)數(shù)據(jù)刪除功能,一般情況還是別折騰了~~(@yhsih 某煙草公司 系統(tǒng)運(yùn)維工程師) 不論是目標(biāo)端重刪還是源端重刪,主要根據(jù)你的應(yīng)用來選擇,比如說海量數(shù)據(jù)的備份,你就可以選擇源端重刪,可以節(jié)省帶寬,縮短備份窗口;如果你使用歸檔可以用目標(biāo)端重刪;如果您還要關(guān)注性能可以用目標(biāo)端離線重刪,如果對(duì)性能要求不高,可以采用目標(biāo)端在線重刪。(@Laozhao) 四、重刪功能在全閃存陣列中有何意義? 重刪功能主要是解決閃存SSD壽命較短的問題。閃存SSD的數(shù)據(jù)寫入和更新是電子式擦除方式,必然帶來數(shù)據(jù)塊的頻繁擦除動(dòng)作,而數(shù)據(jù)塊的擦除是有次數(shù)限制的,所以壽命自然不長(zhǎng),壽命到了,數(shù)據(jù)塊也就無法使用了,無法使用的數(shù)據(jù)塊達(dá)到一定程度時(shí),整個(gè)SSD盤也就壽命到期了,需要更換。 而重刪功能,可以在數(shù)據(jù)寫入或者擦除數(shù)據(jù)塊時(shí),在閃存的軟件層,就判斷了是否要寫入該數(shù)據(jù)。如果寫入的數(shù)據(jù)是重復(fù)的,就不再寫入,這樣自然降低了數(shù)據(jù)塊的擦除頻率,提升了SSD盤的壽命,另外也大大提升了閃存陣列的利用率,虛擬容量也提升了好幾倍。 當(dāng)然類似的提升SSD壽命的方式還有數(shù)據(jù)壓縮功能。這里不再贅述。(@鄧毓 某農(nóng)信 系統(tǒng)工程師) 要看全閃存要支持的業(yè)務(wù)類型是什么。如果上層業(yè)務(wù)系統(tǒng)是類似虛擬機(jī),VDI等環(huán)境,會(huì)產(chǎn)生很多重復(fù)的虛擬機(jī)資源,那么重刪是很有用的。 如果支持是像數(shù)據(jù)庫類型或文件系統(tǒng)類型的業(yè)務(wù),重刪用處不大,反而需要壓縮功能。(@ZhuJun2014 存儲(chǔ)工程師)
|
|
|