專利名稱:用于保護(hù)高速緩存數(shù)據(jù)完整性的方法和裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明一般地涉及數(shù)據(jù)存儲(chǔ)系統(tǒng),并且更具體地,涉及用于保護(hù)直接連接存儲(chǔ) (DAS)系統(tǒng)中的高速緩存數(shù)據(jù)的完整性的方法和裝置。
背景技術(shù):
存儲(chǔ)陣列或盤陣列是包括多個(gè)磁硬盤驅(qū)動(dòng)器(HDD)或類似的永久存儲(chǔ)單元的數(shù) 據(jù)存儲(chǔ)設(shè)備。存儲(chǔ)陣列可以允許以高效的方式存儲(chǔ)大量數(shù)據(jù)。服務(wù)器或工作站可被直接連 接到存儲(chǔ)陣列,從而該存儲(chǔ)陣列對(duì)于服務(wù)器或工作站來說是本地的。在服務(wù)器或工作站被 直接連接到存儲(chǔ)陣列的情況下,存儲(chǔ)陣列通常被稱為直接連接存儲(chǔ)(DAS)系統(tǒng)??商鎿Q地, 服務(wù)器或工作站可被通過存儲(chǔ)陣列網(wǎng)絡(luò)(SAN)遠(yuǎn)程地連接到存儲(chǔ)陣列。在SAN系統(tǒng)中,雖 然存儲(chǔ)陣列對(duì)于服務(wù)器或工作站不是本地的,該陣列中的盤驅(qū)動(dòng)器對(duì)于服務(wù)器或工作站的 操作系統(tǒng)(OS)來說看似是被連接在本地的。DAS系統(tǒng)和SAN系統(tǒng)通常被配置為廉價(jià)(或獨(dú)立)磁盤冗余陣列(RAID)系統(tǒng)。 RAID系統(tǒng)使用存儲(chǔ)冗余,以便改進(jìn)存儲(chǔ)可靠性和/或以便改進(jìn)輸入/輸出(1/0)性能。一 般地,RAID系統(tǒng)同時(shí)使用兩個(gè)或多個(gè)磁HDD,通常被稱為物理磁盤驅(qū)動(dòng)器(PD),以便實(shí)現(xiàn)更 高級(jí)別的性能、可靠性和/或更大的數(shù)據(jù)量大小。短語“RAID” 一般用于描述在多個(gè)PD之 間劃分和復(fù)制數(shù)據(jù)的計(jì)算機(jī)數(shù)據(jù)存儲(chǔ)方案。在RAID系統(tǒng)中,一個(gè)或多個(gè)PD被設(shè)立為RAID 虛擬磁盤驅(qū)動(dòng)器(VD)。在RAID VD中,數(shù)據(jù)可被分布在多個(gè)PD上,但是該VD被用戶和服務(wù) 器或工作站的OS看作單個(gè)磁盤。在被配置為RAID系統(tǒng)的DAS系統(tǒng)內(nèi),DAS控制器作為RAID控制器。在該系統(tǒng)中, RAID控制器使用其本地存儲(chǔ)器的一部分用作高速緩沖存儲(chǔ)器。高速緩沖存儲(chǔ)器被用于臨時(shí) 存儲(chǔ)將被寫到PD的數(shù)據(jù)。用于這種目的的一種類型的高速緩沖存儲(chǔ)器配置被稱為寫回式 (WB)高速緩沖存儲(chǔ)器配置。在WB高速緩沖存儲(chǔ)器配置中,通常一旦數(shù)據(jù)移入高速緩沖存儲(chǔ) 器,高速緩存命令就被完成。在這種配置中,由于一旦數(shù)據(jù)被高速緩存,該數(shù)據(jù)就被提交以 便寫入PD的事實(shí),在發(fā)生失效備援(failover)和失效恢復(fù)(failback)事件的情況下,保 持高速緩存數(shù)據(jù)的完整性可能是一個(gè)挑戰(zhàn)。因此,應(yīng)當(dāng)采取措施,以便確保失效備援或失效 恢復(fù)事件的發(fā)生不會(huì)導(dǎo)致高速緩存數(shù)據(jù)被破壞。換言之,DAS系統(tǒng)應(yīng)當(dāng)提供高速緩存一致 性。為了提供高速緩存一致性,高速緩存的數(shù)據(jù)通常被復(fù)制到另一個(gè)存儲(chǔ)器設(shè)備內(nèi),如現(xiàn)在 將參考圖1-3對(duì)其進(jìn)行描述。圖1示出了實(shí)現(xiàn)RAID技術(shù)的典型DAS系統(tǒng)2的方框圖。系統(tǒng)2包括服務(wù)器3、RAID控制器4和外設(shè)互連(PCI)總線5。RAID控制器4包括中央處理單元(CPU)6、存儲(chǔ)器設(shè)備 7和I/O接口設(shè)備8。存儲(chǔ)器設(shè)備7的一部分存儲(chǔ)空間被用作高速緩沖存儲(chǔ)器??商鎿Q地, RAID控制器4可以包括用作高速緩沖存儲(chǔ)器的單獨(dú)的存儲(chǔ)器設(shè)備(未示出)。I/O接口設(shè) 備8被配置為執(zhí)行符合諸如串行連接SCSI (SAS)和/或串行高級(jí)技術(shù)附件(SATA)標(biāo)準(zhǔn)的 已知數(shù)據(jù)傳輸協(xié)議標(biāo)準(zhǔn)的數(shù)據(jù)傳輸。I/O接口設(shè)備8控制去往和來自多個(gè)PD9的數(shù)據(jù)傳輸。 RAID控制器4通過PCI總線5與服務(wù)器CPUll和服務(wù)器存儲(chǔ)器設(shè)備12通信。服務(wù)器存儲(chǔ) 器設(shè)備12存儲(chǔ)由服務(wù)器CPUll執(zhí)行的軟件程序和數(shù)據(jù)。在典型的寫動(dòng)作中,服務(wù)器CPUll通過PCI總線5向RAID控制器4發(fā)送寫請(qǐng)求指 令。RAID控制器4的CPTO使得數(shù)據(jù)被臨時(shí)存儲(chǔ)在RAID控制器4的存儲(chǔ)器設(shè)備7的高速緩 沖存儲(chǔ)器內(nèi)。該數(shù)據(jù)隨后被從存儲(chǔ)器設(shè)備7通過I/O接口設(shè)備8傳輸?shù)揭粋€(gè)或多個(gè)PD9。 存儲(chǔ)器設(shè)備7包含用于在RAID VD的虛擬地址和PD9的物理地址之間執(zhí)行映射的核心邏輯。 RAID控制器4的CPTO根據(jù)系統(tǒng)2的RAID級(jí)別執(zhí)行計(jì)算,諸如奇偶校驗(yàn)計(jì)算。在系統(tǒng)2的 當(dāng)前RAID級(jí)別使用奇偶校驗(yàn)的情況下,I/O接口設(shè)備8使得奇偶校驗(yàn)位被存儲(chǔ)在一個(gè)或多 個(gè)PD9內(nèi)。在典型的讀操作過程中,服務(wù)器CPUll通過PCI總線5向RAID控制器4發(fā)送相應(yīng) 的讀請(qǐng)求。RAID控制器CPTO使用保持在存儲(chǔ)器設(shè)備7內(nèi)的邏輯處理該請(qǐng)求,并且如果被 請(qǐng)求的數(shù)據(jù)保持在存儲(chǔ)器設(shè)備7的高速緩沖存儲(chǔ)器內(nèi),從存儲(chǔ)器設(shè)備7的高速緩沖存儲(chǔ)器 中檢索所請(qǐng)求的數(shù)據(jù)。如果被請(qǐng)求的數(shù)據(jù)未被保持在存儲(chǔ)器設(shè)備7的高速緩沖存儲(chǔ)器內(nèi), RAID控制器CPTO使得從PD9檢索所請(qǐng)求的數(shù)據(jù)。檢索到的數(shù)據(jù)被在PCI總線5上傳輸?shù)?服務(wù)器CPU11,以便滿足讀請(qǐng)求。圖2示出了已知的共享DAS系統(tǒng)23的方框圖,該系統(tǒng)包括圖1所示的多個(gè)RAID控 制器4和由RAID控制器4共享的圖1所示的PD9的陣列。為了在共享DAS系統(tǒng)23中提供 高速緩存一致性,高速緩存在其中一個(gè)RAID控制器4中的存儲(chǔ)器設(shè)備7內(nèi)的數(shù)據(jù)被復(fù)制, 或鏡像到其它RAID控制器4中的其中一個(gè)RAID控制器4的存儲(chǔ)器設(shè)備7內(nèi),從而根據(jù)高 速緩存鏡像給RAID控制器4配對(duì)。在圖2中以箭頭24表示高速緩存數(shù)據(jù)的復(fù)制。雖然這 種類型的高速緩存一致性技術(shù)一般是有效的,但如果在給定對(duì)的兩個(gè)RAID控制器4中都發(fā) 生失效備援或失效恢復(fù)事件,將危及該鏡像對(duì)的高速緩存數(shù)據(jù)的完整性。圖3示出了圖2所示的共享DAS系統(tǒng)23的方框圖,其中通過將每個(gè)RAID控制器4 的存儲(chǔ)器設(shè)備7內(nèi)高速緩存的數(shù)據(jù)復(fù)制到每個(gè)其它RAID控制器4的存儲(chǔ)器設(shè)備7內(nèi),以提 供高速緩存一致性。在圖3中以箭頭24和25表示高速緩存數(shù)據(jù)的復(fù)制。雖然這種類型的 高速緩存一致性技術(shù)一般是有效的,但這種技術(shù)的物理實(shí)現(xiàn)極其復(fù)雜,并且利用大量帶寬。 另外,當(dāng)擴(kuò)大系統(tǒng)23的規(guī)模并且向系統(tǒng)23添加大量RAID控制器4時(shí),系統(tǒng)23的復(fù)雜性和 用于高速緩存鏡像的帶寬數(shù)量指數(shù)地增加。出于這些原因,這種高速緩存一致性解決方案 在大部分情況下是不現(xiàn)實(shí)的。DAS系統(tǒng)中的高速緩存一致性問題的另一種解決方案是使用WT高速緩存配置,而 不是WB高速緩存配置。然而,取代WB高速緩存配置使用WT高速緩存配置一般會(huì)降低DAS 系統(tǒng)的I/O性能,并且因此對(duì)于競(jìng)爭(zhēng)市場(chǎng)內(nèi)的許多存儲(chǔ)應(yīng)用是不適合的。雖然可以使用SAN 控制器容易地處理高速緩存一致性問題,但這種解決方案相對(duì)昂貴,并且在許多情況下,其 實(shí)現(xiàn)昂貴得驚人。
因此,存在對(duì)足以保護(hù)高速緩存數(shù)據(jù)的完整性,并且克服DAS系統(tǒng)中所使用的已 知高速緩存一致性解決方案的上述限制的DAS系統(tǒng)的需求。
發(fā)明內(nèi)容
本發(fā)明提供了一種用于保護(hù)高速緩存數(shù)據(jù)的完整性的DAS系統(tǒng)、方法和計(jì)算機(jī)可 讀介質(zhì)。該DAS系統(tǒng)包括配置為PD的RAID陣列的多個(gè)磁HDD、配置為高速緩沖存儲(chǔ)器的 固態(tài)盤(SSD)陣列,以及連接到所述PD的RAID陣列以及連接到所述SSD陣列的至少第一 和第二 DAS控制器。每個(gè)DAS控制器具有CPU、本地存儲(chǔ)器設(shè)備和I/O接口設(shè)備。每個(gè)CPU 和每個(gè)本地存儲(chǔ)器設(shè)備配置為執(zhí)行與所述PD的RAID陣列的RAID配置一致的RAID級(jí)別的 技術(shù)。每個(gè)CPU配置為執(zhí)行高速緩存算法,該高速緩存算法使得在相應(yīng)DAS控制器中接收 的數(shù)據(jù)被臨時(shí)存儲(chǔ)在所述SSD陣列的高速緩沖存儲(chǔ)器內(nèi),并且隨后被存儲(chǔ)在所述PD的RAID 陣列的一個(gè)或多個(gè)PD內(nèi)。一種用于保護(hù)DAS系統(tǒng)內(nèi)的高速緩存數(shù)據(jù)的完整性的方法包括如下步驟在第一 DAS控制器中,接收數(shù)據(jù);在第一 DAS控制器的CPU中,執(zhí)行高速緩存算法,該高速緩存算法 使得在所述第一 DAS控制器中接收的數(shù)據(jù)被臨時(shí)存儲(chǔ)在SSD陣列的一個(gè)或多個(gè)SSD內(nèi),并 且隨后被存儲(chǔ)在配置為PD的RAID陣列的一個(gè)或多個(gè)磁HDD內(nèi);在第二 DAS控制器中,接收 數(shù)據(jù);并且在第二 DAS控制器的CPU中,執(zhí)行高速緩存算法,該高速緩存算法使得在所述第 二 DAS控制器中接收的數(shù)據(jù)被臨時(shí)存儲(chǔ)在所述SSD陣列的一個(gè)或多個(gè)SSD內(nèi),并且隨后被 存儲(chǔ)在配置為PD的RAID陣列的一個(gè)或多個(gè)磁HDD內(nèi)。一種計(jì)算機(jī)可讀介質(zhì)包括用于由DAS控制器執(zhí)行的第一指令集合和第二指令集 合。第一指令集合在DAS控制器中接收數(shù)據(jù)。第二指令集合在第一 DAS控制器中執(zhí)行高速 緩存算法,該高速緩存算法使得在所述第一 DAS控制器中接收的數(shù)據(jù)被臨時(shí)存儲(chǔ)在SSD陣 列的一個(gè)或多個(gè)SSD內(nèi),并且隨后被存儲(chǔ)在配置為PD的RAID陣列的一個(gè)或多個(gè)磁HDD內(nèi)。從下面的描述、附圖和權(quán)利要求中,將明了本發(fā)明的這些和其它特征和優(yōu)點(diǎn)。
圖1示出了實(shí)現(xiàn)RAID技術(shù)的已知DAS系統(tǒng)的方框圖。圖2示出了共享DAS系統(tǒng)的方框圖,其中圖1所示的多個(gè)RAID控制器共享圖1所 示的PD陣列,并且其中通過在RAID控制器對(duì)的存儲(chǔ)器設(shè)備內(nèi)鏡像高速緩存數(shù)據(jù)提供高速
緩存一致性。圖3示出了圖2所示的共享DAS系統(tǒng)的方框圖,其中通過將每個(gè)RAID控制器的高 速緩存數(shù)據(jù)鏡像到所有其它RAID控制器的存儲(chǔ)器設(shè)備內(nèi)提供高速緩存一致性。圖4示出了根據(jù)一個(gè)實(shí)施例的共享DAS系統(tǒng)的方框圖,其中該DAS系統(tǒng)的DAS控 制器外部的至少一個(gè)共享的固態(tài)盤(SSD)被用作用于高速緩存將被寫到DAS系統(tǒng)的PD的 數(shù)據(jù)的WB高速緩沖存儲(chǔ)器。圖5示出了圖4所示的DAS控制器之一的方框圖。圖6示出了一個(gè)流程圖,其表示根據(jù)一個(gè)說明性實(shí)施例,由圖4所示的DAS控制器 之一的CPU執(zhí)行的WB高速緩存算法。圖7示出了根據(jù)一個(gè)說明性實(shí)施例的圖4所示的DAS系統(tǒng)的方框圖,其中數(shù)據(jù)被高速緩存在SSD陣列內(nèi),而相關(guān)聯(lián)的元數(shù)據(jù)被高速緩存到DAS控制器內(nèi)的高速緩沖存儲(chǔ)器 內(nèi)。圖8示出了根據(jù)一個(gè)說明性實(shí)施例的圖4所示的DAS系統(tǒng)的方框圖,其中數(shù)據(jù)和 相關(guān)聯(lián)的元數(shù)據(jù)被高速緩存在SSD陣列內(nèi)。圖9示出了表示由圖8所示的DAS控制器執(zhí)行的WB高速緩存算法的流程圖。
具體實(shí)施例方式根據(jù)本發(fā)明,提供了一種實(shí)現(xiàn)RAID技術(shù)的DAS系統(tǒng),其中該DAS系統(tǒng)的DAS控制 器外部的固態(tài)盤(SSD)陣列被DAS控制器用作用于執(zhí)行WB高速緩存操作的WB高速緩沖存 儲(chǔ)器。使用外部SSD陣列作為WB高速緩沖存儲(chǔ)器使得DAS系統(tǒng)是完全高速緩存一致的,而 不會(huì)明顯增加DAS系統(tǒng)的復(fù)雜性,并且不會(huì)增加用于執(zhí)行高速緩存操作的帶寬數(shù)量。另外, 使用外部SSD陣列作為WB高速緩沖存儲(chǔ)器避免了以上面參考圖1-3所述的方式鏡像DAS 控制器的需要。圖4示出了根據(jù)說明性實(shí)施例的本發(fā)明的DAS系統(tǒng)100的方框圖,其中DAS系統(tǒng) 100的SSD陣列110作為WB高速緩沖存儲(chǔ)器被DAS系統(tǒng)100的多個(gè)DAS控制器120共享。 圖5示出了圖4所示的其中一個(gè)DAS控制器120的方框圖。DAS系統(tǒng)100的DAS控制器120 具有與圖1所示的RAID控制器4相同或類似的配置。除了相對(duì)于高速緩存操作之外,每個(gè) DAS控制器120以與RAID控制器4相同的方式操作。因此,如同圖1所示的RAID控制器4 的情況,圖4所示的每個(gè)DAS控制器120被配置為RAID控制器。DAS系統(tǒng)100采用RAID技 術(shù)。本發(fā)明不受關(guān)于DAS系統(tǒng)100所采用的RAID級(jí)別的限制。RAID具有相應(yīng)于不同系統(tǒng)設(shè)計(jì)的7種基本級(jí)別,并且可以在DAS系統(tǒng)100中實(shí)現(xiàn) 那些級(jí)別中的任意一種或多種。現(xiàn)在將提供對(duì)不同RAID級(jí)別的簡(jiǎn)要討論,即使這些RAID級(jí) 別是本領(lǐng)域公知的。通常被稱為RAID級(jí)別0-6的這7種基本RAID級(jí)別如下。RAID級(jí)別0 使用條帶化(striping)實(shí)現(xiàn)改進(jìn)的數(shù)據(jù)可靠性和增加的I/O性能。術(shù)語“條帶化”的含義 是邏輯上連續(xù)的數(shù)據(jù),諸如單個(gè)數(shù)據(jù)文件,被分段并且被以循環(huán)方式分配給多個(gè)PD。因此, 當(dāng)寫數(shù)據(jù)時(shí)數(shù)據(jù)被稱為“被條帶化”在多個(gè)PD上。條帶化提高了性能,并且提供額外的存 儲(chǔ)容量。RAID級(jí)別1使用不帶奇偶檢驗(yàn)的鏡像。術(shù)語“鏡像”的含義是數(shù)據(jù)被實(shí)時(shí)地復(fù)制 到不同的PD上,以便確保數(shù)據(jù)持續(xù)可用。這種類型的復(fù)制提供數(shù)據(jù)冗余。RAID級(jí)別2使用 冗余和條帶化。在RAID級(jí)別2中,通過使用漢明碼實(shí)現(xiàn)冗余,對(duì)PD上的位計(jì)算漢明碼,并 且將其存儲(chǔ)在多個(gè)PD上。如果PD失效,可以使用奇偶校驗(yàn)位重構(gòu)數(shù)據(jù)。RAID級(jí)別3系統(tǒng)結(jié)合交叉奇偶校驗(yàn)位和專用的奇偶校驗(yàn)PD使用字節(jié)級(jí)條帶化。 使用字節(jié)級(jí)條帶化和冗余產(chǎn)生改進(jìn)的性能并且給系統(tǒng)提供容錯(cuò)。RAID級(jí)別3系統(tǒng)可以持續(xù) 操作而不使用奇偶校驗(yàn),并且在奇偶校驗(yàn)PD失效的情況下不會(huì)受到性能損失。除了 RAID 級(jí)別4系統(tǒng)采用塊級(jí)條帶化而不是字節(jié)級(jí)或字級(jí)條帶化之外,RAID級(jí)別4基本與RAID級(jí) 別3相同。由于每個(gè)條帶相對(duì)大,單個(gè)文件可被存儲(chǔ)在塊內(nèi)。每個(gè)PD獨(dú)立地操作,并且可 以并行處理許多不同的I/O請(qǐng)求。通過使用塊級(jí)奇偶校驗(yàn)位交叉實(shí)現(xiàn)錯(cuò)誤檢測(cè)。交叉的奇 偶校驗(yàn)位被存儲(chǔ)在單個(gè)單獨(dú)的奇偶檢驗(yàn)PD內(nèi)。RAID級(jí)別5結(jié)合分布式奇偶校驗(yàn)使用條帶化。為了實(shí)現(xiàn)分布式奇偶校驗(yàn),除了一 個(gè)PD之外的所有PD必須向系統(tǒng)呈現(xiàn)以便操作。任何一個(gè)PD的失效必然導(dǎo)致該P(yáng)D的更換。然而,單個(gè)PD的失效不會(huì)引起系統(tǒng)失效。RAID級(jí)別6結(jié)合雙重分布式奇偶校驗(yàn)使用條帶 化。RAID級(jí)別6系統(tǒng)需要使用至少4個(gè)PD,2個(gè)PD用于存儲(chǔ)分布式奇偶校驗(yàn)位。即使2個(gè) PD失效,該系統(tǒng)還可以繼續(xù)操作。雙重奇偶校驗(yàn)在每個(gè)VD由大量PD構(gòu)成的系統(tǒng)中變得日 益重要。使用單奇偶校驗(yàn)的RAID級(jí)別系統(tǒng)易遭受數(shù)據(jù)丟失損壞,直到重建失效設(shè)備為止。 在RAID級(jí)別6的系統(tǒng)中,在第一個(gè)失效的PD的重建完成之前,其它VD之一的PD失效的情 況下,使用雙重奇偶校驗(yàn)允許重建具有失效PD的VD,不會(huì)具有丟失數(shù)據(jù)的風(fēng)險(xiǎn)。再次參考圖5,DAS控制器120包括CPU130、存儲(chǔ)器設(shè)備140,以及I/O接口設(shè)備 150。I/O接口設(shè)備150控制去往和來自PD129的數(shù)據(jù)傳輸。I/O接口設(shè)備150通常被配置 為執(zhí)行符合例如諸如SAS和/或SATA標(biāo)準(zhǔn)以及其變體的已知數(shù)據(jù)傳輸協(xié)議標(biāo)準(zhǔn)的數(shù)據(jù)傳 輸,盡管也可以為這個(gè)目的使用其它已知的數(shù)據(jù)傳輸協(xié)議以及專有數(shù)據(jù)傳輸協(xié)議?,F(xiàn)在將參考圖4和5描述DAS系統(tǒng)100的操作。在典型的寫操作過程中,DAS控 制器120的CPU130從外部服務(wù)器或工作站(未示出)接收將被寫到一個(gè)或多個(gè)PD129的 數(shù)據(jù)。DAS控制器CPU130使用SSD陣列110作為WB高速緩沖存儲(chǔ)器,以便臨時(shí)存儲(chǔ)將被寫 到PD129的數(shù)據(jù)。下面參考圖6更詳細(xì)地描述在SSDllO內(nèi)WB高速緩存數(shù)據(jù)的處理。在數(shù) 據(jù)已被WB高速緩存到SSDllO之后的某個(gè)時(shí)間點(diǎn),DAS控制器CPU130使得高速緩存的數(shù)據(jù) 被從SSDl 10傳輸,并且被存儲(chǔ)在一個(gè)或多個(gè)PD129內(nèi)。存儲(chǔ)器設(shè)備140包含用于執(zhí)行RAID VD的虛擬地址和PD129的物理地址之間的映射的核心邏輯。DAS控制器120使得高速緩存 的數(shù)據(jù)被存儲(chǔ)在PD129中相應(yīng)的物理地址處。DAS控制器CPU130還根據(jù)DAS系統(tǒng)100的 RAID級(jí)別執(zhí)行計(jì)算,諸如奇偶校驗(yàn)計(jì)算。例如,如果DAS系統(tǒng)100的RAID級(jí)別使用奇偶校 驗(yàn),DAS控制器CPU130計(jì)算奇偶檢驗(yàn)位,并且I/O接口設(shè)備150使得該奇偶校驗(yàn)位被存儲(chǔ) 在一個(gè)或多個(gè)PD129內(nèi)。在典型的讀操作過程中,DAS控制器CPU130從外部服務(wù)器或工作站(未示出) 接收讀請(qǐng)求,并且使用保持在存儲(chǔ)器設(shè)備140內(nèi)的邏輯,處理該讀請(qǐng)求,以便確定將從其讀 取數(shù)據(jù)的一個(gè)或多個(gè)PD129的物理地址。DAS控制器CPU130然后使得從所述數(shù)據(jù)駐留在 PD129內(nèi)的地址檢索請(qǐng)求的數(shù)據(jù),并且將其發(fā)送到外部服務(wù)器或工作站(未示出)。存儲(chǔ)器 設(shè)備140的一部分或DAS控制器120內(nèi)的某些其它存儲(chǔ)器設(shè)備(未示出)可被用作讀高速 緩沖存儲(chǔ)器,在該情況下,如果CPU130確定所請(qǐng)求的數(shù)據(jù)被保持在讀高速緩沖存儲(chǔ)器內(nèi), CPU130從讀高速緩沖存儲(chǔ)器而不是從PD129讀取數(shù)據(jù)。圖6示出了表示根據(jù)說明性實(shí)施例,由DAS控制器120之一的CPU130執(zhí)行的WB高 速緩存算法的流程圖。每個(gè)DAS控制器120的CPU130執(zhí)行該WB高速緩存算法。然而,為 了簡(jiǎn)短起見,將僅參考其中一個(gè)DAS控制器120描述該算法。當(dāng)服務(wù)器或工作站(未示出) 向DAS控制器120發(fā)送將被寫到PD129的數(shù)據(jù)時(shí),如方框201所指示的,DAS控制器120接 收該數(shù)據(jù)。然后CPU130處理接收到的數(shù)據(jù),以便確定發(fā)生了高速緩存“命中”還是高速緩 存“缺失”,如方框203所指示的。高速緩存“命中”意味著CPU130確定該數(shù)據(jù)當(dāng)前被保持 在SSDllO內(nèi)的高速緩沖存儲(chǔ)器中。高速緩存“缺失”意味著CPU130確定該數(shù)據(jù)當(dāng)前未被 保持在高速緩沖存儲(chǔ)器內(nèi)。如果CPU130確定發(fā)生了高速緩存缺失,CPU130使得該數(shù)據(jù)被寫到SSD陣列110的 高速緩沖存儲(chǔ)器,如方框205所指示的。在數(shù)據(jù)被寫到SSD陣列110的高速緩沖存儲(chǔ)器之后 的某個(gè)時(shí)間點(diǎn),CPU130使得該數(shù)據(jù)被存儲(chǔ)在PD129內(nèi)的物理地址內(nèi),如方框206所指示的。在方框203,如果CPU130確定發(fā)生了高速緩存命中,在由方框206表示的步驟中,CPU130使 得保持在SSD陣列110的高速緩沖存儲(chǔ)器內(nèi)的相應(yīng)數(shù)據(jù)被存儲(chǔ)在SSD陣列110內(nèi)的相應(yīng)物 理地址內(nèi)。與上面參考圖1-3所述的已知高速緩存一致性方法相反,根據(jù)本發(fā)明,通過為SSD 陣列110使用一定級(jí)別的RAID技術(shù)提供高速緩存一致性。具體地,當(dāng)DAS控制器120在 SSD陣列110的高速緩沖存儲(chǔ)器內(nèi)存儲(chǔ)數(shù)據(jù)時(shí),使用RAID技術(shù)以便確保在SSD陣列110中 的高速緩存該數(shù)據(jù)的SSD失效的情況下,該數(shù)據(jù)可以被恢復(fù)。例如,可以使用RAID級(jí)別0, 從而當(dāng)每個(gè)DAS控制器120在SSD陣列110的高速緩沖存儲(chǔ)器內(nèi)存儲(chǔ)數(shù)據(jù)時(shí),數(shù)據(jù)被條帶 化在SSD陣列110的多個(gè)SSD上。例如,如果使用RAID級(jí)別1,那么當(dāng)每個(gè)DAS控制器120 在SSD陣列110的高速緩沖存儲(chǔ)器內(nèi)存儲(chǔ)數(shù)據(jù)時(shí),該數(shù)據(jù)被復(fù)制或鏡像到SSD陣列110的 多個(gè)SSD內(nèi)。如果SSD陣列110的其中一個(gè)SSD失效,SSD陣列110實(shí)現(xiàn)的RAID級(jí)別的技 術(shù)將允許恢復(fù)數(shù)據(jù)。以這種方式,DAS系統(tǒng)100是完全高速緩存一致的。本發(fā)明不受用于 確保高速緩存在SSD陣列110的高速緩沖存儲(chǔ)器內(nèi)的數(shù)據(jù)的高速緩存一致性所使用的RAID 級(jí)別的限制。另外,SSD陣列110通常,但不必須,被劃分為由相應(yīng)DAS控制器120使用的相應(yīng)部 分。例如,假設(shè)總共有N個(gè)DAS控制器120,其中N是等于或大于1的正整數(shù),SSD陣列110 的存儲(chǔ)容量將被劃分為N個(gè)相等的部分,每個(gè)部分被相應(yīng)的DAS控制器120使用。以這種 方式劃分SSD陣列110避免了 DAS控制器120訪問SSD陣列110時(shí)的訪問沖突。然而,如 果DAS控制器120中的其中一個(gè)失效,其它DAS控制器120中的其中一個(gè)可以訪問存儲(chǔ)在 SSD陣列110內(nèi)并且與失效的DAS控制器120相關(guān)聯(lián)的數(shù)據(jù)。如本領(lǐng)域已知的,數(shù)據(jù)具有與其相關(guān)聯(lián)的元數(shù)據(jù),元數(shù)據(jù)定義該數(shù)據(jù)的屬性,諸 如,例如,數(shù)據(jù)來源的標(biāo)識(shí)(即,散列高速緩存標(biāo)簽)、數(shù)據(jù)流的長(zhǎng)度、以及數(shù)據(jù)是否已被修 改(即,狀態(tài)指示)。在DAS系統(tǒng)中,元數(shù)據(jù)通常被存儲(chǔ)在DAS控制器內(nèi)的動(dòng)態(tài)隨機(jī)存取存 儲(chǔ)器(DRAM)內(nèi)。根據(jù)本發(fā)明的一個(gè)說明性實(shí)施例,元數(shù)據(jù)存儲(chǔ)在DAS控制器120的存儲(chǔ)器 設(shè)備140內(nèi),而相應(yīng)的數(shù)據(jù)被以參考圖4-6的上述方式存儲(chǔ)在SSD陣列110的高速緩沖存 儲(chǔ)器內(nèi)?,F(xiàn)在將參考圖7描述用于處理元數(shù)據(jù)的說明性實(shí)施例。圖7示出了根據(jù)說明性實(shí)施例的圖4所示的DAS系統(tǒng)100的方框圖,其中數(shù)據(jù)被高 速緩存在SSD陣列110內(nèi),而相關(guān)聯(lián)的元數(shù)據(jù)被高速緩存在DAS控制器120內(nèi)的高速緩沖 存儲(chǔ)器內(nèi)。根據(jù)這個(gè)實(shí)施例,當(dāng)DAS控制器120之一的CPU130在SSD陣列110的高速緩沖 存儲(chǔ)器內(nèi)存儲(chǔ)數(shù)據(jù)時(shí),相應(yīng)的元數(shù)據(jù)被存儲(chǔ)在該DAS控制器120的存儲(chǔ)器設(shè)備140的高速 緩沖存儲(chǔ)器部分(未示出)內(nèi),或被存儲(chǔ)在該DAS控制器120的某些其它存儲(chǔ)器設(shè)備(未 示出)內(nèi)。另外,為了提供元數(shù)據(jù)的高速緩存一致性,如圖7中穿過相鄰DAS控制器120之 間的箭頭所示,存儲(chǔ)在該DAS控制器120內(nèi)的高速緩沖存儲(chǔ)器內(nèi)的元數(shù)據(jù)被鏡像到一個(gè)或 多個(gè)其它DAS控制器120內(nèi)的高速緩沖存儲(chǔ)器內(nèi)。以這種方式,如果其中一個(gè)DAS控制器 120失效,可以從其中已經(jīng)鏡像元數(shù)據(jù)的其它DAS控制器120的高速緩沖存儲(chǔ)器中恢復(fù)相應(yīng) 的元數(shù)據(jù)。圖8示出了根據(jù)說明性實(shí)施例的圖4所示的DAS系統(tǒng)100的方框圖,其中數(shù)據(jù)和 相關(guān)聯(lián)的元數(shù)據(jù)被高速緩存在SSD陣列110內(nèi)。在SSD中,數(shù)據(jù)通常被寫到預(yù)定字節(jié)(B) 數(shù)目的塊內(nèi),例如,每個(gè)塊520B。由信息技術(shù)標(biāo)準(zhǔn)國(guó)際委員會(huì)(INCITS)的標(biāo)準(zhǔn)TlO管理塊格式。標(biāo)準(zhǔn)TlO規(guī)定每個(gè)數(shù)據(jù)塊包括數(shù)據(jù)完整性字段(DIF),該字段包括保護(hù)信息,諸如循 環(huán)冗余校驗(yàn)(CRC)位、應(yīng)用標(biāo)簽位和參考標(biāo)簽位。標(biāo)準(zhǔn)TlO定義的DIF由每個(gè)塊末尾的8B 構(gòu)成。因此,每個(gè)塊由512B的數(shù)據(jù)和8B的DIF構(gòu)成。根據(jù)這個(gè)說明性實(shí)施例,每個(gè)數(shù)據(jù)塊 的8B DIF用于表示與該數(shù)據(jù)塊相關(guān)聯(lián)的元數(shù)據(jù)。因此,數(shù)據(jù)和其相關(guān)聯(lián)的元數(shù)據(jù)一起存儲(chǔ) 在SSD陣列110的高速緩沖存儲(chǔ)器內(nèi)。將數(shù)據(jù)和其相關(guān)聯(lián)的元數(shù)據(jù)一起高速緩存確保在操作過程中在出現(xiàn)電源故障的 情況下,更新數(shù)據(jù)而不更新其相關(guān)聯(lián)的元數(shù)據(jù),或反之亦然。例如,如果數(shù)據(jù)和元數(shù)據(jù)被彼 此無關(guān)地高速緩存在不同的存儲(chǔ)器設(shè)備內(nèi),一個(gè)存儲(chǔ)器設(shè)備的電源故障將使得不更新存儲(chǔ) 在失效存儲(chǔ)器設(shè)備內(nèi)的數(shù)據(jù)或元數(shù)據(jù),而更新存儲(chǔ)在不受電源故障影響的其它存儲(chǔ)器設(shè)備 內(nèi)的數(shù)據(jù)或元數(shù)據(jù)。將數(shù)據(jù)和元數(shù)據(jù)一起高速緩存在SSD陣列110的高速緩沖存儲(chǔ)器內(nèi)避 免了這種問題。根據(jù)這個(gè)示例實(shí)施例,由64KB構(gòu)成SSD陣列110的高速緩沖存儲(chǔ)器中的高速緩存 行,其中k = 1024。由于給定的高速緩存行的每個(gè)塊由512B的數(shù)據(jù)構(gòu)成,每個(gè)高速緩存行 由128個(gè)塊構(gòu)成(即,(64BX1024)/512B = 128)。給定高速緩存行的128個(gè)塊中的每一 個(gè)塊的DIF由8B元數(shù)據(jù)構(gòu)成。然而,對(duì)于每個(gè)高速緩存行僅需要大約64B的元數(shù)據(jù)。這些 64B的元數(shù)據(jù)被劃分為8B的部分。因此,元數(shù)據(jù)僅需要用于給定高速緩存行的8塊的DIF。 根據(jù)該說明性實(shí)施例,每個(gè)128塊高速緩存行的前8個(gè)塊被分配給與包含在該高速緩存行 內(nèi)的數(shù)據(jù)相關(guān)聯(lián)的8B元數(shù)據(jù)。為了提供冗余,相同的8B元數(shù)據(jù)被復(fù)制到該高速緩存行的 下8個(gè)塊的8個(gè)DIF中的每一個(gè)內(nèi)。該高速緩存行的最后8個(gè)塊的8個(gè)DIF中包含64B元 數(shù)據(jù)的散列。由于寫到高速緩存行的第一個(gè)塊和最后一個(gè)塊被該散列彼此相關(guān)聯(lián),這種方 法確保了原子性。圖9示出了表示由圖8所示的DAS控制器120執(zhí)行的WB高速緩存算法的流程圖。 將參考圖5、8和9描述該算法。DAS控制器120中的每一個(gè)的CPU130執(zhí)行該WB高速緩存 算法。然而為了簡(jiǎn)短起見,僅參考其中一個(gè)DAS控制器120描述該算法。當(dāng)服務(wù)器或工作 站(未示出)向DAS控制器120發(fā)送將被寫到PD129的數(shù)據(jù)時(shí),DAS控制器120接收該數(shù) 據(jù)和其相關(guān)聯(lián)的元數(shù)據(jù),如方框301所指示的。然后CPU130處理接收到的數(shù)據(jù),以便確定 發(fā)生了高速緩存“命中”還是高速緩存“缺失”,如方框303所指示的。如果CPU130確定發(fā)生了高速緩存缺失,CPU130計(jì)算元數(shù)據(jù)散列,并且使得數(shù)據(jù)、 元數(shù)據(jù)和元數(shù)據(jù)散列被寫到SSD陣列110的高速緩沖存儲(chǔ)器,如方框305所指示的。存在用 于計(jì)算元數(shù)據(jù)散列的各種已知散列算法??梢詾檫@個(gè)目的使用任意適合的已知散列算法。 因此,為了簡(jiǎn)短起見,此處不對(duì)用于計(jì)算元數(shù)據(jù)散列的算法進(jìn)行描述。在數(shù)據(jù)被寫到SSD陣列110的高速緩沖存儲(chǔ)器之后的某個(gè)時(shí)間點(diǎn),CPU130使得該 數(shù)據(jù)和其相關(guān)聯(lián)的元數(shù)據(jù)被存儲(chǔ)到PD129中的物理地址內(nèi),如方框306所指示的。如果在 方框303,CPU130確定發(fā)生了高速緩存命中,在由方框306表示的步驟中,CPU130使得保持 在SSD陣列110的高速緩沖存儲(chǔ)器內(nèi)的相應(yīng)數(shù)據(jù)和元數(shù)據(jù)被存儲(chǔ)到SSD陣列110內(nèi)的相應(yīng) 物理地址內(nèi)。應(yīng)當(dāng)注意,上述參考圖6和9描述的WB高速緩存算法可被以各種方法實(shí)現(xiàn)。通常 在CPU130中完全以硬件或以硬件和軟件或固件的組合執(zhí)行該WB算法。用于這個(gè)目的的軟 件或固件指令被存儲(chǔ)在計(jì)算機(jī)可讀介質(zhì)內(nèi),例如,諸如存儲(chǔ)在DAS控制器120的存儲(chǔ)器設(shè)備140 內(nèi)。本領(lǐng)域的技術(shù)人員應(yīng)當(dāng)理解,可以對(duì)上述實(shí)施例進(jìn)行許多變型,并且所有這些變 型都在本發(fā)明的范圍內(nèi)。例如,可以在市場(chǎng)上獲得不使用DIF的SSD。這些SSD適用于本發(fā) 明用以高速緩存數(shù)據(jù)、元數(shù)據(jù)和元數(shù)據(jù)散列。本發(fā)明不限于在SSD陣列110中使用任意特 定類型或配置的SSD。本發(fā)明還不限于有關(guān)DAS控制器120的配置。圖5所示的DAS控制 器120的配置僅是適用于本發(fā)明的SSD控制器配置的一個(gè)例子。應(yīng)當(dāng)注意,出于證明本發(fā)明的原理和概念的目的,上面參考說明性實(shí)施例描述了 本發(fā)明。本領(lǐng)域的技術(shù)人員將會(huì)理解,可以對(duì)此處描述的實(shí)施例進(jìn)行許多修改,并且所有這 些修改都在本發(fā)明的范圍內(nèi)。
權(quán)利要求
一種直接連接存儲(chǔ)DAS系統(tǒng),包括配置為物理磁盤驅(qū)動(dòng)器PD的廉價(jià)或獨(dú)立磁盤冗余陣列RAID陣列的多個(gè)磁硬盤驅(qū)動(dòng)器HDD;配置為高速緩沖存儲(chǔ)器的固態(tài)盤SSD陣列;以及連接到所述PD的RAID陣列并且連接到所述SSD陣列的至少第一和第二DAS控制器,每個(gè)DAS控制器具有中央處理單元CPU、本地存儲(chǔ)器設(shè)備和輸入/輸出I/O接口設(shè)備,其中每個(gè)CPU和每個(gè)本地存儲(chǔ)器設(shè)備配置為執(zhí)行與所述PD的RAID陣列的RAID配置一致的RAID級(jí)別的技術(shù),并且其中每個(gè)CPU配置為執(zhí)行使得在相應(yīng)DAS控制器中接收的數(shù)據(jù)被臨時(shí)存儲(chǔ)在所述SSD陣列的高速緩沖存儲(chǔ)器內(nèi),并且隨后被存儲(chǔ)在所述PD的RAID陣列的一個(gè)或多個(gè)PD內(nèi)的高速緩存算法。
2.如權(quán)利要求1所述的DAS系統(tǒng),其中所述高速緩存算法是在將數(shù)據(jù)存儲(chǔ)在PD的RAID 陣列的一個(gè)或多個(gè)PD內(nèi)之前,在所述SSD陣列的高速緩沖存儲(chǔ)器內(nèi)寫回式WB高速緩存所 述數(shù)據(jù)的WB高速緩存算法。
3.如權(quán)利要求2所述的DAS系統(tǒng),其中所述數(shù)據(jù)具有與其相關(guān)聯(lián)的元數(shù)據(jù),并且其中所 述DAS控制器的每個(gè)本地存儲(chǔ)器設(shè)備具有其用作高速緩沖存儲(chǔ)器的部分,并且其中由相應(yīng) CPU執(zhí)行的WB高速緩存算法使得與在相應(yīng)DAS控制器內(nèi)接收到的數(shù)據(jù)相關(guān)聯(lián)的元數(shù)據(jù)被 臨時(shí)存儲(chǔ)在相應(yīng)本地存儲(chǔ)器設(shè)備的相應(yīng)高速緩沖存儲(chǔ)器部分內(nèi),并且隨后被存儲(chǔ)在PD的 RAID陣列的一個(gè)或多個(gè)PD內(nèi)。
4.如權(quán)利要求2所述的DAS系統(tǒng),其中所述數(shù)據(jù)具有與其相關(guān)聯(lián)的元數(shù)據(jù),并且其中由 相應(yīng)CPU執(zhí)行的WB高速緩存算法使得與在相應(yīng)DAS控制器內(nèi)接收到的數(shù)據(jù)相關(guān)聯(lián)的元數(shù) 據(jù)被臨時(shí)存儲(chǔ)在所述SSD陣列的高速緩沖存儲(chǔ)器內(nèi),并且隨后被存儲(chǔ)在PD的RAID陣列的 一個(gè)或多個(gè)PD內(nèi)。
5.如權(quán)利要求1所述的DAS系統(tǒng),其中所述相應(yīng)CPU配置為執(zhí)行關(guān)于數(shù)據(jù)在所述SSD 陣列內(nèi)的臨時(shí)存儲(chǔ)的一定級(jí)別的RAID技術(shù),從而為臨時(shí)存儲(chǔ)在所述SSD陣列內(nèi)的數(shù)據(jù)提供高速緩存一致性。
6.如權(quán)利要求5所述的DAS系統(tǒng),其中所述數(shù)據(jù)具有與其相關(guān)聯(lián)的元數(shù)據(jù),并且其中由 相應(yīng)CPU執(zhí)行的高速緩存算法使得所述數(shù)據(jù)被存儲(chǔ)在所述SSD陣列的塊內(nèi),每個(gè)塊包括數(shù) 據(jù)完整性字段DIF,并且其中所述相應(yīng)CPU使得與在相應(yīng)DAS控制器內(nèi)接收到的數(shù)據(jù)相關(guān)聯(lián) 的元數(shù)據(jù)被存儲(chǔ)在與所述塊中的至少一個(gè)塊相關(guān)聯(lián)的DIF中的至少一個(gè)DIF內(nèi),相關(guān)聯(lián)的 所述數(shù)據(jù)被在所述塊內(nèi)存儲(chǔ)在所述SSD陣列內(nèi)。
7.如權(quán)利要求6所述的DAS系統(tǒng),其中由每個(gè)相應(yīng)CPU執(zhí)行的高速緩存算法包括計(jì)算 所述元數(shù)據(jù)的散列的散列算法,并且其中每個(gè)相應(yīng)散列被存儲(chǔ)在與所述塊中的至少一個(gè)塊 相關(guān)聯(lián)的DIF中的所述至少一個(gè)DIF內(nèi),所述相關(guān)聯(lián)數(shù)據(jù)被在所述塊內(nèi)存儲(chǔ)在所述SSD陣 列內(nèi)。
8.如權(quán)利要求6所述的DAS系統(tǒng),其中與所述數(shù)據(jù)相關(guān)聯(lián)的元數(shù)據(jù)包括數(shù)據(jù)來源的指 示、數(shù)據(jù)長(zhǎng)度的指示、以及所述數(shù)據(jù)是否已被修改的指示。
9.一種用于保護(hù)直接連接存儲(chǔ)DAS系統(tǒng)內(nèi)的高速緩存數(shù)據(jù)的完整性的方法,該方法包括在第一 DAS控制器中,接收數(shù)據(jù),所述第一 DAS控制器包括中央處理單元CPU、本地存儲(chǔ)器設(shè)備和輸入/輸出I/O接口設(shè)備;在第一 DAS控制器的CPU中,執(zhí)行使得在所述第一 DAS控制器中接收的數(shù)據(jù)被臨時(shí)存 儲(chǔ)在固態(tài)盤SSD陣列的一個(gè)或多個(gè)固態(tài)盤內(nèi),并且隨后被存儲(chǔ)在被配置為物理磁盤驅(qū)動(dòng)器 PD的廉價(jià)或獨(dú)立磁盤冗余陣列RAID陣列的一個(gè)或多個(gè)磁硬盤驅(qū)動(dòng)器HDD內(nèi)的高速緩存算 法;在第二 DAS控制器中,接收數(shù)據(jù),所述第二 DAS控制器包括CPU、本地存儲(chǔ)器設(shè)備和I/O 接口設(shè)備;和在所述第二 DAS控制器的CPU中,執(zhí)行使得在所述第二 DAS控制器中接收的數(shù)據(jù)被臨 時(shí)存儲(chǔ)在所述SSD陣列的一個(gè)或多個(gè)SSD內(nèi),并且隨后被存儲(chǔ)在配置為PD的RAID陣列的 一個(gè)或多個(gè)磁HDD內(nèi)的高速緩存算法。
10.如權(quán)利要求9所述的方法,其中所述高速緩存算法是在將數(shù)據(jù)存儲(chǔ)在PD的RAID陣 列的一個(gè)或多個(gè)PD內(nèi)之前,在所述SSD陣列的高速緩沖存儲(chǔ)器內(nèi)寫回式WB高速緩存所述 數(shù)據(jù)的WB高速緩存算法。
11.如權(quán)利要求10所述的方法,其中所述數(shù)據(jù)具有與其相關(guān)聯(lián)的元數(shù)據(jù),并且其中所 述DAS控制器的每個(gè)本地存儲(chǔ)器設(shè)備具有其用作高速緩沖存儲(chǔ)器的部分,并且其中由相應(yīng) CPU執(zhí)行的WB高速緩存算法使得與在相應(yīng)DAS控制器內(nèi)接收到的數(shù)據(jù)相關(guān)聯(lián)的元數(shù)據(jù)被 臨時(shí)存儲(chǔ)在相應(yīng)本地存儲(chǔ)器設(shè)備的相應(yīng)高速緩沖存儲(chǔ)器部分內(nèi),并且隨后被存儲(chǔ)在PD的 RAID陣列的一個(gè)或多個(gè)PD內(nèi)。
12.如權(quán)利要求10所述的方法,其中所述數(shù)據(jù)具有與其相關(guān)聯(lián)的元數(shù)據(jù),并且其中由 相應(yīng)CPU執(zhí)行的WB高速緩存算法使得與在相應(yīng)DAS控制器內(nèi)接收到的數(shù)據(jù)相關(guān)聯(lián)的元數(shù) 據(jù)被臨時(shí)存儲(chǔ)在所述SSD陣列的高速緩沖存儲(chǔ)器內(nèi),并且隨后被存儲(chǔ)在PD的RAID陣列的 一個(gè)或多個(gè)PD內(nèi)。
13.如權(quán)利要求9所述的方法,其中所述相應(yīng)CPU配置為執(zhí)行關(guān)于數(shù)據(jù)在所述SSD陣列 內(nèi)的臨時(shí)存儲(chǔ)的一定級(jí)別的RAID技術(shù),從而為臨時(shí)存儲(chǔ)在所述SSD陣列內(nèi)的數(shù)據(jù)提供高速緩存一致性。
14.如權(quán)利要求13所述的方法,其中所述數(shù)據(jù)具有與其相關(guān)聯(lián)的元數(shù)據(jù),并且其中由 相應(yīng)CPU執(zhí)行的高速緩存算法使得所述數(shù)據(jù)被存儲(chǔ)在所述SSD陣列的塊內(nèi),每個(gè)塊包括數(shù) 據(jù)完整性字段DIF,并且其中所述相應(yīng)CPU使得與在相應(yīng)DAS控制器內(nèi)接收到的數(shù)據(jù)相關(guān)聯(lián) 的元數(shù)據(jù)被存儲(chǔ)在與所述塊中的至少一個(gè)塊相關(guān)聯(lián)的DIF中的至少一個(gè)DIF內(nèi),相關(guān)聯(lián)的 所述數(shù)據(jù)被在所述塊內(nèi)存儲(chǔ)在所述SSD陣列內(nèi)。
15.如權(quán)利要求14所述的方法,其中由每個(gè)相應(yīng)CPU執(zhí)行的高速緩存算法包括計(jì)算所 述元數(shù)據(jù)的散列的散列算法,并且其中每個(gè)相應(yīng)散列被存儲(chǔ)在與所述塊中的至少一個(gè)塊相 關(guān)聯(lián)的DIF中的所述至少一個(gè)DIF內(nèi),相關(guān)聯(lián)的所述數(shù)據(jù)被在所述塊內(nèi)存儲(chǔ)在所述SSD陣 列內(nèi)。
16.如權(quán)利要求14所述的方法,其中與所述數(shù)據(jù)相關(guān)聯(lián)的元數(shù)據(jù)包括數(shù)據(jù)來源的指 示、數(shù)據(jù)長(zhǎng)度的指示、以及所述數(shù)據(jù)是否已被修改的指示。
17.一種用于保護(hù)直接連接存儲(chǔ)DAS系統(tǒng)內(nèi)的高速緩存數(shù)據(jù)的完整性的裝置,所述裝 置包括用于在第一 DAS控制器中接收數(shù)據(jù)的部件;和用于在所述第一 DAS控制器中執(zhí)行高速緩存算法的部件,該高速緩存算法使得在所述 第一 DAS控制器中接收的數(shù)據(jù)被臨時(shí)存儲(chǔ)在固態(tài)盤SSD陣列的一個(gè)或多個(gè)固態(tài)盤內(nèi),并且 隨后被存儲(chǔ)在被配置為物理磁盤驅(qū)動(dòng)器PD的廉價(jià)或獨(dú)立磁盤冗余陣列RAID陣列的一個(gè)或 多個(gè)磁硬盤驅(qū)動(dòng)器HDD內(nèi)。
18.如權(quán)利要求17所述的裝置,其中所述高速緩存算法是在將數(shù)據(jù)存儲(chǔ)在PD的RAID 陣列的一個(gè)或多個(gè)PD內(nèi)之前,在所述SSD陣列的高速緩沖存儲(chǔ)器內(nèi)寫回式WB高速緩存所 述數(shù)據(jù)的WB高速緩存算法。
19.如權(quán)利要求17所述的裝置,其中所述數(shù)據(jù)具有與其相關(guān)聯(lián)的元數(shù)據(jù),并且其中所 述高速緩存算法使得與在所述DAS控制器內(nèi)接收到的數(shù)據(jù)相關(guān)聯(lián)的元數(shù)據(jù)被臨時(shí)存儲(chǔ)在 所述DAS控制器的本地存儲(chǔ)器設(shè)備的高速緩沖存儲(chǔ)器部分內(nèi),并且隨后被存儲(chǔ)在PD的RAID 陣列的一個(gè)或多個(gè)PD內(nèi)。
20.如權(quán)利要求17所述的裝置,其中所述數(shù)據(jù)具有與其相關(guān)聯(lián)的元數(shù)據(jù),并且其中所 述高速緩存算法使得與在所述DAS控制器內(nèi)接收到的數(shù)據(jù)相關(guān)聯(lián)的元數(shù)據(jù)被臨時(shí)存儲(chǔ)在 所述SSD陣列的高速緩沖存儲(chǔ)器內(nèi),并且隨后被存儲(chǔ)在PD的RAID陣列的一個(gè)或多個(gè)PD內(nèi)。
21.如權(quán)利要求17所述的裝置,其中所述DAS控制器配置為執(zhí)行關(guān)于數(shù)據(jù)在所述SSD 陣列內(nèi)的臨時(shí)存儲(chǔ)的一定級(jí)別的RAID技術(shù),從而為臨時(shí)存儲(chǔ)在所述SSD陣列內(nèi)的數(shù)據(jù)提供 高速緩存一致性。
22.如權(quán)利要求21所述的裝置,其中所述數(shù)據(jù)具有與其相關(guān)聯(lián)的元數(shù)據(jù),并且其中由 所述DAS控制器執(zhí)行的高速緩存算法使得所述數(shù)據(jù)被存儲(chǔ)在所述SSD陣列的塊內(nèi),每個(gè)塊 包括數(shù)據(jù)完整性字段DIF,并且其中所述DAS控制器使得與在相應(yīng)DAS控制器內(nèi)接收到的數(shù) 據(jù)相關(guān)聯(lián)的元數(shù)據(jù)被存儲(chǔ)在與所述塊中的至少一個(gè)塊相關(guān)聯(lián)的DIF中的至少一個(gè)DIF內(nèi), 相關(guān)聯(lián)的所述數(shù)據(jù)被在所述塊內(nèi)存儲(chǔ)在所述SSD陣列內(nèi)。
23.如權(quán)利要求22所述的裝置,其中由所述DAS控制器執(zhí)行的高速緩存算法包括計(jì)算 所述元數(shù)據(jù)的散列的散列算法,并且其中每個(gè)相應(yīng)散列被存儲(chǔ)在與所述塊中的至少一個(gè)塊 相關(guān)聯(lián)的DIF中的所述至少一個(gè)DIF內(nèi),相關(guān)聯(lián)的所述數(shù)據(jù)被在所述塊內(nèi)存儲(chǔ)在所述SSD 陣列內(nèi)。
24.如權(quán)利要求22所述的裝置,其中與所述數(shù)據(jù)相關(guān)聯(lián)的元數(shù)據(jù)包括數(shù)據(jù)來源的指 示、數(shù)據(jù)長(zhǎng)度的指示、以及所述數(shù)據(jù)是否已被修改的指示。
25.一種用于保護(hù)直接連接存儲(chǔ)DAS系統(tǒng)內(nèi)的高速緩存數(shù)據(jù)的完整性的方法,所述方 法包括在第一 DAS控制器中接收數(shù)據(jù);和在所述第一 DAS控制器中執(zhí)行高速緩存算法,該高速緩存算法使得在所述第一 DAS控 制器中接收的數(shù)據(jù)被臨時(shí)存儲(chǔ)在固態(tài)盤SSD陣列的一個(gè)或多個(gè)固態(tài)盤內(nèi),并且隨后被存儲(chǔ) 在被配置為物理磁盤驅(qū)動(dòng)器PD的廉價(jià)或獨(dú)立磁盤冗余陣列RAID陣列的一個(gè)或多個(gè)磁硬盤 驅(qū)動(dòng)器HDD內(nèi)。
26.如權(quán)利要求25所述的方法,其中所述高速緩存算法是在將數(shù)據(jù)存儲(chǔ)在PD的RAID 陣列的一個(gè)或多個(gè)PD內(nèi)之前,在所述SSD陣列的高速緩沖存儲(chǔ)器內(nèi)寫回式WB高速緩存所 述數(shù)據(jù)的WB高速緩存算法。
27.如權(quán)利要求25所述的方法,其中所述數(shù)據(jù)具有與其相關(guān)聯(lián)的元數(shù)據(jù),并且其中所述高速緩存算法使得與在所述DAS控制器內(nèi)接收到的數(shù)據(jù)相關(guān)聯(lián)的元數(shù)據(jù)被臨時(shí)存儲(chǔ)在 所述DAS控制器的本地存儲(chǔ)器設(shè)備的高速緩沖存儲(chǔ)器部分內(nèi),并且隨后被存儲(chǔ)在PD的RAID 陣列的一個(gè)或多個(gè)PD內(nèi)。
28.如權(quán)利要求25所述的方法,其中所述數(shù)據(jù)具有與其相關(guān)聯(lián)的元數(shù)據(jù),并且其中所 述高速緩存算法使得與在所述DAS控制器內(nèi)接收到的數(shù)據(jù)相關(guān)聯(lián)的元數(shù)據(jù)被臨時(shí)存儲(chǔ)在 所述SSD陣列的高速緩沖存儲(chǔ)器內(nèi),并且隨后被存儲(chǔ)在PD的RAID陣列的一個(gè)或多個(gè)PD內(nèi)。
29.如權(quán)利要求25所述的方法,其中所述DAS控制器配置為執(zhí)行關(guān)于數(shù)據(jù)在所述SSD 陣列內(nèi)的臨時(shí)存儲(chǔ)的一定級(jí)別的RAID技術(shù),從而為臨時(shí)存儲(chǔ)在所述SSD陣列內(nèi)的數(shù)據(jù)提供 高速緩存一致性。
30.如權(quán)利要求29所述的方法,其中所述數(shù)據(jù)具有與其相關(guān)聯(lián)的元數(shù)據(jù),并且其中由 所述DAS控制器執(zhí)行的高速緩存算法使得所述數(shù)據(jù)被存儲(chǔ)在所述SSD陣列的塊內(nèi),每個(gè)塊 包括數(shù)據(jù)完整性字段DIF,并且其中所述DAS控制器使得與在相應(yīng)DAS控制器內(nèi)接收到的數(shù) 據(jù)相關(guān)聯(lián)的元數(shù)據(jù)被存儲(chǔ)在與所述塊中的至少一個(gè)塊相關(guān)聯(lián)的DIF中的至少一個(gè)DIF內(nèi), 相關(guān)聯(lián)的所述數(shù)據(jù)被在所述塊內(nèi)存儲(chǔ)在所述SSD陣列內(nèi)。
31.如權(quán)利要求30所述的方法,其中由所述DAS控制器執(zhí)行的高速緩存算法包括計(jì)算 所述元數(shù)據(jù)的散列的散列算法,并且其中每個(gè)相應(yīng)散列被存儲(chǔ)在與所述塊中的至少一個(gè)塊 相關(guān)聯(lián)的DIF中的所述至少一個(gè)DIF內(nèi),相關(guān)聯(lián)的所述數(shù)據(jù)被在所述塊內(nèi)存儲(chǔ)在所述SSD 陣列內(nèi)。
32.如權(quán)利要求30所述的方法,其中與所述數(shù)據(jù)相關(guān)聯(lián)的元數(shù)據(jù)包括數(shù)據(jù)來源的指 示、數(shù)據(jù)長(zhǎng)度的指示、以及所述數(shù)據(jù)是否已被修改的指示。
全文摘要
本發(fā)明涉及用于保護(hù)高速緩存數(shù)據(jù)完整性的方法和裝置,提供了一種執(zhí)行RAID技術(shù)的DAS系統(tǒng),其中DAS系統(tǒng)的DAS控制器外部的固態(tài)盤(SSD)陣列被DAS控制器用作WB高速緩沖存儲(chǔ)器,以便執(zhí)行WB高速緩存操作。使用外部SSD陣列作為WB高速緩沖存儲(chǔ)器允許DAS系統(tǒng)完全實(shí)現(xiàn)高速緩存一致性,而不會(huì)明顯增加DAS系統(tǒng)的復(fù)雜性,并且不會(huì)增加用于執(zhí)行高速緩存操作的帶寬數(shù)量。另外,使用外部SSD陣列作為WB高速緩沖存儲(chǔ)器避免了鏡像DAS控制器的需要。
文檔編號(hào)G06F12/16GK101982816SQ20101020076
公開日2011年3月2日 申請(qǐng)日期2010年6月8日 優(yōu)先權(quán)日2009年6月8日
發(fā)明者L·伯特 申請(qǐng)人:Lsi公司