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