欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

用于數(shù)據(jù)儲存系統(tǒng)的端點高速緩存的制作方法與工藝

文檔序號:12005079閱讀:260來源:國知局
用于數(shù)據(jù)儲存系統(tǒng)的端點高速緩存的制作方法與工藝
用于數(shù)據(jù)儲存系統(tǒng)的端點高速緩存本申請要求享有于2010年11月16日遞交的、美國臨時專利申請No.61/414,191的優(yōu)先權(quán),該專利申請的內(nèi)容以引用方式全部并入本文。技術(shù)領(lǐng)域本申請涉及數(shù)據(jù)儲存系統(tǒng)和方法的領(lǐng)域,更具體地,涉及提供用于數(shù)據(jù)儲存系統(tǒng)的高速緩存的系統(tǒng)和方法以改善數(shù)據(jù)輸入和輸出操作的效率和速度。

背景技術(shù):
數(shù)據(jù)儲存領(lǐng)域的一個重要問題是如何使得數(shù)據(jù)儲存性能趕上計算機的處理性能以實現(xiàn)高效的系統(tǒng)。在計算機系統(tǒng)的數(shù)據(jù)儲存領(lǐng)域的高效系統(tǒng)通常指的是那些在正常工作量下以成比例的方式使用所有的主要部件的系統(tǒng)。也就是說,計算機系統(tǒng)及其相關(guān)聯(lián)的數(shù)據(jù)儲存設(shè)備優(yōu)選地均以其峰值能力操作。本發(fā)明以及在此所描述的相關(guān)背景一般涉及例如各種類型的盤的永久儲存器,而不是嵌入到計算機內(nèi)的短期儲存器(通常稱作隨機存取存儲器)。當(dāng)前,限制因素是儲存性能,因為計算機系統(tǒng)及其相關(guān)聯(lián)的中央處理單元已經(jīng)遠(yuǎn)遠(yuǎn)超過了這些數(shù)據(jù)儲存系統(tǒng)的速度和效率能力?,F(xiàn)有技術(shù)中關(guān)于如何改善數(shù)據(jù)儲存性能的方案是使得儲存器以及計算機和儲存器之間的連接更快。這些的例子包括各種方式:例如RAID分段的聚合儲存器,改善儲存控制器的原始性能,如大部分RAID控制器一樣在儲存控制器中、在儲存裝置中或在儲存器前的網(wǎng)絡(luò)服務(wù)器上添加高速緩存,以及將儲存活動分布到多個儲存節(jié)點上。還存在一種強烈的趨勢,即集中儲存器以便于管理,這在用于組織和聚合存儲器的SAN(儲存區(qū)域網(wǎng))和NAS(網(wǎng)絡(luò)附屬儲存)系統(tǒng)的出現(xiàn)中最佳例示出。涉及這些方案的基礎(chǔ)設(shè)施模型(更快且更集中的儲存器)可被描述為在由網(wǎng)絡(luò)連接到儲存系統(tǒng)的計算機上運行的大量應(yīng)用的流程圖。在這種模型中,顯然的是,為了儲存系統(tǒng)性能與計算機的潛在性能匹配,計算機與儲存系統(tǒng)之間的單個網(wǎng)絡(luò)性能(更高的帶寬和更低的延時)必須增加,以使得儲存系統(tǒng)性能和計算機性能之間能夠平衡。問題在于,即使很少的計算機所提供的潛在負(fù)載也比實際上經(jīng)濟網(wǎng)絡(luò)或中央儲存系統(tǒng)所服務(wù)的要大得多。計算機的內(nèi)部網(wǎng)絡(luò)(即其總線)以比外部網(wǎng)絡(luò)計算機通常支持的速度和能力快或高一個或兩個量級地操作。某些現(xiàn)有技術(shù)方案包括使用附加到儲存設(shè)備上的儲存加速器,例如那些形成高速緩存或分層功能以使得中央存儲器處的網(wǎng)絡(luò)性能符合儲存器自身性能。其它試圖解決該問題的方案已經(jīng)結(jié)合Linux內(nèi)核功能、基于若干塊的實施(例如bcache、fastcache、dmcache)、以及打算用于修改的文件系統(tǒng)的特定實施(已知為FS-cache)做出實驗。還存在具有相關(guān)功能的稱為BranchCache的WindowsTM設(shè)備,其被設(shè)計用于在廣域網(wǎng)鏈路上進(jìn)行只讀高速緩存。因此,本發(fā)明的目的是提供用于改善數(shù)據(jù)儲存系統(tǒng)的效率的新穎系統(tǒng)和方法。

技術(shù)實現(xiàn)要素:
根據(jù)本發(fā)明的一個實施例,提供了一種數(shù)據(jù)儲存系統(tǒng),包括:中央儲存系統(tǒng),通過網(wǎng)絡(luò)基礎(chǔ)設(shè)施與中央儲存系統(tǒng)進(jìn)行網(wǎng)絡(luò)通信的至少一個端點計算機系統(tǒng),以及與計算機系統(tǒng)的CPU進(jìn)行通信的儲存加速器;其中儲存加速器提供至少一個端點計算機能訪問的中央儲存系統(tǒng)上的數(shù)據(jù)的端點高速緩存。根據(jù)該實施例的一個方案,所述儲存加速器包括在所述CPU上運行的至少一個軟件模塊,用于控制附在所述計算機系統(tǒng)的總線上的物理儲存單元。根據(jù)該實施例的另一方案,所述儲存加速器位于從所述CPU到所述存儲加速器的數(shù)據(jù)吞吐量大于通過從所述CPU所述中央儲存系統(tǒng)的連接的數(shù)據(jù)吞吐量的位置。根據(jù)該實施例的另一方案,所述中央儲存系統(tǒng)包括具有層1至N(N>=1)的分層數(shù)據(jù)結(jié)構(gòu),并且其中所述儲存加速器包括用于所述中央儲存器的高速緩存,層0。根據(jù)該實施例的另一方案,所述物理儲存單元包括固態(tài)存儲器設(shè)備。根據(jù)該實施例的另一方案,所述儲存加速器包括數(shù)據(jù)高速緩存結(jié)構(gòu)。根據(jù)該實施例的另一方案,設(shè)置與所述儲存加速器進(jìn)行通信的過濾器驅(qū)動器。根據(jù)該實施例的另一方案,所述軟件模塊設(shè)置在所述過濾器驅(qū)動器上,并且所述過濾器驅(qū)動器包括用于確定被讀取或?qū)懭氲奈募欠褚驯粯?biāo)記為用于端點高速緩存的指令。根據(jù)該實施例的另一方案,用于確定被讀取或?qū)懭氲奈募欠褚驯粯?biāo)記為用于端點高速緩存的所述指令包括用于訪問文件元數(shù)據(jù)的指令。根據(jù)該實施例的另一方案,所述過濾器驅(qū)動器還包括用于確定所述計算機系統(tǒng)是否請求數(shù)據(jù)讀取操作的指令,如果是,則確定被讀取的數(shù)據(jù)是否存在于所述儲存加速器上,以及(a)如果是,則履行從所述儲存加速器的所述數(shù)據(jù)讀取操作;(b)如果否,則向所述中央儲存系統(tǒng)請求所述數(shù)據(jù),并將所述數(shù)據(jù)的副本提供給所述儲存加速器。根據(jù)該實施例的另一方案,所述過濾器驅(qū)動器還包括以下指令:用于確定所述計算機系統(tǒng)是否請求數(shù)據(jù)寫入操作,如果是,則將所述數(shù)據(jù)寫入所述儲存加速器。根據(jù)該實施例的另一方案,所述過濾器驅(qū)動器還包括用于將所述數(shù)據(jù)寫入所述中央儲存系統(tǒng)的指令。根據(jù)該實施例的另一方案,所述過濾器驅(qū)動器還包括用于使所述數(shù)據(jù)排隊以寫入到所述中央儲存系統(tǒng)的指令。根據(jù)該實施例的另一方案,所述過濾器驅(qū)動器還包括用于維持所述中央儲存系統(tǒng)和所述儲存加速器之間的數(shù)據(jù)一致性的指令。根據(jù)該實施例的另一方案,所述計算機系統(tǒng)包括移動設(shè)備。根據(jù)本發(fā)明的另一實施例,公開了一種數(shù)據(jù)儲存方法,包括以下步驟:提供中央儲存系統(tǒng),提供通過網(wǎng)絡(luò)基礎(chǔ)設(shè)施與所述中央儲存系統(tǒng)進(jìn)行網(wǎng)絡(luò)通信的至少一個端點計算機系統(tǒng),以及提供與所述計算機系統(tǒng)的CPU進(jìn)行通信的儲存加速器;其中所述儲存加速器提供所述至少一個端點計算機能訪問的所述中央儲存系統(tǒng)上的數(shù)據(jù)的端點高速緩存。根據(jù)該實施例的一個方案,所述儲存加速器包括在所述CPU上運行的至少一個軟件模塊,用于控制附在所述計算機系統(tǒng)的總線上的物理儲存單元。根據(jù)該實施例的另一方案,所述儲存加速器位于從所述CPU到所述存儲加速器的數(shù)據(jù)吞吐量大于通過從所述CPU到所述中央儲存系統(tǒng)的連接的數(shù)據(jù)吞吐量的位置。根據(jù)該實施例的另一方案,所述中央儲存系統(tǒng)包括具有層1至N(N>=1)的分層數(shù)據(jù)結(jié)構(gòu),并且其中所述儲存加速器包括用于所述中央儲存器的高速緩存,層0。根據(jù)該實施例的另一方案,所述物理儲存單元包括固態(tài)存儲器設(shè)備。根據(jù)該實施例的另一方案,所述儲存加速器包括數(shù)據(jù)高速緩存結(jié)構(gòu)。根據(jù)該實施例的另一方案,所述端點計算機系統(tǒng)適用于執(zhí)行數(shù)據(jù)讀取或數(shù)據(jù)寫入操作,并且所述方法還包括確定被讀取或?qū)懭氲奈募欠褚驯粯?biāo)記為用于端點高速緩存的步驟。根據(jù)該實施例的另一方案,所述方法還包括通過訪問文件元數(shù)據(jù)信息來確定被讀取或?qū)懭氲奈募欠褚驯粯?biāo)記為用于端點高速緩存。根據(jù)該實施例的另一方案,所述方法還包括確定所述計算機系統(tǒng)是否請求數(shù)據(jù)讀取操作,如果是,則確定被讀取的數(shù)據(jù)是否存在于所述儲存加速器上,以及(a)如果是,則履行從所述儲存加速器的所述數(shù)據(jù)讀取操作;(b)如果否,則向所述中央儲存系統(tǒng)請求所述數(shù)據(jù),并將所述數(shù)據(jù)的副本提供給所述儲存加速器。根據(jù)該實施例的另一方案,所述方法還包括確定所述計算機系統(tǒng)是否請求數(shù)據(jù)寫入操作,如果是,則將所述數(shù)據(jù)寫入所述儲存加速器。根據(jù)該實施例的另一方案,所述方法還包括將所述數(shù)據(jù)寫入所述中央儲存系統(tǒng)。根據(jù)該實施例的另一方案,所述方法還包括使所述數(shù)據(jù)排隊以寫入到所述中央儲存系統(tǒng)。根據(jù)該實施例的另一方案,所述方法還包括維持所述中央儲存系統(tǒng)和所述儲存加速器之間的數(shù)據(jù)一致性。根據(jù)該實施例的另一方案,所述寫入步驟包括寫入未緩存的數(shù)據(jù)。根據(jù)該實施例的另一方案,所述數(shù)據(jù)讀取操作是未緩存的。根據(jù)本發(fā)明的又一實施例,公開一種數(shù)據(jù)儲存方法,包括以下步驟:通過主動提供數(shù)據(jù)到操作系統(tǒng)緩沖區(qū)或者從操作系統(tǒng)緩沖區(qū)移除數(shù)據(jù),透明地修改應(yīng)用所請求的用于讀取和/或?qū)懭隝/O操作的數(shù)據(jù)的有效操作系統(tǒng)緩沖策略;按照需要為所述I/O操作啟用或禁用操作系統(tǒng)緩沖區(qū)高速緩存;其中提供數(shù)據(jù)到操作系統(tǒng)緩沖區(qū)高速緩存的步驟包括安排應(yīng)用使用由操作系統(tǒng)所高速緩存的所述數(shù)據(jù)。根據(jù)本發(fā)明的另一實施例,提供了一種數(shù)據(jù)儲存方法,其包括以下步驟:將應(yīng)用所請求的用于讀取和/或?qū)懭氩僮鞯臄?shù)據(jù)高速緩存到高速緩存位置;按照所述應(yīng)用所請求用于讀取和寫入I/O操作透明地修改數(shù)據(jù)的有效緩沖策略;其中改變有效緩沖策略的所述步驟包括在所述高速緩存位置緩沖所述應(yīng)用所請求的所述數(shù)據(jù)的至少一部分。根據(jù)該實施例的一個方案,上述高速緩存位置是如本文所描述的端點高速緩存。附圖說明現(xiàn)在將參照附圖,僅通過例子的方式描述實施例,其中:圖1示出了訪問網(wǎng)絡(luò)上的中央儲存器的計算機系統(tǒng)的一般現(xiàn)有技術(shù)的布置。圖2示意性示出了圖1的系統(tǒng)的數(shù)據(jù)傳輸率。圖3示出了應(yīng)用到圖1的系統(tǒng)上的現(xiàn)有技術(shù)的儲存加速器的布置。圖4示意性示出根據(jù)本發(fā)明的系統(tǒng)的一個實施例。圖5示出了圖3的系統(tǒng)的網(wǎng)絡(luò)所承載的負(fù)載。圖6示出了圖4的系統(tǒng)的網(wǎng)絡(luò)所承載的負(fù)載。圖7示意性示出了根據(jù)本發(fā)明的一般端點計算機系統(tǒng)。圖8為示出了根據(jù)本發(fā)明的方法的一個實施例的流程圖。具體實施方式如圖1所示,本發(fā)明提供了改善的通用計算基礎(chǔ)設(shè)施由通過網(wǎng)絡(luò)鏈路102將(一個或多個)計算機101連接到中央或公用儲存器103而組成。計算機101優(yōu)選為圖7所示的通用計算機系統(tǒng)20。計算機系統(tǒng)20具有多個物理和邏輯部件,包括中央處理單元(“CPU”)24、隨機存取存儲器(“RAM”)28、輸入/輸出(“I/O”)接口32、網(wǎng)絡(luò)接口36、非易失性儲存器40,以及使得CPU24與其它部件通信的局部總線44。CPU24執(zhí)行操作系統(tǒng)和多個軟件系統(tǒng)。RAM28為CPU24提供相對響應(yīng)的易失性儲存器。I/O接口32允許從一個或多個設(shè)備(例如,鍵盤、鼠標(biāo)等)接收輸入,并向例如顯示器和/或揚聲器的輸出設(shè)備輸出信息。網(wǎng)絡(luò)接口36允許與其它系統(tǒng)(包括圖1的儲存設(shè)備103)進(jìn)行通信。非易失性儲存器40儲存操作系統(tǒng)和程序。在計算機系統(tǒng)20的操作期間,程序和數(shù)據(jù)可以從非易失性儲存器40處取回并置于RAM28中以便于執(zhí)行?,F(xiàn)在參照圖2,示出了網(wǎng)絡(luò)209中計算機系統(tǒng)201與中央儲存器210通信的示意圖。本文的計算機系統(tǒng)包括網(wǎng)絡(luò)接口202,其經(jīng)由通信鏈路203與CPU204進(jìn)行通信聯(lián)系,而CPU204經(jīng)由通信鏈路205與磁盤接口進(jìn)行通信聯(lián)系,該磁盤接口經(jīng)由鏈路208與局域計算機儲存磁盤進(jìn)行通信。所述通信鏈路203、205和207在本領(lǐng)域中通常已知為計算機系統(tǒng)203的各個元件之間的通信器件。如圖所示,各個元件之間的數(shù)據(jù)傳輸率可以變化,例如在網(wǎng)絡(luò)接口202和CPU204之間為每秒32至128千兆比特,在CPU204和磁盤接口206之間為每秒32至128千兆比特,以及在磁盤接口206和磁盤208之間為每秒3至6千兆比特。儲存設(shè)備210自身可以是計算機系統(tǒng),包括分別經(jīng)由通信鏈路212、214、216連接的相應(yīng)的操作網(wǎng)絡(luò)接口211、CPU213、磁盤接口215和磁盤217。網(wǎng)絡(luò)209存在于計算機系統(tǒng)201和中央儲存器210之間。當(dāng)前,網(wǎng)絡(luò)通信由于物理和軟件的約束而限制在每秒0.1至10千兆比特。明顯的是,在計算機系統(tǒng)201和儲存系統(tǒng)210中,存在性能能力的分級,靠近CPU處開始為非常高的性能,隨著進(jìn)一步遠(yuǎn)離CPU而性能相對較低。然而,通常最低連接是在計算機和儲存系統(tǒng)之間的網(wǎng)絡(luò)連接。在多計算機網(wǎng)絡(luò)中,由于在不同的計算機和中央儲存器之間共享支持多數(shù)據(jù)流的基礎(chǔ)設(shè)施,因而也存在性能分級。在該環(huán)境下,且出于應(yīng)用的目的,將“端點”定義為作為來自中央儲存器的數(shù)據(jù)的最終接受者的每個計算機系統(tǒng)。在從中央儲存器傳輸數(shù)據(jù)到端點計算機系統(tǒng)中給定網(wǎng)絡(luò)基礎(chǔ)設(shè)施的內(nèi)在限制,本發(fā)明涉及改善到這些端點的數(shù)據(jù)傳輸。圖3示出了一個現(xiàn)有技術(shù)的方案,通過在數(shù)據(jù)進(jìn)入網(wǎng)絡(luò)302以傳輸?shù)接嬎銠C系統(tǒng)301之前,在網(wǎng)絡(luò)302和儲存器304之間放置加速器303以及布置儲存器304處的網(wǎng)絡(luò)性能以匹配儲存器304的性能,所述方案試圖改善數(shù)據(jù)傳輸?shù)男?。?dāng)加速器303是高速緩存或分層模塊的類型時,其可以被稱作層0儲存層,其中儲存系統(tǒng)自身包括已有的儲存層,層1、層2…層n。如圖4所示,根據(jù)本發(fā)明,加速器402上的層0儲存層從相對于計算機系統(tǒng)401的網(wǎng)絡(luò)的遠(yuǎn)端移動到計算機系統(tǒng)401本地,其中計算機系統(tǒng)401的CPU和加速器402上的層0儲存器之間的性能遠(yuǎn)高于圖3的現(xiàn)有技術(shù)的方案。因此,由于層0處于儲存流的端點處而不是在計算機和實際保存數(shù)據(jù)的層1(或者層N)之間的中間,所以使用術(shù)語“端點高速緩存”。此外,在本公開中,因為高速緩存是分層的具體子集,在分層中將數(shù)據(jù)移動到下一層的決策是“盡可能快”而不是例如“如果需要”的其它分層策略,并且特定層N可以被認(rèn)為是在所述層的數(shù)據(jù)將另外(或者額外地,取決于分層的類型)存在于某一層M(M>N)的高速緩存,所以通??苫Q地使用術(shù)語“高速緩存”和“分層”。通過查看以下描述將變得清晰,在本文描述的本發(fā)明不同于現(xiàn)有技術(shù)的方案,因為:(a)本發(fā)明基于文件存取,并且因為可以存取上下文,因而支持細(xì)粒度匹配策略以允許端點高速緩存選擇性地高速緩存數(shù)據(jù),并因此比較少區(qū)別的其它方案更高效;(b)本發(fā)明基于文件存取,因此能夠選擇是否在所有都相同的數(shù)據(jù)塊中操作(如基于塊的系統(tǒng)那樣),或者根據(jù)文件內(nèi)容變化(上下文有關(guān)),或者根據(jù)應(yīng)用請求變化,或者以依賴上下文的多于一種方式工作;(c)本發(fā)明對用于現(xiàn)有文件系統(tǒng)的終端用戶是完全透明的;以及(d)本發(fā)明是不可知的并且不需要對文件系統(tǒng)實施進(jìn)行修改以便操作。具體地,根據(jù)本發(fā)明的端點高速緩存不同于已知的大部分計算機系統(tǒng)保持在RAM內(nèi)的“緩沖區(qū)高速緩存”,因為(a)獨立于CPU且與緩沖區(qū)高速緩存的易失性特征相反,本發(fā)明的端點高速緩存中的數(shù)據(jù)被保持在局域?qū)?級別,直到高速緩存維護過程清理(清除新寫入到層1的數(shù)據(jù))且移除所述數(shù)據(jù);以及(b)與當(dāng)前緩沖區(qū)高速緩存采用的基于統(tǒng)計地預(yù)測方法(例如,預(yù)讀取或者分支預(yù)測)相反地,端點高速緩存可以使用先見(搶占式高速緩存或基于預(yù)取的內(nèi)部或外部知識)。根據(jù)本發(fā)明的端點高速緩存不同于現(xiàn)有技術(shù)的高速緩存網(wǎng)絡(luò)文件系統(tǒng),因為(a)本發(fā)明對于遠(yuǎn)程儲存系統(tǒng)是不可知的(例如,不是這樣的SunMicrosystemsTMCacheFS);(b)本發(fā)明對于遠(yuǎn)程儲存系統(tǒng)所使用的協(xié)議是不可知的(例如,不是這樣的已知為Coda和Intermezzo的方案);以及(c)本發(fā)明對于計算機通常是如何使用儲存器是透明的(例如TsumuFS或xCachefs的許多系統(tǒng)獨立于遠(yuǎn)程儲存系統(tǒng)的類型,但是因為它們需要以專有方式安裝遠(yuǎn)程儲存器而不是透明的)。現(xiàn)在將描述實施本發(fā)明的各種非限制性的例子。雖然以下的描述是關(guān)于與網(wǎng)絡(luò)通信的單個計算機上的單個端點高速緩存提供的,但是本發(fā)明同樣可應(yīng)用到訪問網(wǎng)絡(luò)的任意數(shù)量的計算機。此外,可以預(yù)期的是,多于一個的計算機系統(tǒng)可以形成單個端點,因此,可以為布置為整個系統(tǒng)中的端點的一個或多個計算機提供一個端點高速緩存。為了實現(xiàn)端點高速緩存,將端點處的計算機系統(tǒng)編程為透明地訪問局域?qū)?,而遠(yuǎn)程儲存器不知道任何改變。由于層0是高速緩存,其本質(zhì)是計算機和遠(yuǎn)程儲存器(朝向?qū)?)之間的網(wǎng)絡(luò)的性能需求降低,因為優(yōu)先地從局域?qū)?服務(wù)時間相關(guān)且預(yù)取的I/O,且因此與計算機直接訪問遠(yuǎn)程層0或?qū)?相比,對于層0高速緩存更新層1儲存層所需的網(wǎng)絡(luò)流量(以及隨后的網(wǎng)絡(luò)性能,對于每個端點是單獨的而對于網(wǎng)絡(luò)基礎(chǔ)設(shè)施是聚合的)更少。也就是,通過端點加速器實施的層0高速緩存承擔(dān)一些量的網(wǎng)絡(luò)負(fù)載,并能夠與端點計算機系統(tǒng)的CPU進(jìn)行通信。該區(qū)別示出在圖5和圖6中。圖5示出了現(xiàn)有技術(shù)的系統(tǒng),其中計算機系統(tǒng)501具有提供的負(fù)載L,其總體上由網(wǎng)絡(luò)502承載并如負(fù)載L一樣在中央儲存器503處被服務(wù)。圖6示出了本發(fā)明的實施例,其中計算機系統(tǒng)601具有提供的負(fù)載L。在加速器602上實施的層0高速緩存承擔(dān)一部分負(fù)載HR,其中HR大于0且小于1。因此,網(wǎng)絡(luò)603具有L(1-HR)的負(fù)載,其也是中央儲存器604服務(wù)的負(fù)載。類似地,中央儲存器604上的層1儲存層的性能要求降低,因為其現(xiàn)在必須服務(wù)通過高速緩存呈現(xiàn)的平均負(fù)載要求,而不是在缺少任何層0儲存層的情況下由計算機生成的直接峰值負(fù)載要求。因此,本發(fā)明提供導(dǎo)致計算基礎(chǔ)設(shè)施的經(jīng)濟效益的技術(shù)方案。在WindowTM操作系統(tǒng)上實現(xiàn)本發(fā)明時,結(jié)合圖8,本發(fā)明的一個實施包括創(chuàng)建過濾器驅(qū)動器并將該過濾器驅(qū)動器放置于過濾器堆棧中,其中過濾器驅(qū)動器處于所有的文件系統(tǒng)輸入/輸出操作的通信路徑中。對過濾器驅(qū)動器進(jìn)行編程,否則將其適用于執(zhí)行根據(jù)本發(fā)明的該實施的方法,所述方法包括確定是否將文件標(biāo)記用于端點高速緩存的步驟805。這可以通過使得文件的上下文與配置的上下文模式和策略匹配以確定文件是否包含指示其標(biāo)記為用于端點高速緩存的報頭或其它描述符信息來完成。這優(yōu)選在每個文件均被打開時執(zhí)行。在步驟810,如果文件描述符指示該文件被標(biāo)記用于端點高速緩存,且過濾器驅(qū)動器看到讀取操作,則檢查被請求的數(shù)據(jù)以查看其是否已經(jīng)存在于加速器上的層0高速緩存中,如果是,則從層0高速緩存履行讀取。如果在層0高速緩存沒有發(fā)現(xiàn)被請求的數(shù)據(jù),則從源位置(即,中央儲存器)取得數(shù)據(jù)來履行讀取。層0高速緩存還接收并存儲數(shù)據(jù)的副本??商鎿Q地,如果過濾器驅(qū)動器看到寫入操作,則在步驟815處,用待寫入的新數(shù)據(jù)更新層0高速緩存,并且所述數(shù)據(jù)還立即被寫入中央儲存器的源位置處。可替換地,延遲寫入操作也是可以的,其中層0高速緩存被立即寫入新數(shù)據(jù),且動作排隊以將數(shù)據(jù)寫入中央儲存器。這允許對網(wǎng)絡(luò)上的負(fù)載進(jìn)行監(jiān)視和控制,使得在網(wǎng)絡(luò)上傳輸數(shù)據(jù)時能對較高優(yōu)先級的數(shù)據(jù)給予優(yōu)先級。在步驟820處,根據(jù)需要攔截其它操作,以維持?jǐn)?shù)據(jù)的一致性。例如,改變源文件系統(tǒng)應(yīng)該映射到層0高速緩存中的相應(yīng)改變上,或者如果高速緩存以文件名為關(guān)鍵字,則在該步驟可以進(jìn)行適當(dāng)?shù)闹孛僮?。其它例子包括在該步驟攔截和處理的文件刪除操作、文件屬性改變等。在步驟830處,提供高速緩存維持函數(shù)或者模塊以在層0高速緩存填滿時在必要時釋放層0高速緩存的空間。在釋放空間的過程期間從層0高速緩存清除數(shù)據(jù)可以基于編程為高速緩存維持函數(shù)的策略。例如,可以依賴于本發(fā)明的特定實現(xiàn)來確定最老的數(shù)據(jù)、最少訪問的數(shù)據(jù)、最低優(yōu)先級的數(shù)據(jù)(例如,用戶文件和定義的系統(tǒng)文件)或者任何其它數(shù)據(jù)策略中的任意一個。在步驟840處,利用合作過程,在操作系統(tǒng)內(nèi)核的內(nèi)部或外部,提供源文件訪問機制以能夠適當(dāng)?shù)卦L問源文件。對于遠(yuǎn)程源文件,在內(nèi)核外部提供該能力。如上所述,源文件可以存在于層0高速緩存或中央儲存器上,但是通過這個機制,CPU總是將標(biāo)記為用于端點高速緩存的文件的通信過程路由經(jīng)過層0高速緩存。上述本發(fā)明的實施使用已知的高速緩存技術(shù)和過程,但是以新穎且非顯而易見的方式應(yīng)用它們。例如,沒有詳細(xì)描述CPU與加速器和層0儲存器進(jìn)行通信的方法和過程。此外,雖然這些實現(xiàn)本發(fā)明的過程和高速緩存技術(shù)可能是已知的,但是顯著減少網(wǎng)絡(luò)上的負(fù)載、層0高速緩存對端點CPU和網(wǎng)絡(luò)而言是透明的、對中央儲存器和/或端點計算機系統(tǒng)本身是完全不可知的這些結(jié)果是新穎的。根據(jù)本發(fā)明的元件布置產(chǎn)生整體上更高效的計算機/網(wǎng)絡(luò)/儲存系統(tǒng)。在步驟805和810處的配置的上下文模式可以是基礎(chǔ)的,且將所有數(shù)據(jù)高速緩存到層0高速緩存中;或者可以是復(fù)雜且具體的,由此僅由例如文件名模式、活躍用戶、活躍應(yīng)用或其它相關(guān)策略識別出的某些類型的文件被高速緩存到層0高速緩存中。當(dāng)本發(fā)明活躍時,這種上下文模式用于控制數(shù)據(jù)流,允許更好地控制以及因此更有效地使用層0高速緩存。此外,雖然高速緩存在本領(lǐng)域內(nèi)通常是已知的,如同圖2所示的存儲加速器的使用,但是申請人認(rèn)為如在本文中描述的執(zhí)行層0高速緩存的功能加速器的使用是新穎的、非顯而易見的,并且產(chǎn)生如本文所表達(dá)的本領(lǐng)域先前未知的出人意料的結(jié)果。尤其在端點高速緩存與局域(對于端點)快速儲存器進(jìn)行通信時,構(gòu)思出實施本發(fā)明的其它方式或者其各種步驟。例如,文件系統(tǒng)擴展例如描述在Zachariassen等人于2011年8月24日提交的共同未決的申請?zhí)枮镻CT/CA2011/050514的PCT國際申請,其內(nèi)容通過引用合并于此。這種文件系統(tǒng)擴展機制能夠?qū)⒕钟騼Υ嫫魃系奈募到y(tǒng)擴展為能夠在層0高速緩存的儲存介質(zhì)上放置數(shù)據(jù),而獨立于在局域儲存器上使用的特定文件系統(tǒng)。因此,本發(fā)明的加速器上的層0高速緩存可能對計算機系統(tǒng)呈現(xiàn)為局域文件系統(tǒng)的一部分,在所述計算機系統(tǒng)上在層0高速緩存和局域儲存器之間的操作和通信將是完全透明的。還可以構(gòu)思,可以對現(xiàn)有的文件系統(tǒng)進(jìn)行修改以本質(zhì)上提供層0高速緩存的功能。這能夠以類似于結(jié)合過濾器驅(qū)動器在以上描述的方式完成,但是可以通過擴展文件系統(tǒng)功能而無需過濾器驅(qū)動器實現(xiàn)。應(yīng)該注意的是,當(dāng)文件系統(tǒng)功能擴展到實施本發(fā)明時,層0高速緩存明顯地不同于典型的局域計算機高速緩存而操作,其中被高速緩存的數(shù)據(jù)是在網(wǎng)絡(luò)和中央儲存單元的遠(yuǎn)側(cè)被擴展用于讀/寫操作的數(shù)據(jù)。該操作不同于局域計算機高速緩存,其通常用于高速緩存打算由計算機系統(tǒng)的RAM較快速訪問的數(shù)據(jù)。在一個變型中,可以提供堆棧式文件系統(tǒng),該系統(tǒng)使用用于在現(xiàn)有文件系統(tǒng)的頂部對層0高速緩存功能分層的操作系統(tǒng)設(shè)施。還可以使用在現(xiàn)有文件系統(tǒng)的頂部非合作堆疊的獨立式文件系統(tǒng)。在延時最小化是非常重要的環(huán)境中,可以構(gòu)思出的是,以最小化操作系統(tǒng)內(nèi)核的必需使用這樣的方式實施本發(fā)明。這可以通過如下實現(xiàn):以儲存器加速功能與每個應(yīng)用相關(guān)聯(lián)且一部分在運行應(yīng)用的硬件(或虛擬硬件)上實施的方式,提供一部分儲存器加速功能。為了完成這個,由特定應(yīng)用執(zhí)行的I/O操作必須在進(jìn)入內(nèi)核之前被攔截,并且當(dāng)文件或I/O被標(biāo)記為用于端點高速緩存時,將I/O操作重定向到直接通過內(nèi)核或在內(nèi)核周圍的軟件模塊,例如:直接塊訪問(通過),或者存儲器映射訪問(周圍)。這些訪問方法要求基礎(chǔ)的儲存器加速設(shè)備提供協(xié)議API(與編程API相反),如本文所述的,該協(xié)議API與和提供本發(fā)明的滿的層0和儲存器加速功能的每個應(yīng)用相關(guān)聯(lián)的部分合作。這對于應(yīng)用而言仍是透明的,因為能夠以透明的方式提供用于在用戶級別攔截I/O操作的方法。一個這種方法涉及將每個應(yīng)用所使用的動態(tài)加載系統(tǒng)調(diào)用庫重定向(通過附加的內(nèi)核幫助)到實施本發(fā)明所需要的攔截、策略和合作功能的版本。構(gòu)思為使用存儲器映射接口包圍內(nèi)核的實施將避免在上下文切換、內(nèi)核IO管理、文件系統(tǒng)處理、過濾器和用于每個I/O操作的設(shè)備驅(qū)動器堆棧所涉及的所有資源和時間,由此減輕延時的影響。還構(gòu)思有可以修改操作系統(tǒng)緩沖區(qū)高速緩存機制,以使用除了可以提供層0高速緩存的可用RAM外的局域快速儲存器。在一個變型中,可以對遠(yuǎn)程儲存驅(qū)動器(例如NFS或CIFS)或者遠(yuǎn)程塊設(shè)備驅(qū)動器進(jìn)行修改,以應(yīng)用如上所述將數(shù)據(jù)路由通過層0高速緩存的策略。通過查看本文的描述,這種修改對于本領(lǐng)域技術(shù)人員而言是顯而易見的。還可以對邏輯卷驅(qū)動器進(jìn)行創(chuàng)建或修改,以根據(jù)真實塊設(shè)備創(chuàng)建虛擬塊設(shè)備來提供本文所描述的層0高速緩存。已經(jīng)建成為文件系統(tǒng)的設(shè)施可以用于通過在計算機系統(tǒng)本地高速緩存文件而進(jìn)行補充。還可以使用文件系統(tǒng)或過濾器驅(qū)動器,其與塊儲存器驅(qū)動器合作以向基于塊的高速緩存系統(tǒng)提供上下文信息??商鎿Q地,如果儲存協(xié)議允許這種引用,則遠(yuǎn)程中央儲存系統(tǒng)還可以維持控制或關(guān)于局域?qū)?高速緩存儲存器的信息。在該實施例中,可以同中央儲存器一起持有層0高速緩存的一些控制,但是,優(yōu)選地在端點CPU處維持如上所述的用于維持策略或上下文規(guī)則的責(zé)任。申請人不知道任何現(xiàn)有技術(shù)對現(xiàn)有文件透明地提供了端點高速緩存功能。例如NFS或CIFS的普通遠(yuǎn)程文件系統(tǒng)不使用中央儲存器的局域永久性高速緩存,也不包括實施本文描述的本發(fā)明的能力或建議。一些文件系統(tǒng)使用永久局域高速緩存(例如,DropboxTM)接口到云儲存服務(wù)(或?qū)ο蟠鎯Γ?,然而,與對現(xiàn)有文件透明地工作相反,它們呈現(xiàn)為獨立的文件系統(tǒng)或者特殊同步目錄。通過具有遠(yuǎn)程儲存器層1至N(N>=1)的遠(yuǎn)程中央儲存器的層0高速緩存,在距遠(yuǎn)程儲存器自身的網(wǎng)絡(luò)的下游且與端點CPU進(jìn)行通信,排他地提供對現(xiàn)有文件透明地工作的能力。雖然優(yōu)選的實施例是在Windows操作系統(tǒng)的特定環(huán)境中,但是相同的通用方法還可以應(yīng)用到包括例如Linux、其它Unices的其它操作系統(tǒng)環(huán)境的其它環(huán)境中,自然也可以應(yīng)用到可能使傳統(tǒng)文件系統(tǒng)暴露給終端用戶的移動系統(tǒng)的環(huán)境中。在本發(fā)明的一些變型中,可以共享遠(yuǎn)程儲存系統(tǒng),如可以是利用遠(yuǎn)程文件系統(tǒng)協(xié)議但是典型地不具有塊設(shè)備。在該變型中,端點高速緩存功能適用于確保多個獨立客戶端之間的高速緩存的一致性。遠(yuǎn)程文件系統(tǒng)協(xié)議一般提供用于需要確保其客戶端之間的一致性的情形。情況是這樣的:遠(yuǎn)程中央儲存器是由多個遠(yuǎn)程儲存設(shè)備組成的;或者可替換地,多個端點計算機系統(tǒng)向遠(yuǎn)程儲存器寫入數(shù)據(jù),其中該數(shù)據(jù)本身在兩個或更多個端點計算機系統(tǒng)之間共享。通常使用在數(shù)據(jù)上的租賃的概念或可撤銷的鎖來確保這種一致性,并且端點高速緩存加速器或者層0必須與協(xié)議消息合作,所述協(xié)議消息通過適當(dāng)?shù)厍宄?,完全清除或?qū)懭耄?shù)據(jù)來撤銷對數(shù)據(jù)的排斥訪問以維持高速緩存語義。在優(yōu)選的實施例中,安排告知提供對源文件的訪問的過程這種撤銷,從而可以采取合適的動作。當(dāng)遠(yuǎn)程儲存系統(tǒng)不可用或者與網(wǎng)絡(luò)斷開連接時,產(chǎn)生本發(fā)明的一個額外的優(yōu)點。在這種情況下,可以實施可配置的策略控制以控制端點高速緩存的行為。例如,默認(rèn)行為可以是如果可能則從層0高速緩存履行讀取操作,否則失敗;同時在層0高速緩存上進(jìn)行寫入操作并且排隊等待稍后寫入到中央儲存器。在從另一系統(tǒng)的同時沖突寫入的情況下可能要求隨后的沖突解決方案。在本發(fā)明的一個變型中,應(yīng)用所使用的有效I/O緩沖策略可以透明地改變。現(xiàn)代操作系統(tǒng)上的應(yīng)用一般能在緩沖的I/O和非緩沖的I/O之間進(jìn)行選擇。緩沖的I/O表示應(yīng)用所請求的I/O操作經(jīng)過操作系統(tǒng)內(nèi)核中的高速緩存管理器,該管理器對于讀取將查詢內(nèi)核緩沖區(qū)高速緩存內(nèi)被請求的數(shù)據(jù),而對于寫入將把提供的數(shù)據(jù)寫入到內(nèi)核緩沖區(qū)高速緩存,并且所述內(nèi)核負(fù)責(zé)更新I/O的真實目標(biāo)(主儲存器上的某處)。非緩沖的I/O表示應(yīng)用所請求的I/O操作沒有如上所述經(jīng)過高速緩存管理器,而是實時地從主儲存器上的I/O目標(biāo)讀取數(shù)據(jù)或者向所述目標(biāo)分別寫入數(shù)據(jù)。對此存在多種變型以確保在成功報告返回應(yīng)用之前數(shù)據(jù)實際被寫入到表示數(shù)據(jù)的物理位置,而不是僅排隊等待寫入到物理位置。在該變型中,本發(fā)明包括:通過主動提供數(shù)據(jù)到操作系統(tǒng)緩沖區(qū)或者從緩沖區(qū)移除數(shù)據(jù),修改應(yīng)用所請求的用于讀取和/或?qū)懭隝/O操作的數(shù)據(jù)的有效操作系統(tǒng)緩沖策略;按照需要為所述I/O操作啟用或禁用操作系統(tǒng)緩沖區(qū)高速緩存;其中所述提供數(shù)據(jù)到操作系統(tǒng)緩沖區(qū)高速緩存的步驟包括安排應(yīng)用使用由操作系統(tǒng)所高速緩存的所述數(shù)據(jù)。通過獨立控制每個I/O類型的緩沖,可以將本發(fā)明應(yīng)用于該場景。例如,對讀取進(jìn)行緩沖而對寫入不進(jìn)行緩沖。作為一個例子,以非緩沖的I/O操作正常操作的數(shù)據(jù)庫事實上可以執(zhí)行緩沖的讀取和非緩沖的寫入,且對操作語義沒有改變。為了控制請求I/O的應(yīng)用外部的且對該應(yīng)用透明的I/O操作的緩沖,一個簡單的方法是控制層0高速緩存儲存器中數(shù)據(jù)的緩沖,該層0高速緩存儲存器完全處于本發(fā)明的儲存加速器功能的控制下。這可以通過攔截由外部策略設(shè)置的如此表現(xiàn)的高速緩存模塊來完成,如Zachariassen等人于2011年8月24日提交的共同未決的申請?zhí)枮镻CT/CA2011/050514的PCT國際申請所述,該申請的內(nèi)容通過引用合并于此。上述PCT申請的攔截高速緩存模塊因而能夠以如下三種方式控制應(yīng)用高速緩存:通過從請求且適當(dāng)改變特定種類的緩沖的應(yīng)用攔截文件打開參數(shù);和/或通過改變保持在層0高速緩存上的數(shù)據(jù)的緩沖;和/或通過攔截用于操作系統(tǒng)高速緩存管理器的查詢和請求。這樣,端點高速緩存能在端點計算機系統(tǒng)中提供用于I/O的多級別高速緩存,在沒有本發(fā)明的情況下將遍歷網(wǎng)絡(luò)到遠(yuǎn)程儲存器。上述實施例意為本發(fā)明的例子,并且可通過本領(lǐng)域技術(shù)人員從中產(chǎn)生變型和修改,而不背離由所附權(quán)利要求限定的本發(fā)明的范圍。
當(dāng)前第1頁1 2 3 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
拜城县| 西昌市| 全椒县| 濮阳县| 鄂托克旗| 辽中县| 宜都市| 迁西县| 江都市| 延川县| 日照市| 应城市| 行唐县| 枣强县| 新化县| 丽水市| 泰顺县| 古浪县| 望城县| 镇坪县| 雷山县| 车险| 威信县| 兴隆县| 上思县| 舟山市| 东宁县| 迭部县| 长春市| 卓资县| 陈巴尔虎旗| 措美县| 土默特左旗| 卓资县| 黔西| 基隆市| 吉水县| 通道| 丹东市| 清丰县| 福鼎市|