專利名稱:數(shù)據(jù)存儲的系統(tǒng)和方法
技術(shù)領(lǐng)域:
本發(fā)明涉及計算機領(lǐng)域,并且更具體地,涉及數(shù)據(jù)存儲的系統(tǒng)和方法。
背景技術(shù):
在存儲系統(tǒng)(包括主機端和存儲端)中,每秒進行讀寫操作的次數(shù)(I0PS,Input/Output Operations Per Second),是衡量隨機訪問性能的主要指標,多用于對數(shù)據(jù)庫等的操作場景中。存儲端的IOPS性能和主機端的讀寫操作(10,Input/Output)是兩個不同概念,IOPS性能用來衡量存儲端每秒可接受多少次主機端發(fā)出的訪問,主機端的一次10需要對存儲端進行多次訪問才可以完成。例如,主機端向存儲端寫入一個最小的數(shù)據(jù)塊,也要經(jīng)過發(fā)送寫入請求、寫入數(shù)據(jù)、收到寫入確認等三個步驟,也就是需要進行三次存儲端訪問。存儲系統(tǒng)的IOPS性能主要取決于緩存(Cache)命中率和緩存訪問時延。
目前,采用雙控技術(shù)的存儲系統(tǒng),兩個存儲控制器工作在主備或者負荷分擔(dān)模式下,兩個存儲控制器需要通過鏡像通道對緩存數(shù)據(jù)進行備份。該存儲系統(tǒng)的數(shù)據(jù)寫過程如下①存儲控制器A (主要單元為中央處理器CPU, Central Processing Unit)的處理器(CPUA)從主機接口接收報文寫請求,處理后將數(shù)據(jù)存入該CPUA的緩存單元CFSA (CFS,Cache for Storage),并通知另一個存儲控制器B的處理器CPUB更新該CPUB的CFSB中的數(shù)據(jù)級CPUB更新CFSB中的數(shù)據(jù),并返回確認信息給CPUA CPUA返回存儲確認信息給請求者,同時,刷新數(shù)據(jù)到磁盤單元。其中,存儲系統(tǒng)的時延,除了鏈路傳輸時延外,還取決于CFS讀/寫數(shù)據(jù)時延、CPUA和CPUB之間傳輸數(shù)據(jù)時延以及CPUB返回確認信息的時延。CPUA和CPUB之間的傳輸由于需要軟件參與,一般時延在f IOms級別左右,如果CPUB系統(tǒng)繁忙,可能會更長。CFS的訪問時延一般都在us級別,因此存儲的時延主要取決于CPUA和CPUB通信的時延。在現(xiàn)有技術(shù)中,由于雙控制器之間的CFS數(shù)據(jù)同步時間過長,導(dǎo)致存儲的IOPS性能很難提升。
發(fā)明內(nèi)容
本發(fā)明實施例提供一種數(shù)據(jù)存儲的系統(tǒng)和方法,能夠減少雙控制器之間數(shù)據(jù)同步的時間,提高存儲端的IOPS性能。一方面,提供了一種數(shù)據(jù)存儲系統(tǒng),該系統(tǒng)包括至少一個交換模塊、至少兩個控制模塊和至少一個緩存模塊,該至少兩個控制模塊中的每個控制模塊經(jīng)由該至少一個交換模塊中的每個交換模塊與該至少一個緩存模塊中的每個緩存模塊連接;該控制模塊,用于接收外部設(shè)備發(fā)送的數(shù)據(jù)寫請求和目標數(shù)據(jù),根據(jù)該數(shù)據(jù)寫請求向該交換模塊發(fā)送數(shù)據(jù)寫指令,以及接收該交換模塊轉(zhuǎn)發(fā)的該緩存模塊的數(shù)據(jù)讀指令,根據(jù)該數(shù)據(jù)讀指令向該交換模塊發(fā)送該目標數(shù)據(jù);該交換模塊,用于接收該控制模塊發(fā)送的該數(shù)據(jù)寫指令和該目標數(shù)據(jù)轉(zhuǎn)發(fā)給該緩存模塊,以及接收該緩存模塊發(fā)送的該數(shù)據(jù)讀指令轉(zhuǎn)發(fā)給該控制模塊;該緩存模塊,用于接收該交換模塊轉(zhuǎn)發(fā)的該數(shù)據(jù)寫指令,根據(jù)該數(shù)據(jù)寫指令發(fā)送該數(shù)據(jù)讀指令給該交換模塊,以及接收該交換模塊轉(zhuǎn)發(fā)的該目標數(shù)據(jù)并保存。另一方面,提供了一種數(shù)據(jù)存儲方法,該方法在包括至少一個交換模塊、至少兩個控制模塊和至少一個緩存模塊的數(shù)據(jù)存儲系統(tǒng)執(zhí)行,該數(shù)據(jù)存儲系統(tǒng)中的該至少兩個控制模塊中的每個控制模塊經(jīng)由該至少一個交換模塊中的每個交換模塊與該至少一個緩存模塊中的每個緩存模塊連接,該方法包括該控制模塊接收外部設(shè)備發(fā)送的數(shù)據(jù)讀寫請求;該控制模塊根據(jù)該數(shù)據(jù)寫請求,向該交換模塊發(fā)送數(shù)據(jù)寫指令;該交換模塊轉(zhuǎn)發(fā)該數(shù)據(jù)寫指令給該緩存模塊;該緩存模塊根據(jù)該數(shù)據(jù)寫指令,發(fā)送數(shù)據(jù)讀指令給該交換模塊;該交換模塊轉(zhuǎn)發(fā)該數(shù)據(jù)讀指令給該控制模塊;該控制模塊根據(jù)該數(shù)據(jù)讀指令,向該交換模塊發(fā)送該目標數(shù)據(jù);該交換模塊轉(zhuǎn)發(fā)該目標數(shù)據(jù)給該緩存模塊;該緩存模塊保存 該目標數(shù)據(jù)。本發(fā)明實施例中的數(shù)據(jù)存儲系統(tǒng)和方法,通過交換模塊把至少兩個控制模塊和至少一個緩存模塊全部連接,使同一緩存模塊可以被各個控制模塊通過該交換模塊所訪問,各控制模塊無需對緩存數(shù)據(jù)進行同步,減少了控制模塊間的通信時延,從而能夠縮短緩存訪問延遲,提高存儲端的IOPS性能。
為了更清楚地說明本發(fā)明實施例的技術(shù)方案,下面將對本發(fā)明實施例中所需要使用的附圖作簡單地介紹,顯而易見地,下面所描述的附圖僅僅是本發(fā)明的一些實施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其他的附圖。圖I是本發(fā)明一實施例的數(shù)據(jù)存儲系統(tǒng)的結(jié)構(gòu)圖。圖2是本發(fā)明一實施例的緩存模塊的結(jié)構(gòu)圖。圖3a是本發(fā)明一實施例的數(shù)據(jù)存儲系統(tǒng)的另一結(jié)構(gòu)圖,圖3b是本發(fā)明一實施例的數(shù)據(jù)存儲系統(tǒng)的再一結(jié)構(gòu)圖。圖4a是本發(fā)明一實施例的數(shù)據(jù)存儲系統(tǒng)的結(jié)構(gòu)圖,圖4b是本發(fā)明另一實施例的數(shù)據(jù)存儲系統(tǒng)的結(jié)構(gòu)圖。圖5是本發(fā)明再一實施例的數(shù)據(jù)存儲系統(tǒng)的結(jié)構(gòu)圖。圖6是本發(fā)明一實施例的數(shù)據(jù)存儲方法的流程圖。
具體實施例方式下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進行清楚、完整地描述,顯然,所描述的實施例是本發(fā)明一部分實施例,而不是全部的實施例。基于本發(fā)明中的實施例,本領(lǐng)域普通技術(shù)人員在沒有作出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護的范圍。本發(fā)明的數(shù)據(jù)存儲系統(tǒng)可用于計算機系統(tǒng),具體用于進行數(shù)據(jù)存儲操作(數(shù)據(jù)讀寫等)。圖I示出了根據(jù)本發(fā)明一實施例的數(shù)據(jù)存儲系統(tǒng)100的結(jié)構(gòu)圖。如圖I所示,該系統(tǒng)100包括至少一個交換模塊110、至少兩個控制模塊120、120’和至少一個緩存模塊140,該至少兩個控制模塊中的每個控制模塊經(jīng)由該至少一個交換模塊中的每個交換模塊而與該至少一個緩存模塊中的每個緩存模塊連接;
該控制模塊120、120’,用于接收外部設(shè)備發(fā)送的數(shù)據(jù)寫請求和目標數(shù)據(jù),根據(jù)該數(shù)據(jù)寫請求向該交換模塊110發(fā)送數(shù)據(jù)寫指令,以及接收該交換模塊110轉(zhuǎn)發(fā)的該緩存模塊140的數(shù)據(jù)讀指令,根據(jù)該數(shù)據(jù)讀指令向該交換模塊110發(fā)送該目標數(shù)據(jù);該交換模塊110,用于接收該控制模塊120、120’發(fā)送的該數(shù)據(jù)寫指令和該目標數(shù)據(jù)轉(zhuǎn)發(fā)給該緩存模塊140,以及接收該緩存模塊140發(fā)送的該數(shù)據(jù)讀指令轉(zhuǎn)發(fā)給該控制模塊 120、120,;該緩存模塊140,用于接收該交換模塊110轉(zhuǎn)發(fā)的該數(shù)據(jù)寫指令,根據(jù)該數(shù)據(jù)寫指令發(fā)送該數(shù)據(jù)讀指令給該交換模塊110,以及接收該交換模塊110轉(zhuǎn)發(fā)的該目標數(shù)據(jù)并保存。在本發(fā)明實施例中,交換模塊110可以分別與控制模塊120、120’及緩存模塊140相連接,為各控制模塊120、120’與緩存模塊140之間的通信提供通道,使控制模塊120、120’均可以經(jīng)由交換模塊110訪問緩存模塊,控制模塊120、120’進行數(shù)據(jù)存儲時無需對 緩存數(shù)據(jù)進行同步,減少了控制模塊間的通信時延,從而縮短緩存訪問延遲,提高存儲端的IOPS性能。優(yōu)選的,本發(fā)明實施例中,交換模塊110可以基于PCIE總線進行該目標數(shù)據(jù)和該指令的傳遞。PCI-Express (簡稱PCIE)是目前較新的總線和接口標準,其數(shù)據(jù)傳輸速率高,時延低,并且PCIE交換接口可以提供DMA (直接存儲,Direct Memory Access)方式進行數(shù)據(jù)的搬移,無需控制模塊參與相關(guān)目標數(shù)據(jù)的傳遞,提升控制模塊處理能力,從而進一步提升存儲端的存儲效率,提升IOPS性能。并且,可選地,在本發(fā)明實施例中,可以配置兩個交換模塊,以支持I + I主備或負荷分擔(dān)模式的工作,同樣,也可以配置兩個以上控制模塊,以支持N十I主備或負荷分擔(dān)模式的工作,從而能夠提高數(shù)據(jù)存取效率,防止單點故障的發(fā)生。當(dāng)然,在本發(fā)明實施例中,未對多個控制模塊和交換模塊進行區(qū)分說明,具體描述時實施例中的控制模塊和交換模塊是指當(dāng)前的主用模塊或正在進行數(shù)據(jù)或信令收發(fā)的模塊。服務(wù)器刀片(SRB,Server Blade)是指在標準高度的機架式機箱內(nèi)可插裝多個卡式的服務(wù)器單元,服務(wù)器刀片就像“刀片”一樣,每一塊“刀片”實際上就是一塊系統(tǒng)主板。在本發(fā)明實施例中,作為示例性說明而非限定,以SRB為例對控制模塊進行說明,其作用與以上描述的現(xiàn)有技術(shù)中的CPU相似。緩存刀片(CAB,Cache Blade)可以被視為一個緩存模塊,通過背板總線向服務(wù)器刀片提供緩存功能。在本發(fā)明實施例中,作為示例性說明而非限定,以CAB為例對緩存模塊進行說明?;赑CIE交換的刀片(PSB,PICE Switch Blade)是基于PCIE為與其相連接的各模塊提供通信通道的模塊,PSB可以提供CAB與SRB之間通信的通道。在本發(fā)明實施例中,作為示例性說明而非限定,以PSB為例對交換模塊進行說明。在本發(fā)明實施例中,緩存模塊140可以用于接收交換模塊110轉(zhuǎn)發(fā)的數(shù)據(jù)寫指令,根據(jù)該數(shù)據(jù)寫指令發(fā)送數(shù)據(jù)讀指令給交換模塊110,以及接收交換模塊110轉(zhuǎn)發(fā)的該目標數(shù)據(jù)并保存。參考圖2,對該作為該緩存模塊的CAB200的結(jié)構(gòu)進行詳細說明。圖2示出了根據(jù)本發(fā)明實施例的緩存模塊(CAB)的結(jié)構(gòu)圖,如圖2所示,該CAB可以包括緩存控制單元(CFSC,CFS Controller)和至少一個緩存單元(CFS),該CFSC與各CFS直接連接。CFSC可以對外提供包括一個或兩個PCIE鏈路的接口,并通過該接口與PSB連接,從而可以與SRB進行通信。并且,在本發(fā)明實施例中,在CFSC內(nèi)部,可以集成有多通道直接存儲控制器(DMAC, Direct Memory Access Controller),以在配置有多個CAB和DIB時,通過該DMAC的控制,實現(xiàn)各CAB之間以及CAB與DIB之間的DMA (直接存儲,DirectMemory Access),進行數(shù)據(jù)搬移。作為示例性說明而非限定,CFS可以為雙列直插式存儲模塊(DIMM, Dual-Inline-Memory-Modules)、雙倍速率同步動態(tài)隨機存儲器(DDR, DoubleData Rate)顆粒。緩存模塊的CFSC可以通過一個或兩個PSB接收至少一個SRB發(fā)送的數(shù)據(jù)讀寫指令。讀數(shù)據(jù)時,CFSC可以根據(jù)數(shù)據(jù)讀指令,從CFS中查找與該數(shù)據(jù)讀指令相對應(yīng)的數(shù)據(jù);寫數(shù)據(jù)時,CFSC可以根據(jù)數(shù)據(jù)寫指令,接收SRB經(jīng)由PSB發(fā)送的目標數(shù)據(jù)并將該目標數(shù)據(jù)存儲在CFS中。在本發(fā)明實施例中,由于緩存模塊(CAB)與控制模塊(SRB)非直接連接,緩存模塊(CAB)的CFS的大小不受SRB (主要是CPU管理能力、連接能力等)的限制,從而可以很方便地以較小成本增大緩存模塊(CAB)的容量,提高了緩存命中率,也能夠提高存儲端的IOPS 性能。下面,具體說明本發(fā)明實施例的數(shù)據(jù)存儲系統(tǒng)一次寫數(shù)據(jù)操作的過程如下①SRB接收外部設(shè)備發(fā)送的數(shù)據(jù)寫請求及目標數(shù)據(jù),并根據(jù)該數(shù)據(jù)寫請求,向PSB發(fā)送數(shù)據(jù)寫指令PSB轉(zhuǎn)發(fā)該數(shù)據(jù)寫指令給CAB CAB根據(jù)該數(shù)據(jù)寫指令,發(fā)送數(shù)據(jù)讀指令給PSB PSB轉(zhuǎn)發(fā)該數(shù)據(jù)讀指令給SRB SRB根據(jù)該數(shù)據(jù)讀指令,向PSB發(fā)送該目標數(shù)據(jù);⑥PSB轉(zhuǎn)發(fā)該目標數(shù)據(jù)給CAB ’⑦CAB保存該目標數(shù)據(jù)。另一方面,本發(fā)明實施例中的數(shù)據(jù)存儲系統(tǒng)也可以處理外部設(shè)備的讀數(shù)據(jù)請求,可以為該控制模塊120、120’,用于接收外部設(shè)備發(fā)送的數(shù)據(jù)讀請求,根據(jù)該數(shù)據(jù)讀請求向該交換模塊110發(fā)送數(shù)據(jù)讀指令,以及接收該交換模塊110轉(zhuǎn)發(fā)的該緩存模塊140的數(shù)據(jù)寫指令和第二目標數(shù)據(jù),向該外部設(shè)備發(fā)送該第二目標數(shù)據(jù);該交換模塊110,用于接收該控制模塊120、120’發(fā)送的該數(shù)據(jù)讀指令,轉(zhuǎn)發(fā)給該緩存模塊140,以及接收該緩存模塊140發(fā)送的寫指令和該第二目標數(shù)據(jù)并轉(zhuǎn)發(fā)給該控制模塊 120、120’ ;該緩存模塊140具體用于接收該交換模塊110發(fā)送的該數(shù)據(jù)讀指令,根據(jù)該數(shù)據(jù)讀指令發(fā)送該數(shù)據(jù)寫指令給該交換模塊110,以及讀取該第二目標數(shù)據(jù),向該交換模塊110發(fā)送該第二目標數(shù)據(jù)。下面具體說明一次讀數(shù)據(jù)操作的過程①SRB接收外部設(shè)備發(fā)送的數(shù)據(jù)讀請求,根據(jù)該數(shù)據(jù)讀請求向PSB發(fā)送數(shù)據(jù)讀指令 級PSB轉(zhuǎn)發(fā)該數(shù)據(jù)讀指令給CAB CAB根據(jù)該數(shù)據(jù)讀指令查找其保存的數(shù)據(jù),在與該數(shù)據(jù)讀指令相對應(yīng)的目標數(shù)據(jù)保存在CAB中(Cache命中)的情況下,向PSB發(fā)送數(shù)據(jù)寫指令;@ PSB向SRB轉(zhuǎn)發(fā)該數(shù)據(jù)寫指令CAB向PSB發(fā)送該目標數(shù)據(jù)PSB轉(zhuǎn)發(fā)該目標數(shù)據(jù)給SRB ; SRB向外部設(shè)備發(fā)送數(shù)據(jù)讀響應(yīng)及該目標數(shù)據(jù)。在本發(fā)明實施例中,控制模塊(SRB) 120、120’通過基于PCIE交換的交換模塊(PSB)110與緩存模塊(CAB) 140相連接,每個控制模塊(SRB)、每個交換模塊(PSB)和每個緩存模塊(CAB)之間都是相連的,使在外部設(shè)備進行寫操作時,控制模塊(SRB) 120、120’經(jīng)由交換模塊(PSB) 110訪問緩存數(shù)據(jù)所對應(yīng)的緩存模塊,完成寫操作,而無需對控制模塊(SRB)120、120’的各自緩存數(shù)據(jù)進行同步,減少了控制模塊間的通信時延,從而縮短緩存訪問延遲,提高存儲端的IOPS性能。圖3a、圖3b示出了根據(jù)本發(fā)明實施例的數(shù)據(jù)存儲系統(tǒng)100的另一結(jié)構(gòu)圖。在本發(fā)明實施例中,該系統(tǒng)100還包括至少一個磁盤模塊150,如圖3a所不,該至少一個磁盤模塊中的每個磁盤模塊經(jīng)由該至少一個交換模塊中的每個交換模塊而與該至少一個緩存模塊中的每個緩存模塊連接;或圖3b所示,該至少一個磁盤模塊中的每個磁盤模塊與該至少一個緩存模塊中的每個緩存模塊直接連接;則該緩存模塊140,還用于根據(jù)該數(shù)據(jù)寫指令,向該磁盤模塊150發(fā)送數(shù)據(jù)同步指令以及所述目標數(shù)據(jù); 該磁盤模塊150用于根據(jù)該數(shù)據(jù)同步指令,接收并保存所述目標數(shù)據(jù)。在本發(fā)明實施例中,磁盤刀片(DIB,Disk Blade)可以被視為一個硬盤模塊,通過背板總線向服務(wù)器刀片提供存儲功能,可以支持串行連接小型計算機系統(tǒng)接口(SAS, Serial Attached SmallComputer System Interface)和串行高級技術(shù)附件(SATA, Serial Advanced TechnologyAttachment)等接口技術(shù),可選地,該DIB還可以包括存儲接口擴展模塊,可以連接至少一個固態(tài)硬盤(SSD, Solid State Disk)和/或混合硬盤(HHD,Hybrid Hard Disk),從而可以根據(jù)需要擴大DIB的容量。在本發(fā)明實施例中,作為示例性說明而非限定,以DIB為例對磁盤模塊進行說明。如圖3a所示,該磁盤模塊(DIB)可以通過交換模塊(PSB)而與緩存模塊(CAB)間接連接,如圖3b所示該磁盤模塊(DIB)也可以與緩存模塊(CAB)直接連接,該磁盤模塊(DIB)用于存儲數(shù)據(jù),當(dāng)緩存模塊(CAB)接收到控制模塊發(fā)送的數(shù)據(jù)讀寫指令(包括數(shù)據(jù)讀指令和數(shù)據(jù)寫指令)時,可以通過CFSC向磁盤模塊(DIB)發(fā)送數(shù)據(jù)同步指令,從而實現(xiàn)對磁盤模塊中目標數(shù)據(jù)的讀取操作。具體地說,一次寫數(shù)據(jù)操作(訪問緩存的一例)的過程如下,①控制模塊接收外部設(shè)備發(fā)送的數(shù)據(jù)寫請求及目標數(shù)據(jù),向交換模塊發(fā)送數(shù)據(jù)寫指令交換模塊轉(zhuǎn)發(fā)該數(shù)據(jù)寫指令給緩存模塊緩存模塊根據(jù)該數(shù)據(jù)寫指令,發(fā)送數(shù)據(jù)讀指令給交換模塊;④交換模塊轉(zhuǎn)發(fā)該數(shù)據(jù)讀指令給控制模塊;⑤控制模塊根據(jù)該數(shù)據(jù)讀指令,向交換模塊發(fā)送目標數(shù)據(jù);⑥交換模塊轉(zhuǎn)發(fā)該目標數(shù)據(jù)給緩存模塊;⑦緩存模塊保存該目標數(shù)據(jù);⑧緩存模塊向磁盤模塊發(fā)送第一數(shù)據(jù)同步指令及該目標數(shù)據(jù);⑨磁盤模塊可以根據(jù)該第一數(shù)據(jù)同步指令,接收并保存該目標數(shù)據(jù)丨⑩緩存模塊通過交換模塊向控制模塊發(fā)送數(shù)據(jù)寫確認消息,控制模塊根據(jù)數(shù)據(jù)寫確認消息,向外部設(shè)備發(fā)送數(shù)據(jù)寫響應(yīng)。當(dāng)然,在本發(fā)明實施例中,緩存模塊向磁盤模塊同步目標數(shù)據(jù)的過程(上面的步驟⑧、⑨)可以是在按照前面所述在接收到目標數(shù)據(jù)后立即進行,也可以按規(guī)定的周期,一次性同步在該周期內(nèi)接收的所有目標數(shù)據(jù),此時上述過程中的⑩在步驟⑦之后執(zhí)行。另一方面,同樣的,此時本發(fā)明實施例中的數(shù)據(jù)存儲系統(tǒng)也可以處理外部設(shè)備的讀數(shù)據(jù)請求,可以為則該緩存模塊140,還用于根據(jù)該數(shù)據(jù)讀指令,向該磁盤模塊150發(fā)送數(shù)據(jù)同步指令;該磁盤模塊150用于根據(jù)該數(shù)據(jù)同步指令,讀取該目標數(shù)據(jù),并發(fā)送該目標數(shù)據(jù)給該緩存模塊。
下面具體說明一次讀數(shù)據(jù)操作的過程①SRB接收外部設(shè)備發(fā)送的數(shù)據(jù)讀請求,根據(jù)該數(shù)據(jù)讀請求向PSB發(fā)送數(shù)據(jù)讀指令PSB轉(zhuǎn)發(fā)該數(shù)據(jù)讀指令給CAB CAB根據(jù)該數(shù)據(jù)讀指令查找其保存的數(shù)據(jù),在與該數(shù)據(jù)讀指令相對應(yīng)的目標數(shù)據(jù)未保存在CAB中(Cache未命中)的情況下,向DIB發(fā)送數(shù)據(jù)同步指令DIB根據(jù)該數(shù)據(jù)同步指令讀取該目標數(shù)據(jù),并發(fā)送該目標數(shù)據(jù)給CAB CAB向PSB發(fā)送數(shù)據(jù)寫指令; PSB向SRB轉(zhuǎn)發(fā)該數(shù)據(jù)寫指令CAB向PSB發(fā)送該目標數(shù)據(jù)PSB轉(zhuǎn)發(fā)該目標數(shù)據(jù)給SRB SRB向外部設(shè)備發(fā)送數(shù)據(jù)讀響應(yīng)及該目標數(shù)據(jù)。如果與該數(shù)據(jù)讀指令相對應(yīng)的目標數(shù)據(jù)保存在CAB中(Cache命中),則上面第③步,CAB直接讀取該目標數(shù)據(jù),然后直接執(zhí)行第⑤步;當(dāng)系統(tǒng)中CAB與DIB之間為通過PSB進行連接,第③步的CAB向DIB發(fā)送數(shù)據(jù)同步指令,還要經(jīng)由PSB轉(zhuǎn)發(fā)。 在本發(fā)明實施例中,由于緩存模塊與磁盤模塊之間的數(shù)據(jù)同步操作不經(jīng)由控制單元,而是直接由緩存模塊控制實現(xiàn),可以經(jīng)過高速的PCIE交換模塊或直接相連的數(shù)據(jù)交互,因此減少了數(shù)據(jù)交互時延,從而能夠提高存儲端的IOPS性能。并且,在本發(fā)明實施例中,為了防止緩存模塊單點故障的發(fā)生,緩存模塊(主要是CFSC)還可以對目標數(shù)據(jù)進行備份操作。可以通過結(jié)構(gòu)與上述緩存模塊相同的另一緩存模塊來保存(備份)目標數(shù)據(jù),也可以通過獨立的備份模塊保存(備份)目標數(shù)據(jù)。當(dāng)通過結(jié)構(gòu)與上述緩存模塊相同的另一緩存模塊來保存(備份)目標數(shù)據(jù)時,可選地,在本發(fā)明實施例中,該系統(tǒng)包括至少兩個緩存模塊,該至少兩個緩存模塊中的第一緩存模塊和第二緩存模塊經(jīng)由該至少一個交換模塊中的每個交換模塊而互相連接;該第一緩存模塊具體用于向該交換模塊發(fā)送第一數(shù)據(jù)備份指令及第三目標數(shù)據(jù),該第三目標數(shù)據(jù)是該第一緩存模塊根據(jù)該數(shù)據(jù)寫指令保存的目標數(shù)據(jù);該交換模塊還用于接收該第一緩存模塊發(fā)送的該第一數(shù)據(jù)備份指令及該第三目標數(shù)據(jù),并發(fā)送給該第二緩存模塊,該第一數(shù)據(jù)備份指令及第三目標數(shù)據(jù)的傳遞基于PCIE總線進行;該第二緩存模塊具體用于接收該交換模塊發(fā)送的該第一數(shù)據(jù)備份指令及該第三目標數(shù)據(jù),并保存該第三目標數(shù)據(jù)。具體地說,起到備份作用的第二緩存模塊可以經(jīng)由交換模塊而與第一緩存模塊連接。并且,在此情況下,第一緩存模塊與第二緩存模塊可以在主備模式下工作,也可以在負荷分擔(dān)且互相備份的模式下工作。當(dāng)?shù)谝痪彺婺K與第二緩存模塊在主備模式下工作時,該第二緩存模塊對數(shù)據(jù)進行備份的流程如下。即,第二緩存模塊的CFSC可以通過PSB接收第一緩存模塊發(fā)送的數(shù)據(jù)備份指令和目標數(shù)據(jù),并將該目標數(shù)據(jù)存儲在CFS中。當(dāng)?shù)谝痪彺婺K與第二緩存模塊在負荷分擔(dān)且互相備份的模式下工作時,各緩存模塊之間可以互相備份,因此,可選地,在本發(fā)明實施例中,該緩存模塊包括緩存區(qū)域和備份區(qū)域,該第一緩存模塊具體用于將該第三目標數(shù)據(jù)保存在該第一緩存模塊的緩存區(qū)域中;以及該第二緩存模塊具體用于將該第三目標數(shù)據(jù)保存在該第二緩存模塊的備份區(qū)域中。具體地說,如圖4a、4b所示,本發(fā)明實施例的數(shù)據(jù)存儲系統(tǒng)400還可以包括兩個以上SRB和與各SRB——對應(yīng)的CAB。下面,對各CAB緩存及備份目標數(shù)據(jù)的流程進行說明??蛇x地,如圖4a所示,當(dāng)數(shù)據(jù)存儲系統(tǒng)300包括兩個SRB (SRBa和SRBb)和與各SRB相對應(yīng)的兩個CAB (CABa和CABb)時,SRBa可以向PSB發(fā)送第一數(shù)據(jù)讀寫指令(當(dāng)為數(shù)據(jù)讀操作時,為讀指令,當(dāng)為數(shù)據(jù)寫操作時,為寫指令),通過PSB向CABa轉(zhuǎn)發(fā)該第一數(shù)據(jù)讀寫指令,CABa根據(jù)該數(shù)據(jù)讀寫指令獲取目標數(shù)據(jù)(從SRBa或DIB,當(dāng)為讀指令時,從SRBa,當(dāng)為寫指令時,從DIB),并將該目標數(shù)據(jù)保存在CABa的與SRBa對應(yīng)的緩存區(qū)域SRBa CA),并通過PSB向CABb發(fā)送第一數(shù)據(jù)備份指令及該目標數(shù)據(jù),CABb根據(jù)該第一數(shù)據(jù)備份指令,將該目標數(shù)據(jù)保存在CABb的與CABa相對應(yīng)的備份區(qū)域SRBa (S)。同理,SRBb可以向PSB發(fā)送第二數(shù)據(jù)讀寫指令(當(dāng)為數(shù)據(jù)讀操作時,為讀指令,當(dāng)為數(shù)據(jù)寫操作時,為寫指令),通過PSB向CABb轉(zhuǎn)發(fā)該第二數(shù)據(jù)讀寫指令,CABb根據(jù)該第 二數(shù)據(jù)讀寫指令獲取目標數(shù)據(jù)(從SRBb或DIB,當(dāng)為讀指令時,從SRBb,當(dāng)為寫指令時,從DIB),并將該目標數(shù)據(jù)保存在CABb的與SRBb對應(yīng)的緩存區(qū)域SRBb(A),并通過PSB向CABa發(fā)送第二數(shù)據(jù)備份指令及該目標數(shù)據(jù),CABa根據(jù)該第二數(shù)據(jù)備份指令,將該目標數(shù)據(jù)保存在CABa的與CABb相對應(yīng)的備份區(qū)域SRBb (S)??蛇x地,如圖4b所示,當(dāng)數(shù)據(jù)存儲系統(tǒng)300包括三個SRB (SRBa,SRBb和SRBc)和與各SRB相對應(yīng)的三個CAB (CABaXABb和CABc)時,SRBa可以通過PSB向CABa發(fā)送第三數(shù)據(jù)讀寫指令(當(dāng)為數(shù)據(jù)讀操作時,為讀指令,當(dāng)為數(shù)據(jù)寫操作時,為寫指令),CABa根據(jù)該第三數(shù)據(jù)讀寫指令獲取目標數(shù)據(jù)(從SRBa或DIB,當(dāng)為讀指令時,從SRBa,當(dāng)為寫指令時,從DIB),并將該目標數(shù)據(jù)保存在CABa的與SRBa對應(yīng)的緩存區(qū)域SRBa(A),并通過PSB向CABc發(fā)送第三數(shù)據(jù)備份指令及該目標數(shù)據(jù),CABc根據(jù)該第三數(shù)據(jù)備份指令,將該目標數(shù)據(jù)保存在CABc的與CABa相對應(yīng)的備份區(qū)域SRBa (S)。同理,SRBb可以通過PSB向CABb發(fā)送第四數(shù)據(jù)讀寫指令(當(dāng)為數(shù)據(jù)讀操作時,為讀指令,當(dāng)為數(shù)據(jù)寫操作時,為寫指令),CABb根據(jù)該第四數(shù)據(jù)讀寫指令獲取目標數(shù)據(jù)(從SRBb或DIB,當(dāng)為讀指令時,從SRBb,當(dāng)為寫指令時,從DIB),并將該目標數(shù)據(jù)保存在CABb的與SRBb對應(yīng)的緩存區(qū)域SRBb CA),并通過PSB向CABa發(fā)送第四數(shù)據(jù)備份指令及該目標數(shù)據(jù),CABa根據(jù)該第四數(shù)據(jù)備份指令,將該目標數(shù)據(jù)保存在CABa的與CABb相對應(yīng)的備份區(qū)域 SRBb (S)。同理,SRBc可以通過PSB向CABc發(fā)送第五數(shù)據(jù)讀寫指令(當(dāng)為數(shù)據(jù)讀操作時,為讀指令,當(dāng)為數(shù)據(jù)寫操作時,為寫指令),CABc根據(jù)該第五數(shù)據(jù)讀寫指令獲取目標數(shù)據(jù)(從SRBc或DIB,當(dāng)為讀指令時,從SRBc,當(dāng)為寫指令時,從DIB),并將該目標數(shù)據(jù)保存在CABc的與SRBc對應(yīng)的緩存區(qū)域SRBc CA),并通過PSB向CABb發(fā)送第五數(shù)據(jù)備份指令及該目標數(shù)據(jù),CABb根據(jù)該第五數(shù)據(jù)備份指令,將該目標數(shù)據(jù)保存在CABb的與CABc相對應(yīng)的備份區(qū)域 SRBc (S)。在本發(fā)明實施例中,作為示例性說明而非限定,各CAB的主/備區(qū)域的空間利用率可以各占一半。根據(jù)本發(fā)明實施例,可以適用于使用兩個以上的控制模塊(B卩,兩個以上CPU)的情況,因此,能夠進一步提高數(shù)據(jù)存儲的效率,有利于計算機的性能升級。在本發(fā)明實施例中,由于第一緩存模塊與第二緩存模塊之間的備份操作不經(jīng)由控制單元,而是在CFSC的控制下通過交換模塊實現(xiàn)數(shù)據(jù)交互,因此減少了數(shù)據(jù)交互時延,從而能夠提高存儲端的IOPS性能,同時由于第一緩存模塊與第二緩存模塊之間互為備份,降低了緩存模塊單點故障的風(fēng)險。當(dāng)通過獨立的備份模塊保存(備份)目標數(shù)據(jù)時,可選地,在本發(fā)明實施例中,該系統(tǒng)還包括至少一個備份模塊,該至少一個備份模塊中的每個備份模塊分別與該至少一個緩存模塊中一個對應(yīng)的緩存模塊連接;該緩存模塊具體用于向該備份模塊發(fā)送第二數(shù)據(jù)備份指令及第四目標數(shù)據(jù);該備份模塊用于根據(jù)該第二數(shù)據(jù)備份指令接收并保存該第四目標數(shù)據(jù)。具體地說,如圖5所示,在本發(fā)明實施例的數(shù)據(jù)存儲系統(tǒng)400中,可以為每個緩存模塊CAB單獨配置一個備份模塊,并且該備份模塊可以包括備電單元和閃存單元,并且該 備電單元和閃存單元可以電連接,該備電單元可以為閃存單元供電,其中,該備電單元可以與緩存模塊(例如,緩存模塊的CFSC)電連接,從而當(dāng)計算機系統(tǒng)掉電時,可以通過該備電單元對緩存模塊(CFSC)供電,并且,該閃存單元可以與緩存模塊(例如,緩存模塊的CFSC)直接連接,當(dāng)計算機系統(tǒng)掉電時,緩存模塊(CFSC)可以將保存在CFS中的數(shù)據(jù)保存到閃存單元中,具體可以為,當(dāng)計算機系統(tǒng)掉電時,緩存模塊(CFSC)由該備電單元進行供電,并向該備份模塊發(fā)送第二數(shù)據(jù)備份指令及第四目標數(shù)據(jù),備份模塊的閃存單元根據(jù)該第二數(shù)據(jù)備份指令從緩存模塊接收并保存該第四目標數(shù)據(jù),以防止CFS的數(shù)據(jù)丟棄,當(dāng)系統(tǒng)重新上電后,CFSC從閃存單元把數(shù)據(jù)恢復(fù)到CFS。在本發(fā)明實施例中,與以CAB作為備份模塊的情況相比,減少了 CAB之間的備份過程,從而進一步縮短了數(shù)據(jù)訪問延遲。根據(jù)本發(fā)明實施例數(shù)據(jù)存儲系統(tǒng),通過使至少兩個控制模塊經(jīng)由交換模塊訪問緩存模塊,完成讀寫操作,各控制模塊無需對緩存數(shù)據(jù)進行同步,從而能夠縮短緩存訪問延遲,提高存儲端的IOPS性能。并且由于控制模塊經(jīng)由交換模塊與緩存模塊連接,控制模塊重啟后無需恢復(fù)緩存數(shù)據(jù),從而能夠大幅減少系統(tǒng)啟動時間。上文中,結(jié)合圖I至圖5,詳細描述了根據(jù)本發(fā)明實施例的數(shù)據(jù)存儲系統(tǒng),下面,將結(jié)合圖6,詳細描述根據(jù)本發(fā)明實施例的數(shù)據(jù)存儲方法。圖6示出了根據(jù)本發(fā)明一實施例的數(shù)據(jù)存儲方法500的示意性流程圖。該方法在包括至少一個交換模塊、至少兩個控制模塊和至少一個緩存模塊的數(shù)據(jù)存儲系統(tǒng)執(zhí)行,該數(shù)據(jù)存儲系統(tǒng)中至少兩個控制模塊中的每個控制模塊經(jīng)由該至少一個交換模塊中的每個交換模塊與該至少一個緩存模塊中的每個緩存模塊連接。如圖6所示,該方法500包括S210,控制模塊接收外部設(shè)備發(fā)送的數(shù)據(jù)寫請求以及目標數(shù)據(jù);S220,該控制模塊根據(jù)該數(shù)據(jù)寫請求,向該交換模塊發(fā)送數(shù)據(jù)寫指令;S230,該交換模塊轉(zhuǎn)發(fā)該數(shù)據(jù)寫指令給該緩存模塊;S240,該緩存模塊根據(jù)該數(shù)據(jù)寫指令,發(fā)送數(shù)據(jù)讀指令給該交換模塊; S250,該交換模塊轉(zhuǎn)發(fā)該數(shù)據(jù)讀指令給該控制模塊;S260,該控制模塊根據(jù)該數(shù)據(jù)讀指令,向該交換模塊發(fā)送該目標數(shù)據(jù);S270,該交換模塊轉(zhuǎn)發(fā)該目標數(shù)據(jù)給該緩存模塊;S280,該緩存模塊保存該目標數(shù)據(jù)。
在本發(fā)明實施例中,控制模塊通過交換模塊與緩存模塊相連接,使在外部設(shè)備進行寫操作時,控制模塊通過交換模塊訪問緩存模塊,而無需對控制模塊的各自緩存數(shù)據(jù)進行同步,減少了控制模塊間的通信時延,從而縮短緩存訪問延遲,提高存儲端的IOPS性能。優(yōu)選的,本發(fā)明實施例中,交換模塊可以基于PCIE總線進行該目標數(shù)據(jù)和該指令的傳遞。利用PCIE總線數(shù)據(jù)傳輸速率高,時延低,以及可以提供DMA方式進行數(shù)據(jù)的搬移的優(yōu)點,進一步提升存儲端的存儲效率,提升IOPS性能。進一步的,在本發(fā)明實施例中,該數(shù)據(jù)存儲系統(tǒng)還可以包括至少一個磁盤模塊,該 至少一個磁盤模塊中的每個磁盤模塊經(jīng)由該至少一個交換模塊中的每個交換模塊而與該至少一個緩存模塊中的每個緩存模塊連接;或該至少一個磁盤模塊中的每個磁盤模塊與該至少一個緩存模塊中的每個緩存模塊直接連接;則該方法還包括該緩存模塊根據(jù)該接收的數(shù)據(jù)寫指令,向該磁盤模塊發(fā)送數(shù)據(jù)同步指令以及該目標數(shù)據(jù);該磁盤模塊根據(jù)該數(shù)據(jù)同步指令,保存該目標數(shù)據(jù)。具體地說,一次寫數(shù)據(jù)操作的方法過程如下,①控制模塊接收外部設(shè)備發(fā)送的數(shù)據(jù)寫請求及目標數(shù)據(jù),向交換模塊發(fā)送數(shù)據(jù)寫指令交換模塊轉(zhuǎn)發(fā)該數(shù)據(jù)寫指令給緩存模塊緩存模塊根據(jù)該數(shù)據(jù)寫指令,發(fā)送數(shù)據(jù)讀指令給交換模塊;④交換模塊轉(zhuǎn)發(fā)該數(shù)據(jù)讀指令給控制模塊;⑤控制模塊根據(jù)該數(shù)據(jù)讀指令,向交換模塊發(fā)送目標數(shù)據(jù);⑥交換模塊轉(zhuǎn)發(fā)該目標數(shù)據(jù)給緩存模塊;⑦緩存模塊保存該目標數(shù)據(jù);⑧緩存模塊向磁盤模塊發(fā)送第一數(shù)據(jù)同步指令及該目標數(shù)據(jù);⑨磁盤模塊可以根據(jù)該第一數(shù)據(jù)同步指令,接收并保存該目標數(shù)據(jù);⑩緩存模塊通過交換模塊向控制模塊發(fā)送數(shù)據(jù)寫確認消息,控制模塊根據(jù)數(shù)據(jù)寫確認消息,向外部設(shè)備發(fā)送數(shù)據(jù)寫響應(yīng)。當(dāng)然,在本發(fā)明實施例中,緩存模塊向磁盤模塊同步目標數(shù)據(jù)的過程(上面的步驟⑧、⑨)可以是在按照前面所述在接收到目標數(shù)據(jù)后立即進行,也可以按規(guī)定的周期,一次性同步在該周期內(nèi)接收的所有目標數(shù)據(jù),此時上述過程中的⑩在步驟⑦之后執(zhí)行。在本發(fā)明實施例中,由于緩存模塊與磁盤模塊之間的數(shù)據(jù)同步操作不通過控制單元控制實施,而是直接由緩存模塊向磁盤模塊發(fā)送數(shù)據(jù)同步指令控制實現(xiàn),因此減少了數(shù)據(jù)交互時延,從而能夠提高存儲端的IOPS性能。進一步的,在本發(fā)明實施例中,為了防止單點故障的發(fā)生,緩存模塊還可以對目標數(shù)據(jù)進行備份操作??梢酝ㄟ^結(jié)構(gòu)與上述緩存模塊相同的另一緩存模塊來保存(備份)目標數(shù)據(jù),也可以通過獨立的備份模塊保存(備份)目標數(shù)據(jù)。因此,可選地,當(dāng)通過結(jié)構(gòu)與上述緩存模塊相同的另一緩存模塊來保存(備份)目標數(shù)據(jù)時,該系統(tǒng)包括至少兩個緩存模塊,該至少兩個緩存模塊中的第一緩存模塊和第二緩存模塊經(jīng)由該至少一個交換模塊中的每個交換模塊而互相連接;則該方法還包括該第一緩存模塊向該交換模塊發(fā)送第一數(shù)據(jù)備份指令及第三目標數(shù)據(jù),該第三目標數(shù)據(jù)是該第一緩存模塊根據(jù)該數(shù)據(jù)寫指令保存的目標數(shù)據(jù);該交換模塊接收該第一數(shù)據(jù)備份指令及所述第三目標數(shù)據(jù),并發(fā)送給該第二緩存模塊;該第二緩存模塊根據(jù)該第一數(shù)據(jù)備份指令保存該第三目標數(shù)據(jù)。
具體地說,起到備份作用的第二緩存模塊可以通過交換模塊而與第一緩存模塊連接。并且,在此情況下,第一緩存模塊與第二緩存模塊可以在主備模式下工作,也可以在負荷分擔(dān)而互相備份的模式下工作。當(dāng)?shù)谝痪彺婺K與第二緩存模塊在主備模式下工作時,該第二緩存模塊對數(shù)據(jù)進行備份的流程如下。即,第二緩存模塊可以通過交換模塊接收第一緩存模塊發(fā)送的數(shù)據(jù)備份指令和目標數(shù)據(jù),并將該目標數(shù)據(jù)存儲在第二緩存模塊的CFS中。當(dāng)?shù)谝痪彺婺K與第二緩存模塊在負荷分擔(dān)而互相備份的模式下工作時,各緩存模塊之間可以互相備份,因此,該緩存模塊包括緩存區(qū) 域和備份區(qū)域;此時,該第一緩存模塊根據(jù)第一數(shù)據(jù)讀寫指令,將該第三目標數(shù)據(jù)保存在該第一緩存模塊的緩存區(qū)域中;該第二緩存模塊根據(jù)該第一數(shù)據(jù)備份指令,通過該交換模塊接收該第三目標數(shù)據(jù),并保存在該第二緩存模塊的備份區(qū)域中。在本發(fā)明實施例中,作為示例性說明而非限定,各緩存模塊的主/備區(qū)域的空間利用率可以各占一半。根據(jù)本發(fā)明實施例,可以適用于使用兩個以上的控制模塊(B卩,兩個以上CPU)的情況,因此,能夠進一步提高數(shù)據(jù)存儲的效率,有利于計算機的性能升級。在本發(fā)明實施例中,由于第一緩存模塊與第二緩存模塊之間的備份操作不經(jīng)由控制單元,而是在第一緩存模塊的控制下通過交換模塊實現(xiàn)的數(shù)據(jù)交互,因此減少了數(shù)據(jù)交互時延,能夠提高存儲端的IOPS性能。當(dāng)通過獨立的備份模塊保存(備份)目標數(shù)據(jù)時,該系統(tǒng)還包括至少一個備份模塊,該至少一個備份模塊中的每個備份模塊分別與該至少一個緩存模塊中一個對應(yīng)的緩存模塊連接;則該方法還包括該對應(yīng)的緩存模塊向該備份模塊發(fā)送第二數(shù)據(jù)備份指令及第四目標數(shù)據(jù);該備份模塊根據(jù)該第二數(shù)據(jù)備份指令接收并保存該第四目標數(shù)據(jù)。具體地說,當(dāng)計算機系統(tǒng)掉電時,緩存模塊由其所連接的該備電單元進行供電,并向該備份模塊發(fā)送第二數(shù)據(jù)備份指令及第四目標數(shù)據(jù),備份模塊根據(jù)該第二數(shù)據(jù)備份指令從緩存模塊接收并保存該第四目標數(shù)據(jù),以防止CFS的數(shù)據(jù)丟棄。當(dāng)系統(tǒng)重新上電后,CFSC從閃存單元把數(shù)據(jù)恢復(fù)到CFS。在本發(fā)明實施例中,與以緩存模塊作為備份模塊的情況相比,減少了 CAB之間的備份過程,從而進一步縮短了數(shù)據(jù)訪問延遲。根據(jù)本發(fā)明實施例數(shù)據(jù)存儲方法,通過使控制模塊通過交換模塊訪問緩存模塊,同一緩存模塊可以被各個控制模塊所訪問,各控制模塊無需對緩存數(shù)據(jù)進行同步,減少了控制模塊間的通信時延,從而能夠縮短緩存訪問延遲,并且由于控制模塊經(jīng)由交換模塊與緩存模塊連接,控制模塊重啟后無需恢復(fù)緩存數(shù)據(jù),從而能夠大幅減少系統(tǒng)啟動時間。根據(jù)本發(fā)明實施例的數(shù)據(jù)存儲方法500的執(zhí)行主體可對應(yīng)于本發(fā)明實施例的數(shù)據(jù)存儲系統(tǒng)100,并且,該數(shù)據(jù)存儲方法500中的各流程和上述其他操作的動作主體分別對應(yīng)圖I至圖4中的系統(tǒng)100的各模塊和單元為了簡潔,在此不再贅述。應(yīng)理解,本文中術(shù)語“和/或”,僅僅是一種描述關(guān)聯(lián)對象的關(guān)聯(lián)關(guān)系,表示可以存在三種關(guān)系,例如,A和/或B,可以表示單獨存在A,同時存在A和B,單獨存在B這三種情況。另外,本文中字符“/”,一般表示前后關(guān)聯(lián)對象是一種“或”的關(guān)系。應(yīng)理解,在本發(fā)明的各種實施例中,上述各過程的序號的大小并不意味著執(zhí)行順序的先后,各過程的執(zhí)行順序應(yīng)以其功能和內(nèi)在邏輯確定,而不應(yīng)對本發(fā)明實施例的實施過程構(gòu)成任何限定。本領(lǐng)域普通技術(shù)人員可以意識到,結(jié)合本文中所公開的實施例描述的各示例的單元及算法步驟,能夠以電子硬件、或者計算機軟件和電子硬件的結(jié)合來實現(xiàn)。這些功能究竟以硬件還是軟件方式來執(zhí)行,取決于技術(shù)方案的特定應(yīng)用和設(shè)計約束條件。專業(yè)技術(shù)人員可以對每個特定的應(yīng)用來使用不同方法來實現(xiàn)所描述的功能,但是這種實現(xiàn)不應(yīng)認為超出本發(fā)明的范圍。所屬領(lǐng)域的技術(shù)人員可以清楚地了解到,為描述的方便和簡潔,上述描述的系統(tǒng)、系統(tǒng)和單元的具體工作過程,可以參考前述方法實施例中的對應(yīng)過程,在此不再贅述。 在本申請所提供的幾個實施例中,應(yīng)該理解到,所揭露的系統(tǒng)、系統(tǒng)和方法,可以通過其它的方式實現(xiàn)。例如,以上所描述的系統(tǒng)實施例僅僅是示意性的,例如,所述單元的劃分,僅僅為一種邏輯功能劃分,實際實現(xiàn)時可以有另外的劃分方式,例如多個單元或組件可以結(jié)合或者可以集成到另一個系統(tǒng),或一些特征可以忽略,或不執(zhí)行。另一點,所顯示或討論的相互之間的耦合或直接連接或通信連接可以是通過一些接口,系統(tǒng)或單元的間接耦合或通信連接,可以是電性,機械或其它的形式。所述作為分離部件說明的單元可以是或者也可以不是物理上分開的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位于一個地方,或者也可以分布到多個網(wǎng)絡(luò)單元上??梢愿鶕?jù)實際的需要選擇其中的部分或者全部單元來實現(xiàn)本實施例方案的目的。另外,在本發(fā)明各個實施例中的各功能單元可以集成在一個處理單元中,也可以是各個單元單獨物理存在,也可以兩個或兩個以上單元集成在一個單元中。所述功能如果以軟件功能單元的形式實現(xiàn)并作為獨立的產(chǎn)品銷售或使用時,可以存儲在一個計算機可讀取存儲介質(zhì)中。基于這樣的理解,本發(fā)明的技術(shù)方案本質(zhì)上或者說對現(xiàn)有技術(shù)做出貢獻的部分或者該技術(shù)方案的部分可以以軟件產(chǎn)品的形式體現(xiàn)出來,該計算機軟件產(chǎn)品存儲在一個存儲介質(zhì)中,包括若干指令用以使得一臺計算機設(shè)備(可以是個人計算機,服務(wù)器,或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行本發(fā)明各個實施例所述方法的全部或部分步驟。而前述的存儲介質(zhì)包括U盤、移動硬盤、只讀存儲器(ROM,Read-Only Memory)、隨機存取存儲器(RAM, Random Access Memory)、磁碟或者光盤等各種可以存儲程序代碼的介質(zhì)。以上所述,僅為本發(fā)明的具體實施方式
,但本發(fā)明的保護范圍并不局限于此,任何熟悉本技術(shù)領(lǐng)域的技術(shù)人員在本發(fā)明揭露的技術(shù)范圍內(nèi),可輕易想到變化或替換,都應(yīng)涵蓋在本發(fā)明的保護范圍之內(nèi)。因此,本發(fā)明的保護范圍應(yīng)以所述權(quán)利要求的保護范圍為準。
權(quán)利要求
1.ー種數(shù)據(jù)存儲系統(tǒng),其特征在于,所述系統(tǒng)包括至少ー個交換模塊、至少兩個控制模塊和至少ー個緩存模塊,所述至少兩個控制模塊中的每個控制模塊經(jīng)由所述至少ー個交換模塊中的每個交換模塊與所述至少ー個緩存模塊中的每個緩存模塊連接; 所述控制模塊,用于接收外部設(shè)備發(fā)送的數(shù)據(jù)寫請求和目標數(shù)據(jù),根據(jù)所述數(shù)據(jù)寫請求向所述交換模塊發(fā)送數(shù)據(jù)寫指令,以及接收所述交換模塊轉(zhuǎn)發(fā)的所述緩存模塊的數(shù)據(jù)讀指令,根據(jù)所述數(shù)據(jù)讀指令向所述交換模塊發(fā)送所述目標數(shù)據(jù); 所述交換模塊,用于接收所述控制模塊發(fā)送的所述數(shù)據(jù)寫指令和所述目標數(shù)據(jù)轉(zhuǎn)發(fā)給所述緩存模塊,以及接收所述緩存模塊發(fā)送的所述數(shù)據(jù)讀指令轉(zhuǎn)發(fā)給所述控制模塊; 所述緩存模塊,用于接收所述交換模塊轉(zhuǎn)發(fā)的所述數(shù)據(jù)寫指令,根據(jù)所述數(shù)據(jù)寫指令發(fā)送所述數(shù)據(jù)讀指令給所述交換模塊,以及接收所述交換模塊轉(zhuǎn)發(fā)的所述目標數(shù)據(jù)并保存。
2.根據(jù)權(quán)利要求I所述的數(shù)據(jù)存儲系統(tǒng),其特征在干, 所述交換模塊基于PCIE總線進行所述目標數(shù)據(jù)和所述指令的傳遞。
3.根據(jù)權(quán)利要求I或2所述的數(shù)據(jù)存儲系統(tǒng),其特征在于,所述系統(tǒng)還包括至少ー個磁盤模塊,所述至少一個磁盤模塊中的每個磁盤模塊經(jīng)由所述至少一個交換模塊中的每個交換模塊而與所述至少ー個緩存模塊中的每個緩存模塊連接,或所述至少一個磁盤模塊中的每個磁盤模塊與所述至少一個緩存模塊中的每個緩存模塊直接連接; 所述緩存模塊還用于根據(jù)所述數(shù)據(jù)寫指令,向所述磁盤模塊發(fā)送數(shù)據(jù)同步指令以及所述目標數(shù)據(jù); 所述磁盤模塊根據(jù)所述數(shù)據(jù)同步指令,接收并保存所述目標數(shù)據(jù)。
4.根據(jù)權(quán)利要求I至3中任一項所述的數(shù)據(jù)存儲系統(tǒng),其特征在于,所述系統(tǒng)包括至少兩個緩存模塊,所述至少兩個緩存模塊中的第一緩存模塊和第二緩存模塊經(jīng)由所述至少一個交換模塊中的每個交換模塊而互相連接;則, 所述第一緩存模塊具體用于向所述交換模塊發(fā)送第一數(shù)據(jù)備份指令及第三目標數(shù)據(jù),所述第三目標數(shù)據(jù)是所述第一緩存模塊根據(jù)所述數(shù)據(jù)寫指令保存的所述目標數(shù)據(jù); 所述交換模塊還用于接收所述第一緩存模塊發(fā)送的所述第一數(shù)據(jù)備份指令及所述第三目標數(shù)據(jù),并發(fā)送給所述第二緩存模塊; 所述第二緩存模塊用于接收所述交換模塊發(fā)送的所述第一數(shù)據(jù)備份指令及所述第三目標數(shù)據(jù),并保存所述第三目標數(shù)據(jù)。
5.根據(jù)權(quán)利要求4所述的數(shù)據(jù)存儲系統(tǒng),其特征在于,所述至少兩個緩存模塊中的每個緩存模塊包括緩存區(qū)域和備份區(qū)域,則 所述第一緩存模塊具體用于將所述第三目標數(shù)據(jù)保存在所述第一緩存模塊的緩存區(qū)域中;以及 所述第二緩存模塊具體用于將所述第三目標數(shù)據(jù)保存在所述第二緩存模塊的備份區(qū)域中。
6.根據(jù)權(quán)利要求I至3中任一項所述的數(shù)據(jù)存儲系統(tǒng),其特征在于,所述系統(tǒng)還包括至少ー個備份模塊,所述至少一個備份模塊中的每個備份模塊分別與所述至少ー個緩存模塊中ー個對應(yīng)的緩存模塊連接;則 所述緩存模塊具體用于向所連接的備份模塊發(fā)送第二數(shù)據(jù)備份指令及第四目標數(shù)據(jù); 所述連接的備份模塊根據(jù)所述第二數(shù)據(jù)備份指令,接收并保存所述第四目標數(shù)據(jù)。
7.ー種數(shù)據(jù)存儲方法,其特征在于,所述方法在包括至少ー個交換模塊、至少兩個控制模塊和至少ー個緩存模塊的數(shù)據(jù)存儲系統(tǒng)執(zhí)行,所述數(shù)據(jù)存儲系統(tǒng)中的所述至少兩個控制模塊中的每個控制模塊經(jīng)由所述至少一個交換模塊中的每個交換模塊與所述至少ー個緩存模塊中的每個緩存模塊連接,所述方法包括 所述控制模塊接收外部設(shè)備發(fā)送的數(shù)據(jù)寫請求以及目標數(shù)據(jù); 所述控制模塊根據(jù)所述數(shù)據(jù)寫請求,向所述交換模塊發(fā)送數(shù)據(jù)寫指令; 所述交換模塊轉(zhuǎn)發(fā)所述數(shù)據(jù)寫指令給所述緩存模塊; 所述緩存模塊根據(jù)所述數(shù)據(jù)寫指令,發(fā)送數(shù)據(jù)讀指令給所述交換模塊; 所述交換模塊轉(zhuǎn)發(fā)所述數(shù)據(jù)讀指令給所述控制模塊; 所述控制模塊根據(jù)所述數(shù)據(jù)讀指令,向所述交換模塊發(fā)送所述目標數(shù)據(jù); 所述交換模塊轉(zhuǎn)發(fā)所述目標數(shù)據(jù)給所述緩存模塊; 所述緩存模塊保存所述目標數(shù)據(jù)。
8.根據(jù)權(quán)利要求7所述的方法,其特征在于,所述交換模塊基于PCIE總線進行所述目標數(shù)據(jù)和所述指令的傳遞。
9.根據(jù)權(quán)利要求7或8所述的方法,其特征在于,所述數(shù)據(jù)存儲系統(tǒng)還包括至少ー個磁盤模塊,所述至少一個磁盤模塊中的每個磁盤模塊經(jīng)由所述至少一個交換模塊中的每個交換模塊而與所述至少ー個緩存模塊中的每個緩存模塊連接;或 所述至少一個磁盤模塊中的每個磁盤模塊與所述至少一個緩存模塊中的每個緩存模塊直接連接; 則所述方法還包括 所述緩存模塊根據(jù)所述數(shù)據(jù)寫指令,向所述磁盤模塊發(fā)送數(shù)據(jù)同步指令以及所述目標數(shù)據(jù); 所述磁盤模塊根據(jù)所述數(shù)據(jù)同步指令,保存所述目標數(shù)據(jù)。
10.根據(jù)權(quán)利要求I至9中任一項所述方法,其特征在于,所述數(shù)據(jù)存儲系統(tǒng)包括至少兩個緩存模塊,所述至少兩個緩存模塊中的第一緩存模塊和第二緩存模塊經(jīng)由所述至少一個交換模塊中的每個交換模塊而互相連接;則所述方法還包括 所述第一緩存模塊向所述交換模塊發(fā)送第一數(shù)據(jù)備份指令及第三目標數(shù)據(jù),所述第三目標數(shù)據(jù)是所述第一緩存模塊根據(jù)所述數(shù)據(jù)寫指令保存的所述目標數(shù)據(jù); 所述交換模塊接收所述第一數(shù)據(jù)備份指令及所述第三目標數(shù)據(jù),并發(fā)送給所述第二緩存模塊; 所述第二緩存模塊根據(jù)所述第一數(shù)據(jù)備份指令保存所述第三目標數(shù)據(jù)。
11.根據(jù)權(quán)利要求10所述的方法,其特征在于,所述至少兩個緩存模塊中的每個緩存模塊包括緩存區(qū)域和備份區(qū)域;所述方法,還包括 所述第一緩存模塊將所述第三目標數(shù)據(jù)保存在所述第一緩存模塊的緩存區(qū)域中; 所述第二緩存模塊將所述第三目標數(shù)據(jù)保存在所述第二緩存模塊的備份區(qū)域中。
12.根據(jù)權(quán)利要求7至9中任一項所述的方法,其特征在于,所述數(shù)據(jù)存儲系統(tǒng)還包括至少ー個備份模塊,所述至少一個備份模塊中的每個備份模塊分別與所述至少ー個緩存模塊中ー個對應(yīng)的緩存模塊連接;則 所述方法還包括 所述緩存模塊向所述備份模塊發(fā)送第二數(shù)據(jù)備份指令及第四目標數(shù)據(jù);所述備份模塊根據(jù)所述第二數(shù)據(jù)備份指令,接收并保存所述第四目標數(shù)據(jù)。
全文摘要
本發(fā)明實施例提供一種數(shù)據(jù)存儲系統(tǒng)和方法,該系統(tǒng)包括至少一個交換模塊、至少兩個控制模塊和至少一個緩存模塊,該至少兩個控制模塊中的每個控制模塊經(jīng)由該至少一個交換模塊中的每個交換模塊與該至少一個緩存模塊中的每個緩存模塊連接;該控制模塊,用于接收外部設(shè)備發(fā)送的數(shù)據(jù)寫請求和目標數(shù)據(jù),根據(jù)該數(shù)據(jù)寫請求向該交換模塊發(fā)送數(shù)據(jù)寫指令,以及接收該交換模塊轉(zhuǎn)發(fā)的該緩存模塊的數(shù)據(jù)讀指令,根據(jù)該數(shù)據(jù)讀指令向該交換模塊發(fā)送該目標數(shù)據(jù);該交換模塊,用于接收該控制模塊發(fā)送的該數(shù)據(jù)寫指令和該目標數(shù)據(jù)轉(zhuǎn)發(fā)給該緩存模塊,以及接收該緩存模塊發(fā)送的該數(shù)據(jù)讀指令轉(zhuǎn)發(fā)給該控制模塊;該緩存模塊,用于接收該交換模塊轉(zhuǎn)發(fā)的該數(shù)據(jù)寫指令,根據(jù)該數(shù)據(jù)寫指令發(fā)送該數(shù)據(jù)讀指令給該交換模塊,以及接收該交換模塊轉(zhuǎn)發(fā)的該目標數(shù)據(jù)并保存。通過交換模塊把至少兩個控制模塊和至少一個緩存模塊全部連接,使多個控制模塊經(jīng)由交換模塊訪問同一緩存模塊,減少了各控制模塊之間的緩存數(shù)據(jù)同步的時間,提高IOPS性能。
文檔編號G06F12/08GK102782661SQ201280000605
公開日2012年11月14日 申請日期2012年5月18日 優(yōu)先權(quán)日2012年5月18日
發(fā)明者蘇德現(xiàn) 申請人:華為技術(shù)有限公司