資源描述:
《分布式數(shù)據(jù)共享存儲(chǔ)系統(tǒng)的分析與實(shí)現(xiàn)》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在學(xué)術(shù)論文-天天文庫(kù)。
1、分布式數(shù)據(jù)共享存儲(chǔ)系統(tǒng)的研究與實(shí)現(xiàn)大,如果兩個(gè)文件僅僅只有一個(gè)字節(jié)不同,它們也會(huì)產(chǎn)生不同的哈希值,因此發(fā)現(xiàn)不了重復(fù)數(shù)據(jù)。這會(huì)導(dǎo)致大量文件內(nèi)數(shù)據(jù)段之間的重復(fù)。BoloskypJ等人在Windows系統(tǒng)中實(shí)現(xiàn)了單例存儲(chǔ)技術(shù)(SIS)。在文件存入系統(tǒng)時(shí)通過(guò)查找相同的文件,如果存在則將新文件鏈接到已有的文件上,再通過(guò)寫時(shí)拷貝來(lái)處理文件內(nèi)容的修改。因?yàn)樵谌粘5氖褂弥型耆嗤奈募⒉皇呛芏?,所以該技術(shù)不能像現(xiàn)代重復(fù)數(shù)據(jù)消除系統(tǒng)那樣消除更多的重復(fù)數(shù)據(jù),但是它簡(jiǎn)單并且效率較高。為了解決全文去重效率不高的問(wèn)題,重復(fù)數(shù)據(jù)消除系統(tǒng)可以使用數(shù)據(jù)分塊技術(shù)。分塊技術(shù)使
2、用哈希值來(lái)標(biāo)記文件數(shù)據(jù)的一部分,而不是將整個(gè)文件進(jìn)行標(biāo)記。目前有兩種常用的方法來(lái)決定文件的數(shù)據(jù)怎樣分塊:固定大小分塊和變長(zhǎng)數(shù)據(jù)分塊。兩種方法都使用分塊來(lái)標(biāo)記重復(fù)數(shù)據(jù)。分塊技術(shù)利用數(shù)據(jù)內(nèi)容將數(shù)據(jù)塊打上不同的標(biāo)記,根據(jù)標(biāo)記是否相同來(lái)辨別數(shù)據(jù)是否相同。然后將單一的數(shù)據(jù)副本和不同的元數(shù)據(jù)進(jìn)行存儲(chǔ),并利用元數(shù)據(jù)和不同的數(shù)據(jù)塊來(lái)進(jìn)行數(shù)據(jù)恢復(fù)。數(shù)據(jù)塊的大小可以是預(yù)定義的一個(gè)值,但更多的是一個(gè)根據(jù)數(shù)據(jù)內(nèi)容本身而來(lái)的一個(gè)變量值。在本文中重點(diǎn)討論變長(zhǎng)分塊技術(shù)。固定大小分塊是一種比較簡(jiǎn)單的數(shù)據(jù)分塊技術(shù)。首先,文件被拆分成固定大小的數(shù)據(jù)塊,數(shù)據(jù)塊的大小可以是文件系統(tǒng)
3、的一個(gè)數(shù)據(jù)塊或者由去重系統(tǒng)指定的一個(gè)大小值。如果找到一個(gè)重復(fù)塊,則將該塊不寫入磁盤,同時(shí)更新文件的元數(shù)據(jù)表。如果數(shù)據(jù)塊在系統(tǒng)中未找到則將數(shù)據(jù)寫入磁盤,同時(shí)將該數(shù)據(jù)塊的哈希值添加的元數(shù)據(jù)表中。在使用固定大小分塊的文件系統(tǒng)像Venti[4J和DDDFS[5J那樣,使用160個(gè)二進(jìn)制位的SHA.1來(lái)進(jìn)行摘要提取作為數(shù)據(jù)塊的哈希值。然后利用哈希值進(jìn)行重復(fù)數(shù)據(jù)的查找,將數(shù)據(jù)塊合并存儲(chǔ)在一個(gè)較大的文件中。而在Opendedupt6】文件系統(tǒng)中卻是用了另外一種數(shù)據(jù)存儲(chǔ)方式,該文件系統(tǒng)實(shí)現(xiàn)了用戶空間的在線重復(fù)數(shù)據(jù)消除。該文件系統(tǒng)將每一個(gè)唯一的數(shù)據(jù)塊都作為一個(gè)
4、文件來(lái)存儲(chǔ),這樣的存儲(chǔ)方式并不利用數(shù)據(jù)的管理,這樣會(huì)在系統(tǒng)中產(chǎn)生太多的文件,給文件的查找造成性能瓶頸。使用固定塊大小的好處是能夠比使用全文哈希得到更多的重復(fù)數(shù)據(jù)。但是它同樣存在跟全文哈希一樣的問(wèn)題,當(dāng)兩個(gè)數(shù)據(jù)塊僅僅差一個(gè)字節(jié)的時(shí)候產(chǎn)生的哈希值都是不一樣的,因此不能檢測(cè)出兩個(gè)數(shù)據(jù)塊中的重復(fù)數(shù)據(jù)部分。對(duì)于每一個(gè)存儲(chǔ)在磁盤上的唯一數(shù)據(jù)塊在元數(shù)據(jù)哈希表中都有一條相應(yīng)的記錄。這意味著元數(shù)據(jù)的大小隨著存儲(chǔ)在磁盤上的唯一數(shù)據(jù)塊的增加而增加。為了解決固定分塊技術(shù)中塊之間重復(fù)數(shù)據(jù)的問(wèn)題,可以使用變長(zhǎng)分塊技術(shù)。變長(zhǎng)分塊技術(shù)使用一種算法通過(guò)計(jì)算邊界來(lái)計(jì)算每個(gè)數(shù)據(jù)塊
5、的大小。最普遍的計(jì)算數(shù)據(jù)塊邊界的算法就是基于Rabin[7】指紋算法。使用Rabin指紋算法數(shù)據(jù)塊的大小是由文件的內(nèi)容決定的?;赗abin指紋算法的數(shù)據(jù)分塊通常有一個(gè)最小和最大塊限制,以此來(lái)限制生大連理工大學(xué)碩士學(xué)位論文成的數(shù)據(jù)塊的長(zhǎng)度。在數(shù)據(jù)塊邊界被確定后使用該數(shù)據(jù)塊的MD5181或者SHAl91值作為該數(shù)據(jù)塊的標(biāo)識(shí)符。當(dāng)整個(gè)文件都被分塊后數(shù)據(jù)塊的重復(fù)檢測(cè)跟固定分塊方法類似,只有不重復(fù)的數(shù)據(jù)塊才寫入到磁盤上。當(dāng)前流行的Pastall0】系統(tǒng)中就采用了這種變長(zhǎng)分塊技術(shù),該系統(tǒng)將數(shù)據(jù)分塊后存儲(chǔ)在網(wǎng)絡(luò)中的各個(gè)節(jié)點(diǎn)以此讓大家共享更多的數(shù)據(jù),從某種
6、意義上來(lái)說(shuō)這更接近于當(dāng)前云存儲(chǔ)的思想。變長(zhǎng)分塊的好處是比固定分塊能得到更多的重復(fù)數(shù)據(jù),它甚至還能避免之前全文哈希和固定分塊中出現(xiàn)的數(shù)據(jù)塊相差一個(gè)字節(jié)的問(wèn)題。雖然變長(zhǎng)分塊能檢測(cè)到更多重復(fù)數(shù)據(jù),但是它將比固定分塊付出更多的代價(jià)。進(jìn)行重復(fù)數(shù)據(jù)檢測(cè)前固定分塊已經(jīng)有一個(gè)指定數(shù)據(jù)塊大小,而變長(zhǎng)分塊使用Rabin指紋來(lái)計(jì)算每個(gè)塊的大小。如果算法中的最小最大參數(shù)設(shè)置的合理對(duì)于同一個(gè)文件變長(zhǎng)分塊將會(huì)比固定分塊產(chǎn)生更多的數(shù)據(jù)塊。更多的數(shù)據(jù)塊也就意味著將要存儲(chǔ)更多的元數(shù)據(jù)。但是根據(jù)文件的內(nèi)容來(lái)決定數(shù)據(jù)塊的邊界,文件內(nèi)容的少量改動(dòng)對(duì)整個(gè)文件中的大部分?jǐn)?shù)據(jù)塊將不會(huì)產(chǎn)生
7、影響。重復(fù)數(shù)據(jù)消除技術(shù)不僅僅能消除持久存儲(chǔ)上的重復(fù)數(shù)據(jù),它還能減少網(wǎng)絡(luò)中的帶寬利用率。LBFSt¨J使用變長(zhǎng)分塊來(lái)減少網(wǎng)絡(luò)帶寬。當(dāng)一個(gè)用戶想將一個(gè)文件發(fā)送到網(wǎng)絡(luò)中時(shí),LBFS使用Rabin指紋技術(shù)將文件分成一個(gè)個(gè)變長(zhǎng)的數(shù)據(jù)塊。然后將數(shù)據(jù)塊的Rabin指紋發(fā)送到目的節(jié)點(diǎn)。目的節(jié)點(diǎn)將接收到的指紋與本地存儲(chǔ)的指紋庫(kù)進(jìn)行對(duì)比,如果沒(méi)有找到匹配的指紋,則將該數(shù)據(jù)塊標(biāo)識(shí)符返回到客戶端用來(lái)指明需要發(fā)送哪些數(shù)據(jù)塊到目的節(jié)點(diǎn)。Shark[121文件系統(tǒng)利用LBFS的架構(gòu)并在分布式文件系統(tǒng)中實(shí)現(xiàn)了該架構(gòu)。當(dāng)客戶端想要存儲(chǔ)一個(gè)文件到系統(tǒng)中時(shí)任然使用Rabin指紋將
8、文件分成小的數(shù)據(jù)塊。但是在Shark文件系統(tǒng)中客戶端使用SHA.1來(lái)生成每個(gè)數(shù)據(jù)塊的標(biāo)識(shí)符。TAPER[13】文件系統(tǒng)使用重復(fù)數(shù)據(jù)消除技術(shù)在同步復(fù)制的時(shí)候進(jìn)行重復(fù)數(shù)