圖 文件級(jí)別的基于相同數(shù)據(jù)檢測(cè)

經(jīng)典文獻(xiàn)

u Single instance storage in Windows 2000

Bolosky WJ, Corbin S, Goebel D, Douceur JR. In: Proc. of the 4th Usenix Windows System Symp. Berkeley: USENIX Association, 2000. 13−24.

Windows 2000的單一實(shí)例存儲(chǔ)(SIS)是作為支持遠(yuǎn)程安裝服務(wù)的一個(gè)組件。由于遠(yuǎn)程安裝中不同的machine image可能存在很多重復(fù)文件,所以Windows 2000可以用這項(xiàng)功能節(jié)省空間。

SIS 主要由兩部分實(shí)現(xiàn):內(nèi)核級(jí)的文件系統(tǒng)過(guò)濾器,用于管理復(fù)制、修改和歸并文件;用戶(hù)級(jí)的數(shù)據(jù)檢測(cè)器,用于搜索需要?dú)w并的相同文件。如下所示。

圖 Windows SIS 實(shí)現(xiàn)原理圖

用戶(hù)態(tài)下的數(shù)據(jù)檢測(cè)器用每個(gè)文件的128位摘要進(jìn)行檢測(cè),摘要的前64位代表文件的大小。事實(shí)上,用64位表征文件大小的開(kāi)銷(xiāo)并不大,但它顯然不能區(qū)分相同大小的不同文件。摘要的后64位是用文件的一部分計(jì)算出的hash函數(shù)值。過(guò)濾器從文件中部截取兩個(gè)4KB的數(shù)據(jù)塊計(jì)算它們的hash函數(shù)值。如果文件小于或者等于8KB,則直接用全文件計(jì)算。用戶(hù)級(jí)檢測(cè)文件系統(tǒng)的變化,維護(hù)一個(gè)文件hash值的數(shù)據(jù)庫(kù)用來(lái)檢測(cè)重復(fù)文件,然后將檢測(cè)到的重復(fù)文件報(bào)告給過(guò)濾器。如果兩個(gè)文件的摘要相同,數(shù)據(jù)檢測(cè)器會(huì)進(jìn)行仔細(xì)的二進(jìn)制比較。

內(nèi)核態(tài)下SIS是位于NTFS文件系統(tǒng)之上的一層過(guò)濾器,負(fù)責(zé)管理數(shù)據(jù)檢測(cè)器檢測(cè)出的硬盤(pán)卷上的重復(fù)數(shù)據(jù)。發(fā)現(xiàn)重復(fù)的文件時(shí),SIS過(guò)濾器首先將文件拷貝到SIS公共存儲(chǔ)區(qū)域中,接著將原文件位置用一個(gè)指向公共存儲(chǔ)區(qū)域的鏈接代替。當(dāng)用戶(hù)進(jìn)程試圖讀一個(gè)普通文件時(shí),SIS過(guò)濾器將文件的去寫(xiě)請(qǐng)求重定向到SIS公共存儲(chǔ)區(qū)域目錄。當(dāng)用戶(hù)進(jìn)程想寫(xiě)一個(gè)文件時(shí),SIS采用copy-on-close策略。Copy-on-close策略和我們熟悉的 copy-on-write策略不同。復(fù)制操作不是在第一次寫(xiě)操作的時(shí)候執(zhí)行,而是延遲到關(guān)于這個(gè)文件的所有更新操作都完成時(shí)才執(zhí)行,并且只有新的數(shù)據(jù)才會(huì)被拷貝到公共存儲(chǔ)空間。也就是說(shuō)當(dāng)文件在公共存儲(chǔ)區(qū)域中有副本時(shí),SIS的復(fù)制操作開(kāi)銷(xiāo)其實(shí)很小,只有SIS鏈接和新的數(shù)據(jù)。通過(guò)對(duì)具有20個(gè)不同 Windows NT映像的服務(wù)器進(jìn)行測(cè)試,結(jié)果表明共節(jié)省了58% 的存儲(chǔ)空間。

文件級(jí)別的相同數(shù)據(jù)檢測(cè)可以檢測(cè)出不同文件名的相同文件,也可以檢測(cè)出不同目錄下的相同文件,運(yùn)算快速,便于實(shí)現(xiàn)。但由于hash函數(shù)的雪崩性,兩個(gè)相似的文件即使只有一個(gè)字節(jié)不同,計(jì)算出來(lái)的hash函數(shù)值也會(huì)完全不同,因此文件之間依然會(huì)存在大量的重復(fù)數(shù)據(jù)。為了解決這個(gè)問(wèn)題,研究者們提出了基于數(shù)據(jù)塊級(jí)別的重復(fù)數(shù)據(jù)檢測(cè)。

分享到

huanghui

相關(guān)推薦