欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

數(shù)據(jù)存儲與重建的方法與系統(tǒng)的制作方法

文檔序號:6493475閱讀:231來源:國知局
數(shù)據(jù)存儲與重建的方法與系統(tǒng)的制作方法
【專利摘要】本發(fā)明公開了一種數(shù)據(jù)存儲與重建的方法,該方法接收輸入/輸出命令后,算出其對應的同位;根據(jù)此同位,決定此輸入/輸出命令所對應的最后條帶是否為全條帶;當此最后條帶為全條帶時,存儲此輸入/輸出命令所對應的多筆數(shù)據(jù)與同位于磁盤存儲系統(tǒng)中的主超擦除單元;以及當此最后條帶不是全條帶時,重新計算最后的同位,并且將此最后的同位重復寫入緩沖超擦除單元中的至少兩個同位頁。
【專利說明】數(shù)據(jù)存儲與重建的方法與系統(tǒng)
【技術領域】
[0001]本發(fā)明涉及一種數(shù)據(jù)存儲與重建(rebuilding)的方法與系統(tǒng)。
【背景技術】
[0002]獨立磁盤冗余陣列(RedundantArray of Independent Disks,RAID)是一種結合硬件與軟件來強化容錯(fault tolerance)能力與性能(performance)的技術。當某磁盤工作失敗(disk failure)時,例如發(fā)生故障或損毀,常用來存儲與保護數(shù)據(jù)。此技術把多塊相對便宜的磁盤組合起來,成為一個軟磁盤陣列組,使性能達到甚至超過一個價格昂貴的容量巨大的磁盤。此技術能夠在橫跨每一磁盤時,節(jié)省數(shù)據(jù)與相對應的同位(parity)。保護條帶(protection stripe)包括來自不同磁盤的一系列的頁(page),頁是每一磁盤的數(shù)據(jù)存儲單位。條帶大小(stripe size)定義為一磁盤陣列(disk array)中磁盤的個數(shù)(number of disk drives)。此技術通常利用輪詢(round-robin)方式來確保每一條帶已平均分散至每一磁盤。
[0003]將同位塊(parity block)加入于一組來源位(source bits)中可確保輸出結果(outcome)的設定位(set bits)的個數(shù)為偶數(shù)或是奇數(shù),而設定位的個數(shù)也就是值為I的位的個數(shù)。一錯誤糾正碼(Error Correction Code, ECC或稱parity)模塊可使用至少一錯誤糾正或錯誤檢測碼,例如Reed-Solomon(RS)碼、循環(huán)冗余檢驗(Cyclic RedundancyCheck, CRC)碼等。
[0004]在RAID的結構中,當某一磁盤出現(xiàn)故障時,每一條帶上的數(shù)據(jù),可使用硬件來檢查分散于各磁盤上的ECC/同位,其它磁盤可以通過這些分散的ECC/同位的校驗,將故障的磁盤所存儲的數(shù)據(jù)重新恢復出來。RAID5是RAID的一系列技術的其中一種。RAID5使用至少三塊磁盤配置。圖1是RAID5的配置的一范例示意圖。如圖1的范例所示,RAID5將所有ECC,分別以條帶式地存儲在每一磁盤上,并且每一磁盤在不同頁存儲不同數(shù)據(jù),每一磁盤也各存儲一對應的ECC。每一條帶包括來自N-1個不同磁盤的不同數(shù)據(jù),以及其余一個磁盤的ECC,N是條帶大小,也就是一條帶中磁盤的個數(shù),本例中,N等于4。當某一磁盤出現(xiàn)故障時,其它磁盤可以通過ECC的校驗,將故障的磁盤所存儲的數(shù)據(jù)重新恢復出來。在RAID5中,由于所有的ECC要使用一磁盤的容量作為校驗使用,所以實際可以使用的磁盤容量為N-1。
[0005]在一條帶上,將數(shù)據(jù)分散在陣列的每一磁盤上時,若此條帶具有最大的被允許的(allowed)數(shù)據(jù)存儲容量時,此類型的條帶被定義為全條帶(fullstripe)。也就是說,全條帶是使用最大的被允許的磁盤個數(shù)所構成的一條帶。所以,全條帶的寫入效能(writeperformance)高,亦即速度很快。另一種類型的條帶是部份填入式條帶(partially filledstripe),此部份填入式條帶的數(shù)據(jù)存儲容量小于條帶大小。部份填入式條帶在隨機存取頻繁時,其寫入效能低,如圖2的范例所示。當收到一輸入/輸出命令(1/0 command)時,從一磁盤中讀出數(shù)據(jù)I及該磁盤存儲的ECC至一存儲器,例如一隨機存取存儲器(RAM),然后圖2中的部份填入式條帶需要重新記算新的ECC后,再將數(shù)據(jù)I寫回至該磁盤的同一地址。當RAM的空間不夠且隨機存取頻繁時,會增加寫入的工作負荷(write workload),而降低寫入效能低。
[0006]有一種在RAID系統(tǒng)中存儲器備份(memory backup)的技術如圖3所示。此技術提供一易失性(volatile)存儲器324與一非易失性(non-volatile)存儲器358給一 RAID系統(tǒng)。此RAID系統(tǒng)利用一 RAID控制器312來檢測出主要電源供應(main power supply)失敗(failure)。當RAID控制器312檢測出主要電源供應(main power supply)失敗時,暫時電源供應354則供應暫時電源(temporary power)給易失性(volatile)存儲器324,讓RAID控制器312將數(shù)據(jù)從易失性存儲器324傳送到非易失性存儲器358。也就是說,此技術在RAID系統(tǒng)中提供易失性存儲器及額外的電源供應來進行數(shù)據(jù)備份。
[0007]在上述數(shù)據(jù)保護的技術中,當處理部份填入式條帶的數(shù)據(jù)時,會遇到的挑戰(zhàn)是,如何確保能妥善保存條帶的數(shù)據(jù)以及得以成功重建條帶的數(shù)據(jù),并且如何確保數(shù)據(jù)與ECC/同位均等分配至每一磁盤。因此,如何在條帶的架構下設計一種數(shù)據(jù)存儲與重建的技術,將會是重要的課題之一。

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

[0008]本發(fā)明提供一種數(shù)據(jù)存儲與重建的方法與系統(tǒng)。
[0009]本發(fā)明的一實施例提出一種數(shù)據(jù)存儲與重建的方法,應用于磁盤存儲系統(tǒng)。此方法可包括:接收輸入/輸出命令后,算出其對應的同位;根據(jù)此同位,決定此輸入/輸出命令所對應的最后條帶(last stripe)是否為全條帶;當此最后條帶為全條帶時,存儲此輸入/輸出命令所對應的多筆數(shù)據(jù)與同位于此磁盤存儲系統(tǒng)中的主超擦除單元(main HyperErase Unit, main HEU);以及當此最后條帶不是全條帶時,重新計算最后的同位,并且將此最后的同位重復寫入緩沖超擦除單元(buffering HEU)中的至少兩個同位頁。
[0010]本發(fā)明的另一實施例提出一種數(shù)據(jù)存儲與重建的方法,應用于磁盤存儲系統(tǒng)。此方法可包括:接收輸入/輸出命令后,利用累積的多個頁,算出同位;根據(jù)此同位,決定條帶是否滿了 ;當此條帶是滿的時,存儲此同位與此多個頁的每一頁的數(shù)據(jù)于指定的條帶,其中此同位做為辨識條帶的結尾;當此條帶未滿時,存儲此同位;以及當還有至少一輸入/輸出命令時,返回此接收輸入/輸出命令后,利用累積的多個頁,算出同位的步驟。
[0011]本發(fā)明的又一實施例提出一種數(shù)據(jù)存儲與重建的系統(tǒng),可包括:處理器(processor),根據(jù)同位,決定輸入/輸出命令對應的最后條帶是否為全條帶;主超擦除單元,配置于此磁盤存儲系統(tǒng)中,并且當該最后條帶為全條帶時,用來存儲此輸入/輸出命令所對應的多筆數(shù)據(jù)與同位;以及緩沖超擦除單元,配置于此磁盤存儲系統(tǒng)中,并且當此最后條帶不是全條帶時,經(jīng)由此處理器重新計算的最后的同位,將此最后的同位重復寫入于此緩沖超擦除單元中的至少兩個同位頁;其中此處理器還執(zhí)行該磁盤存儲系統(tǒng)中失敗的至少一磁盤的多筆數(shù)據(jù)的重建。
[0012]本發(fā)明的又一實施例提出一種數(shù)據(jù)存儲與重建的系統(tǒng)可包括:處理器,根據(jù)輸入/輸出命令,經(jīng)由累積的多個頁,算出同位,并且根據(jù)此同位,決定條帶是否滿了 ;主超擦除單元,配置于此磁盤存儲系統(tǒng)中,用來存儲此同位與此多個頁的每一頁的數(shù)據(jù)于指定的條帶,此同位做為辨識此條帶的結尾;以及元數(shù)據(jù)區(qū),配置于磁盤存儲系統(tǒng)中的超擦除單元中,用來存儲該多個頁的每一頁各自對應的邏輯頁號碼與同位信息;其中此處理器還執(zhí)行此磁盤存儲系統(tǒng)中失敗的至少一磁盤的多筆數(shù)據(jù)的重建。
【專利附圖】

【附圖說明】
[0013]圖1是一范例示意圖,說明RAID5的配置;
[0014]圖2是一范例示意圖,說明部份填入式條帶的隨機存取時的運作;
[0015]圖3是一范例示意圖,說明一種在RAID系統(tǒng)中存儲器備份的技術;
[0016]圖4是根據(jù)本發(fā)明一實施例,說明一 SEU的存入格式;
[0017]圖5是根據(jù)本發(fā)明一實施例,說明一轉譯層將一輸入/輸出命令轉譯為物理頁號碼;
[0018]圖6是根據(jù)本發(fā)明一實施例,說明在固定的條帶大小的情況時,一種數(shù)據(jù)存儲與重建方法的運作流程;
[0019]圖7的A圖是根據(jù)本發(fā)明一實施例,說明圖6中的主超擦除單元的頁的單元格式;
[0020]圖7中的B圖是根據(jù)本發(fā)明一實施例,說明圖6中的緩沖超擦除單元的同位頁的單元格式;
[0021]圖8是根據(jù)本發(fā)明一實施例,說明一種數(shù)據(jù)重構方法的運作流程;
[0022]圖9是根 據(jù)本發(fā)明一實施例,說明在動態(tài)的條帶大小的情況時,一種數(shù)據(jù)存儲方法的運作流程;
[0023]圖10是根據(jù)本發(fā)明另一實施例,說明一種數(shù)據(jù)存儲與重建方法;
[0024]圖11是根據(jù)本發(fā)明一實施例,說明一超擦除單元選擇回收的SEUs的方法;
[0025]圖12A是是根據(jù)本發(fā)明另一實施例,說明幾種在一磁盤中發(fā)生損毀的范例;
[0026]圖12B是根據(jù)本發(fā)明另一實施例,判定圖12A中三種磁盤中發(fā)生失敗的情況的方式;
[0027]圖13是根據(jù)本發(fā)明一實施例,說明在條帶的大小是可變的情況下,一種數(shù)據(jù)重構方法的運作流程。
[0028]【主要元件符號說明】
[0029]324易失性存儲器 358非易失性存儲器
[0030]312RAID控制器354暫時電源供應
[0031]400超擦除單元 411至414頁
[0032]420元數(shù)據(jù)區(qū)
[0033]LPNO至LPN3頁的邏輯頁號碼
[0034]PIO至PI3頁的同位信息
[0035]500轉譯層510命令隊列
[0036]LPN邏輯頁號碼
[0037]610接收一輸入/輸出命令
[0038]615算出其對應的一同位
[0039]620決定此輸入/輸出命令所對應的一最后條帶是否為一全條帶622重新計算一最后的同位
[0040]624將此最后的同位重復寫入一緩沖超擦除單元中的至少兩個同位頁
[0041]630存儲此輸入/輸出命令所對應的多筆數(shù)據(jù)與一同位于一磁盤存儲子系統(tǒng)中的一主超擦除單元
[0042]710主超擦除單元 720緩沖超擦除單元
[0043]711、712全條帶 713部分條帶
[0044]730同位頁732數(shù)據(jù)區(qū)
[0045]734備用區(qū)
[0046]810從一緩沖超擦除單元里讀出最后至少兩個同位頁的其中一同位頁
[0047]820根據(jù)此其中一同位頁里的信息,重建一磁盤存儲系統(tǒng)中的一主超擦除單元里的一部份條帶
[0048]830從該主超擦除單元里讀出至少一全條帶的每一全條帶里的一同位頁
[0049]840根據(jù)每一全條帶里的該同位頁里的信息,重建此至少一全條帶的每一全條帶
[0050]910接收一輸入/輸出命令
[0051]915利用累積的多個頁,算出一同位
[0052]920根據(jù)此同位,決定此條帶是否滿了
[0053]925將此同位以及此多個頁的每一頁的數(shù)據(jù)存儲于一指定的條帶
[0054]930存儲此同位
`[0055]1000HEU1010 元數(shù)據(jù)區(qū)
[0056]1020元數(shù)據(jù)1022旗標
[0057]1024LPN的同位HEU超擦除單元
[0058]P同位頁D數(shù)據(jù)頁
[0059]1100HEUSEU 超擦除單元
[0060]1210—同位的距離大于N-1 ?
[0061]1220損毀頁是否為數(shù)據(jù)?
[0062]1310檢查一相對應的同位距離是大于N-1嗎?
[0063]1320判定一損毀頁為一同位頁并且設定其同位信息為一同位值
[0064]1330從上一條帶的結尾做一 XOR重建
[0065]1335判定此損毀頁為一數(shù)據(jù)頁并且設定其同位信息為一非同位值【具體實施方式】
[0066]為使本發(fā)明的目的、技術方案和優(yōu)點更加清楚明白,以下結合具體實施例,并參照附圖,對本發(fā)明作進一步的詳細說明。
[0067]本發(fā)明實施例的數(shù)據(jù)存儲與重建的技術是先建立轉譯層(translationlayer),使邏輯頁號碼(Logical Page Number, LPN)能將輸入/輸出命令轉譯為物理頁號碼(Physical Page Number,PPN),來管理存儲裝置的全部的存取地址,并且使用條帶來作為保護與重建數(shù)據(jù)的單位,使用新的技術來記錄條帶的LPN同位與其同位,以及采用日志(log)與元數(shù)據(jù)(metadata)來記錄重建信息。建立轉譯層之前,本發(fā)明實施例先說明每一磁盤的數(shù)據(jù)存儲單位(頁)的存入格式,以及超擦除單元(Super Erase Unit,SEU)的存入格式。
[0068]在本發(fā)明中,每一頁分做兩個部份,一部份是數(shù)據(jù)區(qū)(data area),另一部份是備用區(qū)(spare area)。每一超擦除單元(Super Erase Unit, SEU)包括多個頁以及結尾。此結尾是元數(shù)據(jù)區(qū)。此元數(shù)據(jù)區(qū)記錄在同一個SEU內(nèi),前數(shù)個頁的LPN以及各個頁對應的同位信息(Parity Information, PI) ?換句話說,前數(shù)個頁的備用區(qū)的信息集中在此元數(shù)據(jù)區(qū))。圖4是根據(jù)本發(fā)明一實施例,說明一 SEU的存入格式。在圖4的范例中,一 SEU有四個頁與一元數(shù)據(jù)區(qū)。將SEU放大來說明,一 SEU 400包括四個頁(分別為頁411至頁414)以及一元數(shù)據(jù)區(qū)420。其中每一頁包括數(shù)據(jù)區(qū)以及備用區(qū),例如,頁411包括數(shù)據(jù)區(qū)(內(nèi)含數(shù)據(jù)O)以及備用區(qū)(記錄頁411的LPN(即LPN0)以及同位信息P10)。也就是說,頁411包括數(shù)據(jù)0、LPN0、以及P10。依此類推,元數(shù)據(jù)區(qū)420記錄頁411至頁414的各個頁各自對應的LPN(即LPNO至LPN3)以及同位信息(即PlO至P13)。當同位信息被寫入于元數(shù)據(jù)區(qū)420時,此同位信息例如是,但不限定于,旗標(flag)且用來決定是否數(shù)據(jù)或同位被寫入。
[0069]圖5是根據(jù)本發(fā)明一實施例,說明轉譯層將輸入/輸出命令轉譯為物理頁號碼(Physical Page Number, PPN)。在圖5的范例中,轉譯層500接收到輸入/輸出命令,例如命令隊列(command queue) 510,將命令隊列510從存取的邏輯地址,例如LPN11、LPN2、LPN8,轉譯成數(shù)個磁盤中的存取的地址,本例中記為物理頁號碼,例如磁盤O的頁3、頁9、頁
12、及頁18,磁盤I的頁4、頁10、頁13、及頁19,磁盤2的頁5、頁11、頁14、及頁20。
[0070]從圖5的范例可看出,命令隊列510存取的邏輯地址轉譯后的數(shù)個磁盤中的存取的地址均等地分散至N-1個不同的磁盤(此范例中,N等于4)。也就是說,將四個條帶的每一條帶的數(shù)據(jù)分散在三個不同的磁盤(磁盤O至磁盤2)上,并且每一條帶的結尾存儲各自的同位信息,且存儲在另外一磁盤(磁盤3)上。例如,條帶3的數(shù)據(jù)(頁9至頁11)分散至三個不同的磁盤(磁盤O至磁盤2),并且條帶3的結尾存儲同位信息,且存儲在磁盤3。所以,每一條帶使用三個(即N-1,N等于4)數(shù)據(jù)頁(data page),并且每一條帶的結尾使用一個同位頁(parity page)來存儲同位信息。
[0071]依此,根 據(jù)本發(fā)明一實施例,定義超擦除單元(Hyper Erase Unit, HEU)是由多個SEUs所組成的,并且確保由此多個SEUs所形成的多個全條帶的每一全條帶分布式地跨越在N-1個不同的磁盤,并且每一條帶的結尾存儲同位信息,以辨認出一個條帶的結尾,其中N是此HEU所使用的磁盤的個數(shù)。圖5的范例中,HEU 520可由八個SEUs組成,此八個SEUs所形成的多個條帶其每一全條帶所存儲的數(shù)據(jù)分布式地跨越在磁盤O至磁盤2上,并且每一全條帶其結尾的同位信息存儲在磁盤3。
[0072]所以,利用特定的分配順序,如輪詢方式,本發(fā)明實施例可將輸入/輸出命令從存取的邏輯地址均等地分配至數(shù)個磁盤。并且,這些條帶可填入HEU。選擇多個SEUs來組成HEU也可符合在磁盤中的耗損平均(wearleveling)的原則。此耗損平均的原則是將每一區(qū)塊的磨損狀況平均化。以下說明本發(fā)明實施例在收到輸入/輸出命令(命令)時,如何處理部份填入式條帶的數(shù)據(jù)。此處理根據(jù)條帶大小可分為兩種情況,一種是固定的條帶大小(fixed stripe size)的情況,另一種是動態(tài)的(dynamic)條帶大小的情況。
[0073]在固定的條帶大小的情況時,圖6是根據(jù)本發(fā)明一實施例,說明應用于磁盤存儲系統(tǒng)的一種數(shù)據(jù)存儲與重建方法的運作流程。參考圖6,此方法接收輸入/輸出命令(步驟610)后,可根據(jù)多筆累積的數(shù)據(jù)頁,算出其對應的同位(步驟615)。根據(jù)此同位信息,決定此輸入/輸出命令所對應的最后條帶是否為全條帶(步驟620)。當此最后條帶為全條帶時(步驟620,是),此方法存儲此輸入/輸出命令所對應的多筆數(shù)據(jù)與同位于磁盤存儲系統(tǒng)中的主超擦除單元(main HEU)(步驟630)。當此最后條帶不是全條帶時(步驟620,否),此方法可根據(jù)舊的數(shù)據(jù)與新收到的數(shù)據(jù),重新計算最后的同位(final parity)(步驟622),并且將此最后的同位(parity page)重復寫入緩沖超擦除單元(buffering HEU)中的至少兩個同位頁(步驟624)。當不再有輸入/輸出命令時,此方法結束此流程;當還有輸入/輸出命令時,此方法返回步驟610。
[0074]在步驟624中,將此最后的同位存入此緩沖超擦除單元中的至少兩個同位頁可采用多種方式來實現(xiàn)。例如是,但不限定于,將此最后的同位重復寫入此緩沖超擦除單元中連續(xù)的頁、或是以物理映射(physical mapping)方式如以邏輯閘(logic gate)等方式,來將此最后的同位重復寫入于此緩沖超擦除單元中的至少兩個同位頁。如此,此至少兩個同位頁可避免被存儲在同一磁盤中。在步驟630中,該同位指出該最后條帶是否為全條帶。此磁盤存儲系統(tǒng)例如是,但不限定于RAID系統(tǒng)。
[0075]在圖6的數(shù)據(jù)存儲方法中,此方法還可包括從多個候選超擦除單元(SEUcandidates)中選出該緩沖超擦除單元。候選超擦除單元是由使用過的超擦除單元進行回收,能夠回收的條件就是這些SEUs上的各個擦除單元(Erase Unit, EU)已經(jīng)重新指派到別的SEU上的EU,導致這些SEU上的EU已經(jīng)是無效的(invalid),回收過后的SEU就是候選超擦除單元。從各個候選超擦除單元挑選組成為超擦除單元(HEU)的條件就是此候選超擦除單元必須來自各個不同的磁盤上。挑選的方式很多,例如,第一種方式,將回收得的候選超擦除單元依序放入每個磁盤的隊列當中,依放入順序從每個隊列最早放入的候選超擦除單元挑出。第二種方式,將每個SEU使用過的次數(shù)統(tǒng)計起來,由使用次數(shù)比較少的SEUs先挑選。
[0076]如之前所述,在本發(fā)明中,每一頁分為數(shù)據(jù)區(qū),以及備用區(qū)。承上述,圖7的A圖是根據(jù)本發(fā)明一實施例,說明圖6中的主超擦除單元的頁的單元格式;以及圖7的B圖是根據(jù)本發(fā)明一實施例,說明圖6中的緩沖超擦除單元的同位頁的單元格式。在圖7的A圖的范例中,主超擦除單元710中有兩種類型的頁,其中一種是數(shù)據(jù)頁(data page),以d表示;另一種是同位頁(parity page),以P表示。在圖7的A圖中,主超擦除單元里的數(shù)據(jù)頁,其數(shù)據(jù)區(qū)就是存儲數(shù)據(jù)(data),其備用區(qū)存儲邏輯頁號碼(LPN)。在圖7的A圖中,主超擦除單元里的同位頁(即全條帶的情況)的數(shù)據(jù)區(qū)就是存儲數(shù)據(jù)的同位;而其備用區(qū)存儲的是LPN的同位,以重建LPN的信息。主超擦除單元710有三個條帶,其中兩個是全條帶711與712,最后一個是部分條帶(partial stripe) 713。
[0077]在圖7的B圖中,緩沖超擦除單元720的同位頁730,其數(shù)據(jù)區(qū)732用來存儲主超擦除單元710里部分條帶713的數(shù)據(jù)的同位P;其備用區(qū)734存有兩個信息,其中信息是LPN的同位,以重建LPN的信息;而另一信息是物理頁號碼(PPN)。用物理地址連續(xù)寫入的特性,每一地址編號會不斷增長,所以,可利用此PPN來判斷哪一個是比較新的同位頁。當同位被寫入時,LPN的同位以及PPN也會被寫入,如此,可以找到在緩沖超擦除單元720里的條帶。
[0078]承上述,在固定的條帶大小的情況下,圖8是根據(jù)本發(fā)明一實施例,說明應用于磁盤存儲系統(tǒng)的一種數(shù)據(jù)重構方法的運作流程。參考圖8,此方法先從該磁盤存儲系統(tǒng)中的緩沖超擦除單元里讀出最后至少兩個同位頁的其中一同位頁(步驟810),并且根據(jù)此其中一同位頁里的信息,重建此磁盤存儲系統(tǒng)中的主超擦除單元里的一部份條帶(步驟820);然后從該主超擦除單元里讀出至少一全條帶的每一全條帶里的同位頁(步驟830),并且根據(jù)每一全條帶里的該同位頁里的信息,重建此至少一全條帶的每一全條帶(步驟840)。此部份條帶與全條帶的單元格式的范例已載述如圖7的A圖中主超擦除單元的單元格式,此處不再重述。緩沖超擦除單元里同位頁的單元格式的范例已載述如圖7的B圖中的同位頁的單元格式,此處也不再重述。
[0079]在動態(tài)的條帶大小的情況時,本發(fā)明一實施例的數(shù)據(jù)存儲技術是,定義同位信息來判斷超擦除單元(HEU)中各個頁所存的類型是數(shù)據(jù)或是同位(的旗標),并且定義同位距離(Parity Distance,PD)為連續(xù)兩個同位頁(paritypage)的間隔。當超擦除單元(HEU)中的頁所存的類型是數(shù)據(jù)時,此頁的數(shù)據(jù)區(qū)就是存數(shù)據(jù),此頁的備用區(qū)存儲LPN和PI (其PI值設定為O)。以同位頁作為條帶的結尾。當超擦除單元(HEU)中的頁所存的類型是同位時,此同位頁的數(shù)據(jù)區(qū)就是存條帶里數(shù)據(jù)的同位,此同位頁的備用區(qū)存儲LPN的同位和和PI (其PI值設定為I)。PI可用位旗標(1-bit flag)來實現(xiàn)。
[0080]在動態(tài)的條帶大小的情況時,本發(fā)明另一實施例的數(shù)據(jù)存儲技術是,定義如圖4的SEU的存入格式,并且通過前述SEU的元數(shù)據(jù)區(qū)的輔助,來存取數(shù)據(jù)或同位,因為SEU的數(shù)個頁的備用區(qū)里的信息皆集中在此元數(shù)據(jù)區(qū)。例如利用此元數(shù)據(jù)區(qū)來存取復原所需的信息如LPN、有效頁(validpage)等。圖9是根據(jù)本發(fā)明一實施例,說明在動態(tài)的條帶大小的情況時,應用于磁盤存儲系統(tǒng)的一種數(shù)據(jù)存儲方法的運作流程。參考圖9,此方法接收輸入/輸出命令(步驟910)后,利用累積的多個頁,算出同位(步驟915);根據(jù)此同位,決定條帶是否滿了(步驟920);當此條帶是滿的(步驟920,是)時,則將此同位以及此多個頁的每一頁的數(shù)據(jù)存儲于指定的條帶(步驟925)。當此條帶是未滿(步驟920,否)時,則存儲此同位(步驟930)。當還有輸入/輸出命令時,此方法返回步驟910 ;當不再有輸入/輸出命令時,此方法結束此流程。其中此同位作為辨識條帶的結尾,并且此多個頁的每一頁的備用區(qū)存儲旗標,以指出此頁是存同位或是數(shù)據(jù)。
[0081]如圖10的范例所示,根據(jù)本發(fā)明又一實施例的數(shù)據(jù)存儲與重建方法可額外使用元數(shù)據(jù)區(qū)1010來存儲多個頁的每一頁各自對應的LPN與同位信息。如之前所述,超擦除單元(HEU) 1000由多個挑選出的SEUs所組成,每一 SEU內(nèi)寫入多個頁后,會出現(xiàn)元數(shù)據(jù)1020,作為此SEU的結尾。所以超擦除單元(HEU) 1000會有對應的元數(shù)據(jù)區(qū)1010。元數(shù)據(jù)1020紀錄在同一 SEU內(nèi),前數(shù)個頁的LPN以及各個頁對應的同位信息(PI)。也就是說,元數(shù)據(jù)1020把在同一 SEU內(nèi)前數(shù)個頁的備用區(qū)的信息集中在此區(qū)。此同位信息可以是旗標。所以,此數(shù)據(jù)存儲方法于收到數(shù)據(jù)時,將數(shù)據(jù)(記為d)存入條帶中的頁里,直到輸入/輸出隊列滿了時,根據(jù)此條帶的多個頁,計算同位(記為P),然后將此條帶的此多個頁的LPN的同位(如標號1024所示)以及此條帶的同位信息(例如旗標1022)寫入元數(shù)據(jù)區(qū),直到處理至所有收到數(shù)據(jù)的尾端為止。
[0082]在條帶的大小是可變的情況下,截斷(truncate)全條帶可分兩種情況。一種情況例如是,截斷全條帶取決于當前的輸入/輸出命令的狀態(tài)。當已收完輸入/輸出命令且接收器也處于閑置(idle)時,表示基于此輸入/輸出命令的輸入/輸出隊列中的數(shù)據(jù)已送完,此時就可使用同位P做為一部分條帶的結尾,并且串起此部分條帶。也就是說,此種情況下,條帶的大小不是固定的,而是與當前的輸入/輸出命令的狀態(tài)有關,所以是動態(tài)的。另一種情況例如是,當累積的數(shù)據(jù)頁(accumulated data page)的數(shù)目大于等于N_l, N為磁盤個數(shù),且從前面累積的N-1個數(shù)據(jù)頁算出同位時,則根據(jù)本發(fā)明實施例,會在配置的全條帶中存儲此N-1個數(shù)據(jù)頁以及此同位。也就是說,截斷全條帶取決于磁盤存儲系統(tǒng)中的多個磁盤的磁盤個數(shù)N。如前所述,同位頁存儲的同位被用來辨識條帶的結尾。
[0083]本發(fā)明實施例不僅不會重寫舊數(shù)據(jù)于物理地址中,也會避免將數(shù)據(jù)寫入于磁盤中不良的區(qū)塊(bad block)里。根據(jù)本發(fā)明一實施例,如圖11所示,在組成新的超擦除單元(HEU)IlOO時,從多個回收的(recycled) SEUs中,被挑選出的SEUs,不會局限在同一條帶中。例如,新的超擦除單元(HEU) 1100中,從多個回收的(recycled) SEUs中被挑選出的SEUs是磁盤O中的SEU3、磁盤I中的SEU5、磁盤2中的SEU2、磁盤3中的SEU7、以及磁盤4中的SEU4。其中如SEU3與SEU5的物理地址不是來自兩個連續(xù)相鄰的區(qū)塊地址。如此可避免將數(shù)據(jù)寫入于磁盤中不良的區(qū)塊里。
[0084]磁盤發(fā)生失敗及重建磁盤中損毀的頁有多種方式。圖12A是幾種在磁盤中發(fā)生失敗的范例。情況一是,此磁盤發(fā)生數(shù)據(jù)頁損毀(broken);情況二是,此磁盤發(fā)生同位頁損毀;情況三是,此磁盤發(fā)生的損毀頁,其不在同一條帶上的兩個鄰近的同位頁,如同位頁1231與同位頁1232,的距離大于N-1。如前所述,本發(fā)明實施例可根據(jù)存儲于元數(shù)據(jù)區(qū)的同位信息如旗標(flag),可判定出失敗頁(failed page)的類型是數(shù)據(jù)或是同位。而根據(jù)同位頁的距離可判定出情況三。圖12B是根據(jù)本發(fā)明另一實施例,判定圖12A中三種磁盤中發(fā)生失敗的情況的方式。如圖12B所示,當同位的距離大于N-1時(步驟1210,是),則判定是情況三。當同位的距離小于等于N-1時(步驟1210,否),則再檢查損毀頁(brokenpage)是否為數(shù)據(jù)(步驟1220)。當損毀頁為數(shù)據(jù)時(步驟1220,是),則判定是情況一。當損毀頁不是數(shù)據(jù)時(步驟1220,否),則判定是情況二。
[0085]承上述,圖13是根據(jù)本發(fā)明一實施例,說明在條帶的大小是可變的情況下,應用于磁盤存儲系統(tǒng)的一種數(shù)據(jù)重構方法的運作流程。首先此方法1300對于元數(shù)據(jù)區(qū)中的多個同位頁的每一對前后相鄰的同位頁(paritypages),檢查相對應的同位距離是大于N_1嗎?(步驟1310)。當此同位距離是大于N-1時(步驟1310,是),即情況三,則判定損毀頁為同位頁并且設定其同位信息為同位值(parity value)(步驟1320),此同位值例如是,但不限定于,I。當此同位距離是小于等于N-1時(步驟1310,否),從上一條帶(a laststripe)的結尾做XOR重建(步驟1330)。當此XOR重建的結果為O時,即情況二,進行步驟1320。當此XOR重建的結果不是O時,即情況一,判定此損毀頁為數(shù)據(jù)頁并且設定其同位信息為非同位值(non-parityvalue)(步驟1335),此非同位值例如是,但不限定于,O。如此,此數(shù)據(jù)重構方法不僅可以算回正確的數(shù)據(jù),也可以重新標記回正確的同位信息。如前所述,此同位信息可用1-位旗標(1-bit flag)來實現(xiàn)。
[0086]根據(jù)本發(fā)明實施例,此XOR重建的定義是,針對XOR運算出各個同位時的步驟進行反運算,而一般的XOR是對兩個數(shù)值進行位互斥(BitwiseExclusion)的運算。舉例來說,當數(shù)據(jù)I (值為I)XOR數(shù)據(jù)2 (值為O)得到同位(值為I);當由同位和數(shù)據(jù)I進行XOR重建時,則可得數(shù)據(jù)I (值為I);當由同位和數(shù)據(jù)2進行XOR重建時,則可得數(shù)據(jù)2 (值為O)。當將一整個條帶上的數(shù)據(jù)和同位進行XOR重建時,以上例而言,IXOR OXOR I得到的值為O。
[0087]在步驟1310之前,方法1300可先掃描超擦除單元(HEU)中的元數(shù)據(jù)區(qū)來決定出此元數(shù)據(jù)區(qū)中的多個同位頁,再計算此多個同位頁的每對同位頁所對應的同位距離;然后執(zhí)行圖13的的運作流程,直到此超擦除單元(HEU)中所有的損毀頁被重建為止。承上述,當損毀頁是數(shù)據(jù)(情況一)時,可借助一條帶結尾的同位來重建此損毀的數(shù)據(jù)頁。當損毀頁是情況二時,可借助上一條帶的同位來重建此上一條帶,并且可借助此上一條帶重建的數(shù)據(jù)來重建其同位。當損毀頁是情況三時,因為損毀頁是介于其它兩個同位頁之間并且也是存儲同位,所以在其中間的同位頁可由同一條帶中其前面至少一數(shù)據(jù)頁來重建。
[0088]承上述,根據(jù)本發(fā)明一實施例的數(shù)據(jù)存儲與重建的系統(tǒng)可包括處理器,根據(jù)同位,決定輸入/輸出命令對應的最后條帶是否為全條帶;主超擦除單元,配置于此磁盤存儲系統(tǒng)中,并且當該最后條帶為全條帶時,用來存儲此輸入/輸出命令所對應的多筆數(shù)據(jù)與同位;以及緩沖超擦除單元,配置于此磁盤存儲系統(tǒng)中,并且當此最后條帶不是全條帶時,經(jīng)由此處理器重新計算的最后的同位,將此最后的同位重復寫入于此緩沖超擦除單元中的至少兩個同位頁。
[0089]此處理器還可執(zhí)行此磁盤存儲系統(tǒng)中失敗的至少一磁盤的多筆數(shù)據(jù)的重建,包括從該緩沖超擦除單元里讀出最后至少兩個同位頁的其中一同位頁;根據(jù)此其中一同位頁里的信息,重建此磁盤存儲系統(tǒng)中的該主超擦除單元里的一部份條帶;從該主超擦除單元里讀出至少一全條帶的每一全條帶里的同位頁;以及根據(jù)每一全條帶里的該同位頁里的信息,重建此至少一全條帶的每一全條帶。
[0090]主超擦除單元的頁的單元格式以及緩沖超擦除單元的同位頁的單元格式如前述圖7以及本發(fā)明其他實施例所載,此處不再重述。此處理器處理數(shù)據(jù)存儲與重建的細節(jié)如前述本發(fā)明其他實施例所載,此處也不再重述。
[0091]根據(jù)本發(fā)明另一實施例的數(shù)據(jù)存儲與重建的系統(tǒng)可包括處理器,根據(jù)輸入/輸出命令,經(jīng)由累積的多個頁,算出同位,并且根據(jù)此同位,決定條帶是否滿了 ;主超擦除單元,配置于此磁盤存儲系統(tǒng)中,用來存儲此同位與此多個頁的每一頁的數(shù)據(jù)于指定的條帶,此同位做為辨識此條帶的結尾;以及元數(shù)據(jù)區(qū),配置于磁盤存儲系統(tǒng)中的超擦除單元中,用來存儲該多個頁的每一頁各自對應的邏輯頁號碼與同位信息。此處理器還執(zhí)行此磁盤存儲系統(tǒng)中失敗的至少一磁盤的多筆數(shù)據(jù)的重建,如圖13中所載,此處不再重述。元數(shù)據(jù)區(qū)中的單元格式如前述本發(fā)明其他實施例所載,此處也不再重述。此實施例中,條帶的大小是可變的,并且如前述所載,截斷全條帶可決定于該輸入/輸出命令的至少一狀態(tài)、或是決定于此磁盤存儲系統(tǒng)中的多個磁盤的磁盤個數(shù),其細節(jié)也不再重述。
[0092]承上述,本發(fā)明實施例的數(shù)據(jù)存儲與重建的技術可應用在如具有高速存取(highspeed access)與數(shù)據(jù)保護(data protection)特性的云端存儲系統(tǒng)(cloud storagesystem),例如獨立磁盤冗余陣列(RAID)系統(tǒng)等。
[0093]綜上所述,本發(fā)明實施例提供一種磁盤損毀后的數(shù)據(jù)存儲與重建的方法與系統(tǒng)。其技術使用條帶來作為保護與重建數(shù)據(jù)的單位。當條帶是固定的大小時,使用部分條帶(partial stripe)中的數(shù)據(jù)來重新計算最后的同位,并且將此最后的同位重復寫入緩沖超擦除單元中的至少兩個同位頁;在數(shù)據(jù)重構時,從該緩沖超擦除單元中的此至少兩個同位頁的其中一頁讀出此最后的同位,來并依此來重建部分條帶。當條帶是可變的大小時,使用元數(shù)據(jù)區(qū),配置于超擦除單元中,并且用來存儲該多個頁的每一頁各自對應的邏輯頁號碼與同位信息,以及每一頁的備用區(qū)存儲同位信息,來指出此頁是存同位或是數(shù)據(jù);在數(shù)據(jù)重構時,通過檢查此元數(shù)據(jù)區(qū)中的每一對前后相鄰的同位頁的相對應的同位距離是否大于等于該磁盤存儲系統(tǒng)中的磁盤個數(shù),以及根據(jù)XOR計算的結果來重建同位頁或是數(shù)據(jù)。
[0094]以上所述的具體實施例,對本發(fā)明的目的、技術方案和有益效果進行了進一步詳細說明,應理解的是,以上所述僅為本發(fā)明的具體實施例而已,并不用于限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi),所做的任何修改、等同替換、改進等,均應包含在本發(fā)明的保護范圍之內(nèi)。
【權利要求】
1.一種數(shù)據(jù)存儲與重建的方法,應用于磁盤存儲系統(tǒng),該方法包括: 接收輸入/輸出命令后,算出其對應的同位; 根據(jù)該同位,決定該輸入/輸出命令對應的最后條帶是否為全條帶; 當該最后條帶為全條帶時,存儲該輸入/輸出命令所對應的多筆數(shù)據(jù)與該同位于該磁盤存儲系統(tǒng)中的主超擦除單元;以及 當該最后條帶不是全條帶時,重新計算最后的同位,并且將該最后的同位重復寫入緩沖超擦除單元中的至少兩個同位頁。
2.如權利要求1所述的方法,其中該磁盤存儲系統(tǒng)是獨立磁盤冗余陣列。
3.如權利要求1所述的方法,其中該緩沖超擦除單元中的該至少兩個同位頁是連續(xù)的同位頁。
4.如權利要求1所述的方法,其中該方法還包括:將該最后的同位以物理映射方式,重復寫入于該緩沖超擦除單元中的該至少兩個同位頁。
5.如權利要求1所述的方法,其中該緩沖超擦除單元是由多個同位頁組成的,每同位頁還包括: 數(shù)據(jù)區(qū),存儲該主超擦除單元里一個部分條帶的至少一數(shù)據(jù)的同位;以及 備用區(qū),存儲邏輯頁號碼的同位、以及物理頁號碼。
6.如權利要求1所述的方法,其中該主超擦除單元是由多個超擦除單元(SEUs)所組成的,并且確保由該多個SEUs所形成的多個全條帶的每一全條帶分布式地跨越在N-1個不同的磁盤,并且每 一條帶的結尾存儲同位信息,其中N是該超擦除單元所使用的磁盤的個數(shù)。
7.如權利要求6所述的方法,其中該多個SEUs的每一SEU包括多個頁以及元數(shù)據(jù)區(qū),該元數(shù)據(jù)區(qū)記錄該多個頁的各個頁各自對應的邏輯頁號碼以及同位信息。
8.如權利要求1所述的方法,其中該方法還包括:從多個候選超擦除單元中選出該緩沖超擦除單元。
9.如權利要求1所述的方法,其中該同位指出該最后條帶是否為全條帶。
10.如權利要求1所述的方法,該方法還包括: 從該磁盤存儲系統(tǒng)中的該緩沖超擦除單元里讀出最后至少兩個同位頁的其中一同位頁; 根據(jù)該其中一同位頁里的信息,重建該磁盤存儲系統(tǒng)中的該主超擦除單元里的部份條帶; 從該主超擦除單元里讀出至少一全條帶的每一全條帶里的同位頁;以及 根據(jù)該每一全條帶里的該同位頁里的信息,重建該至少一全條帶的每一全條帶。
11.一種數(shù)據(jù)存儲與重建的方法,應用于磁盤存儲系統(tǒng),該方法包括: 接收輸入/輸出命令后,利用累積的多個頁,算出同位; 根據(jù)該同位,決定條帶是否滿了 ; 當該條帶是滿的時,存儲該同位與該多個頁的每一頁的數(shù)據(jù)于指定的條帶,其中該同位做為辨識條帶的結尾; 當該條帶未滿時,存儲該同位;以及 當還有至少一輸入/輸出命令時,返回此接收輸入/輸出命令后,利用累積的多個頁,算出同位的步驟。
12.如權利要求11所述的方法,其中該多個頁的每一頁的備用區(qū)存儲旗標,來指出該頁是存同位或是存數(shù)據(jù)。
13.如權利要求11所述的方法,其中該方法還包括: 使用磁盤存儲系統(tǒng)中的超擦除單元中的元數(shù)據(jù)區(qū)來存儲該多個頁的每一頁各自對應的邏輯頁號碼與同位信息。
14.如權利要求11所述的方法,其中該條帶的大小是可變的,并且截斷全條帶決定于該輸入/輸出命令的至少一狀態(tài)。
15.如權利要求11所述的方法,其中該條帶的大小是可變的,并且截斷全條帶決定于磁盤存儲系統(tǒng)中的多個磁盤的磁盤個數(shù)。
16.如權利要求13所述的方法,其中該超擦除單元是從多個回收的M個超擦除單元(SEUs)中,挑選出不會局限在同一條帶中N個的SEUs來組成,M與N皆為大于I的正整數(shù)且M大于等于N。
17.如權利要求11所述的方法,該方法還包括: 對于元數(shù)據(jù)區(qū)中的多個同位頁的每一對前后相鄰的同位頁,檢查相對應的同位距離是否大于等于該磁盤存儲系統(tǒng)中多個磁盤的的磁盤個數(shù); 當該同位距離大于等于該磁盤個數(shù)時,判定損毀頁為同位頁并且設定其同位信息為同位值; 當該同位距離小于此磁盤個數(shù)時,從上一條帶的結尾做XOR重建;` 當該XOR重建的結果為O時,判定該損毀頁為同位頁并且設定其同位信息為同位值;以及 當該XOR重建的結果不是O時,判定該損毀頁為數(shù)據(jù)頁并且設定其同位信息為非同位值。
18.如權利要求17所述的方法,其中該方法還包括: 掃描超擦除單元中的該元數(shù)據(jù)區(qū)來決定出該元數(shù)據(jù)區(qū)中的該多個同位頁;以及 計算該多個同位頁的每對同位頁相對應的該同位距離。
19.一種數(shù)據(jù)存儲與重建的系統(tǒng),包括: 處理器,根據(jù)同位,決定輸入/輸出命令對應的最后條帶是否為全條帶; 主超擦除單元,配置于磁盤存儲系統(tǒng)中,并且當該最后條帶為全條帶時,用來存儲該輸入/輸出命令所對應的多筆數(shù)據(jù)與同位;以及 緩沖超擦除單元,配置于該磁盤存儲系統(tǒng)中,并且當該最后條帶不是全條帶時,經(jīng)由該處理器重新計算的最后的同位,將該最后的同位重復寫入于該緩沖超擦除單元中的至少兩個同位頁; 其中該處理器還執(zhí)行該磁盤存儲系統(tǒng)中失敗的至少一磁盤的多筆數(shù)據(jù)的重建。
20.如權利要求19所述的系統(tǒng),其中該至少一磁盤的多筆數(shù)據(jù)的重建還包括: 從該緩沖超擦除單元里讀出該最后至少兩個同位頁的其中一同位頁; 根據(jù)該其中一同位頁里的信息,重建該磁盤存儲系統(tǒng)中的該主超擦除單元里的部份條帶; 從該主超擦除單元里讀出該至少一全條帶的每一全條帶里的同位頁;以及 根據(jù)每一全條帶里的該同位頁里的信息,重建此至少一全條帶的每一全條帶。
21.一種數(shù)據(jù)存儲與重建的系統(tǒng),包括: 處理器,根據(jù)輸入/輸出命令,經(jīng)由累積的多個頁,算出同位,并且根據(jù)該同位,決定條帶是否滿了; 主超擦除單元,配置于磁盤存儲系統(tǒng)中,用來存儲此同位與此多個頁的每一頁的數(shù)據(jù)于指定的條帶,此同位做為辨識此條帶的結尾;以及 元數(shù)據(jù)區(qū),配置于該磁盤存儲系統(tǒng)中的超擦除單元中,用來存儲該多個頁的每一頁各自對應的邏輯頁號碼與同位信息; 其中該處理器還執(zhí)行該磁盤存儲系統(tǒng)中失敗的至少一磁盤的多筆數(shù)據(jù)的重建。
22.如權利要求21所述的系統(tǒng),其中該至少一磁盤的多筆數(shù)據(jù)的重建還包括: 對于該元數(shù)據(jù)區(qū)中的多個同位頁的每一對前后相鄰的同位頁,檢查相對應的同位距離是否大于等于該磁盤存儲系統(tǒng)中多個磁盤的的磁盤個數(shù); 當該同位距離小于該磁盤個數(shù)時,從上一條帶的結尾做XOR重建; 當該XOR重建的結果為O時,判定該損毀頁為同位頁并且設定其同位信息為同位值;以及 當該XOR重建的結果不是O時,判定該損毀頁為數(shù)據(jù)頁并且設定其同位信息為非同位值。
23.如權利要 求22所述的系統(tǒng),其中該條帶的大小是可變的,并且截斷全條帶決定于該輸入/輸出命令的至少一狀態(tài)。
24.如權利要求22所述的系統(tǒng),其中該條帶的大小是可變的,并且截斷全條帶決定于該磁盤存儲系統(tǒng)中的多個磁盤的磁盤個數(shù)。
25.如權利要求21所述的系統(tǒng),其中該每一頁的備用區(qū)存儲旗標,來指出此頁是存同位或是數(shù)據(jù)。
【文檔編號】G06F11/08GK103870352SQ201210566493
【公開日】2014年6月18日 申請日期:2012年12月24日 優(yōu)先權日:2012年12月10日
【發(fā)明者】孫厚強, 張安男, 簡廷芳, 曹世強, 姜琦凡, 闕志克 申請人:財團法人工業(yè)技術研究院
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
绍兴县| 衡阳市| 崇信县| 寻乌县| 鸡西市| 汾阳市| 林芝县| 上虞市| 南平市| 阿拉尔市| 西平县| 宾阳县| 治县。| 开封县| 镇平县| 海安县| 新和县| 玉山县| 探索| 宁德市| 稻城县| 浮山县| 房产| 定南县| 临邑县| 东兴市| 新疆| 吉木萨尔县| 大城县| 广南县| 边坝县| 定边县| 德令哈市| 山东| 兴山县| 容城县| 苏州市| 武穴市| 邵阳市| 昭觉县| 博罗县|