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

      一種消除局部并行中小寫操作的集中校驗式盤陣列的制作方法

      文檔序號:10569674閱讀:329來源:國知局
      一種消除局部并行中小寫操作的集中校驗式盤陣列的制作方法
      【專利摘要】本發(fā)明涉及一種消除局部并行中小寫操作的集中校驗式盤陣列,適用于連續(xù)數(shù)據(jù)存儲,屬于獨立硬盤冗余陣列技術(shù)領(lǐng)域。本發(fā)明針對連續(xù)數(shù)據(jù)存儲的特點,設(shè)計實現(xiàn)一種可消除局部并行中小寫操作的單盤容錯集中校驗式硬盤陣列Ripple?RAID 4,主要包括:存儲數(shù)據(jù)在Ripple?RAID 4上的布局方式、基于流水技術(shù)漸進生成校驗的寫操作方法、數(shù)據(jù)容錯等內(nèi)容。硬盤陣列Ripple?RAID 4在單盤容錯條件下,既保持了局部并行的節(jié)能性,又解決了局部并行帶來的小寫問題,能夠極大提高寫性能和整體性能,具有突出的節(jié)能效率。
      【專利說明】
      一種消除局部并行中小寫操作的集中校驗式盤陣列
      技術(shù)領(lǐng)域
      [0001] 本發(fā)明涉及一種消除局部并行中小寫操作的集中校驗式盤陣列,適用于連續(xù)數(shù)據(jù) 存儲,屬于獨立硬盤冗余陣列技術(shù)領(lǐng)域。
      【背景技術(shù)】
      [0002] 硬盤包括磁盤和固態(tài)盤(Solid State Disk,SSD),由于磁盤是海量數(shù)據(jù)存儲的主 體,因此這里的硬盤主要指磁盤。
      [0003] 為了提高存儲數(shù)據(jù)的安全性,改善存儲系統(tǒng)的輸入、輸出性能,人們設(shè)計了各種類 型的獨立硬盤冗余陣列(Redundant Arrays of Independent Disks JAIDhRAID技術(shù)使用 特定的硬件或軟件,把多個物理存儲設(shè)備如磁盤、SSD聯(lián)合起來,形成一個統(tǒng)一的邏輯存儲 設(shè)備。
      [0004] RAID中常用的技術(shù)術(shù)語如下:
      [0005] 條帶:磁盤陣列中不同盤上的位置相關(guān)的分塊的集合,是組織不同盤上條塊的單 位。
      [0006] 條帶化:把一段連續(xù)數(shù)據(jù)分割成相同大小的數(shù)據(jù)塊,把每塊數(shù)據(jù)分別寫入到磁盤 陣列的不同盤上的方法。
      [0007] 鏡像:把原數(shù)據(jù)復(fù)制到一個或更多盤上。
      [0008] 容錯:利用某種運算,如異或運算,生成冗余的校驗數(shù)據(jù)并保存。當(dāng)硬盤出現(xiàn)故障 丟失數(shù)據(jù)時,可利用校驗數(shù)據(jù)進行數(shù)據(jù)恢復(fù)。異或運算通常用" "表示。
      [0009] 單盤容錯:利用校驗數(shù)據(jù)和其它盤上的數(shù)據(jù),可恢復(fù)RAID中任意一塊故障盤上的 數(shù)據(jù)。
      [0010] 分布校驗:校驗數(shù)據(jù)按一定規(guī)律分布在構(gòu)成RAID的各個盤上。
      [0011]局部并行:陣列中僅部分硬盤并行,而不是全部硬盤并行,能夠提供合適的性能, 并且便于調(diào)度其余硬盤待機節(jié)能。
      [0012] RAID中的寫操作分3種情況:①寫數(shù)據(jù)恰好與RAID中的整個條帶對齊,稱為完全 寫;②寫數(shù)據(jù)不能覆蓋整個條帶,但不少于整個條帶的1/2時,稱為重構(gòu)寫;③寫數(shù)據(jù)不足整 個條帶1/2時,稱為小寫,也叫"讀-改-寫",寫新數(shù)據(jù)時需要先讀取對應(yīng)的舊數(shù)據(jù)、舊校驗數(shù) 據(jù),與新數(shù)據(jù)一起生成新校驗數(shù)據(jù)后,再寫入新校驗數(shù)據(jù)。
      [0013] 常用的RAID有RAID0、RAID1、RAID5等。其中RAID0不具有冗余校驗?zāi)芰?,RAID1只 對硬盤做鏡像。RAID5以條帶的方式向陣列中的硬盤寫數(shù)據(jù),校驗數(shù)據(jù)分布存儲在陣列中的 各個盤上,通過全局并行提高訪問速度和保證讀寫并發(fā)性,具有單盤容錯能力。
      [0014]然而,視頻監(jiān)控、備份、歸檔等連續(xù)數(shù)據(jù)存儲應(yīng)用,以順序數(shù)據(jù)訪問為主,對隨機性 能要求較低,不需要全局并行提供的高性能。為此,發(fā)明專利ZL201010256899.5、 ZL201010256665.0、ZL201010256711.7、ZL201010256908.0、ZL201010256679.2、 ZL201010256699.X、ZL201010575578.1、ZL201010575625.2、ZL201010575611.0等提出多種 局部并行數(shù)據(jù)布局,把采用該類局部并行數(shù)據(jù)布局的節(jié)能RAID統(tǒng)稱為S-RAID。
      [0015] S-RAID基本思想是:①把陣列中的存儲區(qū)分成若干組,組內(nèi)并行以提供合適的性 能,分組便于調(diào)度部分硬盤運行而其余硬盤待機節(jié)能;②采用貪婪編址法,在順序訪問模式 下,保證讀寫操作在較長時間內(nèi)分布在部分確定的硬盤上,其它硬盤可以長時間待機節(jié)能。
      [0016] S-RAID基本執(zhí)行小寫操作,原因如下:局部并行節(jié)能的核心是把讀寫操作集中在 部分并行工作的硬盤上,從而調(diào)度其它硬盤待機節(jié)能。小寫可有效減少活動硬盤的數(shù)量,即 使有機會執(zhí)行重構(gòu)寫,也依然會執(zhí)行小寫,因為重構(gòu)寫需要啟動所有硬盤,會使S-RAID喪失 節(jié)能性。小寫中寫操作引入了等量的、額外的讀操作,因此嚴(yán)重降低寫性能。
      [0017] S-RAID主要面向視頻監(jiān)控、備份、歸檔等連續(xù)數(shù)據(jù)存儲應(yīng)用,該類應(yīng)用以寫操作為 主,這導(dǎo)致S-RAID的小寫問題異常突出。小寫使S-RAID中單位硬盤的有效寫帶寬,極限值 (100%順序?qū)憰r)不到其最大寫帶寬的一半。為了提供額定的寫性能,S-RAID必須運行更多 硬盤彌補小寫帶來的性能損失,會消耗更多能量,其節(jié)能效率亟待提高。

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

      [0018] 本發(fā)明的目的是克服已有技術(shù)存在的不足,在提高存儲系統(tǒng)節(jié)能效率、改善存儲 性能的前提下,提出一種消除局部并行中小寫操作的集中校驗式盤陣列。所述消除局部并 行中小寫操作的集中校驗式盤陣列,記作Ripple-RAID 4。
      [0019] 本發(fā)明的目的是通過下述技術(shù)方案實現(xiàn)的。
      [0020] 本發(fā)明提出的一種消除局部并行中小寫操作的集中校驗式盤陣列,實現(xiàn)主要包括 數(shù)據(jù)布局、寫操作方法、數(shù)據(jù)容錯等3方面內(nèi)容,其中寫操作方法又包括地址映射、異地數(shù)據(jù) 更新、基于流水技術(shù)漸進生成校驗。
      [0021] 1數(shù)據(jù)布局
      [0022] 硬盤陣列Ripple-RAID 4包含N塊硬盤,N彡3且為整數(shù),其中1塊盤為校驗盤,其余 N-1塊盤為數(shù)據(jù)盤。每塊硬盤平均分成kXN+1個存儲塊,k為大于0的整數(shù)(一般在1到幾十范 圍內(nèi)取值),各盤中偏移量相同的N個存儲塊組成一個條帶,共組成k X N+1個條帶。任取其中 一個條帶作為影子條帶,其余為基本條帶。每個基本條帶包含1個校驗存儲塊(簡稱校驗 塊),位于校驗盤,N-1個數(shù)據(jù)存儲塊(簡稱數(shù)據(jù)塊),分別位于N-1塊數(shù)據(jù)盤。
      [0023] 每個數(shù)據(jù)塊、校驗塊進一步劃分為M個大小相等的子塊,每個子塊包含若干個地址 連續(xù)的扇區(qū),分別稱為數(shù)據(jù)子塊(記作Strip)和校驗子塊(記作PStrip)。每個基本條帶中偏 移量相同的子塊組成一個子條帶(記作Stripe),這樣每個基本條帶中包含M個大小相同的 子條帶。子條帶Stripe m的校驗子塊PStrip m由其N-1個數(shù)據(jù)子塊Strip m異或生成,見式 ⑴。
      (1)
      [0025]為了提供合適的性能,把N-1個數(shù)據(jù)盤按順序分成P組,每組包含Q個數(shù)據(jù)盤(P、Q為 大于〇的整數(shù),且滿足PXQ = N_1,Q值根據(jù)實際存儲帶寬需求確定),這樣每個子條帶中的數(shù) 據(jù)子塊也被分成P組,每組包含Q個數(shù)據(jù)子塊,子條帶內(nèi)僅組內(nèi)的Q個數(shù)據(jù)子塊提供并行性, 不是全部數(shù)據(jù)子塊提供并行性。
      [0026] Ripple-RAID 4采用適度貪婪的地址分配策略,從基本條帶0內(nèi)、組0內(nèi)的首個數(shù)據(jù) 子塊開始,按如下規(guī)則編址:①編號相鄰數(shù)據(jù)盤在同一組內(nèi)、同一子條帶內(nèi)的數(shù)據(jù)子塊的地 址相鄰;②同一基本條帶內(nèi),編號相鄰的兩個子條帶,前一個在組內(nèi)的末尾數(shù)據(jù)子塊,與后 一個在該組內(nèi)的起始數(shù)據(jù)子塊的地址相鄰;③同一基本條帶內(nèi),編號相鄰的組的地址相鄰; ④編號相鄰的基本條帶的地址相鄰。(注:上述基本條帶、組、數(shù)據(jù)盤均從0開始編號)
      [0027] Ripple-RAID 4僅對基本條帶進行編址,影子條帶不參與編址,僅供Ripple-RAID 4內(nèi)部使用,對上層應(yīng)用是透明的,其功能在寫操作方法中會詳細(xì)介紹。上述數(shù)據(jù)布局方式, 既具有局部并行的節(jié)能性,又通過引入特殊功能的影子條帶,同時具有解決局部并行中小 寫問題的基本條件。
      [0028] 2寫操作方法
      [0029] Ripple-RAID 4的寫操作,綜合運用了地址映射、異地數(shù)據(jù)更新、漸進式生成校驗 等方法,生成校驗數(shù)據(jù)時不需讀取舊數(shù)據(jù);進一步采用流水技術(shù)讀取已有校驗(與舊校驗 不同)、寫入新校驗時,可有效解決局部并行帶來的小寫問題。此外,地址映射把非順序?qū)戅D(zhuǎn) 換為順序?qū)懀蛇M一步提升Ripple-RAID 4的寫性能。
      [0030] 2.1地址映射
      [0031]上層應(yīng)用程序發(fā)來的讀寫請求地址,稱為虛擬地址;數(shù)據(jù)在Ripple-RAID 4存儲空 間內(nèi)的存儲地址(Ripple-RAID 4在RAID級的編址,不包括影子條帶),稱為物理地址。地址 映射實現(xiàn)虛擬地址到物理地址的轉(zhuǎn)換:把非連續(xù)(可能部分連續(xù))的虛擬地址映射為連續(xù)的 物理地址,并記錄映射關(guān)系到地址映射表。地址映射后,寫操作在物理地址空間內(nèi)完全連 續(xù),Ripple-RAID 4完全執(zhí)行順序?qū)憽?br>[0032] Ripple-RAID 4非常適合進行地址映射,原因如下:①連續(xù)數(shù)據(jù)存儲應(yīng)用以寫操作 為主,順序?qū)懣梢燥@著提高寫性能和整體性能;②讀操作以數(shù)據(jù)回放為主,即重復(fù)以前某時 間段內(nèi)的寫操作,例如視頻回放等,通常可獲得與寫性能接近的讀性能;③以寫新數(shù)據(jù)為 主,很少進行改寫操作,可以忽略改寫操作引發(fā)的垃圾回收,或在負(fù)載較輕時進行垃圾回 收。
      [0033]以若干個連續(xù)扇區(qū)為單位進行地址映射,稱為扇區(qū)組映射方式。該方式多扇區(qū)映 射時效率高,但改寫組中部分?jǐn)?shù)據(jù)時,需要讀取未修改數(shù)據(jù),與改寫數(shù)據(jù)一起重新映射。 Ripple-RAID 4很少進行改寫操作,適合采用該映射方式。地址映射信息需要作為元數(shù)據(jù)保 存,大小為存儲容量的8/( 1024 X x),其中8個字節(jié)記錄一個扇區(qū)組地址,x為扇區(qū)組大小,以 KB為單位。
      [0034] 2.2異地數(shù)據(jù)更新
      [0035]地址映射后Ripple-RAID 4執(zhí)行順序?qū)?,依次向每個基本條帶寫數(shù)據(jù),不會同時向 兩個基本條帶寫數(shù)據(jù),也不會在一個基本條帶沒有寫滿的情況下,向另一個基本條帶寫數(shù) 據(jù)。在此基礎(chǔ)上,Ripple-RAID 4內(nèi)部執(zhí)行異地數(shù)據(jù)更新,具體執(zhí)行過程如下:
      [0036] (1)向物理地址A所在的基本條帶i寫數(shù)據(jù)時,數(shù)據(jù)并不直接寫入該條帶,而是寫入 地址A的影子地址A'(位于影子條帶,與地址A具有相同的條帶內(nèi)地址偏移量);
      [0037] (2)如果影子條帶沒寫滿,轉(zhuǎn)到(1);
      [0038] (3)否則,用影子條帶替換基本條帶i,即把影子條帶作為基本條帶i參與編址,實 現(xiàn)影子地址到物理地址的轉(zhuǎn)換,本次循環(huán)結(jié)束;
      [0039] (4)被替換的原基本條帶i,此時沒有參與編址,在下一循環(huán)中作為影子條帶。
      [0040] 2.3漸進式生成校驗
      [0041]影子條帶的校驗數(shù)據(jù)是根據(jù)本次循環(huán)中已寫數(shù)據(jù)生成的,稱為局部校驗數(shù)據(jù)(不 同于舊校驗)。寫操作時,根據(jù)寫數(shù)據(jù)、已有局部校驗數(shù)據(jù)計算新的局部校驗數(shù)據(jù),隨著寫數(shù) 據(jù)的增加,局部校驗數(shù)據(jù)的校驗范圍逐漸擴大,直至覆蓋整個影子條帶。新數(shù)據(jù)的寫入、局 部校驗數(shù)據(jù)的校驗范圍,如水中漣漪一樣向前推進,因此該硬盤陣列稱為Ripple-RAID 4。 [0042] I.相關(guān)流水方式
      [0043]漸進生成校驗數(shù)據(jù)時,不需讀取舊數(shù)據(jù),僅需讀取局部校驗數(shù)據(jù)??梢栽黾右粋€輔 助存儲設(shè)備,與校驗盤以流水生成新局部校驗數(shù)據(jù),可有效消除讀局部校驗數(shù)據(jù)對寫性能 的影響。校驗盤與輔助存儲設(shè)備一起進行流水,稱該流水方式為相關(guān)流水。
      [0044] 假設(shè)每個基本條帶被分成3個組,分別記作組0、組1和組2,輔助存儲設(shè)備簡稱輔 存,容量與校驗塊相同,基于相關(guān)流水漸進生成校驗的寫過程如下:
      [0045] (1)向任一基本條帶(稱原條帶)的組0寫數(shù)據(jù)時,數(shù)據(jù)實際寫入影子條帶的組0,并 生成組〇的校驗,寫入校驗盤中影子條帶的校驗塊;
      [0046] (2)組0寫滿后,向原條帶的組1寫數(shù)據(jù)時,數(shù)據(jù)實際寫入影子條帶的組1,并根據(jù)寫 數(shù)據(jù)、局部校驗(組〇的校驗,在校驗盤中影子條帶的校驗塊),生成新校驗(組〇、組1的校驗) 寫入輔存;
      [0047] (3)組1寫滿后,向原條帶的組2寫數(shù)據(jù)時,數(shù)據(jù)實際寫入影子條帶的組2,并根據(jù)寫 數(shù)據(jù)、局部校驗(組〇、組1的校驗,在輔存),生成新校驗(組〇、組1、組2的校驗)寫入校驗盤中 影子條帶的校驗塊;
      [0048] (4)影子條帶寫滿后,令其替換原條帶參與編址,被替換的原條帶不參與編址,作 為下一循環(huán)中的影子條帶。
      [0049] 為保證最后生成的校驗數(shù)據(jù)寫入影子條帶的校驗塊,需按如下規(guī)則流水:若影子 條帶的組數(shù)為奇數(shù),首先向校驗盤中影子條帶的校驗塊寫校驗數(shù)據(jù);否則首先向輔存寫校 驗數(shù)據(jù)。當(dāng)輔存采用低功耗的SSD時,其能耗增加可忽略。
      [0050] n .基于ssd的非流水方式
      [0051]優(yōu)選的,采用低功耗的SSD作為輔存時,可不采用流水方式生成校驗數(shù)據(jù):從輔存 讀局部校驗數(shù)據(jù),新校驗數(shù)據(jù)也寫入輔存,直至寫影子條帶的最后一組時,從輔存讀局部校 驗數(shù)據(jù),并將新校驗數(shù)據(jù)寫入校驗盤中影子條帶的校驗塊,稱該方式為基于SSD的非流水方 式。該方式中校驗盤也可以待機節(jié)能,節(jié)能效果將進一步提升。生成校驗時需要同時讀、寫 輔存,因此輔存可能成為性能瓶頸。
      [0052] m.無關(guān)流水方式
      [0053] 優(yōu)選的,為了使校驗盤大部分時間也可待機節(jié)能,進一步提高節(jié)能效率,同時又不 影響性能,可采用如下流水方式:設(shè)置兩個輔助存儲設(shè)備,分別記作輔存1和輔存2,容量均 與校驗塊相同,輪流從其中之一讀局部校驗數(shù)據(jù),向另一個寫新校驗數(shù)據(jù),直至生成影子條 帶的最終校驗數(shù)據(jù),再將其寫入校驗盤中影子條帶的校驗塊。
      [0054] 校驗盤不參與流水,稱該流水方式為無關(guān)流水。當(dāng)輔存1、輔存2采用低功耗的SSD 時,可忽略其能耗增加。無關(guān)流水與相關(guān)流水相似,僅有以下幾點不同:
      [0055] (1)向組0寫數(shù)據(jù)時,生成的局部校驗數(shù)據(jù)寫入輔存1;
      [0056] (2)向組1寫數(shù)據(jù)時,根據(jù)寫數(shù)據(jù)、已有校驗數(shù)據(jù)(在輔存1),生成新校驗數(shù)據(jù)寫入 輔存2;
      [0057] (3)向組2寫數(shù)據(jù)時,根據(jù)寫數(shù)據(jù)、已有校驗數(shù)據(jù)(在輔存2),生成新校驗數(shù)據(jù),并把 最終校驗數(shù)據(jù)寫入校驗盤中影子條帶的校驗塊。
      [0058] 3數(shù)據(jù)容錯
      [0059]由數(shù)據(jù)布局得,Ripple-RAID 4包含N個基本條帶和1個影子條帶。按當(dāng)前狀態(tài)(是 否正在被更新)把基本條帶進一步分為活躍條帶和睡眠條帶,由于地址映射后執(zhí)行順序?qū)懀?在確定時間內(nèi)只有1個基本條帶正在被更新,即只有1個活躍條帶,其余基本條帶為睡眠條 帶。
      [0060] 對于故障盤中的每個存儲子塊,根據(jù)其不同位置,按如下方法進行恢復(fù)。
      [0061] 情況1:故障盤中的存儲子塊位于睡眠條帶,由Ripple-RAID 4的寫操作方法得,當(dāng) 根據(jù)式(1)建立校驗關(guān)系后,該睡眠條帶沒有進行任何修改,已建立的校驗關(guān)系完整有效。 對同一子條帶內(nèi)的其它盤上的存儲子塊異或運算,可恢復(fù)該存儲子塊。
      [0062] 情況2:故障盤中的存儲子塊位于活躍條帶,由寫操作方法得,當(dāng)根據(jù)式(1)建立校 驗關(guān)系后,活躍條帶也沒有被真正修改過(對應(yīng)的新數(shù)據(jù)實際寫入了影子條帶的對應(yīng)位 置),已建立的校驗關(guān)系完整有效。對同一子條帶內(nèi)的其它盤上的存儲子塊異或運算,也可 恢復(fù)該存儲子塊。
      [0063] 情況3:故障盤中的存儲子塊位于影子條帶,對于影子條帶,以最后一次局部并行 寫為分界線,分界線之前為已寫區(qū),其后為待寫區(qū),設(shè)分界線位于組P中偏移量為m的數(shù)據(jù)子 塊Strip m之后,(Xp〈P,(Xm〈M。特別強調(diào):當(dāng)p彡1時,影子條帶校驗塊均為已寫區(qū)。
      [0064] I.故障盤中的存儲子塊位于影子條帶的已寫區(qū)
      [0065]影子條帶的已寫區(qū)數(shù)據(jù),在影子條帶中具有完整、有效的校驗關(guān)系,設(shè)存儲子塊位 于影子條帶中的子條帶Stripe k,當(dāng)(Xk<m時,校驗關(guān)系見式(2):
      (2)
      [0067]當(dāng)m〈k〈M時(僅當(dāng)p彡1時存在),校驗關(guān)系見式(3):
      (3)
      [0069] 此時,可根據(jù)所在子條帶的位置,利用式(2)或式(3)恢復(fù)故障盤中的存儲子塊。
      [0070] n .故障盤中的存儲子塊位于影子條帶的待寫區(qū)
      [0071]由Ripple-RAID 4的寫操作方法得,該部分?jǐn)?shù)據(jù)不是有效數(shù)據(jù),并且沒有參與所在 子條帶的校驗運算,因此數(shù)據(jù)恢復(fù)時不需要考慮。
      [0072] 綜上,Ripple-RAID 4具有單盤容錯能力,其中任意一塊硬盤出現(xiàn)故障丟失數(shù)據(jù) 時,可按上述方法恢復(fù)該盤數(shù)據(jù)。分界線(最后一次局部并行寫位置)、影子條帶位置,對數(shù) 據(jù)恢復(fù)至關(guān)重要,需要記錄到元數(shù)據(jù)中,至少同時存儲在2塊盤上,以確保數(shù)據(jù)恢復(fù)正確執(zhí) 行。
      [0073] 4讀操作
      [0074] 對Ripple-RAID 4進行讀操作時,需要根據(jù)上層應(yīng)用程序發(fā)來的虛擬地址,查找地 址映射表,獲得該虛擬地址對應(yīng)的物理地址A,①如果地址A位于活躍條帶的已寫區(qū)(與影子 條帶已寫區(qū)具有相同的條帶內(nèi)起始、終止偏移地址),則從地址A的影子地址A'讀取數(shù)據(jù);② 否則,直接從地址A讀取數(shù)據(jù)。
      [0075] 5節(jié)能調(diào)度
      [0076] Ripple-RAID 4需要對硬盤進行節(jié)能調(diào)度,調(diào)度空閑硬盤待機節(jié)能,當(dāng)任務(wù)到來 時喚醒待機硬盤工作。
      [0077]有益效果
      [0078]本發(fā)明提出的硬盤陣列Ripple-RAID 4的構(gòu)建方法,與已有技術(shù)比較,具有以下優(yōu) 占.
      [0079] (1)保持節(jié)能性的同時,具有突出的寫性能。采用新的局部并行數(shù)據(jù)布局,通過綜 合運用異地數(shù)據(jù)更新、基于流水技術(shù)漸進生成校驗等策略,既保持了局部并行的節(jié)能性,又 解決了局部并行中嚴(yán)重影響寫性能的小寫問題,極大提高了寫性能。
      [0080] (2)可充分發(fā)揮磁盤性能優(yōu)勢。通過地址映射把非順序?qū)戅D(zhuǎn)換為順序?qū)?,可充分發(fā) 揮磁盤善于順序讀寫的性能優(yōu)勢,進一步提高寫性能。在連續(xù)數(shù)據(jù)存儲中,由于讀操作以回 放為主,即重復(fù)先前某段時間內(nèi)的寫操作,因此通常可獲得與寫性能接近的讀性能。
      [0081] (3)具有突出的節(jié)能效率。單位磁盤的寫性能極大提高后,當(dāng)存儲應(yīng)用需要額定的 寫性能時,Ripple-RAID 4運行更少的磁盤就能夠滿足性能需求,會節(jié)省更多能量;反之,在 運行磁盤數(shù)相同的條件下,Ripple-RAID 4具有更高的性能裕量。
      【附圖說明】
      [0082]圖1為本發(fā)明的【具體實施方式】中的硬盤陣列Ripple-RAID 4的總體數(shù)據(jù)布局;
      [0083]圖2為本發(fā)明的【具體實施方式】中的基本條帶0的子塊劃分與校驗關(guān)系示意圖;
      [0084]圖3為本發(fā)明的【具體實施方式】中的硬盤陣列Ripple-RAID 4的地址分配示意圖;
      [0085] 圖4為本發(fā)明的【具體實施方式】中的基于相關(guān)流水的寫操作示意圖;
      [0086] 圖5為本發(fā)明的【具體實施方式】中的基于SSD的非流水寫操作示意圖;
      [0087] 圖6為本發(fā)明的【具體實施方式】中的基于無關(guān)流水的寫操作示意圖;
      [0088] 圖7為本發(fā)明的【具體實施方式】中的數(shù)據(jù)容錯示意圖。
      【具體實施方式】
      [0089] 下面結(jié)合附圖和具體實施例對本發(fā)明進行詳細(xì)說明。
      [0090] 本實施例中,硬盤陣列Ripple-RAID 4由5塊磁盤組成,每塊磁盤容量為3TB, Ripple-RAID 4的實現(xiàn)主要包括數(shù)據(jù)布局、寫操作方法、數(shù)據(jù)容錯3部分。
      [0091] 1數(shù)據(jù)布局
      [0092]如圖1所示,在構(gòu)成Ripple-RAID 4的5塊磁盤中,1塊為校驗盤,其余4塊為數(shù)據(jù)盤。 把每塊磁盤平均分成6個500GB的存儲塊,各盤中偏移量相同的存儲塊組成1個條帶,共組成 6個條帶。任取一個條帶作為影子條帶(這里取第1個),其余為基本條帶(編號0~4)。每個基 本條帶包含1個校驗存儲塊(簡稱校驗塊),位于校驗盤,4個數(shù)據(jù)存儲塊(簡稱數(shù)據(jù)塊),分別 位于 4 塊數(shù)據(jù)盤。(注:1TB = 103GB = 106MB = 109KB,1KB = 1024B)
      [0093] 每個數(shù)據(jù)塊、校驗塊分成1=1,2500,0000個相等的子塊,子塊大小為4仙(包含8個 地址連續(xù)的扇區(qū),扇區(qū)大小為512字節(jié)),分別稱為數(shù)據(jù)子塊、校驗子塊。每個基本條帶中偏 移量相同的子塊組成M= 1,2500,0000個子條帶。4個數(shù)據(jù)盤按順序分成2組,每組包含2個(P = 2、Q = 2),每個子條帶中的數(shù)據(jù)子塊也被分成2組,每組包含2個數(shù)據(jù)子塊。如圖2所示,子 條帶1的數(shù)據(jù)子塊被平均分成2組,每組包含2個數(shù)據(jù)子塊,其校驗子塊由該子條帶的4個數(shù) 據(jù)子塊異或運算生成。
      [0094] 采用適度貪婪的地址分配策略,從基本條帶0內(nèi)、組0內(nèi)的首個數(shù)據(jù)子塊開始分配 地址,具體情況見圖3,箭頭連接線兩端的數(shù)據(jù)子塊的地址相鄰,其地址由小到大,每個子條 帶內(nèi)僅組內(nèi)的2個數(shù)據(jù)子塊提供并行性,不是全部數(shù)據(jù)子塊提供并行性。影子條帶不參與編 址,僅供Ripple-RAID 4內(nèi)部使用,對上層應(yīng)用是透明的。
      [0095] 2寫操作方法
      [0096]地址映射時,采用扇區(qū)組映射方式,總存儲容量為10TB(每盤3TB X 5塊盤X 2/3,去 除的1/3為校驗塊和影子條帶存儲塊,見圖3),扇區(qū)組大小為64KB,8個字節(jié)記錄1個扇區(qū)組 地址,則地址映射信息為10TB X 8B/(64 X 1024B)~1.22GB,運行時基本可以完全調(diào)入內(nèi)存。 [0097]本實施例中,每個基本條帶分成了 2個組,每組包含2個存儲塊。為了充分說明寫操 作過程,這里以3個組為例進行說明,分別記作組0、組1和組2。
      [0098] I.相關(guān)流水方式
      [0099] 基于相關(guān)流水的寫操作,需要1個輔助存儲設(shè)備,簡記為輔存,容量與校驗塊相同, 具體過程如下:
      [0100] (1)向任一基本條帶(稱原條帶)的組0寫數(shù)據(jù)時,數(shù)據(jù)實際寫入影子條帶的組0,并 異或運算生成組〇的校驗數(shù)據(jù),寫入校驗盤中影子條帶的校驗塊,見圖4(a);
      [0101] (2)組0寫滿后,向原條帶的組1寫數(shù)據(jù)時,數(shù)據(jù)實際寫入影子條帶的組1,并根據(jù)寫 數(shù)據(jù)、局部校驗(組〇的校驗,在校驗盤中影子條帶的校驗塊),生成新校驗(組〇、組1的校驗) 寫入輔存,見圖4(b);
      [0102] (3)組1寫滿后,向原條帶的組2寫數(shù)據(jù)時,數(shù)據(jù)實際寫入影子條帶的組2,并根據(jù)寫 數(shù)據(jù)、局部校驗(組〇、組1的校驗,在輔存),生成新校驗(組〇、組1、組2的校驗)寫入校驗盤中 影子條帶的校驗塊,見圖4(c);
      [0103] (4)影子條帶寫滿后,令其替換原條帶參與編址,被替換的原條帶不參與編址,作 為下一循環(huán)中的影子條帶。
      [0104] 圖4中,陰影部分為本次循環(huán)中寫入影子條帶的新數(shù)據(jù)、以及根據(jù)寫入新數(shù)據(jù)生成 的局部校驗數(shù)據(jù),隨著寫入新數(shù)據(jù)的增加,局部校驗數(shù)據(jù)的校驗范圍逐漸擴大,最終覆蓋整 個影子條帶。
      [0105] n .基于SSD的非流水方式
      [0106] 優(yōu)選的,采用低功耗的SSD作為輔存時,可不采用流水方式生成校驗數(shù)據(jù),具體過 程與相關(guān)流水相似,僅有以下幾點不同:
      [0107] (1)向組0寫數(shù)據(jù)時,生成的校驗數(shù)據(jù)寫入輔存,見圖5(a);
      [0108] (2)向組1寫數(shù)據(jù)時,根據(jù)寫數(shù)據(jù)、已有校驗數(shù)據(jù)(在輔存),生成新校驗數(shù)據(jù)寫入輔 存,見圖5(b);
      [0109] (3)向組2寫數(shù)據(jù)時,根據(jù)寫數(shù)據(jù)、已有校驗數(shù)據(jù)(在輔存),生成新校驗數(shù)據(jù),并把 最終校驗數(shù)據(jù)寫入校驗盤中影子條帶的校驗塊,見圖5 (c)。
      [0110] 圖5中陰影部分的含義,與圖4相同。
      [0111] m.無關(guān)流水方式
      [0112] 優(yōu)選的,基于無關(guān)流水的寫操作,需要2個輔助存儲設(shè)備,分別記作輔存1、輔存2, 容量均與校驗塊相同,具體過程與相關(guān)流水相似,僅有以下幾點不同:
      [0113] (1)向組0寫數(shù)據(jù)時,生成的局部校驗數(shù)據(jù)寫入輔存1,見圖6(a);
      [0114] (2)向組1寫數(shù)據(jù)時,根據(jù)寫數(shù)據(jù)、已有校驗數(shù)據(jù)(在輔存1),生成新校驗數(shù)據(jù)寫入 輔存2,見圖6(b);
      [0115] (3)向組2寫數(shù)據(jù)時,根據(jù)寫數(shù)據(jù)、已有校驗數(shù)據(jù)(在輔存2),生成新校驗數(shù)據(jù),并把 最終校驗數(shù)據(jù)寫入校驗盤中影子條帶的校驗塊,見圖6 (c)。
      [0116] 圖6中陰影部分的含義,與圖4相同。
      [0117] 3數(shù)據(jù)容錯
      [0118]恢復(fù)Ripple-RAID 4中任意一塊故障盤上的數(shù)據(jù)時,首先讀取分界線(最后一次局 部并行寫位置)、影子條帶的位置,這2個數(shù)據(jù)至少同時存儲在2塊盤上,1塊磁盤壞后仍可讀 出。對于故障盤上的每個存儲子塊,根據(jù)其不同位置,按如下方法進行恢復(fù)。
      [0119]情況1、情況2:故障盤上的存儲子塊位于基本條帶(包括睡眠條帶和活躍條帶)。此 時,對同一子條帶內(nèi)的其它盤上的存儲子塊異或運算,可恢復(fù)該存儲子塊。例如,圖7中數(shù)據(jù) 盤0出現(xiàn)故障,該盤在基本條帶中的數(shù)據(jù)子塊8,可由子條帶8在數(shù)據(jù)盤1、數(shù)據(jù)盤2、數(shù)據(jù)盤3、 校驗盤上的子塊異或運算恢復(fù)。
      [0120] 情況3:故障盤上的存儲子塊位于影子條帶,對于影子條帶,分界線之前為已寫區(qū), 其后為待寫區(qū),設(shè)分界線位于組1中數(shù)據(jù)子塊8之后。
      [0121] I.故障盤上的存儲子塊位于影子條帶的已寫區(qū)
      [0122] 可利用影子條帶中的校驗關(guān)系恢復(fù)數(shù)據(jù),待寫區(qū)數(shù)據(jù)子塊不參與數(shù)據(jù)恢復(fù)。例如, 圖7中磁盤2出現(xiàn)故障,數(shù)據(jù)盤2在影子條帶中的數(shù)據(jù)子塊0,可通過對子條帶0內(nèi)數(shù)據(jù)盤0、數(shù) 據(jù)盤1、數(shù)據(jù)盤3、校驗盤上的子塊異或運算進行恢復(fù)。
      [0123] 又如,圖7中數(shù)據(jù)盤1出現(xiàn)故障,數(shù)據(jù)盤1在影子條帶中的數(shù)據(jù)子塊M-1,可通過對子 條帶M-1內(nèi)數(shù)據(jù)盤0、校驗盤上的子塊異或運算進行恢復(fù)。子條帶M-1在數(shù)據(jù)盤2、數(shù)據(jù)盤3中 的數(shù)據(jù)子塊(X表示)位于待寫區(qū),沒有參與子條帶M-1的校驗運算,因此不參與數(shù)據(jù)恢復(fù)。
      [0124] n .故障盤中的存儲子塊位于影子條帶的待寫區(qū)
      [0125] 該部分?jǐn)?shù)據(jù)不是有效數(shù)據(jù),并且沒有參與所在子條帶的校驗運算,不需要恢復(fù)。
      [0126] 綜上,Ripple-RAID 4具有單盤容錯能力,其中任意一塊磁盤出現(xiàn)故障丟失數(shù)據(jù) 時,可按上述方法恢復(fù)該盤數(shù)據(jù)。
      [0127] 以上所述僅是本發(fā)明的優(yōu)選實施方式,應(yīng)當(dāng)指出,對于本技術(shù)領(lǐng)域的普通技術(shù)人 員來說,在不脫離本發(fā)明原理的前提下,還可以做出若干改進,或者對其中部分技術(shù)特征 進行等同替換,這些改進和替換也應(yīng)視為本發(fā)明的保護范圍。
      【主權(quán)項】
      1. 一種消除局部并行中小寫操作的集中校驗式盤陣列Ripple-RAID 4,其特征在于:其 結(jié)構(gòu)布局為: 硬盤陣列Ripple-RAID 4包含N塊硬盤,3且為整數(shù),其中1塊盤為校驗盤,其余N-1塊 盤為數(shù)據(jù)盤。每塊硬盤平均分成kXN+Ι個存儲塊,k為大于0的整數(shù),各盤中偏移量相同的N 個存儲塊組成一個條帶,共組成k X N+1個條帶。任取其中一個條帶作為影子條帶,其余為基 本條帶。每個基本條帶包含1個校驗存儲塊,簡稱校驗塊,位于校驗盤,N-1個數(shù)據(jù)存儲塊,簡 稱數(shù)據(jù)塊,分別位于N-1塊數(shù)據(jù)盤。 每個數(shù)據(jù)塊、校驗塊進一步劃分為Μ個大小相等的子塊,每個子塊包含若干個地址連續(xù) 的扇區(qū),分別稱為數(shù)據(jù)子塊Strip和校驗子塊PStrip。每個基本條帶中偏移量相同的子塊組 成一個子條帶Stripe,這樣每個基本條帶中包含Μ個大小相同的子條帶。子條帶Stripe m的 校驗子塊PStrip m由其N-1個數(shù)據(jù)子塊Strip m異或生成,見式(1)。為了提供合適的性能,把N-1個數(shù)據(jù)盤按順序分成P組,每組包含Q個數(shù)據(jù)盤;P、Q為大于 0的整數(shù),且滿足PXQ = N-1,Q值根據(jù)實際存儲帶寬需求確定;這樣每個子條帶中的數(shù)據(jù)子 塊也被分成P組,每組包含Q個數(shù)據(jù)子塊,子條帶內(nèi)僅組內(nèi)的Q個數(shù)據(jù)子塊提供并行性,不是 全部數(shù)據(jù)子塊提供并行性。 Ripple-RAID 4采用適度貪婪的地址分配策略,從基本條帶0內(nèi)、組0內(nèi)的首個數(shù)據(jù)子塊 開始,按如下規(guī)則編址:①編號相鄰數(shù)據(jù)盤在同一組內(nèi)、同一子條帶內(nèi)的數(shù)據(jù)子塊的地址相 鄰;②同一基本條帶內(nèi),編號相鄰的兩個子條帶,前一個在組內(nèi)的末尾數(shù)據(jù)子塊,與后一個 在該組內(nèi)的起始數(shù)據(jù)子塊的地址相鄰;③同一基本條帶內(nèi),編號相鄰的組的地址相鄰;④編 號相鄰的基本條帶的地址相鄰?;緱l帶、組、數(shù)據(jù)盤均從〇開始編號。 Ripple-RAID 4僅對基本條帶進行編址,影子條帶不參與編址,僅供Ripple-RAID 4內(nèi) 部使用,對上層應(yīng)用是透明的。2. 如權(quán)利要求1所述的一種消除局部并行中小寫操作的集中校驗式盤陣列,其特征在 于:寫操作的方法為: Ripple-RAID 4的寫操作,綜合運用了地址映射、異地數(shù)據(jù)更新、漸進式生成校驗等方 法,生成校驗數(shù)據(jù)時不需讀取舊數(shù)據(jù);進一步采用流水技術(shù)讀取已有校驗、寫入新校驗時, 可有效解決局部并行帶來的小寫問題。此外,地址映射把非順序?qū)戅D(zhuǎn)換為順序?qū)懀蛇M一步 提升Ripple-RAID 4的寫性能。 2.1地址映射 上層應(yīng)用程序發(fā)來的讀寫請求地址,稱為虛擬地址;數(shù)據(jù)在Ripple-RAID 4存儲空間內(nèi) 的存儲地址,稱為物理地址。地址映射實現(xiàn)虛擬地址到物理地址的轉(zhuǎn)換:把非連續(xù)的虛擬地 址映射為連續(xù)的物理地址,并記錄映射關(guān)系到地址映射表。地址映射后,寫操作在物理地址 空間內(nèi)完全連續(xù),Ripple-RAID 4完全執(zhí)行順序?qū)憽? 以若干個連續(xù)扇區(qū)為單位進行地址映射,稱為扇區(qū)組映射方式。該方式多扇區(qū)映射時 效率高,但改寫組中部分?jǐn)?shù)據(jù)時,需要讀取未修改數(shù)據(jù),與改寫數(shù)據(jù)一起重新映射。Ripple-RAID 4 很少進行改寫操作,適合采用該映射方式。地址映射信息需要作為元數(shù)據(jù)保存,大小 為存儲容量的8/(1024 Xx),其中8個字節(jié)記錄一個扇區(qū)組地址,X為扇區(qū)組大小,以KB為單 位。 2.2異地數(shù)據(jù)更新 地址映射后Ripple-RAID 4執(zhí)行順序?qū)?,依次向每個基本條帶寫數(shù)據(jù),不會同時向兩個 基本條帶寫數(shù)據(jù),也不會在一個基本條帶沒有寫滿的情況下,向另一個基本條帶寫數(shù)據(jù)。在 此基礎(chǔ)上,Ripple-RAID 4內(nèi)部執(zhí)行異地數(shù)據(jù)更新,具體執(zhí)行過程如下: (1) 向物理地址A所在的基本條帶i寫數(shù)據(jù)時,數(shù)據(jù)并不直接寫入該條帶,而是寫入地址 A的影子地址A ',地址A '位于影子條帶,與地址A具有相同的條帶內(nèi)地址偏移量; (2) 如果影子條帶沒寫滿,轉(zhuǎn)到(1); (3) 否則,用影子條帶替換基本條帶i,即把影子條帶作為基本條帶i參與編址,實現(xiàn)影 子地址到物理地址的轉(zhuǎn)換,本次循環(huán)結(jié)束; (4) 被替換的原基本條帶i,此時沒有參與編址,在下一循環(huán)中作為影子條帶。 2.3漸進式生成校驗 影子條帶的校驗數(shù)據(jù)是根據(jù)本次循環(huán)中已寫數(shù)據(jù)生成的,稱為局部校驗數(shù)據(jù)。寫操作 時,根據(jù)寫數(shù)據(jù)、已有局部校驗數(shù)據(jù)計算新的局部校驗數(shù)據(jù),隨著寫數(shù)據(jù)的增加,局部校驗 數(shù)據(jù)的校驗范圍逐漸擴大,直至覆蓋整個影子條帶。新數(shù)據(jù)的寫入、局部校驗數(shù)據(jù)的校驗范 圍,如水中漣漪一樣向前推進,因此該硬盤陣列稱為Ripple-RAID 4。 I.相關(guān)流水方式 漸進生成校驗數(shù)據(jù)時,不需讀取舊數(shù)據(jù),僅需讀取局部校驗數(shù)據(jù)??梢栽黾右粋€輔助存 儲設(shè)備,與校驗盤以流水生成新局部校驗數(shù)據(jù),可有效消除讀局部校驗數(shù)據(jù)對寫性能的影 響。校驗盤與輔助存儲設(shè)備一起進行流水,稱該流水方式為相關(guān)流水。 假設(shè)每個基本條帶被分成3個組,分別記作組0、組1和組2,輔助存儲設(shè)備簡稱輔存,容 量與校驗塊相同,基于相關(guān)流水漸進生成校驗的寫過程如下: (1) 向任一基本條帶的組0寫數(shù)據(jù)時,數(shù)據(jù)實際寫入影子條帶的組0,并生成組0的校驗, 寫入校驗盤中影子條帶的校驗塊;所述任一基本條帶稱為原條帶。 (2) 組0寫滿后,向原條帶的組1寫數(shù)據(jù)時,數(shù)據(jù)實際寫入影子條帶的組1,并根據(jù)寫數(shù) 據(jù)、局部校驗,生成新校驗寫入輔存;此時局部校驗為組〇的校驗,在校驗盤中影子條帶的校 驗塊;新校驗為組〇、組1的校驗。 (3) 組1寫滿后,向原條帶的組2寫數(shù)據(jù)時,數(shù)據(jù)實際寫入影子條帶的組2,并根據(jù)寫數(shù) 據(jù)、局部校驗,生成新校驗寫入校驗盤中影子條帶的校驗塊;此時局部校驗為組〇、組1的校 驗,在輔存;新校驗為組〇、組1、組2的校驗。 (4) 影子條帶寫滿后,令其替換原條帶參與編址,被替換的原條帶不參與編址,作為下 一循環(huán)中的影子條帶。 為保證最后生成的校驗數(shù)據(jù)寫入影子條帶的校驗塊,需按如下規(guī)則流水:若影子條帶 的組數(shù)為奇數(shù),首先向校驗盤中影子條帶的校驗塊寫校驗數(shù)據(jù);否則首先向輔存寫校驗數(shù) 據(jù)。當(dāng)輔存采用低功耗的SSD時,其能耗增加可忽略。 Π .基于SSD的非流水方式 優(yōu)選的,采用低功耗的SSD作為輔存時,可不采用流水方式生成校驗數(shù)據(jù):從輔存讀局 部校驗數(shù)據(jù),新校驗數(shù)據(jù)也寫入輔存,直至寫影子條帶的最后一組時,從輔存讀局部校驗數(shù) 據(jù),并將新校驗數(shù)據(jù)寫入校驗盤中影子條帶的校驗塊,稱該方式為基于SSD的非流水方式。 該方式中校驗盤也可以待機節(jié)能,節(jié)能效果將進一步提升。生成校驗時需要同時讀、寫輔 存,因此輔存可能成為性能瓶頸。 m.無關(guān)流水方式 優(yōu)選的,為了使校驗盤大部分時間也可待機節(jié)能,進一步提高節(jié)能效率,同時又不影響 性能,可采用如下流水方式:設(shè)置兩個輔助存儲設(shè)備,分別記作輔存1和輔存2,容量均與校 驗塊相同,輪流從其中之一讀局部校驗數(shù)據(jù),向另一個寫新校驗數(shù)據(jù),直至生成影子條帶的 最終校驗數(shù)據(jù),再將其寫入校驗盤中影子條帶的校驗塊。 校驗盤不參與流水,稱該流水方式為無關(guān)流水。當(dāng)輔存1、輔存2采用低功耗的SSD時,可 忽略其能耗增加。無關(guān)流水與相關(guān)流水相似,僅有以下幾點不同: (1) 向組0寫數(shù)據(jù)時,生成的局部校驗數(shù)據(jù)寫入輔存1; (2) 向組1寫數(shù)據(jù)時,根據(jù)寫數(shù)據(jù)、已有校驗數(shù)據(jù),生成新校驗數(shù)據(jù)寫入輔存2;此時已有 校驗數(shù)據(jù)在在輔存1中。 (3) 向組2寫數(shù)據(jù)時,根據(jù)寫數(shù)據(jù)、已有校驗數(shù)據(jù),生成新校驗數(shù)據(jù),并把最終校驗數(shù)據(jù) 寫入校驗盤中影子條帶的校驗塊。此時,已有校驗數(shù)據(jù)位于在輔存2中。3.如權(quán)利要求1或2所述的一種消除局部并行中小寫操作的集中校驗式盤陣列,其特征 在于:所述磁盤陣列Ripple-RAID 4進行數(shù)據(jù)容錯的方法為: 由數(shù)據(jù)布局得,Ripple-RAID 4包含N個基本條帶和1個影子條帶。按當(dāng)前狀態(tài)是否正在 被更新,把基本條帶進一步分為活躍條帶和睡眠條帶,由于地址映射后執(zhí)行順序?qū)?,在確定 時間內(nèi)只有1個基本條帶正在被更新,即只有1個活躍條帶,其余基本條帶為睡眠條帶。 對于故障盤中的每個存儲子塊,根據(jù)其不同位置,按如下方法進行恢復(fù)。 情況1:故障盤中的存儲子塊位于睡眠條帶,由Ripple-RAID 4的寫操作方法得,當(dāng)根據(jù) 式(1)建立校驗關(guān)系后,該睡眠條帶沒有進行任何修改,已建立的校驗關(guān)系完整有效。對同 一子條帶內(nèi)的其它盤上的存儲子塊異或運算,可恢復(fù)該存儲子塊。 情況2:故障盤中的存儲子塊位于活躍條帶,由寫操作方法得,當(dāng)根據(jù)式(1)建立校驗關(guān) 系后,活躍條帶也沒有被真正修改過,對應(yīng)的新數(shù)據(jù)實際寫入了影子條帶的對應(yīng)位置,已建 立的校驗關(guān)系完整有效。對同一子條帶內(nèi)的其它盤上的存儲子塊異或運算,也可恢復(fù)該存 儲子塊。 情況3:故障盤中的存儲子塊位于影子條帶,對于影子條帶,以最后一次局部并行寫為 分界線,分界線之前為已寫區(qū),其后為待寫區(qū),設(shè)分界線位于組P中偏移量為m的數(shù)據(jù)子塊 Strip m之后,0<p〈P,(Xm〈M。特別強調(diào):當(dāng)p彡1時,影子條帶校驗塊均為已寫區(qū)。 I.故障盤中的存儲子塊位于影子條帶的已寫區(qū) 影子條帶的已寫區(qū)數(shù)據(jù),在影子條帶中具有完整、有效的校驗關(guān)系,設(shè)存儲子塊位于影 子條帶中的子條帶Stripe k,當(dāng)(Xk<m時,校驗關(guān)系見式(2):當(dāng)m〈k〈M時(僅當(dāng)p彡1時存在),校驗關(guān)系見式(3):此時,可根據(jù)所在子條帶的位置,利用式(2)或式(3)恢復(fù)故障盤中的存儲子塊。 Π .故障盤中的存儲子塊位于影子條帶的待寫區(qū) 由Ripple-RAID 4的寫操作方法得,該部分?jǐn)?shù)據(jù)不是有效數(shù)據(jù),并且沒有參與所在子條 帶的校驗運算,因此數(shù)據(jù)恢復(fù)時不需要考慮。 綜上,Ripple-RAID 4具有單盤容錯能力,其中任意一塊硬盤出現(xiàn)故障丟失數(shù)據(jù)時,可 按上述方法恢復(fù)該盤數(shù)據(jù)。分界線,即最后一次局部并行寫位置、影子條帶位置,對數(shù)據(jù)恢 復(fù)至關(guān)重要,需要記錄到元數(shù)據(jù)中,至少同時存儲在2塊盤上,以確保數(shù)據(jù)恢復(fù)正確執(zhí)行。4. 如權(quán)利要求1或2所述的一種消除局部并行中小寫操作的集中校驗式盤陣列,其特征 在于:所述對磁盤陣列Ripple-RAID 4進行讀操作的方法為: 對Ripple-RAID 4進行讀操作時,需要根據(jù)上層應(yīng)用程序發(fā)來的虛擬地址,查找地址映 射表,獲得該虛擬地址對應(yīng)的物理地址A,①如果地址A位于活躍條帶的已寫區(qū),即如果地址 A與影子條帶已寫區(qū)具有相同的條帶內(nèi)起始、終止偏移地址,則從地址A的影子地址A'讀取 數(shù)據(jù);②否則,直接從地址A讀取數(shù)據(jù)。5. 如權(quán)利要求1或2所述的一種消除局部并行中小寫操作的集中校驗式盤陣列,其特征 在于:所述對磁盤陣列Ripple-RAID 4進行節(jié)能調(diào)度的方法為: Ripple-RAID 4需要對硬盤進行節(jié)能調(diào)度,調(diào)度空閑硬盤待機節(jié)能,當(dāng)任務(wù)到來時喚醒 待機硬盤工作。
      【文檔編號】G06F3/06GK105930098SQ201610230281
      【公開日】2016年9月7日
      【申請日】2016年4月14日
      【發(fā)明人】孫志卓, 胡凱, 劉利東, 呂文志, 譚毓安
      【申請人】德州學(xué)院
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點贊!
      1