專利名稱::一種提升獨(dú)立磁盤冗余陣列性能的方法及其控制器的制作方法
技術(shù)領(lǐng)域:
:本發(fā)明涉及存儲(chǔ)系統(tǒng)
技術(shù)領(lǐng)域:
,尤指提升獨(dú)立磁盤冗余陣列性能的方法和獨(dú)立磁盤冗余陣列控制器。
背景技術(shù):
:獨(dú)立石茲盤冗余陣歹寸(RAID,RedundantArrayofIndependentDisks)才支術(shù)是目前采用的最廣泛的硬盤提升存儲(chǔ)性能和數(shù)據(jù)安全的技術(shù)。簡(jiǎn)單地講,RAID技術(shù)就是利用多個(gè)硬盤的組合連成一個(gè)陣列,實(shí)現(xiàn)以快速、準(zhǔn)確和安全的方式來讀寫磁盤數(shù)據(jù),從而達(dá)到提高數(shù)據(jù)的讀寫速度和安全性。RAID的數(shù)據(jù)組織方式采用的是分區(qū)、分塊和條帶。其中,分區(qū)是一個(gè)磁盤上的地址連續(xù)的存儲(chǔ)塊,一個(gè)磁盤可以劃分為多個(gè)分區(qū),每個(gè)分區(qū)的大小可以不等,有時(shí)也稱為邏輯磁盤;將一個(gè)分區(qū)分成多個(gè)大小相等、地址相鄰的塊,這些塊稱為分塊,分塊是條帶的元素,邏輯磁盤以分塊為單位將邏輯磁盤的地址映射到成員磁盤的地址;條帶是不同分區(qū)上的位置相關(guān)的分塊的集合,是組織不同分區(qū)上的分塊的單位。RAID的冗余技術(shù)分為鏡像冗余和校驗(yàn)冗余。其中,校驗(yàn)冗余是使用校驗(yàn)算法對(duì)同一條帶上的數(shù)據(jù)進(jìn)行校驗(yàn),把校驗(yàn)值寫入磁盤,當(dāng)條帶中的某個(gè)數(shù)據(jù)塊損壞時(shí),通過同一條帶的其他數(shù)據(jù)塊和校驗(yàn)值,重新算出被損壞的數(shù)據(jù),從而達(dá)到冗余的效果。RAID的降級(jí)(Degrade)是指冗余陣列中的一個(gè)或多個(gè)磁盤實(shí)效后的狀態(tài),此時(shí)陣列仍可以向外界提供正常的讀寫服務(wù),但是如果再有一個(gè)磁盤失效,則整個(gè)陣列處于不可用狀態(tài)。目前,采用校驗(yàn)冗余技術(shù)的RAID有RAID5、RAID3等,其中以RAID5最為常見。RAID5是一種由不少于3塊磁盤組成的陣列,它以條帶的方式向陣列中的磁盤寫數(shù)據(jù),以異或(XOR)運(yùn)算實(shí)現(xiàn)的奇偶校驗(yàn)為冗余方式,奇偶校驗(yàn)數(shù)據(jù)均勻分布在各個(gè)磁盤上。異或運(yùn)算通常用符號(hào)",,表示,其運(yùn)算規(guī)則為0@0=0;0@1=1;10=1;11=0;A@B=C<=>A<9C=B<=〉BC=A;這樣,當(dāng)RAID5降級(jí)時(shí),可以根據(jù)同條帶的其他磁盤上的數(shù)據(jù)來重建損壞的數(shù)據(jù)。圖1是現(xiàn)有技術(shù)中的RAID5陣列存儲(chǔ)數(shù)據(jù)的過程示意圖。如圖5所示,該RAID5由4塊物理石茲盤組成,分別為物理,茲盤0、1、2和3,每個(gè)條帶都有一個(gè)檢驗(yàn)塊,校驗(yàn)塊中的校驗(yàn)數(shù)據(jù)由同條帶中的數(shù)據(jù)塊使用異或運(yùn)算得出。例如,條帶1包括數(shù)據(jù)塊D1、D2、D3和校驗(yàn)塊P0,其中P0=D10D2④D3,其他條帶以此類推。假如當(dāng)Dl所在的磁盤故障,則可以通過等式Dl=P0@D2@D3來得到Dl的值,同理,故障磁盤在其他條帶的數(shù)據(jù)也使用這種方式獲取。下面介紹采用奇偶檢驗(yàn)冗余的RAID5降級(jí)后數(shù)據(jù)讀寫過程。圖2是現(xiàn)有技術(shù)中RAID5降級(jí)后的數(shù)據(jù)讀過程的流程圖。如圖2所示,包括以下步驟步驟201,接收到應(yīng)用下發(fā)的讀請(qǐng)求后,根據(jù)該RAID算法得到該讀請(qǐng)求的目標(biāo)地址。步驟202,判斷所得到的目標(biāo)地址是否在故障磁盤上,是則執(zhí)行步驟203,否則執(zhí)行步驟204。步驟203,該目標(biāo)地址在故障磁盤上,所以該目標(biāo)地址上的數(shù)據(jù)已經(jīng)丟失,需要根據(jù)冗余信息計(jì)算出該目標(biāo)地址的數(shù)據(jù),即讀取該目標(biāo)地址所在條帶上的其他數(shù)據(jù)塊和校驗(yàn)塊,并使用異或算法算出該目標(biāo)地址上的數(shù)據(jù)。執(zhí)行步驟205。步驟204,該目標(biāo)地址在正常的^茲盤上,所以直接讀取該目標(biāo)地址上的數(shù)據(jù)。執(zhí)行步驟205。步驟205,將讀取的數(shù)據(jù)提交上層處理。圖3是現(xiàn)有技術(shù)中RAID5降級(jí)后的數(shù)據(jù)寫過程的流程圖。如圖3所示,包括以下步驟步驟301,接收到應(yīng)用下發(fā)的寫請(qǐng)求后,根據(jù)該RAID算法得到該寫請(qǐng)求的目標(biāo)地址。步驟302,判斷所得到的目標(biāo)地址是否在故障磁盤上,是則執(zhí)行步驟303,否則執(zhí)行步驟304。步驟303,該目標(biāo)地址在故障磁盤上,—?jiǎng)t根據(jù)要寫入的數(shù)據(jù)以及該目標(biāo)地址所在條帶的其他數(shù)據(jù)在內(nèi)存中計(jì)算出新的校驗(yàn)和后,更新該條帶中的校驗(yàn)塊數(shù)據(jù),并將該要寫入的數(shù)據(jù)直接丟棄。執(zhí)行步驟305。步驟304,該目標(biāo)地址在正常的磁盤上,則根據(jù)要寫入的數(shù)據(jù)以及該目標(biāo)地址所在條帶的其他數(shù)據(jù)在內(nèi)存中計(jì)算出新的校驗(yàn)和后,更新該條帶中的校驗(yàn)塊數(shù)據(jù),并將要寫入的數(shù)據(jù)直接寫入該目標(biāo)地址。執(zhí)行步驟305。步驟305,返回寫成功。在上述流程可以看出,RAID5降級(jí)后,在讀故障磁盤中的數(shù)據(jù)時(shí),需要讀取整個(gè)條帶的正常數(shù)據(jù)塊和校驗(yàn)塊,通過計(jì)算得到故障磁盤的數(shù)據(jù)。例如一個(gè)RAID5有N個(gè)》茲盤,讀取故障-磁盤的一塊數(shù)據(jù)時(shí),需要讀取同條帶上的其他N-1塊數(shù)據(jù),并對(duì)讀取的數(shù)據(jù)進(jìn)行計(jì)算,因此RAID5的讀性能嚴(yán)重下降。同樣,在向故障磁盤中寫數(shù)據(jù)時(shí),也需要讀取同條帶的數(shù)據(jù)塊,通過計(jì)算得到新的校驗(yàn)和并更新校驗(yàn)塊,因此,寫性能也下降了。綜上所述,現(xiàn)有的采用校驗(yàn)冗余的RAID在降級(jí)后其讀寫性能嚴(yán)重下降。
發(fā)明內(nèi)容本發(fā)明提供了兩種提升獨(dú)立磁盤冗余陣列RAID性能的方法,該方法能夠在RAID降級(jí)時(shí),有效提高其性能。本發(fā)明還提供了兩種獨(dú)立磁盤冗余陣列RAID控制器,該控制器能夠在RAID降級(jí)時(shí),有效提高其性能。為達(dá)到上述目的,本發(fā)明的技術(shù)方案具體是這樣實(shí)現(xiàn)的本發(fā)明公開了一種提升獨(dú)立磁盤冗余陣列RAID性能的方法,該方法應(yīng)用于采用沖L驗(yàn)冗余且已降級(jí)的RAID,該方法包括為RAID創(chuàng)建信息表,該信息表用于記錄該RAID中的每個(gè)條帶中的校驗(yàn)塊所存儲(chǔ)的數(shù)據(jù)為校驗(yàn)數(shù)據(jù)或故障磁盤數(shù)據(jù);在收到讀請(qǐng)求時(shí),判斷該讀請(qǐng)求的讀地址是否在故障磁盤上;如果讀地址不在故障磁盤上,則直接讀取讀地址中的數(shù)據(jù);如果讀地址在故障磁盤上,則根據(jù)所述信息表判斷該讀地址所在條帶中的校驗(yàn)塊所存儲(chǔ)的數(shù)據(jù)是校驗(yàn)數(shù)據(jù)還是故障磁盤數(shù)據(jù);如果是故障磁盤數(shù)據(jù),則直接讀取該讀地址所在條帶中的校驗(yàn)塊中的數(shù)據(jù);反之,如果是校驗(yàn)數(shù)據(jù),則根據(jù)該讀地址所在條帶中的校驗(yàn)塊和其他非故障磁盤上的數(shù)據(jù)塊中的數(shù)據(jù),計(jì)算出該讀地址中的數(shù)據(jù),將該計(jì)算出的數(shù)據(jù)寫入讀地址所在條帶中的校驗(yàn)塊,在所述信息表中將該讀地址所在條帶中的校驗(yàn)塊所存儲(chǔ)的數(shù)據(jù)記錄為故障磁盤數(shù)據(jù),并將該計(jì)算出的數(shù)據(jù)作為所讀取的數(shù)據(jù)。本發(fā)明還提供了一種提升獨(dú)立磁盤冗余陣列RAID性能的方法,該方法應(yīng)用于采用校驗(yàn)冗余且已降級(jí)的RAID,該方法包括為RAID創(chuàng)建信息表,該信息表用于記錄該RAID中的每個(gè)條帶中的校驗(yàn)塊所存儲(chǔ)的數(shù)據(jù)為校驗(yàn)數(shù)據(jù)或故障磁盤數(shù)據(jù);在收到寫請(qǐng)求時(shí),判斷該寫請(qǐng)求的寫地址是否在故障磁盤上;如果寫地址不在故障磁盤上,則根據(jù)所述信息表判斷該寫地址所在條帶中的校驗(yàn)塊所存儲(chǔ)的數(shù)據(jù)是校驗(yàn)數(shù)據(jù)還是故障磁盤數(shù)據(jù);如杲是故障磁盤數(shù)據(jù),則直接在寫地址中寫入寫請(qǐng)求要求寫入的數(shù)據(jù);反之,如果是校驗(yàn)數(shù)據(jù),則在寫地址中寫入寫請(qǐng)求要求寫入的數(shù)據(jù),并更新校驗(yàn)塊中的校驗(yàn)數(shù)據(jù);如果寫地址在故障磁盤上,則根據(jù)所述信息表判斷該寫地址所在條帶中的校驗(yàn)塊所存儲(chǔ)的數(shù)據(jù)是校驗(yàn)數(shù)據(jù)還是故障磁盤數(shù)據(jù);如果是故障磁盤數(shù)據(jù),則在寫地址所在條帶中的校驗(yàn)塊中寫入寫請(qǐng)求要求寫入的數(shù)據(jù);反之,如果是校驗(yàn)數(shù)據(jù),則在寫地址所在條帶中的校驗(yàn)塊中寫入寫請(qǐng)求要求寫入的數(shù)據(jù),并在所述信息表中將寫地址所在條帶中的校驗(yàn)塊所存儲(chǔ)的數(shù)據(jù)記錄為故障磁盤數(shù)據(jù)。本發(fā)明公開了一種獨(dú)立磁盤冗余陣列RAID控制器,該RAID控制器應(yīng)用于采用校驗(yàn)冗余且已降級(jí)的RAID,該RAID控制器包括存儲(chǔ)模塊、接口模塊和核心處理模塊,其中,存儲(chǔ)模塊,用于保存信息表,該信息表用于記錄RAID中的每個(gè)條帶中的校驗(yàn)塊所存儲(chǔ)的數(shù)據(jù)為校驗(yàn)數(shù)據(jù)或故障磁盤數(shù)據(jù);接口模塊,用于接收讀請(qǐng)求并發(fā)送給核心處理模塊,并將核心處理模塊返回的讀數(shù)據(jù)發(fā)送出去;核心處理模塊,用于在收到接口模塊發(fā)送的讀請(qǐng)求時(shí),判斷該讀請(qǐng)求的讀地址是否在故障磁盤上;如果讀地址不在故障磁盤上,則直接讀取讀地址中的數(shù)據(jù),并返回給接口模塊;如果讀地址在故障磁盤上,則根據(jù)所述信息表判斷該讀地址所在條帶中的校驗(yàn)塊所存儲(chǔ)的數(shù)據(jù)是校驗(yàn)數(shù)據(jù)還是故障磁盤數(shù)據(jù);如果是故障磁盤數(shù)據(jù),則直接讀取該讀地址所在條帶中的校驗(yàn)塊中的數(shù)據(jù),并返回給接口模塊;反之,如果是校驗(yàn)數(shù)據(jù),則根據(jù)該讀地址所在條帶中的校驗(yàn)塊和其他非故障磁盤上的數(shù)據(jù)塊中的數(shù)據(jù),計(jì)算出該讀地址中的數(shù)椐,將該計(jì)算出的數(shù)據(jù)寫入讀地址所在條帶中的校驗(yàn)塊,在所述信息表中將算出的數(shù)據(jù)作為所讀取的數(shù)據(jù)返回給接口模塊。本發(fā)明還公開了一種獨(dú)立磁盤冗余陣列RAID控制器,該RAID控制器應(yīng)用于采用校驗(yàn)冗余且已降級(jí)的RAID,該RAID控制器包括存儲(chǔ)模塊、接口模塊和核心處理模塊,其中,存儲(chǔ)模塊,用于保存信息表,該信息表用于記錄RAID中的每個(gè)條帶中的校驗(yàn)塊所存儲(chǔ)的數(shù)據(jù)為校驗(yàn)數(shù)據(jù)或故障磁盤數(shù)據(jù);接口模塊,用于接收寫請(qǐng)求并發(fā)送給核心處理模塊,并將核心處理模塊返回的寫成功消息發(fā)送出去;核心處理模塊,用于在收到接口模塊發(fā)送的寫請(qǐng)求時(shí),判斷該寫請(qǐng)求的寫地址是否在故障磁盤上;如果寫地址不在故障磁盤上,則根據(jù)所述信息表判斷該寫地址所在條帶中的校驗(yàn)塊所存儲(chǔ)的數(shù)據(jù)是校驗(yàn)數(shù)據(jù)還是故障磁盤數(shù)據(jù),如果是故障磁盤數(shù)據(jù),則直接在寫地址中寫入寫請(qǐng)求要求寫入的數(shù)據(jù),并向接口模塊返回寫成功消息,反之,如果是校驗(yàn)數(shù)據(jù),則在寫地址中寫入寫請(qǐng)求要求寫入的數(shù)據(jù)的同時(shí)更新校驗(yàn)塊中的校驗(yàn)數(shù)據(jù),并向接口模塊返回寫成功消息;如果寫地址在故障磁盤上,則根據(jù)所述信息表判斷該寫地址所在條帶中的校驗(yàn)塊所存儲(chǔ)的數(shù)據(jù)是校驗(yàn)數(shù)據(jù)還是故障磁盤數(shù)據(jù),如果是故障磁盤數(shù)據(jù),則在寫地址所在條帶中的校驗(yàn)塊中寫入寫請(qǐng)求要求寫入的數(shù)據(jù),并向接口模塊返回寫成功消息,反之,如果是校驗(yàn)數(shù)據(jù),則在寫地址所在條帶中的校驗(yàn)塊中寫入寫請(qǐng)求要求寫入的數(shù)據(jù),并在所述信息表中將寫地址所在條帶中的校驗(yàn)塊所存儲(chǔ)的數(shù)據(jù)記錄為故障磁盤數(shù)據(jù),并向接口模塊返回寫成功消息。由上述技術(shù)方案可見,本發(fā)明這種在RAID降級(jí)的情況下,使用同條帶的校驗(yàn)塊來存儲(chǔ)故障磁盤數(shù)據(jù),并對(duì)校驗(yàn)塊中的數(shù)據(jù)類型進(jìn)行相應(yīng)的標(biāo)記的技術(shù)方案,使得RAID降級(jí)模式下的讀寫都不需要計(jì)算校驗(yàn)和,而是直接讀寫校驗(yàn)塊,從而提高了RAID降級(jí)后的讀寫特性。圖1是現(xiàn)有技術(shù)中的RAID5陣列存儲(chǔ)數(shù)據(jù)的過程示意圖2是現(xiàn)有技術(shù)中RAID5降級(jí)后的數(shù)據(jù)讀過程的流程圖3是現(xiàn)有技術(shù)中RAID5降級(jí)后的數(shù)據(jù)寫過程的流程圖4是本發(fā)明實(shí)施例中RAID降級(jí)后的數(shù)據(jù)讀過程的流程圖5是本發(fā)明實(shí)施例中RAID降級(jí)后的數(shù)據(jù)寫過程的流程圖6是本發(fā)明實(shí)施例一種獨(dú)立磁盤冗余陣列RAID控制器的組成結(jié)構(gòu)框圖。具體實(shí)施例方式本發(fā)明的核心思想是為降級(jí)的RAID維護(hù)一張信息表,該信息表記錄RAID中的每個(gè)條帶中的校驗(yàn)塊所存儲(chǔ)的數(shù)據(jù)為校驗(yàn)數(shù)據(jù)或故障磁盤數(shù)據(jù),在RAID降級(jí)后,第一次訪問故障磁盤的數(shù)據(jù)時(shí),得到該數(shù)據(jù)并寫入同條帶的校驗(yàn)塊,同時(shí)在信息表中標(biāo)記該條帶中的校驗(yàn)塊存放的是故障磁盤數(shù)據(jù),而非校驗(yàn)數(shù)據(jù),此后,再訪問故障磁盤時(shí),直接訪問校驗(yàn)塊即可,從而避免每次訪問都計(jì)算校驗(yàn)和的過程,大大提高了降級(jí)后的RAID的讀寫特性。為使本發(fā)明的目的、技術(shù)方案及優(yōu)點(diǎn)更加清楚明白,以下參照附圖并舉實(shí)施例,對(duì)本發(fā)明進(jìn)一步詳細(xì)說明。在本發(fā)明的實(shí)施例中,首先在系統(tǒng)維護(hù)的RAID信息表中為采用校驗(yàn)冗余技術(shù)的RAID添加一張信息表,該信息表記錄對(duì)應(yīng)RAID的每個(gè)條帶中的校驗(yàn)塊所存儲(chǔ)的數(shù)據(jù)類型,該數(shù)據(jù)類型為"校驗(yàn)數(shù)據(jù)"或"故障磁盤數(shù)據(jù)"。具體可以以位圖形式表示所述信息表,其中,在校驗(yàn)塊中以"0"表示"校驗(yàn)數(shù)據(jù)",以"1"表示"故障磁盤數(shù)據(jù)"。則RAID正常狀態(tài)(沒有故障磁盤)下的對(duì)應(yīng)的信息表如表1所示條帶號(hào)校驗(yàn)塊數(shù)據(jù)類型001020040表1當(dāng)RAID降級(jí)后,讀寫過程分別如圖4和5所示。圖4是本發(fā)明實(shí)施例中RAID降級(jí)后的數(shù)據(jù)讀過程的流程圖。如圖4所示,包括以下步驟步驟401,接收到應(yīng)用下發(fā)的讀請(qǐng)求后,根據(jù)RAID算法得到該讀請(qǐng)求的目標(biāo)讀i也址。步驟402,判斷所得到的讀地址是否在故障磁盤上,是則執(zhí)行步驟404,否則執(zhí)行步驟403。步驟403,讀地址不在故障磁盤上,而是在正常工作的磁盤上,則直接讀取讀地址中的數(shù)據(jù)。執(zhí)行步驟407。步驟404,讀地址在故障磁盤上,進(jìn)一步根據(jù)該RAID的信息表判斷該果是校驗(yàn)數(shù)據(jù),則執(zhí)行步驟405;如果是故障磁盤數(shù)椐,則執(zhí)行步驟406。步驟405,如果是校驗(yàn)數(shù)據(jù),則根據(jù)該讀地址所在條帶中的校驗(yàn)塊和其他非故障磁盤上的數(shù)據(jù)塊中的數(shù)據(jù),計(jì)算出該讀地址中的數(shù)據(jù),將該計(jì)算出的數(shù)據(jù)寫入讀地址所在條帶中的校驗(yàn)塊,在所述信息表中將該讀地址所在條帶中的校驗(yàn)塊所存儲(chǔ)的數(shù)據(jù)記錄為故障磁盤數(shù)據(jù),并將該計(jì)算出的數(shù)據(jù)作為所讀取的數(shù)據(jù)。執(zhí)行步驟407。本步驟中,與目標(biāo)地址(即讀地址)同一條帶的校驗(yàn)塊中所存放的是"校驗(yàn)數(shù)據(jù)",表明RAID降級(jí)后該目標(biāo)地址第一次被訪問,因此需要根據(jù)同條帶的其他數(shù)據(jù)恢復(fù)出故障磁盤上的讀地址中的數(shù)據(jù),將其存放于校驗(yàn)塊中,并在信息表中指定該條帶的校驗(yàn)塊中數(shù)據(jù)類型為"故障磁盤數(shù)據(jù)"。步驟406:如果是故障磁盤數(shù)據(jù),則直接讀取該讀地址所在條帶中的校驗(yàn)塊中的數(shù)據(jù)。執(zhí)行步驟407。本步驟中,與目標(biāo)地址(即讀地址)同一條帶的校驗(yàn)塊中所存放的是"故障磁盤數(shù)據(jù)",表明讀地址的數(shù)據(jù)已存放于同條帶的校驗(yàn)塊中,因此直接讀校驗(yàn)塊即可。步驟407,將讀取的數(shù)據(jù)提交上層處理。圖5是本發(fā)明實(shí)施例中RAID降級(jí)后的數(shù)據(jù)寫過程的流程圖。如圖5所示,包括以下步驟步驟501,接收到應(yīng)用下發(fā)的寫請(qǐng)求后,根據(jù)RAID算法得到該寫請(qǐng)求的目標(biāo)寫i也址。步驟502,判斷所得到的寫地址是否在故障磁盤上,是則執(zhí)行步驟506,否則執(zhí)行步驟503。步驟503,寫地址不在故障磁盤上,而是在正常工作的磁盤上,進(jìn)一步根據(jù)該RAID的信息表判斷該寫地址所在條帶中的校驗(yàn)塊所存儲(chǔ)的數(shù)據(jù)是校驗(yàn)數(shù)據(jù)還是故障磁盤數(shù)據(jù);如果是校驗(yàn)數(shù)據(jù),則執(zhí)行步驟504;如果是故障磁盤數(shù)據(jù),則執(zhí)行步驟505。步驟504,在寫地址中寫入寫請(qǐng)求要求寫入的數(shù)據(jù),并更新校驗(yàn)塊中的校驗(yàn)數(shù)據(jù)。執(zhí)行步驟509。本步驟中,在寫地址中寫入寫請(qǐng)求要求寫入的數(shù)據(jù),并更新校驗(yàn)塊中的校驗(yàn)數(shù)據(jù)的具體過程為先將寫地址所在條帶的所有未損壞數(shù)據(jù)都讀取到內(nèi)存中,然后在寫地址中寫入寫請(qǐng)求要求寫入的數(shù)據(jù),同時(shí),根據(jù)內(nèi)存中的數(shù)據(jù)先計(jì)算出同條帶的在故障磁盤中的數(shù)據(jù),再根據(jù)新寫入的數(shù)據(jù)計(jì)算出新的校驗(yàn)和并進(jìn)行更新。步驟505,直接在寫地址中寫入寫請(qǐng)求要求寫入的數(shù)據(jù)。執(zhí)行步驟509。步驟506,寫地址在故障磁盤上,進(jìn)一步根據(jù)該RAID的信息表判斷該果是校驗(yàn)數(shù)據(jù),則執(zhí)行步驟507;如果是故障磁盤數(shù)據(jù),則執(zhí)行步驟508。步驟507,如果是校驗(yàn)數(shù)據(jù),則在寫地址所在條帶中的校驗(yàn)塊中寫入寫請(qǐng)求要求寫入的數(shù)據(jù),并在所述信息表中將寫地址所在條帶中的校驗(yàn)塊所存儲(chǔ)的數(shù)據(jù)記錄為故障磁盤數(shù)據(jù)。執(zhí)行步驟509。本步驟中,與目標(biāo)地址(即寫地址)同一條帶的校驗(yàn)塊中所存放的是"校驗(yàn)數(shù)椐,,,表明RAID降級(jí)后該目標(biāo)地址第一次被訪問,因此將數(shù)據(jù)寫入校驗(yàn)塊中的同時(shí)在信息表中指定該校驗(yàn)塊中的數(shù)據(jù)類型為"故障磁盤數(shù)據(jù)"。本步驟中,向校驗(yàn)塊中寫入數(shù)據(jù)分為兩種情況1、如果寫請(qǐng)求要求寫入的數(shù)據(jù)的大小與塊的大小相等,則在寫地址所在條帶中的校驗(yàn)塊中直接寫入寫請(qǐng)求要求寫入的數(shù)據(jù);2、如果寫請(qǐng)求要求寫入的數(shù)據(jù)的大小小于塊的大小,則根據(jù)寫地址所在條帶中的校驗(yàn)塊和其他非故障磁盤上的數(shù)據(jù)塊中的數(shù)據(jù)計(jì)算出寫地址中原有的數(shù)據(jù),并在寫地址所在條帶中的校驗(yàn)塊中寫入寫請(qǐng)求要求寫入的數(shù)據(jù)和寫地址中原有的不會(huì)被寫請(qǐng)求要求寫入的數(shù)據(jù)所覆蓋數(shù)據(jù)。例如,RAID中塊的大小為10比特,而寫請(qǐng)求要求寫入的數(shù)據(jù)為"11011",是5比特,則需要重新恢復(fù)出寫地址所對(duì)應(yīng)的數(shù)據(jù)塊中的數(shù)據(jù),這里假設(shè)恢復(fù)出來的數(shù)據(jù)為"0000011111",則本次寫入的數(shù)據(jù)只會(huì)覆蓋其前5個(gè)比特,而不會(huì)覆蓋后5個(gè)比特,但由于是第一次訪問該數(shù)據(jù)塊,所以該后5個(gè)比特的數(shù)據(jù)也是需要放入校驗(yàn)塊中的,則最終寫入校驗(yàn)塊的數(shù)據(jù)為"iioimm"。步驟508,如果是故障磁盤數(shù)據(jù),則直接則在寫地址所在條帶中的校驗(yàn)塊中寫入寫請(qǐng)求要求寫入的數(shù)據(jù)。執(zhí)行步驟509。本步驟中,與目標(biāo)地址(即讀地址)同一條帶的校驗(yàn)塊中所存放的是"故障磁盤數(shù)據(jù)",表明讀地址的數(shù)據(jù)已存放于同條帶的校驗(yàn)塊中,因此直接讀校驗(yàn)塊即可。步驟509,返回寫成功消息。如果一個(gè)RAID(例如為RAID5)正常工作時(shí)的信息表如表1所示,則在該RAID降級(jí)后,陣列中的l、2和3號(hào)條帶被如圖4和5所示的讀寫過程訪問過,則最終結(jié)果為1、2和3號(hào)條帶中的校驗(yàn)塊中的數(shù)據(jù)變?yōu)楣收洗疟P數(shù)據(jù),而未被訪問的0和4號(hào)條帶的校驗(yàn)塊未進(jìn)行更新,則該RAID的信息表變?yōu)槿绫?所示<table>tableseeoriginaldocumentpage16</column></row><table>表2本發(fā)明實(shí)施例的上述方案,適用于采用校驗(yàn)冗余的RAID降級(jí)時(shí)使用。采用校驗(yàn)冗余的RAID包括RAID5、RAID3等。圖6是本發(fā)明實(shí)施例一種獨(dú)立磁盤冗余陣列RAID控制器的組成結(jié)構(gòu)框圖。如圖6所示,該RAID控制器應(yīng)用于采用校驗(yàn)冗余且已降級(jí)的RAID,該RAID控制器包括存儲(chǔ)模塊601、接口模塊602和核心處理模塊603,其中存儲(chǔ)模塊601,用于保存信息表,該信息表用于記錄RAID中的每個(gè)條帶中的校驗(yàn)塊所存儲(chǔ)的數(shù)據(jù)為校驗(yàn)數(shù)據(jù)或故障磁盤數(shù)據(jù);接口^莫塊602,用于接收讀請(qǐng)求并發(fā)送給核心處理沖莫塊603,并將核心處理模塊603返回的讀數(shù)據(jù)發(fā)送出去;核心處理模塊603,用于在收到接口模塊發(fā)送的讀請(qǐng)求時(shí),判斷該讀請(qǐng)求的讀地址是否在故障磁盤上;如果讀地址不在故障磁盤上,則直接讀取讀地址中的數(shù)據(jù),并返回給接口模塊602;如果讀地址在故障磁盤上,則根據(jù)所述信磁盤數(shù)據(jù);如果是故障磁盤數(shù)據(jù),則直接讀取該讀地址所在條帶中的校驗(yàn)塊中的數(shù)據(jù),并返回給接口模塊602;反之,如果是校驗(yàn)數(shù)據(jù),則根據(jù)該讀地址所在條帶中的校驗(yàn)塊和其他非故障磁盤上的數(shù)據(jù)塊中的數(shù)椐,計(jì)算出該讀地址中的數(shù)據(jù),將該計(jì)算出的數(shù)據(jù)寫入讀地址所在條帶中的校驗(yàn)塊,在所述據(jù),并將該計(jì)算出的數(shù)據(jù)作為所讀取的數(shù)據(jù)返回給接口模塊602。在圖6中,接口模塊602,還用于接收寫請(qǐng)求并發(fā)送給核心處理模塊603,并將核心處理模塊603返回的寫成功消息發(fā)送出去;核心處理模塊603,用于在收到接口模塊發(fā)送的寫請(qǐng)求時(shí),判斷該寫請(qǐng)求的寫地址是否在故障i茲盤上;如果寫地址不在故障》茲盤上,則根據(jù)所述信息表數(shù)據(jù),如果是故障磁盤數(shù)據(jù),則直接在寫地址中寫入寫請(qǐng)求要求寫入的數(shù)據(jù),并向接口模塊602返回寫成功消息,反之,如果是校驗(yàn)數(shù)據(jù),則在寫地址中寫入寫請(qǐng)求要求寫入的數(shù)據(jù)的同時(shí)更新校驗(yàn)塊中校驗(yàn)數(shù)據(jù),并向接口模塊602返回寫成功消息;如果寫地址在故障磁盤上,則根據(jù)所述信息表判斷該寫地址所在條帶中的校驗(yàn)塊所存儲(chǔ)的數(shù)據(jù)是校驗(yàn)數(shù)據(jù)還是故障磁盤數(shù)據(jù);如果是故障磁盤數(shù)據(jù),則在寫地址所在條帶中的校驗(yàn)塊中寫入寫請(qǐng)求要求寫入的數(shù)據(jù),并向接口模塊602返回寫成功消息;反之,如果是校驗(yàn)數(shù)據(jù),則在寫地址所在條帶中的校驗(yàn)塊中寫入寫請(qǐng)求要求寫入的數(shù)據(jù),并在所述信息表中將寫地址所在條帶中的校驗(yàn)塊所存儲(chǔ)的數(shù)據(jù)記錄為故障磁盤數(shù)據(jù),并向接口模塊602返回寫成功消息。在圖6中,核心處理模塊603,用于在判斷出寫地址在故障磁盤上,且根據(jù)所述信息表判斷出寫地址所在條帶中的校驗(yàn)塊所存儲(chǔ)的數(shù)據(jù)是校驗(yàn)數(shù)據(jù)時(shí),如果寫請(qǐng)求要求寫入的數(shù)據(jù)的大小與塊的大小相等,則在寫地址所在條帶中的校驗(yàn)塊中直接寫入寫請(qǐng)求要求寫入的數(shù)據(jù);如果寫請(qǐng)求要求寫入的數(shù)據(jù)的大小小于塊的大小,則根據(jù)寫地址所在條帶中的校驗(yàn)塊和其他非故障磁盤上的數(shù)據(jù)塊中的數(shù)據(jù)計(jì)算出寫地址中原有的數(shù)據(jù),并在寫地址所在條帶中的校驗(yàn)塊中寫入寫請(qǐng)求要求寫入的數(shù)據(jù)和寫地址中原有的不會(huì)被寫請(qǐng)求要求寫入的數(shù)據(jù)所覆蓋數(shù)據(jù)。綜上所述,本發(fā)明這種在RAID降級(jí)的情況下,使用同條帶的校驗(yàn)塊來存儲(chǔ)故障磁盤數(shù)據(jù),并對(duì)校驗(yàn)塊中的數(shù)據(jù)類型進(jìn)行相應(yīng)的標(biāo)記的技術(shù)方案,使得RAID降級(jí)模式下的讀寫都不需要計(jì)算校驗(yàn)和,而是直接讀寫校驗(yàn)塊,從而提高了RAID降級(jí)后的讀寫特性以上所述,僅為本發(fā)明的較佳實(shí)施例而已,并非用于限定本發(fā)明的保護(hù)范圍,凡在本發(fā)明的精神和原則之內(nèi)所做的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。權(quán)利要求1、一種提升獨(dú)立磁盤冗余陣列RAID性能的方法,其特征在于,該方法應(yīng)用于采用校驗(yàn)冗余且已降級(jí)的RAID,該方法包括為RAID創(chuàng)建信息表,該信息表用于記錄該RAID中的每個(gè)條帶中的校驗(yàn)塊所存儲(chǔ)的數(shù)據(jù)為校驗(yàn)數(shù)據(jù)或故障磁盤數(shù)據(jù);在收到讀請(qǐng)求時(shí),判斷該讀請(qǐng)求的讀地址是否在故障磁盤上;如果讀地址不在故障磁盤上,則直接讀取讀地址中的數(shù)據(jù);如果讀地址在故障磁盤上,則根據(jù)所述信息表判斷該讀地址所在條帶中的校驗(yàn)塊所存儲(chǔ)的數(shù)據(jù)是校驗(yàn)數(shù)據(jù)還是故障磁盤數(shù)據(jù);如果是故障磁盤數(shù)據(jù),則直接讀取該讀地址所在條帶中的校驗(yàn)塊中的數(shù)據(jù);反之,如果是校驗(yàn)數(shù)據(jù),則根據(jù)該讀地址所在條帶中的校驗(yàn)塊和其他非故障磁盤上的數(shù)據(jù)塊中的數(shù)據(jù),計(jì)算出該讀地址中的數(shù)據(jù),將該計(jì)算出的數(shù)據(jù)寫入讀地址所在條帶中的校驗(yàn)塊,在所述信息表中將該讀地址所在條帶中的校驗(yàn)塊所存儲(chǔ)的數(shù)據(jù)記錄為故障磁盤數(shù)據(jù),并將該計(jì)算出的數(shù)據(jù)作為所讀取的數(shù)據(jù)。2、如權(quán)利要求l所述的方法,其特征在于,該方法進(jìn)一步包括在收到寫請(qǐng)求時(shí),判斷該寫請(qǐng)求的寫地址是否在故障磁盤上;如果寫地址不在故障磁盤上,則根據(jù)所述信息表判斷該寫地址所在條帶中的校驗(yàn)塊所存儲(chǔ)的數(shù)據(jù)是校驗(yàn)數(shù)據(jù)還是故障磁盤數(shù)據(jù);如果是故障磁盤數(shù)據(jù),則直接在寫地址中寫入寫請(qǐng)求要求寫入的數(shù)據(jù);反之,如果是校驗(yàn)數(shù)據(jù),則在寫地址中寫入寫請(qǐng)求要求寫入的數(shù)據(jù),并更新校驗(yàn)塊中的校驗(yàn)數(shù)據(jù);如果寫地址在故障磁盤上,則根據(jù)所述信息表判斷該寫地址所在條帶中的校驗(yàn)塊所存儲(chǔ)的數(shù)據(jù)是校驗(yàn)數(shù)據(jù)還是故障磁盤數(shù)據(jù);如果是故障磁盤數(shù)據(jù),則在寫地址所在條帶中的校驗(yàn)塊中寫入寫請(qǐng)求要求寫入的數(shù)據(jù);反之,如果是校驗(yàn)數(shù)據(jù),則在寫地址所在條帶中的校驗(yàn)塊中寫入寫請(qǐng)求要求寫入的數(shù)據(jù),并在所述信息表中將寫地址所在條帶中的校驗(yàn)塊所存儲(chǔ)的數(shù)據(jù)記錄為故障-磁盤數(shù)據(jù)。3、如權(quán)利要求2所述的方法,其特征在于,所述如果是校驗(yàn)數(shù)據(jù),則在寫地址所在條帶中的校驗(yàn)塊中寫入寫請(qǐng)求要求寫入的數(shù)據(jù)包括如果寫請(qǐng)求要求寫入的數(shù)據(jù)的大小與塊的大小相等,則在寫地址所在條帶中的校驗(yàn)塊中直接寫入寫請(qǐng)求要求寫入的數(shù)據(jù);如果寫請(qǐng)求要求寫入的數(shù)據(jù)的大小小于塊的大小,則根據(jù)寫地址所在條帶中的校驗(yàn)塊.和其他非故障磁盤上的數(shù)據(jù)塊中的數(shù)據(jù)計(jì)算出寫地址中原有的數(shù)據(jù),并在寫地址所在條帶中的校驗(yàn)塊中寫入寫請(qǐng)求要求寫入的數(shù)據(jù)和寫地址中原有的不會(huì)被寫請(qǐng)求要求寫入的數(shù)據(jù)所覆蓋的數(shù)椐。4、一種提升獨(dú)立磁盤冗余陣列RAID性能的方法,其特征在于,該方法應(yīng)用于采用校驗(yàn)冗余且已降級(jí)的RAID,該方法包括為RAID創(chuàng)建信息表,該信息表用于記錄該RAID中的每個(gè)條帶中的校驗(yàn)塊所存儲(chǔ)的數(shù)據(jù)為校驗(yàn)數(shù)據(jù)或故障磁盤數(shù)據(jù);在收到寫請(qǐng)求時(shí),判斷該寫請(qǐng)求的寫地址是否在故障磁盤上;如果寫地址不在故障磁盤上,則根據(jù)所述信息表判斷該寫地址所在條帶中的校驗(yàn)塊所存儲(chǔ)的數(shù)據(jù)是校驗(yàn)數(shù)據(jù)還是故障磁盤數(shù)據(jù);如果是故障磁盤數(shù)據(jù),則直接在寫地址中寫入寫請(qǐng)求要求寫入的數(shù)據(jù);反之,如果是校驗(yàn)數(shù)據(jù),則在寫地址中寫入寫請(qǐng)求要求寫入的數(shù)據(jù),并更新校驗(yàn)塊中的校驗(yàn)數(shù)據(jù);如果寫地址在故障磁盤上,則根據(jù)所述信息表判斷該寫地址所在條帶中的校驗(yàn)塊所存儲(chǔ)的數(shù)據(jù)是校驗(yàn)數(shù)據(jù)還是故障磁盤數(shù)據(jù);如果是故障磁盤數(shù)據(jù),則在寫地址所在條帶中的校驗(yàn)塊中寫入寫請(qǐng)求要求寫入的數(shù)據(jù);反之,如果是校驗(yàn)數(shù)據(jù),則在寫地址所在條帶中的校驗(yàn)塊中寫入寫請(qǐng)求要求寫入的數(shù)據(jù),并在所述信息表中將寫地址所在條帶中的校驗(yàn)塊所存儲(chǔ)的數(shù)據(jù)記錄為故障磁盤數(shù)據(jù)。5、如權(quán)利要求4所述的方法,其特征在于,所述如果是校驗(yàn)數(shù)據(jù),則在寫地址所在條帶中的校驗(yàn)塊中寫入寫請(qǐng)求要求寫入的數(shù)據(jù)包括如果寫請(qǐng)求要求寫入的數(shù)據(jù)的大小與塊的大小相等,則在寫地址所在條帶中的校驗(yàn)塊中直接寫入寫請(qǐng)求要求寫入的數(shù)據(jù);如果寫請(qǐng)求要求寫入的數(shù)據(jù)的大小小于塊的大小,則根據(jù)寫地址所在條帶中的校驗(yàn)塊和其他非故障磁盤上的數(shù)據(jù)塊中的數(shù)據(jù)計(jì)算出寫地址中原有的數(shù)據(jù),并在寫地址所在條帶中的校驗(yàn)塊中寫入寫請(qǐng)求要求寫入的數(shù)據(jù)和寫地址中原有的不會(huì)被寫請(qǐng)求要求寫入的數(shù)據(jù)所覆蓋數(shù)據(jù)。6、一種獨(dú)立磁盤冗余陣列RAID控制器,其特征在于,該RAID控制器應(yīng)用于采用校驗(yàn)冗余且已降級(jí)的RAID,該RAID控制器包括存儲(chǔ)模塊、接口模塊和核心處理模塊,其中,存儲(chǔ)模塊,用于保存信息表,該信息表用于記錄RAID中的每個(gè)條帶中的校驗(yàn)塊所存儲(chǔ)的數(shù)據(jù)為校驗(yàn)數(shù)據(jù)或故障磁盤數(shù)據(jù);接口模塊,用于接收讀請(qǐng)求并發(fā)送給核心處理模塊,并將核心處理模塊返回的讀數(shù)據(jù)發(fā)送出去;核心處理模塊,用于在收到接口模塊發(fā)送的讀請(qǐng)求時(shí),判斷該讀請(qǐng)求的讀地址是否在故障磁盤上;如果讀地址不在故障磁盤上,則直接讀取讀地址中的數(shù)據(jù),并返回給接口模塊;如果讀地址在故障磁盤上,則根據(jù)所述信息表判斷該讀地址所在條帶中的校驗(yàn)塊所存儲(chǔ)的數(shù)據(jù)是校驗(yàn)數(shù)據(jù)還是故障磁盤數(shù)據(jù);如果是故障磁盤數(shù)據(jù),則直接讀取該讀地址所在條帶中的校驗(yàn)塊中的數(shù)據(jù),并返回給接口模塊;反之,如果是校驗(yàn)數(shù)據(jù),則根據(jù)該讀地址所在條帶中的校驗(yàn)塊和其他非故障磁盤上的數(shù)據(jù)塊中的數(shù)據(jù),計(jì)算出該讀地址中的數(shù)據(jù),將該計(jì)算出的數(shù)據(jù)寫入讀地址所在條帶中的校驗(yàn)塊,在所述信息表中將該讀地址所在條帶中的校驗(yàn)塊所存儲(chǔ)的數(shù)據(jù)記錄為故障磁盤數(shù)據(jù),并將該計(jì)算出的數(shù)據(jù)作為所讀取的數(shù)據(jù)返回給接口模塊。7、如權(quán)利要求6所述的RAID控制器,其特征在于,所述接口模塊,進(jìn)一步用于接收寫請(qǐng)求并發(fā)送給核心處理模塊,并將核心處理模塊返回的寫成功消息發(fā)送出去;所述核心處理模塊,進(jìn)一步用于在收到接口模塊發(fā)送的寫請(qǐng)求時(shí),判斷該寫請(qǐng)求的寫地址是否在故障磁盤上;如果寫地址不在故障磁盤上,則根據(jù)所述信息表判斷該寫地址所在條帶中的校驗(yàn)塊所存儲(chǔ)的數(shù)據(jù)是校驗(yàn)數(shù)據(jù)還是故障磁盤數(shù)據(jù),如果是故障磁盤數(shù)據(jù),則直接在寫地址中寫入寫請(qǐng)求要求寫入的數(shù)據(jù),并向接口模塊返回寫成功消息,反之,如果是校驗(yàn)數(shù)據(jù),則在寫地址中寫入寫請(qǐng)求要求寫入的數(shù)據(jù)的同時(shí)更新校驗(yàn)塊中校驗(yàn)數(shù)據(jù),并向接口模塊返回寫成功消息;如果寫地址在故障磁盤上,則根據(jù)所述信息表判斷該寫地址所在條帶中的校驗(yàn)塊所存儲(chǔ)的數(shù)據(jù)是校驗(yàn)數(shù)據(jù)還是故障磁盤數(shù)據(jù),如果是故障磁盤數(shù)據(jù),則在寫地址所在條帶中的校驗(yàn)塊中寫入寫請(qǐng)求要求寫入的數(shù)據(jù),并向接口模塊返回寫成功消息,反之,如果是校驗(yàn)數(shù)據(jù),則在寫地址所在條帶中的校驗(yàn)塊中寫入寫請(qǐng)求要求寫入的數(shù)據(jù),并在所述信息表中將寫地址所在條帶中的校驗(yàn)塊所存儲(chǔ)的數(shù)據(jù)記錄為故障磁盤數(shù)據(jù),并向接口模塊返回寫成功消息。8、如權(quán)利要求7所述的RA1D控制器,特征在于,所述核心處理模塊,用于在判斷出寫地址在故障磁盤上,且根據(jù)所述信息表判斷出寫地址所在條帶中的校驗(yàn)塊所存儲(chǔ)的數(shù)據(jù)是校驗(yàn)數(shù)據(jù)時(shí),如果寫請(qǐng)求要求寫入的數(shù)據(jù)的大小與塊的大小相等,則在寫地址所在條帶中的校驗(yàn)塊中直接寫入寫請(qǐng)求要求寫入的數(shù)據(jù);如果寫請(qǐng)求要求寫入的數(shù)據(jù)的大小小于塊的大小,則根據(jù)寫地址所在條帶中的校驗(yàn)塊和其他非故障磁盤上的數(shù)據(jù)塊中的數(shù)據(jù)計(jì)算出寫地址中原有的數(shù)據(jù),并在寫地址所在條帶中的校驗(yàn)塊中寫入寫請(qǐng)求要求寫入的數(shù)據(jù)和寫地址中原有的不會(huì)被寫請(qǐng)求要求寫入的數(shù)據(jù)所覆蓋數(shù)據(jù)。9、一種獨(dú)立石茲盤冗余陣列RAID控制器,其特征在于,該RAID控制器應(yīng)用于采用校驗(yàn)冗余且已降級(jí)的RAID,該RAID控制器包括存儲(chǔ)模塊、接口模塊和核心處理模塊,其中,存儲(chǔ)模塊,用于保存信息表,該信息表用于記錄RAID中的每個(gè)條帶中的校驗(yàn)塊所存儲(chǔ)的數(shù)據(jù)為校驗(yàn)數(shù)據(jù)或故障磁盤數(shù)據(jù);接口模塊,用于接收寫請(qǐng)求并發(fā)送給核心處理模塊,并將核心處理模塊返回的寫成功消息發(fā)送出去;核心處理模塊,用于在收到接口模塊發(fā)送的寫請(qǐng)求時(shí),判斷該寫請(qǐng)求的寫地址是否在故障磁盤上;如果寫地址不在故障磁盤上,則根據(jù)所述信息表判斷該寫地址所在條帶中的校驗(yàn)塊所存儲(chǔ)的數(shù)據(jù)是校驗(yàn)數(shù)據(jù)還是故障磁盤數(shù)據(jù),如果是故障磁盤數(shù)據(jù),則直接在寫地址中寫入寫請(qǐng)求要求寫入的數(shù)據(jù),并向接口模塊返回寫成功消息,反之,如果是校驗(yàn)數(shù)據(jù),則在寫地址中寫入寫請(qǐng)求要求寫入的數(shù)據(jù)的同時(shí)更新校驗(yàn)塊中的校驗(yàn)數(shù)據(jù),并向接口模塊返回寫成功消息;如果寫地址在故障磁盤上,則根據(jù)所述信息表判斷該寫地址所在條帶中的校驗(yàn)塊所存儲(chǔ)的數(shù)據(jù)是校驗(yàn)數(shù)據(jù)還是故障磁盤數(shù)據(jù);如果是故障磁盤數(shù)據(jù),則在寫地址所在條帶中的校驗(yàn)塊中寫入寫請(qǐng)求要求寫入的數(shù)椐,并向接口模塊返回寫成功消息;反之,如果是校驗(yàn)數(shù)據(jù),則在寫地址所在條帶中的校驗(yàn)塊中寫入寫請(qǐng)求要求寫入的數(shù)據(jù),并在所述信息表中將寫地址所在條帶中的校驗(yàn)塊所存儲(chǔ)的數(shù)據(jù)記錄為故障磁盤數(shù)據(jù),并向接口模塊返回寫成功消息。10、如權(quán)利要求9所述的RAID控制器,特征在于,所述核心處理模塊,用于在根據(jù)所述信息表判斷出寫地址所在條帶中的校驗(yàn)塊所存儲(chǔ)的數(shù)據(jù)是校驗(yàn)數(shù)據(jù)時(shí),如果寫請(qǐng)求要求寫入的數(shù)據(jù)的大小與塊的大小相等,則在寫地址所在條帶中的校驗(yàn)塊中直接寫入寫請(qǐng)求要求寫入的數(shù)據(jù);如果寫請(qǐng)求要求寫入的數(shù)據(jù)的大小小于塊的大小,則根據(jù)寫地址所在條帶中的校驗(yàn)塊和其他非故障磁盤上的數(shù)據(jù)塊中的數(shù)據(jù)計(jì)算出寫地址中原有的數(shù)據(jù),并在寫地址所在條帶中的校驗(yàn)塊中寫入寫請(qǐng)求要求寫入的數(shù)據(jù)和寫地址中原有的不會(huì)被寫請(qǐng)求要求寫入的數(shù)據(jù)所覆蓋數(shù)據(jù)。全文摘要本發(fā)明公開了一種提升獨(dú)立磁盤冗余陣列RAID性能的方法,該方法包括在RAID降級(jí)的情況下,使用同條帶的校驗(yàn)塊來存儲(chǔ)故障磁盤數(shù)據(jù)塊中數(shù)據(jù),并將校驗(yàn)塊中的數(shù)據(jù)標(biāo)記為故障磁盤數(shù)據(jù),之后在需要訪問故障磁盤數(shù)據(jù)塊中的數(shù)據(jù)時(shí)直接訪問同條帶的校驗(yàn)塊。本發(fā)明還公開了RAID控制器。本發(fā)明的技術(shù)方案大大提升了RAID降級(jí)后的性能。文檔編號(hào)G06F11/10GK101526885SQ20091008262公開日2009年9月9日申請(qǐng)日期2009年4月21日優(yōu)先權(quán)日2009年4月21日發(fā)明者迪周,陳乾業(yè)申請(qǐng)人:杭州華三通信技術(shù)有限公司