TWI461901B - 資料儲存與重建的方法與系統 - Google Patents

資料儲存與重建的方法與系統 Download PDF

Info

Publication number
TWI461901B
TWI461901B TW101146408A TW101146408A TWI461901B TW I461901 B TWI461901 B TW I461901B TW 101146408 A TW101146408 A TW 101146408A TW 101146408 A TW101146408 A TW 101146408A TW I461901 B TWI461901 B TW I461901B
Authority
TW
Taiwan
Prior art keywords
strip
page
data
pages
parity
Prior art date
Application number
TW101146408A
Other languages
English (en)
Other versions
TW201423376A (zh
Inventor
Hou Chiang Sun
An Nan Chang
Ting Fang Chien
Shih Chiang Tsao
Chyi Fan Jhun
Tzi Cker Chiueh
Original Assignee
Ind Tech Res Inst
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Ind Tech Res Inst filed Critical Ind Tech Res Inst
Priority to TW101146408A priority Critical patent/TWI461901B/zh
Priority to US13/719,759 priority patent/US9063869B2/en
Priority to CN201210566493.6A priority patent/CN103870352B/zh
Publication of TW201423376A publication Critical patent/TW201423376A/zh
Application granted granted Critical
Publication of TWI461901B publication Critical patent/TWI461901B/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1076Parity data used in redundant arrays of independent storages, e.g. in RAID systems
    • G06F11/1088Reconstruction on already foreseen single or plurality of spare disks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Description

資料儲存與重建的方法與系統
本揭露係關於一種資料儲存與重建(rebuilding)的方法與系統。
獨立磁碟冗餘陣列(Redundant Array of Independent Disks,RAID)是一種結合硬體與軟體來強化容錯(fault tolerance)能力與性能(performance)的技術。當某磁碟失敗(disk failure)時,例如發生故障或損毀,常用來儲存與保護資料。此技術把多塊相對便宜的磁碟組合起來,成為一軟碟陣列組,使性能達到甚至超過一個價格昂貴的容量巨大的磁碟。此技術能夠在橫跨每一磁碟時,節省資料與相對應的同位元(parity)。保護條帶(protection stripe)包含來自不同磁碟的一系列的頁(page),頁是每一磁碟的資料儲存單位。條帶大小(stripe size)定義為一磁碟陣列(disk array)中磁碟的個數(number of disk drives)。此技術通常利用輪詢(round-robin)方式來確保每一條帶已平均分散至每一磁碟。
將同位元區塊(parity block)加入於一組來源位元(source bits)中可確保輸出結果(outcome)的設定位元(set bits)的個數為偶數或是奇數,而設定位元的個數也就是值為1的位元的個數。一錯誤修正碼(Error Correction Code,ECC或稱parity)模組可使用至少一錯誤修正或錯誤偵測 碼,例如Reed-Solomon(RS)碼、循環冗餘檢驗(Cyclic Redundancy Check,CRC)碼等。
在RAID的結構中,當某一磁碟出現故障時,每一條帶上的資料,可使用硬體來檢查分散於各磁碟上的ECC/同位元,其它磁碟可以透過這些分散的ECC/同位元的校驗,將故障的磁碟所儲存的資料重新恢復出來。RAID5是RAID的一系列技術的其中一種。RAID5使用至少三塊磁碟配置。第一圖是RAID5之配置的一範例示意圖。如第一圖的範例所示,RAID5將所有ECC,分別以條帶式地儲存在每一磁碟上,並且每一磁碟在不同頁儲存不同資料,每一磁碟也各儲存一對應的ECC。每一條帶包含來自N-1個不同磁碟的不同資料,以及其餘一個磁碟的ECC,N是條帶大小,也就是一條帶中磁碟的個數,本例中,N等於4。當某一磁碟出現故障時,其它磁碟可以透過ECC的校驗,將故障的磁碟所儲存的資料重新恢復出來。在RAID5中,由於所有的ECC要使用一磁碟的容量作為校驗使用,所以實際可以使用的磁碟容量為N-1。
在一條帶上,將資料分散在陣列的每一磁碟上時,若此條帶具有最大的被允許的(allowed)資料儲存容量時,此類型的條帶被定義為全條帶(full stripe)。也就是說,全條帶是使用最大的被允許的磁碟個數所構成的一條帶。所以,全條帶的寫入效能(write performance)高,亦即速度很快。另一種類型的條帶是部份填入式條帶(partially filled stripe),此部份填入式條帶的資料儲存容量小於條帶大小。部份填入式條帶在隨機存取頻繁時,其寫入效能低,如第二圖的範例所示。當收到一輸入/輸出命令(I/O command)時,從一磁碟中讀出資料1及該磁碟儲存的ECC至一記憶體,例如一隨機存取記憶體(RAM),然後第二圖中的部份填入式條帶需要重新記算新的ECC後,再將資料1寫回至該磁碟的同一位置。當RAM的空間不夠且隨機存取頻繁時,會增加寫入的工作負荷(write workload),而降低寫入效能低。
有一種在RAID系統中記憶體備份(memory backup)的技術如第三圖所示。此技術提供一揮發性(volatile)記憶體324與一非揮發性(non-volatile)記憶體358給一RAID系統。此RAID系統利用一RAID控制器312來偵測出主要電源供應(main power supply)失敗(failure)。當RAID控制器312偵測出主要電源供應(main power supply)失敗時,暫時電源供應354則供應暫時電源(temporary power)給揮發性(volatile)記憶體324,讓RAID控制器312將資料從揮發性記憶體324傳送到非揮發性記憶體358。也就是說,此技術在RAID系統中提供揮發性記憶體及額外的電源供應來進行資料備份。
在上述之資料保護的技術中,當處理部份填入式條帶的資料時,會遇到的挑戰是,如何確保能妥善保存條帶的資料以及得以成功重建條帶的資料,並且如何確保資料與 ECC/同位元均等分配至每一磁碟。因此,如何在條帶的架構下設計一種資料儲存與重建的技術,將會是重要的議題之一。
本揭露實施例提供一種資料儲存與重建的方法與系統。
本揭露的一實施例是關於一種資料儲存與重建的方法,適應於一磁碟儲存系統。此方法可包含:接收一輸入/輸出命令後,算出其對應的一同位元;根據此同位元,決定此輸入/輸出命令所對應的一最後條帶(last stripe)是否為一全條帶;當此最後條帶是為一全條帶時,儲存此輸入/輸出命令所對應的多筆資料與一同位元於此磁碟儲存系統中的一主晉級擦除單元(main Hyper Erase Unit,main HEU);以及當此最後條帶不是一全條帶時,重新計算一最後的同位元,並且將此最後的同位元重複寫入一緩衝晉級擦除單元(buffering HEU)中的至少兩同位元頁。
本揭露的另一實施例是關於一種資料儲存與重建的方法,適應於一磁碟儲存系統。此方法可包含:接收一輸入/輸出命令後,利用累積的多個頁,算出一同位元;根據此同位元,決定一條帶是否滿了;當此條帶是滿的時,儲存此同位元與此多個頁的每一頁的資料於一指定的條帶,其中此同位元做為辨識一條帶的結尾;當此條帶是未滿時,儲存 此同位元;以及當還有至少一輸入/輸出命令時,返回此接收一輸入/輸出命令後,利用累積的多個頁,算出一同位元的步驟。
本揭露的又一實施例是關於一種資料儲存與重建的系統,可包含:一處理器(processor),根據一同位元,決定一輸入/輸出命令對應的一最後條帶是否為一全條帶;一主晉級擦除單元,配置於此磁碟儲存系統中,並且當該最後條帶是為一全條帶時,用來儲存此輸入/輸出命令所對應的多筆資料與一同位元;以及一緩衝晉級擦除單元,配置於此磁碟儲存系統中,並且當此最後條帶不是一全條帶時,經由此處理器重新計算的一最後的同位元,將此最後的同位元重複寫入於此緩衝晉級擦除單元中的至少兩同位元頁;其中此處理器還執行該磁碟儲存系統中失敗的至少一磁碟之多筆資料的重建。
本揭露的又一實施例是關於一種資料儲存與重建的系統可包含:一處理器,根據一輸入/輸出命令,經由累積的多個頁,算出一同位元,並且根據此同位元,決定一條帶是否滿了;一主晉級擦除單元,配置於此磁碟儲存系統中,用來儲存此同位元與此多個頁的每一頁的資料於一指定的條帶,此同位元做為辨識此條帶的結尾;以及一詮釋資料區,配置於一磁碟儲存系統中的一晉級擦除單元中,用來儲存該多個頁的每一頁各自對應的一邏輯頁號碼與一同位元資訊;其中此處理器還執行此磁碟儲存系統中失敗 的至少一磁碟之多筆資料的重建。
茲配合下列圖示、實施例之詳細說明及申請專利範圍,將上述及本發明之其他優點詳述於後。
本揭露實施例之資料儲存與重建的技術是先建立一轉譯層(translation layer),使邏輯頁號碼(Logical Page Number,LPN)能將輸入/輸出命令轉譯為實體頁號碼(Physical Page Number,PPN),來管理儲存裝置的全部的存取位址,並且使用條帶來作為保護與重建資料的單位,使用新的技術來記錄條帶的LPN同位元與其同位元,以及採用日誌(log)與詮釋資料(metadata)來記錄重建資訊。建立轉譯層之前,本揭露實施例先說明每一磁碟的資料儲存單位(頁)的存入格式,以及一超擦除單元(Super Erase Unit,SEU)的存入格式。
在本揭露中,每一頁分做兩部份,一部份是資料區(data area),另一部份是備用區(spare area)。每一超級擦除單元(Super Erase Unit,SEU)包含多個頁以及一結尾。此結尾是一詮釋資料區。此詮釋資料區記錄在同一個SEU內,前數個頁的LPN以及各個頁對應的同位元資訊(Parity Information,PI)。換句話說,前數個頁的備用區的資訊集中在此詮釋資料區)。第四圖是根據本揭露一實施例,說明一SEU的存入格式。在第四圖的範例中,一SEU有四 個頁與一詮釋資料區。將SEU放大來說明,一SEU 400包括四個頁(分別為頁411至頁414)以及一詮釋資料區420。其中每一頁包括一資料區以及一備用區,例如,頁411包括一資料區(內含資料0)以及一備用區(記錄頁411的LPN(即LPN0)以及同位元資訊P10)。也就是說,頁411包括資料0、LPN0、以及P10。依此類推,詮釋資料區420記錄頁411至頁414的各個頁各自對應的LPN(即LPN0至LPN3)以及同位元資訊(即P10至P13)。當同位元資訊被寫入於詮釋資料區420時,此同位元資訊例如是,但不限定於,一旗標(flag)且用來決定是否資料或同位元被寫入。
第五圖是根據本揭露一實施例,說明一轉譯層將一輸入/輸出命令轉譯為實體頁號碼(Physical Page Number,PPN)。在第五圖的範例中,轉譯層500接收到一輸入/輸出命令,例如一命令佇列(command queue)510,將命令佇列510從存取的邏輯位置,例如LPN11、LPN2、LPN8,轉譯成數個磁碟中的存取的位置,本例中記為實體頁號碼,例如磁碟0的頁3、頁9、頁12、及頁18,磁碟1的頁4、頁10、頁13、及頁19,磁碟2的頁5、頁11、頁14、及頁20。
從第五圖的範例可看出,命令佇列510存取的邏輯位置轉譯後的數個磁碟中的存取的位置均等地分散至N-1個不同的磁碟(此範例中,N等於4)。也就是說,將四個 條帶的每一條帶的資料分散在三個不同的磁碟(磁碟0至磁碟2)上,並且每一條帶的結尾儲存各自的一同位元資訊,且儲存在另外一磁碟(磁碟3)上。例如,條帶3的資料(頁9至頁11)分散至三個不同的磁碟(磁碟0至磁碟2),並且條帶3的結尾儲存一同位元資訊,且儲存在磁碟3。所以,每一條帶使用三個(即N-1,N等於4)資料頁(data page),並且每一條帶的結尾使用一個同位元頁(parity page)來儲存一同位元資訊。
依此,根據本揭露一實施例,定義一晉級擦除單元(Hyper Erase Unit,HEU)是由多個SEUs所組成的,並且確保由此多個SEUs所形成的多個全條帶的每一全條帶分散式地跨越在N-1個不同的磁碟,並且每一條帶的結尾儲存一同位元資訊,以辨認出一個條帶的結尾,其中N是此HEU所使用的磁碟的個數。第五圖的範例中,HEU 520可由八個SEUs組成,此八個SEUs所形成的多個條帶其每一全條帶所儲存的資料分散式地跨越在磁碟0至磁碟2上,並且每一全條帶其結尾的同位元資訊儲存在磁碟3。
所以,利用一特定的分配順序,如輪詢方式,本揭露實施例可將一輸入/輸出命令從存取的邏輯位置均等地分配至數個磁碟。並且,這些條帶可填入一HEU。選擇多個SEUs來組成一HEU也可符合在磁碟中的耗損平均(wear leveling)的原則。此耗損平均的原則是將每一區塊的磨損狀況平均化。以下說明本揭露實施例在收到一輸入/ 輸出命令(命令)時,如何處理部份填入式條帶的資料。此處理根據條帶大小可分為兩種情況,一種是固定的條帶大小(fixed stripe size)的情況,另一種是動態的(dynamic)條帶大小的情況。
在固定的條帶大小的情況時,第六圖是根據本揭露一實施例,說明適應於一磁碟儲存系統的一種資料儲存與重建方法的運作流程。參考第六圖,此方法接收一輸入/輸出命令(步驟610)後,可根據多筆累積的資料頁,算出其對應的一同位元(步驟615)。根據此同位元資訊,決定此輸入/輸出命令所對應的一最後條帶是否為一全條帶(步驟620)。當此最後條帶是為一全條帶時(步驟620,是),此方法儲存此輸入/輸出命令所對應的多筆資料與一同位元於一磁碟儲存系統中的一主晉級擦除單元(main HEU)(步驟630)。當此最後條帶不是一全條帶時(步驟620,否),此方法可根據舊的資料與新收到的資料,重新計算一最後的同位元(final parity)(步驟622),並且將此最後的同位元(parity page)重複寫入一緩衝晉級擦除單元(buffering HEU)中的至少兩同位元頁(步驟624)。當不再有輸入/輸出命令時,此方法結束此流程;當還有輸入/輸出命令時,此方法返回步驟610。
在步驟624中,將此最後的同位元存入此緩衝晉級擦除單元中的至少兩同位元頁可採用多種方式來實現。例如是,但不限定於,將此最後的同位元重複寫入此緩衝晉級 擦除單元中連續的頁、或是以一實體對應(physical mapping)方式如以邏輯閘(logic gate)等方式,來將此最後的同位元重複寫入於此緩衝晉級擦除單元中的至少兩同位元頁。如此,此至少兩同位元頁可避免被儲存在同一磁碟中。在步驟630中,該同位元指出該最後條帶是否為一全條帶。此磁碟儲存系統例如是,但不限定於一RAID系統。
在第六圖的資料儲存方法中,此方法還可包括從多個候選超級擦除單元(SEU candidates)中選出該緩衝晉級擦除單元。候選超級擦除單元是由使用過的超級擦除單元進行回收,能夠回收的條件就是這些SEUs上的各個擦除單元(Erase Unit,EU)已經重新指派到別的SEU上的EU,導致這些SEU上的EU已經是無效的(invalid),回收過後的SEU就是候選超級擦除單元。從各個候選超級擦除單元挑選組成為晉級擦除單元(HEU)的條件就是此候選超級擦除單元必須來自各個不同的磁碟上。挑選的方式很多,例如,第一種方式,將回收得的候選超級擦除單元依序放入每個磁碟的佇列當中,依放入順序從每個佇列最早放入的候選超級擦除單元挑出。第二種方式,將每個SEU使用過的次數統計起來,由使用次數比較少的SEUs先挑選。
如之前所述,在本揭露中,每一頁分為一資料區,以及一備用區。承上述,第七A圖是根據本揭露一實施例,說明第六圖中的主晉級擦除單元的頁的儲存格式;以及第 七B圖是根據本揭露一實施例,說明第六圖中的緩衝晉級擦除單元的同位元頁的儲存格式。在第七A圖的範例中,一主晉級擦除單元710中有兩種類型的頁,其中一種是資料頁(data page),以d表示;另一種是同位元頁(parity page),以P表示。在第七A圖中,主晉級擦除單元裡的資料頁,其資料區就是儲存資料(data),其備用區儲存邏輯頁號碼(LPN)。在第七A圖中,主晉級擦除單元裡的同位元頁(即全條帶的情況)的資料區就是儲存資料的同位元;而其備用區儲存的是LPN的同位元,以重建LPN的資訊。主晉級擦除單元710有三個條帶,其中兩個是全條帶711與712,最後一個是部分條帶(partial stripe)713。
在第七B圖中,一緩衝晉級擦除單元720的一同位元頁730,其資料區732用來儲存主晉級擦除單元710裡部分條帶713之資料的同位元p;其備用區734存有兩資訊,其中一資訊是LPN的同位元,以重建LPN的資訊;而另一資訊是實體頁號碼(PPN)。用實體位置連續寫入的特性,每一位置編號會不斷增長,所以,可利用此PPN來判斷哪一個是比較新的同位元頁。當同位元被寫入時,LPN的同位元以及PPN也會被寫入,如此,可以找到在緩衝晉級擦除單元720裡的條帶。
承上述,在固定的條帶大小的情況下,第八圖是根據本揭露一實施例,說明適應於一磁碟儲存系統的一種資料重建方法的運作流程。參考第八圖,此方法先從該磁碟儲 存系統中的一緩衝晉級擦除單元裡讀出最後至少兩同位元頁的其中一同位元頁(步驟810),並且根據此其中一同位元頁裡的資訊,重建此磁碟儲存系統中的一主晉級擦除單元裡的一部份條帶(步驟820);然後從該主晉級擦除單元裡讀出至少一全條帶的每一全條帶裡的一同位元頁(步驟830),並且根據每一全條帶裡的該同位元頁裡的資訊,重建此至少一全條帶的每一全條帶(步驟840)。此部份條帶與全條帶的儲存格式的範例已載述如第七A圖中主晉級擦除單元的儲存格式,此處不再重述。緩衝晉級擦除單元裡一同位元頁的儲存格式的範例已載述如第七B圖中的同位元頁的儲存格式,此處也不再重述。
在動態的條帶大小的情況時,本揭露一實施例之資料儲存技術是,定義同位元資訊來判斷一晉級擦除單元(HEU)中各個頁所存的類型是資料或是同位元(的旗標),並且定義同位元距離(Parity Distance,PD)為連續兩個同位元頁(parity page)的間隔。當一晉級擦除單元(HEU)中的頁所存的類型是資料時,此頁的資料區就是存資料,此頁的備用區儲存LPN和PI(其PI值設定為0)。以同位元頁作為一條帶的結尾。當一晉級擦除單元(HEU)中的頁所存的類型是同位元時,此同位元頁的資料區就是存條帶裡資料的同位元,此同位元頁的備用區儲存LPN的同位元和和PI(其PI值設定為1)。PI可用一位元旗標(1-bit flag)來實現。
在動態的條帶大小的情況時,本揭露另一實施例之資 料儲存技術是,定義如第四圖的SEU的存入格式,並且藉由前述SEU之詮釋資料區的輔助,來存取資料或同位元,因為SEU之數個頁的備用區裡的資訊皆集中在此詮釋資料區。例如利用此詮釋資料區來存取復原所需的資訊如LPN、有效頁(valid page)等。第九圖是根據本揭露一實施例,說明在動態的條帶大小的情況時,適應於一磁碟儲存系統的一種資料儲存方法的運作流程。參考第九圖,此方法接收一輸入/輸出命令(步驟910)後,利用累積的多個頁,算出一同位元(步驟915);根據此同位元,決定一條帶是否滿了(步驟920);當此條帶是滿的(步驟920,是)時,則將此同位元以及此多個頁的每一頁的資料儲存於一指定的條帶(步驟925)。當此條帶是未滿(步驟920,否)時,則儲存此同位元(步驟930)。當還有輸入/輸出命令時,此方法返回步驟910;當不再有輸入/輸出命令時,此方法結束此流程。其中此同位元做為辨識條帶的結尾,並且此多個頁的每一頁的一備用區儲存一旗標,以指出此頁是存同位元或是資料。
如第十圖的範例所示,根據本揭露又一實施例的資料儲存與重建方法可額外使用詮釋資料區1010來儲存多個頁的每一頁各自對應的一LPN與一同位元資訊。如之前所述,一晉級擦除單元(HEU)1000由多個挑選出的SEUs所組成,每一SEU內寫入多個頁後,會出現一詮釋資料1020,作為此SEU的結尾。所以晉級擦除單元(HEU)1000會有一對應的詮釋資料區1010。詮釋資料1020紀錄在同 一SEU內,前數個頁的LPN以及各個頁對應的同位元資訊(PI)。也就是說,詮釋資料1020把在同一SEU內前數個頁的備用區的資訊集中在此區。此同位元資訊可以是一旗標。所以,此資料儲存方法於收到資料時,將資料(記為d)存入一條帶中的頁裡,直到一輸入/輸出佇列滿了時,根據此條帶的多個頁,計算一同位元(記為P),然後將此條帶的此多個頁的LPN的同位元(如標號1024所示)以及此條帶的同位元資訊(例如旗標1022)寫入一詮釋資料區,直到處理至所有收到資料的尾端為止。
在條帶的大小是可變的情況下,截斷(truncate)一全條帶可分兩種情況。一種情況例如是,截斷一全條帶取決於一當前的輸入/輸出命令的狀態。當已收完一輸入/輸出命令且接收器也處於閒置(idle)時,表示基於此輸入/輸出命令的一輸入/輸出佇列中的資料已送完,此時就可使用一同位元P做為一部分條帶的結尾,並且串起此部分條帶。也就是說,此種情況下,條帶的大小不是固定的,而是與一當前的輸入/輸出命令的狀態有關,所以是動態的。另一種情況例如是,當累積的資料頁(accumulated data page)的數目大於等於N-1,N為磁碟個數,且從前面累積的N-1個資料頁算出一同位元時,則根據本揭露實施例,會在一配置的全條帶中儲存此N-1個資料頁以及此同位元。也就是說,截斷一全條帶取決於一磁碟儲存系統中的多個磁碟的磁碟個數N。如前所述,一同位元頁儲存的同位元被用來辨識一條帶的結尾。
本揭露實施例不僅不會重寫舊資料於實體位址中,也會避免將資料寫入於磁碟中不良的區塊(bad block)裡。根據本揭露一實施例,如第十一圖所示,在組成一新的晉級擦除單元(HEU)1100時,從多個回收的(recycled)SEUs中,被挑選出的SEUs,不會局限在同一條帶中。例如,新的晉級擦除單元(HEU)1100中,從多個回收的(recycled)SEUs中被挑選出的SEUs是磁碟0中的SEU3 、磁碟1中的SEU5 、磁碟2中的SEU2 、磁碟3中的SEU7 、以及磁碟4中的SEU4 。其中如SEU3 與SEU5 的實體位址不是來自兩連續相鄰的區塊位址。如此可避免將資料寫入於磁碟中不良的區塊裡。
磁碟發生失敗及重建磁碟中毀損的頁有多種方式。第十二A圖是幾種在一磁碟中發生失敗的範例。情況一是,此磁碟發生資料頁毀損(broken);情況二是,此磁碟發生同位元頁毀損;情況三是,此磁碟發生的毀損頁,其不在同一條帶上的兩鄰近的同位元頁,如同位元頁1231與同位元頁1232,的距離大於N-1。如前所述,本揭露實施例可根據儲存於詮釋資料區的同位元資訊如旗標(flag),可判定出一失敗頁(failed page)的類型是資料或是同位元。而根據同位元頁的距離可判定出情況三。第十二B圖是根據本揭露另一實施例,判定第十二A圖中三種磁碟中發生失敗的情況的方式。如第十二B圖所示,當一同位元的距離大於N-1時(步驟1210,是),則判定是情況三。當同位元的 距離小於等於N-1時(步驟1210,否),則再檢查毀損頁(broken page)是否為資料(步驟1220)。當毀損頁是為資料時(步驟1220,是),則判定是情況一。當毀損頁不是資料時(步驟1220,否),則判定是情況二。
承上述,第十三圖是根據本揭露一實施例,說明在條帶的大小是可變的情況下,適應於一磁碟儲存系統的一種資料重建方法的運作流程。首先此方法1300對於一詮釋資料區中的多個同位元頁的每一對前後相鄰的同位元頁(parity pages),檢查一相對應的同位元距離是大於N-1嗎?(步驟1310)。當此同位元距離是大於N-1時(步驟1310,是),即情況三,則判定一毀損頁為一同位元頁並且設定其同位元資訊為一同位元值(parity value)(步驟1320),此同位元值例如是,但不限定於,1。當此同位元距離是小於等於N-1時(步驟1310,否),從上一條帶(a last stripe)的結尾做一XOR重建(步驟1330)。當此XOR重建的結果為0時,即情況二,進行步驟1320。當此XOR重建的結果不是0時,即情況一,判定此毀損頁為一資料頁並且設定其同位元資訊為一非同位元值(non-parity value)(步驟1335),此非同位元值例如是,但不限定於,0。如此,此資料重建方法不僅可以算回正確的資料,也可以重新標記回正確的同位元資訊。如前所述,此同位元資訊可用1-位元旗標(1-bit flag)來實現。
根據本揭露實施例,此XOR重建的定義是,針對XOR 運算出各個同位元時的步驟進行反運算,而一般的XOR是對兩個數值進行位元互斥(Bitwise Exclusion)的運算。舉例來說,當資料1(值為1)XOR資料2(值為0)得到同位元(值為1);當由同位元和資料1進行XOR重建時,則可得資料1(值為1);當由同位元和資料2進行XOR重建時,則可得資料2(值為0)。當將一整個條帶上的資料和同位元進行XOR重建時,以上例而言,1 XOR 0 XOR 1得到的值為0。
在步驟1310之前,方法1300可先掃描一晉級擦除單元(HEU)中的一詮釋資料區來決定出此詮釋資料區中的多個同位元頁,再計算此多個同位元頁的每對同位元頁所對應的一同位元距離;然後執行第十三圖的的運作流程,直到此晉級擦除單元(HEU)中所有的毀損頁被重建為止。承上述,當毀損頁是資料(情況一)時,可藉由一條帶結尾的同位元來重建此毀損的資料頁。當毀損頁是情況二時,可藉由上一條帶的同位元來重建此上一條帶,並且可藉由此上一條帶重建的資料來重建其同位元。當毀損頁是情況三時,因為毀損頁是介於其它兩同位元頁之間並且也是儲存同位元,所以在其中間的同位元頁可由同一條帶中其前面至少一資料頁來重建。
承上述,根據本揭露一實施例的一資料儲存與重建的系統可包含一處理器,根據一同位元,決定一輸入/輸出命令對應的一最後條帶是否為一全條帶;一主晉級擦除單 元,配置於此磁碟儲存系統中,並且當該最後條帶是為一全條帶時,用來儲存此輸入/輸出命令所對應的多筆資料與一同位元;以及一緩衝晉級擦除單元,配置於此磁碟儲存系統中,並且當此最後條帶不是一全條帶時,經由此處理器重新計算的一最後的同位元,將此最後的同位元重複寫入於此緩衝晉級擦除單元中的至少兩同位元頁。
此處理器還可執行此磁碟儲存系統中失敗的至少一磁碟之多筆資料的重建,包括從該緩衝晉級擦除單元裡讀出最後至少兩同位元頁的其中一同位元頁;根據此其中一同位元頁裡的資訊,重建此磁碟儲存系統中的該主晉級擦除單元裡的一部份條帶;從該主晉級擦除單元裡讀出至少一全條帶的每一全條帶裡的一同位元頁;以及根據每一全條帶裡的該同位元頁裡的資訊,重建此至少一全條帶的每一全條帶。
主晉級擦除單元的頁的儲存格式以及緩衝晉級擦除單元的同位元頁的儲存格式如前述第七A圖、第七B圖、以及本揭露其他實施例所載,此處不再重述。此處理器處理資料儲存與重建的細節如前述本揭露其他實施例所載,此處也不再重述。
根據本揭露另一實施例的一資料儲存與重建的系統可包含一處理器,根據一輸入/輸出命令,經由累積的多個頁,算出一同位元,並且根據此同位元,決定一條帶是否 滿了;一主晉級擦除單元,配置於此磁碟儲存系統中,用來儲存此同位元與此多個頁的每一頁的資料於一指定的條帶,此同位元做為辨識此條帶的結尾;以及一詮釋資料區,配置於一磁碟儲存系統中的一晉級擦除單元中,用來儲存該多個頁的每一頁各自對應的一邏輯頁號碼與一同位元資訊。此處理器還執行此磁碟儲存系統中失敗的至少一磁碟之多筆資料的重建,如第十三圖中所載,此處不再重述。詮釋資料區中的儲存格式如前述本揭露其他實施例所載,此處也不再重述。此實施例中,條帶的大小是可變的,並且如前述所載,截斷一全條帶可決定於該輸入/輸出命令的至少一狀態、或是決定於此磁碟儲存系統中的多個磁碟的磁碟個數,其細節也不再重述。
承上述,本揭露實施例之資料儲存與重建的技術是。此資料儲存與重建技術可應用在如具有高速存取(high speed access)與資料保護(data protection)特色的雲端儲存系統(cloud storage system),例如獨立磁碟冗餘陣列(RAID)系統等。
綜上所述,本揭露實施例提供一種磁碟毀損後的資料儲存與重建的方法與系統。其技術使用條帶來作為保護與重建資料的單位。當條帶是固定的大小時,使用一部分條帶(partial stripe)中的資料來重新計算一最後的同位元,並且將此最後的同位元重複寫入一緩衝晉級擦除單元中的至少兩同位元頁;在資料重建時,從該緩衝晉級擦除單元中 的此至少兩同位元頁的其中一頁讀出此最後的同位元,來並依此來重建部分條帶。當條帶是可變的大小時,使用一詮釋資料區,配置於一晉級擦除單元中,並且用來儲存該多個頁的每一頁各自對應的一邏輯頁號碼與一同位元資訊,以及每一頁的一備用區儲存一同位元資訊,來指出此頁是存同位元或是資料;在資料重建時,藉由檢查此詮釋資料區中的每一對前後相鄰的同位元頁的一相對應的同位元距離是否大於等於該磁碟儲存系統中的磁碟個數,以及根據一XOR計算的結果來重建同位元頁或是資料料。
以上所述者僅為本揭露實施例,當不能依此限定本揭露實施之範圍。即舉凡本發明申請專利範圍所作之均等變化與修飾,皆應仍屬本發明專利涵蓋之範圍。
324‧‧‧揮發性記憶體
358‧‧‧非揮發性記憶體
312‧‧‧RAID控制器
354‧‧‧暫時電源供應
400‧‧‧超擦除單元
411至414‧‧‧頁
420‧‧‧詮釋資料區
LPN0至LPN3‧‧‧頁的邏輯頁號碼
PI0至PI3‧‧‧頁的同位元資訊
500‧‧‧轉譯層
510‧‧‧命令佇列
LPN‧‧‧邏輯頁號碼
610‧‧‧接收一輸入/輸出命令
615‧‧‧算出其對應的一同位元
620‧‧‧決定此輸入/輸出命令所對應的一最後條帶是否為一全條帶
622‧‧‧重新計算一最後的同位元
624‧‧‧將此最後的同位元重複寫入一緩衝晉級擦除單元中的至少兩同位元頁
630‧‧‧儲存此輸入/輸出命令所對應的多筆資料與一同位元於一磁碟儲存子系統中的一主晉級擦除單元
710‧‧‧主晉級擦除單元
720‧‧‧緩衝晉級擦除單元
711、712‧‧‧全條帶
713‧‧‧部分條帶
730‧‧‧同位元頁
732‧‧‧資料區
734‧‧‧備用區
810‧‧‧從一緩衝晉級擦除單元裡讀出最後至少兩同位元頁的其中一同位元頁
820‧‧‧根據此其中一同位元頁裡的資訊,重建一磁碟儲存系統中的一主晉級擦除單元裡的一部份條帶
830‧‧‧從該主晉級擦除單元裡讀出至少一全條帶的每一全條帶裡的一同位元頁
840‧‧‧根據每一全條帶裡的該同位元頁裡的資訊,重建此至少一全條帶的每一全條帶
910‧‧‧接收一輸入/輸出命令
915‧‧‧利用累積的多個頁,算出一同位元
920‧‧‧根據此同位元,決定此條帶是否滿了
925‧‧‧將此同位元以及此多個頁的每一頁的資料儲存於一指定的條帶
930‧‧‧儲存此同位元
1000‧‧‧HEU
1010‧‧‧詮釋資料區
1020‧‧‧詮釋資料
1022‧‧‧旗標
1024‧‧‧LPN的同位元
HEU‧‧‧晉級擦除單元
P‧‧‧同位元頁
D‧‧‧資料頁
1100‧‧‧HEU
SEU‧‧‧超級擦除單元
1210‧‧‧一同位元的距離大於N-1?
1220‧‧‧毀損頁是否為資料?
1310‧‧‧檢查一相對應的同位元距離是大於N-1嗎?
1320‧‧‧判定一毀損頁為一同位元頁並且設定其同位元資訊為一同位元值
1330‧‧‧從上一條帶的結尾做一XOR重建
1335‧‧‧判定此毀損頁為一資料頁並且設定其同位元資訊為一非同位元值
第一圖是一範例示意圖,說明RAID5的配置。
第二圖是一範例示意圖,說明部份填入式條帶之隨機存取時的運作。
第三圖是一範例示意圖,說明一種在RAID系統中記憶體備份的技術。
第四圖是根據本揭露一實施例,說明一SEU的存入格式。。
第五圖是根據本揭露一實施例,說明一轉譯層將一輸入/輸出命令轉譯為實體頁號碼。
第六圖是根據本揭露一實施例,說明在固定的條帶大小的情況時,一種資料儲存與重建方法的運作流程。
第七A圖是根據本揭露一實施例,說明第六圖中的主晉級擦除單元的頁的儲存格式。
第七B圖是根據本揭露一實施例,說明第六圖中的緩衝晉級擦除單元的同位元頁的儲存格式。
第八圖是根據本揭露一實施例,說明一種資料重建方法的運作流程。
第九圖是根據本揭露一實施例,說明在動態的條帶大小的情況時,一種資料儲存方法的運作流程。
第十圖是根據本揭露另一實施例,說明一種資料儲存與重建方法。
第十一圖是根據本揭露一實施例,說明一晉級擦除單元選擇回收的SEUs的方法。
十二A圖是是根據本揭露另一實施例,說明幾種在一磁碟中發生毀損的範例。
第十二B圖是根據本揭露另一實施例,判定第十二A圖中三種磁碟中發生失敗的情況的方式。
第十三圖是根據本揭露一實施例,說明在條帶的大小是可變的情況下,一種資料重建方法的運作流程。
610‧‧‧接收一輸入/輸出命令
615‧‧‧算出其對應的一同位元
620‧‧‧決定此輸入/輸出命令所對應的一最後條帶是否為一全條帶
622‧‧‧重新計算一最後的同位元
624‧‧‧將此最後的同位元重複寫入一緩衝晉級擦除單元中的至少兩同位元頁
630‧‧‧儲存此輸入/輸出命令所對應的多筆資料與一同位元於一磁碟儲存子系統中的一主晉級擦除單元

Claims (25)

  1. 一種資料儲存方法,適應於一磁碟儲存系統,用以重建資料,該方法包含:接收一輸入/輸出命令後,算出其對應的一同位元;根據該同位元,決定該輸入/輸出命令對應的一最後條帶是否為一全條帶;當該最後條帶是為一全條帶時,儲存該輸入/輸出命令所對應的多筆資料與該同位元於該磁碟儲存系統中的一主晉級擦除單元;以及當該最後條帶不是一全條帶時,重新計算一最後的同位元,並且將該最後的同位元重複寫入一緩衝晉級擦除單元中的至少兩同位元頁。
  2. 如申請專利範圍第1項所述之方法,其中該磁碟儲存系統是一獨立磁碟冗餘陣列。
  3. 如申請專利範圍第1項所述之方法,其中該緩衝晉級擦除單元中的該至少兩同位元頁是連續的同位元頁。
  4. 如申請專利範圍第1項所述之方法,其中該方法還包括:將該最後的同位元以一實體對應方式,重複寫入於該緩衝晉級擦除單元中的該至少兩同位元頁。
  5. 如申請專利範圍第1項所述之方法,其中該緩衝晉級擦除單元是由多個同位元頁組成的,每一同位元頁還包括:一資料區,儲存該主晉級擦除單元裡一個部分條帶的至少一資料的一同位元;以及一備用區,儲存一邏輯頁號碼的一同位元、以及一實體 頁號碼。
  6. 如申請專利範圍第1項所述之方法,其中該主晉級擦除單元是由多個超級擦除單元(SEUs)所組成的,並且確保由該多個SEUs所形成的多個全條帶的每一全條帶分散式地跨越在N-1個不同的磁碟,並且每一條帶的結尾儲存一同位元資訊,其中N是該晉級擦除單元所使用的磁碟的個數。
  7. 如申請專利範圍第6項所述之方法,其中該多個SEUs的每一SEU包括多個頁以及一詮釋資料區,該詮釋資料區記錄該多個頁的各個頁各自對應的一邏輯頁號碼以及一同位元資訊。
  8. 如申請專利範圍第1項所述之方法,其中該方法還包括:從多個候選超級擦除單元中選出該緩衝晉級擦除單元。
  9. 如申請專利範圍第1項所述之方法,其中該同位元指出該最後條帶是否為一全條帶。
  10. 如申請專利範圍第1項所述之方法,該方法還包括一資料重建的步驟,其包括:從該磁碟儲存系統中的該緩衝晉級擦除單元裡讀出最後至少兩同位元頁的其中一同位元頁;根據該其中一同位元頁裡的資訊,重建該磁碟儲存系統中的該主晉級擦除單元裡的一部份條帶;從該主晉級擦除單元裡讀出至少一全條帶的每一全條帶裡的一同位元頁;以及根據該每一全條帶裡的該同位元頁裡的資訊,重建該至少一全條帶的每一全條帶。
  11. 一種資料儲存的方法,適應於一磁碟儲存系統,用以重建資料,該方法包含:接收一輸入/輸出命令後,利用累積的多個頁,算出一同位元;根據該同位元,決定一條帶是否滿了;當該條帶是滿的時,儲存該同位元與該多個頁的每一頁的資料於一指定的條帶,其中該同位元做為辨識一條帶的結尾;當該條帶是未滿時,儲存該同位元;以及當還有至少一輸入/輸出命令時,返回此接收一輸入/輸出命令後,利用累積的多個頁,算出一同位元的步驟。
  12. 如申請專利範圍第11項所述之方法,其中該多個頁的每一頁的一備用區儲存一旗標,來指出該頁是存一同位元或是存一資料。
  13. 如申請專利範圍第11項所述之方法,其中該方法還包括:使用一磁碟儲存系統中的一晉級擦除單元中的一詮釋資料區來儲存該多個頁的每一頁各自對應的一邏輯頁號碼與一同位元資訊。
  14. 如申請專利範圍第11項所述之方法,其中該條帶的大小是可變的,並且截斷一全條帶決定於該輸入/輸出命令的至少一狀態。
  15. 如申請專利範圍第11項所述之方法,其中該條帶的大小是可變的,並且截斷一全條帶決定於一磁碟儲存系統中的多個磁碟的磁碟個數。
  16. 如申請專利範圍第13項所述之方法,其中該晉級擦除單元是從多個回收的M個超級擦除單元(SEUs)中,挑選出不會局限在同一條帶中N個的SEUs來組成,M與N皆為大於1的正整數且M大於等於N。
  17. 如申請專利範圍第11項所述之方法,該方法還包括一資料重建的步驟,其包括:對於一詮釋資料區中的多個同位元頁的每一對前後相鄰的同位元頁,檢查一相對應的同位元距離是否大於等於該磁碟儲存系統中多個磁碟的的一磁碟個數;當該同位元距離是大於等於該磁碟個數時,判定一毀損頁為一同位元頁並且設定其同位元資訊為一同位元值;當該同位元距離是小於此磁碟個數時,從上一條帶的結尾做一XOR重建;當該XOR重建的結果為0時,判定該毀損頁為一同位元頁並且設定其同位元資訊為一同位元值;以及當該XOR重建的結果不是0時,判定該毀損頁為一資料頁並且設定其同位元資訊為一非同位元值。
  18. 如申請專利範圍第17項所述之方法,其中該方法還包括:掃描一晉級擦除單元中的該詮釋資料區來決定出該詮釋資料區中的該多個同位元頁;以及計算該多個同位元頁的每對同位元頁相對應的該同位元距離。
  19. 一種資料儲存的系統,用以重建資料,該系統包括: 一處理器,根據一同位元,決定一輸入/輸出命令對應的一最後條帶是否為一全條帶;一主晉級擦除單元,配置於一磁碟儲存系統中,並且當該最後條帶是為一全條帶時,用來儲存該輸入/輸出命令所對應的多筆資料與一同位元;以及一緩衝晉級擦除單元,配置於該磁碟儲存系統中,並且當該最後條帶不是一全條帶時,經由該處理器重新計算的一最後的同位元,將該最後的同位元重複寫入於該緩衝晉級擦除單元中的至少兩同位元頁;其中該處理器還執行該磁碟儲存系統中失敗的至少一磁碟之多筆資料的重建。
  20. 如申請專利範圍第19項所述之系統,其中該至少一磁碟之多筆資料的重建還包括:從該緩衝晉級擦除單元裡讀出該最後至少兩同位元頁的其中一同位元頁;根據該其中一同位元頁裡的資訊,重建該磁碟儲存系統中的該主晉級擦除單元裡的一部份條帶;從該主晉級擦除單元裡讀出該至少一全條帶的每一全條帶裡的一同位元頁;以及根據每一全條帶裡的該同位元頁裡的資訊,重建此至少一全條帶的每一全條帶。
  21. 一種資料儲存系統,用以重建資料,該系統包括:一處理器,根據一輸入/輸出命令,經由累積的多個頁,算出一同位元,並且根據該同位元,決定一條帶是否滿了; 一主晉級擦除單元,配置於一磁碟儲存系統中,用來儲存此同位元與此多個頁的每一頁的資料於一指定的條帶,此同位元做為辨識此條帶的結尾;以及一詮釋資料區,配置於該磁碟儲存系統中的一晉級擦除單元中,用來儲存該多個頁的每一頁各自對應的一邏輯頁號碼與一同位元資訊;其中該處理器還執行該磁碟儲存系統中失敗的至少一磁碟之多筆資料的重建。
  22. 如申請專利範圍第21項所述之系統,其中該至少一磁碟之多筆資料的重建還包括:對於該詮釋資料區中的多個同位元頁的每一對前後相鄰的同位元頁,檢查一相對應的同位元距離是否大於等於該磁碟儲存系統中多個磁碟的的一磁碟個數;當該同位元距離是小於該磁碟個數時,從上一條帶的結尾做一XOR重建;當該XOR重建的結果為0時,判定一毀損頁為一同位元頁並且設定其同位元資訊為一同位元值;以及當該XOR重建的結果不是0時,判定該毀損頁為一資料頁並且設定其同位元資訊為一非同位元值。
  23. 如申請專利範圍第22項所述之系統,其中該條帶的大小是可變的,並且截斷一全條帶決定於該輸入/輸出命令的至少一狀態。
  24. 如申請專利範圍第22項所述之系統,其中該條帶的大小是可變的,並且截斷一全條帶決定於該磁碟儲存系統中的多個磁碟的一磁碟個數。
  25. 如申請專利範圍第21項所述之系統,其中該每一頁的一備用區儲存一旗標,來指出此頁是存同位元或是資料。
TW101146408A 2012-12-10 2012-12-10 資料儲存與重建的方法與系統 TWI461901B (zh)

Priority Applications (3)

Application Number Priority Date Filing Date Title
TW101146408A TWI461901B (zh) 2012-12-10 2012-12-10 資料儲存與重建的方法與系統
US13/719,759 US9063869B2 (en) 2012-12-10 2012-12-19 Method and system for storing and rebuilding data
CN201210566493.6A CN103870352B (zh) 2012-12-10 2012-12-24 数据存储与重建的方法与系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
TW101146408A TWI461901B (zh) 2012-12-10 2012-12-10 資料儲存與重建的方法與系統

Publications (2)

Publication Number Publication Date
TW201423376A TW201423376A (zh) 2014-06-16
TWI461901B true TWI461901B (zh) 2014-11-21

Family

ID=50882306

Family Applications (1)

Application Number Title Priority Date Filing Date
TW101146408A TWI461901B (zh) 2012-12-10 2012-12-10 資料儲存與重建的方法與系統

Country Status (3)

Country Link
US (1) US9063869B2 (zh)
CN (1) CN103870352B (zh)
TW (1) TWI461901B (zh)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9727414B2 (en) * 2010-12-01 2017-08-08 Seagate Technology Llc Fractional redundant array of silicon independent elements
US9189332B1 (en) * 2013-09-13 2015-11-17 Seagate Technology Llc Parity data in solid state memory
CN104778018B (zh) * 2015-04-23 2018-06-05 南京道熵信息技术有限公司 基于非对称混合型磁盘镜像的宽条带磁盘阵列及存储方法
US9996463B2 (en) * 2015-11-10 2018-06-12 International Business Machines Corporation Selection and placement of volumes in a storage system using stripes
CN108153582B (zh) * 2016-12-05 2024-01-26 北京忆恒创源科技股份有限公司 Io命令处理方法与介质接口控制器
CN108733518B (zh) * 2017-04-17 2021-07-09 伊姆西Ip控股有限责任公司 用于管理存储系统的方法、设备和计算机可读介质
US10929226B1 (en) 2017-11-21 2021-02-23 Pure Storage, Inc. Providing for increased flexibility for large scale parity
CN108595287B (zh) * 2018-04-27 2021-11-05 新华三技术有限公司成都分公司 基于纠删码的数据截断方法及装置
WO2020007030A1 (zh) 2018-07-06 2020-01-09 华为技术有限公司 一种系统控制器和系统垃圾回收方法

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6542960B1 (en) * 1999-12-16 2003-04-01 Adaptec, Inc. System and method for parity caching based on stripe locking in raid data storage
US20030120864A1 (en) * 2001-12-26 2003-06-26 Lee Edward K. High-performance log-structured RAID
US6665743B2 (en) * 2001-04-18 2003-12-16 International Business Machines Corporation Method, system, and program for initializing a storage space
US20030236943A1 (en) * 2002-06-24 2003-12-25 Delaney William P. Method and systems for flyby raid parity generation
TW200707186A (en) * 2005-08-01 2007-02-16 Infortrend Technology Inc Method for improving writing data efficiency and storage subsystem and system implementing the same
US7234024B1 (en) * 2003-07-03 2007-06-19 Veritas Operating Corporation Application-assisted recovery from data corruption in parity RAID storage using successive re-reads
TWI317475B (en) * 2003-07-14 2009-11-21 Ibm Method and data storage system for increasing an error tolerance of an array of m storage units
US20110126045A1 (en) * 2007-03-29 2011-05-26 Bennett Jon C R Memory system with multiple striping of raid groups and method for performing the same
TW201227298A (en) * 2010-12-22 2012-07-01 Samsung Electronics Co Ltd Operation method of data storage device

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5506977A (en) * 1991-12-17 1996-04-09 Dell Usa, L.P. Method and controller for minimizing reads during partial stripe write operations to a disk drive
US5333305A (en) 1991-12-27 1994-07-26 Compaq Computer Corporation Method for improving partial stripe write performance in disk array subsystems
US5875456A (en) 1995-08-17 1999-02-23 Nstor Corporation Storage device array and methods for striping and unstriping data and for adding and removing disks online to/from a raid storage array
US6906961B2 (en) 2003-06-24 2005-06-14 Micron Technology, Inc. Erase block data splitting
US7266716B2 (en) * 2003-10-23 2007-09-04 Hewlett-Packard Development Company, L.P. Method and recovery of data using erasure coded data from stripe blocks
JP4842719B2 (ja) 2006-06-28 2011-12-21 株式会社日立製作所 ストレージシステム及びそのデータ保護方法
US8239645B1 (en) 2007-09-28 2012-08-07 Emc Corporation Managing mirroring in data storage system having fast write device and slow write device
US8074112B1 (en) 2007-12-27 2011-12-06 Marvell International Ltd. Memory backup used in a raid system
US20100017650A1 (en) 2008-07-19 2010-01-21 Nanostar Corporation, U.S.A Non-volatile memory data storage system with reliability management
US7941697B2 (en) * 2008-12-30 2011-05-10 Symantec Operating Corporation Failure handling using overlay objects on a file system using object based storage devices
CN101620517B (zh) * 2009-08-04 2012-05-30 成都市华为赛门铁克科技有限公司 数据写入方法和装置
US20120084504A1 (en) 2010-10-01 2012-04-05 John Colgrove Dynamic raid geometries in an ssd environment
US8615681B2 (en) 2010-12-14 2013-12-24 Western Digital Technologies, Inc. System and method for maintaining a data redundancy scheme in a solid state memory in the event of a power loss
CN102096558A (zh) * 2011-01-20 2011-06-15 杭州华三通信技术有限公司 一种数据的存储方法和装置
CN102521068B (zh) * 2011-11-08 2014-07-23 华中科技大学 一种固态盘阵列的重建方法
US8874995B2 (en) * 2012-02-02 2014-10-28 International Business Machines Corporation Partial-maximum distance separable (PMDS) erasure correcting codes for storage arrays
US9671962B2 (en) * 2012-11-30 2017-06-06 Sandisk Technologies Llc Storage control system with data management mechanism of parity and method of operation thereof

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6542960B1 (en) * 1999-12-16 2003-04-01 Adaptec, Inc. System and method for parity caching based on stripe locking in raid data storage
US6665743B2 (en) * 2001-04-18 2003-12-16 International Business Machines Corporation Method, system, and program for initializing a storage space
US20030120864A1 (en) * 2001-12-26 2003-06-26 Lee Edward K. High-performance log-structured RAID
US20030236943A1 (en) * 2002-06-24 2003-12-25 Delaney William P. Method and systems for flyby raid parity generation
US7234024B1 (en) * 2003-07-03 2007-06-19 Veritas Operating Corporation Application-assisted recovery from data corruption in parity RAID storage using successive re-reads
TWI317475B (en) * 2003-07-14 2009-11-21 Ibm Method and data storage system for increasing an error tolerance of an array of m storage units
TW200707186A (en) * 2005-08-01 2007-02-16 Infortrend Technology Inc Method for improving writing data efficiency and storage subsystem and system implementing the same
US20110126045A1 (en) * 2007-03-29 2011-05-26 Bennett Jon C R Memory system with multiple striping of raid groups and method for performing the same
TW201227298A (en) * 2010-12-22 2012-07-01 Samsung Electronics Co Ltd Operation method of data storage device

Also Published As

Publication number Publication date
US20140164695A1 (en) 2014-06-12
CN103870352B (zh) 2017-07-14
US9063869B2 (en) 2015-06-23
TW201423376A (zh) 2014-06-16
CN103870352A (zh) 2014-06-18

Similar Documents

Publication Publication Date Title
TWI461901B (zh) 資料儲存與重建的方法與系統
US11941257B2 (en) Method and apparatus for flexible RAID in SSD
US10922172B2 (en) On the fly raid parity calculation
JP6422600B2 (ja) メモリにおけるストライプマッピング
CN104035830B (zh) 一种数据恢复方法和装置
US9411717B2 (en) Metadata journaling with error correction redundancy
JP6175684B2 (ja) Nandフラッシュメモリ上のデータの記憶のためのアーキテクチャ
US8392791B2 (en) Unified data protection and data de-duplication in a storage system
US20050086429A1 (en) Method, apparatus and program for migrating between striped storage and parity striped storage
US20140063983A1 (en) Error Detection And Correction In A Memory System
US20050066124A1 (en) Method of RAID 5 write hole prevention
US20120254694A1 (en) Redundant storage in non-volatile memory by storing redundancy information in volatile memory
US20200073818A1 (en) Persistent storage device management
CN110413454B (zh) 基于存储阵列的数据重建方法、装置及存储介质
US11314594B2 (en) Method, device and computer program product for recovering data
CN107885620B (zh) 一种提高固态盘阵列性能和可靠性的方法及系统
KR101532283B1 (ko) Ssd 기반 raid 스토리지에서 데이터 및 패리티 디스크의 복합적 중복제거 방법
WO2023246240A1 (zh) 一种数据重构方法及装置
US9612913B2 (en) System, method and a non-transitory computer readable medium for protecting snapshots
WO2013023564A1 (en) Method and apparatus for flexible raid in ssd
WO2010150283A2 (en) Disk storage performance using digital memory and data compression
Sim et al. Implementation of a Reed-Solomon Code as an ECC in Yet Another Flash File System