專利名稱:降級狀態(tài)下處理數據的方法及獨立冗余磁盤陣列系統的制作方法
技術領域:
本發(fā)明涉及獨立冗余磁盤陣列技術,尤指 一 種獨立冗余磁盤陣列系統在 降級狀態(tài)下處理數據的方法以及一種獨立冗余-茲盤陣列系統。
背景技術:
獨立冗余i茲盤陣歹'J (RAID, Redundant Array of Independent Disks )是 改善磁盤存儲性能的有效方法之一。它將要存儲的數據按一定規(guī)則分塊,存 放在多個盤上,利用多個盤的并行存取、并行傳輸來匹配帶寬,以提高存取 速度。同時,RAID還利用冗余數據來提高系統的可靠性。對主機來說它相 當于一個快速大容量的》茲盤。RAID目前分為7級RAID0 RAID6,其中 RAID1 ~ RAID6采用冗余校驗信息來提高系統的可靠性。RAID系統包括RAID控制器、陣列緩存和多個磁盤。其中,磁盤用來 存儲數據;陣列緩存用來臨時存放主機訪問的數據,使主機對RAID系統的 數據訪問大多數通過緩存進行,以提高主機對RAID系統的數據訪問速度。 控制器用來控制陣列緩存以及磁盤的讀寫操作。現以RAID5為例介紹RAID系統的工作情況。圖1所示為RAID5的數 據分布關系圖。圖示中的物理磁盤為真實存在的物理磁盤, 一般是企業(yè)級硬 盤,對最終用戶來說一般是不可見。真實的物理磁盤被分割成很多段,每個 段稱為一個條塊(Strip),不同物理磁盤上的相鄰段組合形成連續(xù)的邏輯磁 盤。每塊物理》茲盤上相鄰的Strip組合形成一個條帶(Stripe),每個Stripe 都有一個校驗塊,用來存儲該Stripe的奇偶校驗信息,如圖1中所示的P0~ P3。 RAID5通過奇偶校驗來提供數據恢復的能力。當對邏輯磁盤發(fā)出讀命令后,RAID系統中的RAID控制器根據圖1中的對應關系,找到讀取的數據所在的物理磁盤,返回對應Strip中的數據。 如果磁盤丟失或者損壞,例如圖1中的物理磁盤1丟失,而此時需要讀取 Dl中的數據,則需要通過RAID5的奇偶校驗信息計算出Dl中的數據并返 回。具體的方法是讀取這個Stripe上的其他Strip: D0、 D2和P0,然后對這 些Strip做奇偶校驗,校驗值就是D1的數據。當對邏輯磁盤發(fā)出寫命令時,控制器根據圖1中的對應關系將數據寫入 對應的物理磁盤,并根據新寫入的數據重新計算奇偶校驗信息。當寫入的磁 盤丟失或者對應的寫入空間發(fā)生故障,則不得不消耗更多的時間來計算奇偶 校驗信息,以彌補因丟失原數據而對計算奇偶校驗信息的影響。可見,RAID系統由于其冗余特性,在Stripe中的一個Strip出現損壞時, 仍然可以對其繼續(xù)進行讀寫操作。這種狀態(tài)下的RAID系統成為處于降級(Degrade)狀態(tài)的RAID系統。當RAID處于降級狀態(tài)下時,其數據安全 性很脆弱,所以一般都會添加一塊磁盤替換發(fā)生故障的磁盤,通過校驗把數 據重新寫入新加磁盤,使陣列恢復正常狀態(tài)。這個操作一般稱為陣列重建(Rebuild )。由于陣列重建需要占用RAID系統的大量資源,因此用戶都選 擇在業(yè)務空閑的時候進行重建。在此之前,不得不在降級狀態(tài)下繼續(xù)使用 RAID系統。雖然,用戶還能夠在RAID系統處于降級狀態(tài)時,繼續(xù)使用RAID讀寫 數據,但是由于在讀寫過程中,將耗費大量額外資源以彌補丟失數據的問題, 因此降級狀態(tài)下RAID系統的性能將大幅度下降,特別是對于數據庫應用中 存在大量小數據塊隨機讀寫的情況下,性能將下降更明顯。發(fā)明內容有鑒于此,本發(fā)明提供了一種降級狀態(tài)下處理數據的方法,應用本發(fā)明 所提供的方法能夠提高RAID系統在降級狀態(tài)下的讀寫性能。一種獨立冗余》茲盤陣列系統在降級狀態(tài)下處理數據的方法,該方法包括將獨立冗余磁盤陣列系統中損壞空間的數據存入第一存儲介質;當需要讀寫所述損壞空間的數據時,從所述第 一存儲介質中獲得所述數據。本發(fā)明提供了一種獨立冗余磁盤陣列系統,該RAID系統能夠提高在降 級狀態(tài)下的讀寫性能。一種獨立冗余^f茲盤陣列系統,該系統包括RAID控制器,用于控制將RAID系統中損壞空間上的數據存入第一存 儲介質;當需要讀寫所述損壞空間的數據時,從第一存儲介質中獲得所述數 據;第一存儲介質,用于存儲損壞空間上的數據。本發(fā)明所提供的一種在降級狀態(tài)下處理數據的方法及RAID系統,通過 將損壞空間的數據存入第一存儲介質;當需要訪問該數據時,直接從所述第 一存儲介質中獲得所述數據,使得對這些數據進行的讀寫操作的對象不再是 損壞的空間,而是運行正常的第一存儲介質,這樣就可以按照正常的讀寫流 程處理數據,進而能夠有效提高RAID系統在降級狀態(tài)下的性能。
圖1為現有技術RAID5系統的數據分布關系示意圖;圖2為本發(fā)明的方法示例性流程圖;圖3為本發(fā)明的系統示例性結構圖;圖4為本發(fā)明第一實施例讀操作處理流程圖;圖5為本發(fā)明第一實施例寫操作處理流程圖;圖6為本發(fā)明第一實施例RAID系統的結構圖;圖7為本發(fā)明第二實施例RAID系統的結構圖。
具體實施方式
在本發(fā)明實施例的技術方案中,為了提高RAID系統在降級狀態(tài)下的性能,可以將磁盤上損壞空間的數據存入第一存儲介質;在需要訪問損壞空間 的數據時,則直接訪問第一存儲介質來獲得這些數據。本發(fā)明的技術方案, 由于將損壞空間上的數據轉移至為損壞的空間上,因此對這些數據進行讀寫 操作時,操作的對象不再是損壞的空間,這樣就可以按照正常的讀寫流程處 理數據,因此能夠提高RAID系統在降級狀態(tài)下的性能。參見圖2,圖2為本發(fā)明的方法示例性流程圖,包括在步驟201中, 將獨立冗余磁盤陣列系統中損壞空間的數據存入第一存儲介質;在步驟202 中,當需要讀寫所述損壞空間的數據時,從所述第一存儲介質中獲得所述數 據。另夕卜,參見圖3,圖3為本發(fā)明的RAID系統示例性結構圖,包括RAID 控制器,用于將RAID系統中損壞空間上的數據存入第一存儲介質;當需要 讀寫所述損壞空間的數據時,從第一存儲介質中獲得所述數據;第一存儲介 質,用于存儲損壞空間上的數據。其中,損壞空間可能為磁盤中的一部分, 也可以是整個^f茲盤。在本發(fā)明實施例的技術方案中,用來存儲損壞磁盤上數據的第 一 存儲介 質可以是RAID系統中的陣列緩存、新增-茲盤、或-茲盤對應中的校驗塊。現針對上述三種情況分別列舉實施例,對本發(fā)明的技術方案進行詳細說明。實施例一本實施例主要介紹第一存儲介質為RAID系統陣列緩存的情況。RAID 系統中的陣列緩存用來臨時存放主機訪問的數據,在訪問數據時,RAID控 制器通常先訪問陣列緩存,如果陣列緩存內未存儲時再訪問磁盤,以提高主 機對RAID系統的數據訪問速度。在使用陣列緩存作第 一存儲介質時,可以在獲知磁盤上出現損壞空間 時,通過校驗恢復損壞空間上的數據,將恢復數據保存至陣列緩存,供訪問 時使用。另外,由于陣列援存會緩存部分數據,并且在進行讀寫操作時對緩 存內的數據進行更新。因此可以借助陣列緩存讀寫時進行的更新操作,在讀寫過程中,逐步將損壞空間中的數據寫入陣列緩存,將緩存中非損壞空間的 數據移出緩存,實現將損壞空間上的數據保存至陣列緩存。這里,由于陣列緩存中會保存部分數據,因此在訪問數據時,所要訪問 的數據為損壞空間的數據、并且未保存在陣列緩存內,再將該數據寫入陣列 緩存。訪問數據的操作包括讀操作和寫操作,陣列緩存對應讀寫操作,分為 讀緩存和寫緩存。其中,讀緩存用來存儲從磁盤中讀取的數據,寫緩存用來 存儲寫入磁盤的數據。在將數據寫入磁盤時,通常將數據先寫入寫緩存,然后再由寫緩存寫入磁盤。這樣,將數據寫入寫緩存后,RAID控制器就可向 返回寫入成功的響應,以減少寫操作的響應時間。當執(zhí)行讀操作時,在所要讀取的數據中存在損壞空間的數據、并且未保 存在陣列緩存內的情況下,將讀取的損壞空間的數據寫入陣列緩存的讀緩存 內;當執(zhí)行寫數據時,在數據寫入的空間為損壞空間、并且該數據未保存在 陣列緩存內的情況下,將該數據寫入所述陣列緩存的寫緩存內。參見圖4和5,圖4和5分別為對應讀操作和寫操作更新陣列緩存的流 程圖,現分別介紹如下。參見圖4,圖4為本發(fā)明實施例在讀操作時更新陣列緩存的流程圖。在步驟401中,RAID系統中的控制器收到讀命令。在步驟402中,根據讀命令中攜帶的標識信息,判斷讀緩存是否命中, 如果是,則從讀緩存中返回所需數據,結束當前處理流程;否則,執(zhí)行步驟403。其中的標識信息用于標識數據塊在RAID系統中的位置,可包括數據塊 在磁盤中保存的邏輯地址、同一個數據塊保存在緩存中的緩存地址以及邏輯 地址和緩存地址之間的映射關系等內容中的 一項或幾項。在讀緩存和寫緩存 中均會保存標識信息表,用來確定自身是否保存了相關數據。在步驟403中,根據讀命令中攜帶的標識信息,判斷寫緩存是否命中, 如果是,則從寫緩存中返回所需數據,結束當前處理流程;否則,執(zhí)行步驟404。在步驟404中,RAID控制器下發(fā)命令讀取磁盤,從磁盤中獲取所需數 據,執(zhí)行步驟405。這里,如果需要讀取的數據為磁盤上損壞空間的數據,則獲取的數據通 過校驗得到;如果需要讀取的數據不為磁盤損壞空間的數據,則直接從磁盤 上讀取。在步驟405中,判斷當前讀取的數據中是否損壞空間的數據,如果是, 執(zhí)行步驟406;否則,結束當前處理流程。在RAID系統中,如果》茲盤發(fā)生損壞,RAID控制器則會記錄損壞空間 的具體位置信息。RAID控制器可以依據當前讀命令中攜帶的標識信息以及 記錄的損壞空間的位置信息確定當前讀取的數據中是否有損壞空間的數據。在步驟406中,將損壞空間上的數據寫入讀緩存,結束當前處理流程。在陣列緩存中,損壞空間上的數據具有比非損壞空間數據高的優(yōu)先級, 在陣列緩存可用空間不足時,按照陣列緩存策略釋放陣列緩存內保存的非損 壞空間的數據,將所述損壞空間的數據寫入釋放空間。在將非損壞空間的數 據寫入陣列緩存時,僅將該數據寫入陣列緩存內未被損壞空間數據占用的空 間中。這里,將損壞空間的數據寫入讀緩存的方式可以是,先考慮讀緩存中是 否有空塊,在有空塊的情況下,先寫入空塊;再考慮讀緩存中的非損壞空間 的數據,用損壞空間的數據替換非損壞空間的數據;最后,在讀緩存內不存 在非損壞空間的數據,按照陣列緩存策略進行替換。具體為,先將當前損壞空間的數據寫入讀緩存中的空塊;在讀緩存中沒 有空塊或者空塊容量不足時,再按照陣列緩存策略用當前損壞空間上的數據 或剩下未寫入的數據,更新讀緩存內已經保存的非損壞空間的數據;最后在 讀緩存中沒有保存的非損壞空間的數據或者對應容量不足的情況下,按照陣 列緩存策略用當前損壞空間上的數據或剩下未寫入的數據,更新讀緩存內已 經保存的損壞空間的數據。另外,對于當前讀取的非損壞空間的數據,可以按照上述處理流程,執(zhí)行不將非損壞空間的數據寫入讀緩存的操作;也可以在不影響讀緩存中已經 保存的損壞空間的數據的情況下,將當前讀取的非損壞空間的數據寫入讀緩 存,以有效利用緩存空間,提高讀寫效率。具體可以是對于當前讀取的非 損壞空間的數據,可以先將當前非損壞空間的數據寫入讀緩存中的空塊;在 讀緩存中沒有空塊或者空塊容量不足時,再按照陣列緩存策略用當前非損壞 空間上的數據或者剩下未寫入的數據更新讀緩存內已經保存的非損壞空間 的數據;在讀緩存中已經沒有保存的非損壞空間的數據或者對應容量不足的 情況下,對于當前非損壞空間的數據或者剩下未寫入的數據則不再進行處 理。這里所使用的陣列緩存策略可以是陣列緩存會按照訪問頻率優(yōu)先 (LFU, Least Frequency Used )、最短訪問優(yōu)先(LRU, Least Recently Used ) 及最近訪問頻率優(yōu)先(LRFU, Least Recently Frequency Used )等策略。在本實施例的流程中,在步驟401和404中之所以未進行當前讀取數據 是否為損壞空間上的數據的判斷,主要是因為無論該數據是否為損壞空間上 的數據,這個數據已經保存在陣列緩存中,進而不需要對這類處理進行處理。參見圖5,圖5為本發(fā)明實施例在寫操作時更新陣列緩存的流程圖。在步驟501中,RAID系統中的控制器收到寫命令。在步驟502中,根據寫命令中攜帶的標識信息,判斷讀緩存是否命中, 如果是,執(zhí)行步驟503;否則,執(zhí)行步驟509。在步驟503中,根據寫命令中攜帶的標識信息,判斷寫緩存是否命中, 如果是,執(zhí)行步驟504;否則,執(zhí)行步驟505。在步驟504中,更新寫緩存,執(zhí)行步驟508。在步驟505中,判斷當前寫入的數據中是否存在要寫入RAID系統中損 壞空間的數據,如果是,則執(zhí)行步驟506;否則,執(zhí)行步驟507。其中,判斷當前寫入數據中是否存在要寫入損壞空間的數據的方法,與讀流程中步驟405的方法相同。即依據當前讀命令中攜帶的標識信息以及記錄的損壞空間的位置信息確定當前寫入的數據中是否存在寫入損壞空間的數據。在步驟506中,將要寫入損壞空間上的數據寫入寫緩存,由寫緩存處理 寫入對應磁盤;對于當前寫入數據中寫入非損壞空間的數據,不寫入寫緩存, 直接執(zhí)行寫入磁盤操作;執(zhí)行步驟508。其中,將要寫入損壞空間的數據寫入寫緩存的操作,也可以與寫入讀緩 存的操作類似,先將當前要寫入損壞空間的數據寫入寫緩存中的空塊;在讀 緩存中沒有空塊或者空塊容量不足時,再按照陣列緩存策略用當前寫入損壞 空間上的數據或剩下未寫入的數據,更新寫緩存內已經保存的非損壞空間的 數據;最后在讀緩存沒有保存的非損壞空間的數據或者對應容量不足的情況 下,按照陣列緩存策略用當前損壞空間上的數據或剩下未寫入的數據,更新 寫緩存內已經保存的損壞空間的數據。在步驟507中,不將當前寫入數據寫入寫緩存,直接執(zhí)行寫入磁盤操作。這里,對于步驟506中當前寫入數據中剩下寫入非損壞空間的數據,以 及本步驟中對應非損壞空間的數據,在不影響寫緩存中已經保存的損壞空間 的數據的情況下,按照一定的策略將當前對應非損壞空間的數據寫入寫緩 存,以有效利用緩存空間,提高讀寫效率。具體可以是對于當前對應非損 壞空間的數據,可以先將當前非損壞空間的數據寫入寫緩存中的空塊;在寫 緩存中沒有空塊或者空塊容量不足時,再按照陣列緩存策略用對應非損壞空 間上的數據或者剩下未寫入的數據更新寫緩存內已經保存的非損壞空間的 數據;在讀寫存中沒有保存非損壞空間的數據或者對應容量不足的情況下, 則不降對應非損壞空間的數據或者剩下未寫入的數據寫入寫緩存。在步驟508中,更新讀緩存,結束當前處理流程。在步驟509中,根據寫命令中攜帶的標識信息,判斷寫緩存是否命中, 如果是,執(zhí)行步驟510;否則,執(zhí)行步驟511。在步驟510中,更新寫緩存,結束當前處理流程。另夕卜,步驟511-513的具體實現與步驟505 507相同,在此不再詳述。 參見圖6,圖6為本發(fā)明實施例系統的結構圖。在本實施例中第一存儲介質為RAID系統中的陣列緩存,對應的RAID系統包括RAID控制器、陣 列緩存和磁盤。其中,RAID控制器,用于控制將RAID系統中損壞空間上 的數據存入陣列緩存;當需要訪問所述數據時,從陣列緩存中獲得所述數據。 所述RAID控制器,用于訪問數據,當所要訪問的數據為損壞空間的數據、 并且未保存在陣列緩存內,將該數據寫入陣列緩存。所述陣列緩存包括讀緩存和寫緩存。所述RAID控制器,用于在讀數 據時,所要讀取的數據中存在損壞空間的數據、并且未保存在陣列緩存內, 將讀取的損壞空間的數據寫入陣列緩存的讀緩存內;在寫數據時,當數據寫 入的空間為損壞空間、并且該數據未保存在陣列緩存內,將該數據寫入所述 陣列緩存的寫緩存內。具體的,所述RAID控制器,用于在陣列緩存內存在空塊時,將當前損壞 空間的數據寫入陣列緩存的空塊;在陣列緩存沒有空塊或者空塊容量不足時, 按照陣列緩存策略用當前損壞空間上的數據或剩下未寫入的數據,更新陣列緩 存內已經保存的非損壞空間的數據;在陣列緩存內沒有保存非損壞空間的數據 或者對應容量不足時,按照陣列緩存策略用當前損壞空間上的數據或剩下未寫 入的數據,更新陣列緩存內已經保存的損壞空間的數據。另外,RAID控制器,進一步用于在訪問數據時,所訪問的數據未保存在 陣列緩存內、并且不為損壞空間的數據,在不影響陣列緩存內已經保存的損壞 空間數據的情況下將該數據寫入陣列緩存。另外,RAID控制器,還可以在獲知磁盤上出現損壞空間時,將該損壞空 間上的數據保存至新增磁盤。經過實驗證明,以一個IOT的RAID5系統,陣列緩存容量為100G,在 正常狀態(tài)下陣列緩存的命中率有20%。那么當沒有使用本技術之前,在 RAID5系統陣列降級后,隨機性能約降低到原性能的50%;使用本實施例 的技術方案后,如果100G的陣列緩存都用來做損壞控制的緩存,隨機性能 只降低到原性能的80%??梢?,相對于現有技術,本發(fā)明能夠有效的提高 RAID5系統的性能。實施例二本實施例主要介紹第 一存儲介質為新增磁盤的情況。在使用新增磁盤作第 一存儲介質時,可以在獲知磁盤上出現損壞空間 時,通過校驗恢復損壞空間上的數據,將恢復數據保存至陣列緩存,供訪問 時使用。另外,也可以在讀取磁盤上損壞空間的數據或者向損壞空間寫入數 據時,將當前操作對應的數據寫入新增磁盤,供訪問時使用。在進行讀操作時,判定得到當前讀操作磁盤的存儲空間為損壞空間時, 將從讀緩存、或寫緩存、或從磁盤中讀取的數據存入新增磁盤。判斷當前讀操作對應的數據是否是損壞空間上的數據的時機,可以是RAID控制器收到讀命令時、或者在返回讀操作對應的數據時,或者讀操作的其他階段執(zhí)行。 在進行寫操作時,判定得到當前寫操作對應磁盤上的損壞空間時,將當 前待寫入損壞空間的數據,寫入新增磁盤。這里,執(zhí)行判斷的時機,可以是RAID控制器收到寫命令或寫搡作的其他階段執(zhí)行。當將損壞空間的數據寫入新增磁盤后,在RAID控制器內記錄該數據對 應的損壞空間,以及該數據在新增磁盤上位置信息,以備后續(xù)查找。這里, 為了區(qū)別損壞空間上的數據是否已被校驗,可以將經過校驗的損壞空間稱為 已校驗損壞空間,將未經過校驗的損壞空間稱為為校驗損壞空間。在新增磁盤后,在讀寫陣列緩存之前,可以先根據記錄的已校驗的損壞 空間,判斷所需數據是否在新增磁盤上,如果在新增磁盤上,則根據對應的 位置信息查找得到對應的數據,則不必再讀取陣列緩存以及根據原磁盤校驗 得到。其中,記錄已校驗損壞空間的方法可以是在RAID控制器內記錄一 個位圖或者索引來經過校驗的Strip。通過讀取這個位圖或者索引來確定對 應的Strip是否經過校驗。在用該新增z磁盤同步損壞空間所在的;茲盤、重建RAID系統時,可以根 據記錄的已校驗的損壞空間,僅對沒有記錄的損壞空間、以及非損壞空間進 4亍才t-瞼,并寫入新增》茲盤。參見圖7,圖7為本發(fā)明實施例系統的結構圖。在本實施例中第一存儲介質為新增磁盤,RAID系統包括RAID控制器、陣列緩存、原磁盤和新 增磁盤。具體的,RAID控制器,用于控制將RAID系統中損壞空間上的數據存 入新增磁盤;當需要訪問所述數據時,從新增磁盤中獲得所述數據。所述 RAID控制器,進一步用于記錄數據被寫入新增磁盤的損壞空間;在使用所 述新增》茲盤同步損壞空間所在的磁盤時,根據記錄的損壞空間,僅將磁盤中 未記錄空間的數據同步至所述新增磁盤。具體的,所述RAID控制器可以在訪問數據時,確定所要訪問的數據為 損壞空間的數據,將該數據存入新增磁盤;或者,在獲知磁盤上出現損壞空 間時,將該損壞空間上的數據保存至新增磁盤。其中RAID控制器、陣列緩存和原磁盤之間的鏈接關系,與現有技術中 的相同,在此不再詳述。實施例三本實施例主要介紹第 一存儲介質為磁盤中校驗塊的情況。在使用磁盤中的校驗塊作第 一存儲介質時,可以在獲知磁盤上出現損壞 空間時,通過校驗恢復損壞空間上的數據,并將數據保存至磁盤中校驗塊, 具體的可以是損壞空間對應條帶中的校驗塊。另外,也可以在讀取磁盤上損 壞空間的數據或者向損壞空間寫入數據時,將當前操作對應的數據寫入新增 7磁盤,供訪問時使用。具體的方式與實施例二的相同,在此不再詳述。當將損壞空間中的數據對應條帶的校驗塊后,需要在RAID控制器內修 改數據對應的存儲地址,以備后續(xù)查找使用。本實施例中RAID系統的結構與實施例一中系統結構圖相同,只是在本 實施例中第一存儲介質為RAID系統磁盤中的校驗塊。具體,RAID控制器可以在訪問數據時,確定所要訪問的數據為損壞空 間的數據,將該數據存入RAID系統磁盤中的校驗塊;或者,在獲知磁盤上 出現損壞空間時,將該損壞空間上的數據寫入至RAID系統》茲盤中的校驗塊。本發(fā)明實施例的技術方案適用于RAID1-6的系統中。本發(fā)明實施例的技術方案,通過將磁盤上損壞空間的數據存入第一存儲介質;在需要訪問損壞空間的數據時,直接訪問第一存儲介質來獲得這些數據。由于將損壞空間 上的數據轉移至未損壞的空間上保存,避免了為獲得數據而對損壞的空間重復執(zhí)行校驗的操作,因此提高了 RAID系統在降級狀態(tài)下的處理性能。以上所述僅為本發(fā)明的較佳實施例而已,并不用以限制本發(fā)明,凡在本 發(fā)明的精神和原則之內,所做的任何修改、等同替換、改進等,均應包含在 本發(fā)明的保護范圍之內。
權利要求
1、一種獨立冗余磁盤陣列系統在降級狀態(tài)下處理數據的方法,其特征在于,該方法包括將獨立冗余磁盤陣列系統中損壞空間的數據存入第一存儲介質;當需要讀寫所述損壞空間的數據時,從所述第一存儲介質中獲得所述數據。
2、 根據權利要求1所述的方法,其特征在于,所述將損壞空間的數據存入 第一存儲介質為將所述數據存入陣列緩存。
3、 根據權利要求2所述的方法,其特征在于,所述將損壞空間的數據存入 陣列緩存包括在對損壞空間進行數據讀寫,所述數據未保存在陣列緩存內時,將該數據 寫入陣列緩存。
4、 根據權利要求3所述的方法,其特征在于,在對損壞空間進行數據讀寫, 所述數據未保存在陣列緩存內時,將該數據寫入陣列緩存包括在讀數據時,所要讀取的數據中存在損壞空間的數據、并且未保存在陣列 緩存內,將讀取的損壞空間的數據寫入陣列緩存的讀緩存內;在寫數據時,當數據寫入的空間為損壞空間、并且該數據未保存在陣列緩 存內,將該數據寫入所述陣列緩存的寫緩存內。
5、 根據權利要求4所述的方法,其特征在于,所述將損壞空間的數據寫入 陣列緩存包括在陣列緩存可用空間不足時,按照陣列緩存策略釋放陣列緩存內保存的非 損壞空間的數據,將所述損壞空間的數據寫入釋放空間。
6、 根據權利要求3或4所述的方法,其特征在于,該方法進一步包括 在將非損壞空間的數據寫入陣列緩存時,僅將該數據寫入陣列緩存內未被損壞空間凄t據占用的空間中。
7、 根據權利要求1所述的方法,其特征在于,所述將損壞空間的數據存入 第 一存儲介質為將所述數據寫入新增磁盤。
8、 根據權利要求7所述的方法,其特征在于,該方法進一步包括 記錄數據被寫入新增磁盤的損壞空間;在使用所述新增磁盤同步損壞空間所在的磁盤時,根據記錄的損壞空間, 僅將磁盤中未記錄空間的數據同步至所述新增f茲盤。
9、 才艮據權利要求1所述的方法,其特征在于,所述將損壞空間上的數據存 入第一存儲介質為將所述數據寫入RAID系統內磁盤的校驗塊。
10、 根據權利要求7、 8或9所述的方法,其特征在于,所述將獨立冗余磁 盤陣列系統中損壞空間的數據存入第 一存儲介質包括在訪問數據時,確定所要訪問的數據為損壞空間的數據,將該數據存入第 一存儲介質。
11、 根據權利要求2、 7、 8或9所述的方法,其特征在于,所述將損壞空 間上的數據存入第 一存儲介質包括在獲知磁盤上出現損壞空間時,將該損壞空間上的數據保存至第一存儲介質。
12、 一種獨立冗余磁盤陣列系統,其特征在于,該系統包括 RAID控制器,用于控制將RAID系統中損壞空間上的數據存入第一存儲介質;當需要讀寫所述損壞空間的數據時,從第一存儲介質中獲得所述數據; 第一存儲介質,用于存儲損壞空間上的數據。
13、 根據權利要求12所述的RAID系統,其特征在于,所述第一存儲介質 為RAID系統中的陣列緩存。
14、 根據權利要求13所述的RAID系統,其特征在于, 所述RAID控制器,用于在對損壞空間進行數據讀寫,所述數據未保存在陣列緩存內時,將該^:據寫入陣列緩存。
15、 根據權利要求14所述的RAID系統,其特征在于,所述陣列緩存包括 讀緩存和寫緩存;所述RAID控制器,用于在讀數據時,所要讀取的數據中存在損壞空間的 數據、并且未保存在陣列緩存內,將讀取的損壞空間的數據寫入陣列緩存的讀緩存內;在寫數據時,當數據寫入的空間為損壞空間、并且該數據未保存在陣 列緩存內,將該數據寫入所述陣列緩存的寫緩存內。
16、 根據權利要求14或15所述的RAID系統,其特征在于, 所述RAID控制器,用于在陣列緩存可用空間不足時,按照陣列緩存策略釋放陣列緩存內保存的非損壞空間的數據,將所述損壞空間的數據寫入釋放空 間。
17、 根據權利要求14或15所述的RAID系統,其特征在于,所述RADI控制器,進一步用于在將非損壞空間的數據寫入陣列緩存時, 僅將該數據寫入陣列緩存內未被損壞空間數據占用的空間中。
18、 根據權利要求12所述的RAID系統,其特征在于, 所述第 一存儲介質為新增磁盤。
19、 根據權利要求18所述的RAID系統,其特征在于, 所述RAID控制器,進一步用于記錄數據被寫入新增磁盤的損壞空間;在使用所述新增;茲盤同步損壞空間所在的磁盤時,根據記錄的損壞空間,僅將磁 盤中未記錄空間的數據同步至所述新增磁盤。
20、 根據權利要求12所述的方法,其特征在于, 所述第一存儲介質為RAID系統磁盤中的校驗塊。
21、 根據權利要求18、 19或20所述的RAID系統,其特征在于, 所述RAID控制器,用于在訪問數據時,確定所要訪問的數據為損壞空間的數據,將該數據存入第一存儲介質。
22、 根據權利要求13、 18、 19或20所述的RAID系統,其特征在于, 所述RAID控制器,用于在獲知磁盤上出現損壞空間時,將該損壞空間上的數據保存至第 一存儲介質。
全文摘要
本發(fā)明公開了降級狀態(tài)下處理數據的方法及獨立冗余磁盤陣列系統,通過將損壞空間的數據存入第一存儲介質;當需要讀寫所述損壞空間的數據時,從所述第一存儲介質中獲得所述數據,使得對這些數據進行的讀寫操作的對象不再是損壞的空間,而是運行正常的第一存儲介質,這樣就可以按照正常的讀寫流程處理數據,進而能夠有效提高獨立冗余磁盤陣列系統在降級狀態(tài)下的性能。
文檔編號G06F3/06GK101236482SQ20081010093
公開日2008年8月6日 申請日期2008年2月26日 優(yōu)先權日2008年2月26日
發(fā)明者敏 侯 申請人:杭州華三通信技術有限公司