国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      一種數(shù)據(jù)存儲(chǔ)和數(shù)據(jù)恢復(fù)方法

      文檔序號(hào):6606846閱讀:135來源:國知局
      專利名稱:一種數(shù)據(jù)存儲(chǔ)和數(shù)據(jù)恢復(fù)方法
      技術(shù)領(lǐng)域
      本發(fā)明涉及數(shù)據(jù)安全存儲(chǔ)領(lǐng)域,尤其涉及一種數(shù)據(jù)存儲(chǔ)和數(shù)據(jù)恢復(fù)方法。
      背景技術(shù)
      數(shù)據(jù)安全存儲(chǔ)技術(shù)是一項(xiàng)重要的技術(shù),可用于對重要的數(shù)據(jù)進(jìn)行存儲(chǔ),并且在數(shù)據(jù)出現(xiàn)一定的損壞時(shí)可以恢復(fù)數(shù)據(jù)。數(shù)據(jù)存儲(chǔ)應(yīng)用的環(huán)境很多,在所有基本的信號(hào)處理系統(tǒng)中,都需要對數(shù)字化的信息進(jìn)行存儲(chǔ),但由于應(yīng)用場合的不同以及外界的干擾,存儲(chǔ)的數(shù)據(jù)難免存在損壞,讀取時(shí)無法讀取到正確的數(shù)據(jù),因此需要某種數(shù)據(jù)存儲(chǔ)和恢復(fù)技術(shù)對數(shù)據(jù)進(jìn)行恢復(fù)。例如DVR(Digital Video Recorder,數(shù)字視頻錄像機(jī))就是視頻監(jiān)控領(lǐng)域中的重要設(shè)備,可以存儲(chǔ)錄制的視頻數(shù)據(jù),由于DVR的安置環(huán)境經(jīng)常會(huì)比較差,儲(chǔ)存的數(shù)據(jù)可能會(huì)因?yàn)殡姶旁蚧蛘哒饎?dòng)原因損壞,因此需要給DVR添加一定的數(shù)據(jù)安全機(jī)制,保證存儲(chǔ)的數(shù)據(jù)出現(xiàn)問題時(shí),能夠恢復(fù)損壞的數(shù)據(jù)。在現(xiàn)有技術(shù)中,一種存儲(chǔ)恢復(fù)方法是將待存儲(chǔ)的數(shù)據(jù)分割成多個(gè)分割數(shù)據(jù),計(jì)算多個(gè)分割數(shù)據(jù)的校驗(yàn)和,以及多個(gè)分割數(shù)據(jù)與校驗(yàn)和的按位異或結(jié)果,將多個(gè)分割數(shù)據(jù)與生成的校驗(yàn)數(shù)據(jù)同時(shí)進(jìn)行存儲(chǔ)。數(shù)據(jù)損壞時(shí)可以根據(jù)校驗(yàn)數(shù)據(jù)和未損壞的數(shù)據(jù)進(jìn)行恢復(fù)。 但該方法將數(shù)據(jù)進(jìn)行重復(fù)存儲(chǔ),占用了較多的額外存儲(chǔ)空間。另一種存儲(chǔ)恢復(fù)方法是在所存儲(chǔ)的每個(gè)數(shù)據(jù)邏輯存儲(chǔ)塊中設(shè)置實(shí)際存儲(chǔ)數(shù)據(jù)的雙重校驗(yàn)碼,并為每個(gè)數(shù)據(jù)邏輯存儲(chǔ)塊配置特殊標(biāo)志和編號(hào)。數(shù)據(jù)損壞時(shí)根據(jù)數(shù)據(jù)邏輯存儲(chǔ)塊的特殊標(biāo)志找到該組數(shù)據(jù)的各個(gè)數(shù)據(jù)邏輯存儲(chǔ)塊;然后,根據(jù)數(shù)據(jù)邏輯存儲(chǔ)塊的編號(hào)將各個(gè)數(shù)據(jù)邏輯存儲(chǔ)塊順序連接起來;最后,將每個(gè)數(shù)據(jù)邏輯存儲(chǔ)塊通過校驗(yàn)碼進(jìn)行數(shù)據(jù)恢復(fù)。該方法能夠恢復(fù)一行或一列損壞的數(shù)據(jù),但對于恢復(fù)多行多列數(shù)據(jù)損壞的情況,則有較大限制。

      發(fā)明內(nèi)容
      本發(fā)明的實(shí)施例提供一種數(shù)據(jù)存儲(chǔ)和恢復(fù)方法,能夠減少數(shù)據(jù)恢復(fù)的條件限制, 利用有限的存儲(chǔ)空間,更大范圍地恢復(fù)損壞的數(shù)據(jù)。為達(dá)到上述目的,本發(fā)明的實(shí)施例采用如下技術(shù)方案—方面,提供了一種數(shù)據(jù)存儲(chǔ)方法,包括對分配的存儲(chǔ)空間以行列矩陣形式的邏輯塊為單位進(jìn)行等分割,得到相同的至少兩個(gè)邏輯存儲(chǔ)塊,其中,每個(gè)邏輯存儲(chǔ)塊為行列矩陣形式,所述至少兩個(gè)邏輯存儲(chǔ)塊疊加構(gòu)成三維矩陣形式;對每個(gè)邏輯存儲(chǔ)塊的各行數(shù)據(jù)分別進(jìn)行校驗(yàn),得到每行的行校驗(yàn)值;對每個(gè)邏輯存儲(chǔ)塊的各列數(shù)據(jù)分別進(jìn)行校驗(yàn),得到每列的列校驗(yàn)值;對所述三維矩陣形式的至少兩個(gè)邏輯存儲(chǔ)塊第三維上的每組數(shù)據(jù)分別進(jìn)行校驗(yàn), 得到每組數(shù)據(jù)的第三維校驗(yàn)值。另一方面,提供了一種采用上述數(shù)據(jù)存儲(chǔ)方法的數(shù)據(jù)恢復(fù)方法,包括
      邏輯存儲(chǔ)塊內(nèi)數(shù)據(jù)恢復(fù)和/或邏輯存儲(chǔ)塊間數(shù)據(jù)恢復(fù);所述邏輯存儲(chǔ)塊內(nèi)數(shù)據(jù)恢復(fù)包括若損壞數(shù)據(jù)所在的列上只有所述損壞數(shù)據(jù)一處損壞時(shí),則用所述列上其他未損壞的所有數(shù)據(jù)以及所述列的列校驗(yàn)值對所述損壞數(shù)據(jù)進(jìn)行恢復(fù);和/或若損壞數(shù)據(jù)所在的行上只有所述損壞數(shù)據(jù)一處損壞時(shí),則用所述行上其他未損壞的所有數(shù)據(jù)以及所述行的行校驗(yàn)值對所述損壞數(shù)據(jù)進(jìn)行恢復(fù);所述邏輯存儲(chǔ)塊間數(shù)據(jù)恢復(fù)包括若損壞數(shù)據(jù)所在的第三維組中只有所述損壞數(shù)據(jù)一處損壞時(shí),則用所述第三維組中其他未損壞的所有數(shù)據(jù)以及所述第三維組的第三維校驗(yàn)值對所述損壞數(shù)據(jù)進(jìn)行恢復(fù)。本發(fā)明實(shí)施例提供的數(shù)據(jù)存儲(chǔ)和數(shù)據(jù)恢復(fù)方法,在數(shù)據(jù)存儲(chǔ)時(shí),對分配的存儲(chǔ)空間以行列矩陣形式的邏輯塊為單位進(jìn)行等分割,得到相同的多個(gè)邏輯存儲(chǔ)塊,其中,每個(gè)邏輯存儲(chǔ)塊為行列矩陣形式,多個(gè)邏輯存儲(chǔ)塊疊加構(gòu)成三維矩陣形式;對每個(gè)邏輯存儲(chǔ)塊的各行、各列數(shù)據(jù)分別進(jìn)行校驗(yàn),得到每行的行校驗(yàn)值以及每列的列校驗(yàn)值;對三維矩陣形式的多個(gè)邏輯存儲(chǔ)塊第三維上的每組數(shù)據(jù)分別進(jìn)行校驗(yàn),得到每組數(shù)據(jù)的第三維校驗(yàn)值。由此,得到了橫向、縱向和第三維的三組校驗(yàn)值,以便在恢復(fù)數(shù)據(jù)時(shí)能夠針對多行多列進(jìn)行恢復(fù);另外,本發(fā)明實(shí)施例所得到的校驗(yàn)值數(shù)量并不很多,校驗(yàn)值相對原始數(shù)據(jù)而言所占空間并不很大,解決了現(xiàn)有技術(shù)中占用存儲(chǔ)空間大的問題,而同時(shí)又能夠提供較好的數(shù)據(jù)恢復(fù)功能。在數(shù)據(jù)恢復(fù)時(shí),采用了邏輯存儲(chǔ)塊內(nèi)數(shù)據(jù)恢復(fù)、邏輯存儲(chǔ)塊間數(shù)據(jù)恢復(fù)以及邏輯存儲(chǔ)塊內(nèi)、塊間聯(lián)合數(shù)據(jù)恢復(fù)。豐富了現(xiàn)有技術(shù)中的數(shù)據(jù)恢復(fù)方式,在塊內(nèi)的行、列數(shù)據(jù)恢復(fù)的基礎(chǔ)上,通過塊間的第三維數(shù)據(jù)恢復(fù)減少了數(shù)據(jù)恢復(fù)的條件限制,利用有限的存儲(chǔ)空間,能夠更大范圍地恢復(fù)損壞的數(shù)據(jù),且不增加恢復(fù)難度。


      為了更清楚地說明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實(shí)施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)這些附圖獲得其他的附圖。圖1為本發(fā)明實(shí)施例提供的數(shù)據(jù)存儲(chǔ)方法的流程框圖;圖2為本發(fā)明實(shí)施例提供的數(shù)據(jù)存儲(chǔ)方法中,一個(gè)邏輯存儲(chǔ)塊的邏輯結(jié)構(gòu)示意圖;圖3為本發(fā)明實(shí)施例提供的數(shù)據(jù)存儲(chǔ)方法中,多個(gè)邏輯存儲(chǔ)塊的邏輯結(jié)構(gòu)示意圖;圖4為本發(fā)明實(shí)施例提供的數(shù)據(jù)存儲(chǔ)方法中,一個(gè)邏輯存儲(chǔ)塊內(nèi)的行校驗(yàn)和列校驗(yàn)示意圖;圖5為本發(fā)明實(shí)施例提供的數(shù)據(jù)存儲(chǔ)方法中,多個(gè)邏輯存儲(chǔ)塊的第三維校驗(yàn)的示意圖;圖6為本發(fā)明實(shí)施例提供的數(shù)據(jù)恢復(fù)方法中,邏輯存儲(chǔ)塊塊內(nèi)恢復(fù)的邏輯結(jié)構(gòu)示意圖7為本發(fā)明實(shí)施例提供的數(shù)據(jù)恢復(fù)方法中,邏輯存儲(chǔ)塊塊內(nèi)恢復(fù)的邏輯結(jié)構(gòu)另
      一示意圖;圖8為本發(fā)明實(shí)施例提供的數(shù)據(jù)恢復(fù)方法中,邏輯存儲(chǔ)塊塊間恢復(fù)的邏輯結(jié)構(gòu)示意圖。
      具體實(shí)施例方式下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。本發(fā)明實(shí)施例提供的數(shù)據(jù)存儲(chǔ)方法,如圖1所示,包括以下步驟S101、對分配的存儲(chǔ)空間以行列矩陣形式的邏輯塊為單位進(jìn)行等分割,得到相同的至少兩個(gè)邏輯存儲(chǔ)塊,其中,每個(gè)邏輯存儲(chǔ)塊為行列矩陣形式,至少兩個(gè)邏輯存儲(chǔ)塊疊加構(gòu)成三維矩陣形式。具體的,可以先將分配的存儲(chǔ)空間形成邏輯上的行列矩陣形式,然后以預(yù)定的行列矩陣形式的邏輯塊為單位進(jìn)行等分隔,該邏輯塊的大小可以由用戶自己決定。分割后得到多個(gè)相同的邏輯存儲(chǔ)塊,如圖2所示,假設(shè)本實(shí)施例中的一個(gè)邏輯存儲(chǔ)塊為8行X 10列。 多個(gè)邏輯存儲(chǔ)塊疊加構(gòu)成三維矩陣形式,結(jié)構(gòu)如圖3所示,假設(shè)本實(shí)施例共分為3個(gè)邏輯存儲(chǔ)塊。進(jìn)一步地,可以為要存儲(chǔ)的數(shù)據(jù)分配連續(xù)的存儲(chǔ)空間,這樣能夠加快磁盤讀寫速度,并且在后續(xù)分塊處理數(shù)據(jù)時(shí),能夠使數(shù)據(jù)整齊易處理。S102、對每個(gè)邏輯存儲(chǔ)塊的各行數(shù)據(jù)分別進(jìn)行校驗(yàn),得到每行的行校驗(yàn)值。如圖4所示,表示一個(gè)邏輯存儲(chǔ)塊在進(jìn)行第一行的校驗(yàn),得到第一行校驗(yàn)值。當(dāng)本邏輯存儲(chǔ)塊的各行都校驗(yàn)結(jié)束后,得到8個(gè)行校驗(yàn)值。S103、對每個(gè)邏輯存儲(chǔ)塊的各列數(shù)據(jù)分別進(jìn)行校驗(yàn),得到每列的列校驗(yàn)值。如圖4所示,表示一個(gè)邏輯存儲(chǔ)塊在進(jìn)行第一列的校驗(yàn),得到第一列校驗(yàn)值。當(dāng)本邏輯存儲(chǔ)塊的各列都校驗(yàn)結(jié)束后,得到10個(gè)列校驗(yàn)值。S104、對三維矩陣形式的至少兩個(gè)邏輯存儲(chǔ)塊第三維上的每組數(shù)據(jù)分別進(jìn)行校驗(yàn),得到每組數(shù)據(jù)的第三維校驗(yàn)值。在本實(shí)施例中,共等分得到了 3個(gè)邏輯存儲(chǔ)塊,即對這三維矩陣形式的3個(gè)邏輯存儲(chǔ)塊第三維上的每組數(shù)據(jù)分別進(jìn)行校驗(yàn),如圖5所示,表示對三維矩陣的左上角的一組數(shù)據(jù)進(jìn)行校驗(yàn),得到左上角這一組的第三維校驗(yàn)值。由于每個(gè)邏輯存儲(chǔ)塊為8行XlO列,所以第三維校驗(yàn)結(jié)束后,共得到80個(gè)第三維校驗(yàn)值。在本實(shí)施例中,步驟S102、S103、S104所進(jìn)行的校驗(yàn)可以為各個(gè)數(shù)據(jù)之間的異或運(yùn)算,這樣算法復(fù)雜度低,可以實(shí)現(xiàn)快速的數(shù)據(jù)存儲(chǔ)和讀取。但本發(fā)明實(shí)施例并不限于此, 其他的校驗(yàn)運(yùn)算也可以,只要能夠用來進(jìn)行數(shù)據(jù)恢復(fù)的所有校驗(yàn)運(yùn)算都應(yīng)落入本申請保護(hù)范圍內(nèi)。進(jìn)一步地,為了便于判斷邏輯存儲(chǔ)塊中的數(shù)據(jù)是否出現(xiàn)損壞,還可以再計(jì)算整個(gè)邏輯存儲(chǔ)塊的所有數(shù)據(jù)的整塊校驗(yàn)值。在后期判斷過程中,如果該整塊校驗(yàn)值變化,則可以說明該邏輯存儲(chǔ)塊內(nèi)有數(shù)據(jù)損壞。此外,上述計(jì)算得到的行校驗(yàn)值、列校驗(yàn)值、第三維校驗(yàn)值和整塊校驗(yàn)值分別對應(yīng)存儲(chǔ)到另外分配的存儲(chǔ)區(qū)域中,以便于恢復(fù)數(shù)據(jù)時(shí)對應(yīng)使用。需要說明的是,本實(shí)施例中的步驟S102、S103、S104沒有順序性,既可以同時(shí)計(jì)算得出,也可以先后計(jì)算得出,這取決于用戶的設(shè)定和設(shè)備的計(jì)算能力。本發(fā)明實(shí)施例提供的數(shù)據(jù)存儲(chǔ)方法,對分配的存儲(chǔ)空間以行列矩陣形式的邏輯塊為單位進(jìn)行等分割,得到相同的多個(gè)邏輯存儲(chǔ)塊,其中,每個(gè)邏輯存儲(chǔ)塊為行列矩陣形式, 多個(gè)邏輯存儲(chǔ)塊疊加構(gòu)成三維矩陣形式;對每個(gè)邏輯存儲(chǔ)塊的各行、各列數(shù)據(jù)分別進(jìn)行校驗(yàn),得到每行的行校驗(yàn)值以及每列的列校驗(yàn)值;對三維矩陣形式的多個(gè)邏輯存儲(chǔ)塊第三維上的每組數(shù)據(jù)分別進(jìn)行校驗(yàn),得到每組數(shù)據(jù)的第三維校驗(yàn)值。由此,得到了橫向、縱向和第三維上的三組校驗(yàn)值,以便在恢復(fù)數(shù)據(jù)時(shí)能夠針對多行多列進(jìn)行恢復(fù)。另外,本發(fā)明實(shí)施例所得到的校驗(yàn)值數(shù)量并不很多,校驗(yàn)值相對原始數(shù)據(jù)而言所占空間并不很大。假設(shè)邏輯存儲(chǔ)塊的大小是W行XH列,則塊內(nèi)校驗(yàn)值所需要的空間大小是W+H+l (即行校驗(yàn)值個(gè)數(shù)+列校驗(yàn)值個(gè)數(shù)+整塊校驗(yàn)值);而塊間的第三維校驗(yàn)值所需空間大小為WXH(即塊內(nèi)數(shù)據(jù)個(gè)數(shù)),所以校驗(yàn)值一共占用(W+H+1) + (WXH),相對存儲(chǔ)空間內(nèi)的數(shù)據(jù)個(gè)數(shù)而言,其所占用的空間不大??傊?,本發(fā)明實(shí)施例提供的數(shù)據(jù)存儲(chǔ)方法解決了現(xiàn)有技術(shù)中占用存儲(chǔ)空間大的問題,而同時(shí)又能夠提供較好的數(shù)據(jù)恢復(fù)功能。本發(fā)明實(shí)施例提供的利用上述數(shù)據(jù)存儲(chǔ)方法的數(shù)據(jù)恢復(fù)方法,該數(shù)據(jù)恢復(fù)方法包括邏輯存儲(chǔ)塊內(nèi)數(shù)據(jù)恢復(fù)和/或邏輯存儲(chǔ)塊間數(shù)據(jù)恢復(fù),即包括塊內(nèi)數(shù)據(jù)恢復(fù)、塊間數(shù)據(jù)恢復(fù)以及塊內(nèi)塊間聯(lián)合數(shù)據(jù)恢復(fù)。其中,邏輯存儲(chǔ)塊內(nèi)數(shù)據(jù)恢復(fù)包括若損壞數(shù)據(jù)所在的列上只有該損壞數(shù)據(jù)一處損壞時(shí),則用該列上其他未損壞的所有數(shù)據(jù)以及該列的列校驗(yàn)值對該損壞數(shù)據(jù)進(jìn)行恢復(fù)。和/或若損壞數(shù)據(jù)所在的行上只有該損壞數(shù)據(jù)一處損壞時(shí),則用該行上其他未損壞的所有數(shù)據(jù)以及該行的行校驗(yàn)值對該損壞數(shù)據(jù)進(jìn)行恢復(fù)。S卩,塊內(nèi)數(shù)據(jù)恢復(fù)包括行(橫向)數(shù)據(jù)恢復(fù)、列(縱向)數(shù)據(jù)恢復(fù)以及行、列(橫向、縱向)聯(lián)合數(shù)據(jù)恢復(fù)。邏輯存儲(chǔ)塊間數(shù)據(jù)恢復(fù)包括若損壞數(shù)據(jù)所在的第三維組中只有該損壞數(shù)據(jù)一處損壞時(shí),則用該第三維組中其他未損壞的所有數(shù)據(jù)以及該第三維組的第三維校驗(yàn)值對該損壞數(shù)據(jù)進(jìn)行恢復(fù)。具體的,對于塊內(nèi)塊間聯(lián)合數(shù)據(jù)恢復(fù),可以分為兩種情況情況1 若第一損壞數(shù)據(jù)所在的行或列上只有該第一損壞數(shù)據(jù)一處損壞時(shí),則先進(jìn)行邏輯存儲(chǔ)塊內(nèi)數(shù)據(jù)恢復(fù);恢復(fù)后,若第二損壞數(shù)據(jù)所在的第三維組中只有該第二損壞數(shù)據(jù)一處損壞時(shí),則再進(jìn)行邏輯存儲(chǔ)塊間數(shù)據(jù)恢復(fù)。即先塊內(nèi)后塊間的數(shù)據(jù)恢復(fù)。情況2 若第一損壞數(shù)據(jù)所在的第三維組中只有該第一損壞數(shù)據(jù)一處損壞時(shí),則先進(jìn)行邏輯存儲(chǔ)塊間數(shù)據(jù)恢復(fù);恢復(fù)后,若第二損壞數(shù)據(jù)所在的行或列上只有該第二損壞數(shù)據(jù)一處損壞時(shí),則再進(jìn)行邏輯存儲(chǔ)塊內(nèi)數(shù)據(jù)恢復(fù)。即先塊間后塊內(nèi)的數(shù)據(jù)恢復(fù)。下面分情況具體進(jìn)行說明。
      在讀取數(shù)據(jù)的時(shí)候,需對對數(shù)據(jù)進(jìn)行再校驗(yàn)和數(shù)據(jù)恢復(fù)。讀取數(shù)據(jù)時(shí)的再校驗(yàn)和存儲(chǔ)數(shù)據(jù)時(shí)的校驗(yàn)是同一運(yùn)算過程,即校驗(yàn)和再校驗(yàn)是一模一樣的計(jì)算,這樣才能進(jìn)行比對判斷。由于上述存儲(chǔ)實(shí)施例中校驗(yàn)采用的是異或運(yùn)算,則在本實(shí)施例中,讀取時(shí)采用的再校驗(yàn)同樣采用異或運(yùn)算。首先對每個(gè)邏輯存儲(chǔ)塊的數(shù)據(jù)進(jìn)行整個(gè)塊的再校驗(yàn),即計(jì)算整個(gè)邏輯存儲(chǔ)塊的異或值,得到各個(gè)邏輯存儲(chǔ)塊的整塊再校驗(yàn)值。并與數(shù)據(jù)存儲(chǔ)時(shí)計(jì)算的整塊校驗(yàn)值進(jìn)行比較, 若兩者相等,則認(rèn)為該邏輯存儲(chǔ)塊內(nèi)數(shù)據(jù)正常;若兩者不相等則認(rèn)為該邏輯存儲(chǔ)塊內(nèi)數(shù)據(jù)出現(xiàn)損壞,需要恢復(fù)。對邏輯存儲(chǔ)塊內(nèi)的損壞數(shù)據(jù)進(jìn)行恢復(fù)時(shí),需要找到該損壞數(shù)據(jù)的位置,其方法可以為對邏輯存儲(chǔ)塊的各行數(shù)據(jù)分別進(jìn)行再校驗(yàn),得到每行的行再校驗(yàn)值;若某行的行再校驗(yàn)值與保存的數(shù)據(jù)存儲(chǔ)時(shí)的行校驗(yàn)值不相等,則確定該行中的數(shù)據(jù)出現(xiàn)損壞。對邏輯存儲(chǔ)塊的各列數(shù)據(jù)分別進(jìn)行再校驗(yàn),得到每列的列再校驗(yàn)值;若某列的列再校驗(yàn)值與保存的數(shù)據(jù)存儲(chǔ)時(shí)的列校驗(yàn)值不相等,則確定該列中的數(shù)據(jù)出現(xiàn)損壞。通過損壞數(shù)據(jù)行、損壞數(shù)據(jù)列的交叉確定損壞數(shù)據(jù)在邏輯存儲(chǔ)塊中的位置。數(shù)據(jù)恢復(fù)的過程如下1、邏輯存儲(chǔ)塊內(nèi)的數(shù)據(jù)恢復(fù)(1)若邏輯存儲(chǔ)塊內(nèi)的損壞數(shù)據(jù)位于同一行不同列上時(shí),則可以通過損壞數(shù)據(jù)所在列的其他未損壞數(shù)據(jù)以及保存的該列的列校驗(yàn)值對這個(gè)損壞數(shù)據(jù)進(jìn)行恢復(fù)。即用損壞數(shù)據(jù)所在列的其他行的未損壞數(shù)據(jù)與數(shù)據(jù)存儲(chǔ)時(shí)該列的列校驗(yàn)值進(jìn)行異或運(yùn)算,恢復(fù)該損壞數(shù)據(jù)。如圖6所示,假設(shè)在第3行的第3、5、6列上數(shù)據(jù)出現(xiàn)損壞,那么對于第3行第3列的損壞數(shù)據(jù),就利用第3列上的其他未損壞數(shù)據(jù)和第3列的列校驗(yàn)值進(jìn)行恢復(fù),同樣,其他兩個(gè)損壞數(shù)據(jù)也是如此??傊?,若某列上只有該損壞數(shù)據(jù)一處損壞時(shí),則用該列上其他未損壞的所有數(shù)據(jù)以及該列的列校驗(yàn)值對這一損壞數(shù)據(jù)進(jìn)行恢復(fù)。(2)若邏輯存儲(chǔ)塊內(nèi)的損壞數(shù)據(jù)位于同一列不同行上時(shí),則可以通過損壞數(shù)據(jù)所在行的其他未損壞數(shù)據(jù)以及保存的該行的列校驗(yàn)值對這個(gè)損壞數(shù)據(jù)進(jìn)行恢復(fù)。即用損壞數(shù)據(jù)所在行的其他列的未損壞數(shù)據(jù)與數(shù)據(jù)存儲(chǔ)時(shí)該行的行校驗(yàn)值進(jìn)行異或運(yùn)算,恢復(fù)該損壞數(shù)據(jù)。如圖7所示,假設(shè)在第4列的第2、5、6行上數(shù)據(jù)出現(xiàn)損壞,那么對于第4列第2行的損壞數(shù)據(jù),就利用第2行上的其他未損壞數(shù)據(jù)和第2行的行校驗(yàn)值進(jìn)行恢復(fù),同樣,其他兩個(gè)損壞數(shù)據(jù)也是如此??傊?,若某行上只有該損壞數(shù)據(jù)一處損壞時(shí),則用該行上其他未損壞的所有數(shù)據(jù)以及該行的行校驗(yàn)值對這一損壞數(shù)據(jù)進(jìn)行恢復(fù)。進(jìn)一步地,當(dāng)邏輯存儲(chǔ)塊內(nèi)的損壞數(shù)據(jù)位于多行多列上時(shí),若損壞數(shù)據(jù)滿足行恢復(fù)的要求就先按照行恢復(fù)方法進(jìn)行恢復(fù),恢復(fù)后,若其他損壞數(shù)據(jù)滿足列恢復(fù)的要求就再按照列恢復(fù)方法進(jìn)行恢復(fù);同樣,若損壞數(shù)據(jù)滿足列恢復(fù)的要求就先按照行恢復(fù)方法進(jìn)行恢復(fù),恢復(fù)后,若其他損壞數(shù)據(jù)滿足列恢復(fù)的要求就再按照列恢復(fù)方法進(jìn)行恢復(fù)??傊?,行、 列恢復(fù)并沒有嚴(yán)格的順序性,可以交替進(jìn)行。但在實(shí)際應(yīng)用中,為方便起見,也可以預(yù)設(shè)一個(gè)恢復(fù)的順序,例如針對所有的損壞數(shù)據(jù),可以先進(jìn)行行恢復(fù),將滿足行恢復(fù)條件的所有損壞數(shù)據(jù)都進(jìn)行恢復(fù),恢復(fù)后,再對其他損壞數(shù)據(jù)進(jìn)行列恢復(fù)。當(dāng)然,這只是舉例,也可以采用其他的順序。2、邏輯存儲(chǔ)塊間的數(shù)據(jù)恢復(fù)
      (1)如果三維矩陣形式的各個(gè)邏輯存儲(chǔ)塊中只有一個(gè)邏輯存儲(chǔ)塊內(nèi)出現(xiàn)數(shù)據(jù)損壞,并且損壞的邏輯存儲(chǔ)塊不只是某一行或者某一列的數(shù)據(jù)損壞,如圖8所示,無法在邏輯存儲(chǔ)塊內(nèi)進(jìn)行恢復(fù)。這種情況下可以通過第三維的校驗(yàn)值恢復(fù)本塊內(nèi)的損壞數(shù)據(jù)。即針對某一處損壞數(shù)據(jù),在其所在的第三維組上,利用該第三維組上的其他未損壞數(shù)據(jù)與保存的該第三維組的第三維校驗(yàn)值進(jìn)行異或運(yùn)算,恢復(fù)該損壞數(shù)據(jù)。(2)如果三維矩陣形式的各個(gè)邏輯存儲(chǔ)塊中有兩個(gè)邏輯存儲(chǔ)塊內(nèi)數(shù)據(jù)出現(xiàn)損壞, 而其他邏輯存儲(chǔ)塊內(nèi)數(shù)據(jù)都正確,并且每個(gè)出現(xiàn)損壞的邏輯存儲(chǔ)塊內(nèi)都是多行多列出現(xiàn)數(shù)據(jù)損壞,無法通過塊內(nèi)恢復(fù)。但只要這兩個(gè)邏輯存儲(chǔ)塊所損壞的數(shù)據(jù)在第三維上位置上不重疊,則可以通過第三維校驗(yàn)值進(jìn)行恢復(fù)。(3)通過上述兩個(gè)邏輯存儲(chǔ)塊的數(shù)據(jù)損壞恢復(fù)過程可以推出,如果有N個(gè)邏輯存儲(chǔ)塊的數(shù)據(jù)出現(xiàn)損壞,且每個(gè)邏輯存儲(chǔ)塊內(nèi)損壞的數(shù)據(jù)都不能通過塊內(nèi)恢復(fù)時(shí),只要這N 個(gè)邏輯存儲(chǔ)塊每個(gè)塊損壞的數(shù)據(jù)在第三維上不重疊,即每一處損壞數(shù)據(jù)在其所在的第三維組上唯一,則都可以通過第三維的校驗(yàn)值恢復(fù)損壞的數(shù)據(jù)??傊?,若第三維組中只有該損壞數(shù)據(jù)一處損壞時(shí),則用該第三維組中其他未損壞的所有數(shù)據(jù)以及該第三維組的第三維校驗(yàn)值對該損壞數(shù)據(jù)進(jìn)行恢復(fù)。3、邏輯存儲(chǔ)塊內(nèi)和塊間的聯(lián)合數(shù)據(jù)恢復(fù)先邏輯存儲(chǔ)塊內(nèi)后邏輯存儲(chǔ)塊間的恢復(fù)(1)如果三維矩陣形式的各個(gè)邏輯存儲(chǔ)塊中有兩個(gè)邏輯存儲(chǔ)塊出現(xiàn)數(shù)據(jù)損壞,其他邏輯存儲(chǔ)塊都正確,并且這兩個(gè)邏輯存儲(chǔ)塊損壞的數(shù)據(jù)在第三維的位置上重疊,無法直接通過第三維校驗(yàn)值進(jìn)行恢復(fù)。但如果其中某一個(gè)邏輯存儲(chǔ)塊滿足塊內(nèi)數(shù)據(jù)恢復(fù)的特點(diǎn), 即塊內(nèi)該損壞數(shù)據(jù)在行或列上唯一,則可以先在該邏輯存儲(chǔ)塊內(nèi)利用上述塊內(nèi)恢復(fù)方法將其恢復(fù),此時(shí)另一邏輯存儲(chǔ)塊中的損壞數(shù)據(jù)在第三維上就變成唯一的了,之后就可以利用塊間恢復(fù)數(shù)據(jù)的方法恢復(fù)對其進(jìn)行恢復(fù)了。(2)如果三維矩陣形式的各個(gè)邏輯存儲(chǔ)塊中有N個(gè)邏輯存儲(chǔ)塊出現(xiàn)數(shù)據(jù)損壞,且損壞的數(shù)據(jù)在第三維上重疊,無法直接用塊間數(shù)據(jù)進(jìn)行恢復(fù),若N個(gè)邏輯存儲(chǔ)塊中如果有M 個(gè)邏輯存儲(chǔ)塊符合塊內(nèi)恢復(fù)的特點(diǎn),即塊內(nèi)該損壞數(shù)據(jù)在行或列上唯一,則先用塊內(nèi)數(shù)據(jù)恢復(fù)方法恢復(fù)這M個(gè)邏輯存儲(chǔ)塊,之后,剩下的N-M個(gè)邏輯存儲(chǔ)塊的損壞數(shù)據(jù)如果在第三維上唯一,則可以利用塊間數(shù)據(jù)恢復(fù)方法再次進(jìn)行恢復(fù)。先邏輯存儲(chǔ)塊間后邏輯存儲(chǔ)塊內(nèi)的恢復(fù)(1)如果三維矩陣形式的各個(gè)邏輯存儲(chǔ)塊中有兩個(gè)邏輯存儲(chǔ)塊出現(xiàn)數(shù)據(jù)損壞,其他邏輯存儲(chǔ)塊都正確,如果這兩個(gè)邏輯存儲(chǔ)塊損壞的數(shù)據(jù)都不符合塊內(nèi)數(shù)據(jù)恢復(fù)的特點(diǎn), 即塊內(nèi)該損壞數(shù)據(jù)在行或列上不唯一,無法直接用塊內(nèi)數(shù)據(jù)恢復(fù)方法。但如果其中某一個(gè)邏輯存儲(chǔ)塊滿足塊間數(shù)據(jù)恢復(fù)的特點(diǎn),即塊內(nèi)該損壞數(shù)據(jù)在其所在第三維組上唯一,則可以先利用上述塊間數(shù)據(jù)恢復(fù)方法將該塊內(nèi)的損壞數(shù)據(jù)恢復(fù),此時(shí)該邏輯存儲(chǔ)塊中損壞數(shù)據(jù)在行或列上就變成唯一的了,之后再利用塊內(nèi)數(shù)據(jù)恢復(fù)方法對其進(jìn)行恢復(fù)。另一邏輯存儲(chǔ)塊塊也可以用同樣方法進(jìn)行恢復(fù)。(2)三維矩陣形式的各個(gè)邏輯存儲(chǔ)塊中有N個(gè)邏輯存儲(chǔ)塊損壞,每個(gè)邏輯存儲(chǔ)塊中的損壞數(shù)據(jù)都不滿足塊內(nèi)恢復(fù)的特點(diǎn),即損壞數(shù)據(jù)在塊內(nèi)的行或列上不唯一,各邏輯存儲(chǔ)塊無法直接用塊內(nèi)數(shù)據(jù)進(jìn)行恢復(fù)。但如果這N個(gè)邏輯存儲(chǔ)塊中的損壞數(shù)據(jù)在第三維上唯一,那么就可以先進(jìn)行塊間恢復(fù),之后若損壞數(shù)據(jù)滿足了塊內(nèi)恢復(fù)的特點(diǎn),即在塊內(nèi)的行或列上唯一,就可以再次進(jìn)行塊內(nèi)恢復(fù)以完成最終恢復(fù)。需要說明的是,邏輯存儲(chǔ)塊的塊內(nèi)恢復(fù)和塊間恢復(fù)并沒有嚴(yán)格的順序,可以反復(fù)交替進(jìn)行。但在實(shí)際應(yīng)用中,為方便起見,也可以預(yù)設(shè)一個(gè)恢復(fù)的順序,例如針對各個(gè)邏輯存儲(chǔ)塊上的所有的損壞數(shù)據(jù),可以先進(jìn)行各邏輯存儲(chǔ)塊的塊內(nèi)數(shù)據(jù)恢復(fù),且塊內(nèi)數(shù)據(jù)恢復(fù)先進(jìn)行行恢復(fù)再進(jìn)行列恢復(fù),塊內(nèi)數(shù)據(jù)恢復(fù)之后,再進(jìn)行塊間數(shù)據(jù)恢復(fù)。當(dāng)然,這只是舉例, 也可以采用其他的順序。本發(fā)明實(shí)施例提供的利用上述實(shí)施例的數(shù)據(jù)存儲(chǔ)方法的數(shù)據(jù)恢復(fù)方法,采用了邏輯存儲(chǔ)塊內(nèi)數(shù)據(jù)恢復(fù)、邏輯存儲(chǔ)塊間數(shù)據(jù)恢復(fù)以及邏輯存儲(chǔ)塊內(nèi)、塊間聯(lián)合數(shù)據(jù)恢復(fù)。豐富了現(xiàn)有技術(shù)中的數(shù)據(jù)恢復(fù)方式,在塊內(nèi)的行、列數(shù)據(jù)恢復(fù)的基礎(chǔ)上,通過塊間的第三維數(shù)據(jù)恢復(fù)減少了數(shù)據(jù)恢復(fù)的條件限制,利用有限的存儲(chǔ)空間,能夠更大范圍地恢復(fù)損壞的數(shù)據(jù), 且不增加恢復(fù)難度。本領(lǐng)域普通技術(shù)人員可以理解實(shí)現(xiàn)上述方法實(shí)施例的全部或部分步驟可以通過程序指令相關(guān)的硬件來完成,前述的程序可以存儲(chǔ)于一計(jì)算機(jī)可讀取存儲(chǔ)介質(zhì)中,該程序在執(zhí)行時(shí),執(zhí)行包括上述方法實(shí)施例的步驟;而前述的存儲(chǔ)介質(zhì)包括R0M、RAM、磁碟或者光盤等各種可以存儲(chǔ)程序代碼的介質(zhì)。以上所述,僅為本發(fā)明的具體實(shí)施方式
      ,但本發(fā)明的保護(hù)范圍并不局限于此,任何熟悉本技術(shù)領(lǐng)域的技術(shù)人員在本發(fā)明揭露的技術(shù)范圍內(nèi),可輕易想到變化或替換,都應(yīng)涵蓋在本發(fā)明的保護(hù)范圍之內(nèi)。因此,本發(fā)明的保護(hù)范圍應(yīng)所述以權(quán)利要求的保護(hù)范圍為準(zhǔn)。
      權(quán)利要求
      1.一種數(shù)據(jù)存儲(chǔ)方法,其特征在于,包括對分配的存儲(chǔ)空間以行列矩陣形式的邏輯塊為單位進(jìn)行等分割,得到相同的至少兩個(gè)邏輯存儲(chǔ)塊,其中,每個(gè)邏輯存儲(chǔ)塊為行列矩陣形式,所述至少兩個(gè)邏輯存儲(chǔ)塊疊加構(gòu)成三維矩陣形式;對每個(gè)邏輯存儲(chǔ)塊的各行數(shù)據(jù)分別進(jìn)行校驗(yàn),得到每行的行校驗(yàn)值;對每個(gè)邏輯存儲(chǔ)塊的各列數(shù)據(jù)分別進(jìn)行校驗(yàn),得到每列的列校驗(yàn)值;對所述三維矩陣形式的至少兩個(gè)邏輯存儲(chǔ)塊第三維上的每組數(shù)據(jù)分別進(jìn)行校驗(yàn),得到每組數(shù)據(jù)的第三維校驗(yàn)值。
      2.根據(jù)權(quán)利要求1所述的數(shù)據(jù)存儲(chǔ)方法,其特征在于,所述方法還包括對每個(gè)邏輯存儲(chǔ)塊上的所有數(shù)據(jù)進(jìn)行校驗(yàn),得到每個(gè)邏輯存儲(chǔ)塊的整塊校驗(yàn)值。
      3.根據(jù)權(quán)利要求1所述的數(shù)據(jù)存儲(chǔ)方法,其特征在于,所述分配的存儲(chǔ)空間為連續(xù)的存儲(chǔ)空間。
      4.根據(jù)權(quán)利要求2所述的數(shù)據(jù)存儲(chǔ)方法,其特征在于,將所述行校驗(yàn)值、列校驗(yàn)值、第三維校驗(yàn)值和整塊校驗(yàn)值分別對應(yīng)存儲(chǔ)到另外的存儲(chǔ)區(qū)域中。
      5.一種采用權(quán)利要求1所述的數(shù)據(jù)存儲(chǔ)方法的數(shù)據(jù)恢復(fù)方法,其特征在于,所述數(shù)據(jù)恢復(fù)方法包括邏輯存儲(chǔ)塊內(nèi)數(shù)據(jù)恢復(fù)和/或邏輯存儲(chǔ)塊間數(shù)據(jù)恢復(fù);所述邏輯存儲(chǔ)塊內(nèi)數(shù)據(jù)恢復(fù)包括若損壞數(shù)據(jù)所在的列上只有所述損壞數(shù)據(jù)一處損壞時(shí),則用所述列上其他未損壞的所有數(shù)據(jù)以及所述列的列校驗(yàn)值對所述損壞數(shù)據(jù)進(jìn)行恢復(fù);和/或若損壞數(shù)據(jù)所在的行上只有所述損壞數(shù)據(jù)一處損壞時(shí),則用所述行上其他未損壞的所有數(shù)據(jù)以及所述行的行校驗(yàn)值對所述損壞數(shù)據(jù)進(jìn)行恢復(fù);所述邏輯存儲(chǔ)塊間數(shù)據(jù)恢復(fù)包括若損壞數(shù)據(jù)所在的第三維組中只有所述損壞數(shù)據(jù)一處損壞時(shí),則用所述第三維組中其他未損壞的所有數(shù)據(jù)以及所述第三維組的第三維校驗(yàn)值對所述損壞數(shù)據(jù)進(jìn)行恢復(fù)。
      6.根據(jù)權(quán)利要求5所述的數(shù)據(jù)恢復(fù)方法,其特征在于,所述邏輯存儲(chǔ)塊內(nèi)數(shù)據(jù)恢復(fù)和邏輯存儲(chǔ)塊間數(shù)據(jù)恢復(fù)包括若第一損壞數(shù)據(jù)所在的行或列上只有所述第一損壞數(shù)據(jù)一處損壞時(shí),則先進(jìn)行所述邏輯存儲(chǔ)塊內(nèi)數(shù)據(jù)恢復(fù);恢復(fù)后,若第二損壞數(shù)據(jù)所在的第三維組中只有所述第二損壞數(shù)據(jù)一處損壞時(shí),則再進(jìn)行所述邏輯存儲(chǔ)塊間數(shù)據(jù)恢復(fù);或者若第一損壞數(shù)據(jù)所在的第三維組中只有所述第一損壞數(shù)據(jù)一處損壞時(shí),則先進(jìn)行所述邏輯存儲(chǔ)塊間數(shù)據(jù)恢復(fù);恢復(fù)后,若第二損壞數(shù)據(jù)所在的行或列上只有所述第二損壞數(shù)據(jù)一處損壞時(shí),則再進(jìn)行所述邏輯存儲(chǔ)塊內(nèi)數(shù)據(jù)恢復(fù)。
      7.根據(jù)權(quán)利要求5所述的數(shù)據(jù)恢復(fù)方法,其特征在于,用所述列上其他未損壞的所有數(shù)據(jù)以及所述列的列校驗(yàn)值對所述損壞數(shù)據(jù)進(jìn)行恢復(fù)包括用所述列上其他未損壞的所有數(shù)據(jù)與所述列的列校驗(yàn)值進(jìn)行異或運(yùn)算,恢復(fù)所述損壞數(shù)據(jù);用所述行上其他未損壞的所有數(shù)據(jù)以及所述行的行校驗(yàn)值對所述損壞數(shù)據(jù)進(jìn)行恢復(fù)包括用所述行上其他未損壞的所有數(shù)據(jù)與所述行的行校驗(yàn)值進(jìn)行異或運(yùn)算,恢復(fù)所述損壞數(shù)據(jù);用所述第三維組中其他未損壞的所有數(shù)據(jù)以及所述第三維組的第三維校驗(yàn)值對所述損壞數(shù)據(jù)進(jìn)行恢復(fù)包括用所述第三維組中其他未損壞的所有數(shù)據(jù)與所述第三維組的第三維校驗(yàn)值進(jìn)行異或運(yùn)算,恢復(fù)所述損壞數(shù)據(jù)。
      8.根據(jù)權(quán)利要求5所述的數(shù)據(jù)恢復(fù)方法,其特征在于,對邏輯存儲(chǔ)塊上的所有數(shù)據(jù)進(jìn)行再校驗(yàn),得到所述邏輯存儲(chǔ)塊的整塊再校驗(yàn)值;若所述邏輯存儲(chǔ)塊的整塊校驗(yàn)值和整塊再校驗(yàn)值不相等,則確定所述邏輯存儲(chǔ)塊中的數(shù)據(jù)出現(xiàn)損壞。
      9.根據(jù)權(quán)利要求8所述的數(shù)據(jù)恢復(fù)方法,其特征在于,對邏輯存儲(chǔ)塊的各行數(shù)據(jù)分別進(jìn)行再校驗(yàn),得到每行的行再校驗(yàn)值;若某行的行再校驗(yàn)值與行校驗(yàn)值不相等,則確定該行中的數(shù)據(jù)出現(xiàn)損壞;對邏輯存儲(chǔ)塊的各列數(shù)據(jù)分別進(jìn)行再校驗(yàn),得到每列的列再校驗(yàn)值;若某列的列再校驗(yàn)值與列校驗(yàn)值不相等,則確定該列中的數(shù)據(jù)出現(xiàn)損壞;通過數(shù)據(jù)損壞行、數(shù)據(jù)損壞列的交叉確定損壞數(shù)據(jù)在邏輯存儲(chǔ)塊中的位置。
      全文摘要
      本發(fā)明實(shí)施例提供一種數(shù)據(jù)存儲(chǔ)和數(shù)據(jù)恢復(fù)方法,涉及數(shù)據(jù)安全存儲(chǔ)領(lǐng)域,能夠減少數(shù)據(jù)恢復(fù)的條件限制,利用有限的存儲(chǔ)空間,更大范圍地恢復(fù)損壞的數(shù)據(jù)。其存儲(chǔ)方法為對分配的存儲(chǔ)空間以行列矩陣形式的邏輯塊為單位進(jìn)行等分割,得到相同的至少兩個(gè)邏輯存儲(chǔ)塊;對邏輯存儲(chǔ)塊進(jìn)行行、列和第三維校驗(yàn),得到各自的校驗(yàn)值?;謴?fù)方法采用邏輯存儲(chǔ)塊內(nèi)數(shù)據(jù)恢復(fù)、邏輯存儲(chǔ)塊間數(shù)據(jù)恢復(fù)以及邏輯存儲(chǔ)塊內(nèi)塊間的聯(lián)合數(shù)據(jù)恢復(fù)。本發(fā)明實(shí)施例用于數(shù)據(jù)存儲(chǔ)和讀取。
      文檔編號(hào)G06F11/10GK102346693SQ20101024106
      公開日2012年2月8日 申請日期2010年7月30日 優(yōu)先權(quán)日2010年7月30日
      發(fā)明者秦曉紅 申請人:海信集團(tuán)有限公司
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
      1