一種三條帶狀態(tài)轉換方法
【技術領域】
[0001] 本發(fā)明涉及存儲技術領域,更具體地,涉及條帶化存儲技術領域。
【背景技術】
[0002] 三條帶技術是指對于邏輯層的每個條帶,其內(nèi)部實現(xiàn)均由三個邏輯條帶組成,用 于解決傳統(tǒng)RAID技術中存在的小寫性能過低以及數(shù)據(jù)寫入過程中若失敗而導致的數(shù)據(jù)不 一致問題(write hole問題)。參見圖1,三個邏輯條帶分別為M條帶、RS條帶和N條帶, 其中:
[0003] 1、M條帶(鏡像條帶):該條帶上的數(shù)據(jù)使用副本機制進行保護。鏡像條帶用于 存放小寫數(shù)據(jù),用以提升數(shù)據(jù)讀寫的性能;此外,鏡像條帶的寫入不覆蓋糾刪碼條帶上的數(shù) 據(jù),因此避免了寫入過程中由于節(jié)點失效而導致的數(shù)據(jù)不一致。當鏡像條帶的小寫積累到 滿條帶或者系統(tǒng)啟動鏡像條帶到糾刪碼條帶的轉換以騰出鏡像條帶占用的空間時,鏡像條 帶會被轉化成糾刪碼條帶。
[0004] 2、RS條帶(糾刪碼條帶):該條帶上的數(shù)據(jù)使用Reed - Solomon編碼機制保護。
[0005] 3、N條帶(空條帶):不存放數(shù)據(jù)的條帶。空條帶是滿條帶寫入時的短暫存放場 所,寫完成后其狀態(tài)立即轉變?yōu)榧m刪碼條帶。空條帶的存在使得數(shù)據(jù)寫入不覆蓋原來鏡像 條帶與糾刪碼條帶上的數(shù)據(jù),確保不會出現(xiàn)數(shù)據(jù)不一致的問題。
[0006] 另外,為了確保鏡像條帶上的數(shù)據(jù)具有不低于糾刪碼條帶上的數(shù)據(jù)的保護級別, 鏡像條帶上的數(shù)據(jù)所對應的副本存儲在該條帶的校驗塊所在的豎條帶(或稱副本節(jié)點) 上。
[0007] 盡管具備上述優(yōu)點,然而現(xiàn)有的三條帶系統(tǒng)并沒有提及狀態(tài)轉換的具體方式,如 果采用將一個條帶的有效數(shù)據(jù)迀移至另一條帶的方式,則由于占用額外的數(shù)據(jù)帶寬和CPU 時間,從而導致效率較低,進而會影響三條帶系統(tǒng)的性能。
【發(fā)明內(nèi)容】
[0008] 為解決上述問題,根據(jù)本發(fā)明的一個實施例,提供一種三條帶狀態(tài)轉換方法,包 括:
[0009] 更改三條帶狀態(tài),其中三條帶狀態(tài)用于指示當前的邏輯條帶及其位置關系;以及, 使糾刪碼位圖指示更改后的糾刪碼條帶位置和鏡像條帶位置上的哪些數(shù)據(jù)塊構成糾刪碼 條帶。
[0010] 上述方法中,除去構成糾刪碼條帶的數(shù)據(jù)塊,更改后的糾刪碼條帶位置和鏡像條 帶位置上的其他數(shù)據(jù)塊構成鏡像條帶。
[0011] 上述方法中,在執(zhí)行鏡像條帶到糾刪碼條帶的轉換時:
[0012] 互換鏡像條帶位置與糾刪碼條帶位置;以及,使糾刪碼位圖指示互換后的糾刪碼 條帶位置和鏡像條帶位置上的哪些數(shù)據(jù)塊構成糾刪碼條帶。
[0013] 上述方法中,與所述糾刪碼位圖中的1對應的糾刪碼條帶位置上的數(shù)據(jù)塊,以及 與所述糾刪碼位圖中的O對應的鏡像條帶位置上的數(shù)據(jù)塊構成糾刪碼條帶。
[0014] 上述方法中,在使所述糾刪碼位圖指示哪些數(shù)據(jù)塊構成糾刪碼條帶之前,還獲得 在互換前的鏡像條帶上寫入的數(shù)據(jù)、計算校驗并將該校驗寫入互換前的鏡像條帶。
[0015] 上述方法中,當滿條帶寫入的空條帶轉換到糾刪碼條帶時:
[0016] 將空條帶位置更改為糾刪碼條帶位置,并且使另兩個位置分別為鏡像條帶位置和 空條帶位置;以及,使糾刪碼位圖指示更改后的糾刪碼條帶位置上的數(shù)據(jù)塊構成糾刪碼條 帶。
[0017] 上述方法中,所述三條帶狀態(tài)包括:
[0018] 糾刪碼條帶位置為第一位置、鏡像條帶位置為第二位置且空條帶位置為第三位 置;
[0019] 鏡像條帶位置為第一位置、糾刪碼條帶位置為第二位置且空條帶位置為第三位 置;
[0020] 空條帶位置為第一位置、鏡像條帶位置為第二位置且糾刪碼條帶位置為第三位 置;以及
[0021] 空條帶位置為第一位置、糾刪碼條帶位置為第二位置且鏡像條帶位置為第三位 置。
[0022] 上述方法中,使用2bit的位圖表示所述三條帶狀態(tài)。
[0023] 本發(fā)明提供的三條帶狀態(tài)轉換方法僅修改三條帶狀態(tài)和糾刪碼位圖,就能實現(xiàn)無 數(shù)據(jù)迀移、無數(shù)據(jù)覆蓋的轉換操作,降低了數(shù)據(jù)迀移導致的系統(tǒng)開銷,提升了三條帶系統(tǒng)的 性能。
【附圖說明】
[0024] 以下參照附圖對本發(fā)明實施例作進一步說明,其中:
[0025] 圖1是三條帶結構的示意圖;
[0026] 圖2是根據(jù)本發(fā)明一個實施例的三條帶狀態(tài)轉換方法的流程圖;
[0027] 圖3是根據(jù)本發(fā)明一個實施例的三條帶狀態(tài)轉換機的示意圖;
[0028] 圖4(a)和4(b)是根據(jù)本發(fā)明一個實施例的鏡像條帶寫操作的示意圖;
[0029] 圖5(a)_5(c)是根據(jù)本發(fā)明一個實施例的鏡像條帶轉換到糾刪碼條帶的示意圖; [0030]圖6(a)_6(c)是根據(jù)本發(fā)明另一個實施例的鏡像條帶轉換到糾刪碼條帶的示意 圖。
【具體實施方式】
[0031] 為了使本發(fā)明的目的、技術方案及優(yōu)點更加清楚明白,以下結合附圖通過具體實 施例對本發(fā)明進一步詳細說明。應當理解,此處所描述的具體實施例僅用以解釋本發(fā)明,并 不用于限定本發(fā)明。
[0032] 根據(jù)本發(fā)明的一個實施例,提供一種三條帶狀態(tài)轉換方法。
[0033] 概括而言,該方法包括:更改三條帶狀態(tài),其中三條帶狀態(tài)用于指示當前的邏輯條 帶及其位置關系;以及,使糾刪碼位圖指示更改后的糾刪碼條帶位置和鏡像條帶位置上的 哪些數(shù)據(jù)塊構成糾刪碼條帶。
[0034] 現(xiàn)結合圖2詳細描述該三條帶狀態(tài)轉換方法,需要說明的是,說明書中描述的方 法的各個步驟并非一定是必須的,而是可以根據(jù)實際情形來省略或替換其中的一個或多個 步驟,且其順序也是可以改變的。
[0035] 第一步:更改三條帶狀態(tài)
[0036] 三條帶狀態(tài)用于指示當前三條帶中包含哪三個邏輯條帶,以及這三個邏輯條帶之 間的位置關系。本文中,三條帶位置的編號記為c、B、A,以圖1所示的三條帶結構為例,位 置C在最下面、位置B在中間且位置A在最上面,圖1中的三條帶狀態(tài)可表示為RS M N,指 示糾刪碼(RS)條帶位置在位置C、鏡像(M)條帶位置在位置B,且空(N)條帶位置在位置A。 應理解,本文中的邏輯條帶位置不等同于邏輯條帶。
[0037] 根據(jù)三條帶技術的原理,由于在同一時刻三條帶中最多只允許有一條有效的糾刪 碼條帶、最多只允許有一條鏡像條帶并且至少有一條空條帶,則考慮同一時刻在不同位置 可能出現(xiàn)的邏輯條帶組合,可得到如表1所示的十四個三條帶狀態(tài),其中最后一個狀態(tài)ERR 表示條帶不可用。
[0038] 表 1
[0039]
【主權項】
1. 一種三條帶狀態(tài)轉換方法,包括: 更改三條帶狀態(tài),其中三條帶狀態(tài)用于指示當前的邏輯條帶及其位置關系;以及 使糾刪碼位圖指示更改后的糾刪碼條帶位置和鏡像條帶位置上的哪些數(shù)據(jù)塊構成糾 刪碼條帶。
2. 根據(jù)權利要求1所述的方法,其中,除去構成糾刪碼條帶的數(shù)據(jù)塊,更改后的糾刪碼 條帶位置和鏡像條帶位置上的其他數(shù)據(jù)塊構成鏡像條帶。
3. 根據(jù)權利要求1或2所述的方法,其中,在執(zhí)行鏡像條帶到糾刪碼條帶的轉換時: 互換鏡像條帶位置與糾刪碼條帶位置;以及 使糾刪碼位圖指示互換后的糾刪碼條帶位置和鏡像條帶位置上的哪些數(shù)據(jù)塊構成糾 刪碼條帶。
4. 根據(jù)權利要求3所述的方法,其中,與所述糾刪碼位圖中的1對應的糾刪碼條帶位置 上的數(shù)據(jù)塊,以及與所述糾刪碼位圖中的〇對應的鏡像條帶位置上的數(shù)據(jù)塊構成糾刪碼條 帶。
5. 根據(jù)權利要求3所述的方法,其中,在使所述糾刪碼位圖指示哪些數(shù)據(jù)塊構成糾刪 碼條帶之前,還獲得在互換前的鏡像條帶上寫入的數(shù)據(jù)、計算校驗并將該校驗寫入互換前 的鏡像條帶。
6. 根據(jù)權利要求1或2所述的方法,其中,當滿條帶寫入的空條帶轉換到糾刪碼條帶 時: 將空條帶位置更改為糾刪碼條帶位置,并且使另兩個位置分別為鏡像條帶位置和空條 帶位置;以及 使糾刪碼位圖指示更改后的糾刪碼條帶位置上的數(shù)據(jù)塊構成糾刪碼條帶。
7. 根據(jù)權利要求1或2所述的方法,其中,所述三條帶狀態(tài)包括: 糾刪碼條帶位置為第一位置、鏡像條帶位置為第二位置且空條帶位置為第三位置; 鏡像條帶位置為第一位置、糾刪碼條帶位置為第二位置且空條帶位置為第三位置; 空條帶位置為第一位置、鏡像條帶位置為第二位置且糾刪碼條帶位置為第三位置;以 及 空條帶位置為第一位置、糾刪碼條帶位置為第二位置且鏡像條帶位置為第三位置。
8. 根據(jù)權利要求7所述的方法,其中,使用2bit的位圖表示所述三條帶狀態(tài)。
【專利摘要】本發(fā)明提供一種三條帶狀態(tài)轉換方法,包括:更改三條帶狀態(tài),其中三條帶狀態(tài)用于指示當前的邏輯條帶及其位置關系;以及使糾刪碼位圖指示更改后的糾刪碼條帶位置和鏡像條帶位置上的哪些數(shù)據(jù)塊構成糾刪碼條帶。本發(fā)明降低了數(shù)據(jù)遷移導致的系統(tǒng)開銷,提升了三條帶系統(tǒng)的性能。
【IPC分類】G06F3-06
【公開號】CN104731527
【申請?zhí)枴緾N201510115469
【發(fā)明人】劉國良, 董歡慶, 劉振軍, 蔡杰明, 張軍偉, 劉瀏, 馬留英, 劉健, 楊琳
【申請人】中國科學院計算技術研究所, 天津中科藍鯨信息技術有限公司
【公開日】2015年6月24日
【申請日】2015年3月17日