專利名稱:一種多盤容錯的二維混合盤raid4系統(tǒng)架構(gòu)及其讀寫方法
技術(shù)領域:
本發(fā)明屬于存儲技術(shù)領域,更具體地,涉及一種多盤容錯的二維混合盤RAID4系統(tǒng)架構(gòu)及其讀寫方法。
背景技術(shù):
獨立冗余磁盤陣列(RedundantAccess Independent Disk,簡稱 RAID)技術(shù)已經(jīng)作為一種成熟的技術(shù)廣泛應用于數(shù)據(jù)存儲中。RAID技術(shù)具有從RAIDO到RAID6七種基本的RAID級別,不同的級別代表著不同的存儲性能、數(shù)據(jù)安全性和存儲成本。其中RAID4是在RAID3的基礎上發(fā)展起來。如圖1所示,在RAID4模式中,磁盤陣列包含N個存儲數(shù)據(jù)的磁盤(簡稱數(shù)據(jù)盤)以及一個專門用于存儲奇偶校驗信息的磁盤(簡稱校驗盤),它一條帶(Datastriping)為基礎,在把文件數(shù)據(jù)分塊后寫進一個數(shù)據(jù)盤的同時,對其它數(shù)據(jù)盤內(nèi)與該數(shù)據(jù)塊相同盤內(nèi)位置的所有數(shù)據(jù)塊計算出它們的奇偶校驗值(X0R操作完成),最終形成一個由奇偶校驗值組成的信息塊,并將其寫入校驗盤,這被稱為數(shù)據(jù)保護(Dataguarding)。它只能容忍一個磁盤出現(xiàn)故障,如何提高磁盤陣列的容錯能力是我們要解決的問題。另外,由于磁盤的每秒處理IO操作能力有限,新的讀寫請求必須等待舊的讀寫完成之后才能處理。也就是說對于RAID4系統(tǒng)而言,只能實現(xiàn)對數(shù)據(jù)盤讀操作的并發(fā),不能實現(xiàn)陣列寫操作的并發(fā)。同時,為了有效解決大規(guī)模存儲系統(tǒng)當多盤失效的時候,一維的RAID結(jié)構(gòu),只能容一盤錯的情況。如何解決校驗盤的瓶頸和多盤失效的問題,從而提高陣列的性能和陣列的可靠性是我們要解決的問題。此外,隨著磁盤陣列在各個領域的中高低端的廣泛應用,磁盤陣列的能耗也成為廣泛關注的問題,如何降低陣列能耗同樣是我們要解決的另一個問題。
發(fā)明內(nèi)容
針對現(xiàn)有技術(shù)的缺陷,本發(fā)明的目的在于提供一種多盤容錯的二維混合盤RAID4系統(tǒng)架構(gòu),本發(fā)明通過簡化IO操作流程、建立將固態(tài)硬盤作為校驗盤的二維混合盤RAID4體系架構(gòu),至少可以糾正3盤錯誤,并透明完成數(shù)據(jù)校驗計算,同時大幅減少讀寫檢驗盤的IO操作數(shù),有效消除校驗盤的讀寫瓶頸,提高系統(tǒng)的性能。為實現(xiàn)上述目的,本發(fā)明提供了一種多盤容錯的二維混合盤RAID4系統(tǒng)架構(gòu),包括RAID4控制器和盤陣,盤陣包括磁盤陣列和作為校驗盤的固態(tài)硬盤,磁盤陣列和固態(tài)硬盤組成二維陣列結(jié)構(gòu),固態(tài)硬盤的控制器中增設緩存模塊以及異或模塊,緩存模塊用于數(shù)據(jù)的緩沖,異或模塊是在固態(tài)硬盤中的現(xiàn)場可編程邏輯門陣列中實現(xiàn),用于處理RAID4校驗數(shù)據(jù)的計算。本發(fā)明還提供了一種多盤容錯的二維混合盤RAID4系統(tǒng)架構(gòu)的讀操作方法,包括以下步驟(I)步驟701,RAID控制器核心模塊的處理線程首先從SCSI命令隊列中取出讀請求;
(2)步驟702,對該讀請求的讀地址空間按照行優(yōu)先原則,對條帶進行拆分,屬于同一個讀請求的條帶用隊列管理起來;(3)步驟703,RAID控制器的處理線程為每一個條帶構(gòu)造一個目標端和緩存模塊之間通信的讀命令,并且將命令發(fā)送到緩存模塊;(4)步驟704,接收讀數(shù)據(jù)條帶1、數(shù)據(jù)條帶2、數(shù)據(jù)條帶3的命令,分別從數(shù)據(jù)盤1,數(shù)據(jù)盤2,數(shù)據(jù)盤3中讀出條帶1、條帶2、條帶3,并將條帶數(shù)據(jù)緩沖在緩存模塊中;(5)步驟705,通過DMA對主機端進行傳輸。本發(fā)明還提供了一種多盤容錯的二維混合盤RAID4系統(tǒng)架構(gòu)的寫操作方法,包括以下步驟(I)步驟801,RAID控制器核心模塊的處理線程首先從SCSI命令隊列取出該寫命令;(2)步驟802,對該寫命令的讀地址空間按照條帶進行拆分,屬于同一個寫命令的縱向條帶和橫向條帶分別用隊列管理起來;(3)步驟803,RAID控制器的處理線程為每一個條帶構(gòu)造一個目標端和緩存模塊之間通信的寫命令,并且將命令發(fā)送到緩存模塊;(4)步驟804,為RAID4系統(tǒng)中的特殊固態(tài)硬盤新增自定義命令“異或?qū)憽保?5)步驟805,在異或模塊中進行異或運!1-1 ’ .SP=F(其中數(shù)據(jù)P為原始的校驗數(shù)據(jù)),得到新的校驗數(shù)據(jù)條帶P’ ;(6)步驟806,再將條帶P’寫入作為校驗盤的固態(tài)硬盤中,同時將條帶I’寫入相應的數(shù)據(jù)盤中。步驟(4 )中,對于寫操作,是采用新數(shù)據(jù)和老數(shù)據(jù)在校驗盤的內(nèi)部邏輯進行異或之后產(chǎn)生的數(shù)據(jù)進行寫入。通過本發(fā)明所構(gòu)思的以上技術(shù)方案,與現(xiàn)有技術(shù)相比,本發(fā)明具有以下的有益效果1、由于采用了二維陣列結(jié)構(gòu),有效的解決了多盤失效的問題,顯著地提高了 RAID4系統(tǒng)的可靠性。2、由于采用了固態(tài)硬盤作為校驗盤,顯著提高了 RAID4系統(tǒng)的響應速度,同時也降低了系統(tǒng)的功耗。3、由于將傳統(tǒng)的RAID控制器中的校驗更新模塊放在固態(tài)硬盤中實現(xiàn),大幅減少了讀寫數(shù)據(jù)時檢驗盤的IO操作數(shù),大大提高了系統(tǒng)的性能。4、由于校驗更新模塊在固態(tài)硬盤中實現(xiàn),大大降低了 RAID控制器的設計難度和成本。
圖1是現(xiàn)有RAID4系統(tǒng)拓撲結(jié)構(gòu)示意圖。圖2是本發(fā)明多盤容錯的二維混合盤RAID4系統(tǒng)架構(gòu)拓撲結(jié)構(gòu)示意圖。圖3是現(xiàn)有RAID4系統(tǒng)的整體結(jié)構(gòu)示意圖。圖4是本發(fā)明多盤容錯的二維混合盤RAID4系統(tǒng)架構(gòu)的整體結(jié)構(gòu)示意圖。圖5是本發(fā)明中的固態(tài)硬盤整體結(jié)構(gòu)示意圖。
圖6是本發(fā)明中的多盤容錯的二維混合盤RAID4檢錯糾錯示意圖。圖7是本發(fā)明多盤容錯的二維混合盤RAID4系統(tǒng)的讀操作方法的流程圖。圖8是本發(fā)明多盤容錯的二維混合盤RAID4系統(tǒng)的寫操作方法的流程圖。
具體實施例方式為了使本發(fā)明的目的、技術(shù)方案及優(yōu)點更加清楚明白,以下結(jié)合附圖及實施例,對本發(fā)明進行進一步詳細說明。應當理解,此處所描述的具體實施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。圖2為本發(fā)明多盤容錯的二維混合盤RAID4系統(tǒng)架構(gòu)的拓撲結(jié)構(gòu)示意圖,傳統(tǒng)的機械磁盤201和本發(fā)明的固態(tài)盤202構(gòu)成一個二維拓撲結(jié)構(gòu)。本發(fā)明提供的多盤容錯的二維混合盤RAID4系統(tǒng)如圖4所示,與現(xiàn)有的RAID4系統(tǒng)一樣,均包括RAID4控制器403和盤陣,其中盤陣包括磁盤陣列404和作為校驗盤的固態(tài)硬盤405,它們組成一個二維陣列結(jié)構(gòu)。主機端服務器401、302通過光纖通道406和iSCSI通道407和RAID控制器403相連。對比圖3,可以發(fā)現(xiàn)本發(fā)明中的系統(tǒng)與現(xiàn)有技術(shù)的RAID4系統(tǒng)不同,本發(fā)明采用的二維陣列結(jié)構(gòu)具有高容錯功能,最少可以容忍同時三個磁盤發(fā)生故障。如圖6所示,最壞的情況為三個出故障的磁盤排成了十字形。其中標號601為出故障的磁盤,602為正常的磁盤,603為本發(fā)明中使用的固態(tài)硬盤校驗盤。當發(fā)現(xiàn)有磁盤出現(xiàn)故障時,由于奇偶校驗的對稱性,可以先根據(jù)校驗盤Cl和I列磁盤其他磁盤數(shù)據(jù)恢復磁盤01,然后根據(jù)校驗盤rl和I行其他詞哦按數(shù)據(jù)恢復磁盤10,最后根據(jù)校驗盤CO或者r0恢復磁盤00,保證數(shù)據(jù)不丟失。此外本發(fā)明中的固態(tài)硬盤具有簡化IO操作的功能。如圖5所示,改造后的固態(tài)硬盤是在現(xiàn)有的結(jié)構(gòu)的固態(tài)硬盤控制器中加入了兩個功能模塊緩存模塊(Data Buffer)4093以及異或模塊4091,其中緩存模塊4093除了作為數(shù)據(jù)的緩沖之外,由于固態(tài)硬盤的寫壽命問題,使用性能較好的緩存硬件以及較優(yōu)的寫策略,可以減少對固態(tài)硬盤的閃存介質(zhì)的寫次數(shù)(在主機對相同地址多次寫操作時,可以在緩存里最終合并成一個操作并發(fā)送到閃存介質(zhì)),從而延長固態(tài)硬盤的壽命。另外異或模塊4091是將原來設置在RAID控制器中的校驗更新模塊改為在固態(tài)硬盤中的現(xiàn)場可編程邏輯門陣列中實現(xiàn),將原來要在RAID控制器這層進行的數(shù)據(jù)異或處理改在固態(tài)硬盤控制器中進行處理,這樣做的好處是減少RAID控制器與固態(tài)硬盤之間因更新校驗數(shù)據(jù)而產(chǎn)生的IO操作數(shù),以提高系統(tǒng)整體性能。因為在RAID控制器中計算校驗時,需要先讀回原來的校驗信息,并與新寫入數(shù)據(jù)盤的數(shù)據(jù)計算以生成新的校驗信息,因此在校驗盤內(nèi)計算校驗能夠避免不必要的數(shù)據(jù)傳輸操作,發(fā)揮輸入輸出接口的最大能力,從而提高系統(tǒng)的整體性能。下面闡述本發(fā)明多盤容錯的二維混合盤RAID4系統(tǒng)架構(gòu)的讀寫操作方法。如圖7所示,本發(fā)明多盤容錯的二維混合盤RAID4系統(tǒng)的讀操作方法,以SCSI(Small Computer System Interface,小型計算機系統(tǒng)接口)協(xié)議為例,包括以下步驟(I)步驟701,RAID控制器核心模塊的處理線程首先從SCSI命令隊列中取出讀請求;(2)步驟702,對該讀請求的讀地址空間按照行優(yōu)先原則,對條帶進行拆分,屬于同一個讀請求的條帶用隊列管理起來;
(3)步驟703,RAID控制器的處理線程為每一個條帶構(gòu)造一個目標端和緩存模塊之間通信的讀命令,并且將命令發(fā)送到緩存模塊;(4)步驟704,接收讀數(shù)據(jù)條帶1、數(shù)據(jù)條帶2、數(shù)據(jù)條帶3的命令,分別從數(shù)據(jù)盤1,數(shù)據(jù)盤2,數(shù)據(jù)盤3中讀出條帶1、條帶2、條帶3,并將條帶數(shù)據(jù)緩沖在緩存模塊中;(5)步驟705,通過DMA對主機端進行傳輸。如圖8所示,本發(fā)明多盤容錯的二維混合盤RAID4系統(tǒng)的寫操作方法包括以下步驟(I)步驟801,RAID控制器核心模塊的處理線程首先從SCSI命令隊列取出該寫命令;(2)步驟802,對該寫命令的讀地址空間按照條帶進行拆分,屬于同一個寫命令的縱向條帶和橫向條帶分別用隊列管理起來;(3)步驟803,RAID控制器的處理線程為每一個條帶構(gòu)造一個目標端和緩存模塊之間通信的寫命令,并且將命令發(fā)送到緩存模塊;(4)步驟804,為RAID4系統(tǒng)中的特殊固態(tài)硬盤新增自定義命令“異或?qū)憽保?5)步驟805,在異或模塊中進行異或運算I I’十P=P’(其中數(shù)據(jù)P為原始的校驗數(shù)據(jù)),得到新的校驗數(shù)據(jù)條帶P’ ;(6)步驟806,再將條帶P’寫入作為校驗盤的固態(tài)硬盤中,同時將條帶I’寫入相應的數(shù)據(jù)盤中。這樣帶來的好處有2個(I)少了一半的IO操作數(shù),不用將校驗盤中的老數(shù)據(jù)讀出到RAID控制器,在RAID控制器中和新數(shù)據(jù)做異或操作之后將結(jié)果寫入;(2) 二是對于RAID控制器來講,異或?qū)懙拿钐幚肀容^類似于寫操作,由于校驗固態(tài)硬盤緩存的存在,只要緩存不滿,IO操作就不會阻塞,可以獲得很小的IO響應時間。本領域的技術(shù)人員容易理解,以上所述僅為本發(fā)明的較佳實施例而已,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi)所作的任何修改、等同替換和改進等,均應包含在本發(fā)明的保護范圍之內(nèi)。
權(quán)利要求
1.一種多盤容錯的二維混合盤RAID4系統(tǒng)架構(gòu),包括RAID4控制器和盤陣,盤陣包括磁盤陣列和作為校驗盤的固態(tài)硬盤,其特征在于,磁盤陣列和固態(tài)硬盤組成二維陣列體系結(jié)構(gòu),固態(tài)硬盤的控制器中增設緩存模塊以及異或模塊,緩存模塊用于數(shù)據(jù)的緩沖,異或模塊是在固態(tài)硬盤中的現(xiàn)場可編程邏輯門陣列中實現(xiàn),用于處理RAID4校驗數(shù)據(jù)的計算。
2.—種權(quán)利要求1所述的多盤容錯的二維混合盤RAID4系統(tǒng)架構(gòu)的讀操作方法,其特征在于,包括以下步驟(1)步驟701,RAID控制器核心模塊的處理線程首先從SCSI命令隊列中取出讀請求;(2)步驟702,對該讀請求的讀地址空間按照行優(yōu)先原則,對條帶進行拆分,屬于同一個讀請求的條帶用隊列管理起來;(3)步驟703,RAID控制器的處理線程為每一個條帶構(gòu)造一個目標端和緩存模塊之間通信的讀命令,并且將命令發(fā)送到緩存模塊;(4)步驟704,接收讀數(shù)據(jù)條帶1、數(shù)據(jù)條帶2、數(shù)據(jù)條帶3的命令,分別從數(shù)據(jù)盤1,數(shù)據(jù)盤2,數(shù)據(jù)盤3中讀出條帶1、條帶2、條帶3,并將條帶數(shù)據(jù)緩沖在緩存模塊中;(5)步驟705,通過DMA對主機端進行傳輸。
3.一種權(quán)利要求1所述的多盤容錯的二維混合盤RAID4系統(tǒng)架構(gòu)的寫操作方法,其特征在于,包括以下步驟(1)步驟801,RAID控制器核心模塊的處理線程首先從SCSI命令隊列取出該寫命令;(2)步驟802,對該寫命令的讀地址空間按照條帶進行拆分,屬于同一個寫命令的縱向條帶和橫向條帶分別用隊列管理起來;(3)步驟803,RAID控制器的處理線程為每一個條帶構(gòu)造一個目標端和緩存模塊之間通信的寫命令,并且將命令發(fā)送到緩存模塊;(4)步驟804,為RAID4系統(tǒng)中的特殊固態(tài)硬盤新增自定義命令“異或?qū)憽保?5)步驟805,在異或模塊中進行異或運算iS1 P=P’(其中數(shù)據(jù)P為原始的校驗數(shù)據(jù)),得到新的校驗數(shù)據(jù)條帶P’ ;(6)步驟806,再將條帶P’寫入作為校驗盤的固態(tài)硬盤中,同時將條帶I’寫入相應的數(shù)據(jù)盤中。
4.根據(jù)權(quán)利要求3所述的寫操作方法,其特征在于,步驟(4)中,對于寫操作,是采用新數(shù)據(jù)和老數(shù)據(jù)在校驗盤的內(nèi)部邏輯進行異或之后產(chǎn)生的數(shù)據(jù)進行寫入。
全文摘要
本發(fā)明公開了一種多盤容錯的二維混合盤RAID4系統(tǒng)和體系結(jié)構(gòu),包括RAID4控制器和盤陣,盤陣包括磁盤陣列和作為校驗盤的固態(tài)硬盤,磁盤陣列和固態(tài)硬盤組成二維陣列結(jié)構(gòu),固態(tài)硬盤的控制器中增設緩存模塊以及異或模塊,緩存模塊用于數(shù)據(jù)的緩沖,異或模塊是在固態(tài)硬盤中的現(xiàn)場可編程邏輯門陣列中實現(xiàn),用于處理RAID4校驗數(shù)據(jù)的計算,有效的提高計算的處理速度。本發(fā)明通過簡化IO操作流程、建立將固態(tài)硬盤作為校驗盤的二維混合盤RAID4體系架構(gòu),至少可以糾正3盤錯誤,并透明完成數(shù)據(jù)校驗計算,同時大幅減少讀寫檢驗盤的IO操作數(shù),有效消除校驗盤的讀寫瓶頸,提高系統(tǒng)的性能。
文檔編號G06F3/06GK103019893SQ20121046482
公開日2013年4月3日 申請日期2012年11月16日 優(yōu)先權(quán)日2012年11月16日
發(fā)明者吳非, 謝長生, 周健, 周游, 陳克, 朱勝本 申請人:華中科技大學