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

檢測用于存儲系統(tǒng)中寫錯誤的設備與方法

文檔序號:6380620閱讀:221來源:國知局
專利名稱:檢測用于存儲系統(tǒng)中寫錯誤的設備與方法
技術領域
本發(fā)明涉及存儲系統(tǒng),具體地涉及用于電子數據存儲的磁盤存儲系統(tǒng)。
背景技術
由于記錄技術的進步,現在硬盤的容量每年翻一翻。2003年,面積密度預計將達到每平方英寸100G比特,而3.5″驅動器將能存儲300GB。
硬盤的可靠性以其MTBF(平均無故障時間)與不可恢復錯誤率指定。當前服務器級驅動器的典型規(guī)格為1,000,000小時與每讀取1015比特中1個不可恢復錯誤。然而,由于更低的浮動高度、介質缺陷等等,面積密度的增長使保持可靠性更加困難。
RAID(獨立磁盤冗余陣列)陣列(如RAID-1或RAID-5)被經常用來進一步提高存儲系統(tǒng)的可靠性。然而對于大容量驅動器,單單一級冗余已不足以將數據丟失的可能性降到可以忽略的水平。
磁盤驅動器在讀命令時偶爾也可能返回過時數據,這是因為上一次的寫命令沒有寫到記錄介質的正確位置上或者沒有在介質上記錄。這可能是因為間歇性硬件故障或隱蔽設計缺陷。例如,驅動器可能由于固件錯誤將數據寫入錯誤的LBA(邏輯塊地址),或者寫得偏離磁道,或者因為潤滑油滴將磁頭抬離磁盤表面而根本就沒寫上。
目前人們對在服務器應用中使用商品驅動器越來越感興趣,商品驅動器諸如高級技術附件(ATA)驅動器等等,這是因為就每兆字節(jié)的費用來說這些商品驅動器要便宜大約3倍。然而,這些驅動器原本打算在PC中間歇性使用的,因此其可能不如服務器級驅動器可靠。另外ATA驅動器只支持512字節(jié)的塊,因此不能用塊級LRC(縱向冗余校驗)來檢測數據損壞。
對于單一磁盤驅動器,控制器可以在剛剛寫完每一塊后將其讀回并驗證。
任何類型的RAID(獨立磁盤冗余陣列)陣列都可以以允許校驗讀取的數據的方式實現。例如,對于RAID-5陣列,控制器可以檢查讀取的數據是否與其他數據驅動器和奇偶校驗驅動器相一致。
然而,這些方法的缺點在于兩個方法都大大降低了以每秒I/O(輸入/輸出)命令表示的總體吞吐量,這是因為第一個方法要求額外的旋轉,而第二種方法要求每條讀命令都訪問幾個驅動器。
因此需要可以減輕上述問題的存儲系統(tǒng)中寫錯誤的檢測。

發(fā)明內容
根據本發(fā)明的一個方面,提供一種檢測用于存儲系統(tǒng)中寫錯誤的設備,該設備包括用于以組存儲數據塊的裝置,每一組都包括多個數據塊與一校驗塊;其中在每次向存儲器寫入該組時,更新該校驗塊;以及用于通過檢查該校驗塊來檢測寫錯誤的裝置。
優(yōu)選地,該校驗塊為該組數據塊的組合。
優(yōu)選地,該組合為邏輯異或組合。
優(yōu)選地,該校驗塊為與該組相關的邏輯塊地址的組合。
優(yōu)選地,該組合為邏輯異或組合。
優(yōu)選地,該校驗塊為階段字段(phase field)的組合,在每次寫入該組時,更新該階段字段。
優(yōu)選地,該組合為邏輯異或組合。
優(yōu)選地,該階段字段包含單一位值,在每次寫入該組時,反轉該單一位值。
優(yōu)選地,該階段字段包含多位值,在每次寫入該組時,更新該多位值。
優(yōu)選地,該裝置還包括用于階段字段值的非易失表。
優(yōu)選地,該非易失表包含保留磁盤驅動器區(qū)域,該表的工作備份被緩存在該系統(tǒng)的控制器中。
優(yōu)選地,該裝置還包括非易失日志,其被安排以在寫操作前記錄項,在該寫操作完成時,該項被安排用于A至B之一A失效,以及B刪除。
優(yōu)選地,安排該日志以保持對還沒有被存儲在該非易失表中的該控制器中該表的工作備份的更新。
優(yōu)選地,該日志被存儲在還保持用于該系統(tǒng)的控制器的代碼的存儲器中。
優(yōu)選地,該存儲系統(tǒng)包含磁盤存儲系統(tǒng)。
優(yōu)選地,該磁盤存儲系統(tǒng)包含ATA磁盤驅動器。
優(yōu)選地,該磁盤存儲系統(tǒng)包含RAID系統(tǒng)。
根據本發(fā)明的第二方面,提供了一種檢測用于存儲系統(tǒng)中寫錯誤的方法,該方法包括以組存儲數據塊,每一組都包括多個數據塊與一校驗塊;在每次寫入該組時,更新該校驗塊;以及通過檢查該校驗塊來檢測可能的寫錯誤。
優(yōu)選地,該校驗塊為該組數據塊的組合。
優(yōu)選地,該組合為邏輯異或組合。
優(yōu)選地,該校驗塊為與該組相關的邏輯塊地址的組合。
優(yōu)選地,該組合為邏輯異或組合。
優(yōu)選地,該校驗塊為階段字段的組合,在每次寫入該組時,更新該階段字段。
優(yōu)選地,該組合為邏輯異或組合。
優(yōu)選地,該階段字段包含單一位值,在每次寫入該組時,反轉該單一位值。
優(yōu)選地,該階段字段包含多位值,在每次寫入該組時,更新該多位值。
優(yōu)選地,階段字段值被存儲在非易失表中。
優(yōu)選地,該非易失表包含保留磁盤驅動器區(qū)域,該表的工作備份被緩存在該系統(tǒng)的控制器中。
優(yōu)選地,該方法還包括在寫操作前將項記錄在非易失日志中,在該寫操作完成時,執(zhí)行A至B操作之一A置該項失效,以及B刪除該項。
優(yōu)選地,該方法還包括在該日志中保持對還沒有被存儲在該非易失表中的該控制器中該表的工作備份的更新。
優(yōu)選地,該日志被存儲在還保持用于該系統(tǒng)的控制器的代碼的存儲器中。
優(yōu)選地,該存儲系統(tǒng)包含磁盤存儲系統(tǒng)。
優(yōu)選地,該磁盤存儲系統(tǒng)包含ATA磁盤驅動器。
優(yōu)選地,該磁盤存儲系統(tǒng)包含RAID系統(tǒng)。
根據本發(fā)明的第三方面,提供了一種計算機程序元件,包含計算機程序裝置,用來執(zhí)行實質上如第二方面的方法。


現在將參照僅為示例的附圖,描述包含本發(fā)明的一種設備與方法,用于通過使用階段字段,檢測存儲系統(tǒng)中寫錯誤,其中,圖1示出包含本發(fā)明的磁盤驅動器存儲系統(tǒng)的方框示意圖;以及圖2示出用于使用圖1系統(tǒng)的計算奇偶校驗塊的方法的方框示意圖。
具體實施例方式
簡要而言,在其優(yōu)選實施例中,本發(fā)明使用包含階段字段(phase field)(例如單一比特標志)的交叉奇偶校驗塊,以檢測幾乎所有磁盤驅動器引起的數據損害情況。該奇偶校驗塊還提供另外一級的錯誤校正。這些特征對于ATA驅動器尤其有用,這是因為ATA驅動器一般比服務器驅動器有更高的不可校正錯誤率。(ATA驅動器一般規(guī)定硬錯誤率為1∶1015比特,因此100GB的驅動器包含具有硬讀錯誤的塊的概率為0.8%。如果使用這些驅動器來構造10+P RAID-5陣列,則在更換一個驅動器后,重構失敗的概率為8%。)現在參看圖1,磁盤存儲系統(tǒng)100包括磁盤110,其中信息被存儲在塊D與P,其一般為512字節(jié)。在磁盤上存儲數據時,每N個(例如,如圖所示,每8個512字節(jié)的塊或4KB)塊后插入一個奇偶校驗塊P。認為這些N+1個塊為一組120。因此驅動器的有效數據容量被降低N/(N+1)。
如圖2所示,奇偶校驗塊P包含組奇偶校驗,其由以下計算步驟210——將來自該組中的每個數據塊的相應字節(jié)異或。
步驟220——將該組中第一塊的物理LBA異或到步驟210結果的頭幾個字節(jié)中。該LBA源允許檢測幾乎所有讀與某些寫時的尋址錯誤。
步驟230——將階段字段F異或到步驟220結果的最后幾位中。階段字段F可以是單一位值,其在每次寫入該組時都被反轉??商鎿Q地,階段字段F也可以是多位計數器,其在每次寫入該組時都被更新(如被增加)。該階段字段檢測寫時的大部分剩余尋址錯誤。
除非驅動器遇到硬讀錯誤,磁盤控制器(未顯示)以整組讀寫該驅動器。它對每一組執(zhí)行以上計算。對于寫,結果被寫入奇偶校驗塊。對于讀,將結果與讀入奇偶校驗塊的內容異或,如果結果非零,則在該組中有錯誤。
奇偶校驗塊P使控制器能夠處理下列驅動器錯誤如果驅動器在組中一個數據塊中遇到不可恢復的介質錯誤,則控制器在下一塊重新啟動讀。然后通過使用組奇偶校驗,控制器重新構建缺失的塊,其假定LBA與階段正確。最后,控制器重新分配壞的LBA并重寫該塊。
如果驅動器讀入錯誤的LBA,則由于LBA源,組奇偶校驗將非零??刂破魅缓笾卦囈淮巫x,如果奇偶校驗再次失敗,則返回介質錯誤。
如果驅動器先前寫入了錯誤的LBA,或者根本就沒有寫介質并且宿主然后發(fā)出請求讀正確的LBA,則由于階段字段F,組奇偶校驗將非零??刂破魅缓笾卦囈淮巫x,如果奇偶校驗再次失敗,則返回介質錯誤。
如果驅動器先前寫入了錯誤的LBA并且宿主然后發(fā)出請求讀不正確的LBA,則由于LBA源,組奇偶校驗將不正確??刂破髦卦囈淮巫x,并返回介質錯誤。
當控制器返回介質錯誤時,如果該驅動器為冗余陣列(未顯示)的部件,則仍可恢復該數據。
因為控制器總是讀寫磁盤上的整個組,短寫或未對齊寫需要寫-改-寫。然而RAID-5具有類似的損失,所以在這種情況下并沒有額外的花費。
磁盤控制器必須將每組的當前階段存儲在非易失存儲130中。例如,當使用單一位階段標志時,對于具有4KB組的100GB驅動器,產生的位圖占大約2.6MB。當驅動器格式化時,控制器將所有階段標志初始化為零??梢愿鞣N方式實現階段標志位圖130。閃存不直接合適,這是因為如果反復寫同一組,閃存會很快用壞。帶電池的SRAM(靜態(tài)隨機訪問存儲器)笨重而昂貴。優(yōu)選的解決方案是將位圖存儲在磁盤驅動器的保留區(qū)域,并在控制器中的SRAM(靜態(tài)隨機訪問存儲器)中緩存工作備份。然而,為避免每次寫命令都更新該保留區(qū)域,必須以某種方式將修改打包并保護其不受電源故障與驅動器重置的影響。
另外,如果磁盤寫被電源故障或重置所中斷,則磁盤上的階段(phase)標志的狀態(tài)無法確定。這不應該引起隨后的帶介質錯誤的讀失敗,這是因為該驅動器沒有任何故障(然而返回舊數據、新數據或兩者的混合是可以接受的,這是因為控制器沒有完成向宿主的寫)。
這兩個問題可以以下方式解決剛好在發(fā)出磁盤寫之前,在非易失日志中記入一項,并在此次寫完成后將此項刪除(或使之失效)。該同一個日志也可用來保存對SDRAM中的位圖的更新,這些更新還沒有被全部寫入磁盤。典型的日志項需要8個如下字節(jié)字節(jié)描述0:3 待寫入的第一組的地址。
4:5 待寫入的相鄰組的個數。(非零表示有效日志項)。
6初始化為FFh(‘h’表示十六進制表示法)。磁盤寫完成后置零。
7初始化為FFh。磁盤上位圖被更新后置零。
可以將日志存儲在小型帶電池的SRAM中,即NVRAM(非易失RAM)。
在有些實現中,可能便于將日志存儲在閃存的附加扇區(qū)中,該閃存包含控制器代碼。當日志扇區(qū)被完全使用時,將其擦除為全FFh。向閃存的字寫入一般花費大約500μs,并且每一磁盤寫入需要3個閃存寫入。這就允許每秒將近700次磁盤寫入。閃存的損耗自動被平攤,這是因為日志是依次寫入的。另外日志項被格式化,從而對每次磁盤寫入每一字節(jié)只被寫入一次。例如,壽命為105周期的1MB閃存在每秒100次磁盤寫入上將保持4年。
為確保高可用性,存儲系統(tǒng)經常采用雙(活動-活動)控制器。在這種情況下,最好在每個控制器中都保持該非易失日志的鏡像備份。這就確保如果一個控制器出故障,不會丟失由階段字段所提供的保護。必須通過在控制器間交換消息,保持這兩個日志同步。在每個控制器向磁盤寫入組之前以及在該寫入完成時,該控制器必須通知另一控制器更新其日志。然而,在實踐中這一般不構成很大花費,這是因為諸如RAID-5等更高級的功能也要交換類似信息。
還必須提供裝置以重新同步兩個控制器,例如,如果一個控制器在故障后被替換。這很容易實現,只要從另一控制器的日志中將懸置的更新全部寫入磁盤,并將替換控制器中的日志清空。
應該理解以上描述的通過使用階段標志位檢測在存儲系統(tǒng)中寫錯誤的方案具有以下優(yōu)點提高了數據完整性。當使用低費用的桌面型驅動器時,該方案尤其有用。這些驅動器一般局限于512字節(jié)塊,因此沒有空間來在每個塊中存儲校驗字段。然而,該方案也可以用于服務器級的驅動器。
降低了性能影響,尤其當與RAID-5聯合使用時(不需要額外的磁盤訪問以檢查讀取的數據)。
在最簡單的情況中,階段字段為單一位,其在每次寫入時被反轉。然而,為了更好的保護,階段字段也可以是多位計數器,其被更新,例如,增加一正值或負值(即減少)。
應該理解上述用于在存儲系統(tǒng)中寫錯誤檢測的方法一般在位于該系統(tǒng)內的處理器(未顯示)上運行的軟件中實施,并且該軟件可以作為在任何適當數據載體(也未顯示)(諸如計算機磁盤或計算機光盤等等)上承載的計算機程序元件來提供。
還應該理解盡管本發(fā)明的描述針對磁盤存儲系統(tǒng)的情況,但可替換地,本發(fā)明也可用于其他存儲系統(tǒng),諸如那些基于光盤或磁帶的系統(tǒng)等等。
權利要求
1.一種檢測用于存儲系統(tǒng)中寫錯誤的設備,該設備包括用于以組存儲數據塊的裝置,每一組都包括多個數據塊與一校驗塊;其中在每次向存儲器寫入該組時,更新該校驗塊;以及用于通過檢查該校驗塊來檢測寫錯誤的裝置。
2.如權利要求1所述的設備,其中該校驗塊為該組數據塊的組合。
3.如權利要求2所述的設備,其中該組合為邏輯異或組合。
4.如權利要求1至3中任何一項所述的設備,其中該校驗塊為與該組相關的邏輯塊地址的組合。
5.如權利要求4所述的設備,其中該組合為邏輯異或組合。
6.如權利要求1至5中任何一項所述的設備,其中該校驗塊為階段字段的組合,在每次寫入該組時,更新該階段字段。
7.如權利要求6所述的設備,其中該組合為邏輯異或組合。
8.如權利要求6或7所述的設備,其中該階段字段包含單一位值,在每次寫入該組時,反轉該單一位值。
9.如權利要求6或7所述的設備,其中該階段字段包含多位值,在每次寫入該組時,更新該多位值。
10.如權利要求6至9中任何一項所述的設備,還包括用于階段字段值的非易失表。
11.如權利要求10所述的設備,其中該非易失表包含保留磁盤驅動器區(qū)域,該表的工作備份被緩存在該系統(tǒng)的控制器中。
12.如權利要求1至11中任何一項所述的設備,還包括非易失日志,安排其在寫操作前記錄項,在該寫操作完成時,該項被安排用于A至B之一A失效,以及B刪除。
13.如從屬于權利要求11的權利要求12所述的設備,其中安排該日志以保持對還沒有被存儲在該非易失表中的該控制器中該表的工作備份的更新。
14.如權利要求12或13所述的設備,其中該日志被存儲在還保持用于該系統(tǒng)的控制器的代碼的存儲器中。
15.如權利要求1至14中任何一項所述的設備,其中該存儲系統(tǒng)包含磁盤存儲系統(tǒng)。
16.如權利要求15所述的設備,其中該磁盤存儲系統(tǒng)包含ATA磁盤驅動器。
17.如權利要求15或16所述的設備,其中該磁盤存儲系統(tǒng)包含RAID系統(tǒng)。
18.一種檢測用于存儲系統(tǒng)中寫錯誤的方法,該方法包括以組存儲數據塊,每一組都包括多個數據塊與一校驗塊;在每次寫入該組時,更新該校驗塊;以及通過檢查該校驗塊來檢測可能的寫錯誤。
19.如權利要求18所述的方法,其中該校驗塊為該組數據塊的組合。
20.如權利要求19所述的方法,其中該組合為邏輯異或組合。
21.如權利要求18至20中任何一項所述的方法,其中該校驗塊為與該組相關的邏輯塊地址的組合。
22.如權利要求21所述的方法,其中該組合為邏輯異或組合。
23.如權利要求18至22中任何一項所述的方法,其中該校驗塊為階段字段的組合,在每次寫入該組時,更新該階段字段。
24.如權利要求23所述的方法,其中該組合為邏輯異或組合。
25.如權利要求23或24所述的方法,其中該階段字段包含單一位值,在每次寫入該組時,反轉該單一位值。
26.如權利要求23或24所述的方法,其中該階段字段包含多位值,在每次寫入該組時,更新該多位值。
27.如權利要求23至26中任何一項所述的方法,其中階段字段值被存儲在非易失表中。
28.如權利要求27所述的方法,其中該非易失表包含保留磁盤驅動器區(qū)域,該表的工作備份被緩存在該系統(tǒng)的控制器中。
29.如權利要求18至28中任何一項所述的方法,還包括在寫操作前將項記錄在非易失日志中,在該寫操作完成時,執(zhí)行A至B操作之一A置該項失效,以及B刪除該項。
30.如從屬于權利要求28的權利要求29所述的方法,還包括在該日志中保持對還沒有被存儲在該非易失表中的該控制器中該表的工作備份的更新。
31.如權利要求29或30所述的方法,其中該日志被存儲在還保持用于該系統(tǒng)的控制器的代碼的存儲器中。
32.如權利要求18至31中任何一項所述的方法,其中該存儲系統(tǒng)包含磁盤存儲系統(tǒng)。
33.如權利要求32所述的方法,其中該磁盤存儲系統(tǒng)包含ATA磁盤驅動器。
34.如權利要求32或33所述的方法,其中該磁盤存儲系統(tǒng)包含RAID系統(tǒng)。
35.一種計算機程序元件,包含計算機程序裝置,用來執(zhí)行實質上如權利要求18至34中任何一項所述的方法。
36.一種設備,用于存儲系統(tǒng)中寫錯誤檢測,實質上與此后參照附圖所描述的相同。
37.一種方法,用于存儲系統(tǒng)中寫錯誤檢測,實質上與此后參照附圖所描述的相同。
全文摘要
一種用于通過使用階段字段(F)檢測在存儲系統(tǒng)(100)中寫錯誤的方案。用戶數據塊(P)被分為組(120),并且在每組后插入校驗塊(P)。該校驗塊包含在每次寫入該組時都更新的字段。該字段可以為被反轉的單一位,然而為了更好的保護,也可以是被遞增的多位計數器。該校驗塊可以是該組數據塊的異或組合(210),也可以是該組LBA的異或組合(220)。這提供了以下優(yōu)點1)提高了數據完整性。當使用低費用的桌面型驅動器時,該方案尤其有用。這些驅動器一般局限于512字節(jié)塊,因此沒有空間來在每個塊中存儲校驗字段。然而,該方案也可以用于服務器級的驅動器。2)降低了性能影響,當與RAID-5聯合使用時尤其如此。
文檔編號G06F11/10GK1573703SQ200410002829
公開日2005年2月2日 申請日期2004年1月17日 優(yōu)先權日2003年6月11日
發(fā)明者伊恩·D·朱德 申請人:國際商業(yè)機器公司
網友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
含山县| 基隆市| 广丰县| 江都市| 灵川县| 芒康县| 松潘县| 双桥区| 定结县| 额尔古纳市| 平阴县| 兴山县| 文昌市| 海南省| 宜章县| 无为县| 青冈县| 侯马市| 佛坪县| 张家界市| 津市市| 利川市| 北川| 巍山| 永年县| 河北区| 宣武区| 安远县| 台州市| 阿拉善右旗| 游戏| 青川县| 昆山市| 顺义区| 沛县| 江源县| 肃北| 龙口市| 开化县| 绿春县| 望都县|