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

硬盤驅(qū)動器的自主數(shù)據(jù)擦洗系統(tǒng)及方法

文檔序號:6763517閱讀:154來源:國知局
專利名稱:硬盤驅(qū)動器的自主數(shù)據(jù)擦洗系統(tǒng)及方法
技術(shù)領(lǐng)域
本發(fā)明一般性地涉及硬盤驅(qū)動器,,尤其涉及但不限于獨立磁盤冗余陣列(RAID)系統(tǒng)的硬盤驅(qū)動器。
背景技術(shù)
數(shù)據(jù)完整性是許多數(shù)據(jù)存儲子系統(tǒng)最為關(guān)心的問題。這些子系統(tǒng)使用各種RAID技術(shù)來提供數(shù)據(jù)的冗余,使得當數(shù)據(jù)無法從一個磁盤驅(qū)動器獲取時,該數(shù)據(jù)能夠從RAID子系統(tǒng)的其它驅(qū)動器中重新獲得。多數(shù)子系統(tǒng)僅提供單容錯,因為多容錯的成本很高。不幸的是,不能恢復的讀錯誤(也被稱之為硬錯誤)在磁盤驅(qū)動器中出現(xiàn)。如果即使在進行完所有的驅(qū)動器錯誤恢復過程(ERP)步驟之后,扇區(qū)都不能讀出,就引起這種讀取失敗的情形。這樣的步驟包含調(diào)用所有級別的已經(jīng)實現(xiàn)的錯誤糾正控制(ECC),并使用不同的磁頭偏移量進行重試。當遇到不可恢復的讀取錯誤,而在RAID中所有其它的驅(qū)動器仍然可以訪問時,該扇區(qū)能夠由那些驅(qū)動器重構(gòu)。不過,如果當RAID中的一個驅(qū)動器已經(jīng)失敗時遇到硬錯誤,則讀取失敗的驅(qū)動器中的硬錯誤和其對應(yīng)扇區(qū)是不能恢復的。這造成了數(shù)據(jù)的丟失情況。
為了減少在驅(qū)動器已經(jīng)失敗后遇到硬錯誤的概率,某些存儲子系統(tǒng)實現(xiàn)某種數(shù)據(jù)擦洗(scrubbing)例程,以在實際需要該數(shù)據(jù)之前刷新掉這樣的錯誤。在這種方案中,RAID控制器本身周期性地向每個驅(qū)動器控制器發(fā)出驗證讀(即,不從高速緩存中讀取,而是從磁盤介質(zhì)中讀取)命令,并且循環(huán)遍歷每個驅(qū)動器的每個地址。當一個驅(qū)動控制器遇到不可恢復的錯誤并報告該錯誤時,RAID控制器將利用RAID的冗余性從其它驅(qū)動器重構(gòu)該數(shù)據(jù)。某些子系統(tǒng)在磁盤驅(qū)動器中啟用自動重新分配,使得具有硬錯誤的扇區(qū)自動地被重新分配到空余的位置上。而其它則關(guān)掉自動重新分配,使得RAID控制器能夠決定是否首先嘗試重寫該數(shù)據(jù)回到最初的位置,以檢查問題是否得到清除,從而只有當問題持續(xù)存在(即,介質(zhì)上的劃痕)時,才進行重新分配。在所有這些情形中,RAID控制器記錄不可恢復錯誤的統(tǒng)計數(shù)據(jù)。當這樣的錯誤超過預定的門限時,調(diào)度該驅(qū)動器準備替換。
上述的子系統(tǒng)控制器管理的數(shù)據(jù)擦洗具有兩個缺點。第一,RAID系統(tǒng)控制器的資源需要管理和執(zhí)行該擦洗過程。第二,即使控制器實際不需要數(shù)據(jù),數(shù)據(jù)也從驅(qū)動器返回。這在總線上產(chǎn)生不必要的業(yè)務(wù)量并且可能潛在地退化系統(tǒng)的性能。由于這種限制,數(shù)據(jù)擦洗周期可以比希望的要長。
本發(fā)明認識到上述問題能夠通過在磁盤驅(qū)動器控制器級別上實施數(shù)據(jù)擦洗而得到緩解,而不需要RAID控制器的任何動作,除非遇到了不可恢復的錯誤。

發(fā)明內(nèi)容
硬盤驅(qū)動器包含至少一個存儲磁盤和從磁盤中讀出數(shù)據(jù)和寫入數(shù)據(jù)的驅(qū)動器控制器。驅(qū)動器控制器執(zhí)行這樣的邏輯,包含執(zhí)行需要讀出至少一個數(shù)據(jù)單元和確定該數(shù)據(jù)單元中是否存在錯誤的擦洗周期(scrub cycle)。如果存在,則錯誤被記錄和/或報告。針對隨后的數(shù)據(jù)單元執(zhí)行錯誤檢測邏輯。如果收到用戶數(shù)據(jù)讀出或數(shù)據(jù)寫入請求,則擦洗周期被中斷以完成該請求,然后重新恢復擦洗。
在優(yōu)選實施例中,磁盤驅(qū)動器與RAID系統(tǒng)進行組合,并且由驅(qū)動控制器從RAID控制器接收用戶請求。
在一個非限制性的實施例中,驅(qū)動器控制器邏輯包含在重新恢復擦洗周期之前,在滿足用戶請求隊列中的所有用戶請求之后等待一個延遲周期。延遲周期可以是自適應(yīng)的延遲周期,它取決于從RAID控制器接收的用戶請求的頻率和/或數(shù)量。
磁盤驅(qū)動器可以被劃分成數(shù)據(jù)段(data band)。驅(qū)動器控制器最好維護例如指示最近對段的訪問的表。
可以優(yōu)先對磁盤上與用戶請求所涉及的數(shù)據(jù)直接相鄰的數(shù)據(jù)進行擦洗,同時完成該請求。同樣可以優(yōu)先對比其它數(shù)據(jù)更新近寫入的數(shù)據(jù),和/或比其它磁盤區(qū)域更頻繁訪問的磁盤區(qū)域執(zhí)行擦洗。
另一方面,硬盤驅(qū)動器包含至少一個存儲盤和針對該盤讀出數(shù)據(jù)和寫入數(shù)據(jù)的驅(qū)動器控制器。驅(qū)動器控制器執(zhí)行這樣的邏輯,包含執(zhí)行需要讀出至少一個數(shù)據(jù)單元并確定該數(shù)據(jù)單元中是否存在錯誤的擦洗周期。如果存在錯誤,該錯誤被記錄和報告。對隨后的數(shù)據(jù)單元執(zhí)行錯誤檢測邏輯。如果接收了數(shù)據(jù)讀或?qū)懙挠脩粽埱?,并且如果當前擦洗速率超過了門限速率,則中斷該擦洗周期以完成該請求,然后恢復擦洗周期。否則,不中止擦洗周期中現(xiàn)有擦洗讀取。
在另一個方面,硬盤驅(qū)動器包含至少一個存儲盤和針對該盤讀出數(shù)據(jù)和寫入數(shù)據(jù)的驅(qū)動器控制器。驅(qū)動器控制器執(zhí)行這樣的邏輯,包含執(zhí)行需要讀出至少一個數(shù)據(jù)單元并確定該數(shù)據(jù)單元中是否存在錯誤的擦洗周期。如果存在錯誤,那么該錯誤被記錄和/或報告。對隨后的數(shù)據(jù)單元進行錯誤檢測邏輯??梢詫Ρ鹊诙?shù)據(jù)更新近寫入的第一數(shù)據(jù)執(zhí)行擦洗周期,然后再對第二數(shù)據(jù)執(zhí)行?;蛘撸梢詢?yōu)先對頻繁訪問的磁盤區(qū)域執(zhí)行擦洗周期。


本發(fā)明關(guān)于它的結(jié)構(gòu)和操作的詳細說明,最好能夠參照附圖加以理解,其中同樣的參考數(shù)字表示同樣的部分,其中圖1是與客戶機處理器配合的RAID系統(tǒng)的方框圖;圖2是圖1中所示的系統(tǒng)中一個硬盤驅(qū)動器(HDD)的方框圖;圖3是數(shù)據(jù)擦洗過程的流程圖,示出的是支持有保證擦洗速率(guaranteed rate of scrub)的可選邏輯;圖4是中斷圖3所示的擦洗過程的處理的流程圖,示出了將擦洗的恢復延遲一個固定或自適應(yīng)的周期的可選邏輯,和用于尋機(opportunistic)進行數(shù)據(jù)擦洗的可選邏輯;圖5示出的是利用圖3中的擦洗過程建立有保證擦洗速率的過程的流程圖;圖6是圖3的擦洗過程期間用于選擇要擦洗的下一個數(shù)據(jù)單元的優(yōu)選過程的流程圖;
圖7是圖4的擦洗中斷邏輯期間用于執(zhí)行用戶請求的讀或?qū)懙膬?yōu)選處理過程的流程圖;圖8示出的是優(yōu)選數(shù)據(jù)段表;圖9是維護圖8的表的優(yōu)選處理過程的流程圖;圖10是選擇要擦洗的單元的優(yōu)選處理過程的流程圖。
具體實施例方式
從參照圖1開始,示出的是一般性地標明為10的RAID系統(tǒng),它包含為了存儲和檢索多個硬盤驅(qū)動器(HDD)16中的數(shù)據(jù)而與一個或多個客戶機處理器14通信的RAID控制器12。圖2示出的是本發(fā)明的硬盤驅(qū)動器16,它包含響應(yīng)RAID控制器12的請求而針對一個或多個數(shù)據(jù)存儲盤20讀寫數(shù)據(jù)的驅(qū)動器控制器18。如現(xiàn)有技術(shù)已知的HDD原理所示,每個HDD 16也可以包含固態(tài)數(shù)據(jù)高速緩存22。根據(jù)本發(fā)明的原理,RAID系統(tǒng)10的每個HDD控制器18自主執(zhí)行下述的擦洗邏輯,即每個驅(qū)動器控制器18均負責其自己的盤上的數(shù)據(jù)擦洗,并且不為RAID控制器12所控制地自主進行。
圖3示出的是本發(fā)明的擦洗循環(huán)的邏輯,其最好由驅(qū)動器控制器18無限地重復進行。在開始狀態(tài)24處開始,當如參照圖5所詳細描述的那樣實現(xiàn)有保證擦洗速率時,邏輯移到框26以記錄擦洗周期的開始時間。
當實現(xiàn)無保證擦洗速率時,如參照下面的圖6所討論的或使用其它下面所討論的準則,從框26或從開始狀態(tài)24,該邏輯繼續(xù)進行到框28以選擇下一個數(shù)據(jù)單元進行擦洗。在非限制性的實施例中,數(shù)據(jù)以“段”的形式存儲在磁盤20上,其中段是通過對磁盤的可用空間進行邏輯劃分而建立的。例如,100GB驅(qū)動器可以被劃分成100個均為1GB的段,或1000個均為100MB的段,等等。單個數(shù)據(jù)單元可以是針對相對大數(shù)目的扇區(qū),例如512個扇區(qū),或針對整個磁道。對于全磁道讀取的情形,當進行擦洗讀取操作時,能夠容易地使用零等待讀取技術(shù)(即一旦磁頭在磁道上便開始讀取),使得旋轉(zhuǎn)等待開銷得以消除。正如下面進一步所提出的,可以使用與擦洗數(shù)據(jù)單元對應(yīng)的位映射來跟蹤已經(jīng)擦洗過的單元,但是也可以使用任何其它的方法。在每個擦洗周期的開始處,位映射被重新設(shè)置。
一旦待被擦洗的數(shù)據(jù)單元被識別出來,在框30處讀取該數(shù)據(jù)單元。在菱形決策框32中,驅(qū)動器控制器18確定在數(shù)據(jù)單元中是否存在有任何不可糾正的錯誤。如果檢測到錯誤,該錯誤的位置在框34中被記錄下來。可選地,可以在這個步驟中立即向RAID控制器12通報該錯誤。然后,在框36處,驅(qū)動器控制器18更新其有關(guān)已經(jīng)擦洗過的數(shù)據(jù)單元的列表(即位映射)。當使用了有保證擦洗速率時,該邏輯也進行到框38,其中擦洗速率通過用框26處所記錄的擦洗過的數(shù)據(jù)量,除以自框36所記錄的擦洗周期開始起已經(jīng)過的總時間來確定。最后,在菱形決策框40中,確定整個磁盤是否已經(jīng)得到了擦洗,如果不是,該邏輯循環(huán)回到框28。否則,該邏輯重新在起始狀態(tài)24開始另一個擦洗周期。
圖4示出的是當啟用無保證擦洗速率時,驅(qū)動器控制器18可以實現(xiàn)的邏輯。假定圖3所示的擦洗周期正在不停地執(zhí)行,在狀態(tài)42處接收到對磁盤20進行讀取或?qū)懭氲挠脩粽埱?來自例如RAID控制器12)。在菱形決策框44中,驅(qū)動器控制器18確定擦洗讀取操作是否正進行,如果是,該擦洗讀取操作在框46處被中止或暫停。圖4中的虛線表示圖3中(用多邊形48來表示)的擦洗周期子程序得到通告或者暫停。
如果沒有擦洗讀取操作正在進行,從框46或從菱形決策框44,該邏輯繼續(xù)執(zhí)行到框50,以將I/O請求加入到請求隊列中。通過移到菱形決策框52處,確定在隊列中是否有任何未完成的請求。如果有,則在框54處對該請求進行服務(wù)。在選擇隊列中哪一個請求將在下一次得到服務(wù)時,可以使用任何調(diào)度算法,包含先到先服務(wù),最短時間先服務(wù)等等。
在一個改進(augmentation)中,作為框54的邏輯的一部分,當完成用戶請求的同時,可以尋機對磁盤上直接靠近用戶請求所涉及的數(shù)據(jù)的數(shù)據(jù)執(zhí)行擦洗循環(huán)。這能夠通過擴展該請求以包含一個或多個鄰近的數(shù)據(jù)擦洗單元來完成。例如,讀取請求可以是讀取128個扇區(qū),比如說從地址5020到地址5147。當調(diào)用尋機擦洗時,驅(qū)動器控制器18可以讀取含有所請求扇區(qū)的整個擦洗單元(比如說,從地址5000到5999),從而在此同時擦洗整個單元。
如果需要,一旦已經(jīng)完成了所有的用戶I/O請求,該邏輯能夠移到框56處,以在圖3中的擦洗循環(huán)重新恢復之前等待一個延遲周期。該延遲周期可以是固定的,也可以是自適應(yīng)的,并且取決于例如所接收的用戶請求的頻率(對于較多的請求,例如會導致較長的延遲周期)和/或取決于從RAID控制器接收的用戶請求的數(shù)量,其中對于較多的請求,例如會導致較長的延遲周期。延遲周期增加了新請求不可能在近期到達的概率,即HDD正進入到空閑時間周期。如果新請求在該延遲周期內(nèi)到達,該邏輯回到起始狀態(tài)42;否則,它重新進入狀態(tài)48處的擦洗循環(huán)。
在確定自適應(yīng)延遲周期時,驅(qū)動器控制器18能夠計算自從狀態(tài)42處所記錄的最后用戶請求的到達所經(jīng)過的時間量。在這個例子中,利用這個經(jīng)過時間計算待執(zhí)行的延遲。這種計算的一個例子是延遲=k/經(jīng)過時間,其中k是常數(shù)。于是,如果該經(jīng)過時間較短,則延遲較長,因為另一請求很快到達的可能性很高;如果該經(jīng)過時間較長,則延遲較短,因為在一段延長的時間周期內(nèi)沒有任何關(guān)于HDD的活動,因此更頻繁地進行擦洗不可能影響性能。如上所述,可以使用其它自適應(yīng)的方法或方式。
圖5示出了當希望至少按照可由用戶定義的某個門限速率進行擦洗時能夠遵循的邏輯。假定圖3所示的擦洗循環(huán)不斷地執(zhí)行,在狀態(tài)58處(從例如RAID控制器12)所接收的對磁盤20進行讀取或?qū)懭氲挠脩粽埱?。在菱形決策框60中,確定擦洗讀取是否正在進行,如果是,則該邏輯繼續(xù)到菱形決策框63,以確定當前的擦洗速率(如圖3中的框38所確定的)是否低于門限速率。如果不是,則該邏輯移到框64,其中擦洗讀取被中止或暫停。虛線表示圖3的擦洗循環(huán)子程序(用多邊形66來表示)被通知中止或暫停擦洗。
相反,當在菱形決策框62中確定擦洗速率不足(即太慢)時,在服務(wù)任何用戶請求之前,該邏輯移到框68以完成當前的擦洗讀取。從菱形決策框60(當沒有擦洗讀取正在進行時),或從框64和68(當讀取正在進行并取決于擦洗速率時),該邏輯移到框70,以將用戶請求加入到請求隊列中。
移到菱形決策框72,確定是否在隊列中有任何未完成的請求。如果有,在框74處服務(wù)請求。如果需要,就象圖4中邏輯的情形那樣,可以尋機對磁盤上與用戶請求所涉及的數(shù)據(jù)直接相鄰的數(shù)據(jù)執(zhí)行擦洗循環(huán),同時作為框74中的邏輯部分,完成該請求。
從框74處,驅(qū)動器控制器18的邏輯移到框76處以計算新的擦洗速率,然后繼續(xù)到菱形決策框78處確定該擦洗速率是否太慢。如果是,該邏輯重新進入圖3的擦洗循環(huán)(如多邊形66所示),并且停留在狀態(tài)66和78之間的循環(huán)中,直到擦洗速率等于用戶定義的門限。當發(fā)生此情況時,該邏輯移回到菱形決策框72。如圖5所示,當如菱形決策框72所確定的那樣已經(jīng)完成了隊列中所有的用戶請求時,該邏輯可以在重新進入狀態(tài)66的擦洗循環(huán)之前,可選地移到框80以啟用上述延遲周期。
如上所述,本發(fā)明的優(yōu)選實施例使用物理磁道或其一部分作為數(shù)據(jù)擦洗單元。當調(diào)度要擦洗的數(shù)據(jù)單元時,不是順序地從開始執(zhí)行到結(jié)束,而是可以調(diào)度下一個擦洗讀取操作在最接近磁盤驅(qū)動器16的磁頭的位置的附近進行。因此,在一個非限制性實施例中,圖3的框28處執(zhí)行的該邏輯可以通過圖6所示的邏輯來實現(xiàn)。
在框82處開始,磁頭當前所在位置的物理柱面號“C”被記錄下來。在菱形決策框84中,驅(qū)動器控制器18確定柱面C上的所有磁道是否已經(jīng)擦洗。如果至少有一個磁道還沒有被擦洗,則該邏輯移到框86以從該柱面選擇未擦洗的磁道,然后該邏輯移到圖3的框30。
當在決策框84處確定柱面“C”上的所有磁道已經(jīng)擦洗時,該邏輯移到框88處,其中索引變量“i”被初始化成1。繼續(xù)進行到菱形決策框90,確定柱面C+i上所有磁道是否已經(jīng)擦洗。如果不是這樣,該邏輯移到框86。否則,該邏輯繼續(xù)進行到菱形決策框92,其中確定柱面C-i上的所有磁道是否已經(jīng)擦洗。如果在柱面C-i上還至少有一個磁道未得到擦洗,該邏輯移到框86,但當菱形決策框92處的測試結(jié)果為肯定時,該邏輯移到框94,以將索引變量“i”加1。
繼續(xù)進行到菱形決策框96,確定索引變量“i”是否超過門限。如果不是,該邏輯回到菱形決策框90。然而,如果超過了該門限,則進入框98,其中可以使用不同的算法選擇下一個擦洗單元。這就將搜索限制到合理的時間量,并且在“i”變得太大以致不具有任何性能優(yōu)勢之后,也切換到不同的選擇方法。
作為可以用來選擇要擦洗的數(shù)據(jù)單元的不同選擇方法的非限制性例子,可以選擇比其它數(shù)據(jù)更新近寫入的數(shù)據(jù)在擦洗其它數(shù)據(jù)之前進行擦洗?;蛘?,可以在擦洗其它不經(jīng)常使用的區(qū)域之前擦洗頻繁訪問的磁盤區(qū)域。
更具體地,本發(fā)明認為到某些不可恢復的錯誤可以由壞寫(badwrite)引起。為了更快地發(fā)現(xiàn)這樣的錯誤,驅(qū)動器控制器18能夠調(diào)度擦洗最近寫入的磁道和相鄰磁道,如圖7所示。根據(jù)分別結(jié)合圖4、圖5中的框54和框74所進行的描述,對請求的服務(wù)可以包含在框100中執(zhí)行所請求的讀或?qū)懨?,然后,在菱形決策框102處,確定剛完成的命令是否寫入命令。如果它是寫入命令,在框104處,驅(qū)動器控制器18將受寫入命令影響的擦洗單元標記為尚未擦洗過,不管它們在這個周期中是否已經(jīng)擦洗。在使用位映射跟蹤已擦洗單元的優(yōu)選實施例中,那些單元的對應(yīng)位被重新設(shè)置。以這種方式,那些單元在它們被調(diào)度進行擦洗之前,不會等待下一個擦洗周期,而是可以立刻得到擦洗。而且,當使用圖6的調(diào)度策略時,這些數(shù)據(jù)單元有可能會被迅速地調(diào)度。在擦洗單元是物理磁道的優(yōu)選實施例中,受影響的擦洗單元會是包含那些剛寫入數(shù)據(jù)的磁道和同一表面上與其相鄰的磁道。
如前所述,磁盤20可以被邏輯地分成不必大小相等的數(shù)據(jù)段。與段有關(guān)的是圖8所示的表106,每個表項對應(yīng)一段。每個表項包含如第一列所示的計數(shù)域。為了減少計數(shù),這些表項最好建立雙鏈表,因此每一表項包含這個鏈表的前向指針和后向指針,如第二列和第三列所示。除段表之外,HDD維護一個指向這個鏈表的頂部(該表項具有最高的計數(shù))的指針。
在這個非限制性實施方案中,并且現(xiàn)在參照圖9,每當在圖9中狀態(tài)108處HDD 16收到新的用戶I/O請求時,驅(qū)動器控制器18在框110處確定該請求所處的段。在框112處,遞增該段的計數(shù)。移到菱形決策框114,確定得到的計數(shù)是否超過計數(shù)域能夠保存的最大值。例如,如果計數(shù)域使用了16個位,則該計數(shù)域的最大計數(shù)是65535。如果大于該數(shù)值,則邏輯移到框116以將表中的每項的計數(shù)域除以2。
從框116繼續(xù)到菱形決策框116,或在測試結(jié)果為否定的情況下從菱形決策框114繼續(xù)到菱形決策框116,驅(qū)動器控制器18確定新計數(shù)現(xiàn)在是否大于由與當前段有關(guān)的后向指針所指向的表項,即有序鏈表中次最高表項的計數(shù)。如果現(xiàn)在的計數(shù)較大,該邏輯移到框120,在這里將這兩項在鏈表中的位置交換。然后循環(huán)返回到菱形決策框118,并重復執(zhí)行,直至鏈表被適當?shù)嘏判颉?br> 最后,圖10示出的是針對圖8和9的上述表實現(xiàn),在狀態(tài)122處進入的選擇算法。在框124中,選擇鏈表中頂部的表項(該項具有最高的計數(shù))。移到菱形決策框126,確定這段中所有的擦洗單元是否已經(jīng)擦洗。如果所有的單元已經(jīng)擦洗,該邏輯移到框128,其中選擇鏈表的下一段,然后回到菱形框126。如果在菱形決策框126中發(fā)現(xiàn)一個段中并不是所有單元已經(jīng)得到擦洗,則進入框130以從該段中選擇擦洗單元。
對于使用錯誤恢復過程(ERP)可恢復的錯誤,驅(qū)動器控制器18能夠嘗試將數(shù)據(jù)寫回到原來的位置,然后讀出該數(shù)據(jù)以確定它是否再次包含錯誤。如果還包含錯誤,則表明該物理位置被損壞。能夠使用新模式頁參數(shù)來控制這個選項。如果用戶已經(jīng)在它的模式頁中指定了自動重新分配,則控制器18就將恢復的數(shù)據(jù)寫到新的位置。當沒有指定自動重新分配,但也沒有指定在原位置進行重寫時,恢復的數(shù)據(jù)能夠存儲在保護區(qū)域中,可以在隨后出現(xiàn)不可恢復的錯誤時檢查該保護區(qū)域以確定丟失的數(shù)據(jù)是否駐留在保護區(qū)域中。
雖然這里所示和詳細描述的硬盤驅(qū)動器的自主數(shù)據(jù)擦洗的系統(tǒng)和方法完全能夠達到本發(fā)明的上述目的,但是應(yīng)當理解,它只是本發(fā)明當前提出的優(yōu)選實施例,因此它只是本發(fā)明所廣泛考慮的主題的代表,本發(fā)明的范圍完全涵蓋本領(lǐng)域技術(shù)人員可以想到的其它實施例,因此,本發(fā)明的范圍僅受附加的權(quán)利要求的限制,其中對單數(shù)要件的引用不意味著“一個且唯一一個”,除非專門指出,而是表示“一個或多個”。用一種設(shè)備或方法解決本發(fā)明試圖解決的每個問題是不必要的,因為它被本發(fā)明的權(quán)利要求所涵蓋。而且,在本發(fā)明的公布中沒有任何要件、部件或方法步驟是僅限于所公開內(nèi)容的,無論元件、部件或方法步驟是否明確在權(quán)利要求中進行了敘述。這里沒有任何權(quán)利要求要件將按照35U.S.C.’112,第六款的規(guī)定加以解釋,除非該要件明確使用短語“用于...的裝置”加以表述,或者在方法權(quán)利要求中,該要件被表述為“步驟”而不是“動作”。這里沒有明確的定義,權(quán)利要求中的術(shù)語具有所有普通的和習慣的含義,其與本說明書和文件的歷史是一致的。
權(quán)利要求
1.一種硬盤驅(qū)動器,包括至少一個存儲盤;至少一個驅(qū)動器控制器,用于針對該盤讀出數(shù)據(jù)或?qū)懭霐?shù)據(jù),該驅(qū)動器控制器執(zhí)行包括下述的邏輯執(zhí)行擦洗周期,包含讀取至少一個數(shù)據(jù)單元;確定該數(shù)據(jù)單元中是否存在錯誤,如果存在錯誤,采取以下步驟的至少一個記錄錯誤,和報告錯誤;對后繼數(shù)據(jù)單元執(zhí)行讀取和確定邏輯;如果接收到用于以下操作中的至少一個的用戶請求數(shù)據(jù)讀取和數(shù)據(jù)寫入,則中斷該擦洗周期以完成該請求,然后恢復該擦洗周期。
2.如權(quán)利要求1中的磁盤驅(qū)動器,其與RAID系統(tǒng)相結(jié)合,其中由驅(qū)動器控制器從RAID控制器接收用戶請求。
3.如權(quán)利要求2中的磁盤驅(qū)動器,包括在重新恢復擦洗周期之前,在完成用戶請求隊列中的所有用戶請求之后等待一個延遲周期。
4.如權(quán)利要求3中的磁盤驅(qū)動器,其中延遲周期是自適應(yīng)的延遲周期,它取決于從RAID控制器接收的用戶請求的頻率和數(shù)量中的至少一個。
5.如權(quán)利要求1中的磁盤驅(qū)動器,其中磁盤驅(qū)動器被劃分成數(shù)據(jù)段,驅(qū)動器控制器維護至少指示對這些段的最近訪問的段表。
6.如權(quán)利要求1中的磁盤驅(qū)動器,包括對磁盤上與用戶請求所涉及的數(shù)據(jù)直接相鄰的數(shù)據(jù)執(zhí)行擦洗周期,以作為完成該請求的一部分。
7.如權(quán)利要求1中的磁盤驅(qū)動器,包括對比第二數(shù)據(jù)更新近寫入的第一數(shù)據(jù)執(zhí)行擦洗周期,然后擦洗第二數(shù)據(jù)。
8.如權(quán)利要求1中的磁盤驅(qū)動器,包括對比其它較少頻繁使用的磁盤區(qū)域更頻繁訪問的磁盤區(qū)域執(zhí)行擦洗周期,然后再擦洗該較少頻繁使用的區(qū)域。
9.一種硬盤驅(qū)動器,包括至少一個存儲盤;至少一個驅(qū)動器控制器,用于對該盤讀取和寫入數(shù)據(jù),該驅(qū)動器控制器執(zhí)行包括以下的邏輯執(zhí)行擦洗周期,包含讀取至少一個數(shù)據(jù)單元;確定數(shù)據(jù)單元中是否存在錯誤,如果存在錯誤,采取以下步驟的至少一個記錄錯誤,和報告錯誤;對后繼數(shù)據(jù)單元執(zhí)行讀取和確定邏輯;如果接收到用于以下操作中的至少一個的用戶請求數(shù)據(jù)讀取和數(shù)據(jù)寫入,并且如果當前擦洗速率超過門限速率,則中斷該擦洗周期以完成該請求,然后重新恢復該擦洗周期,否則不中斷擦洗周期的至少已有擦洗讀取。
10.如權(quán)利要求9中的硬盤驅(qū)動器,其與RAID系統(tǒng)相結(jié)合,其中由驅(qū)動器控制器從RAID控制器接收用戶請求。
11.如權(quán)利要求10中的硬盤驅(qū)動器,包括在重新恢復擦洗周期之前,在完成用戶請求隊列中的所有用戶請求之后等待一個延遲周期。
12.如權(quán)利要求11中的硬盤驅(qū)動器,其中延遲周期是自適應(yīng)的延遲周期,它取決于從RAID控制器接收的用戶請求的頻率和數(shù)量中的至少一個。
13.如權(quán)利要求9中的硬盤驅(qū)動器,其中磁盤驅(qū)動器被劃分成數(shù)據(jù)段,驅(qū)動器控制器維護至少指示對這些段的最近訪問的段表。
14.如權(quán)利要求9中的硬盤驅(qū)動器,包括對磁盤上與用戶請求所涉及的數(shù)據(jù)直接相鄰的數(shù)據(jù)執(zhí)行擦洗周期,以作為完成該請求的一部分。
15.如權(quán)利要求9中的硬盤驅(qū)動器,包括對比第二數(shù)據(jù)更新近寫入的第一數(shù)據(jù)執(zhí)行擦洗周期,然后擦洗第二數(shù)據(jù)。
16.如權(quán)利要求9中的硬盤驅(qū)動器,包括對比其它較少頻繁使用的磁盤區(qū)域更頻繁訪問的磁盤區(qū)域執(zhí)行擦洗周期,然后再擦洗該較少頻繁使用的區(qū)域。
17.一種硬盤驅(qū)動器,包括至少一個存儲盤;至少一個驅(qū)動器控制器,用于對該盤讀取和寫入數(shù)據(jù),該驅(qū)動器控制器執(zhí)行包括以下的邏輯執(zhí)行擦洗周期,包含讀取至少一個數(shù)據(jù)單元;確定數(shù)據(jù)單元中是否存在錯誤,如果存在錯誤,采取以下步驟的至少一個記錄錯誤,和報告錯誤;對后繼數(shù)據(jù)單元執(zhí)行讀取和確定邏輯,其中對比第二數(shù)據(jù)更新近寫入的第一數(shù)據(jù)執(zhí)行擦洗周期,然后再對第二數(shù)據(jù)執(zhí)行擦洗周期。
18.如權(quán)利要求17中的硬盤驅(qū)動器,其中如果接收到用于以下操作中的至少一個的用戶請求數(shù)據(jù)讀取和數(shù)據(jù)寫入,則中斷該擦洗周期以完成該請求,然后重新恢復該擦洗周期。
19.如權(quán)利要求18中的硬盤驅(qū)動器,其與RAID系統(tǒng)相結(jié)合,其中由驅(qū)動器控制器從RAID控制器接收用戶請求。
20.如權(quán)利要求17中的硬盤驅(qū)動器,其中如果接收到用于以下操作中的至少一個的用戶請求數(shù)據(jù)讀取和數(shù)據(jù)寫入,并且如果當前擦洗速率超過門限速率,則中斷該擦洗周期以完成該請求,然后重新恢復該擦洗周期,否則不中斷擦洗周期的至少已有擦洗讀取。
21.一種硬盤驅(qū)動器,包括至少一個存儲盤;至少一個驅(qū)動器控制器,用于對該盤讀取和寫入數(shù)據(jù),該驅(qū)動器控制器執(zhí)行包括以下的邏輯執(zhí)行擦洗周期,包含讀取至少一個數(shù)據(jù)單元,其中如果該數(shù)據(jù)單元在磁盤上與用戶請求所涉及的數(shù)據(jù)直接相鄰,則優(yōu)先選擇該數(shù)據(jù)單元進行擦洗;確定數(shù)據(jù)單元中是否存在錯誤,如果存在錯誤,采取以下步驟的至少一個記錄錯誤,和報告錯誤;對后繼數(shù)據(jù)單元執(zhí)行讀取和確定邏輯。
22.如權(quán)利要求21中的硬盤驅(qū)動器,其中如果接收到用于以下操作中的至少一個的用戶請求數(shù)據(jù)讀取和數(shù)據(jù)寫入,則中斷該擦洗周期以完成該請求,然后重新恢復該擦洗周期。
23.如權(quán)利要求22中的硬盤驅(qū)動器,其與RAID系統(tǒng)相結(jié)合,其中由驅(qū)動器控制器從RAID控制器接收用戶請求。
24.如權(quán)利要求21中的硬盤驅(qū)動器,其中如果接收到用于以下操作中的至少一個的用戶請求數(shù)據(jù)讀取和數(shù)據(jù)寫入,并且如果當前擦洗速率超過門限速率,則中斷該擦洗周期以完成該請求,然后重新恢復該擦洗周期,否則不中斷擦洗周期的至少已有擦洗讀取。
25.一種硬盤驅(qū)動器,包括至少一個存儲盤;至少一個驅(qū)動器控制器,用于對該盤讀取和寫入數(shù)據(jù),該驅(qū)動器控制器執(zhí)行包括以下的邏輯執(zhí)行擦洗周期,包含讀取至少一個數(shù)據(jù)單元;確定數(shù)據(jù)單元中是否存在錯誤,如果存在錯誤,采取以下步驟的至少一個記錄錯誤,和報告錯誤;對后繼數(shù)據(jù)單元執(zhí)行讀取和確定邏輯,其中對比其它較少頻繁使用的磁盤區(qū)域更頻繁訪問的磁盤區(qū)域執(zhí)行擦洗周期,然后再對該較少頻繁使用的區(qū)域執(zhí)行擦洗周期。
26.如權(quán)利要求25中的硬盤驅(qū)動器,其中如果接收到用于以下操作中的至少一個的用戶請求數(shù)據(jù)讀取和數(shù)據(jù)寫入,則中斷該擦洗周期以完成該請求,然后重新恢復該擦洗周期。
27.如權(quán)利要求26中的硬盤驅(qū)動器,其與RAID系統(tǒng)相結(jié)合,其中由驅(qū)動器控制器從RAID控制器接收用戶請求。
28.如權(quán)利要求25中的硬盤驅(qū)動器,其中如果接收到用于以下操作中的至少一個的用戶請求數(shù)據(jù)讀取和數(shù)據(jù)寫入,并且如果當前擦洗速率超過門限速率,則中斷該擦洗周期以完成該請求,然后重新恢復該擦洗周期,否則不中斷擦洗周期的至少已有擦洗讀取。
29.一種獨立磁盤冗余陣列(RAID)系統(tǒng),包括RAID控制器和多個硬盤驅(qū)動器,每個硬盤驅(qū)動器包括至少一個存儲盤,和至少一個用于對盤讀取數(shù)據(jù)和寫入數(shù)據(jù)的驅(qū)動器控制器,其中每個磁盤驅(qū)動器的驅(qū)動器控制器與RAID控制器相連,每個驅(qū)動器的驅(qū)動器控制器自主地對其磁盤執(zhí)行擦洗周期,并且如果接收到用于以下操作中的至少一個的用戶請求數(shù)據(jù)讀取和數(shù)據(jù)寫入,則中斷該擦洗周期以完成該請求,然后重新恢復該擦洗周期。
全文摘要
具有多個硬盤驅(qū)動器的RAID系統(tǒng)使其每個控制器自主地對其磁盤執(zhí)行數(shù)據(jù)擦洗,而不是需要RAID控制器來執(zhí)行數(shù)據(jù)擦洗??梢皂憫?yīng)來自RAID控制器的I/O請求而中斷該數(shù)據(jù)擦洗操作,或者如果沒有達到有保證擦洗速率,可以繼續(xù)擦洗。數(shù)據(jù)被存儲于同心數(shù)據(jù)磁道的大段中,可以基于對該段的讀取頻率或?qū)懭朐摱蔚男陆潭?,?yōu)先選擇對該段進行擦洗。
文檔編號G11B20/18GK1577587SQ200410059048
公開日2005年2月9日 申請日期2004年7月29日 優(yōu)先權(quán)日2003年7月29日
發(fā)明者理查德·M.·H·紐, 斯潘塞·W.·影 申請人:日立環(huán)球儲存科技荷蘭有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
将乐县| 永定县| 辽中县| 中江县| 青神县| 梓潼县| 张家界市| 福鼎市| 沂水县| 彰武县| 双城市| 丰台区| 聂荣县| 桂东县| 铜川市| 河源市| 迁安市| 南丹县| 上饶市| 政和县| 博白县| 临邑县| 阿巴嘎旗| 彭泽县| 西乡县| 吴江市| 和静县| 丹东市| 双辽市| 昌宁县| 阿拉善盟| 定兴县| 太仆寺旗| 泽普县| 文登市| 洛川县| 广丰县| 栖霞市| 昆明市| 依兰县| 静乐县|