国产精品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>

      一種基于分組編碼的磁盤陣列構(gòu)建方法

      文檔序號:8298812閱讀:854來源:國知局
      一種基于分組編碼的磁盤陣列構(gòu)建方法
      【技術(shù)領(lǐng)域】
      [0001]本發(fā)明屬于計算機(jī)磁盤陣列技術(shù)領(lǐng)域,具體涉及通過分組編碼來加快單盤修復(fù)的磁盤陣列構(gòu)建方法。
      【背景技術(shù)】
      [0002]在分布式存儲系統(tǒng)中,數(shù)據(jù)可靠性是一個重要指標(biāo),存儲系統(tǒng)往往采用基于復(fù)制或糾刪碼的策略生成冗余來保證數(shù)據(jù)可靠性。在現(xiàn)代存儲領(lǐng)域中,由于數(shù)據(jù)量急劇增加,存儲系統(tǒng)的磁盤數(shù)也急劇增加,為了保證數(shù)據(jù)可靠性,需要能同時容多個磁盤錯。此時,基于復(fù)制的策略存儲開銷過大,因此往往采用基于糾刪碼的策略。美國約翰-韋利(JohnWiley&Sons)公司出版的《里德所羅門碼及其應(yīng)用》(Reed-Solomon codes and theirapplicat1ns,1999年第I版,第60?105頁)所介紹的里德所羅門碼(Reed - Solomoncodes)是目前最常用的能同時容多磁盤錯的糾刪碼。但里德所羅門碼是基于有限域運(yùn)算,編碼開銷和數(shù)據(jù)更新開銷較大;當(dāng)進(jìn)行單盤修復(fù)時,需要讀取的數(shù)據(jù)總量較大,因此網(wǎng)絡(luò)開銷較大,修復(fù)速度較慢。

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

      [0003]本發(fā)明的目的是提出一種基于分組編碼的磁盤陣列構(gòu)建方法,以克服現(xiàn)有技術(shù)的上述缺陷,在能容任意四個磁盤錯的前提下減小單盤修復(fù)時所需讀取的數(shù)據(jù)總量和各磁盤讀取量,節(jié)省網(wǎng)絡(luò)帶寬,加快修復(fù)速度。
      [0004]本發(fā)明基于分組編碼的磁盤陣列構(gòu)建方法,其特征在于包括以下步驟:
      [0005]第一步:磁盤分區(qū)步驟
      [0006]首先將每個容量為C MB的磁盤切分成大小為H MB的C/Η個邏輯塊(Chunk),其中C的范圍是256GB?4TB (通常采用2TB或4TB),H的范圍是64MB?IGB (通常采用64MB);然后將所有磁盤劃分為N組,每組G個磁盤,其中G為素數(shù),N〈 = G,共G*N個磁盤;在各組中,從每個磁盤中取G個邏輯塊組成一個G*G的邏輯塊矩陣,構(gòu)成一個分區(qū);
      [0007]第二步:組內(nèi)編碼步驟
      [0008]設(shè)Pu為某個分區(qū)第i行第j列的邏輯塊,<j-1> e表示j_i對G求模;取<j_i> G相同的邏輯塊來構(gòu)建組內(nèi)子陣列(RAID),每個組內(nèi)子陣列由G個邏輯塊構(gòu)成;組內(nèi)子陣列采用RAID-5編碼,即G-1個數(shù)據(jù)塊產(chǎn)生I個校驗塊;
      [0009]第三步:組間編碼步驟
      [0010]在第O組的分區(qū)中,對每個邏輯塊進(jìn)行編號,從左到右、從上到下依次為O到G*G-1 ;定義一個右移操作:在一個分區(qū)中,第i行的編號循環(huán)右移i個邏輯位置;對第O組的分區(qū)進(jìn)行該右移操作,得到第I組分區(qū)的邏輯編號;對第I組的分區(qū)進(jìn)行該右移操作,得到第2組分區(qū)的邏輯編號,以此類推;組間編碼的方法為,從各分區(qū)取出相同編號的邏輯塊構(gòu)建組間子陣列,組間子陣列共由N個邏輯塊構(gòu)成;組間子陣列采用RAID-5編碼,即N-1個數(shù)據(jù)塊產(chǎn)生I個校驗塊;選擇非組內(nèi)編碼校驗塊的邏輯塊作為組間編碼校驗塊;
      [0011]第四步:制定容錯策略步驟
      [0012]當(dāng)發(fā)生單磁盤錯誤時,記錄壞盤所包含的組間子陣列的編號,并發(fā)地從其它分區(qū)讀取相同編號的邏輯塊進(jìn)行異或運(yùn)算,并發(fā)地將恢復(fù)的數(shù)據(jù)臨時寫入空閑磁盤,最后將恢復(fù)的數(shù)據(jù)寫入熱備盤;當(dāng)發(fā)生多磁盤錯誤時,首先采用組內(nèi)編碼修復(fù)損壞的邏輯塊,再采用組間編碼修復(fù)剩余的邏輯塊。
      [0013]上述本發(fā)明基于分組編碼的磁盤陣列構(gòu)建方法包括了磁盤分區(qū)步驟,組內(nèi)編碼步驟,組間編碼步驟和制定容錯策略步驟;采用此構(gòu)建方法的磁盤陣列能容任意四個磁盤錯;當(dāng)發(fā)生單磁盤錯時,采用組間編碼進(jìn)行修復(fù);當(dāng)發(fā)生多磁盤錯時,采用組內(nèi)編碼和組間編碼的混合修復(fù)。單盤修復(fù)時,修復(fù)一個邏輯塊僅需讀取N-1個邏輯塊。本發(fā)明方法與傳統(tǒng)磁盤陣列構(gòu)建方法相比,在相同的容錯能力和冗余率的前提下,修復(fù)單磁盤錯時所讀取的數(shù)據(jù)總量以及各磁盤的數(shù)據(jù)讀取量都明顯減少,節(jié)省了網(wǎng)絡(luò)帶寬,加快了修復(fù)速度,提高了系統(tǒng)可靠性。
      [0014]本發(fā)明基于分組編碼的磁盤陣列構(gòu)建方法與現(xiàn)有技術(shù)相比,具有以下優(yōu)點(diǎn):
      [0015]1.由于本發(fā)明僅采用基于異或運(yùn)算的編碼就達(dá)到了容任意四個磁盤錯的目的,與里德所羅門碼(Reed - Solomon codes)相比,本發(fā)明方法的編碼速度更快,數(shù)據(jù)更新開銷更小。
      [0016]2.在相同的容錯能力和冗余率的前提下,本發(fā)明方法與里德所羅門碼(Reed-Solomon codes)相比,進(jìn)行單盤修復(fù)所需讀取的數(shù)據(jù)總量明顯減少,節(jié)省了網(wǎng)絡(luò)帶寬;各磁盤的數(shù)據(jù)讀取量減少數(shù)倍,加快了修復(fù)速度,提高了系統(tǒng)可靠性。
      【附圖說明】
      [0017]圖1為按照本發(fā)明方法構(gòu)建的一個具體磁盤陣列的總體結(jié)構(gòu)示意圖。
      [0018]圖2為組內(nèi)編碼方法示意圖;
      [0019]圖3為組間編碼方法示意圖。
      [0020]圖4為單盤修復(fù)方法示意圖;
      [0021 ] 圖5為多盤修復(fù)方法示意圖。
      【具體實施方式】
      [0022]下面結(jié)合附圖通過具體實施例對本發(fā)明基于分組編碼的磁盤陣列構(gòu)建方法作進(jìn)一步的詳細(xì)說明。
      [0023]實施例1:
      [0024]本實施例基于分組編碼的磁盤陣列構(gòu)建方法,具體包括以下步驟:
      [0025]第一步:磁盤分區(qū)步驟
      [0026]附圖1給出了按照本發(fā)明方法構(gòu)建的一個具體實施例磁盤陣列的總體結(jié)構(gòu)示意圖。該圖中,每一列代表一個磁盤,共有編號為DO?D14的15個磁盤,本實施例中設(shè)每個磁盤容量都為2TB ;每一個方格代表一個64MB的邏輯塊(Chunk),所有磁盤都被切分成32768個邏輯塊(圖中每個磁盤僅列出了 5個邏輯塊)。將所有磁盤劃分為3組,每組5個磁盤。在各組中,從各個磁盤取出5個邏輯塊組成5*5的邏輯塊矩陣,稱為一個分區(qū),最終形成第O號磁盤分區(qū)R0、第I號磁盤分區(qū)Rl和第2號磁盤分區(qū)R2三個分區(qū)。在每個分區(qū)內(nèi)進(jìn)行組內(nèi)編碼,在分區(qū)之間進(jìn)行組間編碼。圖中小方格內(nèi)采用空白表示的邏輯塊為數(shù)據(jù)塊;圖中小方格內(nèi)采用右斜線表示的邏輯塊為組內(nèi)編碼校驗塊;小方格內(nèi)采用水平直線表示的邏輯塊為組間編碼校驗塊。
      [0027]第二步:組內(nèi)編碼步驟
      [0028]形成分區(qū)之后進(jìn)行組內(nèi)編碼。圖2為組內(nèi)編碼方法示意圖。在圖2中,每個邏輯塊由2個數(shù)字進(jìn)行標(biāo)記,第一個數(shù)字表示所在行數(shù),設(shè)為i ;第二個數(shù)字表示所在列數(shù),設(shè)為j ;設(shè)表示j_i對5求模。取<j-1> 5相同的邏輯塊構(gòu)建組內(nèi)子陣列,采用RAID-5編碼,即4個數(shù)據(jù)塊異或產(chǎn)生一個校驗塊。附圖2中共有編號為①?⑤的五條連線,每條連線上包含5個邏輯塊,且這5個邏輯塊滿足相同。因此每一條連線上的邏輯塊均組成一個組內(nèi)子陣列,其中小方格內(nèi)采用左斜線表示的邏輯塊為校驗塊。
      [0029]第三步:組間編碼步驟
      [0030]進(jìn)行組間編碼前,需要對各分區(qū)中的邏輯塊進(jìn)行編號。
      [0031]圖3為組間編碼方法示意圖。如附圖3中所示:在第O號分區(qū)RO中,從左到右、從上到下依次編號為O?24?,F(xiàn)定義一個右移操作:在一個分區(qū)中,第i行的編號循環(huán)右移i個邏輯位置。對第O號磁盤分區(qū)RO中的編號進(jìn)行
      當(dāng)前第1頁1 2 
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
      1