專利名稱:磁盤冗余陣列存儲(chǔ)系統(tǒng)和方法
技術(shù)領(lǐng)域:
本發(fā)明涉及磁盤冗余陣列(RAID)存儲(chǔ)技術(shù),特別涉及一種RAID存 儲(chǔ)系統(tǒng)、以及一種RAID存儲(chǔ)方法。
背景技術(shù):
圖1為現(xiàn)有RAID存儲(chǔ)系統(tǒng)的邏輯結(jié)構(gòu)圖。如圖l所示,該系統(tǒng)采用集 中式RAID計(jì)算方式,且具體包括一個(gè)RAID計(jì)算處理單元、若干磁盤框 l~n、以及與若千》茲盤框l n——對(duì)應(yīng)的》茲盤控制單元1 n,即》茲盤框i對(duì)應(yīng) 磁盤控制單元i, n為大于l的正整數(shù),i為大于1且小于等于n的正整數(shù)。
且,若干磁盤框l n中的每一磁盤框內(nèi)均具有若干磁盤,相同或不同磁 盤框中的/f茲盤均可任意組成不同的RAID。
RAID計(jì)算處理單元,用于接收客戶端的讀寫命令(本文中出現(xiàn)的"讀 寫命令"表示讀命令或?qū)懨?,讀寫命令中指明了其對(duì)應(yīng)的RAID由哪些 磁盤框中的哪些磁盤組成;針對(duì)接收到的讀寫命令進(jìn)行RAID計(jì)算,根據(jù) RAID計(jì)算結(jié)果將該讀寫命令分解為組成對(duì)應(yīng)RAID的各磁盤的操作指令、 并分別發(fā)送給與各磁盤所在磁盤框相對(duì)應(yīng)的磁盤控制單元。其中,每一操作 指令對(duì)應(yīng)一塊》茲盤。
每一磁盤控制單元,用于將接收到的操作指令發(fā)送至與該磁盤控制單元 相對(duì)應(yīng)的磁盤框中對(duì)應(yīng)的磁盤,以控制對(duì)應(yīng)的磁盤執(zhí)行相應(yīng)的讀寫操作。
實(shí)際應(yīng)用中,RAID計(jì)算處理單元可承載于所有磁盤框所在的磁盤柜中 的主控制器內(nèi),而磁盤控制單元?jiǎng)t可以承載于對(duì)應(yīng)磁盤框內(nèi)的處理器中,且 每一磁盤框中的處理器分別與該磁盤框內(nèi)的各磁盤物理連接、所有磁盤框內(nèi) 的處理器均與主控制器物理連接。
5上述RAID存儲(chǔ)系統(tǒng)中,RAID計(jì)算處理單元所需要具備的計(jì)算能力是 隨著磁盤總數(shù)的變化而變化的
對(duì)于磁盤總數(shù)較多的情況、即在RAID存儲(chǔ)系統(tǒng)中增加了 一定數(shù)量的磁 盤框,所有磁盤可能組成的RAID數(shù)量也會(huì)較大,那么RAID計(jì)算處理單元 就無法滿足磁盤總數(shù)較多時(shí)所需的計(jì)算能力,從而成為限制系統(tǒng)性能的瓶 頸;
而對(duì)于磁盤總數(shù)較少的情況、即從RAID存儲(chǔ)系統(tǒng)中移除了 一定數(shù)量的 磁盤框,所有磁盤可能組成的RAID數(shù)量就較少,且由于RAID計(jì)算處理單 元通常是按照磁盤總數(shù)最多時(shí)所需要的最大計(jì)算能力設(shè)計(jì)而成的,因而雖然 能夠滿足磁盤總數(shù)較少時(shí)所需的計(jì)算能力,但會(huì)造成RAID計(jì)算資源的極大浪費(fèi)。
可見,現(xiàn)有RAID存儲(chǔ)系統(tǒng)中的RAID計(jì)算資源的計(jì)算能力無法隨磁盤 數(shù)量的變化而調(diào)整,因而使得RAID計(jì)算資源會(huì)在磁盤數(shù)量增加時(shí)影響 RAID存儲(chǔ)系統(tǒng)性能、且RAID計(jì)算資源會(huì)在磁盤數(shù)量減少時(shí)部分閑置造成
資源浪費(fèi)。
發(fā)明內(nèi)容
有鑒于此,本發(fā)明提供了 一種RAID存儲(chǔ)系統(tǒng)、以及一種RAID存儲(chǔ)方 法,能夠使得RAID存儲(chǔ)系統(tǒng)中RAID計(jì)算資源的計(jì)算能力隨磁盤數(shù)量的變
化而調(diào)整。
本發(fā)明提供的一種RAID存儲(chǔ)系統(tǒng),包括命令中轉(zhuǎn)單元,與命令中轉(zhuǎn) 單元相連的RAID主計(jì)算單元,以及與命令中轉(zhuǎn)單元相連、并與若千石茲盤框 ——對(duì)應(yīng)的RAID計(jì)算子單元和磁盤控制單元,其中,
命令中轉(zhuǎn)單元,用于判斷接收到的讀寫命令所對(duì)應(yīng)的RAID是否由不同 磁盤框中的磁盤組成,如杲是,則將該讀寫命令發(fā)送至RAID主計(jì)算單元, 否則將該讀寫命令發(fā)送至組成對(duì)應(yīng)RAID的各i茲盤所在,茲盤框相對(duì)應(yīng)的 RAID計(jì)算子單元;RAID主計(jì)算單元,用于針對(duì)接收到的讀寫命令進(jìn)行RAID計(jì)算,根據(jù) RAID計(jì)算結(jié)果將該讀寫命令分解為不同磁盤框中組成對(duì)應(yīng)RAID的各磁盤 的操作指令、并分別發(fā)送給與各磁盤所在磁盤框相對(duì)應(yīng)的磁盤控制單元;
RAID計(jì)算子單元,用于針對(duì)接收到的讀寫命令進(jìn)行RAID計(jì)算,根據(jù) RAID計(jì)算結(jié)果將該讀寫命令分解為該RAID計(jì)算子單元所對(duì)應(yīng)的磁盤框中 各磁盤的操作指令、并發(fā)送至與該磁盤框相對(duì)應(yīng)的磁盤控制單元;
磁盤控制單元,用于將接收到的操作指令發(fā)送至與該磁盤控制單元相對(duì) 應(yīng)的磁盤框中對(duì)應(yīng)的磁盤。
所述磁盤控制單元進(jìn)一步用于接收與該磁盤控制單元相對(duì)應(yīng)的磁盤框 中對(duì)應(yīng)的磁盤所返回的讀寫成功指令,并將接收的讀寫成功指令返回至所述 命令中轉(zhuǎn)單元;
所述命令中轉(zhuǎn)單元進(jìn)一步將接收到的讀寫成功指令返回至發(fā)送讀寫命 令的客戶端。
所述命令中轉(zhuǎn)單元進(jìn)一步用于在接收到同一讀寫命令所對(duì)應(yīng)的所有讀 寫操作成功指令后,向發(fā)送該讀寫命令的客戶端返回讀寫完成指令。
所述命令中轉(zhuǎn)單元中進(jìn)一步記錄有組成不同RAID的各》茲盤、以及各^茲 盤所在的磁盤框,用以判斷接收到的讀寫命令所對(duì)應(yīng)的RAID是否由不同磁 盤框中的》茲盤組成。
若千磁盤框設(shè)置于一磁盤拒中,所述磁盤拒內(nèi)還具有一主控制器,所述 命令中轉(zhuǎn)單元和所述RAID主計(jì)算單元承載于所述主控制器中;
每一磁盤框中進(jìn)一步具有與所述主控制器相連、并與該磁盤框中若干磁 盤相連的處理器,且每一磁盤框所對(duì)應(yīng)的RAID計(jì)算子單元和磁盤控制單元 承載于該磁盤框內(nèi)的處理器中。
所述主控制器通過IP網(wǎng)絡(luò)或光纖通道FC網(wǎng)絡(luò)與客戶端相連。
本發(fā)明提供的一種RAID存儲(chǔ)方法,包括
a、判斷接收到的讀寫命令所對(duì)應(yīng)的RAID是否由不同磁盤框中的磁盤 組成,如果是,則執(zhí)行步驟b,否則執(zhí)行步驟c;b 、利用集中的RAID計(jì)算資源,針對(duì)接收到的讀寫命令進(jìn)行RAID計(jì) 算,根據(jù)RAID計(jì)算結(jié)果將該讀寫命令分解為不同磁盤框中組成對(duì)應(yīng)RAID 的各磁盤的操作指令、并分別發(fā)送給與各磁盤所在磁盤框,然后執(zhí)行步驟d;
c、 將該讀寫命令發(fā)送至組成對(duì)應(yīng)RAID的各磁盤所在磁盤框,然后利 用分屬于該磁盤框的RAID計(jì)算資源,針對(duì)接收到的讀寫命令進(jìn)行RAID計(jì) 算,根據(jù)RAID計(jì)算結(jié)果將該讀寫命令分解為該磁盤框中各磁盤的操作指令, 然后執(zhí)行步驟d;
d、 將操作指令發(fā)送至磁盤框中對(duì)應(yīng)的磁盤。
所述步驟d之后,該方法進(jìn)一步包括e、將各磁盤所返回的讀寫成功 指令返回至發(fā)送讀寫命令的客戶端。
所述步驟e之后,該方法進(jìn)一步包括f、在接收到同一讀寫命令所對(duì) 應(yīng)的所有讀寫操作成功指令后,向發(fā)送該讀寫命令的客戶端返回讀寫完成指令。
所述步驟a之前,該方法進(jìn)一步記錄組成不同RAID的各石茲盤、以及各 磁盤所在的磁盤框,用以判斷接收到的讀寫命令所對(duì)應(yīng)的RAID是否由不同 磁盤框中的磁盤組成。
由上述技術(shù)方案可見,本發(fā)明利用集中式RAID計(jì)算與分布式RAID計(jì) 算相結(jié)合的方式,在組成RAID的各磁盤分處于不同磁盤框時(shí)使用集中的 RAID計(jì)算資源、以保證分屬于不同磁盤框的RAID計(jì)算資源能夠共享跨磁 盤框的熱備盤;在組成RAID的各磁盤均處于某一磁盤框時(shí)則使用分屬于該 磁盤框的RAID計(jì)算資源、以分擔(dān)該磁盤框內(nèi)各磁盤組成的RAID所需的計(jì) 算能力。
這樣,RAID存儲(chǔ)系統(tǒng)中所有RAID計(jì)算資源的計(jì)算能力總和會(huì)隨著磁 盤框數(shù)量的變化而相應(yīng)變化,在增加磁盤框的同時(shí)增加分屬于該磁盤框的 RAID計(jì)算資源,以降低計(jì)算能力不足對(duì)系統(tǒng)性能的影響;而在減少磁盤框 的同時(shí)將分屬于該磁盤框的RAID計(jì)算資源移除,以避免由于RAID計(jì)算資 源的閑置所導(dǎo)致的資源浪費(fèi)。
圖1為現(xiàn)有RAID存儲(chǔ)系統(tǒng)的邏輯結(jié)構(gòu)圖2為本發(fā)明實(shí)施例中RAID存儲(chǔ)系統(tǒng)的邏輯結(jié)構(gòu)圖3為本發(fā)明實(shí)施例中RAID存儲(chǔ)系統(tǒng)的一種硬件結(jié)構(gòu)示意圖4為本發(fā)明實(shí)施例中RAID存儲(chǔ)方法的流程示意圖。
具體實(shí)施例方式
為使本發(fā)明的目的、技術(shù)方案及優(yōu)點(diǎn)更加清楚明白,以下參照附圖并舉 實(shí)施例,對(duì)本發(fā)明進(jìn)一步詳細(xì)說明。
在本發(fā)明實(shí)施例中,利用集中式RAID計(jì)算與分布式RAID計(jì)算相結(jié)合 的方式,出于全局熱備盤的需要,在組成RAID的各磁盤分處于不同磁盤框 時(shí),使用集中的RAID計(jì)算資源,以保證分屬于不同磁盤框的RAID計(jì)算資 源能夠共享跨磁盤框的熱備盤;而在組成RAID的各磁盤均處于某 一磁盤框 時(shí),則使用分屬于該磁盤框的RAID計(jì)算資源,以分擔(dān)該磁盤框內(nèi)各磁盤組 成的RAID所需的計(jì)算能力。
圖2為本發(fā)明實(shí)施例中RAID存儲(chǔ)系統(tǒng)的邏輯結(jié)構(gòu)圖。如圖2所示,本 實(shí)施例中的RAID存儲(chǔ)系統(tǒng)包括命令中轉(zhuǎn)單元、與命令中轉(zhuǎn)單元相連的 RAID主計(jì)算單元、與若干磁盤框l~n——對(duì)應(yīng)的RAID計(jì)算子單元l~n、 以及與若千磁盤框l~n——對(duì)應(yīng)的磁盤控制單元l n,即磁盤框i對(duì)應(yīng)RAID 計(jì)算子單元i和磁盤控制單元i, n為大于l的正整數(shù),i為大于l且小于等 于n的正整數(shù)。且RAID計(jì)算子單元l~n、以及磁盤控制單元l n可以分別 設(shè)置于磁盤框l n內(nèi)。
命令中轉(zhuǎn)單元,用于判斷接收到的讀寫命令所對(duì)應(yīng)的RAID是否由不同 磁盤框中的磁盤組成,如果是,則將該讀寫命令發(fā)送至RAID主計(jì)算單元, 否則將該讀寫命令發(fā)送至組成對(duì)應(yīng)RAID的各石茲盤所在-茲盤框相對(duì)應(yīng)的 RAID計(jì)算子單元??蛇x地,命令中轉(zhuǎn)單元中可進(jìn)一步記錄有組成不同RAID 的各磁盤、以及各磁盤所在的磁盤框,用以判斷接收到的讀寫命令所對(duì)應(yīng)的
9RAID是否由不同磁盤框中的磁盤組成。
RAID主計(jì)算單元作為集中的RAID計(jì)算資源,用于針對(duì)接收到的讀寫 命令進(jìn)行RAID計(jì)算,根據(jù)RAID計(jì)算結(jié)果將該讀寫命令分解為不同磁盤框 中組成對(duì)應(yīng)RAID的各磁盤的操作指令、并分別發(fā)送給與各磁盤所在磁盤框 相對(duì)應(yīng)的磁盤控制單元。其中,每一操作指令對(duì)應(yīng)一塊磁盤。
每一RAID計(jì)算子單元作為分屬于對(duì)應(yīng)磁盤框的RAID計(jì)算資源,用于 針對(duì)接收到的讀寫命令進(jìn)行RAID計(jì)算,根據(jù)RAID計(jì)算結(jié)果將該讀寫命令 分解為該RAID計(jì)算子單元所對(duì)應(yīng)的磁盤框中各磁盤的操作指令、并發(fā)送至 與該磁盤框相對(duì)應(yīng)的磁盤控制單元。其中,每一操作指令對(duì)應(yīng)一塊磁盤。
每一磁盤控制單元,用于將接收自與該磁盤控制單元相對(duì)應(yīng)的RAID計(jì) 算子單元的操作指令,發(fā)送至與該磁盤控制單元相對(duì)應(yīng)的磁盤框中對(duì)應(yīng)的磁 盤,以控制對(duì)應(yīng)的磁盤執(zhí)行相應(yīng)的讀寫操作;將接收自RAID主計(jì)算單元的 操作指令分送至與該磁盤控制單元相對(duì)應(yīng)的磁盤框中對(duì)應(yīng)的磁盤,以控制對(duì)
應(yīng)的磁盤執(zhí)行相應(yīng)的讀寫操作。
此外,每一磁盤控制單元還進(jìn)一步用于接收與該磁盤控制單元相對(duì)應(yīng)的 磁盤框中對(duì)應(yīng)的磁盤所返回的讀寫成功指令,并將接收的讀寫成功指令返回 至命令中轉(zhuǎn)單元。相應(yīng)地,命令中轉(zhuǎn)單元進(jìn)一步用于將接收到的讀寫成功指
令返回至發(fā)送讀寫命令的客戶端,并在接收到同一讀寫命令所對(duì)應(yīng)的所有讀 寫操作成功指令后,向發(fā)送該讀寫命令的客戶端返回讀寫完成指令。
以下,再舉兩個(gè)實(shí)例進(jìn)行進(jìn)一步說明。
實(shí)例一
接收到的讀寫命令所針對(duì)的RAID全部由f茲盤框i中的若干磁盤組成, 因此,命令中轉(zhuǎn)單元將該讀寫命令發(fā)送至RAID計(jì)算子單元i;
RAID計(jì)算子單元i針對(duì)接收到的讀寫命令進(jìn)行RAID計(jì)算,根據(jù)RAID 計(jì)算結(jié)果將該讀寫命令分解為磁盤框i中每一對(duì)應(yīng)磁盤的操作指令、并發(fā)送 至/f茲盤控制單元i;
磁盤控制單元i將接收到的磁盤框i中每一對(duì)應(yīng)磁盤的操作指令,分別發(fā)送至磁盤框i中每一對(duì)應(yīng)石茲盤,然后將i茲盤框i中每一對(duì)應(yīng)i茲盤返回的讀
寫成功指令依次返回至命令中轉(zhuǎn)單元;
命令中轉(zhuǎn)單元將接收到的由磁盤框i中每一對(duì)應(yīng)磁盤返回的讀寫成功指
令依次返回至客戶端,并在接收到由石茲盤框i中所有對(duì)應(yīng)磁盤返回的讀寫成 功指令后,再向客戶端返回讀寫完成指令。 實(shí)例二
接收到的讀寫命令所針對(duì)的RAID中,部分磁盤位于磁盤框i中、另一 部分磁盤則位于》茲盤框j中,因此,命令中轉(zhuǎn)單元將該讀寫命令發(fā)送至RAID 主計(jì)算單元;
RAID主計(jì)算單元針對(duì)該讀寫命令進(jìn)行RAID計(jì)算,根據(jù)RAID計(jì)算結(jié) 果將該讀寫命令分解為磁盤框i中每一對(duì)應(yīng)磁盤的操作指令、以及磁盤框j 中每一對(duì)應(yīng)磁盤的操作指令,然后將磁盤框i中每一對(duì)應(yīng)磁盤的操作指令發(fā) 送至磁盤控制單元i、將磁盤框j中每一對(duì)應(yīng)磁盤的操作指令發(fā)送至磁盤控 制單元j;
磁盤控制單元i將接收到的磁盤框i中每一對(duì)應(yīng)磁盤的操作指令,分別 發(fā)送至磁盤框i中每一對(duì)應(yīng)磁盤,然后將石茲盤框i中每一對(duì)應(yīng)磁盤返回的讀 寫成功指令依次返回至命令中轉(zhuǎn)單元;
磁盤控制單元j將接收到的磁盤框j中每一對(duì)應(yīng)磁盤的搡作指令,分別
發(fā)送至f茲盤框j中每一對(duì)應(yīng)》茲盤,然后將^茲盤框j中每一對(duì)應(yīng)》茲盤返回的讀
寫成功指令依次返回至命令中轉(zhuǎn)單元;
命令中轉(zhuǎn)單元將接收到的由磁盤框i中每一對(duì)應(yīng)磁盤、以及磁盤框j中
每一對(duì)應(yīng)磁盤返回的讀寫成功指令依次返回至客戶端,并在接收到由磁盤框 i中所有對(duì)應(yīng)石茲盤返回的讀寫成功指令、以及》茲盤框j中所有對(duì)應(yīng)f茲盤返回 的讀寫成功指令后,再向客戶端返回讀寫完成指令。
在如圖2所示的RAID存儲(chǔ)系統(tǒng)中,如果增加一磁盤框,則會(huì)相應(yīng)地增 加與之一一對(duì)應(yīng)的RAID計(jì)算子單元作為分屬于該磁盤框的RAID計(jì)算資 源;如果減少一磁盤框,則會(huì)相應(yīng)地移除與之——對(duì)應(yīng)、并作為分屬于該石茲盤框RAID計(jì)算資源的RAID計(jì)算子單元。如此一來,所有RAID計(jì)算資源 的計(jì)算能力總和會(huì)隨著磁盤框數(shù)量的變化而相應(yīng)變化,該變化可看作一線性 關(guān)系的變化。
而且,在增加磁盤框的同時(shí)增加分屬于該磁盤框的RAID計(jì)算資源,能 夠降低計(jì)算能力不足對(duì)系統(tǒng)性能的影響;而在減少磁盤框的同時(shí)將分屬于該 磁盤框的RAID計(jì)算資源移除,則能夠避免由于RAID計(jì)算資源的閑置所導(dǎo)
致的資源浪費(fèi)。
實(shí)際應(yīng)用中,上述如圖2所示邏輯結(jié)構(gòu)中的各功能模塊可承栽于磁盤拒 中相應(yīng)的物理實(shí)體內(nèi)。
圖3為本發(fā)明實(shí)施例中RAID存儲(chǔ)系統(tǒng)的一種硬件結(jié)構(gòu)示意圖。如圖3 所示,磁盤柜中包括可接收讀寫命令的主控制器,以及掛接于所述主控制 器下的若千磁盤框l n,每一磁盤框中又包括一處理器、以及桂接于該處理 器下的若干磁盤,且相同或不同磁盤框中的磁盤可任意組合為不同RAID。
那么圖2中的命令中轉(zhuǎn)單元和RAID主計(jì)算單元可承載于主控制器內(nèi), RAID計(jì)算子單元和磁盤控制單元?jiǎng)t承載于對(duì)應(yīng)磁盤框中的處理器內(nèi)。
由此,如圖3所示的主控制器,用于判斷接收到的讀寫命令所對(duì)應(yīng)的 RAID是否由不同磁盤框中的磁盤組成,如果是,則針對(duì)接收到的讀寫命令 進(jìn)行RAID計(jì)算,根據(jù)RAID計(jì)算結(jié)果將該讀寫命令分解為不同磁盤框中組 成對(duì)應(yīng)RAID的各磁盤的操作指令、并分別發(fā)送給各磁盤所在的不同磁盤框 中的處理器;否則,將該讀寫命令發(fā)送至組成對(duì)應(yīng)RAID的各石茲盤所在i茲盤 框中的處理器。
可選地,主控制器中通常會(huì)具有內(nèi)存,因而主控制器的內(nèi)存中可進(jìn)一步 記錄有組成不同RAID的各^茲盤、以及各》茲盤所在的石茲盤框,用以判斷接收 到的讀寫命令所對(duì)應(yīng)的RAID是否由不同磁盤框中的磁盤組成。
每一處理器,用于將接收到的操作指令發(fā)送至該處理器所在磁盤框中對(duì) 應(yīng)的磁盤;針對(duì)接收到的讀寫命令進(jìn)行RAID計(jì)算,根椐RAID計(jì)算結(jié)果將 該讀寫命令分解為該處理器所在磁盤框中組成對(duì)應(yīng)RAID的各磁盤的操作指令、并發(fā)送至該處理器所在磁盤框中對(duì)應(yīng)的磁盤。
此外,每個(gè)處理器還可進(jìn)一步用于接收該處理器所在磁盤框中對(duì)應(yīng)的磁 盤所返回的讀寫成功指令,并將接收的讀寫成功指令返回至主控制器。相應(yīng) 地,主控制器進(jìn)一步用于將接收到的讀寫成功指令返回至發(fā)送讀寫命令的客 戶端,并在接收到同一讀寫命令所對(duì)應(yīng)的所有讀寫成功指令后,向發(fā)送該讀 寫命令的客戶端返回讀寫完成指令。
且如圖3所示的磁盤拒中的主控制器,還可經(jīng)由一存儲(chǔ)控制器通過互聯(lián) 網(wǎng)協(xié)議(Internet Protocol, IP)網(wǎng)絡(luò)或者光纖通道(Fibre Channel, FC )網(wǎng)
絡(luò)與客戶端相連。
以上是對(duì)本發(fā)明實(shí)施例中RAID存儲(chǔ)系統(tǒng)的詳細(xì)說明。下面,再對(duì)本發(fā) 明實(shí)施例中的RAID存儲(chǔ)方法進(jìn)行說明。
圖4為本發(fā)明實(shí)施例中RAID存儲(chǔ)方法的流程示意圖。如圖4所示,本 實(shí)施例中的RAID存儲(chǔ)方法包括
步驟400,判斷接收到的讀寫命令所對(duì)應(yīng)的RAID是否由不同磁盤框中 的磁盤組成,如果是,則執(zhí)行步驟401,否則纟丸行步驟404。
本步驟之前,可進(jìn)一步記錄組成不同RAID的各石茲盤、以及各,茲盤所在 的磁盤框,用以判斷接收到的讀寫命令所對(duì)應(yīng)的RAID是否由不同磁盤框中 的磁盤組成。
步驟401,利用集中的RAID計(jì)算資源,針對(duì)接收到的讀寫命令進(jìn)行 RAID計(jì)算,根據(jù)RAID計(jì)算結(jié)果將該讀寫命令分解為不同磁盤框中組成對(duì) 應(yīng)RAID的各磁盤的操作指令、并分別發(fā)送給與各磁盤所在磁盤框,然后執(zhí) 行步驟402。
步驟402,將不同》茲盤框中組成對(duì)應(yīng)RAID的各磁盤的操作指令,分別 發(fā)送至各石茲盤框中對(duì)應(yīng)的石茲盤,然后4丸行步驟403。
步驟403,將各磁盤框中對(duì)應(yīng)的磁盤所返回的讀寫成功指令返回至發(fā)送 讀寫命令的客戶端,并在接收到同一讀寫命令所對(duì)應(yīng)的所有讀寫成功指令 后,向發(fā)送該讀寫命令的客戶端返回讀寫完成指令,然后結(jié)束本流程。步驟404,將該讀寫命令發(fā)送至組成對(duì)應(yīng)RAID的各磁盤所在磁盤框, 然后利用分屬于組成該RAID的所有磁盤所在磁盤框的RAID計(jì)算資源,針 對(duì)接收到的讀寫命令進(jìn)行RAID計(jì)算,根據(jù)RAID計(jì)算結(jié)果將該讀寫命令分 解為該磁盤框中各磁盤的操作指令,然后執(zhí)行步驟405 。
步驟405,將同一磁盤框中各磁盤的操作指令發(fā)送至該磁盤框中對(duì)應(yīng)的 -磁盤,然后^L行步驟406。
步驟406,將同一磁盤框中各磁盤所返回的讀寫成功指令返回至發(fā)送讀 寫命令的客戶端,并在接收到同一讀寫命令所對(duì)應(yīng)的所有讀寫操作成功指令 后,向發(fā)送該讀寫命令的客戶端返回讀寫完成指令,然后結(jié)束本流程。
至此,上述流程結(jié)束。
需要說明的是,上述流程中的步驟401、 402可由磁盤拒內(nèi)的主控制器 執(zhí)行,步驟404、 405由對(duì)應(yīng)磁盤沖巨內(nèi)磁盤框中的處理器執(zhí)行,步驟403和 406中的每一步驟則均可先后由對(duì)應(yīng)磁盤拒內(nèi)磁盤框中的處理器、以及磁盤 拒內(nèi)的主控制器執(zhí)行。且,步驟403、 406為可選的步驟。
以上所述僅為本發(fā)明的較佳實(shí)施例而已,并非用于限定本發(fā)明的保護(hù)范 圍。凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換以及改進(jìn)等, 均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。
1權(quán)利要求
1、一種磁盤冗余陣列RAID存儲(chǔ)系統(tǒng),其特征在于,包括命令中轉(zhuǎn)單元,與命令中轉(zhuǎn)單元相連的RAID主計(jì)算單元,以及與命令中轉(zhuǎn)單元相連、并與若干磁盤框一一對(duì)應(yīng)的RAID計(jì)算子單元和磁盤控制單元,其中,命令中轉(zhuǎn)單元,用于判斷接收到的讀寫命令所對(duì)應(yīng)的RAID是否由不同磁盤框中的磁盤組成,如果是,則將該讀寫命令發(fā)送至RAID主計(jì)算單元,否則將該讀寫命令發(fā)送至組成對(duì)應(yīng)RAID的各磁盤所在磁盤框相對(duì)應(yīng)的RAID計(jì)算子單元;RAID主計(jì)算單元,用于針對(duì)接收到的讀寫命令進(jìn)行RAID計(jì)算,根據(jù)RAID計(jì)算結(jié)果將該讀寫命令分解為不同磁盤框中組成對(duì)應(yīng)RAID的各磁盤的操作指令、并分別發(fā)送給與各磁盤所在磁盤框相對(duì)應(yīng)的磁盤控制單元;RAID計(jì)算子單元,用于針對(duì)接收到的讀寫命令進(jìn)行RAID計(jì)算,根據(jù)RAID計(jì)算結(jié)果將該讀寫命令分解為該RAID計(jì)算子單元所對(duì)應(yīng)的磁盤框中各磁盤的操作指令、并發(fā)送至與該磁盤框相對(duì)應(yīng)的磁盤控制單元;磁盤控制單元,用于將接收到的操作指令發(fā)送至與該磁盤控制單元相對(duì)應(yīng)的磁盤框中對(duì)應(yīng)的磁盤。
2、 如權(quán)利要求1所述的RAID存儲(chǔ)系統(tǒng),其特征在于,所述i茲盤控制 單元進(jìn) 一 步用于接收與該磁盤控制單元相對(duì)應(yīng)的磁盤框中對(duì)應(yīng)的磁盤所返 回的讀寫成功指令,并將接收的讀寫成功指令返回至所述命令中轉(zhuǎn)單元;所述命令中轉(zhuǎn)單元進(jìn)一步將接收到的讀寫成功指令返回至發(fā)送讀寫命 令的客戶端。
3、 如權(quán)利要求2所述的RAID存儲(chǔ)系統(tǒng),其特征在于,所述命令中轉(zhuǎn) 單元進(jìn)一步用于在接收到同一讀寫命令所對(duì)應(yīng)的所有讀寫操作成功指令后, 向發(fā)送該讀寫命令的客戶端返回讀寫完成指令。
4、 如權(quán)利要求1至3中任一項(xiàng)所述的RAID存儲(chǔ)系統(tǒng),其特征在于, 所述命令中轉(zhuǎn)單元中進(jìn)一步記錄有組成不同RAID的各磁盤、以及各》茲盤所在的磁盤框,用以判斷接收到的讀寫命令所對(duì)應(yīng)的RAID是否由不同磁盤框 中的f茲盤組成。
5、 如權(quán)利要求1至3中任一項(xiàng)所述的RAID存儲(chǔ)系統(tǒng),其特征在于, 若干磁盤框設(shè)置于一磁盤拒中,所述磁盤柜內(nèi)還具有一主控制器,所述命令 中轉(zhuǎn)單元和所述RAID主計(jì)算單元承載于所述主控制器中;每一磁盤框中進(jìn)一步具有與所述主控制器相連、并與該磁盤框中若干磁 盤相連的處理器,且每一磁盤框所對(duì)應(yīng)的RAID計(jì)算子單元和磁盤控制單元 承載于該磁盤框內(nèi)的處理器中。
6、 如權(quán)利要求5所述的RAID存儲(chǔ)系統(tǒng),其特征在于,所述主控制器 通過IP網(wǎng)絡(luò)或光纖通道FC網(wǎng)絡(luò)與客戶端相連。
7、 一種磁盤冗余陣列RA1D存儲(chǔ)方法,其特征在于,包括a、 判斷接收到的讀寫命令所對(duì)應(yīng)的RAID是否由不同磁盤框中的磁盤 組成,如果是,則執(zhí)行步驟b,否則執(zhí)行步驟c;b、 利用集中的RAID計(jì)算資源,針對(duì)接收到的讀寫命令進(jìn)行RAID計(jì) 算,根據(jù)RAID計(jì)算結(jié)果將該讀寫命令分解為不同磁盤框中組成對(duì)應(yīng)RAID 的各磁盤的操作指令、并分別發(fā)送給與各磁盤所在磁盤框,然后執(zhí)行步驟d;c、 將該讀寫命令發(fā)送至組成對(duì)應(yīng)RAID的各磁盤所在》茲盤框,然后利 用分屬于該磁盤框的RAID計(jì)算資源,針對(duì)接收到的讀寫命令進(jìn)行RAID計(jì) 算,根據(jù)RAID計(jì)算結(jié)果將該讀寫命令分解為該磁盤框中各磁盤的操作指令, 然后執(zhí)行步驟d;d、 將操作指令發(fā)送至磁盤框中對(duì)應(yīng)的磁盤。
8、 如權(quán)利要求7所述的RAID存儲(chǔ)方法,其特征在于,所述步驟d之 后,該方法進(jìn)一步包括e、將各磁盤所返回的讀寫成功指令返回至發(fā)送讀 寫命令的客戶端。
9、 如權(quán)利要求8所述的RAID存儲(chǔ)方法,其特征在于,所述步驟e之 后,該方法進(jìn)一步包括f、在接收到同一讀寫命令所對(duì)應(yīng)的所有讀寫操作 成功指令后,向發(fā)送該讀寫命令的客戶端返回讀寫完成指令。
10、如權(quán)利要求7至9中任一項(xiàng)所述的RAID存儲(chǔ)方法,其特征在于, 所述步驟a之前,該方法進(jìn)一步記錄組成不同RAID的各磁盤、以及各磁盤 所在的磁盤框,用以判斷接收到的讀寫命令所對(duì)應(yīng)的RAID是否由不同磁盤 框中的石茲盤組成。
全文摘要
本發(fā)明公開了一種磁盤冗余陣列(RAID)存儲(chǔ)系統(tǒng)和方法。本發(fā)明利用集中式與分布式RAID計(jì)算相結(jié)合的方式,在組成RAID的各磁盤分處于不同磁盤框時(shí)使用集中的RAID計(jì)算資源、以保證分屬于不同磁盤框的RAID計(jì)算資源能夠共享跨磁盤框的熱備盤;在組成RAID的各磁盤均處于某一磁盤框時(shí)則使用分屬于該磁盤框的RAID計(jì)算資源。這樣,RAID存儲(chǔ)系統(tǒng)中所有RAID計(jì)算資源的計(jì)算能力總和會(huì)隨著磁盤框數(shù)量的變化而相應(yīng)變化,在增加磁盤框的同時(shí)增加分屬于該磁盤框的RAID計(jì)算資源,以降低計(jì)算能力不足對(duì)系統(tǒng)性能的影響;而在減少磁盤框的同時(shí)將分屬于該磁盤框的RAID計(jì)算資源移除,以避免由于RAID計(jì)算資源的閑置所導(dǎo)致的資源浪費(fèi)。
文檔編號(hào)G06F3/06GK101533336SQ20091008238
公開日2009年9月16日 申請(qǐng)日期2009年4月15日 優(yōu)先權(quán)日2009年4月15日
發(fā)明者胡榮國 申請(qǐng)人:杭州華三通信技術(shù)有限公司