對并行存儲的塊級訪問的制作方法
【專利說明】對并行存儲的塊級訪問
[0001] 背景
[0002] 企業(yè)需要針對它們的日益增長的信息和計(jì)算需求的新穎解決方案。常規(guī)企業(yè)級計(jì) 算系統(tǒng)采用瘦客戶機(jī),這嚴(yán)重依賴于麻煩的多層硬件基礎(chǔ)結(jié)構(gòu)(例如,服務(wù)器)來完成傳統(tǒng) 的計(jì)算機(jī)功能性。瘦客戶機(jī)與被設(shè)計(jì)成在本地執(zhí)行計(jì)算的傳統(tǒng)計(jì)算機(jī)形成對比。最常見類 型的現(xiàn)代瘦客戶機(jī)是能夠向最終用戶提供圖形用戶界面但不提供很多其他的低端計(jì)算機(jī) 終端。其余功能性,尤其是操作系統(tǒng),由服務(wù)器提供。這樣的技術(shù)通常具有歸因于實(shí)現(xiàn)分層 聯(lián)網(wǎng)體系結(jié)構(gòu)(例如,本地接入網(wǎng)(LAN))的等待時(shí)間以及昂貴的計(jì)算成本的負(fù)擔(dān)。
[0003] 其他計(jì)算技術(shù)從傳統(tǒng)聯(lián)網(wǎng)/存儲體系結(jié)構(gòu)過渡到扁平體系結(jié)構(gòu)。對于大型數(shù)據(jù)中 心,例如,常見的分層聯(lián)網(wǎng)體系結(jié)構(gòu)由于高等待時(shí)間成本和復(fù)雜的軟件而不再適于大型數(shù) 據(jù)中心。典型的扁平體系結(jié)構(gòu)(例如,微軟? Flat Datacenter Storage)被并行化(表示 從分層體系結(jié)構(gòu)的主要轉(zhuǎn)移),并跨交換以太網(wǎng)結(jié)構(gòu)來互連虛擬機(jī)和虛擬存儲卷。一些現(xiàn)有 扁平體系結(jié)構(gòu)將虛擬存儲卷分布在各節(jié)點(diǎn)上,其中數(shù)據(jù)被存儲在這些節(jié)點(diǎn)上且在某一時(shí)刻 通過網(wǎng)絡(luò)傳送以在別處處理。其他體系結(jié)構(gòu)被配置成在本地訪問所存儲的數(shù)據(jù)并將計(jì)算任 務(wù)分布在各計(jì)算節(jié)點(diǎn)之間,以避免通過網(wǎng)絡(luò)傳送數(shù)據(jù)。
[0004] 盡管扁平體系結(jié)構(gòu)提供了許多益處,但企業(yè)級計(jì)算系統(tǒng)與大型數(shù)據(jù)中心不同,呈 現(xiàn)了沒有被當(dāng)前技術(shù)滿足的不同需求集合。例如,這樣的系統(tǒng)需要滿足不同的最終用戶性 能標(biāo)準(zhǔn)(例如,更嚴(yán)格水平的可接受性能和最終用戶滿意度)。當(dāng)前趨勢指示企業(yè)級計(jì)算系 統(tǒng)往往受傳統(tǒng)分層體系結(jié)構(gòu)的剛性的限制且正朝著實(shí)現(xiàn)扁平體系結(jié)構(gòu)來轉(zhuǎn)移。因?yàn)檫@樣的 扁平體系結(jié)構(gòu)是針對大型數(shù)據(jù)中心來設(shè)計(jì)的,所以本機(jī)接口不適用于所存儲的數(shù)據(jù)與最終 用戶計(jì)算設(shè)備之間的塊級輸入/輸出。
[0005] 概述
[0006] 提供本概述以便以簡化形式介紹將在以下的詳細(xì)描述中進(jìn)一步描述的一些代表 性概念的選集。本概述不旨在標(biāo)識出所要求保護(hù)的主題的關(guān)鍵特征或必要特征,也不旨在 以限制所要求保護(hù)的主題的范圍的任何方式來使用。
[0007] 簡言之,本文描述的主題的各方面涉及為企業(yè)級計(jì)算系統(tǒng)實(shí)現(xiàn)塊級輸入/輸出功 能性,并且因此向最終用戶計(jì)算設(shè)備提供對并行存儲的塊級訪問。在一個(gè)方面,并行存儲可 以與如下扁平體系結(jié)構(gòu)相對應(yīng):該扁平體系結(jié)構(gòu)使現(xiàn)有軟件程序具有以等于或大于與本地 存儲相關(guān)聯(lián)的平均數(shù)據(jù)傳輸率的速率對所存儲的數(shù)據(jù)的讀/寫訪問。
[0008] 在一個(gè)方面,并行存儲的轉(zhuǎn)換器組件將文件數(shù)據(jù)劃分成塊。轉(zhuǎn)換器組件可以使用 映射方案來將文件數(shù)據(jù)的各塊分派給存儲節(jié)點(diǎn)內(nèi)的塊級地址/位置?;谶@些位置,在處 理輸入/輸出操作時(shí),轉(zhuǎn)換器組件可以并行訪問這些塊中的一個(gè)或多個(gè)。在一個(gè)方面,輸入 /輸出操作可被定向到虛擬存儲區(qū),其中相鄰分區(qū)映射到與存儲節(jié)點(diǎn)相關(guān)聯(lián)的地址空間內(nèi) 的不相鄰的塊級地址。因此,轉(zhuǎn)換器組件可并發(fā)地檢索各相鄰部分中的至少一部分。
[0009] 在另一方面,在最終用戶計(jì)算設(shè)備上運(yùn)行的接口組件可以與操作系統(tǒng)對接。接口 組件可以訪問塊級地址以尋找二進(jìn)制大對象內(nèi)的字節(jié)序列。在軟件程序發(fā)起定向到該字節(jié) 序列的文件系統(tǒng)輸入/輸出操作時(shí),操作系統(tǒng)使用接口組件來將這些操作轉(zhuǎn)換成塊級、并 行的輸入/輸出操作。接口組件可以通過數(shù)據(jù)網(wǎng)絡(luò)將塊級、并行的輸入/輸出操作傳遞給 存儲機(jī)制。
[0010] 結(jié)合附圖閱讀以下【具體實(shí)施方式】,本發(fā)明的其他優(yōu)點(diǎn)會變得顯而易見。
【附圖說明】
[0011] 作為示例而非限制,在附圖中示出了本發(fā)明,附圖中相同的附圖標(biāo)記指示相同或 相似的元素,附圖中:
[0012] 圖1是根據(jù)一個(gè)示例實(shí)現(xiàn)的示出用于提供對來自并行存儲的文件數(shù)據(jù)的塊級訪 問的示例系統(tǒng)的框圖。
[0013] 圖2是根據(jù)一個(gè)示例實(shí)現(xiàn)的示出用于并行存儲訪問的示例體系結(jié)構(gòu)的框圖。
[0014] 圖3是根據(jù)一個(gè)示例實(shí)現(xiàn)的用于虛擬存儲區(qū)的示例映射方案的表示。
[0015] 圖4是根據(jù)一個(gè)示例實(shí)現(xiàn)的示出用于提供對文件數(shù)據(jù)的塊級訪問的示例步驟的 流程圖。
[0016] 圖5是根據(jù)一個(gè)示例實(shí)現(xiàn)的示出用于將定向到文件數(shù)據(jù)的輸入/輸出并行化的示 例步驟的流程圖。
[0017] 圖6是表示示例性非限制聯(lián)網(wǎng)環(huán)境的框圖,其中可實(shí)現(xiàn)本文所描述的各種實(shí)施 例。
[0018] 圖7是表示示例性非限制計(jì)算系統(tǒng)或運(yùn)行環(huán)境的框圖,其中可實(shí)現(xiàn)本文所描述各 種實(shí)施例的一個(gè)或多個(gè)方面。
【具體實(shí)施方式】
[0019] 本文描述的技術(shù)的各方面一般涉及向計(jì)算設(shè)備提供對所存儲的文件數(shù)據(jù)的并行 化塊級訪問的一個(gè)或多個(gè)并行存儲組件。在一個(gè)示例實(shí)現(xiàn)中,計(jì)算設(shè)備發(fā)起定向到文件級 地址(例如,字節(jié)序列位置)的文件級輸入/輸出。一個(gè)并行存儲組件將這些地址轉(zhuǎn)換成 塊級地址,以將文件級輸入/輸出作為塊級輸入/輸出來處理。并行存儲組件可通過返回 所請求的數(shù)據(jù)(例如,響應(yīng)于讀操作)和/或已完成輸入/輸出的通知(例如,響應(yīng)于寫操 作或轉(zhuǎn)儲清除操作)來進(jìn)行響應(yīng)。
[0020] 如本文所描述的,示例并行存儲組件可以支持商用軟件程序,如未經(jīng)修改的(例 如,桌面)軟件應(yīng)用和其他現(xiàn)有軟件/硬件組件(例如,操作系統(tǒng)組件)。在并行存儲組件 將本地地址空間覆蓋在多個(gè)盤的對應(yīng)塊位置上之后,本地文件系統(tǒng)驅(qū)動程序可指令該示例 并行存儲組件在所存儲的遠(yuǎn)程文件數(shù)據(jù)上執(zhí)行并行化塊級輸入/輸出。另一示例并行存儲 組件可以允許聯(lián)網(wǎng)的計(jì)算設(shè)備將已知文件系統(tǒng)驅(qū)動程序(如二進(jìn)制大對象(BLOB)存儲上 的現(xiàn)有POSIX文件系統(tǒng))裝載在并行存儲上,同時(shí)實(shí)現(xiàn)改進(jìn)的輸入/輸出性能。
[0021] 其他并行存儲組件(在本文中也可被稱為存儲設(shè)備驅(qū)動程序)可以生成盤接口, 如串行ATA (SATA),商用軟件程序通過該盤接口可傳遞定向到遠(yuǎn)程盤的文件級輸入/輸出。 文件系統(tǒng)驅(qū)動程序或另一操作系統(tǒng)組件可以傳遞文件級輸入/輸出操作,請求從虛擬存儲 區(qū)(例如,虛擬硬盤文件)讀取數(shù)據(jù)和/或向虛擬存儲區(qū)寫入數(shù)據(jù)。一個(gè)或多個(gè)并行存儲 組件可以將該文件級輸入/輸出操作轉(zhuǎn)換成并行化塊級輸入/輸出操作,以供跨多個(gè)存儲 節(jié)點(diǎn)執(zhí)行。
[0022] 經(jīng)由該一個(gè)或多個(gè)并行存儲組件,操作系統(tǒng)組件可以使用虛擬存儲區(qū)來對計(jì)算設(shè) 備(如物理計(jì)算機(jī)或虛擬機(jī))進(jìn)行網(wǎng)絡(luò)引導(dǎo)。該一個(gè)或多個(gè)并行存儲組件可通過使用因特 網(wǎng)小型計(jì)算機(jī)系統(tǒng)接口(iSCSI)或以太網(wǎng)ATA(AoE)獲取一個(gè)或多個(gè)操作系統(tǒng)組件并隨后 裝載虛擬存儲區(qū)以訪問應(yīng)用程序二進(jìn)制文件和個(gè)人用戶數(shù)據(jù)來進(jìn)行網(wǎng)絡(luò)引導(dǎo)。另一示例實(shí) 現(xiàn)可以采用微軟? Windows?預(yù)安裝環(huán)境(WinPE?)的經(jīng)修改版本。
[0023] 并行存儲一般指的是其中數(shù)據(jù)存儲/檢索任務(wù)并發(fā)地分布在各存儲節(jié)點(diǎn)之間并 被執(zhí)行的體系結(jié)構(gòu)。示例并行存儲體系結(jié)構(gòu)將計(jì)算設(shè)備的全對分帶寬網(wǎng)絡(luò)與統(tǒng)計(jì)上多路復(fù) 用的盤組合在一起,使得與本地盤相比,塊級輸入/輸出實(shí)現(xiàn)相同或更好的傳輸率。計(jì)算設(shè) 備(例如,臺式計(jì)算機(jī))和統(tǒng)計(jì)上多路復(fù)用的盤可占據(jù)同一地理區(qū)域或物理地點(diǎn)(例如,校 園)。為了示出一個(gè)示例實(shí)施