專利名稱:全息數(shù)據(jù)磁盤存儲(chǔ)方法及其丟失數(shù)據(jù)的恢復(fù)方法
技術(shù)領(lǐng)域:
本發(fā)明涉及電子技術(shù)領(lǐng)域,尤其涉及一種全息數(shù)據(jù)磁盤存儲(chǔ)方法及其丟失數(shù)據(jù)的恢復(fù)方法。
在這里我們以FAT文件系統(tǒng)為例講解一下數(shù)據(jù)存儲(chǔ)具體實(shí)現(xiàn)的方法。FAT的存儲(chǔ)空間可以分為三大部分,第一部分是引導(dǎo)區(qū),第二部分是文件分區(qū)表,第三部分是數(shù)據(jù)區(qū)。文件分區(qū)表存儲(chǔ)所有文件的地址鏈接,是這個(gè)FAT文件系統(tǒng)最重要的部分。只要破壞磁盤的FAT文件分區(qū)表(最小只有5%),就可以達(dá)到破壞整個(gè)磁盤數(shù)據(jù)的目的,無法恢復(fù)。在數(shù)據(jù)區(qū)任何一個(gè)數(shù)據(jù)破壞了,也是不能恢復(fù)的。這種存儲(chǔ)技術(shù)的直接缺點(diǎn)就是無法恢復(fù)被物理損壞的數(shù)據(jù)。
本發(fā)明的目的是這樣實(shí)現(xiàn)的一種全息數(shù)據(jù)磁盤存儲(chǔ)方法包括(1.1)在每個(gè)數(shù)據(jù)存儲(chǔ)塊中設(shè)置數(shù)據(jù)校驗(yàn)信息,數(shù)據(jù)校驗(yàn)信息用于恢復(fù)丟失的部分?jǐn)?shù)據(jù);(1.2)為每個(gè)數(shù)據(jù)存儲(chǔ)塊配置編址信息,編址信息用于定位數(shù)據(jù)存儲(chǔ)塊。
所述的數(shù)據(jù)校驗(yàn)信息為校驗(yàn)碼。
所述的校驗(yàn)碼為數(shù)據(jù)存儲(chǔ)塊實(shí)際存儲(chǔ)數(shù)據(jù)的循環(huán)冗余校驗(yàn)碼(CRC)。
所述的校驗(yàn)碼可以采用的是橫向和縱向結(jié)合的雙重校驗(yàn)碼。
所述的校驗(yàn)碼也可以采用的是多重校驗(yàn)碼。
所述的編址信息為數(shù)據(jù)存儲(chǔ)塊的特殊標(biāo)志和編號。
本發(fā)明中,在磁盤中存儲(chǔ)的同一組存儲(chǔ)數(shù)據(jù)的各個(gè)數(shù)據(jù)存儲(chǔ)塊的特殊標(biāo)志設(shè)置為相同,各個(gè)數(shù)據(jù)存儲(chǔ)塊的編號為順序設(shè)置。
本發(fā)明中,在磁盤中存儲(chǔ)的同一組存儲(chǔ)數(shù)據(jù)的各個(gè)數(shù)據(jù)存儲(chǔ)塊的特殊標(biāo)志也可以設(shè)置為經(jīng)過換算后相同。
一種磁盤中丟失數(shù)據(jù)的恢復(fù)方法,包括(9.1)根據(jù)數(shù)據(jù)存儲(chǔ)塊的特殊標(biāo)志查找確定該組數(shù)據(jù)的各個(gè)數(shù)據(jù)存儲(chǔ)塊;(9.2)根據(jù)數(shù)據(jù)存儲(chǔ)塊的編號將各個(gè)數(shù)據(jù)存儲(chǔ)塊順序連接起來;(9.3)將每個(gè)數(shù)據(jù)存儲(chǔ)塊通過校驗(yàn)碼進(jìn)行數(shù)據(jù)恢復(fù)。
由上述方案可以得知,本發(fā)明所述的全息數(shù)據(jù)磁盤存儲(chǔ)方法提供了一種新的數(shù)據(jù)存儲(chǔ)方法,在每個(gè)數(shù)據(jù)存儲(chǔ)塊中設(shè)置了雙重或多重校驗(yàn)碼信息,并為每個(gè)數(shù)據(jù)存儲(chǔ)塊配置了特殊標(biāo)志和編號,從而為丟失數(shù)據(jù)的恢復(fù)提供基礎(chǔ);本發(fā)明所述的磁盤中丟失數(shù)據(jù)的恢復(fù)方法提供了一種基于上述數(shù)據(jù)存儲(chǔ)方法的丟失數(shù)據(jù)的恢復(fù)方法,從而使在磁盤中的數(shù)據(jù)發(fā)生部分丟失時(shí),可有效地對丟失的數(shù)據(jù)進(jìn)行恢復(fù),大大提高了磁盤數(shù)據(jù)存儲(chǔ)的可靠性。
因此,本發(fā)明所述的磁盤存儲(chǔ)方法涉及了數(shù)據(jù)的存儲(chǔ)方式,以及數(shù)據(jù)的組織方式和校驗(yàn)信息,即采用了全息數(shù)據(jù)的磁盤存儲(chǔ)方法,為磁盤中存儲(chǔ)數(shù)據(jù)丟失的恢復(fù)提供了更大的可能。
如
圖1所示,該數(shù)據(jù)存儲(chǔ)塊為4*4的二進(jìn)制矩陣,表示正常的數(shù)據(jù)存儲(chǔ);數(shù)據(jù)存儲(chǔ)塊中實(shí)際的數(shù)據(jù)就是3*3的矩陣,第四行和第四列的數(shù)據(jù)就是校驗(yàn)碼。
如圖2所示,該數(shù)據(jù)存儲(chǔ)塊中的“X”表示有數(shù)據(jù)丟失,并采用以下過程進(jìn)行恢復(fù)第一步恢復(fù)第一行和第一列丟失的數(shù)據(jù),如圖3所示;第二步恢復(fù)第二行和第二列丟失的數(shù)據(jù),如圖4所示;第三步恢復(fù)第三行和第三列丟失的數(shù)據(jù),如圖5所示;至此就恢復(fù)所有丟失的數(shù)據(jù);冗余數(shù)據(jù)丟失也可以按此方法恢復(fù)。當(dāng)然,如果數(shù)據(jù)損失太嚴(yán)重,則無法通過校驗(yàn)碼來恢復(fù)完整的數(shù)據(jù)了。如圖6所示的數(shù)據(jù)存儲(chǔ)塊,則因?yàn)榇司仃噥G失數(shù)據(jù)太多就無法全部恢復(fù)了。
然后,為每個(gè)數(shù)據(jù)存儲(chǔ)塊配置編址信息,編址信息用于定位數(shù)據(jù)存儲(chǔ)塊;所述的編址信息為數(shù)據(jù)存儲(chǔ)塊的特殊標(biāo)志和編號,在磁盤中存儲(chǔ)的同一組存儲(chǔ)數(shù)據(jù)的各個(gè)數(shù)據(jù)存儲(chǔ)塊的特殊標(biāo)志設(shè)置為相同,各個(gè)數(shù)據(jù)存儲(chǔ)塊的編號為順序設(shè)置。
由于實(shí)際存儲(chǔ)一組數(shù)據(jù)量是很大的,所以要對這些數(shù)據(jù)進(jìn)行分塊處理,而且數(shù)據(jù)塊很大可能性是隨機(jī)存儲(chǔ)的,只有通過編址信息定位數(shù)據(jù)塊,才能最終組合成有效的數(shù)據(jù)。
如圖7所示,某一組存儲(chǔ)數(shù)據(jù)的各個(gè)數(shù)據(jù)存儲(chǔ)塊中的特殊標(biāo)塊為“#”,則可以通過以下步驟找到該組存儲(chǔ)數(shù)據(jù)第一步是找到帶有特殊標(biāo)志“#”的數(shù)據(jù)存儲(chǔ)塊;第二步是把特殊標(biāo)志數(shù)據(jù)塊的編號記錄下來;第三步是通過編號的正常排序,來組合各個(gè)數(shù)據(jù)存儲(chǔ)塊,這樣便得到了該組存儲(chǔ)數(shù)據(jù)SUNV SECURITY DATA;這里字母就表示我們真實(shí)的數(shù)據(jù)塊。
以每個(gè)數(shù)據(jù)存儲(chǔ)塊采用512個(gè)字節(jié)為例,本發(fā)明即是在每個(gè)數(shù)據(jù)存儲(chǔ)塊中的最后16個(gè)字節(jié)設(shè)置以下信息一個(gè)特殊的標(biāo)志、卷號、塊編號及校驗(yàn)碼,具體可以通過以下命令行進(jìn)行相應(yīng)各信息的配置typedef struct_TSSSector{CHAR DataBuffer[_RaidSize];INT SectorID; //數(shù)據(jù)塊編號INT DfvsMark; //特殊標(biāo)志INT VolumeMark; //卷號INT CheckSum; //校驗(yàn)碼}TSSSector,*PSSSector;因此,本發(fā)明可以恢復(fù)磁盤中部分丟失的數(shù)據(jù)。盡管本發(fā)明中為各個(gè)數(shù)據(jù)存儲(chǔ)塊的校驗(yàn)碼和編址信息會(huì)占用一些磁盤空間;但是現(xiàn)在電腦配件硬盤是越來越大,損失一點(diǎn)磁盤空間是不會(huì)有多大負(fù)擔(dān)。
通過上述數(shù)據(jù)存儲(chǔ)方法在磁盤中存儲(chǔ)數(shù)據(jù),便可以在數(shù)據(jù)丟失情況下較為方便地將丟失的數(shù)據(jù)恢復(fù),本發(fā)明所述的磁盤中丟失數(shù)據(jù)的恢復(fù)方法具體為步驟1根據(jù)數(shù)據(jù)存儲(chǔ)塊的特殊標(biāo)志查找確定該組數(shù)據(jù)的各個(gè)數(shù)據(jù)存儲(chǔ)塊;定位程序循環(huán)搜索磁盤扇區(qū),即各個(gè)數(shù)據(jù)存儲(chǔ)塊,并將各個(gè)數(shù)據(jù)存儲(chǔ)塊的特殊標(biāo)志與需要查找的數(shù)據(jù)存儲(chǔ)塊的特殊標(biāo)志相匹配,查找到匹配的數(shù)據(jù)存儲(chǔ)塊后,再進(jìn)一步與需要查找的數(shù)據(jù)存儲(chǔ)塊的卷號進(jìn)行匹配,并確定匹配的數(shù)據(jù)存儲(chǔ)塊;步驟2根據(jù)數(shù)據(jù)存儲(chǔ)塊的編號將步驟1查找到的各個(gè)數(shù)據(jù)存儲(chǔ)塊順序連接起來,便可以得到所有的數(shù)據(jù)存儲(chǔ)塊,若有數(shù)據(jù)存儲(chǔ)塊丟失,還可以知道哪些數(shù)據(jù)存儲(chǔ)塊丟失;步驟3將每個(gè)數(shù)據(jù)存儲(chǔ)塊通過校驗(yàn)碼進(jìn)行數(shù)據(jù)恢復(fù);檢查每個(gè)數(shù)據(jù)塊的校驗(yàn)碼,可以知道哪些數(shù)據(jù)塊被破壞;然后根據(jù)恢復(fù)算法,對被破壞的數(shù)據(jù)塊進(jìn)行恢復(fù)。
權(quán)利要求
1.一種全息數(shù)據(jù)磁盤存儲(chǔ)方法,其特征在于包括(1.1)在每個(gè)數(shù)據(jù)存儲(chǔ)塊中設(shè)置數(shù)據(jù)校驗(yàn)信息,數(shù)據(jù)校驗(yàn)信息用于恢復(fù)丟失的部分?jǐn)?shù)據(jù);(1.2)為每個(gè)數(shù)據(jù)存儲(chǔ)塊配置編址信息,編址信息用于定位數(shù)據(jù)存儲(chǔ)塊。
2.根據(jù)權(quán)利要求1所述的全息數(shù)據(jù)磁盤存儲(chǔ)方法,其特征在于所述的數(shù)據(jù)校驗(yàn)信息為校驗(yàn)碼。
3.根據(jù)權(quán)利要求2所述的全息數(shù)據(jù)磁盤存儲(chǔ)方法,其特征在于所述的校驗(yàn)碼為數(shù)據(jù)存儲(chǔ)塊實(shí)際存儲(chǔ)數(shù)據(jù)的循環(huán)冗余校驗(yàn)碼(CRC)。
4.根據(jù)權(quán)利要求2或3所述的全息數(shù)據(jù)磁盤存儲(chǔ)方法,其特征在于所述的校驗(yàn)碼采用的是橫向和縱向結(jié)合的雙重校驗(yàn)碼。
5.根據(jù)權(quán)利要求2或3所述的全息數(shù)據(jù)磁盤存儲(chǔ)方法,其特征在于所述的校驗(yàn)碼采用的是多重校驗(yàn)碼。
6.根據(jù)權(quán)利要求1所述的全息數(shù)據(jù)磁盤存儲(chǔ)方法,其特征在于所述的編址信息為數(shù)據(jù)存儲(chǔ)塊的特殊標(biāo)志和編號。
7.根據(jù)權(quán)利要求6所述的全息數(shù)據(jù)磁盤存儲(chǔ)方法,其特征在于在磁盤中存儲(chǔ)的同一組存儲(chǔ)數(shù)據(jù)的各個(gè)數(shù)據(jù)存儲(chǔ)塊的特殊標(biāo)志設(shè)置為相同,各個(gè)數(shù)據(jù)存儲(chǔ)塊的編號為順序設(shè)置。
8.根據(jù)權(quán)利要求6所述的全息數(shù)據(jù)磁盤存儲(chǔ)方法,其特征在于在磁盤中存儲(chǔ)的同一組存儲(chǔ)數(shù)據(jù)的各個(gè)數(shù)據(jù)存儲(chǔ)塊的特殊標(biāo)志設(shè)置為經(jīng)過換算后相同。
9.一種磁盤中丟失數(shù)據(jù)的恢復(fù)方法,其特征在于包括(9.1)根據(jù)數(shù)據(jù)存儲(chǔ)塊的特殊標(biāo)志查找確定該組數(shù)據(jù)的各個(gè)數(shù)據(jù)存儲(chǔ)塊;(9.2)根據(jù)數(shù)據(jù)存儲(chǔ)塊的編號將各個(gè)數(shù)據(jù)存儲(chǔ)塊順序連接起來;(9.3)將每個(gè)數(shù)據(jù)存儲(chǔ)塊通過校驗(yàn)碼進(jìn)行數(shù)據(jù)恢復(fù)。
全文摘要
本發(fā)明涉及一種全息數(shù)據(jù)磁盤存儲(chǔ)方法及其丟失數(shù)據(jù)的恢復(fù)方法。全息數(shù)據(jù)磁盤存儲(chǔ)方法為在所存儲(chǔ)的每個(gè)數(shù)據(jù)存儲(chǔ)塊中設(shè)置實(shí)際存儲(chǔ)數(shù)據(jù)的雙重或多重校驗(yàn)碼;并為每個(gè)數(shù)據(jù)存儲(chǔ)塊配置特殊標(biāo)志和編號。磁盤中丟失數(shù)據(jù)的恢復(fù)方法則為首先,根據(jù)數(shù)據(jù)存儲(chǔ)塊的特殊標(biāo)志找到該組數(shù)據(jù)的各個(gè)數(shù)據(jù)存儲(chǔ)塊;然后,根據(jù)數(shù)據(jù)存儲(chǔ)塊的編號將各個(gè)數(shù)據(jù)存儲(chǔ)塊順序連接起來;最后,將每個(gè)數(shù)據(jù)存儲(chǔ)塊通過校驗(yàn)碼進(jìn)行數(shù)據(jù)恢復(fù)。本發(fā)明可以有效地將部分丟失的數(shù)據(jù)信息恢復(fù),大大提高了磁盤存儲(chǔ)數(shù)據(jù)的可靠性;因此,本發(fā)明允許數(shù)據(jù)被破壞的數(shù)量大大增加,存儲(chǔ)數(shù)據(jù)的整體恢復(fù)性能顯著提高。
文檔編號G11B5/09GK1397950SQ0212952
公開日2003年2月19日 申請日期2002年8月30日 優(yōu)先權(quán)日2002年8月30日
發(fā)明者何戰(zhàn)濤 申請人:交大銘泰(北京)軟件有限公司