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

用于高速緩存網(wǎng)絡(luò)文件系統(tǒng)的系統(tǒng)和方法

文檔序號:6567941閱讀:462來源:國知局
專利名稱:用于高速緩存網(wǎng)絡(luò)文件系統(tǒng)的系統(tǒng)和方法
技術(shù)領(lǐng)域
本發(fā)明涉及高速緩存系統(tǒng),并且更特別地涉及高速緩存文件管理 器響應(yīng)于計算機網(wǎng)絡(luò)上多協(xié)議客戶端發(fā)送的數(shù)據(jù)訪問請求而服務(wù)的 數(shù)據(jù)的存儲虛擬化。
背景技術(shù)
通常,帶有遠程位置的機構(gòu)可能需要復(fù)制關(guān)鍵數(shù)據(jù),諸如工程應(yīng) 用和程序庫到不同的位置。為了使這些關(guān)鍵數(shù)據(jù)在那些遠程位置讓 用戶可得到,而不引起網(wǎng)絡(luò)延遲,所述機構(gòu)可消耗大量資源(諸如 在文件服務(wù)器上執(zhí)行的文件系統(tǒng))來管理復(fù)雜的復(fù)制基礎(chǔ)結(jié)構(gòu)和過 程。數(shù)據(jù)復(fù)制是已知的技術(shù),其使得可以對通常只讀的數(shù)據(jù)集進行 分布式在線訪問。傳統(tǒng)的數(shù)據(jù)復(fù)制可嚴重依賴于文件系統(tǒng)鏡像法, 以創(chuàng)建在分布式服務(wù)器上數(shù)據(jù)集的整體只讀副本。由文件系統(tǒng)鏡像法生成的鏡像通常需要大量的管理開銷。例如, 管理員必須確定需要復(fù)制什么數(shù)據(jù),以及為每個鏡像管理物理資源 (文件系統(tǒng)、文件服務(wù)器等)。隨著數(shù)據(jù)集的增長,這類數(shù)據(jù)復(fù)制 變得越來越不實用。此外,復(fù)制的基礎(chǔ)結(jié)構(gòu)可能需要遠程位置處存 在服務(wù)器,以存儲復(fù)制的數(shù)據(jù),因而阻止了機構(gòu)將它們的服務(wù)器基 礎(chǔ)結(jié)構(gòu)合并到中心位置。因此,存在這樣的需要,即消除該高代價 的復(fù)制基礎(chǔ)結(jié)構(gòu)和過程,而不損失立刻訪問關(guān)鍵數(shù)據(jù)的好處。數(shù)據(jù)復(fù)制鏡像法的一個替換方式是代理高速緩存。通常,代理高 速緩存系統(tǒng)用于按照需要來透明地復(fù)制數(shù)據(jù)集。典型的代理高速緩 存系統(tǒng)包括耦合到后端存儲系統(tǒng)或具有遠程存儲器的"原始服務(wù) 器"的前端存儲系統(tǒng)或具有本地存儲器的"代理設(shè)備",即"高速緩 存,,。當高速緩存不能滿足客戶端請求時,將該請求傳遞給原始服 務(wù)器。服務(wù)器的響應(yīng)轉(zhuǎn)而傳遞回做出請求的客戶端并且所有關(guān)聯(lián)的 數(shù)據(jù)高速緩存在本地存儲器中。這類事務(wù)稱為"高速緩存未中"。 通常,高速緩存未中導致數(shù)據(jù),例如文件系統(tǒng)數(shù)據(jù),"填充"到高 速緩存中。當需要滿足客戶請求的數(shù)據(jù)在高速緩存中可得到時,代理設(shè)備可構(gòu)造且發(fā)送響應(yīng),而不用與其關(guān)聯(lián)的服務(wù)器通信。這種事 務(wù)稱為"高速緩存命中"。使用高速緩存未中事務(wù),代理設(shè)備允許 客戶端修改設(shè)備上文件系統(tǒng)的狀態(tài)。與一般的復(fù)制相比,這使得可 以進行自動復(fù)制,而不約束客戶端進行只讀訪問。傳統(tǒng)代理高速緩存解決方案使得可以分布數(shù)據(jù),例如文件,到遠 程位置,而不需要持續(xù)地讓內(nèi)行進行管理。這種代理高速緩存解決方案的一個例子在美國專利申請序列號(P01-1509 )中描述,標題 為Apparatus and Method for a Proxy Cache, 申請人:為E. Ackaouy 且轉(zhuǎn)讓給Network Appliance, Inc., Sunnyvale, California, 具 有高速緩存的代理存儲系統(tǒng)或裝置連接到服務(wù)器存儲系統(tǒng)。文件系 統(tǒng)管理代理裝置提供的文件集合;客戶端使用文件系統(tǒng)協(xié)議訪問這 些文件,例如網(wǎng)絡(luò)文件系統(tǒng)(NFS )和/或公共因特網(wǎng)文件系統(tǒng)(CIFS ) 協(xié)議。在響應(yīng)中,代理裝置使用基于文件句柄的文件索引散列方法 提供文件。概括地敘述,代理裝置"傾聽"客戶端發(fā)出的NFS/CIFS數(shù)據(jù)訪問代i裝置在轉(zhuǎn)到其文;系統(tǒng)以進行高速緩存確定之前將^戶端請求轉(zhuǎn)換為唯一的高速緩存名稱。在文件句柄上執(zhí)行的散列函數(shù)產(chǎn)生高 速緩存名稱,文件系統(tǒng)使用該名稱以獲得高速緩存的文件或者尋找 存儲標識符以確定文件是否駐留在高速緩存中。如果文件駐留在高 速緩存中,則確定客戶端請求的所有數(shù)據(jù)是否都駐留在高速緩存 中。如果不是,裝置傳遞請求到服務(wù)器。當服務(wù)器用請求的數(shù)據(jù)或 應(yīng)答響應(yīng)時,裝置將服務(wù)器響應(yīng)傳遞到客戶端。代理裝置還用服務(wù) 器的響應(yīng)"填充"其高速緩存以確??捎裳b置服務(wù)后續(xù)的客戶端請 求。本發(fā)明部分針對改進的高速緩沖系統(tǒng),其使得能夠由客戶端多協(xié) 議訪問該系統(tǒng)提供的數(shù)據(jù)。此外,本發(fā)明部分針對改進的高速緩沖 系統(tǒng),其使得能夠由客戶端有效地訪問該系統(tǒng)使用文件系統(tǒng)數(shù)據(jù)結(jié) 構(gòu)和名稱提供的數(shù)據(jù)。而且,本發(fā)明部分針對改進的高速緩沖系統(tǒng),據(jù)的虛擬存儲化。在上下文中,存儲虛擬化表示將存儲的透明視圖 呈現(xiàn)給這樣的客戶端,該客戶端涉及通常在網(wǎng)絡(luò)上協(xié)同來自多存儲系統(tǒng)的存儲資源。 發(fā)明內(nèi)容本發(fā)明涉及一種具有否合到原始服務(wù)器的多協(xié)議高速緩沖存儲 系統(tǒng)(文件管理器)的網(wǎng)絡(luò)高速緩沖系統(tǒng),以響應(yīng)于計算機網(wǎng)絡(luò)上 多協(xié)議客戶端發(fā)出的數(shù)據(jù)訪問請求而提供由該文件管理器服務(wù)的數(shù) 據(jù)的存儲虛擬化。多協(xié)議高速緩存文件管理器包括文件系統(tǒng),該文 件系統(tǒng)配置為管理稀疏的巻,以由此提供使得能夠由多協(xié)議客戶端 訪問數(shù)據(jù)的高速緩存功能。為此,高速緩存文件管理器還包括多協(xié) 議引擎,該引擎配置為將多協(xié)議客戶端數(shù)據(jù)訪問請求變換為由高速 緩存文件管理器和原始服務(wù)器都可執(zhí)行的通用文件系統(tǒng)原始操作。在說明性實施例中,由高速緩存文件管理器的"本地高速緩存" 部分地提供了高速緩存功能,所述"本地高速緩存"包括高速緩存 巻,該高速緩存巻包括一個或多個耦合到所述高速緩存文件管理器 的磁盤。根據(jù)本發(fā)明的第一方面,高速緩存巻說明性地實現(xiàn)為適于 服務(wù)客戶端從一個或多個例如文件的存儲對象請求的數(shù)據(jù)的稀疏 巻,所述存儲對象具有從所述高速緩存巻遺失(即沒有本地存儲在 其磁盤上)的至少一個塊(即缺少塊)。缺少塊的遺失數(shù)據(jù)存儲在 原始服務(wù)器上且以對客戶端透明的方式使用遠程獲取操作被說明性 地獲取("填充")。有利地,本發(fā)明利用多協(xié)議高速緩存文件管理器的存儲空間,使 得能夠讓客戶端對網(wǎng)絡(luò)高速緩存系統(tǒng)服務(wù)的數(shù)據(jù)快且有效地訪問。 不像之前的高速緩存系統(tǒng)需要顯式的文件的句柄到對象的存儲轉(zhuǎn) 換,新的多協(xié)議高速緩存文件管理器使得客戶端能夠通過使用文件 系統(tǒng)且特別地使用由文件系統(tǒng)組織的存儲對象(文件)的實際名稱 來有效地訪問由網(wǎng)絡(luò)高速緩存系統(tǒng)提供的數(shù)據(jù)。而且,高速緩存文 件管理器的文件系統(tǒng)與稀疏的巻協(xié)同,以對多協(xié)議客戶端透明的方 式提供對所服務(wù)數(shù)據(jù)的存儲空間虛擬化。


通過結(jié)合附圖參考下面的描述,可以更好地理解本發(fā)明的上述和 進一步的優(yōu)點,附圖中相同的附圖標記表示同樣或功能類似的元件圖1是根據(jù)本發(fā)明的實施例的示例網(wǎng)絡(luò)環(huán)境的示意性框圖;圖2是根據(jù)本發(fā)明的實施例的示例存儲操作系統(tǒng)的示意性框圖;圖3是根據(jù)本發(fā)明的實施例的示例信息節(jié)點(inode )的示意性框圖;圖4是根據(jù)本發(fā)明的實施例的示例緩沖樹的示意性框圖; 圖5是可有利地用于本發(fā)明的文件緩沖樹的說明性實施例的示意 性框圖;圖6是根據(jù)本發(fā)明的實施例的示例聚集的示意性框圖; 圖7是根據(jù)本發(fā)明的實施例的示例磁盤上布局的示意性框圖; 圖8是根據(jù)本發(fā)明的實施例的示例fsinfo塊的示意性框圖; 圖9是根據(jù)本發(fā)明的實施例示出處理數(shù)據(jù)修改訪問請求的過程步 驟的流程圖;圖10是根據(jù)本發(fā)明的實施例示出處理非數(shù)據(jù)修改訪問請求的過 程步驟的流程圖;圖ll是根據(jù)本發(fā)明的實施例示出實現(xiàn)高速緩存相干性策略的過 程步驟的流程圖;和圖12是根據(jù)本發(fā)明的實施例示出實現(xiàn)高速緩存彈出策略的過程 步驟的流程圖。
具體實施方式
A.網(wǎng)絡(luò)環(huán)境圖1是網(wǎng)絡(luò)高速緩存系統(tǒng)環(huán)境100的示意性框圖,包括前端存儲系 統(tǒng),該前端存儲系統(tǒng)配置為提供用于服務(wù)源自后端存儲系統(tǒng)的信息 (數(shù)據(jù))的高速緩存功能。為此,前端存儲系統(tǒng)是說明性地實現(xiàn)為 高速緩存文件管理器120的計算機,高速緩存文件管理器120提供涉 及在存儲設(shè)備,例如磁盤陣列160的磁盤130上組織信息的存儲服 務(wù)。高速緩存文件管理器120包括處理器122、存儲器124、 一個或多 個網(wǎng)絡(luò)適配器126a、 b和通過系統(tǒng)總線125互連的存儲適配器128。高 速緩存文件管理器120還包括存儲操作系統(tǒng)200,該存儲操作系統(tǒng)200 優(yōu)選地實現(xiàn)了高級模塊,例如文件系統(tǒng),以便邏輯地將信息組織為 磁盤上命名的文件、目錄和虛擬磁盤(下文稱為特定文件或"塊")存儲對象。在說明性實施例中,存儲器124包括可由處理器和適配器尋址的 存儲單元以用于存儲軟件程序代碼。存儲器的一部分可進一步組織 為用于存儲與本發(fā)明關(guān)聯(lián)的數(shù)據(jù)結(jié)構(gòu)的緩沖存儲器170。處理器和適 配器可轉(zhuǎn)而包括配置為執(zhí)行軟件代碼和操縱數(shù)據(jù)結(jié)構(gòu)的處理元件和 /或邏輯電路。通常部分駐留在存儲器中且由處理元件執(zhí)行的存儲操 作系統(tǒng)200,尤其通過調(diào)用文件管理器120執(zhí)行的存儲操作來在功能 上組織所述文件管理器。對本領(lǐng)域技術(shù)人員明顯的是,其它處理和 存儲器裝置,包括各種計算機可讀介質(zhì),可用于存儲和執(zhí)行關(guān)于這 里描述的發(fā)明技術(shù)的程序指令。網(wǎng)絡(luò)適配器126a、 b(下文通常稱為"網(wǎng)絡(luò)適配器126")包括需 要在計算機網(wǎng)絡(luò)140上將高速緩存文件管理器連接到客戶端和后端 存儲系統(tǒng)的機械、電子和信令電路,所述計算機網(wǎng)絡(luò)140可包括點到 點連接或共享介質(zhì),例如局域網(wǎng)(LAN)或廣域網(wǎng)(WAN)。說明性 地,計算機網(wǎng)絡(luò)140可實現(xiàn)為以太網(wǎng)或光纖(FC)網(wǎng)絡(luò)??蛻舳薎IO 可通過根據(jù)預(yù)定義協(xié)議,例如傳輸控制協(xié)議/網(wǎng)際協(xié)議(TCP/IP)交 換離散幀或數(shù)據(jù)包來在網(wǎng)絡(luò)140上與文件管理器120通信??蛻舳?10可以是配置為執(zhí)行應(yīng)用112的通用計算機。而且,客戶 端110可根據(jù)信息遞送的客戶端/服務(wù)器模型與高速緩存文件管理器 120交互。即是,通過在網(wǎng)絡(luò)140上交換包,客戶端可請求高速緩存 文件管理器的服務(wù),且文件管理器返回客戶端所請求服務(wù)的結(jié)果。 當以文件和目錄形式訪問信息時,客戶端可發(fā)送包,該包包括在 TCP/IP上的基于文件的訪問協(xié)議,例如公共因特網(wǎng)文件系統(tǒng)(CIFS) 協(xié)議或網(wǎng)絡(luò)文件系統(tǒng)(NFS)協(xié)議??商鎿Q地,當以塊的形式訪問信 息時,客戶端可發(fā)送包,該包包括基于塊的訪問協(xié)議,例如在TCP上 封裝的小型計算機系統(tǒng)接口 ( SCSI )協(xié)議(iSCSI )和在光纖通道 (FCP)上封裝的SCSI。存儲適配器128與在文件管理器120上執(zhí)行的存儲操作系統(tǒng)200協(xié) 同以訪問用戶(或客戶端)請求的信息。所述信息可存儲在任何類 型的可寫存儲設(shè)備媒體的被附著陣列上,所述可寫存儲設(shè)備媒體諸 如是錄像磁帶、光學介質(zhì)、DVD、磁帶、磁泡存儲器、電子隨機存取 存儲器、微電子機構(gòu)和任何其它適于存儲信息,包括數(shù)據(jù)和奇偶信息的類似媒體。然而,如這里所說明性地描述的,所述信息優(yōu)選地存儲在陣列160的磁盤130上,例如HDD和/或DASD。存儲適配器包括 在I/0互連布置,例如傳統(tǒng)高性能FC串行鏈路拓樸上耦合到磁盤的輸 入/輸出(I/O)接口電路。在陣列160上的信息存儲優(yōu)選地實現(xiàn)為一個或多個存儲"巻,,, 該巻包括物理存儲磁盤130的集合,所述物理存儲磁盤130協(xié)同以定 義一個或多個巻上的巻塊號(vbn)空間的整體邏輯布置。盡管不是 必須的,通常每個邏輯巻與其自己的文件系統(tǒng)相關(guān)聯(lián)。通常,邏輯 巻/文件系統(tǒng)中的磁盤組織為一個或多個組,其中每個組可作為獨立 磁盤冗余陣列(RAID)來操作。大多數(shù)RAID實現(xiàn),例如RAID-4級實 現(xiàn),通過在RAID組中跨越給定數(shù)目的物理磁盤冗余寫入數(shù)據(jù)帶區(qū)且 對于帶區(qū)的數(shù)據(jù)適當?shù)卮鎯ζ媾夹畔碓鰪姅?shù)據(jù)存儲的可靠性/完 整性。RAID實現(xiàn)的一個說明性例子是RAID-4級實現(xiàn),盡管應(yīng)當理解, 可根據(jù)這里描述的發(fā)明原理使用RAID實現(xiàn)的其它類型和級別。在一個說明性實施例中,高速緩存文件管理器120的高速緩存功 能部分地由"本地高速緩存"提供。關(guān)于這點,本地高速緩存表示 高速緩沖存儲器的層次結(jié)構(gòu),包括(i )高級處理器高速緩存123, (ii)中級緩沖存儲器170,和(iii)包括耦合到文件管理器的一 個或多個磁盤130的低級"第三,,高速緩存巻150。根據(jù)這里進一步 描述的本發(fā)明的一個方面,高速緩存巻150說明性地實現(xiàn)為適于服務(wù) 客戶端110從一個或多個例如文件的存儲對象請求的數(shù)據(jù)的稀疏 巻,所述存儲對象具有從所述高速緩存巻150遺失(即沒有本地存儲 在其磁盤上)的至少一個塊(即缺少塊)。缺少塊的遺失數(shù)據(jù)存儲明:地取得r:'填充"、)'。、、、后端存儲系統(tǒng)是說明性地實現(xiàn)為原始服務(wù)器180的計算機,像高 速緩存文件管理器120—樣,其提供涉及在組織為原始巻185的磁盤 上組織信息的存儲服務(wù)。原始服務(wù)器180在網(wǎng)絡(luò)140上與高速緩存文 件管理器120操作地互連,且通常包括類似于文件管理器120的硬 件。然而,可替換地,原始服務(wù)器180可執(zhí)行修改的存儲操作系統(tǒng), 該存儲操作系統(tǒng)使存儲系統(tǒng)適用于原始服務(wù)器。在這里進一步描述 的可替換實施例中,在網(wǎng)絡(luò)高速緩存系統(tǒng)環(huán)境100中可有多個耦合到原始服務(wù)器180的高速緩存文件管理器120。 B.存儲操作系統(tǒng)為了便于訪問磁盤130,存儲操作系統(tǒng)200實現(xiàn)隨處可寫的文件系 統(tǒng),該文件系統(tǒng)與虛擬化模塊協(xié)同以管理高速緩存(稀疏)巻150并 且"虛擬化"由磁盤130提供的存儲空間。文件系統(tǒng)邏輯地將信息組 織為磁盤上的命名的目錄和文件的層次結(jié)構(gòu)。每個》茲盤上文件可實 現(xiàn)為磁盤塊的集合,所述磁盤塊配置為存儲信息,例如數(shù)據(jù),而目 錄可實現(xiàn)為特定格式的文件,其中存儲了名稱和到其它文件和目錄 的鏈接。虛擬化模塊允許文件系統(tǒng)進一步邏輯地將信息組織為作為 命名邏輯單元號(lun)輸出的磁盤上塊的層次結(jié)構(gòu)。在說明性實施例中,存儲操作系統(tǒng)優(yōu)選地是可從Network Appliance, Inc., Sunnyvale, Cal if ornia得到的NetApp Data ONTAPTM操作系統(tǒng),其實現(xiàn)了隨處可寫文件布局(WAFLTM)文件系統(tǒng)。 然而,明顯可預(yù)期的是,根據(jù)這里描述的發(fā)明原理,可增強任何適 當?shù)拇鎯Σ僮飨到y(tǒng)以便于使用。同樣地,這里使用的術(shù)語"WAFL" 應(yīng)當被用來廣義地指任何另外適用于本發(fā)明的教導的文件系統(tǒng)。圖2是可有利地用于本發(fā)明的存儲操作系統(tǒng)200的示意性框圖。存 儲操作系統(tǒng)包括一 系列軟件層,該軟件層組織為形成完整的網(wǎng)絡(luò)協(xié) 議棧,或更一般地,形成使用塊和文件訪問協(xié)議為多協(xié)議客戶端提 供數(shù)據(jù)通路以訪問存儲在高速緩存文件管理器上的信息的多協(xié)議引 擎。協(xié)議棧包括網(wǎng)絡(luò)驅(qū)動器(例如千兆以太網(wǎng)驅(qū)動器)的媒體訪問 層210,該媒體訪問層210對接到網(wǎng)絡(luò)協(xié)議層,例如IP層212和它的支 持傳輸機制、TCP層214和用戶數(shù)據(jù)報協(xié)議(UDP)層216。文件系統(tǒng) 協(xié)議層提供多協(xié)議文件訪問,并且為此,包括對直接存儲文件系統(tǒng) (DAFS)協(xié)議218、 NFS協(xié)議220、 CIFS協(xié)議222和超文本傳輸協(xié)議 (HTTP)協(xié)議224的支持。如DAFS協(xié)議218所需要的,VI層226實現(xiàn)了 VI體系結(jié)構(gòu)以提供直接訪問傳輸(DAT)能力,例如RDMA。iSCSI驅(qū)動器層228提供了在TCP/IP網(wǎng)絡(luò)協(xié)議層上的塊協(xié)議訪 問,而FC驅(qū)動器層230從/向高速緩存文件管理器接收/發(fā)送塊訪問請 求/響應(yīng)。當訪問文件管理器上的塊時,F(xiàn)C和iSCSI驅(qū)動器提供對塊 的FC專用和iSCSI專用的訪問控制,并且因此管理lun到iSCSI或FCP 的輸出,或可替換地到iSCSI和FCP兩者的輸出。此外,存儲操作系統(tǒng)包括實現(xiàn)為RAID系統(tǒng)240的存儲模塊和實現(xiàn)磁盤訪問協(xié)議,例如 SCSI協(xié)議的磁盤驅(qū)動器系統(tǒng)250,所述存儲模塊根據(jù)I/0操作來管理 向/從巻/磁盤存儲/獲取信息。存儲操作系統(tǒng)200還包括網(wǎng)絡(luò)應(yīng)用遠程巻(NRV)協(xié)議層295,該 協(xié)議層295與文件系統(tǒng)280對接。通常,NRV協(xié)議用于遠程獲取沒有本 地存儲在磁盤上的數(shù)據(jù)塊。然而,如這里描述的,NRV協(xié)議可進一步 用于高速緩存文件管理器到原始服務(wù)器的通信,以根據(jù)本發(fā)明的原 理獲取稀疏高速緩存巻中的缺少塊。應(yīng)當注意,在可替換實施例中, 傳統(tǒng)文件/塊級別協(xié)議,例如NFS協(xié)議或其它專有塊獲取協(xié)議可用于 代替本發(fā)明教導中的NRV協(xié)議。如這里進一步描述的,存儲操作系統(tǒng)200的需求生成器296用于系 統(tǒng)地獲取沒有本地存儲在磁盤,即高速緩存文件管理器120的高速緩 存巻150上的數(shù)據(jù)塊,而泵模塊298可用于調(diào)整從原始服務(wù)器180請求 的那些和其它數(shù)據(jù)塊的獲取。而且,根據(jù)本發(fā)明,截取器294實現(xiàn)了 高速緩存彈出策略以便在本地高速緩存(例如高速緩存巻150)變滿 時回收存儲空間,并且遠程更新引擎(RUE292 )用于將任何修改高 速緩存巻150的文件系統(tǒng)操作轉(zhuǎn)發(fā)到原始服務(wù)器180。盡管這里示出 和描述為單獨的軟件模塊,可替換地,需求生成器296、泵298、截 取器294和RUE292可集成在操作系統(tǒng)200的單一模塊內(nèi)。而且,應(yīng)當注意這些模塊可以實現(xiàn)為硬件、軟件、固件或其任意組合。橋接磁盤軟件層和多協(xié)議引擎層的是文件系統(tǒng)280實現(xiàn)的虛擬化 系統(tǒng),該虛擬化系統(tǒng)與說明性地實現(xiàn)為例如vdisk模塊290和SCSI目 標模塊270的虛擬化模塊交互。vdisk模塊290在文件系統(tǒng)280上層, 能夠由例如用戶接口 (UI) 275的管理接口訪問,以響應(yīng)用戶(例如 系統(tǒng)管理員)向文件管理器發(fā)送命令。UI275以使得管理員或用戶能 夠訪問不同層和系統(tǒng)的方式布置于存儲操作系統(tǒng)之上。SCSI目標模 塊270布置于FC和iSCSI驅(qū)動器228、 230和文件系統(tǒng)280之間,以提供 在塊(lun)空間和文件系統(tǒng)空間之間的虛擬化系統(tǒng)的變換層,其中 lun表示為塊。說明性地,文件系統(tǒng)是基于消息的系統(tǒng),該系統(tǒng)提供邏輯巻管理 能力,用于訪問存儲在存儲設(shè)備,例如磁盤上的信息。即是,除了 提供文件系統(tǒng)語義,文件系統(tǒng)280還提供通常與巻管理器關(guān)聯(lián)的功能。這些功能包括(i )磁盤聚集,(ii )磁盤的存儲帶寬的聚集, 和(iii)可靠性保證,例如鏡像法和/或奇偶性(RAID)。說明性 地,文件系統(tǒng)280實現(xiàn)了具有磁盤上格式表示的WAFL文件系統(tǒng)(下文 一般稱為"隨處可寫文件系統(tǒng)"),所述格式表示是基于塊的,使 用例如4千字節(jié)(KB)塊且使用索引節(jié)點("信息節(jié)點,,)以標識文 件和文件屬性(諸如創(chuàng)建時間、訪問許可、大小和塊位置)。文件 系統(tǒng)使用文件存儲元數(shù)據(jù),該元數(shù)據(jù)描述文件系統(tǒng)的布局;這些元 數(shù)據(jù)文件尤其包括信息節(jié)點文件。文件句柄,即包括信息節(jié)點號的 標識符,用于從磁盤獲取信息節(jié)點。概括地敘述,隨處可寫文件系統(tǒng)的所有信息節(jié)點組織為信息節(jié)點 文件。文件系統(tǒng)(fs)信息塊說明了文件系統(tǒng)中信息的布局且包括 文件的信息節(jié)點,所述文件包括文件系統(tǒng)的所有其它信息節(jié)點。每 個邏輯巻(文件系統(tǒng))具有優(yōu)選地存儲在例如RAID組內(nèi)的固定位置 的fsinfo塊。根fsinfo塊的信息節(jié)點可直接引用(指向)信息節(jié)點 文件的塊,或可間接引用信息節(jié)點文件的塊,該信息節(jié)點文件的塊 轉(zhuǎn)而引用信息節(jié)點文件的直接塊。在信息節(jié)點文件的每個直接塊內(nèi) 是嵌入的信息節(jié)點,每個嵌入的信息節(jié)點可引用間接塊,該間接塊 轉(zhuǎn)而引用文件的數(shù)據(jù)塊。可操作地,來自客戶端110的請求作為計算機網(wǎng)絡(luò)140上的包轉(zhuǎn)發(fā) 且到達高速緩存文件管理器120上,其中在網(wǎng)絡(luò)適配器126處接收 包。(層210或?qū)?30的)網(wǎng)絡(luò)驅(qū)動器處理所述包,并且如果適當, 將其傳遞到網(wǎng)絡(luò)協(xié)議和文件訪問層,以在轉(zhuǎn)發(fā)到隨處可寫文件系統(tǒng) 280之前做另外的處理。如這里進一步描述的,如果請求修改了存儲 在高速緩存巻150上的數(shù)據(jù),高速緩存文件管理器120經(jīng)由NRV寫入請 求將所述請求傳送到原始服務(wù)器180。然而,如果請求不修改巻150 上的數(shù)據(jù),直接將請求傳遞到文件系統(tǒng)280中,該文件系統(tǒng)280嘗試 服務(wù)所述請求。如果數(shù)據(jù)未駐留在本地高速緩存上(導致"高速緩 存未中"),高速緩存文件管理器將NRV讀取請求發(fā)送到原始服務(wù)器 180,以獲取遺失數(shù)據(jù)。在從服務(wù)器180接收響應(yīng)后,高速緩存文件 管理器將獲取的數(shù)據(jù)存儲在其本地高速緩存中,用所請求的數(shù)據(jù)構(gòu) 造回復(fù)且將該回復(fù)返回到客戶端IIO。然而,如果所請求的數(shù)據(jù)駐留在本地高速緩存中,高速緩存文件管理器(文件系統(tǒng)280 )服務(wù)該請求。為此,如果所請求的數(shù)據(jù)未駐 留"在核心"即在緩沖存儲器170中,文件系統(tǒng)生成操作以從磁盤130 裝載(獲取)所請求的數(shù)據(jù)。說明性地,該操作可實現(xiàn)為文件系統(tǒng) 280的Load-Block()函數(shù)284。如果信息不在高速緩沖器170中,文件 系統(tǒng)280使用信息節(jié)點號在信息節(jié)點文件中檢索,以訪問適當?shù)臈l目 且獲取邏輯vbn。文件系統(tǒng)接著將包括邏輯vbn的消息結(jié)構(gòu)傳遞到 RAID系統(tǒng)240;邏輯vbn將映射到》茲盤標識符和磁盤塊號(磁盤,dbn ) 且發(fā)送到磁盤驅(qū)動器系統(tǒng)250的適當驅(qū)動器(例如SCSI)。磁盤驅(qū)動 器從特定磁盤130訪問dbn且將所請求的數(shù)據(jù)塊裝載到緩沖存儲器 170中以便由文件管理器處理。在完成了請求后,文件管理器(和操 作系統(tǒng))在網(wǎng)絡(luò)140上將回復(fù)返回到客戶端110。通常,文件系統(tǒng)280提供Load-Block ()函數(shù)284以從磁盤獲取一個 或多個塊??身憫?yīng)于讀取請求或指向例如文件的示例提前讀取算法 獲取這些塊。如這里進一步描述的,如果文件的緩沖樹內(nèi)的任何所 請求的塊包含專用ABSENT值(由此表示缺少塊),則Load-Block() 函數(shù)284啟動獲取操作以使用說明性NRV協(xié)議295從適當?shù)暮髠浯鎯?器(例如原始服務(wù)器180)獲取缺少塊。 一旦獲取了塊(包括任何數(shù) 據(jù)塊),Load-Block()函數(shù)284返回所請求的數(shù)據(jù)。在上面提到的美 國專利申請中進一步描述了 NRV協(xié)議,標題為Architecture for Supporting of Sparse Volumes, 申請人:為Jason Lango等。然而, 應(yīng)當注意,任何其它適合的可從遠程后備存儲器獲取數(shù)據(jù)的基于文 件或塊的協(xié)議,例如包括NFS協(xié)議,可有利地用于本發(fā)明。說明性地, 文件系統(tǒng)還包括首次訪問文件時獲取信息節(jié)點和文件結(jié)構(gòu)的 Load-Inode()函數(shù)288。應(yīng)當進一步注意,可替換地,上述需要為在高速緩存文件管理器 接收的客戶端請求執(zhí)行數(shù)據(jù)存儲訪問的通過存儲操作系統(tǒng)層的軟件路徑可用硬件實現(xiàn)。即在本發(fā)明的可替換實施例中,存儲訪問請求 數(shù)據(jù)路徑可實現(xiàn)為邏輯電路,該邏輯電路用現(xiàn)場可編程門陣列 (FPGA)或?qū)S眉呻娐?ASIC)實現(xiàn)。這類硬件實現(xiàn)增加了文件 管理器120響應(yīng)于客戶端110發(fā)送的請求而提供的存儲服務(wù)的性能。 而且,在本發(fā)明的另一可替換實施例中,適配器126、 128的處理元 件可配置為各自地卸載來自處理器122的一些或所有包處理和存儲訪問操作,以由此增加文件管理器提供的存儲服務(wù)的性能。明顯可 預(yù)期的是,這里描述的各種處理、體系結(jié)構(gòu)和過程可用硬件、固件 或軟件實現(xiàn)。如這里使用的,術(shù)語"存儲操作系統(tǒng)" 一般指可操作執(zhí)行存儲系 統(tǒng)中存儲功能的計算機可執(zhí)行代碼,所述存儲功能例如管理數(shù)據(jù)訪 問和在高速緩存文件管理器的情況下,可實現(xiàn)文件系統(tǒng)語義。在這個意義上,ONTAP軟件是這種存儲操作系統(tǒng)的一個例子,該軟件實現(xiàn) 為微內(nèi)核且包括WAFL層,以實現(xiàn)WAFL文件系統(tǒng)語義并管理數(shù)據(jù)訪 問。存儲操作系統(tǒng)還可實現(xiàn)為在通用操作系統(tǒng),例如UNIX⑧或Windows NT⑧上運行的應(yīng)用程序,或?qū)崿F(xiàn)為具有可配置功能性的通用操作系 統(tǒng),該通用操作系統(tǒng)被配置用于這里描述的存儲應(yīng)用。此外,本領(lǐng)域技術(shù)人員將理解的是,這里描述的發(fā)明系統(tǒng)和方法 可應(yīng)用于任何類型的專用(例如文件服務(wù)器、文件管理器或多協(xié)議 存儲裝置)或通用計算機,包括實現(xiàn)為或包括存儲系統(tǒng)的獨立計算 機或其一部分??捎欣赜糜诒景l(fā)明的多協(xié)議存儲裝置的一個例子 在美國專利申請序列號10/215, 917中描述,標題為Multi-protocol Storage Appliance that Provides Integrated Support for File and Block Access Protocols,于2002年8月8曰提出。而且,本發(fā) 明的教導可適用于多種存儲系統(tǒng)體系結(jié)構(gòu),包括但不限于附加到網(wǎng) 絡(luò)的存儲環(huán)境、存儲區(qū)域網(wǎng)絡(luò)和直接附加到客戶端或主機的磁盤部 件。因此,術(shù)語"存儲系統(tǒng),,應(yīng)當廣義地包括這種布置以及配置為 執(zhí)行存儲功能且與其它設(shè)備或系統(tǒng)相關(guān)聯(lián)的任何子系統(tǒng)。C.文件系統(tǒng)組織在說明性的實施例中,文件在隨處可寫文件系統(tǒng)中表示為適于在 磁盤130上存儲的信息節(jié)點數(shù)據(jù)結(jié)構(gòu)。圖3是信息節(jié)點300的示意性框 圖,其優(yōu)選地包括元數(shù)據(jù)段310和數(shù)據(jù)段350。存儲在每個信息節(jié)點 300的元數(shù)據(jù)段310中的信息描述了文件,并且如所示的,包括文件 類型(例如普通、目錄、虛擬磁盤)312、文件大小314、文件的時 間戳(例如訪問和/或f資改時間)316和文件的所有權(quán),即用戶標識 符(UID 318)和組ID (GID 320 )。然而,每個信息節(jié)點的數(shù)據(jù)段 350的內(nèi)容可根據(jù)類型字段312內(nèi)定義的文件(信息節(jié)點)類型而不 同地解釋。例如,目錄信息節(jié)點的數(shù)據(jù)段350包含文件系統(tǒng)控制的元數(shù)據(jù),而普通信息節(jié)點的數(shù)據(jù)段包含文件系統(tǒng)數(shù)據(jù)。在后一種情況中,數(shù)據(jù)段350包括與文件相關(guān)聯(lián)的數(shù)據(jù)的表示。特定地,普通磁盤上信息節(jié)點的數(shù)據(jù)段350可包括文件系統(tǒng)數(shù)據(jù) 或指針,后者引用磁盤上用于存儲文件系統(tǒng)數(shù)據(jù)的4KB的數(shù)據(jù)塊。優(yōu) 選地,每個指針是邏輯vbn,以在訪問磁盤上的數(shù)據(jù)時提高文件系統(tǒng) 和RAID系統(tǒng)240之間的效率。給定信息節(jié)點的有限大小(例如128字 節(jié)),大小小于或等于64字節(jié)的文件系統(tǒng)數(shù)據(jù)全部表示在該信息節(jié) 點的數(shù)據(jù)段內(nèi)。然而,如果文件系統(tǒng)數(shù)據(jù)大于64字節(jié),但小于或等 于64kB,則信息節(jié)點(例如第一級信息節(jié)點)的數(shù)據(jù)段包括達16個 指針,每個指針引用磁盤上的4kB的數(shù)據(jù)塊。而且,如果數(shù)據(jù)的大小大于64kB但小于或等于64兆字節(jié)(MB), 則信息節(jié)點(例如第二級信息節(jié)點)的數(shù)據(jù)段350中的每個指針引用 間接塊(例如第一級塊),該間接塊包含達1024個指針,每個指針 引用磁盤上4kB的數(shù)據(jù)塊。對于具有超過64MB大小的文件系統(tǒng)數(shù)據(jù), 信息節(jié)點(例如第三級信息節(jié)點)的數(shù)據(jù)段350中的每個指針引用雙 重間接塊(例如第二級塊),該雙重間接塊包括達1024個指針,每 個指針引用一個間接(例如第一級)塊。轉(zhuǎn)而,間接塊包含1024個 指針,每個指針引用磁盤上的4kB的數(shù)據(jù)塊。當訪問文件時,文件的 每個塊可從磁盤130裝載到緩沖存儲器170中。當磁盤上信息節(jié)點(或塊)從磁盤130裝載到緩沖存儲器170中 時,該磁盤上信息節(jié)點(或塊)在核心中的對應(yīng)結(jié)構(gòu)嵌入了磁盤上 的結(jié)構(gòu)。例如,環(huán)繞信息節(jié)點300 (圖3)的虛線指出磁盤上信息節(jié) 點結(jié)構(gòu)在核心中的表示。核心中的數(shù)據(jù)結(jié)構(gòu)是存儲器塊,該存儲器 塊存儲了磁盤上數(shù)據(jù)結(jié)構(gòu)以及需要用來管理存儲器中的數(shù)據(jù)的附加 信息(但不在磁盤上)。附加信息可例如包括修改標志位360。在信 息節(jié)點(或塊)中的數(shù)據(jù)如所指示的例如由寫操作更新/修改后,使 用修改標志位460將修改的數(shù)據(jù)標記為臟,使得信息節(jié)點(塊)可隨 后"刷新"(存儲)到磁盤。WAFL文件系統(tǒng)的核心中和磁盤上格式 的結(jié)構(gòu),包括信息節(jié)點和信息節(jié)點文件,在之前合并的美國專利號 5, 819, 292中開和描述,標題為Method for Maintaining Consistent States of a File System and for Creating User— Accessible Read—Only Copies of a File System, 申請人:為DavidHitz等,于1998年10月6日提交。圖4是可有利地用于本發(fā)明的文件緩沖樹的實施例的示意性框 圖。緩沖樹是裝載到緩沖存儲器170中的文件(例如,文件400 )的 塊的內(nèi)部表示并且由隨處可寫文件系統(tǒng)280維護。根(頂級)信息節(jié) 點402,例如嵌入的信息節(jié)點,引用間接(例如級別l)塊404。注意, 取決于文件大小,可存在附加級別的間接塊(例如級別2,級別3)。 間接塊(和信息節(jié)點)包含最終引用用于存儲文件的實際數(shù)據(jù)的數(shù) 據(jù)塊406的指針405。即是,文件400的數(shù)據(jù)包含在數(shù)據(jù)塊中,且這些 塊的位置存儲在文件的間接塊中。每個級別1間接塊404可包含指向 多達到1024個數(shù)據(jù)塊的指針。根據(jù)文件系統(tǒng)的"隨處可寫',特性, 這些塊可位于》茲盤130上的任何位置。提供了文件系統(tǒng)布局,該文件系統(tǒng)布局將下層物理巻分配到存儲 系統(tǒng),例如高速緩存文件管理器120的一個或多個虛擬巻(vvol )中。 這種文件系統(tǒng)布局的一個例子在美國專利申請序列號10/836, 817中 描述,標題為Extension of Write Anywhere File System Layout, 申請人:為John K. Edwards等,且轉(zhuǎn)讓給Network. Appl iance, Inc。 下層物理巻是包括高速緩存文件管理器的一個或多個磁盤組,例如 RAID組的聚集。聚集具有其自己的物理巻塊號(pvbn)空間并且在 該pvbn空間內(nèi)維持元數(shù)據(jù),例如塊分配結(jié)構(gòu)。每個vvol具有其自己 的虛擬巻塊號(vvbn)空間并且在該vvbn空間內(nèi)維持元數(shù)據(jù),例如 塊分配結(jié)構(gòu)。每個vvol是與容器文件相關(guān)聯(lián)的文件系統(tǒng);容器文件 是聚集中的文件,該聚集包含vvol使用的所有塊。而且,每個vvol 包括數(shù)據(jù)塊和間接塊,該間接塊包含指向其它間接塊或數(shù)據(jù)塊的塊 指針。在一個實施例中,pvbn用作為存儲在vvol中的文件(例如文件 400 )的緩沖樹內(nèi)的塊指針。該"混合"vvol實施例涉及在雙親間接 塊(例如信息節(jié)點或間接塊)中只插入pvbn。在邏輯巻的讀取路徑 上,"邏輯"巻(vol)信息塊具有一個或多個指針,該指針引用一 個或多個fsinfo塊,每個fsinfo塊轉(zhuǎn)而指向信息節(jié)點文件及其對應(yīng) 的信息節(jié)點緩沖樹。通常,vvol上的讀取路徑是一樣的,跟隨用于 找到塊的適當位置的pvbn (而不是vvbn);在該上下文中,vvol的 讀取路徑(及對應(yīng)的讀取性能)基本上類似于物理巻。從pvbn到磁盤,dbn的轉(zhuǎn)換發(fā)生在存儲操作系統(tǒng)200的文件系統(tǒng)/RAID系統(tǒng)的邊 界。在一個說明性雙vbn混合("靈活")vvol實施例中,pvbn及其 對應(yīng)的vvbn插入到文件的緩沖樹的雙親間接塊中。即是,pvbn和vvbn 作為每個塊的一對指針存儲在大多數(shù)緩沖樹結(jié)構(gòu)中,該緩沖樹結(jié)構(gòu) 具有指向其它塊,例如級別1(L1)間接塊、信息節(jié)點文件級別O(LO) 塊的指針。圖5是可有利地用于本發(fā)明的文件500的緩沖樹的說明性 實施例的示意性框圖。根(頂級)信息節(jié)點502,例如嵌入的信息節(jié) 點,引用間接(例如級別l)塊504。注意,取決于文件的大小可存 在附加級別的間接塊(例如級別2、級別3)。間接塊(和信息節(jié)點) 包含最終引用用于存儲文件的實際數(shù)據(jù)的數(shù)據(jù)塊506的pvbn/vvbn指 針對結(jié)構(gòu)508。pvbn引用聚集的》茲盤上的位置,而vvbn引用vvol的文件內(nèi)的位 置。使用pvbn作為間接塊504中的塊指針508,提供了在讀取路徑中 的效率,而使用vvbn塊指針提供了訪問所請求的元數(shù)據(jù)的效率。即 是,當釋放文件的塊時,文件中的雙親間接塊包含容易得到的vvbn 塊指4十,這避免了與訪問屬主映射(owner map)以執(zhí)4亍pvbn到vvbn 轉(zhuǎn)換相關(guān)聯(lián)的延遲;而且,在讀取路徑上,pvbn是可得到的。如所提到的,每個信息節(jié)點在其數(shù)據(jù)段中具有64個字節(jié),取決于 信息節(jié)點文件的大小(例如大于64字節(jié)的數(shù)據(jù)),該64個字節(jié)可用 作為指向其它塊的塊指針。對于傳統(tǒng)和混合巻,該64個字節(jié)實現(xiàn)為 16個塊指針,即16個(16) 4字節(jié)的塊指針。對于說明性的雙vbn靈 活巻,信息節(jié)點的64個字節(jié)實現(xiàn)為8 (8)對4字節(jié)的塊指針,其中每 一對是vvbn/pvbn對。此外,傳統(tǒng)或混合巻的每個間接塊可包含達 1024個(pvbn)指針;然而,雙vbn靈活巻的每個間接塊具有達510 對(pvbn/vvbn )指針。而且, 一個或多個指針508可包含特定ABSENT值以表示該一個或 多個指針引用的一個或多個對象(例如間接塊或數(shù)據(jù)塊)沒有本地 存儲(例如在高速緩存巻150上),并且因此該對象必須從原始服務(wù) 器180的原始巻185獲取(取回)。在說明性實施例中,文件系統(tǒng)280 的Load-Block()函數(shù)284解釋了每個指針的內(nèi)容并且,如果所請求的 塊是ABSENT,則啟動使用例如NRV協(xié)議將對數(shù)據(jù)的適當請求(例如遠程獲取操作)傳輸?shù)皆挤?wù)器180。應(yīng)當注意,高速緩存巻150說明性地實現(xiàn)為靈活vvo1,而原始巻 185可以是靈活vvol或傳統(tǒng)巻,主要是因為使用邏輯文件協(xié)議 (NRV)。如所提到的,傳統(tǒng)巻和靈活vvol區(qū)別在于它們的間接塊格 式;然而,在網(wǎng)絡(luò)高速緩沖系統(tǒng)的情況中,間接塊格式的不同是不 相關(guān)的。換句話說,因為在高速緩存巻和原始巻之間沒有物理關(guān)系, 原始巻的類型是不相關(guān)的。圖6是可有利地用于本發(fā)明的聚集600的一個實施例的示意性框 圖。Lun(塊)602、目錄604、 qtree606和文件608可包含在vvo1610 內(nèi),例如雙vbn靈活vvol,該vvol轉(zhuǎn)而包含在聚集600內(nèi)。說明性地, 聚集600在RAID系統(tǒng)的上層,RAID系統(tǒng)由至少一個RAID plex650表示 (取決于是否鏡像了存儲配置),其中每個plex650包括至少一個 RAID組660。每個RAID組進一步包括多個磁盤630,例如一個或多個 數(shù)據(jù)(D)磁盤和至少一個(P)奇偶磁盤。聚集600類似于常規(guī)存儲系統(tǒng)的物理巻,而vvol類似于該物理巻 內(nèi)的文件。即是,聚集600可包括一個或多個文件,其中每個文件包 含vvol610且其中vvol所消耗的存儲空間的總和在物理上小于(或等 于)整個物理巻的大小。聚集使用定義了由物理巻的磁盤提供的塊 的存儲空間的物理pvbn空間,而(在文件內(nèi)的)每個嵌入的vvol使 用邏輯vvbn空間以將那些塊例如組織為文件。每個vvbn空間是對應(yīng) 于文件內(nèi)位置的獨立的號的集合,所述位置接著變換成磁盤上的 dbn。因為vvol610也是邏輯巻,因此它在其vvbn空間中具有自己的 塊分配結(jié)構(gòu)(例如活動、空間和摘要映射)。容器文件是聚集中包含vvol使用的所有塊的文件。容器文件是支 持vvol的(對于聚集的)內(nèi)部特征;說明性地,每個vvol有一個容 器文件。類似于文件通道中的純邏輯巻,容器文件是聚集中的隱藏 文件(用戶不可訪問),該文件含有vvol使用的每個塊。聚集包括 說明性的隱藏元數(shù)據(jù)根目錄,該根目錄包含vvol的子目錄WAFL/fsid/文件系統(tǒng)文件,存儲標簽文件具體地,對于聚集中的每個vvol,物理文件系統(tǒng)(WAFL)目錄包 括子目錄,子目錄的名稱是vvol的文件系統(tǒng)標識符(fsid)。每個 fsid子目錄(vvol )包含至少兩個文件,文件系統(tǒng)文件和存儲標簽文件。說明性地,存儲標簽文件是包含類似于存儲在常規(guī)raid標簽 中的元數(shù)據(jù)的4kB文件。換句話說,存儲標簽文件是raid標簽的模 擬,并且如所述的,包含關(guān)于vvol的狀態(tài)的信息,諸如vvol的名稱、 通用唯一標識符(uuid)和vvol的fsid、其是否聯(lián)機、被創(chuàng)建或被二 破壞等。圖7是聚集700的磁盤上表示的示意性框圖。存儲操作系統(tǒng)200, 例如RAID系統(tǒng)240,用包括用于聚集的"物理"volinfo塊702的pvbnl 和2來裝配pvbn的物理巻以創(chuàng)建聚集700。 vol inf o塊702包含指向 fsinfo塊704的指針,每個fsinfo塊704可表示聚集的一個快照。每 個fsinfo塊704包括指向節(jié)點信息文件706的塊指針,所述節(jié)點信息 文件706包含多個文件的信息節(jié)點,包括屬主映射710、活動映射 712、摘要映射714和空間映射716,以及其它特定元數(shù)據(jù)文件。信息 節(jié)點文件706進一步包括根目錄720和"隱藏"元數(shù)據(jù)根目錄730,后 者包括具有相關(guān)于vvol的文件的命名空間,其中用戶不能"看見" 文件。隱藏元數(shù)據(jù)根目錄包括WAFL/fsid/目錄結(jié)構(gòu),該目錄結(jié)構(gòu)包 含文件系統(tǒng)文件740和存儲標簽文件790。注意,聚集中的根目錄720 是空的;相關(guān)于聚集的所有文件組織在隱藏元數(shù)據(jù)根目錄730內(nèi)。如果vvol是稀疏巻,對于每個vvol,隱藏元數(shù)據(jù)根目錄730還包 括稀疏配置元文件("稀疏配置文件"732 )。稀疏配置文件732因 此與稀疏巻關(guān)聯(lián)并且為此(尤其)標識原始服務(wù)器180的主機名和原 始巻185。在稀疏巻的安裝過程中,獲取稀疏配置文件732且將其轉(zhuǎn) 換為核心中的格式。要注意的是,稀疏配置文件還包括指明稀疏巻 是否是高速緩存巻150的標識符。這些標識符允許高速緩存文件管理新;如這里進^^"描述;:網(wǎng)絡(luò)高速緩i系統(tǒng)環(huán)境100的高速緩存文 件管理器說明性地執(zhí)行遠程更新。除了實現(xiàn)為具有組織為容器映射的等級l的塊的容器文件,文件 系統(tǒng)文件740包括塊指針,該塊指針引用實現(xiàn)為vvol750的不同文件 系統(tǒng)。聚集700在專門保留的信息節(jié)點號處維護這些vvo1750。每個 vvol750還在其vvol空間內(nèi)具有專門保留的信息節(jié)點號,該信息節(jié)點 號尤其用于塊分配位圖結(jié)構(gòu)。如所記錄的,塊分配位圖結(jié)構(gòu),例如 活動映射762、摘要映射764和空間映射766,位于每個vvol中。具體地,每個vvol750具有和聚集一樣的信息節(jié)點文件結(jié)構(gòu)/內(nèi) 容,不同的只是沒有屬主映射且在隱藏元數(shù)據(jù)根目錄780中沒有 WAFL/fsid/文件系統(tǒng)文件,存儲標簽文件目錄結(jié)構(gòu)。為此,每個 vvol750具有指向一個或多個fsinfo塊800的volinfo塊752,每個 fsinfo塊800可與vvol的活動文件系統(tǒng)一起表示一個快照。每個 fsinfo塊轉(zhuǎn)而指向一個信息節(jié)點文件760,如所提到的,該信息節(jié)點 文件760除了上面所述的不同點外,和聚集有相同的信息節(jié)點結(jié)構(gòu)/ 內(nèi)容。每個vvol750具有其自己的信息節(jié)點文件760和具有對應(yīng)的信 息節(jié)點號的不同的信息節(jié)點空間,以及其自己的根(fsid)目錄770 和可從其它vvol單獨輸出的文件的子目錄。包含在聚集的隱藏元數(shù)據(jù)根目錄730內(nèi)的存儲標簽文件790是功 能類似于常規(guī)raid標簽的小文件。raid標簽包括關(guān)于存儲系統(tǒng)的物 理信息,例如巻名稱;該信息裝載到存儲標簽文件790中。說明性地, 存儲標簽文件790包括相關(guān)聯(lián)的vvol750的名稱792、 vvol的聯(lián)才幾/脫 機狀態(tài)794、及相關(guān)聯(lián)的vvol的其它身份和狀態(tài)信息796 (是否其處 在創(chuàng)建或破壞的過程中)。D.稀發(fā)u的巻如所記錄的,高速緩存巻150說明性地實現(xiàn)為稀疏的巻,并且由 此術(shù)語"高速緩存巻150"和"稀疏巻150"在下文中可互換使用。由 巻(vvol)的》茲盤上結(jié)構(gòu)的特定標記來標識稀疏巻150,以表示包括 具有缺少塊的文件。圖8是磁盤上結(jié)構(gòu)的示意性框圖,其說明性地為 示例fsinfo塊800。 fsinfo塊800包括持久一致性點^象(PCPI )指針 805的集合、稀疏巻標志字段810、信息節(jié)點文件的信息節(jié)點815和在 替換的實施例中的附加字段820。 PCPI指針805是指向與文件系統(tǒng)關(guān) 聯(lián)的PCPI (快照)的雙vbn (vvbn/pvbn)成對指針。稀疏巻標志字 段810標識由fsinfo塊描述的vvol是否為稀疏的。在說明性的實施例 中,在字段810中插入標志以標識巻是稀疏的。稀疏巻標志字段810 可進一步實現(xiàn)為用于標識與fsinfo塊關(guān)聯(lián)的vvol的類型的類型字 段。信息節(jié)點文件的信息節(jié)點815包括包含根級指針的信息節(jié)點,該 根級指針指向與fsinfo塊關(guān)聯(lián)的文件系統(tǒng)的信息節(jié)點文件760 (圖 7)。用專門的ABSENT值將文件的適當塊指針做標記(標志)以指明,稀疏巻150內(nèi)的某些塊,包括數(shù)據(jù)和/或間接塊沒有物理地位于提供 巻的高速緩存文件管理器上。專門的ABSENT值進一步告知文件系 統(tǒng),數(shù)據(jù)將從可替換源,即原始服務(wù)器180獲得。響應(yīng)于數(shù)據(jù)訪問請 求,文件系統(tǒng)280的Load—Block()函數(shù)284檢測文件的適當塊指針是 否標記為ABSENT,并且如果是,將遠程NRV獲取(例如讀取)操作信 息從高速緩存文件管理器傳輸?shù)皆挤?wù)器以獲取所請求的數(shù)據(jù)。 說明性地,獲取操作請求在原始巻185上存儲的文件的一個或多個文 件塊號(fbn)。應(yīng)當注意,雖然根據(jù)單個原始巻來撰寫本發(fā)明書, 本發(fā)明的原理可用于以下環(huán)境其中由多個原始巻支持單個稀疏 巻,每個原始巻可支持稀疏巻的全部或其子集。如所述的,本教導 不應(yīng)當限于單個原始巻。原始服務(wù)器180從其存儲設(shè)備獲取所請求的數(shù)據(jù)并且將所請求的 數(shù)據(jù)返回到高速緩存文件管理器120,該高速緩存文件管理器120處 理數(shù)據(jù)訪問請求并且將返回的數(shù)據(jù)存儲在其存儲器124中。隨后,文 件系統(tǒng)280在寫分配過程中將存儲在其存儲器中的數(shù)據(jù)"刷新"(寫 入)到本地磁盤。這可以響應(yīng)于數(shù)據(jù)被標記為"臟,,或向文件系統(tǒng) 表示數(shù)據(jù)必須被寫分配的其它符號。根據(jù)過程的說明性的隨處可寫 策略,文件系統(tǒng)280將指針值(不是ABSENT值)分配到文件的間接塊, 以由此標識本地存儲在高速緩存巻150內(nèi)的數(shù)據(jù)位置。因此,不再需 要遠程獲取操作來訪問數(shù)據(jù)。應(yīng)當注意,在網(wǎng)絡(luò)140上高速緩存文件管理器120和原始服務(wù)器 180之間傳輸?shù)乃蠳RV消息涉及相對于物理磁盤地址的邏輯文件地 址。由此,不需要相對于原始服務(wù)器存儲來制定高速緩存文件管理 器存儲的大小。當將所請求的數(shù)據(jù)提供到高速緩存文件管理器時, 該數(shù)據(jù)被寫分配并且依從適當?shù)膙vbn (和/或pvbn)塊編號。換句話 說,高速緩存巻150的寫分配完全不同于原始巻185上的寫分配??捎欣赜糜诒景l(fā)明的寫分配過程的一個例子在美國專利申請 序歹'J號10/836, 090中描述,才示題為Extension of Write Anywhere File Layout Write Allocation, 申請人:為John K. Edwards, 該申 請因此被合并以作為參考。概括地敘述,當寫分配vvol內(nèi)的塊時, 塊分配在靈活vvol和聚集上并行地進行,并且寫分配器282 (圖2) 在聚集中選擇實際的pvbn且在vvol中選擇vvbn。寫分配器調(diào)整聚集的塊分配位圖結(jié)構(gòu),例如活動映射和空間映射,以記錄選擇的pvbn, 并且調(diào)整vvol的類似結(jié)構(gòu),以記錄所選擇的vvbn。 vvol的vvid ( vvol 標識符)和vvbn在由所選擇的pvbn定義的條目處被插入到聚集的屬 主映射710中。所選擇的pvbn還被插入到目標vvol的容器映射(未示 出)中。最后,用指向所分配塊的一個或多個塊指針來更新所分配 塊的間接塊或信息節(jié)點文件雙親。更新操作的內(nèi)容依賴于vvo 1實施 例。對于雙vbn混合vvol實施例,pvbn和vvbn都插入到間接塊或作為 塊指針的信息節(jié)點中。E.網(wǎng)絡(luò)高速緩存系統(tǒng)操作本發(fā)明涉及網(wǎng)絡(luò)高速緩存系統(tǒng)100,其具有連接到原始服務(wù)器180 的多協(xié)議高速緩存文件管理器120,以響應(yīng)于計算機網(wǎng)絡(luò)140上多協(xié) 議客戶端110發(fā)出的數(shù)據(jù)訪問請求而提供由文件管理器服務(wù)的數(shù)據(jù) 的存儲虛擬化。多協(xié)議高速緩存文件管理器120包括配置為管理稀疏 巻的文件系統(tǒng)280,該文件系統(tǒng)280 "虛擬化"數(shù)據(jù)的存儲空間,以 由此提供高速緩存功能而使得多協(xié)議客戶端可以訪問數(shù)據(jù)。為此, 高速緩存文件管理器還包括存儲操作系統(tǒng)200的多協(xié)議引擎,該引擎配置為將多協(xié)議客戶端數(shù)據(jù)訪問請求變換成由高速緩存文件管理器 和原始服務(wù)器180都可執(zhí)行的通用文件系統(tǒng)原始操作。程900的步驟的流程圖。如這里使用的,數(shù)據(jù)修改訪問請求涉及修改 高速緩存文件管理器120的高速緩存巻150的任何操作。這種修改操 作的例子包括創(chuàng)建(文件)、設(shè)置屬性和寫入操作。過程900開始于 步驟902且進行到步驟904,其中在高速緩存文件管理器120處接收客 戶端寫入請求。在步驟906,多協(xié)議引擎的適當協(xié)議層將寫入請求轉(zhuǎn) 換為通用文件系統(tǒng)寫入消息以傳送到文件系統(tǒng)280。在步驟908,文件系統(tǒng)確定文件系統(tǒng)寫入消息是否指向于高速緩 存巻150,即配置為支持遠程更新操作的稀疏巻。說明性地,文件系 統(tǒng)通過檢查fsinfo塊800和稀疏配置文件732來做出該確定。如所提 到的,fsinfo塊800具有稀疏巻標志810,如果聲明了該稀疏巻標志 810,則標識巻為稀疏巻。此外,稀疏配置文件732包含在應(yīng)用類型 中標識稀疏巻150的標識符,即標識稀疏巻150是否支持數(shù)據(jù)修改訪 問請求的遠程更新。如果寫入消息不指向高速緩存巻,文件系統(tǒng)將文件系統(tǒng)寫入消息傳遞到文件的常規(guī)寫入處理器,以作為原始寫入操作請求進行處理(步驟910)并且該過程在步驟922結(jié)束。然而,如果寫入消息指向高速緩存巻150,在步驟912文件系統(tǒng)將 寫入消息轉(zhuǎn)發(fā)到RUE292。在步驟914, RUE292將通用文件系統(tǒng)寫入消 息轉(zhuǎn)換為遠程更新請求,并且在步驟916,將更新請求發(fā)送到泵模塊 298。在說明性的實施例中,泵模塊的泵工作者線程接收請求,接著 為該請求在其它請求中安排優(yōu)先次序。在步驟918,將遠程更新請求 變換為NRV寫入消息,并且在步驟920,在網(wǎng)絡(luò)140上將NRV寫入消息 發(fā)送到原始服務(wù)器180,以由服務(wù)器上的文件系統(tǒng)執(zhí)行。接著過程在 步驟922結(jié)束。圖1 O是根據(jù)本發(fā)明的實施例的示出用于處理非數(shù)據(jù)修改訪問請 求的過程1000的步驟的流程圖。如這里使用的,非數(shù)據(jù)修改訪問請 求涉及不修改高速緩存文件管理器120的高速緩存巻150的任何操 作。非修改操作的一個例子是讀取操作。過程1000在步驟1002開始, 并且進行到步驟1004,其中在高速緩存文件管理器120接收客戶端讀 取請求。在步驟1006,多協(xié)議引擎的適當協(xié)議層將讀取請求轉(zhuǎn)換為 通用文件系統(tǒng)讀取消息,以傳送到文件系統(tǒng)280,在步驟1008,該文 件系統(tǒng)280將消息傳遞到文件系統(tǒng)的常規(guī)讀取處理器,以作為原始讀取操作請求來處理。在步驟1010,確定所請求的數(shù)據(jù)是否駐留在高速緩存文件管理器 的本地高速緩存上。說明性地,文件系統(tǒng)通過使用例如 Load-Block() 284函數(shù)裝載一個或多個塊且檢查每個塊的塊指針以 確定該塊指針是否標記為ABSENT來做出所述確定。如果塊不是缺少 的,即所請求的數(shù)據(jù)駐留在本地高速緩存上,在步驟1012文件系統(tǒng) 280服務(wù)讀取消息/請求(如前所述)并且過程在步驟1032結(jié)束。然而,如果塊是缺少的,即所請求的數(shù)據(jù)未駐留在本地高速緩存 上,在步驟1014文件系統(tǒng)將讀取消息轉(zhuǎn)換為發(fā)送到泵模塊298的獲取 請求。泵模塊的泵工作者線程接收請求,接著為該請求在其它請求 中安排優(yōu)先次序。在步驟1016,泵線程維持用于存儲獲取請求的占 位符,直到接收了響應(yīng)。在步驟1018,泵線程和NRV模塊295協(xié)同以 將獲取請求變換為NRV讀取消息,并且在步驟1020,在網(wǎng)絡(luò)140上將 NRV讀取消息發(fā)送到原始服務(wù)器180以由服務(wù)器執(zhí)行。在步驟1022,原始服務(wù)器用獲取的數(shù)據(jù)響應(yīng)于高速緩存文件管理 器(泵線程),并且在步驟1024,泵線程和文件系統(tǒng)的填充處理器 協(xié)同以通過例如使用獲取的數(shù)據(jù)執(zhí)行填充操作來服務(wù)在泵模塊維持 著占位符的掛起的讀取/獲取請求。在步驟1026,文件系統(tǒng)用所請求 的數(shù)據(jù)構(gòu)造回復(fù),并且在步驟1028,將該回復(fù)返回到客戶端。隨后 在步驟1030,在文件系統(tǒng)執(zhí)行寫分配以將獲取的數(shù)據(jù)存儲在高速緩 存文件管理器的一個或多個本地存儲設(shè)備上并且過程在步驟1032結(jié) 束。F.高速緩存一致性在本發(fā)明的通常網(wǎng)絡(luò)高速緩存系統(tǒng)實施例中,多個客戶端110可 耦合到多個高速緩存文件管理器120的每一個,并且客戶端和文件管 理器都可耦合到原始服務(wù)器180。因此可能的是,在該通常系統(tǒng)實施 例中,原始巻185可由客戶端和/或高速緩存文件管理器120修改。所 以,需要高速緩存一致性策略以確保由客戶端直接從原始服務(wù)器180 或經(jīng)由高速緩存文件管理器120訪問的數(shù)據(jù)總是一致的。根據(jù)本發(fā) 明,用在網(wǎng)絡(luò)高速緩存系統(tǒng)100中的高速緩存一致性策略規(guī)定了將高 速緩存文件管理器120配置為與原始服務(wù)器180相符合,以便在將數(shù) 據(jù)遞送到客戶端110之前確定該數(shù)據(jù)是否發(fā)生了變化。響應(yīng)于指向例如文件的特別存儲對象的客戶端數(shù)據(jù)訪問請求,例 如讀取請求,高速緩存文件管理器120的文件系統(tǒng)280將按需獲取 (FOD)的請求發(fā)送到原始服務(wù)器180,以請求文件屬性,諸如修改 時間、鏈接數(shù)目、創(chuàng)建時間等的最近副本。任何屬性中的變化指明 自從文件最后一次高速緩存在文件管理器中后,該文件被修改過。 由此,高速緩存文件管理器觸發(fā)了在其本地高速緩存上存儲的當前 文件的彈出。高速緩存文件管理器接著使用NRV讀取消息生成適當?shù)?獲取操作,以從原始服務(wù)器獲取所請求的數(shù)據(jù)。圖ll是根據(jù)本發(fā)明的實施例的示出實現(xiàn)高速緩存一致性策略的 過程1100的步驟的流程圖。過程1100在步驟1102開始并且進行到步 驟1104,其中在高速緩存文件管理器接收客戶端數(shù)據(jù)訪問請求,例 如讀取請求。在步驟1106,將請求轉(zhuǎn)換為文件系統(tǒng)讀取消息,以傳 送到文件系統(tǒng)280,在步驟1108,文件系統(tǒng)280將消息傳遞到文件系 統(tǒng)的常規(guī)讀取處理器,以作為原始讀取操作請求處理。在步驟1110,讀取處理器例如使用Load-Inode () 288函數(shù)獲取在讀取請求/消息中 涉及的文件的信息節(jié)點。在步驟1112,文件系統(tǒng)還將讀取消息作為FOD請求傳遞到泵模 塊,以從原始服務(wù)器獲取信息節(jié)點的屬性。在步驟1114,泵線程維 持用于存儲FOD請求的占位符,直到接收了響應(yīng)。在步驟1116,泵模 塊和NRV模塊協(xié)同以將FOD請求變換為NRV讀取消息,并且在步驟 1118,在網(wǎng)絡(luò)140上將NRV讀取消息發(fā)送到原始服務(wù)器180,以由服務(wù) 器執(zhí)行。在步驟1120,原始服務(wù)器用屬性響應(yīng)高速緩存文件管理器 (泵線程),并且在步驟1122,泵線程和文件系統(tǒng)的填充處理器協(xié) 同以通過例如使用響應(yīng)執(zhí)行填充操作來服務(wù)在泵模塊維持著占位符 的掛起讀取/FOD請求。應(yīng)當注意,不具有數(shù)據(jù)(即零長度讀取或"驗證")的填充操作 僅攜帶屬性;因此,在步驟1124,填充處理器確定(從原始服務(wù)器 接收的)所請求文件的屬性和當前存儲在高速緩存文件管理器上的 該文件的屬性是否不同。對于后者,例如通過檢查存儲在文件的信 息節(jié)點300中的訪問和/或修改時間戳316來確定存儲在高速緩存文 件管理器上的文件的屬性狀態(tài)。注意,NRV讀取消息的特性是在NRV 響應(yīng)中返回的任何數(shù)據(jù)還包括文件的最近屬性。零長度讀取(驗證) 因此等效于不獲取任何數(shù)據(jù)而取回文件的最近屬性。如果在屬性中沒有區(qū)別(屬性沒有變化),填充處理器觸發(fā)了信 息節(jié)點(文件)屬性已經(jīng)被驗證(1126)的確認。因此在高速緩存 文件管理器120和原始服務(wù)器180之間的NRV交互實質(zhì)上是"沒有操 作",這在系統(tǒng)中引入了額外的延遲(至少在最簡單的高速緩存一 致性策略中)。在步驟1128,文件系統(tǒng)搜索本地高速緩存以確定客 戶端請求的數(shù)據(jù)是否存在于高速緩存文件管理器上。如果是,在步 驟1130文件系統(tǒng)服務(wù)讀取請求/消息(如前所述)并且過程在步驟 1136結(jié)束。然而,如果所請求的數(shù)據(jù)(或其部分)未駐留在本地高速緩存上 (即數(shù)據(jù)遺失),在步驟1132文件系統(tǒng)將讀取消息轉(zhuǎn)換為獲取請求, 該獲取請求最終被發(fā)送到原始服務(wù)器180以獲得缺少的數(shù)據(jù)(如前所 述)。注意,來自原始服務(wù)器的響應(yīng)包括遺失數(shù)據(jù)和文件的最后屬 性。還要注意,如果在屬性中存在不同(如在步驟1124確定的),過程繼續(xù)到步驟1132。在步驟1134,確定是否那些屬性發(fā)生了變化 (即在高速緩存文件管理器上初次驗證和獲取了遺失數(shù)據(jù)的時間之 間屬性是否發(fā)生了變化)。如果是,過程返回到步驟1132。否則, 過程繼續(xù)到步驟1130。要注意,在確定客戶端請求的數(shù)據(jù)是否存在于高速緩存文件管理 器120上之前驗證所述數(shù)據(jù)。這是因為,如果數(shù)據(jù)存在于高速緩存文 件管理器上,即使在驗證和服務(wù)數(shù)據(jù)之間在原始服務(wù)器180上發(fā)生對 該數(shù)據(jù)的更新,也不向客戶端發(fā)出。在該后一種情況下,那些操作 被認為是"覆蓋操作",并且通過將讀取請求作為首次發(fā)生來對待 而將那些操作串行化。還要注意,考慮網(wǎng)絡(luò)高速緩存系統(tǒng)部署,其 中多個客戶端訪問多個高速緩存文件管理器和/或原始服務(wù)器,則屬 性可以變化。在說明性的實施例中,在網(wǎng)絡(luò)高速緩存系統(tǒng)部署上沒有顯式的鎖 定。然而,網(wǎng)絡(luò)高速緩存系統(tǒng)依賴的語義是,與寫入操作覆蓋的讀 取操作(即在驗證之前不發(fā)生寫入)可在寫入之前返回讀取。換句 話說,驗證響應(yīng)指明對于文件沒有屬性發(fā)生變化并且該文件數(shù)據(jù)可 從高速緩存文件管理器的高速緩存巻150提供(如果可能)。當隨后 服務(wù)來自高速緩存巻的該數(shù)據(jù)時,高速緩存文件管理器120像讀取操 作發(fā)生在寫入操作之前一樣地來操作。清楚地,在高速緩存命中的情況下,網(wǎng)絡(luò)高速緩存系統(tǒng)100保持 語義。在部分高速緩存未中的情況下,網(wǎng)絡(luò)高速緩存系統(tǒng)100通過有 效地從擦除(scratch)開始來保持語義。對于后者,假設(shè)客戶端發(fā) 送32kB的讀取請求并且高速緩存文件管理器僅遺失了該請求的4kB 的塊(遺失數(shù)據(jù)不在高速緩存巻上)。該情況的正常響應(yīng)是,為高 速緩存文件管理器發(fā)送4kB的NRV讀取消息,以填充該遺失數(shù)據(jù),并 伴有隱式的驗證(因為每個讀取返回文件屬性)。還假設(shè)之前的顯 式驗證指明數(shù)據(jù)沒有什么變化,但在顯式驗證和發(fā)送4kB的NRV讀取 消息之間發(fā)生了介入的寫操作。因為在讀取響應(yīng)中屬性發(fā)生了變化 (由伴隨有響應(yīng)的隱式驗證來表示),高速緩存文件管理器檢測到 該介入的寫入。這轉(zhuǎn)而使得高速緩存文件管理器120在其高速緩存巻 150上彈出其文件的副本并且使用NRV讀取消息來生成適當?shù)墨@取操 作,以從原始服務(wù)器180獲取所請求的數(shù)據(jù)。該情況表示了寫入操作可引起額外的和浪費的讀取操作。根據(jù)本發(fā)明的一個方面,泵模塊298可用于緩解這種不足。泵模 塊實現(xiàn)流控制并且新的網(wǎng)絡(luò)高速緩存系統(tǒng)體系結(jié)構(gòu)提供了另 一種形 式的流控制,該流控制實質(zhì)上代理了向原始服務(wù)器18 0的讀取操作, 而不用經(jīng)由普通文件系統(tǒng)讀取處理器為它們服務(wù)。即是,響應(yīng)于為 服務(wù)客戶端請求而難以將文件的數(shù)據(jù)裝載到其本地高速緩存中,高 速緩存文件管理器120切換到這樣的模式將指向該文件的讀取操作 傳遞到RUE292 (類似于寫操作)且傳遞到原始服務(wù)器180上,而是通 過文件系統(tǒng)280傳遞到讀取處理器。原始服務(wù)器接著使用標準的流控 制和原子性機制,以便將單個響應(yīng)返回到該讀取操作。G. 優(yōu)先化根據(jù)本發(fā)明的一個方面,由高速緩存文件管理器執(zhí)行提前讀取操 作,并且因此當在客戶端請求和推測的提前讀取請求之間存在差異 時,文件管理器實現(xiàn)了優(yōu)先化。該特征對于網(wǎng)絡(luò)高速緩存系統(tǒng)實現(xiàn) 的優(yōu)點在于,因為它不會"看見"所有的客戶端請求,因此通常當 做出提前讀取的決定時,原始服務(wù)器不必具有和高速緩存文件管理 器一樣多的知識。因為高速緩存文件管理器具有在其上執(zhí)行的多協(xié) 議引擎,它可做出與通常由原始服務(wù)器做出的相同的提前讀取的決 定,即使在文件管理器和服務(wù)器之間存在高速緩存巻。特別地,高 速緩存文件管理器使用和由原始服務(wù)器使用的相同的提前讀取引 擎,并且因此像原始服務(wù)器一樣生成相同的提前讀取請求。為了請 求的優(yōu)先化,網(wǎng)絡(luò)高速緩存系統(tǒng)實現(xiàn)將請求作為兩個不同的優(yōu)先級 范圍對待,其中客戶端請求的優(yōu)先級在推測的提前讀取之上,并且 如果系統(tǒng)是飽和的,則丟棄推測的提前讀取請求。H. 高速緩存彈出如所記錄的,截取器294編碼高速緩存彈出策略,以便當本地高 速緩存(例如高速緩存巻150)變滿時回收存儲空間。在高速緩存文 件管理器120的高速緩存巻150小于在原始服務(wù)器180的原始巻185上 存儲的工作區(qū)的情況下,頻繁地出現(xiàn)高速緩存彈出決定。當接收客 戶端請求時,高速緩存文件管理器需要釋放巻存儲空間以高速緩存 (存儲)那些請求。在釋放空間時,必須從高速緩存巻150收回一些 數(shù)據(jù)。在說明性的實施例中,截取器294實現(xiàn)為掃描器,其配置為當需要空間時,(i )在高速緩存巻150內(nèi)"行走"以掃描存儲在巻上 的文件的緩沖樹和(ii )做出關(guān)于應(yīng)當收回哪些之前被高速緩存的 數(shù)據(jù)的決定。說明性地,高速緩存彈出策略是貫穿信息節(jié)點文件的循環(huán)處理, 優(yōu)點是不需要維持全局的最近最少使用(LRU)的列表。為此,截取 器294以循環(huán)法(round robin)方式掃描信息節(jié)點文件,例如在信 息節(jié)點的起點開始,前進到終點并且接著在該文件的起點重新開 始,且任意地收回其經(jīng)過的每個完整文件(直到滿足了需要的空閑 空間)。因此,當需要空間時策略隨機地收回文件,但具有特性 在信息節(jié)點文件被完全地遍歷之前,相同的文件不會被收回兩次。 如果高速緩存巻是繁忙的,則非常可能的是在任何給定的時間將工 作區(qū)的大部分高速緩存。然而,如果錯誤地收回了 "流行"的文件, 在截取器遍歷了整個信息節(jié)點文件之前策略將不會再次收回該文 件。圖12是根據(jù)本發(fā)明的實施例的示出實現(xiàn)高速緩存彈出策略的過 程1200的步驟的流程圖。過程在步驟1202開始,并且進行到步驟 1204,其中截取器初始化到信息節(jié)點文件的第一信息節(jié)點。在步驟 1206,響應(yīng)于例如高速緩存巻變?yōu)橥耆畛?,截取器被喚?調(diào)用)。 在步驟1208,截取器"收回,,第一信息節(jié)點并且在步驟1210,繼續(xù) 收回隨后的信息節(jié)點(文件),直到在巻上有足夠的可用存儲空間。 實質(zhì)上,僅當需要收回高速緩存巻上的存儲空間時,截取器被激活 且掃過信息節(jié)點文件。說明性地,通過傳遞緩沖樹到刪除現(xiàn)有塊的 "僵(zombie)"系統(tǒng)來收回信息節(jié)點或文件(或更具體地,文件 的信息節(jié)點緩沖樹)并且該信息節(jié)點接著被在頂級具有"孔"的信 息節(jié)點代替。關(guān)于這點,孔定義為高速緩存巻上的信息節(jié)點文件的 未分配的段(與缺少塊相反,缺少塊是被分配的)。過程接著在步 驟1212結(jié)束。對于高速緩存彈出策略的優(yōu)化是收回(刪除)信息節(jié)點的整個 塊,諸如刪除信息節(jié)點文件塊中的每個信息節(jié)點、釋放信息節(jié)點文 件塊和將孔插入在信息節(jié)點文件中其位置處(分配新的空白信息節(jié) 點文件塊)。在高速緩存巻上的孔(或信息節(jié)點文件的未分配段) 依從于原始服務(wù)器上的可能實際使信息節(jié)點被分配的信息節(jié)點文件塊。在該后一種情況下,當客戶端請求訪問特別的文件時,高速緩存文件管理器僅分配信息節(jié)點文件塊;在分配信息節(jié)點文件塊時, 高速緩存文件管理器啟動獲取以獲得文件內(nèi)容。該特定于高速緩存 的格式使得能夠使用文件系統(tǒng)默認策略,以在信息節(jié)點文件中用新 的未分配信息節(jié)點來填充孔。在說明性的實施例中,存在兩個用于激活截取器294的觸發(fā)器。 一個觸發(fā)器在填充時間(其中術(shù)語"填充"表示當在高速緩存文件 管理器從原始接收響應(yīng)時采取的動作)發(fā)生。在填充時間,期望將 任何返回的數(shù)據(jù)插入到其文件的緩沖樹中;但如果沒有足夠的物理 磁盤空間容納該數(shù)據(jù),通過文件系統(tǒng)中的空間統(tǒng)計來觸發(fā)截取器。 說明性地,檢查聚集中的空閑塊的數(shù)目并且基于低-高水線標志(例 如85%-95%),確定觸發(fā)截取器是適當?shù)?。截取器的另一個觸發(fā)器是在文件系統(tǒng)一致性點(CP)時刻。因為 高速緩存巻是靈活的vvol,它們可和傳統(tǒng)巻共存于相同的聚集上。 當傳統(tǒng)(或虛擬)巻擴展而消耗更多的磁盤空間時,在高速緩存巻 上觸發(fā)截取以限制其磁盤空間的消耗。在CP時間(例如每10秒或CP 頻繁發(fā)生)測試磁盤空間的量(聚集中的自由物理空間)。這里, 寫分配器282發(fā)信號通知截取器294重新啟動并且釋放聚集的存儲空 間,直到可用空間落入低于設(shè)立的低水線標志。I.結(jié)論有利地,本發(fā)明虛擬化多協(xié)議高速緩存文件管理器的存儲空間, 使得能夠讓客戶端對網(wǎng)絡(luò)高速緩存系統(tǒng)服務(wù)的數(shù)據(jù)快且有效地訪 問。不像之前的高速緩存系統(tǒng),該系統(tǒng)需要顯式的文件的句柄到對 象的存儲轉(zhuǎn)換,新的多協(xié)議高速緩存文件管理器使得客戶端能夠通 過使用文件系統(tǒng)且特別地使用由文件系統(tǒng)組織的存儲對象(文件) 的實際名稱而有效地訪問由網(wǎng)絡(luò)高速緩存系統(tǒng)服務(wù)的數(shù)據(jù)。而且, 文件系統(tǒng)與高速緩存文件管理器的稀疏的巻協(xié)同,以便提供以對多 協(xié)議客戶端透明的方式對所提供數(shù)據(jù)的存儲空間虛擬化。盡管已經(jīng)示出和描述了網(wǎng)絡(luò)高速緩存系統(tǒng)的說明性實施例,所述 網(wǎng)絡(luò)高速緩存系統(tǒng)具有耦合到原始服務(wù)器的多協(xié)議高速緩存文件管 理器,以響應(yīng)于計算機網(wǎng)絡(luò)上多協(xié)議客戶端發(fā)出的數(shù)據(jù)訪問請求而 提供由文件管理器服務(wù)的數(shù)據(jù)的存儲虛擬化,應(yīng)當理解,可在本發(fā)明的精神和范圍內(nèi)做出各種其它適應(yīng)和修改。例如,在本發(fā)明的可替換實施例中,需求生成器296可用于系統(tǒng)地獲取沒有本地存儲在磁 盤上的數(shù)據(jù)塊,以用于預(yù)填充高速緩存巻。注意,在高速緩存部署 中使用比原始巻185小很多的高速緩存巻150 (例如以提供相對于完 全復(fù)制的優(yōu)點)是常見的。所以,更小的高速緩存巻的預(yù)填充需要 專門的需求生成器,該需求生成器配置為提供關(guān)于應(yīng)當駐留在本地 高速緩存的數(shù)據(jù)的智能決定,因為不是所有的原始數(shù)據(jù)都適合高速 緩存。前面的說明已經(jīng)針對了本發(fā)明的特定實施例。然而明顯的是,可 對描述的實施例做出其它變化和修改,而具有所述實施例的一些或 全部優(yōu)點。例如,明顯可預(yù)期的是,本發(fā)明的教導可實現(xiàn)為軟件, 包括具有在計算機上執(zhí)行的程序指令的計算機可讀介質(zhì)、硬件、固 件或其組合。因此,僅是通過舉例的方式給出了本說明書并且其并 不限制本發(fā)明的范圍。因此,所附權(quán)利要求的目標是覆蓋落入本發(fā) 明的真實精神和范圍的所有這種變化和修改。
權(quán)利要求
1.一種網(wǎng)絡(luò)高速緩存系統(tǒng),包括原始服務(wù)器;和耦合到原始服務(wù)器的高速緩存文件管理器,該高速緩存文件管理器具有配置為管理稀疏卷的文件系統(tǒng),該文件系統(tǒng)虛擬化數(shù)據(jù)的存儲空間以由此響應(yīng)于多協(xié)議客戶端發(fā)出的數(shù)據(jù)訪問請求而提供由文件管理器服務(wù)的數(shù)據(jù)的存儲虛擬化。
2. 權(quán)利要求l所述的網(wǎng)絡(luò)高速緩存系統(tǒng),還包括高速緩存文件管 理器的多協(xié)議引擎,該多協(xié)議引擎配置為將多協(xié)議客戶端發(fā)出的多 協(xié)議數(shù)據(jù)訪問請求變換為可由高速緩存文件管理器和原始服務(wù)器都 執(zhí)行的文件系統(tǒng)操作。
3. 權(quán)利要求2所述的網(wǎng)絡(luò)高速緩存系統(tǒng),還包括高速緩存文件管 理器的本地高速緩存,該本地高速緩存包括適于服務(wù)由一個或多個 客戶端從一個或多個存儲對象請求的數(shù)據(jù)的稀疏巻,所述存儲對象具有至少一個表示從稀疏巻中遺失的數(shù)據(jù)的缺少塊,其中缺少塊的 遺失數(shù)據(jù)存儲在原始服務(wù)器上并且以對客戶端透明的方式使用遠程 獲取操作來取得。
4. 權(quán)利要求3所述的網(wǎng)絡(luò)高速緩存系統(tǒng),其中存儲對象是文件和 邏輯單元號之一。
5. 權(quán)利要求3所述的網(wǎng)絡(luò)高速緩存系統(tǒng),其中稀疏巻是包括耦合 到高速緩存文件管理器的一個或多個磁盤的高速緩存巻。
6. 權(quán)利要求5所述的網(wǎng)絡(luò)高速緩存系統(tǒng),還包括高速緩存文件管 理器的遠程更新引擎(RUE),該RUE配置為將修改高速緩存巻的任 何文件系統(tǒng)操作轉(zhuǎn)發(fā)到原始服務(wù)器。
7. 權(quán)利要求6所述的網(wǎng)絡(luò)高速緩存系統(tǒng),還包括高速緩存文件管 理器的截取器,該截取器配置為實現(xiàn)高速緩存彈出策略以在高速緩 存巻變滿時回收存儲空間。
8. —種用于操作網(wǎng)絡(luò)高速緩存系統(tǒng)的方法,包括 接收指向所述系統(tǒng)的高速緩存文件管理器上的存儲對象的數(shù)據(jù)訪問請求;確定數(shù)據(jù)訪問請求是否修改在高速緩存文件管理器的高速緩存 巻上存儲的數(shù)據(jù);如果是,將所述數(shù)據(jù)訪問請求從高速緩存文件管理器傳送到所述系統(tǒng)的原始服務(wù)器;和在原始服務(wù)器處理所述數(shù)據(jù)訪問請求。
9. 權(quán)利要求8所述的方法,還包括如果所述數(shù)據(jù)訪問請求沒有修改高速緩存巻上存儲的數(shù)據(jù),將該 請求傳遞到高速緩存文件管理器的文件系統(tǒng)中;確定所述請求所請求的數(shù)據(jù)是否駐留在高速緩存文件管理器的 本地高速緩存上;如果未駐留,在高速緩存文件管理器上生成一個或多個獲取操作 以從原始服務(wù)器取得所請求的數(shù)據(jù);和在從原始服務(wù)器接收響應(yīng)時,將獲取的數(shù)據(jù)存儲在高速緩存文件 管理器的本地高速緩存中。
10. 權(quán)利要求9所述的方法,還包括如果所請求的數(shù)據(jù)駐留在高速緩存文件管理器的本地高速緩存 上,在高速緩存文件管理器服務(wù)所述請求。
11. 一種用于操作網(wǎng)絡(luò)高速緩存系統(tǒng)的方法,包括 接收指向所述系統(tǒng)的高速緩存文件管理器上的存儲對象的數(shù)據(jù)訪問請求;從高速緩存文件管理器向所述系統(tǒng)的原始服務(wù)器發(fā)送按需獲取 (F0D)的請求,該FOD請求對存儲對象的屬性的最近副本進行請求;確定自從存儲對象在高速緩存文件管理器上高速緩存后,是否發(fā) 生了任何屬性的變化;和如果是,觸發(fā)在高速緩存文件管理器的本地高速緩存上存儲的存 儲對象的彈出。
12. 權(quán)利要求ll所述的方法,其中存儲對象是文件和邏輯單元號 之一。
13. 權(quán)利要求ll所述的方法,其中屬性包括存儲對象的修改時間 和存儲對象的創(chuàng)建時間。
14. 權(quán)利要求13所述的方法,其中任何屬性中發(fā)生的變化表明存 儲對象自從在高速緩存文件管理器上高速緩存后已經(jīng)修改過。
15. 權(quán)利要求ll所述的方法,還包括在高速緩存文件管理器上生成一個或多個獲取操作,以從原始服務(wù)器取得所請求的數(shù)據(jù)。
16. 權(quán)利要求15所述的方法,其中每個獲取操作實現(xiàn)為NRV讀取 消息。
17. 用于操作網(wǎng)絡(luò)高速緩存系統(tǒng)的設(shè)備,包括 用于接收指向所述系統(tǒng)的高速緩存文件管理器上的存儲對象的數(shù)據(jù)訪問請求的裝置;用于確定數(shù)據(jù)訪問請求是否修改在高速緩存文件管理器的高速 緩存巻上存儲的數(shù)據(jù)的裝置;如果是,用于將所述數(shù)據(jù)訪問請求從高速緩存文件管理器傳送到 所述系統(tǒng)的原始服務(wù)器的裝置;和用于在原始服務(wù)器處理所述數(shù)據(jù)訪問請求的裝置。
18. 權(quán)利要求17所述的設(shè)備,還包括如果所述數(shù)據(jù)訪問請求沒有修改高速緩存巻上存儲的數(shù)據(jù),用于 將該請求傳遞到高速緩存文件管理器的文件系統(tǒng)中的裝置;用于確定所述請求所請求的數(shù)據(jù)是否駐留在高速緩存文件管理 器的本地高速緩存上的裝置;如果未駐留,用于在高速緩存文件管理器上生成一個或多個獲取 操作以從原始服務(wù)器取得所請求的數(shù)據(jù)的裝置;和在從原始服務(wù)器接收響應(yīng)時,用于將獲取的數(shù)據(jù)存儲在高速緩存 文件管理器的本地高速緩存中的裝置。
19. 一種包含操作網(wǎng)絡(luò)高速緩存系統(tǒng)的可執(zhí)行程序指令的計算機 可讀介質(zhì),該可執(zhí)行指令包括一個或多個程序指令,用于接收指向所述系統(tǒng)的高速緩存文件管理器上的存儲對象的數(shù)據(jù) 訪問請求;確定數(shù)據(jù)訪問請求是否修改在高速緩存文件管理器的高速緩存 巻上存儲的數(shù)據(jù);如果是,將所述數(shù)據(jù)訪問請求從高速緩存文件管理器傳送到所述 系統(tǒng)的原始服務(wù)器;和在原始服務(wù)器處理所述數(shù)據(jù)訪問請求。
20. 權(quán)利要求19所述的計算機可讀介質(zhì),還包括一個或多個程序 指令,用于如果所述數(shù)據(jù)訪問請求沒有修改高速緩存巻上存儲的數(shù)據(jù),將該請求傳遞到高速緩存文件管理器的文件系統(tǒng)中;確定所述請求所請求的數(shù)據(jù)是否駐留在高速緩存文件管理器的 本地高速緩存上;如果未駐留,在高速緩存文件管理器上生成一個或多個獲取操作 以從原始服務(wù)器取得所請求的數(shù)據(jù);和在從原始服務(wù)器接收響應(yīng)時,將獲取的數(shù)據(jù)存儲在高速緩存文件 管理器的本地高速緩存中。
全文摘要
一種網(wǎng)絡(luò)高速緩存系統(tǒng),具有連接到原始服務(wù)器的多協(xié)議高速緩存文件管理器,以提供文件管理器響應(yīng)于計算機網(wǎng)絡(luò)上多協(xié)議客戶端發(fā)出的數(shù)據(jù)訪問請求而提供的數(shù)據(jù)的存儲虛擬化。多協(xié)議高速緩存文件管理器包括配置為管理稀疏卷的文件系統(tǒng),該文件系統(tǒng)虛擬化數(shù)據(jù)的存儲空間以由此提供使得能夠由多協(xié)議客戶端訪問數(shù)據(jù)的高速緩存功能。為此,高速緩存文件管理器還包括多協(xié)議引擎,該多協(xié)議引擎配置為將多協(xié)議客戶端數(shù)據(jù)訪問請求轉(zhuǎn)換為可由高速緩存文件管理器和原始服務(wù)器都可執(zhí)行的通用文件系統(tǒng)原始操作。
文檔編號G06F17/30GK101228523SQ200680022927
公開日2008年7月23日 申請日期2006年4月24日 優(yōu)先權(quán)日2005年4月25日
發(fā)明者B·M·夸里安, J·A·蘭戈, K·艾亞爾, M·B·阿姆杜, P·C·伊斯塔姆, P·格里伊斯, Q·鄭, R·L·Y·蔡, R·M·恩格里斯 申請人:網(wǎng)絡(luò)裝置公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
福清市| 邹城市| 铜梁县| 宁海县| 当阳市| 鲁甸县| 临武县| 三台县| 积石山| 柘城县| 临夏市| 土默特左旗| 敖汉旗| 聂拉木县| 侯马市| 鱼台县| 长治县| 呼图壁县| 泰兴市| 濮阳市| 遵化市| 绥芬河市| 宝清县| 苍梧县| 绥芬河市| 台北县| 友谊县| 长沙市| 泽库县| 稷山县| 高雄县| 卢湾区| 哈尔滨市| 顺平县| 凭祥市| 三门峡市| 武夷山市| 平武县| 五原县| 广饶县| 义乌市|