一種存儲(chǔ)系統(tǒng)的制作方法
【專利摘要】本發(fā)明實(shí)施例提供了一種存儲(chǔ)系統(tǒng),以避免在服務(wù)器發(fā)生故障時(shí)其緩存數(shù)據(jù)丟失。該存儲(chǔ)系統(tǒng)包括:存儲(chǔ)網(wǎng)絡(luò);至少兩個(gè)存儲(chǔ)節(jié)點(diǎn),連接至所述存儲(chǔ)網(wǎng)絡(luò);至少一個(gè)存儲(chǔ)設(shè)備,連接至所述存儲(chǔ)網(wǎng)絡(luò),每個(gè)存儲(chǔ)設(shè)備包括至少一個(gè)存儲(chǔ)介質(zhì);以及所述存儲(chǔ)介質(zhì)包括至少一個(gè)高速存儲(chǔ)介質(zhì)和至少一個(gè)持久性存儲(chǔ)介質(zhì);其中,所述存儲(chǔ)網(wǎng)絡(luò)被配置為使得每一個(gè)存儲(chǔ)節(jié)點(diǎn)都能夠無(wú)需借助其他存儲(chǔ)節(jié)點(diǎn)而訪問(wèn)所有存儲(chǔ)介質(zhì);所述至少一個(gè)高速存儲(chǔ)介質(zhì)中的一個(gè)或多個(gè)高速存儲(chǔ)介質(zhì)的全部或部分構(gòu)成高速緩存區(qū);所述存儲(chǔ)節(jié)點(diǎn)在寫(xiě)入數(shù)據(jù)時(shí),先將數(shù)據(jù)寫(xiě)入高速緩存區(qū),然后再由相同或不同的存儲(chǔ)節(jié)點(diǎn)將高速緩存區(qū)上的數(shù)據(jù)寫(xiě)入到持久存儲(chǔ)介質(zhì)。
【專利說(shuō)明】
一種存儲(chǔ)系統(tǒng)
技術(shù)領(lǐng)域
[0001 ]本發(fā)明涉及數(shù)據(jù)存儲(chǔ)技術(shù)領(lǐng)域,具體涉及一種存儲(chǔ)系統(tǒng)。
【背景技術(shù)】
[0002]隨著計(jì)算機(jī)應(yīng)用規(guī)模越來(lái)越大,對(duì)存儲(chǔ)空間的需求也與日倶增。對(duì)應(yīng)的,將復(fù)數(shù)設(shè)備的存儲(chǔ)資源(比如,磁盤(pán)組的存儲(chǔ)介質(zhì))統(tǒng)合為一個(gè)存儲(chǔ)池來(lái)為集群服務(wù)器提供存儲(chǔ)服務(wù)成為了現(xiàn)在的主流。緩存作為臨時(shí)數(shù)據(jù)交換區(qū),減小了系統(tǒng)負(fù)荷,提高了數(shù)據(jù)傳輸速率,傳統(tǒng)的存儲(chǔ)系統(tǒng),緩存區(qū)通常集成在集群服務(wù)器的每個(gè)存儲(chǔ)節(jié)點(diǎn)上,即緩存的讀寫(xiě)操作在集群服務(wù)器的每臺(tái)主機(jī)中實(shí)現(xiàn)。每臺(tái)服務(wù)器將常用的數(shù)據(jù)臨時(shí)放在自己內(nèi)置的緩存中,然后待系統(tǒng)空閑時(shí),再將緩存中的數(shù)據(jù)傳送到存儲(chǔ)池中的持久性存儲(chǔ)介質(zhì)進(jìn)行永久存儲(chǔ)。由于緩存具有斷電后存儲(chǔ)內(nèi)容消失的特點(diǎn),如果將它設(shè)置在服務(wù)器主機(jī)中將會(huì)給存儲(chǔ)系統(tǒng)帶來(lái)不可預(yù)測(cè)的風(fēng)險(xiǎn)。一旦集群服務(wù)器中任何一臺(tái)主機(jī)發(fā)生故障,那么保存于這個(gè)主機(jī)中的緩存數(shù)據(jù)就會(huì)丟失,這將嚴(yán)重地影響整個(gè)存儲(chǔ)系統(tǒng)的可靠性與穩(wěn)定性。
【發(fā)明內(nèi)容】
[0003]有鑒于此,本發(fā)明實(shí)施例提供了一種存儲(chǔ)系統(tǒng),以避免在服務(wù)器發(fā)生故障時(shí)其緩存數(shù)據(jù)丟失。
[0004]本發(fā)明一實(shí)施例提供了一種存儲(chǔ)系統(tǒng),包括:
[0005]存儲(chǔ)網(wǎng)絡(luò);
[0006]至少兩個(gè)存儲(chǔ)節(jié)點(diǎn),連接至所述存儲(chǔ)網(wǎng)絡(luò);
[0007]至少一個(gè)存儲(chǔ)設(shè)備,連接至所述存儲(chǔ)網(wǎng)絡(luò),每個(gè)存儲(chǔ)設(shè)備包括至少一個(gè)存儲(chǔ)介質(zhì);以及
[0008]所述存儲(chǔ)介質(zhì)包括至少一個(gè)高速存儲(chǔ)介質(zhì)和至少一個(gè)持久性存儲(chǔ)介質(zhì),
[0009]其中,所述存儲(chǔ)網(wǎng)絡(luò)被配置為使得每一個(gè)存儲(chǔ)節(jié)點(diǎn)都能夠無(wú)需借助其他存儲(chǔ)節(jié)點(diǎn)而訪問(wèn)所有存儲(chǔ)介質(zhì);
[0010]所述至少一個(gè)高速存儲(chǔ)介質(zhì)中的一個(gè)或多個(gè)高速存儲(chǔ)介質(zhì)的全部或部分構(gòu)成高速緩存區(qū);
[0011]所述存儲(chǔ)節(jié)點(diǎn)在寫(xiě)入數(shù)據(jù)時(shí),先將數(shù)據(jù)寫(xiě)入高速緩存區(qū),然后再由相同或不同的存儲(chǔ)節(jié)點(diǎn)將高速緩存區(qū)上的數(shù)據(jù)寫(xiě)入到持久存儲(chǔ)介質(zhì)。
[0012]本發(fā)明實(shí)施例提供的存儲(chǔ)系統(tǒng),由高速存儲(chǔ)介質(zhì)構(gòu)成的高速緩存區(qū)獨(dú)立于集群服務(wù)器的各個(gè)主機(jī)而被設(shè)置于全局存儲(chǔ)池中,采用這樣的方式,既使集群服務(wù)器中的某一存儲(chǔ)節(jié)點(diǎn)發(fā)生故障,該存儲(chǔ)節(jié)點(diǎn)寫(xiě)入高速存儲(chǔ)介質(zhì)中的緩存數(shù)據(jù)也不會(huì)丟失,這會(huì)大大增強(qiáng)存儲(chǔ)系統(tǒng)的可靠性與穩(wěn)定性。
【附圖說(shuō)明】
[0013]圖1所示為根據(jù)本發(fā)明一實(shí)施例中一個(gè)存儲(chǔ)系統(tǒng)的架構(gòu)示意圖。
【具體實(shí)施方式】
[0014]下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒(méi)有作出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
[0015]圖1所示為根據(jù)本發(fā)明的實(shí)施方式的存儲(chǔ)系統(tǒng)的架構(gòu)示意圖。如圖1所示,該存儲(chǔ)系統(tǒng)包括存儲(chǔ)網(wǎng)絡(luò);至少兩個(gè)存儲(chǔ)節(jié)點(diǎn),連接至所述存儲(chǔ)網(wǎng)絡(luò),其中,存儲(chǔ)節(jié)點(diǎn)是提供存儲(chǔ)服務(wù)的軟件模塊,而非通常意義上的包含存儲(chǔ)介質(zhì)在內(nèi)的硬件服務(wù)器;以及存儲(chǔ)設(shè)備,同樣連接至所述存儲(chǔ)網(wǎng)絡(luò);每個(gè)存儲(chǔ)設(shè)備包括至少一個(gè)高速存儲(chǔ)介質(zhì)和至少一個(gè)持久性存儲(chǔ)介質(zhì)。其中,所述存儲(chǔ)網(wǎng)絡(luò)被配置為使得每一個(gè)存儲(chǔ)節(jié)點(diǎn)都能夠無(wú)需借助其他存儲(chǔ)節(jié)點(diǎn)而訪問(wèn)所有存儲(chǔ)介質(zhì)。該至少一個(gè)高速存儲(chǔ)介質(zhì)中的一個(gè)或多個(gè)高速存儲(chǔ)介質(zhì)的全部或部分構(gòu)成高速緩存區(qū);當(dāng)存儲(chǔ)節(jié)點(diǎn)在寫(xiě)入數(shù)據(jù)時(shí),先將數(shù)據(jù)寫(xiě)入高速緩存區(qū),然后再由相同或不同的存儲(chǔ)節(jié)點(diǎn)將高速緩存區(qū)上的數(shù)據(jù)寫(xiě)入到持久存儲(chǔ)介質(zhì)。
[0016]在本發(fā)明另一實(shí)施例中,每個(gè)存儲(chǔ)節(jié)點(diǎn)對(duì)應(yīng)一個(gè)或多個(gè)計(jì)算節(jié)點(diǎn),并且每個(gè)存儲(chǔ)節(jié)點(diǎn)與其對(duì)應(yīng)的計(jì)算節(jié)點(diǎn)都位于同一服務(wù)器,該物理服務(wù)器通過(guò)存儲(chǔ)交換設(shè)備與存儲(chǔ)設(shè)備連接。本發(fā)明實(shí)施例中將計(jì)算節(jié)點(diǎn)和存儲(chǔ)節(jié)點(diǎn)聚合在同一服務(wù)器中,從存儲(chǔ)系統(tǒng)整體結(jié)構(gòu)而言,減少了所需物理設(shè)備的數(shù)量,降低了成本。同時(shí),計(jì)算節(jié)點(diǎn)也可以在本地訪問(wèn)到其希望訪問(wèn)的存儲(chǔ)資源。
[0017]在本發(fā)明一實(shí)施例中,存儲(chǔ)節(jié)點(diǎn)在將數(shù)據(jù)寫(xiě)入高速緩存區(qū)的同時(shí),將所述數(shù)據(jù)最終應(yīng)寫(xiě)入的持久存儲(chǔ)介質(zhì)的位置也記錄在所述高速緩存區(qū)中;后續(xù)所述相同或不同的存儲(chǔ)節(jié)點(diǎn)按照所述數(shù)據(jù)最終應(yīng)寫(xiě)入的持久存儲(chǔ)介質(zhì)的位置,將所述高速緩存區(qū)上的數(shù)據(jù)寫(xiě)入到持久存儲(chǔ)介質(zhì)。在將高速緩存區(qū)的數(shù)據(jù)寫(xiě)入到持久存儲(chǔ)介質(zhì)后,將對(duì)應(yīng)數(shù)據(jù)從所述高速緩存區(qū)中及時(shí)清除,以釋放更多的空間供新的待緩存數(shù)據(jù)寫(xiě)入。
[0018]在本發(fā)明一實(shí)施例中,每一數(shù)據(jù)最終應(yīng)寫(xiě)入的持久存儲(chǔ)介質(zhì)的位置并不受其數(shù)據(jù)所在的告訴存儲(chǔ)介質(zhì)的限制。舉例說(shuō)明,某數(shù)據(jù)可能緩存在存儲(chǔ)設(shè)備I的高速存儲(chǔ)介質(zhì)中,但其最終應(yīng)寫(xiě)入的持久存儲(chǔ)介質(zhì)的位置位于存儲(chǔ)設(shè)備2中。
[0019]在本發(fā)明一實(shí)施例中,高速緩存區(qū)被劃分為至少兩個(gè)緩存單元,每個(gè)緩存單元包括一個(gè)或多個(gè)高速存儲(chǔ)介質(zhì),或包括一個(gè)或多個(gè)高速存儲(chǔ)介質(zhì)的部分或全部。同時(shí),每個(gè)緩存單元所包括的高速存儲(chǔ)介質(zhì)位于同一個(gè)或不同的存儲(chǔ)設(shè)備中。
[0020]舉例說(shuō)明,某一個(gè)緩存單元可以包括2個(gè)完整的高速存儲(chǔ)介質(zhì),也可以包括2個(gè)高速存儲(chǔ)介質(zhì)的部分,可以是一個(gè)高速存儲(chǔ)介質(zhì)的部分以及另一個(gè)完整的高速存儲(chǔ)介質(zhì)。
[0021]在本發(fā)明一實(shí)施例中,每一個(gè)緩存單元可以由至少兩個(gè)存儲(chǔ)設(shè)備上的至少兩個(gè)高速存儲(chǔ)介質(zhì)的全部或部分以冗余存儲(chǔ)的方式構(gòu)成。
[0022]在本發(fā)明一實(shí)施例中,每個(gè)存儲(chǔ)節(jié)點(diǎn)負(fù)責(zé)管理零到多個(gè)緩存單元。即,有的存儲(chǔ)節(jié)點(diǎn)可能完全不負(fù)責(zé)管理緩存單元,而是負(fù)責(zé)將緩存單元中的數(shù)據(jù)拷貝到持久存儲(chǔ)介質(zhì)中。舉例說(shuō)明,假設(shè)一個(gè)系統(tǒng)有9個(gè)存儲(chǔ)節(jié)點(diǎn),其中存儲(chǔ)節(jié)點(diǎn)1-8負(fù)責(zé)將數(shù)據(jù)寫(xiě)入到其對(duì)應(yīng)的緩存單元中,存儲(chǔ)節(jié)點(diǎn)9僅僅用于將緩存單元中的數(shù)據(jù)寫(xiě)入到對(duì)應(yīng)的持有久介質(zhì)中(如前所述,該對(duì)應(yīng)的持有久介質(zhì)的地址也記錄在對(duì)應(yīng)的緩存數(shù)據(jù)中)。采用上述的實(shí)施方式,可以使一些存儲(chǔ)節(jié)點(diǎn)釋放更多的負(fù)擔(dān)來(lái)進(jìn)行其他操作。另外,設(shè)置專門(mén)負(fù)責(zé)將緩存數(shù)據(jù)寫(xiě)入持久性介質(zhì)的存儲(chǔ)節(jié)點(diǎn)還可在空閑時(shí)間將緩存數(shù)據(jù)陸續(xù)寫(xiě)入持久性存儲(chǔ)單元中,這在很大程度上提高了緩存數(shù)據(jù)的傳輸效率。
[0023]在本發(fā)明一實(shí)施例中,每個(gè)存儲(chǔ)節(jié)點(diǎn)只能讀寫(xiě)自己管理的緩存單元。由于多個(gè)存儲(chǔ)節(jié)點(diǎn)同時(shí)對(duì)一個(gè)高速存儲(chǔ)介質(zhì)的寫(xiě)操作容易發(fā)生沖突,而對(duì)讀操作并不會(huì)互相沖突,因此,在另一個(gè)實(shí)施例中,每個(gè)存儲(chǔ)節(jié)點(diǎn)只能將待緩存的數(shù)據(jù)寫(xiě)入自己管理的緩存單元,但是可以讀取自己以及其他存儲(chǔ)節(jié)點(diǎn)管理的所有緩存單元,即存儲(chǔ)節(jié)點(diǎn)對(duì)緩存單元的寫(xiě)操作是局域性的,而讀操作可以是全局性的。
[0024]在本發(fā)明一實(shí)施例中,當(dāng)監(jiān)測(cè)到一個(gè)存儲(chǔ)節(jié)點(diǎn)發(fā)生故障時(shí),可以對(duì)其他部分或全部存儲(chǔ)節(jié)點(diǎn)進(jìn)行配置,使得這些存儲(chǔ)節(jié)點(diǎn)接管之前由所述發(fā)生故障的存儲(chǔ)節(jié)點(diǎn)管理的緩存單元。例如,可以由其中一個(gè)存儲(chǔ)節(jié)點(diǎn)接管發(fā)生故障的存儲(chǔ)節(jié)點(diǎn)管理的所有緩存單元,也可以由其它至少兩個(gè)存儲(chǔ)節(jié)點(diǎn)進(jìn)行接管,其中每個(gè)存儲(chǔ)節(jié)點(diǎn)接管發(fā)生故障的存儲(chǔ)節(jié)點(diǎn)管理的部分緩存單元。
[0025]具體而言,本發(fā)明實(shí)施例提供的存儲(chǔ)系統(tǒng)可以進(jìn)一步包括存儲(chǔ)控制節(jié)點(diǎn),連接存儲(chǔ)網(wǎng)絡(luò),用于確定每個(gè)存儲(chǔ)節(jié)點(diǎn)管理的緩存單元;或在存儲(chǔ)節(jié)點(diǎn)中設(shè)置有存儲(chǔ)分配模塊,用于確定該存儲(chǔ)節(jié)點(diǎn)所管理的緩存單元。當(dāng)某一個(gè)存儲(chǔ)節(jié)點(diǎn)所管理的緩存單元發(fā)生變化時(shí),存儲(chǔ)控制節(jié)點(diǎn)或存儲(chǔ)分配模塊維護(hù)的每個(gè)存儲(chǔ)節(jié)點(diǎn)管理的緩存單元列表也會(huì)對(duì)應(yīng)發(fā)生變化;或者說(shuō),通過(guò)修改存儲(chǔ)控制節(jié)點(diǎn)或存儲(chǔ)分配模塊維護(hù)的每個(gè)存儲(chǔ)節(jié)點(diǎn)管理的緩存單元列表來(lái)修改每個(gè)存儲(chǔ)節(jié)點(diǎn)所管理的緩存單元。
[0026]本發(fā)明一實(shí)施例中,將數(shù)據(jù)寫(xiě)入高速緩存區(qū)時(shí),除了需要寫(xiě)入數(shù)據(jù)本身以及該數(shù)據(jù)應(yīng)寫(xiě)入的持久化存儲(chǔ)介質(zhì)的位置外,還需要寫(xiě)入數(shù)據(jù)的長(zhǎng)度信息,這三類信息合起來(lái)稱為一個(gè)緩存數(shù)據(jù)塊。
[0027]本發(fā)明一實(shí)施例中,將數(shù)據(jù)寫(xiě)入高速緩存區(qū)時(shí),可以按照方式進(jìn)行。首先在緩存單元固定位置分別記錄頭指針和尾指針,頭指針和尾指針初始都指向緩存單元中空白區(qū)域的開(kāi)始位置。當(dāng)有緩存數(shù)據(jù)寫(xiě)入時(shí),頭指針增加寫(xiě)入緩存數(shù)據(jù)塊的總長(zhǎng)度,從而指向下一塊空白區(qū)域。當(dāng)清理緩存時(shí),從尾指針指向的位置讀取當(dāng)前緩存數(shù)據(jù)塊的長(zhǎng)度以及該數(shù)據(jù)應(yīng)寫(xiě)入的持久化存儲(chǔ)介質(zhì)的位置,將該長(zhǎng)度的緩存數(shù)據(jù)寫(xiě)入到指定位置的持久化介質(zhì)中,然后將尾指針增加已清理的緩存數(shù)據(jù)塊的長(zhǎng)度,從而指向下一塊緩存數(shù)據(jù)塊,釋放當(dāng)前已清理的緩存數(shù)據(jù)的空間。當(dāng)頭指針或尾指針的值超過(guò)可用緩存的長(zhǎng)度時(shí),指針要相應(yīng)回卷(即減掉可用緩存的長(zhǎng)度,從而回到緩存單元的靠前部分);所謂可用緩存的長(zhǎng)度是緩存單元的長(zhǎng)度減掉頭指針和尾指針?biāo)加玫目臻g。當(dāng)寫(xiě)入緩存數(shù)據(jù)時(shí),如果緩存單元所剩余空間小于緩存數(shù)據(jù)塊的大小(即頭指針加上緩存數(shù)據(jù)塊的長(zhǎng)度后追上了尾指針),則清理已有緩存數(shù)據(jù),直到有足夠的緩存空間寫(xiě)入緩存數(shù)據(jù);如果整個(gè)緩存單元的可用緩存小于需要寫(xiě)入的緩存數(shù)據(jù)庫(kù)大小,則將數(shù)據(jù)直接寫(xiě)入持久化存儲(chǔ)介質(zhì),而不做緩存;在清理緩存時(shí),如果尾指針等于頭指針,表明緩存數(shù)據(jù)為空,當(dāng)前沒(méi)有需要清理的緩存數(shù)據(jù)。
[0028]基于本發(fā)明實(shí)施例提供的存儲(chǔ)系統(tǒng),存儲(chǔ)節(jié)點(diǎn)的所有緩存區(qū)都位于全局高速緩存區(qū),而不是存儲(chǔ)節(jié)點(diǎn)所在物理服務(wù)器的內(nèi)存或任何其它存儲(chǔ)介質(zhì)上。寫(xiě)入全局高速緩存區(qū)的緩存數(shù)據(jù)可被所有存儲(chǔ)節(jié)點(diǎn)共享。這種情況下,將緩存數(shù)據(jù)寫(xiě)入持久性存儲(chǔ)介質(zhì)的工作可以由每個(gè)存儲(chǔ)節(jié)點(diǎn)各自完成,也可以根據(jù)需要選擇固定的一個(gè)或者多個(gè)存儲(chǔ)節(jié)點(diǎn)專門(mén)負(fù)責(zé),這樣的實(shí)施方式可以提高不同存儲(chǔ)節(jié)點(diǎn)之間負(fù)載的均衡性。
[0029]在本發(fā)明一實(shí)施例中,存儲(chǔ)節(jié)點(diǎn)用于將待緩存的數(shù)據(jù)寫(xiě)入全局緩存池中任意一個(gè)(或指定的)高速存儲(chǔ)介質(zhì)中,同時(shí),同一個(gè)或者其他存儲(chǔ)節(jié)點(diǎn)將寫(xiě)入全局緩存池中的緩存數(shù)據(jù)逐一寫(xiě)入到全局緩存池中指定的持久性存儲(chǔ)介質(zhì)中。具體而言,應(yīng)用程序運(yùn)行在存儲(chǔ)節(jié)點(diǎn)所在的服務(wù)器中,比如計(jì)算節(jié)點(diǎn)處,為了降低應(yīng)用程序?qū)Τ志眯源鎯?chǔ)介質(zhì)訪問(wèn)的頻次,每個(gè)存儲(chǔ)節(jié)點(diǎn)會(huì)將應(yīng)用程序常用的數(shù)據(jù)臨時(shí)存放在高速存儲(chǔ)介質(zhì)中,這樣應(yīng)用程序在運(yùn)行時(shí)就可直接從高速存儲(chǔ)介質(zhì)中讀寫(xiě)數(shù)據(jù),從而提高了應(yīng)用的運(yùn)行速度與性能。在一個(gè)實(shí)施例中,所述存儲(chǔ)設(shè)備包括但不限于JBOD,高速存儲(chǔ)介質(zhì)可以包括但不限于SSD、SRAM、NVRAM、DRAM或其他形式,持久性存儲(chǔ)介質(zhì)可以包括但不限于硬盤(pán)、閃存、SSD、NVMe或其它形式,高速存儲(chǔ)介質(zhì)和持久性存儲(chǔ)介質(zhì)的訪問(wèn)接口可以包括但不限于SAS接口、SATA接口、PCI/e接口、DIMM接口、NVMe接口、SCSI接口、AHCI接口。
[0030]在本發(fā)明一實(shí)施例中,存儲(chǔ)網(wǎng)絡(luò)包括至少兩個(gè)交換設(shè)備,所述每個(gè)存儲(chǔ)節(jié)點(diǎn)都可以通過(guò)任意一個(gè)存儲(chǔ)交換設(shè)備連接到任何一個(gè)存儲(chǔ)設(shè)備,進(jìn)而連接至高速存儲(chǔ)介質(zhì)和/或持久性存儲(chǔ)介質(zhì)。當(dāng)任何一個(gè)存儲(chǔ)交換設(shè)備或連接到一個(gè)存儲(chǔ)交換設(shè)備的存儲(chǔ)通道出現(xiàn)故障時(shí),存儲(chǔ)節(jié)點(diǎn)能夠通過(guò)其它存儲(chǔ)交換設(shè)備讀寫(xiě)存儲(chǔ)設(shè)備上的數(shù)據(jù),這樣的設(shè)計(jì)進(jìn)一步增強(qiáng)了存儲(chǔ)系統(tǒng)數(shù)據(jù)傳輸?shù)目煽啃浴?br>[0031]在本發(fā)明一實(shí)施例中,存儲(chǔ)交換設(shè)備可以是SAS交換機(jī)或PCI/e交換機(jī),對(duì)應(yīng)地,存儲(chǔ)通道可以是SAS (串行連接SCSI)通道或PCI/e通道。以SAS通道為例,基于SAS交換的方案,擁有性能高,帶寬大,單臺(tái)設(shè)備磁盤(pán)數(shù)量多等優(yōu)點(diǎn)。同時(shí),SAS體系與適配器(HBA)或者服務(wù)器主板上的SAS接口結(jié)合使用后,它所提供的存儲(chǔ)能夠很容易被連接的多臺(tái)服務(wù)器同時(shí)訪問(wèn)。
[0032]在本發(fā)明實(shí)施例中,由高速存儲(chǔ)介質(zhì)構(gòu)成的緩存區(qū)域獨(dú)立于集群服務(wù)器的各個(gè)主機(jī)而被設(shè)置于全局存儲(chǔ)池中,采用這樣的方式,如果集群服務(wù)器中的某一存儲(chǔ)節(jié)點(diǎn)發(fā)生故障,該存儲(chǔ)節(jié)點(diǎn)寫(xiě)入高速存儲(chǔ)介質(zhì)中的緩存數(shù)據(jù)也不會(huì)丟失,這會(huì)大大增強(qiáng)存儲(chǔ)系統(tǒng)的可靠性與穩(wěn)定性。
[0033]以上所述僅為本發(fā)明的較佳實(shí)施例而已,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。
【主權(quán)項(xiàng)】
1.一種存儲(chǔ)系統(tǒng),其特征在于,包括: 存儲(chǔ)網(wǎng)絡(luò); 至少兩個(gè)存儲(chǔ)節(jié)點(diǎn),連接至所述存儲(chǔ)網(wǎng)絡(luò); 至少一個(gè)存儲(chǔ)設(shè)備,連接至所述存儲(chǔ)網(wǎng)絡(luò),每個(gè)存儲(chǔ)設(shè)備包括至少一個(gè)存儲(chǔ)介質(zhì);以及 所述存儲(chǔ)介質(zhì)包括至少一個(gè)高速存儲(chǔ)介質(zhì)和至少一個(gè)持久性存儲(chǔ)介質(zhì); 其中,所述存儲(chǔ)網(wǎng)絡(luò)被配置為使得每一個(gè)存儲(chǔ)節(jié)點(diǎn)都能夠無(wú)需借助其他存儲(chǔ)節(jié)點(diǎn)而訪冋所有存儲(chǔ)介質(zhì); 所述至少一個(gè)高速存儲(chǔ)介質(zhì)中的一個(gè)或多個(gè)高速存儲(chǔ)介質(zhì)的全部或部分構(gòu)成高速緩存區(qū); 所述存儲(chǔ)節(jié)點(diǎn)在寫(xiě)入數(shù)據(jù)時(shí),先將數(shù)據(jù)寫(xiě)入高速緩存區(qū),然后再由相同或不同的存儲(chǔ)節(jié)點(diǎn)將高速緩存區(qū)上的數(shù)據(jù)寫(xiě)入到持久存儲(chǔ)介質(zhì)。2.根據(jù)權(quán)利要求1所述的存儲(chǔ)系統(tǒng),其特征在于,所述存儲(chǔ)節(jié)點(diǎn)在將數(shù)據(jù)寫(xiě)入高速緩存區(qū)的同時(shí),將所述數(shù)據(jù)最終應(yīng)寫(xiě)入的持久存儲(chǔ)介質(zhì)的位置也記錄在所述高速緩存區(qū)中;后續(xù)所述相同或不同的存儲(chǔ)節(jié)點(diǎn)按照所述數(shù)據(jù)最終應(yīng)寫(xiě)入的持久存儲(chǔ)介質(zhì)的位置,將所述高速緩存區(qū)上的數(shù)據(jù)寫(xiě)入到持久存儲(chǔ)介質(zhì)。3.根據(jù)權(quán)利要求2所述的存儲(chǔ)系統(tǒng),其特征在于,所述相同或不同的存儲(chǔ)節(jié)點(diǎn)將高速緩存區(qū)的數(shù)據(jù)寫(xiě)入到持久存儲(chǔ)介質(zhì)后,并將對(duì)應(yīng)數(shù)據(jù)從所述高速緩存區(qū)中清除。4.根據(jù)權(quán)利要求3所述的存儲(chǔ)系統(tǒng),其特征在于,高速緩存區(qū)被劃分為至少兩個(gè)緩存單元,每個(gè)緩存單元包括一個(gè)或多個(gè)高速存儲(chǔ)介質(zhì),或包括一個(gè)或多個(gè)高速存儲(chǔ)介質(zhì)的部分或全部;和/或,每個(gè)緩存單元所包括的高速存儲(chǔ)介質(zhì)位于同一個(gè)或不同的存儲(chǔ)設(shè)備中;和/或, 每個(gè)存儲(chǔ)節(jié)點(diǎn)負(fù)責(zé)管理零到多個(gè)緩存單元。5.根據(jù)權(quán)利要求4所述的存儲(chǔ)系統(tǒng),其特征在于,設(shè)置所述每個(gè)存儲(chǔ)節(jié)點(diǎn)只能讀寫(xiě)自己管理的緩存單元;或 設(shè)置每個(gè)存儲(chǔ)節(jié)點(diǎn)只能寫(xiě)自己管理的緩存單元,但可以讀自己以及其他存儲(chǔ)節(jié)點(diǎn)管理的所有緩存單元。6.根據(jù)權(quán)利要求4所述的存儲(chǔ)系統(tǒng),其特征在于,當(dāng)一個(gè)存儲(chǔ)節(jié)點(diǎn)出現(xiàn)故障時(shí),由另一個(gè)存儲(chǔ)節(jié)點(diǎn)接管故障存儲(chǔ)節(jié)點(diǎn)所管理的緩存單元。7.根據(jù)權(quán)利要求4所述的存儲(chǔ)系統(tǒng),其特征在于,還包括: 存儲(chǔ)控制節(jié)點(diǎn),連接所述存儲(chǔ)網(wǎng)絡(luò),用于確定每個(gè)存儲(chǔ)節(jié)點(diǎn)管理的緩存單元;或 所述存儲(chǔ)節(jié)點(diǎn)還包括: 存儲(chǔ)分配模塊,用于確定該存儲(chǔ)節(jié)點(diǎn)所管理的緩存單元。8.根據(jù)權(quán)利要求4所述的存儲(chǔ)系統(tǒng),其特征在于,所述相同或不同的存儲(chǔ)節(jié)點(diǎn)利用CPU空閑時(shí)間將尚未寫(xiě)入到持久存儲(chǔ)介質(zhì)的數(shù)據(jù)寫(xiě)入到持久存儲(chǔ)介質(zhì)中。9.根據(jù)權(quán)利要求1至8任一所述的存儲(chǔ)系統(tǒng),其特征在于,在所述高速緩存區(qū)中記錄頭指針和尾指針; 當(dāng)存儲(chǔ)節(jié)點(diǎn)將數(shù)據(jù)寫(xiě)入到高速緩存區(qū)時(shí),寫(xiě)入到高速緩存區(qū)頭指針?biāo)甘镜奈恢?,并在?xiě)入后相應(yīng)調(diào)整頭指針的值,使得頭指針指向高速緩存區(qū)中未被使用的區(qū)域;以及 當(dāng)存儲(chǔ)節(jié)點(diǎn)將數(shù)據(jù)從高速緩存區(qū)寫(xiě)入所述持久性存儲(chǔ)介質(zhì)時(shí),寫(xiě)入尾指針?biāo)赶蛭恢玫臄?shù)據(jù),并在寫(xiě)入后相應(yīng)調(diào)整尾指針的位置,使得尾指針指向下一塊尚未寫(xiě)入持久存儲(chǔ)介質(zhì)的數(shù)據(jù)。10.根據(jù)權(quán)利要求1所述的存儲(chǔ)系統(tǒng),其特征在于,所述高速緩存區(qū)由至少兩個(gè)存儲(chǔ)設(shè)備上的至少兩個(gè)高速存儲(chǔ)介質(zhì)的全部或部分以冗余存儲(chǔ)的方式構(gòu)成。11.根據(jù)權(quán)利要求1所述的存儲(chǔ)系統(tǒng),其特征在于,所述存儲(chǔ)網(wǎng)絡(luò)包括至少兩個(gè)交換設(shè)備,當(dāng)任何一個(gè)交換設(shè)備或連接到一個(gè)交換設(shè)備的存儲(chǔ)通道出現(xiàn)故障時(shí),存儲(chǔ)節(jié)點(diǎn)通過(guò)其它存儲(chǔ)交換設(shè)備讀寫(xiě)高速緩存區(qū)和持久性存儲(chǔ)介質(zhì)。12.根據(jù)權(quán)利要求1項(xiàng)所述的存儲(chǔ)系統(tǒng),其特征在于,所述存儲(chǔ)網(wǎng)絡(luò)是SAS交換機(jī)或PCI/e交換機(jī);所述存儲(chǔ)網(wǎng)絡(luò)包括SAS交換機(jī)或PCI/e交換機(jī)。13.根據(jù)權(quán)利要求1所述的存儲(chǔ)系統(tǒng),其特征在于,所述存儲(chǔ)設(shè)備為JBOD;和/或所述高速存儲(chǔ)介質(zhì)是SSD、SRAM、NVRAM或DRAM;和/或所述持久性存儲(chǔ)介質(zhì)是硬盤(pán)、閃存、SSD或NVMe;和/或所述高速存儲(chǔ)介質(zhì)和持久性存儲(chǔ)介質(zhì)的接口是SAS接口、SATA接口、PCI/e接口、DIMM接口、NVMe接口、SCSI接口、AHCI接口。
【文檔編號(hào)】H04L29/08GK105897859SQ201610180244
【公開(kāi)日】2016年8月24日
【申請(qǐng)日】2016年3月25日
【發(fā)明人】王東臨, 金友兵
【申請(qǐng)人】天津書(shū)生云科技有限公司