網(wǎng)絡技術輔導:重復數(shù)據(jù)刪除技術弱點

字號:

重復數(shù)據(jù)刪除是目前存儲行業(yè)最熱門的技術之一,用戶和廠商們都很看好這種技術。有的廠商在開發(fā)硬件,有的廠商在開發(fā)軟件,還有的廠商同時開發(fā)相關的軟件和硬件。
    跟以前一樣,不打算對比不同廠商的產品或者技術,考試@大只想談談你在考慮購買重復數(shù)據(jù)刪除軟件或硬件時必須向廠商咨詢的一個重要問題,即數(shù)據(jù)損壞的問題。你可能會想,重復數(shù)據(jù)刪除與數(shù)據(jù)損壞有什么關系呢,不用著急,我馬上就給你解釋。 但是必須說明的是,我是從通用硬件和軟件的角度來寫這篇文章的。有些廠商的產品也許可以或者不可以接近我在文中談到的全部或者部分問題。 選購哪家廠商的產品以及向廠商咨詢什么問題的決定權在你自己手中,筆者不承擔任何責任。
    有些人也許讀過我曾經寫過的一篇關于我自己經歷過的數(shù)據(jù)損壞的文章。 考試@大稍微對比了一下正確的數(shù)據(jù)和損壞后的數(shù)據(jù),數(shù)據(jù)的ASCII碼發(fā)生了很大變化。實際上,大部分字節(jié)都損壞了。
    本文討論的是數(shù)據(jù)不定期損壞的問題,并非一定會發(fā)生,即使是發(fā)生數(shù)據(jù)損壞事故的概率遠低于廉價SATA的高端企業(yè)光纖信道驅動器也不能例外。 另外,發(fā)生問題的部件不一定是驅動器或者控制器,也可能是內存、CPU或者別的什么部件。歸結為一點就是,數(shù)字世界中的數(shù)字資料肯定有可能會損壞。 雖然發(fā)生數(shù)據(jù)損壞事故的情況跟使用的操作系統(tǒng)、硬件和軟件都有關系,即使是運行在基于MVS多重虛擬存儲系統(tǒng)的IBM大型機上也可能發(fā)生數(shù)據(jù)損壞事故,只是概率要比系統(tǒng)低很多。
    瑞士一家實驗室去年發(fā)表了一篇關于數(shù)據(jù)損壞的論文,其中有些內容值得一讀。
    你可能會想,這些跟重復數(shù)據(jù)刪除有什么關系。問題是,如果重復數(shù)據(jù)刪除的硬件或者軟件損壞了,你可能會失去所有的數(shù)據(jù)。 如果你打算刪除重復的數(shù)據(jù),你就必須保證你擁有的那些數(shù)據(jù)是完好的。
    例如,加入數(shù)據(jù)在被讀出時損壞,而存儲在磁盤上的數(shù)據(jù)仍是好的,那么在進行數(shù)據(jù)對比時會怎么樣? 如果再次讀取,可能就能夠得到正確的數(shù)據(jù)。但是如果數(shù)據(jù)被寫入磁盤時的日期出錯,你是否還能讀取那些文件呢? 讓我們一步一步分析這兩個例子,看看到底發(fā)生了什么事。
    實例1:受損數(shù)據(jù)讀取
    如果從磁盤讀取數(shù)據(jù),而且那些數(shù)據(jù)由于某種原因損壞了,然后開始將受損的數(shù)據(jù)應用于新數(shù)據(jù),你可能會遇到一個大問題。當你再次從磁盤讀取數(shù)據(jù),進行重復數(shù)據(jù)刪除的操作時,它可能就不同了。
    如果將讀取的數(shù)據(jù)與新數(shù)據(jù)進行對比,內存中的數(shù)據(jù)將是壞的,所以你找到的所有一樣的數(shù)據(jù)在下次被讀取時都將變成其他的數(shù)據(jù)。因此,基本上從受損數(shù)據(jù)中讀取的任何數(shù)據(jù)都將被錯誤的對比,因而變得無法讀取。
    如果那些數(shù)據(jù)由于某種原因被重新讀取,而且讀取的是正確的數(shù)據(jù)的話,那么后續(xù)數(shù)據(jù)都將是正確的。除此之外,就會發(fā)生無法恢復的調試,你將丟失大量的數(shù)據(jù)。 令人擔心的是,一部分數(shù)據(jù)是好的,一部分數(shù)據(jù)是壞的,要想?yún)^(qū)分開來,非要進行非常細致的檢查工作。
    實例2:受損數(shù)據(jù)重復數(shù)據(jù)
    但是,如果數(shù)據(jù)從一開始就出錯,在磁盤上就已經受損了怎么辦? 這個問題與第一個實例很相似,考試@大提示只是第一個實例中的數(shù)據(jù)是好的,后來才讀取了壞的數(shù)據(jù),令所有數(shù)據(jù)都受損了。在這個實例中,重復數(shù)據(jù)是在內存中創(chuàng)建的,是好的,但是磁盤上的數(shù)據(jù)是壞的。 也就是說,你用一個好的重復數(shù)據(jù)建立了數(shù)據(jù),但是一旦從磁盤讀取數(shù)據(jù),數(shù)據(jù)就變成壞的了。好的一面是,一旦從磁盤重新讀取數(shù)據(jù)到內存,數(shù)據(jù)就一樣了,所以這個問題不是很嚴重。 但是在利用內存中的原始數(shù)據(jù)創(chuàng)建數(shù)據(jù)時,你不能進行恢復已經刪除的重復數(shù)據(jù)。當你下個月恢復刪除的重復數(shù)據(jù)時,你會獲得錯誤的數(shù)據(jù),除非從磁盤讀取正確的數(shù)據(jù)才行。 再次強調一點,這是個調試問題,可能無法解決。
    你需要向廠商咨詢些什么
    我自己遇到過數(shù)據(jù)受損的事故,我也看到其他人遇到過同樣的問題,你遲早也會遇到。 我也非常相信新的T10 Data Integrity Field標準,這個標準會從主機向磁盤進行8字節(jié)的檢驗,讓磁盤來驗證數(shù)據(jù),估計很多廠商都將在今年晚些時候提供基于這種標準的產品。我個人很喜歡這個標準,因為有些部分已經應用于硬件的數(shù)據(jù)通道中,它是由為你提供SCSI協(xié)議的同一個廠商提供的。
    文件系統(tǒng)可以進行數(shù)據(jù)檢驗,但是如果文件系統(tǒng)在進行檢驗時修正了數(shù)據(jù),你可能會遇到兩個問題:
    文件系統(tǒng)在檢驗之前必須將數(shù)據(jù)讀回到服務器。當數(shù)據(jù)被寫回設備之前,它們是沒有被檢驗過的。
    服務器CPU必須計算出檢驗數(shù)字,并且在文件被讀回時進行驗證。這對服務器有很大影響。 包括增加內存帶寬的要求以及利用CPU高速緩存,要求將應用程序重新從內存載入以及檢驗數(shù)字計算所需的內存帶寬。
    如果你運行的應用程序使用了大量服務器資源,這就會構成一個嚴重的問題了。
    有些產品有著自己的文件系統(tǒng)和檢驗數(shù)字,可以解決我對數(shù)據(jù)損壞的部分擔憂,但是并非所有的廠商都提供了具有這些功能的產品。這只是你應關注的重復數(shù)據(jù)刪除中的一部分問題。 在選購產品時,你還必須考慮其他許多因素,但是這應該是你優(yōu)先考慮的因素。你在提出這個問題的時候,廠商們也許會說這是你自己的問題,你的系統(tǒng)應該象T10DIF那樣。 這種回答是錯誤的。在你提出問題之前,廠商們必須考慮到你的硬件和軟件,如果它們把問題丟給你,你就不用考慮購買它們的產品了。
    在某些環(huán)境中,重復數(shù)據(jù)刪除是一種很重要的工具,但是凡事都有兩面性,你應該認真規(guī)劃和執(zhí)行它。