基于閃存的存儲(chǔ)系統(tǒng)中的分布式raid架構(gòu)的制作方法
【技術(shù)領(lǐng)域】
[0001]本文所公開(kāi)的系統(tǒng)涉及一種基于閃存的存儲(chǔ)系統(tǒng),更具體而言,涉及一種采用分布式獨(dú)立磁盤(pán)冗余陣列(RAID)的基于閃存的存儲(chǔ)系統(tǒng)。
【背景技術(shù)】
[0002]RAID控制器和存儲(chǔ)控制器是當(dāng)代存儲(chǔ)系統(tǒng)中的兩個(gè)重要的組成部分。RAID控制器通常會(huì)提供諸如智能數(shù)據(jù)管理、奇偶校驗(yàn)數(shù)據(jù)生成和緩存?zhèn)浞莸热蝿?wù)。存儲(chǔ)控制器通常提供閃存存儲(chǔ)器件管理、物理地址到邏輯地址轉(zhuǎn)換、損耗均衡、塊采集以及垃圾收集。RAID控制器和存儲(chǔ)控制器經(jīng)常是兩個(gè)獨(dú)立的實(shí)體,且這種系統(tǒng)架構(gòu)在帶寬上受到局限,因?yàn)樗鼈兿嗷ブg的連接受限;此外,此類(lèi)系統(tǒng)的性能也受到集中式RAID控制器中的計(jì)算能力的限制,且使用復(fù)雜的切換或互連方法時(shí)可能會(huì)出現(xiàn)瓶頸。
[0003]為克服市場(chǎng)上現(xiàn)有系統(tǒng)的上述缺點(diǎn),本文所公開(kāi)的系統(tǒng)提供了一種優(yōu)化的基于閃存的存儲(chǔ)系統(tǒng),其具有與存儲(chǔ)控制器緊密耦合的分布式RAID控制器代理,這種架構(gòu)可提供更為有效的數(shù)據(jù)流互連和奇偶校驗(yàn)計(jì)算負(fù)載共享。
【發(fā)明內(nèi)容】
[0004]本文所公開(kāi)的基于閃存的存儲(chǔ)系統(tǒng)包括多個(gè)存儲(chǔ)節(jié)點(diǎn)。每個(gè)存儲(chǔ)節(jié)點(diǎn)包括RAID控制器代理、存儲(chǔ)控制器以及多個(gè)存儲(chǔ)器件。每個(gè)RAID控制器代理均與存儲(chǔ)控制器緊密耦合。每個(gè)存儲(chǔ)節(jié)點(diǎn)均通過(guò)一個(gè)或多個(gè)高速串行通信鏈路被連接至環(huán)型拓?fù)渲械钠渌鎯?chǔ)節(jié)點(diǎn)。存儲(chǔ)控制器由一個(gè)或多個(gè)并行或串行的通信鏈路連接至多個(gè)存儲(chǔ)器件。
[0005]每個(gè)存儲(chǔ)節(jié)點(diǎn)均通過(guò)高速串行通信鏈路被連接至I/O接口模塊,而每個(gè)I/O接口模塊被配置為通過(guò)一個(gè)或多個(gè)通信鏈路與外部主機(jī)設(shè)備進(jìn)行通信。
[0006]在系統(tǒng)初始化期間,將有一個(gè)準(zhǔn)備階段,會(huì)對(duì)每個(gè)存儲(chǔ)節(jié)點(diǎn)分配一個(gè)獨(dú)一無(wú)二的節(jié)點(diǎn)標(biāo)識(shí)號(hào)(NID)。
[0007]此外還將公開(kāi)運(yùn)行本系統(tǒng)的方法。所述方法包括分配N(xiāo)ID、設(shè)置數(shù)據(jù)路由路徑表和數(shù)據(jù)包格式的步驟。
【附圖說(shuō)明】
[0008]圖1所示為包括主機(jī)設(shè)備和存儲(chǔ)系統(tǒng)的一個(gè)示例計(jì)算系統(tǒng)的框圖。
[0009]圖2所示為一種優(yōu)選示例存儲(chǔ)系統(tǒng)的框圖,其中所述存儲(chǔ)系統(tǒng)具有多個(gè)存儲(chǔ)節(jié)點(diǎn),且節(jié)點(diǎn)之間相互連接。
[0010]圖3所示為圖2所述的存儲(chǔ)節(jié)點(diǎn)之一(節(jié)點(diǎn)122)的一個(gè)示例數(shù)據(jù)路由表。
[0011]圖4所示為圖2所述系統(tǒng)中每個(gè)存儲(chǔ)節(jié)點(diǎn)的一個(gè)示例地址范圍。
[0012]圖5所示為一種優(yōu)選示例存儲(chǔ)系統(tǒng)中的一種示例數(shù)據(jù)包格式。
[0013]圖6所示為一個(gè)示例存儲(chǔ)節(jié)點(diǎn)(節(jié)點(diǎn)121)的框圖。
[0014]圖7所不為一個(gè)不例主機(jī)設(shè)備的框圖。
[0015]圖8所示為包處理的示例流程圖。
【具體實(shí)施方式】
[0016]盡管本文所公開(kāi)的發(fā)明可接受各種改動(dòng)和替代形式,但以事例的方式,在附圖中顯示了特定的實(shí)施例,并對(duì)其進(jìn)行了詳細(xì)說(shuō)明。應(yīng)該理解的是,本文所給出的附圖和詳細(xì)說(shuō)明并不意圖將本發(fā)明局限于所公開(kāi)的特定形式。相反,本發(fā)明涵蓋落入所附權(quán)利要求限定的本發(fā)明的精神和范圍內(nèi)的所有改動(dòng)、等效方案和替代方案。
[0017]圖1所示的一種示例計(jì)算存儲(chǔ)系統(tǒng)可能包括主機(jī)設(shè)備10和存儲(chǔ)系統(tǒng)100。將要執(zhí)行的最常見(jiàn)的操作包括從存儲(chǔ)系統(tǒng)100內(nèi)的地址讀取數(shù)據(jù),以返回給主機(jī)設(shè)備10,或者將主機(jī)設(shè)備10所提供的數(shù)據(jù)寫(xiě)入到存儲(chǔ)系統(tǒng)100內(nèi)的地址。要讀取或?qū)懭氲臄?shù)據(jù)可以由單個(gè)地址或塊地址和塊尺寸組成。
[0018]在圖1中,在代表存儲(chǔ)系統(tǒng)100外部的全局環(huán)境的主機(jī)設(shè)備10與存儲(chǔ)系統(tǒng)100之間的接口可以采用任何接口類(lèi)型,包括但不限于PCIe、XAU1、Infiniband、千兆以太網(wǎng)或其他高速串行及光纖信道,它們具有一個(gè)或多個(gè)雙向信道。
[0019]在圖2中,存儲(chǔ)系統(tǒng)100與多個(gè)輸入/輸出接口模塊進(jìn)行通信。在本例中,示出了 6個(gè)I/O模塊(即101、102、103、104、105和106),不過(guò)I/O模塊的數(shù)量并非關(guān)鍵因素,可能會(huì)有改變。每個(gè)I/O模塊可通過(guò)主機(jī)通信信道(分別為101a、102a、103a、104a、105a和106a)耦合到一個(gè)或多個(gè)外部主機(jī)設(shè)備,或者I/O模塊也可以是主機(jī)設(shè)備的組成部分,如圖7所示。信道101a、102a、103a、104a、105a和106a使外部主機(jī)設(shè)備(例如服務(wù)器或其他任何可作為主機(jī)運(yùn)行的設(shè)備)可以將命令、指令和數(shù)據(jù)提供到I/O接口模塊101、102、103、104、105和106,和/或從I/O接口模塊101、102、103、104、105和106接收命令、指令和數(shù)據(jù)。
[0020]在圖2中,系統(tǒng)100包括并采用多個(gè)存儲(chǔ)節(jié)點(diǎn)。在本例中,示出了 6個(gè)存儲(chǔ)節(jié)點(diǎn)(即121、122、123、124、125和126),不過(guò)存儲(chǔ)節(jié)點(diǎn)的數(shù)量并非關(guān)鍵因素,可能會(huì)有改變。每個(gè)存儲(chǔ)節(jié)點(diǎn)包括RAID控制器代理、存儲(chǔ)控制器和存儲(chǔ)器件的陣列。每個(gè)存儲(chǔ)節(jié)點(diǎn)通過(guò)一個(gè)通信信道(分別為111、112、113、114、115和116)連接至一個(gè)I/O模塊。信道111、112、113、114、115和116可以是任何類(lèi)型的高速串行通信接口。
[0021]在圖2中,提供有多個(gè)通信鏈路,使得所有存儲(chǔ)節(jié)點(diǎn)可以進(jìn)行相互間的通信。這些串行鏈路可以是高速SERDES (串行器/解串器,Serializer/Deserializer)或LVDS (低壓差分信號(hào),Low Voltage Differential Signaling)或目前已知或?qū)⒁_(kāi)發(fā)的類(lèi)似鏈路。
[0022]在圖2中,存儲(chǔ)節(jié)點(diǎn)之間的通信可采用每個(gè)存儲(chǔ)節(jié)點(diǎn)均與其他存儲(chǔ)節(jié)點(diǎn)相連的環(huán)型拓?fù)湫问?。例如,?jié)點(diǎn)121通過(guò)高速通信鏈路138與節(jié)點(diǎn)124直接相連;由此,節(jié)點(diǎn)121與節(jié)點(diǎn)124之間的傳輸時(shí)間被縮短。
[0023]在如圖2所示的一種優(yōu)選實(shí)施例中,來(lái)自每個(gè)I/O模塊的數(shù)據(jù)將被傳送至相應(yīng)的存儲(chǔ)節(jié)點(diǎn);隨后數(shù)據(jù)可能會(huì)被分發(fā)至與存儲(chǔ)節(jié)點(diǎn)相關(guān)聯(lián)的閃存存儲(chǔ)器件或用于進(jìn)行奇偶校驗(yàn)或其他數(shù)據(jù)處理操作的其他存儲(chǔ)節(jié)點(diǎn)。每個(gè)節(jié)點(diǎn)有其自己的數(shù)據(jù)路由路徑表。圖3中示出了節(jié)點(diǎn)112的一個(gè)示例路由路徑表。路由路徑表通常至少包括針對(duì)源節(jié)點(diǎn)、目的節(jié)點(diǎn)以及從源節(jié)點(diǎn)到目的節(jié)點(diǎn)的路徑數(shù)據(jù)。從源節(jié)點(diǎn)到目的節(jié)點(diǎn)可能有一個(gè)或多個(gè)路徑。例如,在圖3所示示例中,從節(jié)點(diǎn)122到節(jié)點(diǎn)126有兩條路徑(信道132和131或信道139和136)??梢圆捎幂嗈D(zhuǎn)仲裁或其他方法來(lái)確定數(shù)據(jù)傳輸?shù)穆窂健?br>[0024]在采用RAID的另一種優(yōu)選實(shí)施例中,每一組數(shù)據(jù)被傳輸至節(jié)點(diǎn)121、122、123、124、125,并被存儲(chǔ)在相關(guān)聯(lián)的存儲(chǔ)器件內(nèi)。數(shù)據(jù)也將通過(guò)每