專利名稱:一種存儲(chǔ)引擎和基于基礎(chǔ)引擎的存儲(chǔ)結(jié)構(gòu)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及計(jì)算機(jī)存儲(chǔ)領(lǐng)域,具體涉及一種存儲(chǔ)引擎和基于基礎(chǔ)引擎的存儲(chǔ)結(jié)構(gòu)。
背景技術(shù):
隨著信息產(chǎn)業(yè)的發(fā)展,數(shù)據(jù)生產(chǎn)率水平的提高,人們對(duì)數(shù)據(jù)依賴性越來(lái)越強(qiáng),從而對(duì)存儲(chǔ)系統(tǒng)提出了更高的要求隨著信息產(chǎn)業(yè)的發(fā)展,數(shù)據(jù)的生產(chǎn)已經(jīng)從科學(xué)計(jì)算等方面產(chǎn)生的TB級(jí)數(shù)據(jù)發(fā)展成多元化的數(shù)據(jù)生產(chǎn)機(jī)制產(chǎn)生的PB、EB級(jí)海量大數(shù)據(jù),因此存儲(chǔ)系統(tǒng)需要能夠存儲(chǔ)更海量的數(shù)據(jù);隨著社會(huì)的發(fā)展,數(shù)據(jù)存儲(chǔ)的可靠性將越來(lái)越關(guān)系到國(guó)計(jì)民生,因此對(duì)存儲(chǔ)系統(tǒng)的可靠性提出了要求;隨著數(shù)據(jù)量的指數(shù)級(jí)增長(zhǎng),存儲(chǔ)系統(tǒng)的擴(kuò)容是必然要面對(duì)的問(wèn)題,這對(duì)于現(xiàn)有的存儲(chǔ)系統(tǒng)來(lái)說(shuō)是一個(gè)極大的挑戰(zhàn)。另一方面,在數(shù)據(jù)中心中,存儲(chǔ)系統(tǒng)需要支撐多樣不同的應(yīng)用。多應(yīng)用對(duì)應(yīng)于同一數(shù)據(jù)實(shí)體。應(yīng)用的多樣性體現(xiàn)在數(shù)據(jù)訪問(wèn)具有不確定性、數(shù)據(jù)具有時(shí)效性、空間性等特征,這些特征需要能夠動(dòng)態(tài)的對(duì)存儲(chǔ)資源進(jìn)行有效的調(diào)整。現(xiàn)有的存 儲(chǔ)引擎根據(jù)需要選擇有相應(yīng)功能的模塊,如在需要一個(gè)IO處理器(IOP)時(shí)則選擇一個(gè)Ι0Ρ,需要兩個(gè)IOP時(shí)則選擇兩個(gè)Ι0Ρ,每個(gè)IOP所實(shí)現(xiàn)的功能都是一樣的,即所有的IOP都是對(duì)稱的。且因?yàn)楝F(xiàn)有的存儲(chǔ)引擎都是根據(jù)需要選擇相應(yīng)功能的模塊進(jìn)行設(shè)計(jì),所以沒(méi)有固定的結(jié)構(gòu),擴(kuò)展性很差。綜上所述,基于現(xiàn)有的存儲(chǔ)引擎無(wú)法實(shí)現(xiàn)能夠滿足上述要求的存儲(chǔ)系統(tǒng)。
發(fā)明內(nèi)容
有待于此,本發(fā)明要解決的技術(shù)問(wèn)題是提供一種基礎(chǔ)引擎,以提高現(xiàn)有存儲(chǔ)引擎的性能和擴(kuò)展性。為了解決上述問(wèn)題,采用如下技術(shù)方案一種存儲(chǔ)引擎,包括第一 IOP和第二 Ι0Ρ、磁盤(pán)互連接口、存儲(chǔ)引擎互連接口和管理接口,所述第一 IOP通過(guò)所述磁盤(pán)互連接口及外部交換模塊與至少一個(gè)磁盤(pán)相連,所述第二 IOP與所述外部交換模塊相連,其中所述存儲(chǔ)引擎互連接口設(shè)置成通過(guò)外部交換模塊與其他的存儲(chǔ)引擎相連;所述管理接口設(shè)置成將該存儲(chǔ)引擎與外部管理模塊相連;所述第一 IOP設(shè)置成通過(guò)所述服務(wù)接口讀寫(xiě)所述服務(wù)器;通過(guò)所述磁盤(pán)互連接口與所述外部交換模塊讀寫(xiě)至少一個(gè)所述磁盤(pán);所述第二 IOP設(shè)置成存儲(chǔ)對(duì)共用所述外部交換模塊的所有存儲(chǔ)引擎的所有磁盤(pán)做RAID形成的RAID元數(shù)據(jù) ,并接收所述外部管理模塊的指令,對(duì)RAID元數(shù)據(jù)進(jìn)行更新;存儲(chǔ)與該存儲(chǔ)引擎互連的所有存儲(chǔ)引擎的所有磁盤(pán)的鏡像,并向所述外部管理模塊上報(bào)其所在的存儲(chǔ)引擎的運(yùn)行狀態(tài)及負(fù)載情況,根據(jù)所述外部管理模塊下發(fā)的接替工作的指令,利用其所存儲(chǔ)的磁盤(pán)鏡像接替相應(yīng)的存儲(chǔ)引擎的工作;當(dāng)所述第二 IOP所在的存儲(chǔ)引擎啟動(dòng)時(shí)隨機(jī)生成存儲(chǔ)引擎ID標(biāo)識(shí)并保存該ID標(biāo)識(shí);當(dāng)接收到所述外部管理模塊發(fā)送的包含存儲(chǔ)引擎ID標(biāo)識(shí)及要讀寫(xiě)的磁盤(pán)信息的獨(dú)占讀寫(xiě)指令后,判斷該獨(dú)占讀寫(xiě)指令中包含的存儲(chǔ)引擎ID標(biāo)識(shí)與自身的存儲(chǔ)引擎ID標(biāo)識(shí)是否一致,若一致,則向相應(yīng)的磁盤(pán)執(zhí)行該獨(dú)占讀與??蛇x地,所述RAID元數(shù)據(jù)包括相應(yīng)RAID所包含的磁盤(pán)、條帶信息、RAID狀態(tài)和副
本信息。本發(fā)明要解決的另外一個(gè)技術(shù)問(wèn)題是提供一種基于基礎(chǔ)引擎的存儲(chǔ)結(jié)構(gòu),以滿足信息產(chǎn)業(yè)的發(fā)展對(duì)存儲(chǔ)引擎的要求。為解決該技術(shù)問(wèn)題,采用如下技術(shù)方案一種存儲(chǔ)結(jié)構(gòu),包括多個(gè)存儲(chǔ)引擎組,共享一個(gè)交換模塊的至少兩個(gè)如權(quán)利要求1或2所述的存儲(chǔ)引擎構(gòu)成一個(gè)存儲(chǔ)引擎組,該存儲(chǔ)結(jié)構(gòu)還包括管理模塊,其中所述交換模塊設(shè)置成實(shí)現(xiàn)共用該交換模塊的存儲(chǔ)引擎之間的數(shù)據(jù)交換;所述管理模塊設(shè)置成控制存儲(chǔ)引擎組中所有的磁盤(pán)在某一時(shí)刻由一個(gè)存儲(chǔ)引擎獨(dú)占讀寫(xiě);根據(jù)存儲(chǔ)引擎組中所有存儲(chǔ)引擎的負(fù)載情況調(diào)整主管讀寫(xiě)的存儲(chǔ)引擎;通過(guò)存儲(chǔ)引擎組中所有存儲(chǔ)引擎的存儲(chǔ)情況調(diào)整數(shù)據(jù)的存放位置;接收存儲(chǔ)引擎上報(bào)的運(yùn)行狀態(tài)及負(fù)載情況,當(dāng)存儲(chǔ)引擎組中某一存儲(chǔ)引擎失效后,根據(jù)存儲(chǔ)引擎上報(bào)的運(yùn)行狀態(tài)及負(fù)載情況確定用于接替工作的存儲(chǔ)引擎,并向相應(yīng)的存儲(chǔ)引擎發(fā)送接替工作的指令;當(dāng)存儲(chǔ)引擎組中某一存儲(chǔ)引擎的RAID更新時(shí),通知該存儲(chǔ)引擎組中其他存儲(chǔ)引擎更新相應(yīng)的RAID元數(shù)據(jù)??蛇x地,控制存儲(chǔ)引擎組中所有的磁盤(pán)在某一時(shí)刻由一個(gè)存儲(chǔ)引擎獨(dú)占讀寫(xiě)從存儲(chǔ)引擎組中選擇在某一時(shí)刻對(duì)與該存儲(chǔ)引擎組相應(yīng)的所有磁盤(pán)中某一磁盤(pán)進(jìn)行獨(dú)占讀寫(xiě)的存儲(chǔ)引擎,并向該存儲(chǔ)引擎發(fā)送獨(dú)占讀寫(xiě)指令,所述獨(dú)占讀寫(xiě)指令中包含該存儲(chǔ)引擎ID標(biāo)識(shí)及要讀寫(xiě)的磁盤(pán)信息??蛇x地,所述管理模塊設(shè)置成按照以下方式根據(jù)存儲(chǔ)引擎組中所有存儲(chǔ)引擎的負(fù)載情況調(diào)整主管讀寫(xiě)的存儲(chǔ)引擎若該存儲(chǔ)引擎組中當(dāng)前正在讀寫(xiě)某一磁盤(pán)的存儲(chǔ)引擎有新的讀寫(xiě)任務(wù),且該存儲(chǔ)引擎組中有空閑的存儲(chǔ)引擎時(shí),由該空閑的存儲(chǔ)引擎代替有新的讀寫(xiě)任務(wù)的存儲(chǔ)引擎執(zhí)行當(dāng)前讀寫(xiě)任務(wù)??蛇x地,所述管理模塊設(shè)置成按照以下方式通過(guò)存儲(chǔ)引擎組中所有存儲(chǔ)引擎的存儲(chǔ)情況調(diào)整數(shù)據(jù)的存放位置根據(jù)讀寫(xiě)熱點(diǎn)、該存儲(chǔ)引擎組中所有存儲(chǔ)引擎的分布情況動(dòng)態(tài)調(diào)整數(shù)據(jù)的存放位置??蛇x地,用于接替工作的存儲(chǔ)引擎與失效的存儲(chǔ)引擎處于同一存儲(chǔ)引擎組??蛇x地,一個(gè)存儲(chǔ)引擎組中的每個(gè)存儲(chǔ)引擎與至少一個(gè)磁盤(pán)相連,與一個(gè)存儲(chǔ)引擎組中的所有存儲(chǔ)引擎相連的所有磁盤(pán)存放在磁盤(pán)柜中。本發(fā)明實(shí)施例中的存儲(chǔ)引擎擴(kuò)展性好,且因?yàn)椴捎梅菍?duì)稱設(shè)計(jì),存儲(chǔ)效率高,性能好。由該存儲(chǔ)引擎形成的存儲(chǔ)結(jié)構(gòu)能夠?qū)崿F(xiàn)對(duì)海量數(shù)據(jù)的存儲(chǔ),且能夠?qū)崿F(xiàn)全局訪問(wèn),且數(shù)據(jù)存儲(chǔ)的可靠性和安全性強(qiáng)。
圖1為本發(fā)明實(shí)施例的存儲(chǔ)引擎示意圖;圖2為本發(fā)明實(shí)施例的基于存儲(chǔ)引擎的存儲(chǔ)結(jié)構(gòu)示意圖;圖3為本發(fā)明實(shí)施例的存儲(chǔ)引擎的實(shí)例。
具體實(shí)施例方式下面將結(jié)合附圖及實(shí)施例對(duì)本發(fā)明的技術(shù)方案進(jìn)行更詳細(xì)的說(shuō)明。需要說(shuō)明的是,如果不沖突,本發(fā)明實(shí)施例以及實(shí)施例中的各個(gè)特征可以相互結(jié)合,均在本發(fā)明的保護(hù)范圍之內(nèi)。另外,雖然在流程圖中示出了邏輯順序,但是在某些情況下,可以以不同于此處的順序執(zhí)行 所示出或描述的步驟。本發(fā)明實(shí)施例的一種存儲(chǔ)引擎,如圖1所示,包括兩個(gè)IO處理器(IOP)—第一IOP和第二 Ι0Ρ、服務(wù)接口、磁盤(pán)互連接口、存儲(chǔ)引擎互連接口和管理接口,其中兩個(gè)IOP采取非對(duì)稱設(shè)計(jì),其中所述第一 IOP主要負(fù)責(zé)IO處理,所述第二 IOP主要進(jìn)行IO處理中的數(shù)據(jù)管理,所述第一 IOP和所述第二 IOP通過(guò)內(nèi)部總線互連,這種非對(duì)稱設(shè)計(jì)使得存儲(chǔ)引擎的性能顯著提高,因?yàn)樗龅谝?IOP只負(fù)責(zé)IO處理,包括對(duì)內(nèi)的IO處理和對(duì)外的IO處理,而所述第二 IOP主要負(fù)責(zé)IO處理中的數(shù)據(jù)管理。所述第一 IOP通過(guò)所述服務(wù)接口與外部服務(wù)器相連,所述第一 IOP還通過(guò)所述磁盤(pán)互連接口及外部交換模塊與至少一個(gè)磁盤(pán)相連。所述第一 IOP設(shè)置成通過(guò)所述服務(wù)接口讀寫(xiě)所述服務(wù)器;通過(guò)所述磁盤(pán)互連接口與所述交換模塊讀寫(xiě)至少一個(gè)所述磁盤(pán)。所述服務(wù)接口采用多協(xié)議整合芯片,可根據(jù)需要支持IP協(xié)議或者FC協(xié)議??蛇x地,所述第一 IOP與磁盤(pán)之間的互連采用標(biāo)準(zhǔn)的串行連接小型計(jì)算機(jī)系統(tǒng)接口(SAS, Serial Attached SCSI)互連機(jī)制。所述第二 Ι0Ρ,通過(guò)與外部交換模塊相連以實(shí)現(xiàn)存儲(chǔ)引擎間的互聯(lián)。通過(guò)實(shí)現(xiàn)存儲(chǔ)引擎之間的高速互連交換,以實(shí)現(xiàn)管理、RAID同步等模塊的跨存儲(chǔ)引擎操作。其中,所述存儲(chǔ)引擎互連接口為專用網(wǎng)絡(luò)。所述第二 IOP設(shè)置成存儲(chǔ)對(duì)共用所述外部交換模塊的所有存儲(chǔ)引擎的所有磁盤(pán)做RAID形成的RAID元數(shù)據(jù),并接收所述外部管理模塊的指令,對(duì)RAID元數(shù)據(jù)進(jìn)行更新;存儲(chǔ)與該存儲(chǔ)引擎互連的所有存儲(chǔ)引擎的所有磁盤(pán)的鏡像,并向所述外部管理模塊上報(bào)其所在的存儲(chǔ)引擎的運(yùn)行狀態(tài)及負(fù)載情況,根據(jù)所述外部管理模塊下發(fā)的接替工作的指令,利用其所存儲(chǔ)的磁盤(pán)鏡像接替相應(yīng)的存儲(chǔ)引擎的工作;當(dāng)所述第二 IOP所在的存儲(chǔ)引擎啟動(dòng)時(shí)隨機(jī)生成存儲(chǔ)引擎ID標(biāo)識(shí)并保存該ID標(biāo)識(shí);當(dāng)接收到所述外部管理模塊發(fā)送的包含存儲(chǔ)引擎ID標(biāo)識(shí)及要讀寫(xiě)的磁盤(pán)信息的獨(dú)占讀寫(xiě)指令后,判斷該獨(dú)占讀寫(xiě)指令中包含的存儲(chǔ)引擎ID標(biāo)識(shí)與自身的存儲(chǔ)引擎ID標(biāo)識(shí)是否一致,若一致,則向相應(yīng)的磁盤(pán)執(zhí)行該獨(dú)占讀與。所述RAID元數(shù)據(jù)包括相應(yīng)RAID所包含的磁盤(pán)、條帶信息、RAID狀態(tài)、副本等方面的信息,只有在創(chuàng)建和設(shè)置時(shí)才變更。RAID元數(shù)據(jù)是用于描述RAID具體組織方式的數(shù)據(jù),包括一個(gè)RAID由哪些磁盤(pán)組成,每個(gè)數(shù)據(jù)塊的數(shù)據(jù)之間的校驗(yàn)關(guān)系等信息,只有RAID元數(shù)據(jù)在每個(gè)存儲(chǔ)引擎中都是同步的才能保重系統(tǒng)能正常訪問(wèn)數(shù)據(jù)。
因?yàn)樽隽薘AID,共享一個(gè)交換模塊的所有存儲(chǔ)引擎構(gòu)成,因?yàn)橐粋€(gè)存儲(chǔ)引擎與至少一個(gè)磁盤(pán)相連,與一個(gè)存儲(chǔ)引擎組中的所有存儲(chǔ)引擎相連的所有磁盤(pán)組成一個(gè)磁盤(pán)組,一個(gè)存儲(chǔ)引擎組與一個(gè)磁盤(pán)組對(duì)應(yīng)。存儲(chǔ)引擎組中的任何一個(gè)存儲(chǔ)引擎都能夠訪問(wèn)與其相對(duì)應(yīng)的一組磁盤(pán)中的任意一個(gè),而不能直接訪問(wèn)跨組的磁盤(pán)。當(dāng)需要訪問(wèn)跨組的某個(gè)磁盤(pán)時(shí),需要向管理該磁盤(pán)的存儲(chǔ)引擎發(fā)送訪問(wèn)請(qǐng)求,這樣就可以實(shí)現(xiàn)磁盤(pán)的全局訪問(wèn)。可選地,磁盤(pán)鏡像可以根據(jù)可靠性的性能配置成一致性磁盤(pán)鏡像和非一致性磁盤(pán)鏡像,是存儲(chǔ)結(jié)構(gòu)中的可選配置。一致性磁盤(pán)鏡像采用事務(wù)機(jī)制處理,確保副本與RAID中的數(shù)據(jù)在每個(gè)訪問(wèn)時(shí)刻均一致。非一致性磁盤(pán)鏡像通過(guò)異步復(fù)制產(chǎn)生,僅能夠保證數(shù)據(jù)的最終一致性。RAID與磁盤(pán)鏡像相結(jié)合的市局分布方式增強(qiáng)了存儲(chǔ)結(jié)構(gòu)的可靠性。所述存儲(chǔ)引擎互連接口設(shè)置成通過(guò)外部交換模塊與其他的存儲(chǔ)引擎相連;所述管理接口設(shè)置成將該存儲(chǔ)引擎與外部管理模塊相連??蛇x地,所述存儲(chǔ)引擎還包括超級(jí)IO和BMC模塊(圖中未示出),所述超級(jí)IO和所述BMC模塊的結(jié)構(gòu)和功能屬于現(xiàn)有技術(shù),在此不再贅述。所述存儲(chǔ)引擎還包括校驗(yàn)加速芯片,所述校驗(yàn)加速芯片與所述第二 IOP相連,設(shè)置成通過(guò)硬件實(shí)現(xiàn)數(shù)據(jù)校驗(yàn)算法,實(shí)現(xiàn)數(shù)據(jù)可靠性的加速處理,其結(jié)構(gòu)和功能屬于現(xiàn)有技術(shù),在此不再贅述。本發(fā)明實(shí)施例的一種基于存儲(chǔ)引擎的存儲(chǔ)結(jié)構(gòu),如圖2所示,包括多個(gè)存儲(chǔ)引擎組,共享一個(gè)交換模塊的至少兩個(gè)如上所述的存儲(chǔ)引擎構(gòu)成一個(gè)存儲(chǔ)引擎組,其中,該存儲(chǔ)結(jié)構(gòu)還包括管理模塊。所述交換模塊設(shè)置成實(shí)現(xiàn)共用該交換模塊的存儲(chǔ)引擎之間的數(shù)據(jù)交換;所述管理模塊設(shè)置成控制存儲(chǔ)引擎組中所有的磁盤(pán)在某一時(shí)刻由一個(gè)存儲(chǔ)引擎獨(dú)占讀寫(xiě);根據(jù)存儲(chǔ)引擎組中所有存儲(chǔ)引擎的負(fù)載情況調(diào)整主管讀寫(xiě)的存儲(chǔ)引擎;通過(guò)存儲(chǔ)引擎組中所有存儲(chǔ)引擎的存儲(chǔ)情況調(diào)整數(shù)據(jù)的存放位置;接收存儲(chǔ)引擎上報(bào)的運(yùn)行狀態(tài)及負(fù)載情況,當(dāng)存儲(chǔ)引擎組中某一存儲(chǔ)引擎失效后,根據(jù)存儲(chǔ)引擎上報(bào)的運(yùn)行狀態(tài)及負(fù)載情況確定用于接替工作的存儲(chǔ)引擎,并向相應(yīng)的存儲(chǔ)引擎發(fā)送接替工作的指令;當(dāng)存儲(chǔ)引擎組中某一存儲(chǔ)引擎的RAID更新時(shí),通知該存儲(chǔ)引擎組中其他存儲(chǔ)引擎更新相應(yīng)的RAID元數(shù)據(jù)??蛇x地,控制存儲(chǔ)引擎組中所有的磁盤(pán)在某一時(shí)刻由一個(gè)存儲(chǔ)引擎獨(dú)占讀寫(xiě)從存儲(chǔ)引擎組中選擇在某一時(shí)刻對(duì)與該存儲(chǔ)引擎組相應(yīng)的所有磁盤(pán)中某一磁盤(pán)進(jìn)行獨(dú)占讀寫(xiě)的存儲(chǔ)引擎,并向該存儲(chǔ)引擎發(fā)送獨(dú)占讀寫(xiě)指令,所述獨(dú)占讀寫(xiě)指令中包含該存儲(chǔ)引擎ID標(biāo)識(shí)及要讀寫(xiě)的磁盤(pán)信息??蛇x地,所述管理模塊設(shè)置成按照以下方式根據(jù)存儲(chǔ)引擎組中所有存儲(chǔ)引擎的負(fù)載情況調(diào)整主管讀寫(xiě)的存儲(chǔ)引擎若該存儲(chǔ)引擎組中當(dāng)前正在讀寫(xiě)某一磁盤(pán)的存儲(chǔ)引擎有新的讀寫(xiě)任務(wù),且該存儲(chǔ)引擎組中有空閑的存儲(chǔ)引擎時(shí),由該空閑的存儲(chǔ)引擎代替有新的讀寫(xiě)任務(wù)的存儲(chǔ)引擎執(zhí)行當(dāng)前讀寫(xiě)任務(wù)??蛇x地,所述管理模塊設(shè)置成按照以下方式通過(guò)存儲(chǔ)引擎組中所有存儲(chǔ)引擎的存儲(chǔ)情況調(diào)整數(shù)據(jù)的存放位置根據(jù)讀寫(xiě)熱點(diǎn)、該存儲(chǔ)引擎組中所有存儲(chǔ)引擎的分布情況動(dòng)態(tài)調(diào)整數(shù)據(jù)的存放位置。可選地,用于接替工作的存儲(chǔ)引擎與失效的存儲(chǔ)引擎處于同一存儲(chǔ)引擎組。因?yàn)橐粋€(gè)存儲(chǔ)引擎與至少一個(gè)磁盤(pán)相連,與一個(gè)存儲(chǔ)引擎組中的所有存儲(chǔ)引擎相連的所有磁盤(pán)組成一個(gè)磁盤(pán)組,一個(gè)存儲(chǔ)引擎組與一個(gè)磁盤(pán)組對(duì)應(yīng)。磁盤(pán)存放在磁盤(pán)柜中。對(duì)一個(gè)存儲(chǔ)引擎組做RAID,形成相應(yīng)的RAID元數(shù)據(jù),在該組中的所有存儲(chǔ)引擎中存儲(chǔ)相應(yīng)的RAID元數(shù)據(jù)。每一個(gè)存儲(chǔ)引擎組能夠訪問(wèn)相應(yīng)的一個(gè)磁盤(pán)組,但不能直接訪問(wèn)跨組的磁盤(pán)。當(dāng)需要訪問(wèn)跨組的某個(gè)磁盤(pán)時(shí),需要向管理這個(gè)磁盤(pán)的存儲(chǔ)引擎發(fā)送訪問(wèn)請(qǐng)求,這樣就能實(shí)現(xiàn)磁盤(pán)的全局訪問(wèn)。所有的磁盤(pán)在某一時(shí)刻由一個(gè)存儲(chǔ)引擎獨(dú)占讀寫(xiě),其它不能直接讀寫(xiě)磁盤(pán)的存儲(chǔ)引擎可以通過(guò)所述存儲(chǔ)引擎互連接口訪問(wèn)該磁盤(pán),因此,所有的存儲(chǔ)引擎均能夠訪問(wèn)到存儲(chǔ)結(jié)構(gòu)中所有的磁盤(pán),只要一個(gè)存儲(chǔ)引擎組中有一個(gè)存儲(chǔ)引擎能夠正常工作就可以保證磁盤(pán)中的數(shù)據(jù)被訪問(wèn)到。在結(jié)構(gòu)部署時(shí)可以根據(jù)可靠性的要求,對(duì)存儲(chǔ)引擎進(jìn)行劃組??紤]到讀寫(xiě)同步機(jī)制,每一個(gè)存儲(chǔ)引擎組保持在2-4個(gè)存儲(chǔ)引擎,即2-4個(gè)存儲(chǔ)引擎共用一個(gè)交換模塊。由2到4個(gè)存儲(chǔ)引擎組成一個(gè)存儲(chǔ)引擎組共同管理一組磁盤(pán),每個(gè)存儲(chǔ)引擎組可管理磁盤(pán)數(shù)超過(guò)90個(gè)。存儲(chǔ)引擎之間通過(guò)交換模塊實(shí)現(xiàn)互訪,采用這種交換式架構(gòu)的優(yōu)點(diǎn)是降低了布線難度并通過(guò)互連引擎的容錯(cuò)機(jī)制增加了存儲(chǔ)系統(tǒng)的可靠性。每個(gè)存儲(chǔ)引擎都可以作為其他存儲(chǔ)引擎的冗余存儲(chǔ)引擎,當(dāng)一個(gè)存儲(chǔ)引擎出現(xiàn)問(wèn)題時(shí),其他的存儲(chǔ)引擎能夠接替工作,進(jìn)而使得存儲(chǔ)結(jié)構(gòu)仍能正常提供服務(wù)。并且所有的存儲(chǔ)引擎都可以并行使用增大通信帶寬。下面用本發(fā)明的一個(gè)應(yīng)用示例進(jìn)一步加以說(shuō)明。如圖3所示為本發(fā)明實(shí)施例的存儲(chǔ)引擎的實(shí)例,該圖中,小型千兆位接口轉(zhuǎn)換器(GBIC) —SFP為服務(wù)接口、一般與前端服務(wù)器相連,用于讀寫(xiě)前端服務(wù)器;MiniSAS為磁盤(pán)互連接口,用于讀寫(xiě)磁盤(pán);RJ45為管理接口 ;專用網(wǎng)絡(luò)用于實(shí)現(xiàn)存儲(chǔ)引擎互連;左邊的IOP用戶負(fù)責(zé)IO處理,讀寫(xiě)前端服務(wù)器和讀寫(xiě)磁盤(pán),其余的工作由右邊的IOP來(lái)完成。除了本發(fā)明實(shí)施例中介紹的模塊外,圖中其他的模塊和功能屬于現(xiàn)有技術(shù),在此不再贅述。本領(lǐng)域普通技術(shù)人員可以理解上述方法中的全部或部分步驟可通過(guò)程序來(lái)指令相關(guān)硬件完成,所述程序可以存儲(chǔ)于計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)中,如只讀存儲(chǔ)器、磁盤(pán)或光盤(pán)等??蛇x地,上述實(shí)施例的全部或部分步驟也可以使用一個(gè)或多個(gè)集成電路來(lái)實(shí)現(xiàn)。相應(yīng)地,上述實(shí)施例中的各模塊/單元可以采用硬件的形式實(shí)現(xiàn),也可以采用軟件功能模塊的形式實(shí)現(xiàn)。本發(fā)明不限制于任何特定形式的硬件和軟件的結(jié)合。當(dāng)然,本發(fā)明還可有其他多種實(shí)施例,在不背離本發(fā)明精神及其實(shí)質(zhì)的情況下,熟悉本領(lǐng)域的技術(shù)人員當(dāng)可根據(jù)本發(fā)明作出各種相應(yīng)的改變和變形,但這些相應(yīng)的改變和變形都應(yīng)屬于本發(fā)明的權(quán)利要求的保護(hù)范圍。
權(quán)利要求
1.一種存儲(chǔ)引擎,其特征在于,包括第一 IOP和第二 Ι0Ρ、磁盤(pán)互連接口、存儲(chǔ)引擎互連接口和管理接口,所述第一 IOP通過(guò)所述磁盤(pán)互連接口及外部交換模塊與至少一個(gè)磁盤(pán)相連,所述第二 IOP與所述外部交換模塊相連,其中 所述存儲(chǔ)引擎互連接口設(shè)置成通過(guò)外部交換模塊與其他的存儲(chǔ)引擎相連; 所述管理接口設(shè)置成將該存儲(chǔ)引擎與外部管理模塊相連; 所述第一 IOP設(shè)置成通過(guò)所述服務(wù)接口讀寫(xiě)所述服務(wù)器;通過(guò)所述磁盤(pán)互連接口與所述外部交換模塊讀寫(xiě)至少一個(gè)所述磁盤(pán); 所述第二 IOP設(shè)置成存儲(chǔ)對(duì)共用所述外部交換模塊的所有存儲(chǔ)引擎的所有磁盤(pán)做RAID形成的RAID元數(shù)據(jù),并接收所述外部管理模塊的指令,對(duì)RAID元數(shù)據(jù)進(jìn)行更新;存儲(chǔ)與該存儲(chǔ)引擎互連的所有存儲(chǔ)引擎的所有磁盤(pán)的鏡像,并向所述外部管理模塊上報(bào)其所在的存儲(chǔ)引擎的運(yùn)行狀態(tài)及負(fù)載情況,根據(jù)所述外部管理模塊下發(fā)的接替工作的指令,利用其所存儲(chǔ)的磁盤(pán)鏡像接替相應(yīng)的存儲(chǔ)引擎的工作;當(dāng)所述第二 IOP所在的存儲(chǔ)引擎啟動(dòng)時(shí)隨機(jī)生成存儲(chǔ)引擎ID標(biāo)識(shí)并保存該ID標(biāo)識(shí);當(dāng)接收到所述外部管理模塊發(fā)送的包含存儲(chǔ)引擎ID標(biāo)識(shí)及要讀寫(xiě)的磁盤(pán)信息的獨(dú)占讀寫(xiě)指令后,判斷該獨(dú)占讀寫(xiě)指令中包含的存儲(chǔ)引擎ID標(biāo)識(shí)與自身的存儲(chǔ)引擎ID標(biāo)識(shí)是否一致,若一致,則向相應(yīng)的磁盤(pán)執(zhí)行該獨(dú)占讀與。
2.如權(quán)利要求1所述的存儲(chǔ)引擎,其特征在于,所述RAID元數(shù)據(jù)包括相應(yīng)RAID所包含的磁盤(pán)、條帶信息、RAID狀態(tài)和副本信息。
3.一種存儲(chǔ)結(jié)構(gòu),其特征在于,包括多個(gè)存儲(chǔ)引擎組,共享一個(gè)交換模塊的至少兩個(gè)如權(quán)利要求1或2所述的存儲(chǔ)引擎構(gòu)成一個(gè)存儲(chǔ)引擎組,該存儲(chǔ)結(jié)構(gòu)還包括管理模塊,其中 所述交換模塊設(shè)置成實(shí)現(xiàn)共用該交換模塊的存儲(chǔ)引擎之間的數(shù)據(jù)交換; 所述管理模塊設(shè)置成控制存儲(chǔ)引擎組中所有的磁盤(pán)在某一時(shí)刻由一個(gè)存儲(chǔ)引擎獨(dú)占讀寫(xiě);根據(jù)存儲(chǔ)引擎組中所有存儲(chǔ)引擎的負(fù)載情況調(diào)整主管讀寫(xiě)的存儲(chǔ)引擎;通過(guò)存儲(chǔ)引擎組中所有存儲(chǔ)引擎的存儲(chǔ)情況調(diào)整數(shù)據(jù)的存放位置;接收存儲(chǔ)引擎上報(bào)的運(yùn)行狀態(tài)及負(fù)載情況,當(dāng)存儲(chǔ)引擎組中某一存儲(chǔ)引擎失效后,根據(jù)存儲(chǔ)引擎上報(bào)的運(yùn)行狀態(tài)及負(fù)載情況確定用于接替工作的存儲(chǔ)引擎,并向相應(yīng)的存儲(chǔ)引擎發(fā)送接替工作的指令;當(dāng)存儲(chǔ)引擎組中某一存儲(chǔ)引擎的RAID更新時(shí),通知該存儲(chǔ)引擎組中其他存儲(chǔ)引擎更新相應(yīng)的RAID元數(shù)據(jù)。
4.如權(quán)利要求3所述的存儲(chǔ)結(jié)構(gòu),其特征在于,控制存儲(chǔ)引擎組中所有的磁盤(pán)在某一時(shí)刻由一個(gè)存儲(chǔ)引擎獨(dú)占讀寫(xiě) 從存儲(chǔ)引擎組中選擇在某一時(shí)刻對(duì)與該存儲(chǔ)引擎組相應(yīng)的所有磁盤(pán)中某一磁盤(pán)進(jìn)行獨(dú)占讀寫(xiě)的存儲(chǔ)引擎,并向該存儲(chǔ)引擎發(fā)送獨(dú)占讀寫(xiě)指令,所述獨(dú)占讀寫(xiě)指令中包含該存儲(chǔ)引擎ID標(biāo)識(shí)及要讀寫(xiě)的磁盤(pán)信息。
5.如權(quán)利要求3所述的存儲(chǔ)結(jié)構(gòu),其特征在于,所述管理模塊設(shè)置成按照以下方式根據(jù)存儲(chǔ)引擎組中所有存儲(chǔ)引擎的負(fù)載情況調(diào)整主管讀寫(xiě)的存儲(chǔ)引擎 若該存儲(chǔ)引擎組中當(dāng)前正在讀寫(xiě)某一磁盤(pán)的存儲(chǔ)引擎有新的讀寫(xiě)任務(wù),且該存儲(chǔ)引擎組中有空閑的存儲(chǔ)引擎時(shí),由該空閑的存儲(chǔ)引擎代替有新的讀寫(xiě)任務(wù)的存儲(chǔ)引擎執(zhí)行當(dāng)前讀寫(xiě)任務(wù)。
6.如權(quán)利要求3所述的存儲(chǔ)結(jié)構(gòu),其特征在于,所述管理模塊設(shè)置成按照以下方式通過(guò)存儲(chǔ)引擎組中所有存儲(chǔ)引擎的存儲(chǔ)情況調(diào)整數(shù)據(jù)的存放位置 根據(jù)讀寫(xiě)熱點(diǎn)、該存儲(chǔ)引擎組中所有存儲(chǔ)引擎的分布情況動(dòng)態(tài)調(diào)整數(shù)據(jù)的存放位置。
7.如權(quán)利要求3所述的存儲(chǔ)結(jié)構(gòu),其特征在于,用于接替工作的存儲(chǔ)引擎與失效的存儲(chǔ)引擎處于同一存儲(chǔ)引擎組。
8.如權(quán)利要求3所述的存儲(chǔ)結(jié)構(gòu),其特征在于,一個(gè)存儲(chǔ)引擎組中的每個(gè)存儲(chǔ)引擎與至少一個(gè)磁盤(pán)相連,與一個(gè)存儲(chǔ)引擎組中的所有存儲(chǔ)引擎相連的所有磁盤(pán)存放在磁盤(pán)柜中。
全文摘要
一種存儲(chǔ)引擎和一種存儲(chǔ)結(jié)構(gòu),該存儲(chǔ)引擎包括第一IOP和第二IOP、磁盤(pán)互連接口、存儲(chǔ)引擎互連接口和管理接口,所述第一IOP通過(guò)所述磁盤(pán)互連接口及外部交換模塊與至少一個(gè)磁盤(pán)相連,所述第二IOP與所述外部交換模塊相連。本發(fā)明實(shí)施例中的存儲(chǔ)引擎擴(kuò)展性好,且因?yàn)椴捎梅菍?duì)稱設(shè)計(jì),存儲(chǔ)效率高,性能好。由該存儲(chǔ)引擎形成的存儲(chǔ)結(jié)構(gòu)能夠?qū)崿F(xiàn)對(duì)海量數(shù)據(jù)的存儲(chǔ),且能夠?qū)崿F(xiàn)全局訪問(wèn),且數(shù)據(jù)存儲(chǔ)的可靠性和安全性強(qiáng)。
文檔編號(hào)G06F3/06GK103049505SQ201210536328
公開(kāi)日2013年4月17日 申請(qǐng)日期2012年12月12日 優(yōu)先權(quán)日2012年12月12日
發(fā)明者吳慶民, 文中領(lǐng), 施培任 申請(qǐng)人:浪潮(北京)電子信息產(chǎn)業(yè)有限公司