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

定位和校正損壞的數(shù)據(jù)或校正子塊的制作方法

文檔序號:6606261閱讀:205來源:國知局
專利名稱:定位和校正損壞的數(shù)據(jù)或校正子塊的制作方法
技術(shù)領(lǐng)域
本發(fā)明涉及一種維持存儲系統(tǒng)中數(shù)據(jù)的正確性和一致性的系統(tǒng)和方法。更具體地,本發(fā)明涉及一種確定RAID級別6 (level 6)的條帶(stripe)的哪個(gè)數(shù)據(jù)塊具有損壞的 (corrupted)或不正確的數(shù)據(jù)的方法和系統(tǒng)。
背景技術(shù)
大容量存儲系統(tǒng)繼續(xù)提供增加的存儲容量以滿足用戶需求。照片和電影存儲,以及照片和電影共享,是推動(dòng)對越來越大的存儲系統(tǒng)的需求的增長的應(yīng)用示例。對這些增加的需求的一種解決方案是使用多個(gè)廉價(jià)盤的陣列。這些陣列可以按如下方式配置提供冗余和錯(cuò)誤恢復(fù)而沒有任何數(shù)據(jù)損失。這些陣列還可以被配置為通過允許對多個(gè)盤驅(qū)動(dòng)器同時(shí)讀取或?qū)懭霐?shù)據(jù)來增加讀寫性能。這些陣列還可以被配置為允許 “熱插拔”(hot-swapping),其允許在不中斷陣列的存儲服務(wù)的情況下更換失效盤。不論是否提供了某種冗余性,這些陣列通常被稱為獨(dú)立盤冗余陣列(或者更一般地用縮寫詞稱為 RAID) ο加州大學(xué)伯克利分校的David A. Patterson等人在1987出版的題為“A Case for Redundant Arrays of Inexpensive Disks (RAID) ”的出版物討論了 RAID 技術(shù)的基礎(chǔ)概念和級別。RAID存儲系統(tǒng)典型地利用將用戶或主機(jī)系統(tǒng)與管理存儲陣列的細(xì)節(jié)屏蔽開的控制器。該控制器使存儲陣列呈現(xiàn)為一個(gè)或更多個(gè)盤驅(qū)動(dòng)器(或卷(volume))。盡管事實(shí)是用于特定卷的數(shù)據(jù)(或冗余數(shù)據(jù))可能散布在多個(gè)盤驅(qū)動(dòng)器上,而這依然被實(shí)現(xiàn)了。

發(fā)明內(nèi)容
因此,本發(fā)明的實(shí)施例可以包括一種維持?jǐn)?shù)據(jù)正確性的方法,包括接收包括多個(gè)數(shù)據(jù)塊、第一存儲的校正子塊和第二存儲的校正子塊的RAID條帶;基于所述多個(gè)數(shù)據(jù)塊, 確定第一計(jì)算的校正子塊和第二計(jì)算的校正子塊;基于對第一存儲的校正子塊和第一計(jì)算的校正子塊不等同的確定,以及對第二存儲的校正子塊和第二計(jì)算的校正子塊不等同的確定,使用如下方法選擇所述多個(gè)數(shù)據(jù)塊中的可疑數(shù)據(jù)塊,該方法包括基于第一存儲的校正子塊和所述多個(gè)數(shù)據(jù)塊的子集,確定所述多個(gè)數(shù)據(jù)塊中的重構(gòu)的一個(gè)數(shù)據(jù)塊,所述多個(gè)數(shù)據(jù)塊的該子集不包括所述多個(gè)數(shù)據(jù)塊中的一個(gè)數(shù)據(jù)塊;基于所述多個(gè)數(shù)據(jù)塊的該子集和所述多個(gè)數(shù)據(jù)塊中的所述重構(gòu)的一個(gè)數(shù)據(jù)塊,確定重構(gòu)的第二校正子塊;以及,基于對所述重構(gòu)的第二校正子塊和所述第二存儲的校正子塊是等同的確定,將所述多個(gè)數(shù)據(jù)塊中的所述一個(gè)數(shù)據(jù)塊選擇作為可疑數(shù)據(jù)塊。因此,本發(fā)明的實(shí)施例可以還包括一種維持RAID條帶中的一致的數(shù)據(jù)和校正子的方法,包括讀取所述RAID條帶,所述RAID條帶包括多個(gè)數(shù)據(jù)塊、第一存儲的校正子塊和第二存儲的校正子塊;基于所述多個(gè)數(shù)據(jù)塊,確定第一計(jì)算的校正子塊;基于所述多個(gè)數(shù)據(jù)塊,確定第二計(jì)算的校正子塊;通過將第一存儲的校正子塊與第一計(jì)算的校正子塊比較, 來確定第一等同性指示符;通過將第二存儲的校正子塊與第二計(jì)算的校正子塊比較,來確定第二等同性指示符;如果第一等同性指示符指示第一存儲的校正子塊和第一計(jì)算的校正子塊不等同,并且,如果第二等同性指示符指示第二存儲的校正子塊和第二計(jì)算的校正子塊不等同,則使用如下方法確定至少一個(gè)可疑塊,該方法包括對于所述多個(gè)數(shù)據(jù)塊中的每一個(gè)數(shù)據(jù)塊使用第一存儲的校正子塊重構(gòu)所述數(shù)據(jù)塊中的重構(gòu)的一個(gè)數(shù)據(jù)塊;使用所述數(shù)據(jù)塊中的重構(gòu)的一個(gè)數(shù)據(jù)塊和除了所述多個(gè)數(shù)據(jù)塊中的所述的一個(gè)數(shù)據(jù)塊以外的所述多個(gè)數(shù)據(jù)塊來確定重構(gòu)的第二校正子塊;確定與所述數(shù)據(jù)塊中的所述的一個(gè)數(shù)據(jù)塊關(guān)聯(lián)的可疑塊指示符,所述可疑塊指示符指示第二存儲的校正子塊是否與所述重構(gòu)的第二校正子塊等同;如果所述多個(gè)數(shù)據(jù)塊中存在單個(gè)數(shù)據(jù)塊具有指示所述第二存儲的校正子塊與所述重構(gòu)的第二校正子塊等同的關(guān)聯(lián)的可疑塊指示符,則將與所述多個(gè)數(shù)據(jù)塊中的該單個(gè)數(shù)據(jù)塊關(guān)聯(lián)的所述數(shù)據(jù)塊中的所述重構(gòu)的一個(gè)數(shù)據(jù)塊存儲在RAID條帶中。因此,本發(fā)明的實(shí)施例可以還包括一種存儲系統(tǒng),包括多個(gè)盤驅(qū)動(dòng)器,被配置為提供RAID條帶;RAID處理器,被配置為接收RAID條帶,該RAID條帶包括多個(gè)數(shù)據(jù)塊、第一存儲的校正子塊和第二存儲的校正子塊,該RAID處理器被配置為基于所述多個(gè)數(shù)據(jù)塊確定第一計(jì)算的校正子塊和第二計(jì)算的校正子塊;確定第一存儲的校正子塊和第一計(jì)算的校正子塊不等同,以及確定第二存儲的校正子塊和第二計(jì)算的校正子塊不等同;基于第一存儲的校正子塊和所述多個(gè)數(shù)據(jù)塊的子集,確定所述多個(gè)數(shù)據(jù)塊中的重構(gòu)的一個(gè)數(shù)據(jù)塊,所述多個(gè)數(shù)據(jù)塊的該子集不包括所述多個(gè)數(shù)據(jù)塊中的一個(gè)數(shù)據(jù)塊;基于所述多個(gè)數(shù)據(jù)塊的該子集和所述多個(gè)數(shù)據(jù)塊中的重構(gòu)的一個(gè)數(shù)據(jù)塊,確定重構(gòu)的第二校正子塊;以及,基于對所述重構(gòu)的第二校正子塊和所述第二存儲的校正子塊是等同的確定,將所述多個(gè)數(shù)據(jù)塊中的所述的一個(gè)數(shù)據(jù)塊選擇作為可疑數(shù)據(jù)塊。


圖1是示出RAID存儲系統(tǒng)的框圖。圖2是示出具有簡單的奇偶性(P)和里德-所羅門(Reed-Solomon) (Q)冗余信息的RAID存儲系統(tǒng)的框圖。圖3是示出維持?jǐn)?shù)據(jù)正確性的方法的流程圖。圖4是示出確定潛在的被損壞的數(shù)據(jù)塊的方法的流程圖。圖5是計(jì)算機(jī)的框圖。
具體實(shí)施例方式圖1是示出RAID存儲系統(tǒng)的框圖。在圖1中,存儲系統(tǒng)100包括盤陣列110、RAID 控制器120、主機(jī)130、主機(jī)131、虛擬卷140、虛擬卷141和虛擬卷142。盤陣列110至少包括第一驅(qū)動(dòng)器111、第二驅(qū)動(dòng)器112、第三驅(qū)動(dòng)器113和第四驅(qū)動(dòng)器114。盤陣列110也可以包括更多的盤驅(qū)動(dòng)器。然而,為了簡要起見從圖1中省略了這些。第一驅(qū)動(dòng)器111包括數(shù)據(jù)塊1110、1111和1112。第二驅(qū)動(dòng)器112包括數(shù)據(jù)塊1120、1121和1122。第三驅(qū)動(dòng)器 113包括第一存儲的校正子塊1130、1131和1132。第四驅(qū)動(dòng)器114包括第二存儲的校正子土夬 1140,1141 和 1142。盤陣列110和驅(qū)動(dòng)器111 114操作耦合到RAID控制器120。因此,RAID控制器 120可以進(jìn)行操作以對驅(qū)動(dòng)器111 114以及塊1110 1112、1120 1122、1130 1132和1140 1142進(jìn)行控制、跨盤(span)和/或條帶化(stripe),用以提供RAID級別6 (RAID 6)功能。RAID 6可以使用塊級條帶化,兩個(gè)奇偶塊跨盤陣列110的所有成員盤分布。該跨盤(spanning)和/或條帶化可以導(dǎo)致存儲的校正子塊1130 1132和1140 1142實(shí)際上駐留在驅(qū)動(dòng)器111 114中的一個(gè)或更多個(gè)驅(qū)動(dòng)器上。同樣地,數(shù)據(jù)塊1110 1112和 1120 1122可以駐留在驅(qū)動(dòng)器111 114中的一個(gè)或更多個(gè)驅(qū)動(dòng)器上。然而,為了清楚和簡要起見,校正子塊1130 1132和1140 1142將被示出和討論為駐留在驅(qū)動(dòng)器113和 114上。數(shù)據(jù)塊1110 1112和1120 1122將被示出和討論為駐留在驅(qū)動(dòng)器111和112 上。應(yīng)當(dāng)注意,驅(qū)動(dòng)器111 114可以是實(shí)際的物理驅(qū)動(dòng)器或者虛擬驅(qū)動(dòng)器。因此,可以按數(shù)據(jù)塊1110 1112和1120 1122(以及其他數(shù)據(jù)塊,未示出)以及校正子塊1130 1132和1140 1142的多種組合或映射,來存儲包括一個(gè)或更多個(gè)數(shù)據(jù)塊、第一校正子塊和第二校正子塊的RAID條帶。RAID控制器120包括第一校正子引擎121。第一校正子引擎121可以是至少基于數(shù)據(jù)塊1110 1112和1120 1122來計(jì)算和/或檢查第一存儲的校正子塊1130 1132 的模塊或過程。第一校正子引擎121可以包括用于增加第一存儲的校正子塊1130 1132 的計(jì)算和/或檢查的性能的專用硬件。在一個(gè)實(shí)施例中,第一校正子引擎可以計(jì)算數(shù)據(jù)塊 1110 1112的按位異或O(OR)以計(jì)算和/或檢查第一存儲的校正子塊1130 1132。RAID控制器120包括第二校正子引擎122。第二校正子引擎122可以是至少基于數(shù)據(jù)塊1110 1112和1120 1122來計(jì)算和/或檢查第二存儲的校正子塊1140 1142 的模塊或過程。第二校正子引擎122可以包括用于增加第二存儲的校正子塊1140 1142 的計(jì)算和/或檢查的性能的專用硬件。在一個(gè)實(shí)施例中,第二校正子引擎可以計(jì)算數(shù)據(jù)塊 1110 1112和1120 1122的里德-所羅門碼以計(jì)算和/或檢查第二存儲的校正子塊 1140 1142。然而,應(yīng)當(dāng)理解,可以使用提供RAID 6功能的其他方法或編碼。例如,可以使用正交雙重奇偶校驗(yàn)數(shù)據(jù)和對角奇偶性來實(shí)現(xiàn)RAID 6功能。RAID控制器120可以將虛擬卷140投影(project)到主機(jī)130。RAID控制器120 可以將虛擬卷141 142投影到主機(jī)131。RAID控制器120還可以投影另外的虛擬卷。然而,為了簡要起見從圖1中省略了這些。一旦由RAID配置創(chuàng)建了虛擬卷140 142,則主機(jī)計(jì)算機(jī)130 131可以訪問虛擬卷140 142。在一個(gè)實(shí)施例中,RAID控制器120隔離并校正數(shù)據(jù)塊1110 1112和1120 1122 或者校正子塊1130 1132和1140 1142。RAID控制器120校正的錯(cuò)誤由數(shù)據(jù)塊1110 1112和1120 1122所存儲的數(shù)據(jù)與校正子塊1130 1132和1140 1142中的至少一個(gè)之間的失配來表示。RAID控制器120讀取盤陣列110所存儲的RAID條帶的數(shù)據(jù)塊和校正子塊。RAID 控制器120基于從RAID條帶讀取的數(shù)據(jù)計(jì)算第一校正子塊和第二校正子塊。將這些計(jì)算的校正子塊與盤陣列110上已存儲的校正子塊(例如,存儲的校正子塊)比較。這些比較的結(jié)果可以導(dǎo)致創(chuàng)建或存儲計(jì)算的和存儲的校正子塊的等同性的指示符。如果存儲的和計(jì)算的校正子塊匹配,則RAID控制器120未找到數(shù)據(jù)塊1110 1112和1120 1122存儲的數(shù)據(jù)與校正子塊1130 1132和1140 1142中的任一個(gè)之間的失配。如果第一計(jì)算的校正子塊與第一存儲的校正子塊不匹配,并且第二計(jì)算的校正子塊與第二存儲的校正子塊匹配,則RAID控制器120確定條帶中的該數(shù)據(jù)、第二存儲的校正子塊和第一計(jì)算的校正子塊是正確的。因此,RAID控制器120將第一計(jì)算的校正子塊寫入盤陣列110。如果第二計(jì)算的校正子塊與第二存儲的校正子塊不匹配,并且第一計(jì)算的校正子塊與第一存儲的校正子塊匹配,則RAID控制器120確定條帶中的該數(shù)據(jù)、第一存儲的校正子塊和第二計(jì)算的校正子塊是正確的。因此,RAID控制器120將第二計(jì)算的校正子塊寫入盤陣列110。如果第一計(jì)算的校正子塊與第一存儲的校正子塊不匹配,并且第二計(jì)算的校正子塊與第二存儲的校正子塊不匹配,則RAID控制器120確定數(shù)據(jù)塊1110 1112和1120 1122中的一個(gè)或更多個(gè)很可能是不正確的。RAID控制器120繼續(xù)確定RAID條帶中的數(shù)據(jù)塊中的哪個(gè)或哪些數(shù)據(jù)塊與其他數(shù)據(jù)塊以及第一和第二(存儲的或計(jì)算的)校正子塊不一致。RAID控制器120選擇第一數(shù)據(jù)塊。利用RAID條帶的其他數(shù)據(jù)塊和第一存儲的校正子塊重構(gòu)該第一數(shù)據(jù)塊。隨后使用重構(gòu)的第一數(shù)據(jù)塊連同其他數(shù)據(jù)塊來計(jì)算新的第二校正子塊。將該新的第二校正子塊與第二存儲的校正子塊比較。如果新的第二校正子塊和第二存儲的校正子塊匹配,則將該第一數(shù)據(jù)塊標(biāo)記為保存壞數(shù)據(jù)的可疑者。對于RAID條帶中的每個(gè)數(shù)據(jù)塊重復(fù)該過程。該標(biāo)記可以導(dǎo)致創(chuàng)建或存儲與相應(yīng)的塊關(guān)聯(lián)的可疑塊指示符。一旦RAID條帶中的所有的所述數(shù)據(jù)塊均已如被上文所述地掃描,則RAID控制器 120確定是否不止一個(gè)數(shù)據(jù)塊已被標(biāo)記為保存壞數(shù)據(jù)的可疑者。如果單個(gè)數(shù)據(jù)塊已被識別為保存壞數(shù)據(jù)的可疑者,則RAID控制器120從RAID條帶的第一存儲的校正子塊和其他數(shù)據(jù)塊重構(gòu)(或者使用先前計(jì)算的)該塊的數(shù)據(jù)。如果不止一個(gè)驅(qū)動(dòng)器已被識別為保存壞數(shù)據(jù)的可疑者,則RAID控制器120可以重新生成(或者使用先前計(jì)算的)第一和第二計(jì)算的校正子塊并且將它們中的一個(gè)或兩者寫入盤陣列110。應(yīng)當(dāng)理解,寫入重新生成的或者先前計(jì)算的第一和第二計(jì)算的校正子塊中的一個(gè)或更多個(gè)是可選的步驟。在一個(gè)實(shí)施例中, RAID控制器120可以設(shè)定的指示符,該指示符將整個(gè)RAID條帶標(biāo)記為被懷疑保存壞數(shù)據(jù) (和/或一個(gè)或更多個(gè)壞校正子)。圖2是示出具有簡單的奇偶性(P)和里德-所羅門(Q)冗余信息的RAID存儲系統(tǒng)的框圖。在圖2中,存儲系統(tǒng)200包括盤陣列210、RAID控制器220、主機(jī)230、主機(jī)231、虛擬卷M0、虛擬卷241和虛擬卷對2。盤陣列210至少包括驅(qū)動(dòng)器211 214。盤陣列210 也可以包括更多的盤驅(qū)動(dòng)器。然而,為了簡要起見從圖2中省略了這些。第一驅(qū)動(dòng)器211 包括數(shù)據(jù)塊2110、2111和2112。第二驅(qū)動(dòng)器212包括數(shù)據(jù)塊2120、2121和2122。第三驅(qū)動(dòng)器213包括存儲的P校正子塊2130、2131和2132。第四驅(qū)動(dòng)器214包括存儲的Q校正子土夬 2140,2141 和 2142。盤陣列210和驅(qū)動(dòng)器211 214操作耦合到RAID控制器220。因此,RAID控制器 220可以進(jìn)行操作以對驅(qū)動(dòng)器211 214以及塊2110 2112、2120 2122、2130 2132 和2140 2142進(jìn)行控制、跨盤和/或條帶化,用以提供RAID級別6 (RAID 6)功能。RAID 6可以使用塊級條帶化,兩個(gè)奇偶塊跨所有成員盤分布。該跨盤和/或條帶化可以導(dǎo)致存儲的P校正子塊2130 2132和存儲的Q校正子塊2140 2142實(shí)際上駐留在驅(qū)動(dòng)器211 214中的一個(gè)或更多個(gè)上。同樣地,數(shù)據(jù)塊2110 2112和2120 2122可以駐留在驅(qū)動(dòng)器 211 214中的一個(gè)或更多個(gè)上。然而,為了清楚和簡要起見,存儲的P校正子塊2130 2132和存儲的Q校正子塊2140 2142將被示出和討論為駐留在驅(qū)動(dòng)器213和214上。數(shù)據(jù)塊2110 2112和2120 2122將被示出和討論為駐留在驅(qū)動(dòng)器211和212上。應(yīng)當(dāng)注意,驅(qū)動(dòng)器211 214可以是實(shí)際的物理驅(qū)動(dòng)器或者虛擬驅(qū)動(dòng)器。因此,可以按數(shù)據(jù)塊 2110 2112和2120 2122 (及其他數(shù)據(jù)塊,未示出)以及存儲的P校正子塊2130 2132 和存儲的Q校正子塊2140 2142的多種組合或映射,來存儲包括一個(gè)或更多個(gè)數(shù)據(jù)塊、P 校正子塊和Q校正子塊的RAID條帶。RAID控制器220包括P校正子引擎221。P校正子引擎221可以是至少基于數(shù)據(jù)塊2110 2112和2120 2122來計(jì)算和/或檢查存儲的P校正子塊2130 2132的模塊或過程。P校正子引擎221可以包括用于增加存儲的P校正子塊2130 2132的計(jì)算和/ 或檢查的性能的專用硬件。在一個(gè)實(shí)施例中,P校正子引擎計(jì)算數(shù)據(jù)塊2110 2112的按位異或O(OR)以計(jì)算和/或檢查存儲的P校正子塊2130 2132。RAID控制器220包括Q校正子引擎222。Q校正子引擎222可以是至少基于數(shù)據(jù)塊2110 2112和2120 2122來計(jì)算和/或檢查存儲的Q校正子塊2140 2142的模塊或過程。Q校正子引擎222可以包括用于增加存儲的Q校正子塊2140 2142的計(jì)算和/ 或檢查的性能的專用硬件。在一個(gè)實(shí)施例中,Q校正子引擎可以計(jì)算數(shù)據(jù)塊2110 2112的里德-所羅門碼以計(jì)算和/或檢查存儲的Q校正子塊2140 2142。RAID控制器220可以將虛擬卷240投影到主機(jī)230。RAID控制器220可以將虛擬卷241 242投影到主機(jī)231。RAID控制器220還可以投影另外的虛擬卷。然而,為了簡要起見從圖2中省略了這些。一旦由RAID配置創(chuàng)建了虛擬卷240 M2,則主機(jī)計(jì)算機(jī) 230 231可以訪問虛擬卷240 M2。在一個(gè)實(shí)施例中,RAID控制器220隔離并校正數(shù)據(jù)塊2110 2112和2120 2122 或者存儲的P和Q校正子塊2130 2132和2140 2142。RAID控制器220校正的錯(cuò)誤由數(shù)據(jù)塊2110 2112和2120 2122所存儲的數(shù)據(jù)與RAID條帶的存儲的P校正子塊2130 2132和存儲的Q校正子塊2140 2142中的至少一個(gè)之間的失配來表示。RAID控制器220讀取盤陣列210所存儲的RAID條帶的數(shù)據(jù)塊以及P和Q校正子塊。RAID控制器220基于從RAID條帶讀取的數(shù)據(jù)塊計(jì)算P校正子塊和Q校正子塊(分別表示為P。和Q。)。將這些計(jì)算的校正子塊(P。和Q。)與盤陣列210上已存儲的校正子塊(分別表示為Ps和(U比較。這些比較的結(jié)果可以導(dǎo)致創(chuàng)建或存儲計(jì)算的和存儲的校正子塊的等同性的指示符。如果存儲的和計(jì)算的校正子塊兩者匹配(即,如果P。= Ps,并且ζ!。= Qs),則RAID 控制器220未找到存儲的數(shù)據(jù)塊2110 2112和2120 2122與RAID條帶的存儲的P校正子塊2130 2132和存儲的Q校正子塊2140 2142中的任一個(gè)之間的失配。如果計(jì)算的P校正子塊與存儲的P校正子塊不匹配,并且計(jì)算的Q校正子塊與存儲的Q校正子塊匹配(即,如果P。Φ Ps,并且A = ,則RAID控制器220確定條帶中的所述數(shù)據(jù)塊、存儲的 Q校正子塊和計(jì)算的P校正子塊是正確的。因此,RAID控制器220將計(jì)算的P校正子塊Pc 寫入盤陣列210。如果計(jì)算的Q校正子塊與存儲的Q校正子塊不匹配,并且計(jì)算的P校正子塊與存儲的P校正子塊匹配(即,如果P。= Ps,并且A φ Qs),則RAID控制器220確定條帶中的所述數(shù)據(jù)塊、存儲的P校正子塊和計(jì)算的Q校正子塊是正確的。因此,RAID控制器220將計(jì)算的Q校正子塊A寫入盤陣列210。如果計(jì)算的P校正子塊與存儲的P校正子塊不匹配,并且計(jì)算的Q校正子塊與存儲的Q校正子塊不匹配(即,如果P。^ Ps,并且Q。^ Qs),則RAID控制器220確定與RAID條帶關(guān)聯(lián)的數(shù)據(jù)塊2110 2112和2120 2122中的一個(gè)或更多個(gè)很可能是不正確的。RAID 控制器220繼續(xù)確定RAID條帶中的哪個(gè)或哪些數(shù)據(jù)塊與其他數(shù)據(jù)塊以及存儲的P和Q校正子塊不一致。為了確定RAID條帶中的哪個(gè)或哪些數(shù)據(jù)塊與其他數(shù)據(jù)塊以及存儲的P和Q校正子塊不一致,RAID控制器220選擇第一數(shù)據(jù)塊。利用RAID條帶的其他數(shù)據(jù)塊和存儲的P 校正子塊重構(gòu)該第一數(shù)據(jù)塊。隨后使用重構(gòu)的第一數(shù)據(jù)塊連同其他數(shù)據(jù)塊來計(jì)算新的Q校正子塊(表示為化)。將該新的Q校正子塊與存儲的Q校正子塊比較。如果新的Q校正子塊和存儲的Q校正子塊匹配(即,I = Qs),則將該第一數(shù)據(jù)塊選擇作為保存壞數(shù)據(jù)的可疑者。該標(biāo)記可以導(dǎo)致創(chuàng)建或存儲與該數(shù)據(jù)塊關(guān)聯(lián)的可疑塊指示符。對于RAID條帶中的每個(gè)數(shù)據(jù)塊重復(fù)該過程。一旦RAID條帶中的所有的所述數(shù)據(jù)塊均已被如上文所述地掃描,則RAID控制器 220確定是否不止一個(gè)數(shù)據(jù)塊已被標(biāo)記為保存壞數(shù)據(jù)的可疑者。如果單個(gè)驅(qū)動(dòng)器已被識別為保存壞數(shù)據(jù)的可疑者,則RAID控制器220從RAID條帶的存儲的P校正子塊和其他數(shù)據(jù)塊重構(gòu)(或者使用先前計(jì)算的)該塊的數(shù)據(jù)。如果不止一個(gè)驅(qū)動(dòng)器已被識別為保存壞數(shù)據(jù)的可疑者,則RAID控制器220可以重新生成計(jì)算的P和Q校正子塊并且將它們中的一個(gè)或兩者寫入盤陣列210 (或者使用先前計(jì)算的P。和Q。)。應(yīng)當(dāng)理解,寫入重新生成的或者先前計(jì)算的P和Q校正子塊中一個(gè)或更多個(gè)是可選的步驟。在一個(gè)實(shí)施例中,RAID控制器220 可以設(shè)定如下的指示符,該指示符將整個(gè)RAID條帶標(biāo)記為被懷疑保存壞數(shù)據(jù)(和/或一個(gè)或更多個(gè)壞的P和Q校正子塊)。圖3是示出維持?jǐn)?shù)據(jù)正確性的方法的流程圖。圖3中示出的步驟可以由存儲系統(tǒng) 100和存儲系統(tǒng)200的一個(gè)或更多個(gè)元件執(zhí)行。接收包括多個(gè)數(shù)據(jù)塊、第一存儲的校正子塊和第二存儲的校正子塊的RAID條帶 (302)。例如,RAID控制器220可以從盤陣列210接收RAID條帶。該RAID條帶可以包括多個(gè)數(shù)據(jù)塊、存儲的P校正子塊(Ps)和存儲的Q校正子塊0U。確定第一計(jì)算的校正子塊和第二計(jì)算的校正子塊(304)。例如,P校正子引擎221可以基于RAID條帶中的所述多個(gè)數(shù)據(jù)塊計(jì)算P校正子塊(P。)。Q校正子引擎222可以基于RAID條帶中的所述多個(gè)數(shù)據(jù)塊計(jì)算Q校正子塊(Qc)。將計(jì)算的校正子塊與存儲的校正子塊進(jìn)行比較(306)。例如,RAID控制器220可以將盒304中計(jì)算的校正子塊P。和A分別與在框302中接收的存儲的校正子塊Ps和A進(jìn)行比較。存儲的校正子塊兩者都被確定為不等同于它們相應(yīng)的計(jì)算的校正子塊(308)。例如,RAID控制器220可以確定計(jì)算的P校正子塊與存儲的P校正子塊不匹配,并且計(jì)算的 Q校正子塊與存儲的Q校正子塊不匹配(即,如果P。Φ Ps,并且A Φ Qs)。選擇第一可疑數(shù)據(jù)塊(310)。例如,RAID控制器220可以選擇RAID條帶中的數(shù)據(jù)塊中的第一數(shù)據(jù)塊作為具有不正確的或損壞的數(shù)據(jù)的可疑者。下文參照圖4更詳細(xì)地討論該選擇過程。如果存在第二可疑數(shù)據(jù)塊,則流程前往框316。如果不存在第二可疑數(shù)據(jù)塊,則流程前往框314(31幻。例如,RAID控制器220可以確定僅存在單個(gè)可疑數(shù)據(jù)塊。如果不存在第二可疑數(shù)據(jù)塊,則使用第一存儲的校正子塊重構(gòu)第一可疑數(shù)據(jù)塊(314)。例如,RAID控制器220可以使用存儲的P校正子塊(Ps)和來自RAID條帶的其他數(shù)據(jù)塊來重構(gòu)被懷疑具有不正確的或損壞的數(shù)據(jù)的數(shù)據(jù)塊??梢杂蒖AID控制器220將該重構(gòu)的數(shù)據(jù)塊寫入盤陣列 210,以去除存儲的RMD條帶中的所述多個(gè)數(shù)據(jù)塊與所述P和Q校正子塊之間的不一致。如果存在第二可疑數(shù)據(jù)塊,則使用所述多個(gè)數(shù)據(jù)塊重構(gòu)第一和第二存儲的校正子塊(316)。例如,RAID控制器220可以使用RAID條帶的所述數(shù)據(jù)塊來計(jì)算新的P校正子塊和新的Q校正子塊??梢杂蒖AID控制器220將這些重構(gòu)的P和Q校正子塊寫入盤陣列 210,以去除存儲的RAID條帶中的所述多個(gè)數(shù)據(jù)塊和校正子數(shù)據(jù)塊之間的不一致。應(yīng)當(dāng)理解,框316是可選的,并且在一些實(shí)施例中可以不執(zhí)行重構(gòu)的第一和第二校正子塊的寫入。 在一個(gè)實(shí)施例中,可以存儲這樣的指示符整個(gè)RAID條帶被懷疑保存壞的數(shù)據(jù)(和/或校正子)。圖4是示出維持?jǐn)?shù)據(jù)正確性的方法的流程圖。圖4中示出的步驟可以由存儲系統(tǒng) 100和存儲系統(tǒng)200的一個(gè)或更多個(gè)元件執(zhí)行。選擇數(shù)據(jù)塊并且使用第一存儲的校正子塊重構(gòu)該數(shù)據(jù)塊(402)。例如,RAID控制器220可以選擇數(shù)據(jù)塊。可以使用RAID條帶的其他數(shù)據(jù)塊和P校正子塊來重構(gòu)該數(shù)據(jù)塊。 重構(gòu)的數(shù)據(jù)塊用于確定重構(gòu)的第二校正子塊004)。例如,RAID控制器220可以使用重構(gòu)的數(shù)據(jù)塊來計(jì)算重構(gòu)的Q校正子塊(Q》。將重構(gòu)的第二校正子塊與第二存儲的校正子塊相比較006)。例如,RAID控制器 220可以將重構(gòu)的Q校正子塊他)與RAID條帶的存儲的Q校正子塊OU比較。如果重構(gòu)的第二校正子塊與第二存儲的校正子塊等同,則將該數(shù)據(jù)塊被選擇作為可疑數(shù)據(jù)塊(408)。 例如,如果重構(gòu)的Q校正子塊等于RAID條帶的存儲的Q校正子塊(即,A = Qs),則RAID控制器220可以將該數(shù)據(jù)塊選擇作為具有不正確的或損壞的數(shù)據(jù)的可疑者。一旦所有塊均已被選擇,則流程進(jìn)行至框412并且完成該過程。如果不是所有塊都已被選擇,則流程前進(jìn)回到框402以選擇待測試的新的數(shù)據(jù)塊,用于選擇并且標(biāo)記被懷疑具有不正確的或損壞的數(shù)據(jù)的數(shù)據(jù)塊。上文描述的系統(tǒng)、驅(qū)動(dòng)器、控制器、引擎和功能可以通過一個(gè)或更多個(gè)計(jì)算機(jī)系統(tǒng)實(shí)現(xiàn)或執(zhí)行。上文描述的方法可以存儲在計(jì)算機(jī)可讀介質(zhì)上。存儲系統(tǒng)100和存儲系統(tǒng)200 的許多元件可以是計(jì)算機(jī)系統(tǒng)、可以包括計(jì)算機(jī)系統(tǒng)、或者可以包含計(jì)算機(jī)系統(tǒng)。這包括 (但不限于)RAID控制器120、RAID控制器220、第一校正子引擎121、第二校正子引擎122、 盤陣列110、盤驅(qū)動(dòng)器111 114、主機(jī)130 131、P校正子引擎221、Q校正子引擎222、盤陣列210、盤驅(qū)動(dòng)器211 214和主機(jī)230 231。圖5示出了計(jì)算機(jī)系統(tǒng)的框圖。計(jì)算機(jī)系統(tǒng)500包括通信接口 520、處理系統(tǒng)530、 存儲系統(tǒng)540和用戶接口 560。處理系統(tǒng)530操作耦合到存儲系統(tǒng)M0。存儲系統(tǒng)540存儲軟件550和數(shù)據(jù)570。處理系統(tǒng)530操作耦合到通信接口 520和用戶接口 560。計(jì)算機(jī)系統(tǒng)500可以包括被編程的通用計(jì)算機(jī)。計(jì)算機(jī)系統(tǒng)500可以包括微處理器。計(jì)算機(jī)系統(tǒng) 500可以包括可編程的或?qū)S玫碾娐贰S?jì)算機(jī)系統(tǒng)500可以分布在一起包括元件520 570 的多個(gè)設(shè)備、處理器、存儲裝置和/或接口中。通信接口 520可以包括網(wǎng)絡(luò)接口、調(diào)制解調(diào)器、端口、總線、鏈路、收發(fā)器、或者其他通信設(shè)備。通信接口 520可以分布在多個(gè)通信設(shè)備當(dāng)中。處理系統(tǒng)530可以包括微處理器、微控制器、邏輯電路、或者其他處理設(shè)備。處理系統(tǒng)530可以分布在多個(gè)處理設(shè)備當(dāng)中。用戶接口 560可以包括鍵盤、鼠標(biāo)、語音識別接口、麥克風(fēng)和揚(yáng)聲器、圖形顯示器、觸摸屏幕、或者其他類型的用戶接口設(shè)備。用戶接口 560可以分布在多個(gè)接口設(shè)備當(dāng)中。存儲系統(tǒng)540可以包括盤、磁帶、集成電路、RAM、R0M、網(wǎng)絡(luò)存儲、服務(wù)器或者其他存儲器功能。存儲系統(tǒng)540可以是計(jì)算機(jī)可讀介質(zhì)。存儲系統(tǒng)540可以分布在多個(gè)存儲器設(shè)備當(dāng)中。處理系統(tǒng)530從存儲系統(tǒng)540檢索和執(zhí)行軟件550。處理系統(tǒng)可以檢索和存儲數(shù)據(jù)570。處理系統(tǒng)還可以經(jīng)由通信接口 520檢索和存儲數(shù)據(jù)。處理系統(tǒng)550可以創(chuàng)建或修改軟件550或數(shù)據(jù)570以實(shí)現(xiàn)有形(tangible)結(jié)果。處理系統(tǒng)可以控制通信接口 520或用戶接口 570以實(shí)現(xiàn)有形結(jié)果。處理系統(tǒng)可以經(jīng)由通信接口 520檢索和執(zhí)行遠(yuǎn)程存儲的軟件。軟件550和遠(yuǎn)程存儲的軟件可以包括操作系統(tǒng)、實(shí)用程序、驅(qū)動(dòng)程序、聯(lián)網(wǎng)軟件、 以及典型地由計(jì)算機(jī)系統(tǒng)執(zhí)行的其他軟件。軟件550可以包括應(yīng)用程序、小程序(applet)、 固件或者典型地由計(jì)算機(jī)系統(tǒng)執(zhí)行的其他形式的機(jī)器可讀處理指令。當(dāng)由處理系統(tǒng)530執(zhí)行時(shí),軟件550或者遠(yuǎn)程存儲的軟件可以引導(dǎo)計(jì)算機(jī)系統(tǒng)500如這里所描述地操作。本發(fā)明的前面的描述是出于說明和描述的目的而呈現(xiàn)的。其意圖并非是窮舉性的或者將本發(fā)明限于所公開的精確形式,而是考慮到以上教導(dǎo),其他修改和變化是可能的。為了最佳地解釋本發(fā)明的原理及其實(shí)際應(yīng)用而選擇和描述了實(shí)施例,由此以使本領(lǐng)域的技術(shù)人員能夠最佳地以適于所考慮的特定用途的各種實(shí)施例和各種修改方案來利用本發(fā)明。所附權(quán)利要求應(yīng)被解釋為涵蓋除了現(xiàn)有技術(shù)所限制的范圍以外的本發(fā)明的其他可替選的實(shí)施例。
權(quán)利要求
1.一種維持?jǐn)?shù)據(jù)正確性的方法,包括接收包括多個(gè)數(shù)據(jù)塊、第一存儲的校正子塊和第二存儲的校正子塊的RAID條帶; 基于所述多個(gè)數(shù)據(jù)塊,確定第一計(jì)算的校正子塊和第二計(jì)算的校正子塊; 基于對所述第一存儲的校正子塊和所述第一計(jì)算的校正子塊不等同的確定,以及對所述第二存儲的校正子塊和所述第二計(jì)算的校正子塊不等同的確定,使用如下方法選擇所述多個(gè)數(shù)據(jù)塊中的可疑數(shù)據(jù)塊,該方法包括基于所述第一存儲的校正子塊和所述多個(gè)數(shù)據(jù)塊的子集,確定所述多個(gè)數(shù)據(jù)塊中的重構(gòu)的一個(gè)數(shù)據(jù)塊,所述多個(gè)數(shù)據(jù)塊的所述子集不包括所述多個(gè)數(shù)據(jù)塊中的一個(gè)數(shù)據(jù)塊;基于所述多個(gè)數(shù)據(jù)塊的該子集和所述多個(gè)數(shù)據(jù)塊中的所述重構(gòu)的一個(gè)數(shù)據(jù)塊,確定重構(gòu)的第二校正子塊;以及,基于對所述重構(gòu)的第二校正子塊和所述第二存儲的校正子塊是等同的確定,將所述多個(gè)數(shù)據(jù)塊中的所述的一個(gè)數(shù)據(jù)塊選擇作為可疑數(shù)據(jù)塊。
2.如權(quán)利要求1所述的方法,其中,通過所述多個(gè)數(shù)據(jù)塊的按位M)R來確定所述第一存儲的校正子塊,以及,通過里德-所羅門碼來確定所述第二存儲的校正子塊。
3.如權(quán)利要求1所述的方法,進(jìn)一步包括使用如下方法選擇所述多個(gè)數(shù)據(jù)塊中的第二可疑數(shù)據(jù)塊,該方法包括 基于所述第一存儲的校正子塊和所述多個(gè)數(shù)據(jù)塊的第二子集,確定所述多個(gè)數(shù)據(jù)塊中的重構(gòu)的第二數(shù)據(jù)塊,所述多個(gè)數(shù)據(jù)塊的所述第二子集不包括所述多個(gè)數(shù)據(jù)塊中的第二數(shù)據(jù)塊;基于所述多個(gè)數(shù)據(jù)塊的所述第二子集和所述多個(gè)數(shù)據(jù)塊中的所述重構(gòu)的第二數(shù)據(jù)塊, 確定第二重構(gòu)的第二校正子塊;以及,基于對所述第二重構(gòu)的第二校正子塊和所述第二存儲的校正子塊是等同的確定,將所述多個(gè)數(shù)據(jù)塊中的所述第二數(shù)據(jù)塊選擇作為所述第二可疑數(shù)據(jù)塊。
4.如權(quán)利要求3所述的方法,進(jìn)一步包括使用所述多個(gè)數(shù)據(jù)塊重新生成并存儲所述第一存儲的校正子塊和所述第二存儲的校正子塊。
5.如權(quán)利要求1所述的方法,進(jìn)一步包括基于對所述第一存儲的校正子塊和所述第一計(jì)算的校正子塊是等同的確定,將所述第二計(jì)算的校正子塊存儲在所述RAID條帶中。
6.如權(quán)利要求1所述的方法,進(jìn)一步包括基于對所述第二存儲的校正子塊和所述第二計(jì)算的校正子塊是等同的確定,將所述第一計(jì)算的校正子塊存儲在所述RAID條帶中。
7.一種維持RAID條帶中的一致的數(shù)據(jù)和校正子的方法,包括讀取所述RAID條帶,所述RAID條帶包括多個(gè)數(shù)據(jù)塊、第一存儲的校正子塊和第二存儲的校正子塊;基于所述多個(gè)數(shù)據(jù)塊,確定第一計(jì)算的校正子塊; 基于所述多個(gè)數(shù)據(jù)塊,確定第二計(jì)算的校正子塊;通過將所述第一存儲的校正子塊與所述第一計(jì)算的校正子塊比較,來確定第一等同性指示符;通過將所述第二存儲的校正子塊與所述第二計(jì)算的校正子塊比較,來確定第二等同性指示符;如果所述第一等同性指示符指示所述第一存儲的校正子塊和所述第一計(jì)算的校正子塊不等同,并且,如果所述第二等同性指示符指示所述第二存儲的校正子塊和所述第二計(jì)算的校正子塊不等同,則使用如下方法確定至少一個(gè)可疑塊,該方法包括 對于所述多個(gè)數(shù)據(jù)塊中的每一個(gè)數(shù)據(jù)塊使用所述第一存儲的校正子塊重構(gòu)所述數(shù)據(jù)塊中的重構(gòu)的一個(gè)數(shù)據(jù)塊; 使用所述數(shù)據(jù)塊中的所述重構(gòu)的一個(gè)數(shù)據(jù)塊和除了所述多個(gè)數(shù)據(jù)塊中的所述的一個(gè)數(shù)據(jù)塊以外的所述多個(gè)數(shù)據(jù)塊,來確定重構(gòu)的第二校正子塊;確定與所述數(shù)據(jù)塊中的所述的一個(gè)數(shù)據(jù)塊關(guān)聯(lián)的可疑塊指示符,所述可疑塊指示符指示所述第二存儲的校正子塊是否與所述重構(gòu)的第二校正子塊等同;以及,如果所述多個(gè)數(shù)據(jù)塊中存在單個(gè)數(shù)據(jù)塊具有指示所述第二存儲的校正子塊與所述重構(gòu)的第二校正子塊等同的關(guān)聯(lián)的可疑塊指示符,則將與所述多個(gè)數(shù)據(jù)塊中的該單個(gè)數(shù)據(jù)塊關(guān)聯(lián)的所述數(shù)據(jù)塊中的所述重構(gòu)的一個(gè)數(shù)據(jù)塊存儲在RAID條帶中。
8.如權(quán)利要求7所述的方法,其中,所述多個(gè)數(shù)據(jù)塊、所述第一存儲的校正子塊、和所述第二存儲的校正子塊每一均與多個(gè)盤驅(qū)動(dòng)器中的一個(gè)關(guān)聯(lián)。
9.如權(quán)利要求7所述的方法,其中,通過所述多個(gè)數(shù)據(jù)塊的按位XOR來確定所述第一計(jì)算的校正子塊,以及,通過里德-所羅門碼來確定所述第二計(jì)算的校正子塊。
10.如權(quán)利要求7所述的方法,進(jìn)一步包括如果所述多個(gè)數(shù)據(jù)塊中的不止一個(gè)數(shù)據(jù)塊具有指示所述第二存儲的校正子塊與所述重構(gòu)的第二校正子塊不等同的關(guān)聯(lián)的可疑塊指示符,則將所述第一計(jì)算的校正子塊和所述第二計(jì)算的校正子塊存儲在所述RAID條帶中。
11.一種存儲系統(tǒng),包括多個(gè)盤驅(qū)動(dòng)器,被配置為提供RAID條帶;RAID處理器,被配置為接收所述RAID條帶,所述RAID條帶包括多個(gè)數(shù)據(jù)塊、第一存儲的校正子塊和第二存儲的校正子塊,所述RAID處理器被配置為基于所述多個(gè)數(shù)據(jù)塊確定第一計(jì)算的校正子塊和第二計(jì)算的校正子塊; 確定所述第一存儲的校正子塊和所述第一計(jì)算的校正子塊不等同,以及確定所述第二存儲的校正子塊和所述第二計(jì)算的校正子塊不等同;基于所述第一存儲的校正子塊和所述多個(gè)數(shù)據(jù)塊的子集,確定所述多個(gè)數(shù)據(jù)塊中的重構(gòu)的一個(gè)數(shù)據(jù)塊,所述多個(gè)數(shù)據(jù)塊的所述子集不包括所述多個(gè)數(shù)據(jù)塊中的一個(gè)數(shù)據(jù)塊;基于所述多個(gè)數(shù)據(jù)塊的所述子集和所述多個(gè)數(shù)據(jù)塊中的所述重構(gòu)的一個(gè)數(shù)據(jù)塊,確定重構(gòu)的第二校正子塊;以及,基于對所述重構(gòu)的第二校正子塊和所述第二存儲的校正子塊是等同的確定,將所述多個(gè)數(shù)據(jù)塊中的所述的一個(gè)數(shù)據(jù)塊選擇作為可疑數(shù)據(jù)塊。
12.如權(quán)利要求1所述的存儲系統(tǒng),其中,通過所述多個(gè)數(shù)據(jù)塊的按位XOR來確定所述第一存儲的校正子塊,以及,通過里德-所羅門碼來確定所述第二存儲的校正子塊。
13.如權(quán)利要求11所述的存儲系統(tǒng),其中,所述RAID處理器進(jìn)一步被配置為 選擇所述多個(gè)數(shù)據(jù)塊中的第二可疑數(shù)據(jù)塊。
14.如權(quán)利要求13所述的存儲系統(tǒng),其中,所述RAID處理器進(jìn)一步被配置為使用所述多個(gè)數(shù)據(jù)塊重新生成所述第一存儲的校正子塊和所述第二存儲的校正子塊。
15.如權(quán)利要求11所述的存儲系統(tǒng),其中,所述RAID處理器進(jìn)一步被配置為基于對所述第一存儲的校正子塊和所述第一計(jì)算的校正子塊是等同的確定,將所述第一計(jì)算的校正子塊存儲在多個(gè)盤驅(qū)動(dòng)器中。
16.一種計(jì)算機(jī)可讀介質(zhì),其上存儲有用于維持RAID條帶中的一致的數(shù)據(jù)和校正子的指令,當(dāng)由計(jì)算機(jī)執(zhí)行所述指令時(shí),其至少指令計(jì)算機(jī)讀取所述RAID條帶,所述RAID條帶包括多個(gè)數(shù)據(jù)塊、第一存儲的校正子塊和第二存儲的校正子塊;基于所述多個(gè)數(shù)據(jù)塊,確定第一計(jì)算的校正子塊;基于所述多個(gè)數(shù)據(jù)塊,確定第二計(jì)算的校正子塊;通過將所述第一存儲的校正子塊與所述第一計(jì)算的校正子塊比較,來確定第一等同性指示符;通過將所述第二存儲的校正子塊與所述第二計(jì)算的校正子塊比較,來確定第二等同性指示符;如果所述第一等同性指示符指示所述第一存儲的校正子塊和所述第一計(jì)算的校正子塊不等同,并且,如果所述第二等同性指示符指示所述第二存儲的校正子塊和所述第二計(jì)算的校正子塊不等同,則使用如下方法確定至少一個(gè)可疑塊,該方法包括對于所述多個(gè)數(shù)據(jù)塊中的每一個(gè)數(shù)據(jù)塊使用所述第一存儲的校正子塊重構(gòu)所述數(shù)據(jù)塊中的重構(gòu)的一個(gè)數(shù)據(jù)塊;使用所述數(shù)據(jù)塊中的所述重構(gòu)的一個(gè)數(shù)據(jù)塊和除了所述多個(gè)數(shù)據(jù)塊中的所述的一個(gè)數(shù)據(jù)塊以外的所述多個(gè)數(shù)據(jù)塊,來確定重構(gòu)的第二校正子塊;確定與所述數(shù)據(jù)塊中的所述的一個(gè)數(shù)據(jù)塊關(guān)聯(lián)的可疑塊指示符,所述可疑塊指示符指示所述第二存儲的校正子塊是否與所述重構(gòu)的第二校正子塊等同;以及,如果所述多個(gè)數(shù)據(jù)塊中存在單個(gè)數(shù)據(jù)塊具有指示所述第二存儲的校正子塊與所述重構(gòu)的第二校正子塊等同的關(guān)聯(lián)的可疑塊指示符,則將與所述多個(gè)數(shù)據(jù)塊中的該單個(gè)數(shù)據(jù)塊關(guān)聯(lián)的所述數(shù)據(jù)塊中的所述重構(gòu)的一個(gè)數(shù)據(jù)塊存儲在所述RAID條帶中。
17.如權(quán)利要求16所述的計(jì)算機(jī)可讀介質(zhì),其中,所述多個(gè)數(shù)據(jù)塊、所述第一存儲的校正子塊和所述第二存儲的校正子塊每一均與多個(gè)盤驅(qū)動(dòng)器中的一個(gè)關(guān)聯(lián)。
18.如權(quán)利要求16所述的計(jì)算機(jī)可讀介質(zhì),其中,通過所述多個(gè)數(shù)據(jù)塊的按位XOR來確定所述第一計(jì)算的校正子塊,以及,通過里德-所羅門碼來確定所述第二計(jì)算的校正子塊。
19.如權(quán)利要求16所述的計(jì)算機(jī)可讀介質(zhì),其中,進(jìn)一步指令所述計(jì)算機(jī)如果所述多個(gè)數(shù)據(jù)塊中的不止一個(gè)數(shù)據(jù)塊具有指示所述第二存儲的校正子塊與所述重構(gòu)的第二校正子塊不等同的關(guān)聯(lián)的可疑塊指示符,則將所述第一計(jì)算的校正子塊和所述第二計(jì)算的校正子塊存儲在所述RAID條帶中。
全文摘要
本發(fā)明涉及定位和校正損壞的數(shù)據(jù)或校正子塊。公開了一種確定具有損壞的或不正確的數(shù)據(jù)的RAID級別6條帶的數(shù)據(jù)塊的方法和系統(tǒng)。對于條帶的每個(gè)數(shù)據(jù)塊,使用其他數(shù)據(jù)塊和P校正子數(shù)據(jù)塊來創(chuàng)建重構(gòu)的數(shù)據(jù)塊。使用重構(gòu)的數(shù)據(jù)塊和其他數(shù)據(jù)塊來創(chuàng)建新的Q正子數(shù)據(jù)塊。對新的Q校正子數(shù)據(jù)塊和存儲的Q校正子數(shù)據(jù)塊進(jìn)行比較。如果新的Q校正子數(shù)據(jù)塊和存儲的Q校正子數(shù)據(jù)塊匹配,則該數(shù)據(jù)塊被標(biāo)記為被懷疑具有損壞的或不正確的數(shù)據(jù)。針對條帶中的每個(gè)數(shù)據(jù)塊重復(fù)該過程。如果僅存在單個(gè)可疑數(shù)據(jù)塊,則將重構(gòu)的數(shù)據(jù)塊存儲在條帶中替換可疑數(shù)據(jù)塊。
文檔編號G06F11/10GK102222026SQ20101023147
公開日2011年10月19日 申請日期2010年7月15日 優(yōu)先權(quán)日2010年4月16日
發(fā)明者A·巴特瓦拉, T·L·塞居拉, W·G·洛默里諾 申請人:Lsi公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
1
漳浦县| 昌都县| 滨海县| 平乐县| 渝中区| 西丰县| 鹤庆县| 故城县| 泽普县| 徐州市| 鄯善县| 体育| 绿春县| 连平县| 新龙县| 永定县| 理塘县| 上高县| 乌鲁木齐市| 阿拉善盟| 毕节市| 民乐县| 遵义县| 英德市| 咸阳市| 宁阳县| 汕头市| 太仓市| 岑巩县| 静乐县| 孝昌县| 靖宇县| 贵阳市| 邛崃市| 靖江市| 伊金霍洛旗| 莱阳市| 双城市| 房产| 潞西市| 太保市|