国产精品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ù)保護方法、裝置以及系統(tǒng)的制作方法

      文檔序號:9579154閱讀:997來源:國知局
      一種數(shù)據(jù)保護方法、裝置以及系統(tǒng)的制作方法
      【技術領域】
      [0001] 本發(fā)明涉及計算機技術,特別涉及一種數(shù)據(jù)保護方法、裝置以及系統(tǒng)。
      【背景技術】
      [0002] 隨著數(shù)據(jù)量的增長以及對數(shù)據(jù)安全性的要求越來越高,由于各種原因發(fā)生數(shù)據(jù)損 壞,導致數(shù)據(jù)損失的事件越來越多。所以存儲廠商也開始注重在存儲系統(tǒng)比如磁盤陣列系 統(tǒng)中采取數(shù)據(jù)保護措施,以保證數(shù)據(jù)的完整性。
      [0003] 目前,在存儲系統(tǒng)中進行數(shù)據(jù)保護的方法包括:將各個數(shù)據(jù)存儲到存儲系統(tǒng)中,并 利用各個數(shù)據(jù)計算出校驗和,將計算出的校驗和也保存在存儲系統(tǒng)中。當發(fā)現(xiàn)在存儲系統(tǒng) 中的某些數(shù)據(jù)被損壞時,利用未損壞的數(shù)據(jù)和校驗和恢復出被損壞的數(shù)據(jù)。
      [0004] 但是目前,一般是在需要到存儲系統(tǒng)中讀取備份的數(shù)據(jù)的時候,才檢查存儲系統(tǒng) 中的數(shù)據(jù)是否發(fā)生損壞,如果損壞,才進行數(shù)據(jù)恢復處理,因此,不能及時感知到存儲系統(tǒng) 中的數(shù)據(jù)損壞。

      【發(fā)明內(nèi)容】

      [0005] 本發(fā)明提供一種數(shù)據(jù)保護方法、裝置以及系統(tǒng),能夠及時感知到存儲系統(tǒng)中的數(shù) 據(jù)損壞。
      [0006] -種數(shù)據(jù)保護的方法,確定糾錯矩陣;所述糾錯矩陣的行數(shù)為M,所述第一矩陣的 列數(shù)為S;S為大于等于2的自然數(shù);Μ為大于等于(S+2)的自然數(shù);糾錯矩陣中每一位上的 數(shù)值為預設定值;還包括:
      [0007] 根據(jù)S個數(shù)據(jù)塊以及糾錯矩陣,計算該S個數(shù)據(jù)塊對應的存儲矩陣;該存儲矩陣中 包括S個數(shù)據(jù)塊以及糾錯碼;
      [0008] 將S個數(shù)據(jù)塊以及對應的存儲矩陣保存到存儲系統(tǒng)中;
      [0009] 每當?shù)竭_檢測周期時,檢測所述存儲系統(tǒng)中的所述S個數(shù)據(jù)塊是否發(fā)生損壞,如 果是,利用該S個數(shù)據(jù)塊對應的存儲矩陣,恢復發(fā)生損壞的數(shù)據(jù)塊。
      [0010] 所述S為4;所述Μ為6;
      [0011] 所述糾錯矩陣戈
      其中,C1至C8為預設的常數(shù);
      [0012] 所述根據(jù)S個數(shù)據(jù)塊以及糾錯矩陣計算該S個數(shù)據(jù)塊對應的存儲矩陣包括:
      [0013] 計算
      與4個數(shù)據(jù)塊DO至D3組成的矩陣
      [0014]
      丨乘積,得到存儲矩P
      ,其中,K1和K2為計算出的數(shù)值。
      [0015] 所述利用該S個數(shù)據(jù)塊對應的存儲矩陣,恢復發(fā)生損壞的數(shù)據(jù)塊包括:
      [0016] 利用存儲矩罔以及所述糾錯矩P
      ,得到D0至D3中發(fā)生 損壞的數(shù)據(jù)塊。
      [0017] 在所述恢復發(fā)生損壞的數(shù)據(jù)塊之后,進一步包括:
      [0018] 將對應發(fā)生損壞的第一數(shù)據(jù)塊所恢復出的數(shù)據(jù)塊寫入到所述存儲系統(tǒng)的新的有 效區(qū)域內(nèi);
      [0019] 當需要讀取第一數(shù)據(jù)塊時,從所述新的有效區(qū)域內(nèi)直接讀取所述恢復出的數(shù)據(jù)。
      [0020] 所述存儲系統(tǒng)為磁盤。
      [0021] -種數(shù)據(jù)保護的裝置,包括:
      [0022] 糾錯矩陣保存單元,用于保存糾錯矩陣,所述糾錯矩陣的行數(shù)為M,所述第一矩陣 的列數(shù)為S;S為大于等于2的自然數(shù);Μ為大于等于(S+2)的自然數(shù);
      [0023] 存儲矩陣計算單元,用于根據(jù)待保存的S個數(shù)據(jù)塊以及所述糾錯矩陣保存單元所 保存的糾錯矩陣,計算該S個數(shù)據(jù)塊對應的存儲矩陣;該存儲矩陣中包括S個數(shù)據(jù)塊以及糾 錯碼;
      [0024] 存儲執(zhí)行單元,用于將待保存的S個數(shù)據(jù)塊以及所述存儲矩陣計算單元對應的存 儲矩陣保存到存儲系統(tǒng)中;
      [0025] 恢復單元,用于每當?shù)竭_檢測周期時,檢測所述存儲系統(tǒng)中的所述S個數(shù)據(jù)塊是 否發(fā)生損壞,如果是,利用存儲系統(tǒng)中的S個數(shù)據(jù)塊對應的存儲矩陣,恢復發(fā)生損壞的數(shù)據(jù) 塊。
      [0026] 所述糾錯矩陣保存單元包括:
      [0027] 第一保存子單元,用于保存糾錯矩時
      ;其中,C1至C8為預設的常 數(shù);
      [0028] 所述存儲矩陣計算單元包括:
      [0029] 第一計算子單元,用于計寞
      _4個數(shù)據(jù)塊D0至D3組成的矩陣

      1勺乘積,得到存儲矩陣 ,其中,K1和K2為計算出的數(shù)值。
      [0030] 所述恢復單元中包括:
      [0031] 第一數(shù)據(jù)恢復子單元,用于利用存儲矩P
      以及所述糾錯矩陣
      得到D0至D3中發(fā)生損壞的數(shù)據(jù)塊。
      [0032] 進一步包括:數(shù)據(jù)讀取單元,其中,
      [0033] 所述存儲執(zhí)行單元,在所述恢復單元恢復發(fā)生損壞的數(shù)據(jù)塊之后,將對應發(fā)生損 壞的第一數(shù)據(jù)塊所恢復出的數(shù)據(jù)塊寫入到所述存儲系統(tǒng)的新的有效區(qū)域內(nèi);
      [0034] 數(shù)據(jù)讀取單元,用于當需要讀取第一數(shù)據(jù)塊時,從所述新的有效區(qū)域內(nèi)直接讀取 所述恢復出的數(shù)據(jù)。
      [0035] 一種數(shù)據(jù)保護系統(tǒng),包括磁盤以及上述任意一種數(shù)據(jù)保護裝置。
      [0036] 本發(fā)明實施例提供的數(shù)據(jù)保護方法、裝置及系統(tǒng),能夠每當?shù)竭_檢測周期時,主動 檢測存儲系統(tǒng)中的S個數(shù)據(jù)塊是否發(fā)生損壞,如果是,利用該S個數(shù)據(jù)塊對應的存儲矩陣, 恢復發(fā)生損壞的數(shù)據(jù)塊。因此,不是現(xiàn)有技術中等到需要讀取數(shù)據(jù)時,才檢測存儲系統(tǒng)中的 數(shù)據(jù)是否發(fā)生損壞。因此,本發(fā)明實施例能夠更為及時地感知到存儲系統(tǒng)中的數(shù)據(jù)損壞?!靖綀D說明】
      [0037] 圖1是本發(fā)明一個實施例中數(shù)據(jù)保護方法的流程圖。
      [0038]圖2是本發(fā)明另一個實施例中數(shù)據(jù)保護方法的流程圖。
      [0039]圖3是本發(fā)明一個實施例中數(shù)據(jù)保護裝置的結構示意圖。
      [0040]圖4是本發(fā)明另一個實施例中數(shù)據(jù)保護裝置的結構示意圖。
      【具體實施方式】
      [0041]下面將結合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術方案進行清楚、完 整地描述。顯然,所描述的實施例僅是本發(fā)明一部分實施例,而不是全部的實施例?;诒?發(fā)明中的實施例,本領域普通技術人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他實 施例,都屬于本發(fā)明保護的范圍。
      [0042]本發(fā)明一個實施例提出了一種數(shù)據(jù)保護的方法,該實施例方法預先確定糾錯矩 陣;所述糾錯矩陣的行數(shù)為M,該糾錯矩陣的列數(shù)為S;S為大于等于2的自然數(shù);Μ為大于 等于(S+2)的自然數(shù),之后,參見圖1,該實施例方法包括:
      [0043]步驟101:根據(jù)S個數(shù)據(jù)塊以及糾錯矩陣,計算該S個數(shù)據(jù)塊對應的存儲矩陣;該 存儲矩陣中包括S個數(shù)據(jù)塊以及糾錯碼;糾錯矩陣中每一位上的數(shù)值為預設定值;
      [0044]步驟102 :將S個數(shù)據(jù)塊以及對應的存儲矩陣保存到存儲系統(tǒng)中;
      [0045]步驟103 :每當?shù)竭_檢測周期時,檢測所述存儲系統(tǒng)中的所述S個數(shù)據(jù)塊是否發(fā)生 損壞,如果是,執(zhí)行步驟104,否則,結束當前流程。
      [0046]步驟104 :利用該S個數(shù)據(jù)塊對應的存儲矩陣,恢復發(fā)生損壞的數(shù)據(jù)塊。
      [0047]可見,在上述圖1所示的本發(fā)明實施例中,能夠每當?shù)竭_檢測周期時,主動檢測存 儲系統(tǒng)中的S個數(shù)據(jù)塊是否發(fā)生損壞,如果是,利用該S個數(shù)據(jù)塊對應的存儲矩陣,恢復發(fā) 生損壞的數(shù)據(jù)塊。因此,不是現(xiàn)有技術中等到需要讀取數(shù)據(jù)時,才檢測存儲系統(tǒng)中的數(shù)據(jù)是 否發(fā)生損壞。因此,本發(fā)明實施例能夠更為及時地感知到存儲系統(tǒng)中的數(shù)據(jù)損壞。
      [0048]進一步地,基于上述圖1所示的方法,由于糾錯矩陣的行數(shù)為Μ,列數(shù)為S;S為大 于等于2的自然數(shù);Μ為大于等于(S+2)的自然數(shù),這樣,針對S個數(shù)據(jù)塊,在后續(xù)恢復數(shù)據(jù) 塊時,根據(jù)矩陣對應的方程次數(shù),就可以一次恢復出至少兩個數(shù)據(jù)塊,提高了恢復效率。
      [0049]在本發(fā)明一個實施例中,可以針對4個數(shù)據(jù)塊為一個存儲單元,也就是說,針對4 個數(shù)據(jù)塊設計一個6*4的糾錯矩陣,并得到存儲矩陣,后續(xù)恢復時,可以同時恢復該4個數(shù) 據(jù)塊中的兩個數(shù)據(jù)庫。在此種情況下,上述圖1所示過程中的S為4;Μ為6。也就是說,糾 錯矩陣是一個行數(shù)為6,列數(shù)為4的矩陣,并且,糾錯矩陣具體可以:
      其 中,C1至C8為預設的常數(shù)。基于此糾錯矩陣,步驟101中,根據(jù)S個即4個數(shù)據(jù)塊以及糾 錯矩陣計算該S個數(shù)據(jù)塊對應的存儲矩陣包括:
      [0050] 計算與4個數(shù)據(jù)塊DO至D3組成的矩P
      ]乘積,得到存儲矩降
      其中,K1和K2為計算出的數(shù)值。
      [0051] 相應地,在利用上述6*4的糾錯矩陣及4個數(shù)據(jù)塊為一個處理單元的方式,將該4 個數(shù)據(jù)塊及對應的存儲矩陣保存到存儲系統(tǒng)中后,相應地,步驟104中,利用該S個數(shù)據(jù)塊 對應的存儲矩陣,恢復發(fā)生損壞的數(shù)據(jù)塊包括:
      [0052] 利用存儲矩p
      以及所述糾錯矩陣
      得到D0至D3中發(fā)生 損壞的數(shù)據(jù)塊。具體地,由于糾錯矩陣和K1和K2為定值,則可以根據(jù)例如二元一次方程對D0至D3中損壞的例如兩個數(shù)據(jù)塊進行恢復處理。
      [0053] 為了進一步保證快速恢復,在上述步驟10在恢復發(fā)生損壞的數(shù)據(jù)塊之后,進一步 包括:
      [0054] 將對應發(fā)生損壞的第一數(shù)據(jù)塊所恢復出的數(shù)據(jù)塊寫入到所述存儲系統(tǒng)的新的有 效區(qū)域內(nèi);
      [0055] 當需要讀取第一數(shù)據(jù)塊時,從所述新的有效區(qū)域內(nèi)直接讀取所述恢復出的數(shù)據(jù)。
      [0056] 在本發(fā)明的一些實施例中,所述存儲系統(tǒng)為磁盤。
      [0057] 為了更加清楚地說明本發(fā)明實施例中進行數(shù)據(jù)保護方法的過程,以存儲系統(tǒng)為磁 盤為例,結合圖2所示過程進行說明,包括:
      [0058] 步驟201:設置6*4的糾錯矩陣如下:
      [0059]
      ;其中,C1至C8為預設的常數(shù)。
      [0060] 本步驟中,將糾錯矩陣設置為此種形式,是為了保證既得到與待存儲的數(shù)據(jù)塊相 同的各個數(shù)據(jù)塊,又得到相應的糾錯碼。
      [0061] 并且,行數(shù)為列數(shù)加2,列數(shù)為一個恢復單元中數(shù)據(jù)塊的個數(shù)。這樣,則可以保證后 續(xù)根據(jù)多元一次方程組,一次恢復出多個數(shù)據(jù)塊。
      [0062] 步驟202 :獲取當前需要存儲的4個數(shù)據(jù)塊,比如,為DO,Dl,D2和D3。
      [0063] 步驟203 :利用6*4的糾錯矩陣以及當前獲取的4個數(shù)據(jù)塊組成的4*1矩陣,計算 出6*1的存儲矩陣。
      [0064] 這里,計算公式為 其 中,K1和K2為計算出的數(shù)值。
      [0065] 執(zhí)行到本步驟,則計算出了對應于當前獲取的4個數(shù)據(jù)塊的當前存儲矩P
      可見,本實施例中,存儲矩陣中的前4個數(shù)值等于待存儲的當前4個數(shù)據(jù)塊,后2個數(shù)值等 于矩陣乘法后得到的數(shù)值。
      [0066] 步驟204 :將
      當前第1頁1 2 
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點贊!
      1