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

分布式文件服務(wù)體系結(jié)構(gòu)系統(tǒng)的制作方法

文檔序號(hào):6476224閱讀:227來(lái)源:國(guó)知局
專(zhuān)利名稱(chēng):分布式文件服務(wù)體系結(jié)構(gòu)系統(tǒng)的制作方法
技術(shù)領(lǐng)域
本發(fā)明總體上涉及存儲(chǔ)系統(tǒng)體系結(jié)構(gòu),具體而言,涉及一種用于提供具有元數(shù)據(jù)存儲(chǔ)虛擬化的分布式文件服務(wù)體系結(jié)構(gòu)的方法、設(shè)備和程序存儲(chǔ)裝置。
背景技術(shù)
計(jì)算機(jī)在存儲(chǔ)和管理信息方面的日益增加的能力已經(jīng)使得它們?nèi)找娉蔀楝F(xiàn)代商業(yè)所不可缺少的。這些機(jī)器的流行導(dǎo)致諸如電子郵件和文檔之類(lèi)的數(shù)據(jù)在一個(gè)或多個(gè)計(jì)算機(jī)網(wǎng)絡(luò)上的廣泛共享和通信,其中所述一個(gè)或多個(gè)計(jì)算機(jī)網(wǎng)絡(luò)包括局域網(wǎng)、諸如因特網(wǎng)的廣域網(wǎng)以及無(wú)線網(wǎng)絡(luò)。
計(jì)算機(jī)操作系統(tǒng)是較大的、復(fù)雜的軟件,其用于管理計(jì)算機(jī)處理系統(tǒng)的硬件和軟件資源。另一方面,存儲(chǔ)管理軟件用于將存儲(chǔ)裝置(諸如盤(pán))組織成為邏輯分組,以便實(shí)現(xiàn)各種性能和可利用性特征。例如,所述存儲(chǔ)裝置可以被設(shè)置為創(chuàng)建單獨(dú)的卷或者卷的級(jí)聯(lián)、鏡像集(mirror sets)或者鏡像帶區(qū)集(stripes of mirror sets)、乃至獨(dú)立盤(pán)的冗余陣列(RAID)。操作系統(tǒng)在其上執(zhí)行以便提供這種管理功能的計(jì)算機(jī)系統(tǒng)平臺(tái)通常包括主機(jī),所述主機(jī)耦合至管理存儲(chǔ)卷的存儲(chǔ)適配器或者控制器。所述操作系統(tǒng)尤其通過(guò)調(diào)用支持在計(jì)算機(jī)上執(zhí)行的軟件處理或者應(yīng)用程序的輸入/輸出(I/O)操作來(lái)在功能上組織這種平臺(tái)。
存儲(chǔ)體系結(jié)構(gòu)將存儲(chǔ)裝置的管理分解到獨(dú)立部件中,并且相對(duì)于它們當(dāng)中的信息和控制流來(lái)定義它們的功能操作。所述獨(dú)立部件包括I/O子系統(tǒng)以及文件系統(tǒng),它們每一個(gè)通常均彼此獨(dú)立并且根據(jù)由所述體系結(jié)構(gòu)定義的接口來(lái)相互作用。所述I/O子系統(tǒng)提供計(jì)算機(jī)和存儲(chǔ)裝置之間的有效通信模式,其允許程序和數(shù)據(jù)被輸入計(jì)算機(jī)的存儲(chǔ)器中以便處理。所述子系統(tǒng)還能夠使根據(jù)計(jì)算該信息獲得的結(jié)果被記錄到存儲(chǔ)裝置上。
所述文件系統(tǒng)包含有關(guān)在所述存儲(chǔ)裝置上的信息的組織的一般知識(shí),并且提供用于實(shí)現(xiàn)期望的存儲(chǔ)體系結(jié)構(gòu)的屬性/性能的算法。所以,所述文件系統(tǒng)是包括程序模塊集合的高級(jí)軟件實(shí)體,例如用于合并存儲(chǔ)裝置的命令集的軟件驅(qū)動(dòng)程序。
存儲(chǔ)網(wǎng)絡(luò)可以包括一個(gè)或多個(gè)服務(wù)器計(jì)算機(jī),其是大數(shù)據(jù)塊的源以及儲(chǔ)存庫(kù),并且存儲(chǔ)網(wǎng)絡(luò)還包括多個(gè)客戶(hù)端計(jì)算機(jī),其用于與所述服務(wù)器通信、對(duì)較小的數(shù)據(jù)塊進(jìn)行操作并且把編輯的數(shù)據(jù)傳送回所述服務(wù)器。所述服務(wù)器計(jì)算機(jī)通常能夠存儲(chǔ)大量數(shù)據(jù)??梢圆捎酶鞣N數(shù)據(jù)存儲(chǔ)系統(tǒng)來(lái)實(shí)現(xiàn)這種存儲(chǔ),所述數(shù)據(jù)存儲(chǔ)系統(tǒng)包括大的磁和磁光盤(pán)庫(kù)以及磁帶庫(kù)。
如上所述,服務(wù)器可以實(shí)現(xiàn)文件系統(tǒng),以便管理存儲(chǔ)介質(zhì)的空間。所述文件系統(tǒng)向計(jì)算機(jī)系統(tǒng)的用戶(hù)提供邏輯框架以便存取存儲(chǔ)在存儲(chǔ)介質(zhì)中的數(shù)據(jù)。所述邏輯框架通常包括目錄結(jié)構(gòu)的分層結(jié)構(gòu)以便定位包含用戶(hù)命名的程序或者數(shù)據(jù)的文件集合。目錄和文件的使用消除了用戶(hù)在存儲(chǔ)介質(zhì)中查找所存儲(chǔ)的信息的實(shí)際物理位置的必要。
所述邏輯框架可以被存儲(chǔ)為“元數(shù)據(jù)”或者文件的控制信息,諸如文件大小和類(lèi)型以及指向?qū)嶋H數(shù)據(jù)的指針。文件的內(nèi)容可以被稱(chēng)為文件數(shù)據(jù)以便與元數(shù)據(jù)相區(qū)別。元數(shù)據(jù)是“有關(guān)數(shù)據(jù)的數(shù)據(jù)”。元數(shù)據(jù)是用于跟蹤與卷上所有文件有關(guān)的每件事的文件系統(tǒng)開(kāi)銷(xiāo)。例如,元數(shù)據(jù)可以告知對(duì)于給定文件而言什么樣的分配單元組成所述文件數(shù)據(jù),什么樣的分配單元處于空閑,什么樣的分配單元包含壞扇區(qū)等等。
由于應(yīng)用程序通常與所述文件系統(tǒng)進(jìn)行交互以便操作(即,讀取或者寫(xiě)入)所述文件,所以I/O處理通常是在文件系統(tǒng)的支持下執(zhí)行。另一方面,I/O子系統(tǒng)通過(guò)操作數(shù)據(jù)塊以較低軟件級(jí)別與存儲(chǔ)裝置進(jìn)行交互。所述文件系統(tǒng)以及I/O子系統(tǒng)包括許多層的軟件驅(qū)動(dòng)程序代碼,將它們通稱(chēng)為I/O堆棧。常規(guī)的I/O堆棧可以包括文件系統(tǒng)驅(qū)動(dòng)程序、邏輯卷驅(qū)動(dòng)程序、盤(pán)分類(lèi)驅(qū)動(dòng)程序和特定設(shè)備(device-specific)驅(qū)動(dòng)程序,諸如小型計(jì)算機(jī)系統(tǒng)接口(SCSI)端口以及迷你端口驅(qū)動(dòng)程序。
硬件平臺(tái)中的文件系統(tǒng)以及I/O子系統(tǒng)的組織在常規(guī)的存儲(chǔ)體系結(jié)構(gòu)當(dāng)中是改變的。例如,如上所述,傳統(tǒng)的存儲(chǔ)體系結(jié)構(gòu)通常包括被組織為完全在主機(jī)上執(zhí)行的文件系統(tǒng)以及I/O子系統(tǒng)。響應(yīng)于由應(yīng)用程序發(fā)布的I/O事務(wù)請(qǐng)求,主處理器執(zhí)行從存儲(chǔ)裝置向主存儲(chǔ)器傳送數(shù)據(jù)所需要的文件系統(tǒng)以及I/O子系統(tǒng)的軟件代碼。在此體系結(jié)構(gòu)中,所述主處理器實(shí)際上為I/O事務(wù)執(zhí)行兩次I/O堆棧的代碼一次是因?yàn)槭聞?wù)使堆棧減少,而另一次是因?yàn)槭聞?wù)的結(jié)果被返回到所述應(yīng)用程序。此類(lèi)體系結(jié)構(gòu)的I/O操作的執(zhí)行明顯地消耗了大量的計(jì)算機(jī)資源。
為了避免資源的這種消耗,某些存儲(chǔ)體系結(jié)構(gòu)改變它們的文件系統(tǒng)和I/O子系統(tǒng)的布置。例如,可以提供常規(guī)的RAID控制器體系結(jié)構(gòu),其中所述文件系統(tǒng)被包含在主機(jī)內(nèi),并且I/O子系統(tǒng)被分布在主機(jī)和控制器之間。此體系結(jié)構(gòu)的大部分的實(shí)現(xiàn)方式被配置為通過(guò)在文件系統(tǒng)和控制器之間傳送離散的面向塊的請(qǐng)求來(lái)執(zhí)行RAID相關(guān)的操作。然而,當(dāng)完成這些請(qǐng)求時(shí),借助于中斷、即由主處理器改變指令執(zhí)行的正常流的事件來(lái)通知主處理器。對(duì)于此類(lèi)體系結(jié)構(gòu)來(lái)說(shuō),可存在許多與單個(gè)事務(wù)相關(guān)聯(lián)的中斷。因?yàn)槊恳恢袛啾仨氂芍魈幚砥鞣?wù),所以這種體系結(jié)構(gòu)導(dǎo)致處理器的使用效率低。
其他存儲(chǔ)體系結(jié)構(gòu)完全在所述控制器上提供它們的文件系統(tǒng)和I/O子系統(tǒng)。例如,主機(jī)可以依照常規(guī)的客戶(hù)端一服務(wù)器計(jì)算模式與控制器進(jìn)行交互,其中所述主機(jī)(“客戶(hù)端”)通常跨越諸如網(wǎng)絡(luò)之類(lèi)的互連向控制器(“服務(wù)器”)轉(zhuǎn)發(fā)每一I/O事務(wù)。所有事務(wù)被發(fā)送給控制器并且在主機(jī)沒(méi)有任何事務(wù)被本地服務(wù)。用于管理大容量存儲(chǔ)裝置的文件系統(tǒng)的文件控制器被耦合至存儲(chǔ)處理器。盡管這種體系結(jié)構(gòu)把主處理器從I/O處理中解放出來(lái),但是它還不利地影響文件系統(tǒng)等待時(shí)間,即,由應(yīng)用程序向文件系統(tǒng)發(fā)布I/O事務(wù)請(qǐng)求和由文件系統(tǒng)完成該請(qǐng)求之間的時(shí)間段。
近年來(lái),數(shù)據(jù)服務(wù)器已經(jīng)經(jīng)由至少一個(gè)元數(shù)據(jù)服務(wù)器連接(interface)于數(shù)據(jù)網(wǎng)絡(luò)。所述元數(shù)據(jù)服務(wù)器依照網(wǎng)絡(luò)文件存取協(xié)議從數(shù)據(jù)網(wǎng)絡(luò)中的客戶(hù)端接收數(shù)據(jù)存取命令。所述元數(shù)據(jù)服務(wù)器執(zhí)行文件鎖定(locking)管理和網(wǎng)絡(luò)文件向數(shù)據(jù)服務(wù)器中存儲(chǔ)器的邏輯塊地址的映射,并且在客戶(hù)端和數(shù)據(jù)服務(wù)器的存儲(chǔ)器之間移動(dòng)數(shù)據(jù)。然而,使用元數(shù)據(jù)服務(wù)器的體系結(jié)構(gòu)目前要求客戶(hù)端操作系統(tǒng)提供數(shù)據(jù)控制,和/或未能以數(shù)據(jù)服務(wù)器連接的速度提供文件存取。

發(fā)明內(nèi)容
為了解決現(xiàn)有技術(shù)中的局限性以及當(dāng)閱讀和理解本說(shuō)明書(shū)時(shí)將變得明顯的其他局限性,本發(fā)明公開(kāi)了一種用于提供具有元數(shù)據(jù)存儲(chǔ)虛擬化并且以數(shù)據(jù)服務(wù)器連接速度進(jìn)行數(shù)據(jù)存取的分布式文件服務(wù)體系結(jié)構(gòu)的方法、設(shè)備和程序存儲(chǔ)裝置。
本發(fā)明通過(guò)在元數(shù)據(jù)服務(wù)器虛擬化文件-塊數(shù)據(jù)并且提供由數(shù)據(jù)服務(wù)器直接存取主機(jī)的存儲(chǔ)器來(lái)解決上述問(wèn)題。所述元數(shù)據(jù)服務(wù)器允許基于元數(shù)據(jù)向數(shù)據(jù)服務(wù)器提供輸入/輸出操作細(xì)節(jié),以便直接在處于主機(jī)的存儲(chǔ)器和數(shù)據(jù)服務(wù)器之間傳送文件-塊數(shù)據(jù)。
依照本發(fā)明原理的主機(jī)包括用于在其上運(yùn)行應(yīng)用程序的中央處理單元、用于在其中存儲(chǔ)數(shù)據(jù)的存儲(chǔ)器和被耦合至所述存儲(chǔ)器的主機(jī)總線適配器,所述主機(jī)總線適配器包括適配器處理器,它被配置為用于向元數(shù)據(jù)服務(wù)器發(fā)布輸入/輸出請(qǐng)求,并且用于允許直接在存儲(chǔ)器和數(shù)據(jù)服務(wù)器之間對(duì)與所述輸入/輸出請(qǐng)求相關(guān)聯(lián)的數(shù)據(jù)進(jìn)行直接存儲(chǔ)器存取傳送。
在本發(fā)明的另一個(gè)實(shí)施例中,提供了元數(shù)據(jù)服務(wù)器。所述元數(shù)據(jù)服務(wù)器包括用于存儲(chǔ)與數(shù)據(jù)服務(wù)器上的數(shù)據(jù)相關(guān)聯(lián)的元數(shù)據(jù)的存儲(chǔ)器、以及處理器,所述處理器被配置為用于接收來(lái)自于主機(jī)的輸入/輸出請(qǐng)求,并且根據(jù)所述元數(shù)據(jù)向數(shù)據(jù)服務(wù)器發(fā)布輸入/輸出操作細(xì)節(jié),以便直接在主機(jī)的存儲(chǔ)器和數(shù)據(jù)服務(wù)器之間傳送文件-塊數(shù)據(jù)。
在本發(fā)明的另一個(gè)實(shí)施例中,提供了數(shù)據(jù)服務(wù)器。所述數(shù)據(jù)服務(wù)器包括用于在其上存儲(chǔ)文件-塊數(shù)據(jù)的至少一個(gè)存儲(chǔ)裝置,以及可操作地耦合至所述存儲(chǔ)裝置的處理器,所述處理器被配置為用于從元數(shù)據(jù)服務(wù)器接收與主機(jī)的輸入/輸出請(qǐng)求相關(guān)聯(lián)的輸入/輸出操作細(xì)節(jié),用于建立與由所接收的輸入/輸出操作細(xì)節(jié)標(biāo)識(shí)的主機(jī)的存儲(chǔ)器地址的直接連接,并且用于直接在主機(jī)的存儲(chǔ)器地址和至少一個(gè)存儲(chǔ)裝置之間傳送由接收到的輸入/輸出操作細(xì)節(jié)涉及的文件-塊數(shù)據(jù)。
在本發(fā)明的另一個(gè)實(shí)施例中,提供了存儲(chǔ)網(wǎng)絡(luò)。所述存儲(chǔ)網(wǎng)絡(luò)包括主機(jī),所述主機(jī)包括用于在處理輸入/輸出請(qǐng)求中使用的第一存儲(chǔ)器,所述主機(jī)被配置為用于發(fā)布輸入/輸出請(qǐng)求;被耦合至所述主機(jī)的元數(shù)據(jù)服務(wù)器,所述元數(shù)據(jù)服務(wù)器包括用于存儲(chǔ)與文件-塊數(shù)據(jù)相關(guān)聯(lián)的元數(shù)據(jù)的第二存儲(chǔ)器,所述元數(shù)據(jù)服務(wù)器進(jìn)一步被配置為用于接收來(lái)自于所述主機(jī)的輸入/輸出請(qǐng)求并且用于提供輸入/輸出操作細(xì)節(jié)以便處理輸入/輸出請(qǐng)求;以及可操作地耦合至主機(jī)和所述元數(shù)據(jù)服務(wù)器的數(shù)據(jù)服務(wù)器,所述數(shù)據(jù)服務(wù)器包括用于在其上存儲(chǔ)文件-塊數(shù)據(jù)的至少一個(gè)存儲(chǔ)裝置,所述數(shù)據(jù)服務(wù)器被配置為用于從元數(shù)據(jù)服務(wù)器接收輸入/輸出操作細(xì)節(jié)以便處理所述輸入/輸出請(qǐng)求,用于建立與由來(lái)自于元數(shù)據(jù)服務(wù)器的輸入/輸出操作細(xì)節(jié)標(biāo)識(shí)的主機(jī)的存儲(chǔ)器地址的直接連接,并且用于直接在主機(jī)的標(biāo)識(shí)出的存儲(chǔ)器位置和至少一個(gè)存儲(chǔ)裝置之間傳送由所述輸入/輸出操作細(xì)節(jié)涉及的文件-塊數(shù)據(jù)。
在本發(fā)明的另一個(gè)實(shí)施例中,提供了另一種存儲(chǔ)網(wǎng)絡(luò)。這種存儲(chǔ)網(wǎng)絡(luò)包括被配置為用于發(fā)布文件存取請(qǐng)求的主機(jī);被耦合至所述主機(jī)的元數(shù)據(jù)服務(wù)器,所述元數(shù)據(jù)服務(wù)器被配置為用于接收來(lái)自于主機(jī)的文件存取請(qǐng)求并且用于向主機(jī)提供與所述文件存取請(qǐng)求相關(guān)聯(lián)的數(shù)據(jù)塊信息;以及可操作地耦合至所述主機(jī)的數(shù)據(jù)服務(wù)器,所述數(shù)據(jù)服務(wù)器包括用于在其上存儲(chǔ)文件-塊數(shù)據(jù)的至少一個(gè)存儲(chǔ)裝置,所述數(shù)據(jù)服務(wù)器被配置為用于接收標(biāo)識(shí)存儲(chǔ)器位置的命令,并且用于直接在主機(jī)的標(biāo)識(shí)出的存儲(chǔ)器位置和至少一個(gè)存儲(chǔ)裝置之間傳送文件-塊數(shù)據(jù)。
在本發(fā)明的另一個(gè)實(shí)施例中,提供了一種可由計(jì)算機(jī)讀取的程序存儲(chǔ)裝置。所述介質(zhì)有形地包含可由計(jì)算機(jī)執(zhí)行的一個(gè)或多個(gè)指令程序,以便執(zhí)行用于在具有元數(shù)據(jù)存儲(chǔ)虛擬化的分布式文件服務(wù)體系結(jié)構(gòu)中以數(shù)據(jù)服務(wù)器連接速度進(jìn)行數(shù)據(jù)存取的方法,其中所述方法包括向元數(shù)據(jù)服務(wù)器發(fā)布輸入/輸出請(qǐng)求,并且直接在主機(jī)的存儲(chǔ)器和數(shù)據(jù)服務(wù)器之間傳送與輸入/輸出請(qǐng)求相關(guān)聯(lián)的數(shù)據(jù)。
在本發(fā)明的另一個(gè)實(shí)施例中,提供了另一種可由計(jì)算機(jī)讀取的程序存儲(chǔ)裝置。此介質(zhì)有形地包含可由計(jì)算機(jī)執(zhí)行的一個(gè)或多個(gè)指令程序,以便執(zhí)行用于在具有元數(shù)據(jù)存儲(chǔ)虛擬化的分布式文件服務(wù)體系結(jié)構(gòu)中以數(shù)據(jù)服務(wù)器連接速度進(jìn)行數(shù)據(jù)存取的方法,其中所述方法包括在數(shù)據(jù)服務(wù)器上存儲(chǔ)與數(shù)據(jù)相關(guān)聯(lián)的元數(shù)據(jù),并且響應(yīng)于輸入/輸出請(qǐng)求,基于所述元數(shù)據(jù)向數(shù)據(jù)服務(wù)器發(fā)布輸入/輸出操作細(xì)節(jié),以便直接在主機(jī)的存儲(chǔ)器和數(shù)據(jù)服務(wù)器之間傳送文件-塊數(shù)據(jù)。
在本發(fā)明的另一個(gè)實(shí)施例中,提供了可由計(jì)算機(jī)讀取的另一程序存儲(chǔ)裝置。此介質(zhì)有形地包含可由計(jì)算機(jī)執(zhí)行的一個(gè)或多個(gè)指令程序,以便執(zhí)行用于在具有元數(shù)據(jù)存儲(chǔ)虛擬化的分布式文件服務(wù)體系結(jié)構(gòu)中以數(shù)據(jù)服務(wù)器連接速度進(jìn)行數(shù)據(jù)存取的方法,其中所述方法包括在具有至少一個(gè)存儲(chǔ)裝置的數(shù)據(jù)服務(wù)器上存儲(chǔ)文件-塊數(shù)據(jù),并且在數(shù)據(jù)服務(wù)器從元數(shù)據(jù)服務(wù)器接收與主機(jī)的輸入/輸出請(qǐng)求相關(guān)聯(lián)的輸入/輸出操作細(xì)節(jié),建立從數(shù)據(jù)服務(wù)器到由接收到的輸入/輸出操作細(xì)節(jié)標(biāo)識(shí)的主機(jī)的存儲(chǔ)器地址的直接連接,并且直接在主機(jī)的存儲(chǔ)器地址和數(shù)據(jù)服務(wù)器之間傳送由接收到的輸入/輸出操作細(xì)節(jié)涉及的文件-塊數(shù)據(jù)。
在本發(fā)明的另一個(gè)實(shí)施例中,提供了可由計(jì)算機(jī)讀取的另一程序存儲(chǔ)裝置。此介質(zhì)有形地包含可由計(jì)算機(jī)執(zhí)行的一個(gè)或多個(gè)指令程序,以便執(zhí)行用于在元數(shù)據(jù)存儲(chǔ)虛擬化的分布式文件服務(wù)體系結(jié)構(gòu)中以數(shù)據(jù)服務(wù)器連接速度進(jìn)行數(shù)據(jù)存取的方法,其中所述方法包括從主機(jī)發(fā)布包括數(shù)據(jù)目標(biāo)位置的文件存取請(qǐng)求,處理包括數(shù)據(jù)目標(biāo)位置的文件存取請(qǐng)求,響應(yīng)于包括數(shù)據(jù)目標(biāo)位置的文件存取請(qǐng)求的處理而發(fā)布遠(yuǎn)程直接存儲(chǔ)器存取通道端點(diǎn)連接,并且直接在主機(jī)的存儲(chǔ)器和數(shù)據(jù)服務(wù)器之間傳送與文件存取請(qǐng)求相關(guān)聯(lián)的文件-塊數(shù)據(jù)。
在本發(fā)明的另一個(gè)實(shí)施例中,提供了另一主機(jī)。這種主機(jī)包括用于在其上運(yùn)行應(yīng)用程序的裝置、用于在其中存儲(chǔ)數(shù)據(jù)的存儲(chǔ)器裝置、以及處理裝置,所述處理裝置被配置為用于向元數(shù)據(jù)服務(wù)器發(fā)布輸入/輸出請(qǐng)求,并且用于允許直接在存儲(chǔ)器和數(shù)據(jù)服務(wù)器之間進(jìn)行與所述輸入/輸出請(qǐng)求相關(guān)聯(lián)的數(shù)據(jù)的直接存儲(chǔ)器存取傳送。
在本發(fā)明的另一個(gè)實(shí)施例中,提供了另一元數(shù)據(jù)服務(wù)器。這種元數(shù)據(jù)服務(wù)器包括用于存儲(chǔ)與數(shù)據(jù)服務(wù)器上的數(shù)據(jù)相關(guān)聯(lián)的元數(shù)據(jù)的裝置,以及用于接收來(lái)自于主機(jī)的輸入/輸出請(qǐng)求并且根據(jù)元數(shù)據(jù)向數(shù)據(jù)服務(wù)器發(fā)布輸入/輸出操作細(xì)節(jié)以便直接在主機(jī)的存儲(chǔ)器和數(shù)據(jù)服務(wù)器之間傳送文件-塊數(shù)據(jù)的裝置。
在本發(fā)明的另一個(gè)實(shí)施例中,提供了另一數(shù)據(jù)服務(wù)器。所述數(shù)據(jù)服務(wù)器包括用于在其上存儲(chǔ)文件-塊數(shù)據(jù)的裝置;以及可操作地耦合至用于存儲(chǔ)的裝置的裝置,用于從元數(shù)據(jù)服務(wù)器接收與主機(jī)的輸入/輸出請(qǐng)求相關(guān)聯(lián)的輸入/輸出操作細(xì)節(jié),用于建立與由所接收的輸入/輸出操作細(xì)節(jié)標(biāo)識(shí)的主機(jī)的存儲(chǔ)器地址的直接連接,并且用于直接在主機(jī)的存儲(chǔ)器地址和至少一個(gè)存儲(chǔ)裝置之間傳送由接收到的輸入/輸出操作細(xì)節(jié)涉及的文件-塊數(shù)據(jù)。
在本發(fā)明的另一個(gè)實(shí)施例中,提供了另一存儲(chǔ)網(wǎng)絡(luò)。所述存儲(chǔ)網(wǎng)絡(luò)包括主機(jī)裝置,所述主機(jī)裝置包括用于在處理輸入/輸出請(qǐng)求中使用的第一存儲(chǔ)器裝置,所述主機(jī)被配置為用于發(fā)布輸入/輸出請(qǐng)求;被耦合至所述主機(jī)裝置的元數(shù)據(jù)裝置,所述元數(shù)據(jù)裝置包括用于存儲(chǔ)與文件-塊數(shù)據(jù)相關(guān)聯(lián)的元數(shù)據(jù)的第二存儲(chǔ)器裝置,所述元數(shù)據(jù)裝置進(jìn)一步被配置為用于接收來(lái)自于主機(jī)裝置的輸入/輸出請(qǐng)求,并且用于提供輸入/輸出操作細(xì)節(jié)以便處理所述輸入/輸出請(qǐng)求;以及可操作地耦合至主機(jī)裝置和元數(shù)據(jù)裝置的數(shù)據(jù)裝置,所述數(shù)據(jù)裝置包括用于在其上存儲(chǔ)文件-塊數(shù)據(jù)的至少一個(gè)存儲(chǔ)裝置,所述數(shù)據(jù)裝置被配置為從元數(shù)據(jù)服務(wù)器接收輸入/輸出操作細(xì)節(jié)以便處理所述輸入/輸出請(qǐng)求,用于建立與由來(lái)自于元數(shù)據(jù)裝置的輸入/輸出操作細(xì)節(jié)標(biāo)識(shí)的主機(jī)裝置的存儲(chǔ)器地址的直接連接,并且用于直接在主機(jī)裝置的標(biāo)識(shí)出的存儲(chǔ)器位置和數(shù)據(jù)裝置之間傳送由所述輸入/輸出操作細(xì)節(jié)涉及的文件-塊數(shù)據(jù)。
在本發(fā)明的另一個(gè)實(shí)施例中,提供了另一存儲(chǔ)網(wǎng)絡(luò)。這種存儲(chǔ)網(wǎng)絡(luò)包括用于發(fā)布文件存取請(qǐng)求的主機(jī)裝置;被耦合至所述主機(jī)裝置的元數(shù)據(jù)裝置,所述元數(shù)據(jù)裝置接收來(lái)自于主機(jī)的文件存取請(qǐng)求并且向主機(jī)提供與所述文件存取請(qǐng)求相關(guān)聯(lián)的數(shù)據(jù)塊信息;以及可操作地耦合至所述主機(jī)裝置的數(shù)據(jù)裝置,所述數(shù)據(jù)裝置包括用于在其上存儲(chǔ)文件-塊數(shù)據(jù)的至少一個(gè)存儲(chǔ)裝置,所述數(shù)據(jù)裝置接收用于標(biāo)識(shí)存儲(chǔ)器位置的命令,并且直接在主機(jī)裝置的標(biāo)識(shí)出的存儲(chǔ)器位置和所述數(shù)據(jù)裝置之間傳送文件-塊數(shù)據(jù)。
在本發(fā)明的另一個(gè)實(shí)施例中,提供了一種用于提供具有元數(shù)據(jù)存儲(chǔ)虛擬化并且以數(shù)據(jù)服務(wù)器連接速度進(jìn)行數(shù)據(jù)存取的分布式文件服務(wù)體系結(jié)構(gòu)的方法。所述方法包括從主機(jī)發(fā)布包括數(shù)據(jù)目標(biāo)位置的文件存取請(qǐng)求,處理包括數(shù)據(jù)目標(biāo)位置的文件存取請(qǐng)求,響應(yīng)于包括數(shù)據(jù)目標(biāo)位置的文件存取請(qǐng)求的處理而發(fā)布遠(yuǎn)程直接存儲(chǔ)器存取通道端點(diǎn)連接,并且直接在主機(jī)的存儲(chǔ)器和數(shù)據(jù)服務(wù)器之間傳送與文件存取請(qǐng)求相關(guān)聯(lián)的文件-塊數(shù)據(jù)。


現(xiàn)在將參照如下附圖、僅僅通過(guò)舉例來(lái)描述本發(fā)明的實(shí)施例,其中圖1舉例說(shuō)明了用于提供文件數(shù)據(jù)服務(wù)的一個(gè)解決方案,其中元數(shù)據(jù)由獨(dú)立于服務(wù)實(shí)際文件塊數(shù)據(jù)的實(shí)體的實(shí)體來(lái)服務(wù);圖2舉例說(shuō)明了用于提供文件數(shù)據(jù)服務(wù)的第二種體系結(jié)構(gòu)決,其中元數(shù)據(jù)由獨(dú)立于服務(wù)實(shí)際文件塊數(shù)據(jù)的實(shí)體的實(shí)體來(lái)服務(wù);圖3舉例說(shuō)明了根據(jù)本發(fā)明實(shí)施例的存儲(chǔ)系統(tǒng)體系結(jié)構(gòu);圖4舉例說(shuō)明了作為客戶(hù)端堆棧的一部分的智能RDMA部件;圖5根據(jù)本發(fā)明實(shí)施例舉例說(shuō)明了客戶(hù)端軟件棧的附加細(xì)節(jié)以及按照RDMA傳輸(RDMA-T)的虛擬尋址問(wèn)題;圖6舉例說(shuō)明了在沒(méi)有硬件限制的情況下本發(fā)明的功能;以及圖7舉例說(shuō)明了根據(jù)本發(fā)明的存儲(chǔ)系統(tǒng)部件500,其中參照?qǐng)D3-6舉例說(shuō)明的處理被有形地包含到計(jì)算機(jī)可讀介質(zhì)或者載體中。
具體實(shí)施例方式
在本發(fā)明的優(yōu)選實(shí)施例的隨后描述中,對(duì)形成本發(fā)明的一部分的附圖作出參考,并且其中通過(guò)圖示示出了可以實(shí)施本發(fā)明的這些實(shí)施例。應(yīng)該理解的是,由于在不脫離本發(fā)明的范圍的情況下可以做出結(jié)構(gòu)上的改變,故而也可以利用其他實(shí)施例。
本發(fā)明提供了一種用于提供具有元數(shù)據(jù)存儲(chǔ)虛擬化并且以數(shù)據(jù)服務(wù)器連接速度進(jìn)行數(shù)據(jù)存取的分布式文件服務(wù)體系結(jié)構(gòu)的方法、設(shè)備以及程序存儲(chǔ)裝置。本發(fā)明允許在虛擬化的存儲(chǔ)體系結(jié)構(gòu)中以數(shù)據(jù)服務(wù)器連接速度使文件-級(jí)數(shù)據(jù)得以服務(wù)于客戶(hù)端,其中所述元數(shù)據(jù)由不同于服務(wù)實(shí)際文件塊數(shù)據(jù)的實(shí)體的實(shí)體來(lái)服務(wù)。
圖1舉例說(shuō)明了用于提供文件數(shù)據(jù)服務(wù)的一個(gè)體系結(jié)構(gòu)100,其中元數(shù)據(jù)由獨(dú)立于服務(wù)實(shí)際文件塊數(shù)據(jù)的實(shí)體的實(shí)體來(lái)服務(wù)。在圖1中,元數(shù)據(jù)服務(wù)器(MS)110依照網(wǎng)絡(luò)文件存取協(xié)議接收來(lái)自于數(shù)據(jù)網(wǎng)絡(luò)中的客戶(hù)端114的數(shù)據(jù)存取命令112。所述元數(shù)據(jù)服務(wù)器110執(zhí)行文件鎖定管理,并且執(zhí)行網(wǎng)絡(luò)文件向數(shù)據(jù)服務(wù)器(DS)120中存儲(chǔ)邏輯塊地址的映射。在圖1中,兩個(gè)連接130、132用于提供四個(gè)步驟的處理以便取出數(shù)據(jù)到文件系統(tǒng)客戶(hù)端114。所述客戶(hù)端114查詢(xún)所述元數(shù)據(jù)服務(wù)器110以便獲得文件屬性及其在虛擬存儲(chǔ)中的位置116,其中所述虛擬存儲(chǔ)由數(shù)據(jù)服務(wù)器120管理。然后,在獨(dú)立的數(shù)據(jù)連接中,所述客戶(hù)端114很可能經(jīng)由獨(dú)立的網(wǎng)絡(luò)請(qǐng)求來(lái)自于數(shù)據(jù)服務(wù)器120的數(shù)據(jù)。所有這些活動(dòng)都在客戶(hù)端114上的可安裝的文件系統(tǒng)中進(jìn)行,從而所述客戶(hù)端的應(yīng)用程序看不到差別。
所述客戶(hù)端114包括文件系統(tǒng)解釋器(未示出),用于翻譯由元數(shù)據(jù)服務(wù)器110服務(wù)的客戶(hù)端114的文件系統(tǒng)的視圖。所述元數(shù)據(jù)服務(wù)器110把元數(shù)據(jù)服務(wù)器數(shù)據(jù)結(jié)構(gòu)中的指針轉(zhuǎn)發(fā)至客戶(hù)端114。元數(shù)據(jù)服務(wù)器數(shù)據(jù)結(jié)構(gòu)指向數(shù)據(jù)服務(wù)器120上的實(shí)際數(shù)據(jù)塊。所述元數(shù)據(jù)服務(wù)器數(shù)據(jù)結(jié)構(gòu)充當(dāng)客戶(hù)端114的元文件系統(tǒng)。所述客戶(hù)端114使用其文件系統(tǒng)解釋器來(lái)解釋所述元數(shù)據(jù)服務(wù)器數(shù)據(jù)結(jié)構(gòu),以便產(chǎn)生涉及實(shí)際數(shù)據(jù)塊的文件系統(tǒng)元數(shù)據(jù)。由此,客戶(hù)端114上的文件系統(tǒng)解釋器根據(jù)元數(shù)據(jù)服務(wù)器110來(lái)確定數(shù)據(jù)塊位于數(shù)據(jù)服務(wù)器120的什么位置,并且向數(shù)據(jù)服務(wù)器120做出原始(raw)塊請(qǐng)求117。所述數(shù)據(jù)服務(wù)器120返回請(qǐng)求數(shù)據(jù)118。
在圖1中舉例說(shuō)明的系統(tǒng)體系結(jié)構(gòu)提供了客戶(hù)端114上的可安裝的文件系統(tǒng),安裝在客戶(hù)端114上的存儲(chǔ)存取驅(qū)動(dòng)程序,智能元數(shù)據(jù)服務(wù)器110,以及處于數(shù)據(jù)服務(wù)器120的產(chǎn)品硬盤(pán)驅(qū)動(dòng)器(HDD)存儲(chǔ)附件。圖1中舉例說(shuō)明的系統(tǒng)體系結(jié)構(gòu)還使用了典型的存儲(chǔ)網(wǎng)絡(luò)基礎(chǔ)結(jié)構(gòu),諸如交換機(jī)、電纜、主機(jī)總線適配器(HBA)等等。
圖1中舉例說(shuō)明的系統(tǒng)體系結(jié)構(gòu)的優(yōu)點(diǎn)包括在元數(shù)據(jù)服務(wù)器110的存儲(chǔ)虛擬化以及管理,以客戶(hù)端連接速度對(duì)數(shù)據(jù)服務(wù)器120的大文件存取以及數(shù)據(jù)服務(wù)器120具有JBOD(Just a Bunch Of Disks)智能水平的需要。文件系統(tǒng)語(yǔ)義優(yōu)點(diǎn)包括在元數(shù)據(jù)服務(wù)器110的可管理性以及復(fù)制服務(wù),同時(shí)不需要改變客戶(hù)端114的應(yīng)用程序。
然而,圖1中舉例說(shuō)明的系統(tǒng)體系結(jié)構(gòu)具有幾個(gè)消極方面。首先,要求客戶(hù)端114的文件系統(tǒng)的基礎(chǔ)的根本改變。圖1中舉例說(shuō)明的系統(tǒng)體系結(jié)構(gòu)還要求兩個(gè)完全同步事務(wù)來(lái)實(shí)現(xiàn)數(shù)據(jù)傳送。圖1中舉例說(shuō)明的系統(tǒng)體系結(jié)構(gòu)的典型實(shí)現(xiàn)方式經(jīng)由IP LAN(網(wǎng)際協(xié)議局域網(wǎng))來(lái)設(shè)置元數(shù)據(jù)連接130,并且經(jīng)由光纖信道SAN(存儲(chǔ)區(qū)網(wǎng)絡(luò))來(lái)設(shè)置數(shù)據(jù)服務(wù)器連接132。另一缺點(diǎn)在于數(shù)據(jù)遞送與正發(fā)布請(qǐng)求的線程同步。這通常由多線程來(lái)處理,以便每一線程環(huán)境等待操作系統(tǒng)(OS)服務(wù)的數(shù)據(jù)請(qǐng)求。盡管如此,數(shù)據(jù)傳送仍在客戶(hù)端114處的操作系統(tǒng)的控制下,其中所述客戶(hù)端114具有隱含的所有性能障礙,例如頁(yè)面大小存取粒度、上下文切換以及中斷處理開(kāi)銷(xiāo)、潛在的額外復(fù)制操作、應(yīng)用程序和OS之間的雙高速緩存問(wèn)題。此外,客戶(hù)端被限制在標(biāo)準(zhǔn)OS文件系統(tǒng)接口或者直接存儲(chǔ)塊接口。
圖2舉例說(shuō)明了用于提供文件數(shù)據(jù)服務(wù)的第二種體系結(jié)構(gòu)200,其中元數(shù)據(jù)由獨(dú)立于服務(wù)實(shí)際文件塊數(shù)據(jù)的實(shí)體的實(shí)體來(lái)服務(wù)。在圖2中,存儲(chǔ)虛擬化在元數(shù)據(jù)服務(wù)器210被控制??蛻?hù)端214請(qǐng)求212來(lái)自于處于元數(shù)據(jù)服務(wù)器210的存儲(chǔ)虛擬化解釋器的數(shù)據(jù)。然后,所述元數(shù)據(jù)服務(wù)器210對(duì)其擁有的存儲(chǔ)器220做出實(shí)際數(shù)據(jù)請(qǐng)求217。然后,通過(guò)元數(shù)據(jù)服務(wù)器210把數(shù)據(jù)響應(yīng)218從數(shù)據(jù)服務(wù)器220集中回客戶(hù)端214??蛻?hù)端214的文件系統(tǒng)不需要改變,不過(guò)其存儲(chǔ)存取驅(qū)動(dòng)程序?qū)⒏淖円员銓⒃獢?shù)據(jù)服務(wù)器虛擬化設(shè)備標(biāo)識(shí)為存儲(chǔ)目標(biāo)。
圖2中舉例說(shuō)明的第二體系結(jié)構(gòu)的對(duì)象包括被安裝在客戶(hù)端214上的存儲(chǔ)存取驅(qū)動(dòng)程序、智能元數(shù)據(jù)服務(wù)器210、產(chǎn)品HDD存儲(chǔ)附件和典型存儲(chǔ)網(wǎng)絡(luò)基礎(chǔ)結(jié)構(gòu)(諸如交換機(jī)、電纜、HBA等等)。圖2中舉例說(shuō)明的第二體系結(jié)構(gòu)的優(yōu)點(diǎn)包括在元數(shù)據(jù)服務(wù)器210的存儲(chǔ)虛擬化和管理,并且允許數(shù)據(jù)服務(wù)器220只具有JBOD智能水平??蛻?hù)端214的應(yīng)用程序也未被改變。
盡管如此,圖2中舉例說(shuō)明的第二體系結(jié)構(gòu)還包括幾個(gè)消極方面。首先,圖2中舉例說(shuō)明的第二體系結(jié)構(gòu)要求單個(gè)同步事務(wù)(從客戶(hù)端的角度)以便實(shí)現(xiàn)數(shù)據(jù)傳送。此外,典型實(shí)現(xiàn)方式經(jīng)由IP LAN來(lái)設(shè)置元數(shù)據(jù)連接230,并且經(jīng)由光纖信道SAN設(shè)置數(shù)據(jù)連接232。然而,數(shù)據(jù)遞送與正發(fā)布請(qǐng)求的線程同步,并且通常通過(guò)多線程來(lái)處理,以便每一線程環(huán)境等待OS服務(wù)的數(shù)據(jù)請(qǐng)求。更進(jìn)一步講,數(shù)據(jù)傳送仍然在具有如上所述的隱含的所有性能障礙的操作系統(tǒng)的控制下。所述元數(shù)據(jù)服務(wù)器210現(xiàn)在還必須是高吞吐量的可堆疊的存儲(chǔ)切換,或者所述體系結(jié)構(gòu)將是不可擴(kuò)展的。此外,客戶(hù)端214被限制在標(biāo)準(zhǔn)OS文件系統(tǒng)接口或者直接存儲(chǔ)塊接口。
正如可以從圖1-2中舉例說(shuō)明的體系結(jié)構(gòu)所看到的那樣,使用元數(shù)據(jù)服務(wù)器的這種系統(tǒng)目前要求客戶(hù)端操作系統(tǒng)提供數(shù)據(jù)控制,和/或所述系統(tǒng)未能以數(shù)據(jù)服務(wù)器連接速度提供文件存取。由此,本發(fā)明提供了具有元數(shù)據(jù)存儲(chǔ)虛擬化并且以數(shù)據(jù)服務(wù)器連接速度進(jìn)行數(shù)據(jù)存取的分布式文件服務(wù)體系結(jié)構(gòu)。本發(fā)明允許執(zhí)行元數(shù)據(jù)服務(wù)器所期望的SAN速度的I/O傳送,同時(shí)實(shí)現(xiàn)那些I/O傳送的客戶(hù)端開(kāi)銷(xiāo)的空前減少。
圖3舉例說(shuō)明了根據(jù)本發(fā)明實(shí)施例的存儲(chǔ)系統(tǒng)體系結(jié)構(gòu)300。圖3中舉例說(shuō)明的存儲(chǔ)系統(tǒng)使用元數(shù)據(jù)服務(wù)器310來(lái)提供文件數(shù)據(jù)服務(wù),其中所述元數(shù)據(jù)服務(wù)器310獨(dú)立于用于服務(wù)實(shí)際文件塊數(shù)據(jù)的數(shù)據(jù)服務(wù)器320。在圖3中,存儲(chǔ)虛擬化在元數(shù)據(jù)服務(wù)器310被控制。所述客戶(hù)端314利用數(shù)據(jù)目標(biāo)位置312經(jīng)由操作通道340向元數(shù)據(jù)服務(wù)器310提出文件存取請(qǐng)求。所述元數(shù)據(jù)服務(wù)器310請(qǐng)求來(lái)自于元數(shù)據(jù)服務(wù)器310中的存儲(chǔ)虛擬化解釋器的數(shù)據(jù)。然后,所述元數(shù)據(jù)服務(wù)器310向數(shù)據(jù)服務(wù)器320提供RDMA I/O操作細(xì)節(jié)342。此后,所述數(shù)據(jù)服務(wù)器320啟動(dòng)I/O。遠(yuǎn)程直接存儲(chǔ)器存取344用于在數(shù)據(jù)服務(wù)器320和客戶(hù)端314上的緩沖器之間傳送數(shù)據(jù)。當(dāng)I/O完成時(shí),所述數(shù)據(jù)服務(wù)器320向元數(shù)據(jù)服務(wù)器310發(fā)送完成通知346。然后,所述元數(shù)據(jù)服務(wù)器310向客戶(hù)端314發(fā)送表示完成會(huì)話(session)的文件存取響應(yīng)348。
此過(guò)程通過(guò)基于文件的RDMA協(xié)議(FRP)會(huì)話350來(lái)完成。所述客戶(hù)端314向元數(shù)據(jù)服務(wù)器310告知文件存取協(xié)議。直接存取文件系統(tǒng)(DAFS)是文件存取協(xié)議的一個(gè)具體例子。所述客戶(hù)端314包括客戶(hù)端文件存取堆棧352,所述客戶(hù)端文件存取堆棧352包括應(yīng)用程序353、FRP客戶(hù)端和適配層354以及RDMA存取驅(qū)動(dòng)程序/DS地址虛擬化355。根據(jù)本發(fā)明的存儲(chǔ)系統(tǒng)體系結(jié)構(gòu)使用DAFS客戶(hù)端-服務(wù)器連接。雖然將參照DAFS解釋本發(fā)明,但是不意味著把本發(fā)明限制為DAFS。倒不如說(shuō),可以使用那些用于提供類(lèi)似功能以便實(shí)現(xiàn)相同結(jié)果的任何文件存取協(xié)議。
在元數(shù)據(jù)服務(wù)器310實(shí)現(xiàn)分布式遠(yuǎn)程直接存儲(chǔ)器存取(RDMA)文件服務(wù)體系結(jié)構(gòu),并且在數(shù)據(jù)服務(wù)器320實(shí)現(xiàn)RDMA引擎370。所述元數(shù)據(jù)服務(wù)器310具有元數(shù)據(jù)服務(wù)器堆棧360,其包括FRP服務(wù)器361、RDMA交換協(xié)議引擎362以及RDMA存取驅(qū)動(dòng)程序/DS地址虛擬化363。數(shù)據(jù)服務(wù)器320包括數(shù)據(jù)服務(wù)器堆棧370,其用于提供RDMA交換協(xié)議引擎371、RDMA啟動(dòng)器引擎372以及RDMA存取驅(qū)動(dòng)程序/DS地址虛擬化373。
元協(xié)議允許RDMA I/O操作啟動(dòng)細(xì)節(jié)和完成通知的交換。例如,對(duì)于來(lái)自于所述元數(shù)據(jù)服務(wù)器的每個(gè)I/O而言,處于數(shù)據(jù)服務(wù)器320中的RDMA引擎370可以接收I/O標(biāo)記、連接id、客戶(hù)端、客戶(hù)端存儲(chǔ)器位置、客戶(hù)端保護(hù)標(biāo)記、文件位置、文件偏移、字節(jié)計(jì)數(shù)等等。
所述DAFS協(xié)議被設(shè)計(jì)成利用新出現(xiàn)的RDMA互連技術(shù),諸如InfiniBand、虛擬接口(Virtual Interface,VI)以及iWARP。DAFS提供了經(jīng)由RDMA通道341存取來(lái)自于數(shù)據(jù)服務(wù)器320的數(shù)據(jù)的快速方法。這種RDMA互連技術(shù)提供了兩個(gè)在傳統(tǒng)的互連網(wǎng)絡(luò)上沒(méi)有發(fā)現(xiàn)的基礎(chǔ)性新能力。
第一個(gè)能力是直接存儲(chǔ)器-至-存儲(chǔ)器傳送。遠(yuǎn)程直接存儲(chǔ)器存取(RDMA)是一個(gè)計(jì)算機(jī)利用對(duì)存儲(chǔ)器總線帶寬和CPU處理開(kāi)銷(xiāo)的最小需求將信息直接置于另一計(jì)算機(jī)存儲(chǔ)器中、同時(shí)保持存儲(chǔ)器保護(hù)機(jī)制的能力。遠(yuǎn)程過(guò)程調(diào)用(RPC)消息協(xié)議提供了兩個(gè)不同的結(jié)構(gòu)調(diào)用消息和應(yīng)答消息(即,RPC調(diào)用消息和RPC應(yīng)答消息)??蛻?hù)端314使用這些消息來(lái)對(duì)網(wǎng)絡(luò)服務(wù)程序做出遠(yuǎn)程過(guò)程調(diào)用并且接收包含過(guò)程執(zhí)行結(jié)果的應(yīng)答。通過(guò)為遠(yuǎn)程過(guò)程提供唯一規(guī)范,RPC可以把應(yīng)答消息與每一調(diào)用(或者請(qǐng)求)消息相匹配。RDMA允許成批數(shù)據(jù)繞過(guò)正常協(xié)議處理并且在通信機(jī)器上適當(dāng)定位的緩沖器之間直接傳送。
第二個(gè)能力是直接應(yīng)用程序存取,其中應(yīng)用程序處理可以在操作系統(tǒng)不介入的情況下直接向RDMA適應(yīng)的網(wǎng)絡(luò)接口排隊(duì)數(shù)據(jù)傳送操作。由此,DAFS允許應(yīng)用程序服務(wù)器集群有效地共享數(shù)據(jù),同時(shí)防止通用操作系統(tǒng)強(qiáng)加的開(kāi)銷(xiāo)。
支持諸如虛擬接口(VI)體系結(jié)構(gòu)的互連接口技術(shù)的適配器提供了數(shù)據(jù)直接從適配器上的緩沖器至應(yīng)用程序緩沖器的直接存儲(chǔ)器存取,省略從適配器緩沖器至操作系統(tǒng)網(wǎng)絡(luò)緩沖器的復(fù)制、以及從聯(lián)網(wǎng)緩沖器到操作系統(tǒng)文件緩沖器的復(fù)制??梢越?jīng)由IP網(wǎng)絡(luò)、InfiniBand網(wǎng)絡(luò)、光纖信道網(wǎng)絡(luò)以及有限數(shù)量的專(zhuān)有網(wǎng)絡(luò)實(shí)現(xiàn)。這種適配器可以被實(shí)現(xiàn)在如圖3中所示的本發(fā)明的存儲(chǔ)系統(tǒng)體系結(jié)構(gòu)300的部件中。
因?yàn)榭蛻?hù)端314可以防止為其與傳統(tǒng)的文件存取模型相關(guān)聯(lián)的應(yīng)用程序做出數(shù)據(jù)復(fù)制,所以每一文件存取使用更少的客戶(hù)端CPU,并且每一文件緩沖器使用更少的客戶(hù)端存儲(chǔ)器。在元數(shù)據(jù)服務(wù)器310實(shí)現(xiàn)分布式RDMA文件服務(wù)體系結(jié)構(gòu)300,并且在數(shù)據(jù)服務(wù)器320上實(shí)現(xiàn)RDMA引擎370,以便實(shí)現(xiàn)這些目標(biāo)。
DAFS客戶(hù)端-服務(wù)器連接由包括三個(gè)通道的會(huì)話組成。所述客戶(hù)端在操作通道340上提交所有請(qǐng)求,其中只有所述客戶(hù)端被允許異步地啟動(dòng)通信。第二通道是反向控制通道343,在其上,元數(shù)據(jù)服務(wù)器310通過(guò)RDMA交換協(xié)議345啟動(dòng)所有通信。第三通道是RDMA通道341,其中所述數(shù)據(jù)服務(wù)器320為到/來(lái)自于客戶(hù)端314的緩沖器的原始數(shù)據(jù)傳送啟動(dòng)所有通信。所述RDMA通道341實(shí)際上只是單向的,并且除了通道建立(setup)外其對(duì)于客戶(hù)端314是不可見(jiàn)的。作為DAFS構(gòu)造,RDMA通道341僅僅是用于兩個(gè)RDMA存儲(chǔ)存取驅(qū)動(dòng)程序(在客戶(hù)端314和數(shù)據(jù)服務(wù)器320上的)之間的連接的包裝程序(wrapper),在此通道上不存在DAFS級(jí)別請(qǐng)求或者響應(yīng)。RDMA最好由數(shù)據(jù)服務(wù)器320啟動(dòng),并且對(duì)于客戶(hù)端314而言,其的存在是不可見(jiàn)的。
一旦RDMA傳送已經(jīng)被標(biāo)記為完成,那么所述元數(shù)據(jù)服務(wù)器310根據(jù)例如DAFS協(xié)議在操作通道340上提供操作響應(yīng)。所述操作通道340和RDMA通道341是相同的客戶(hù)端-服務(wù)器會(huì)話350的一部分,但是相對(duì)于RDMA存儲(chǔ)存取驅(qū)動(dòng)程序和適配器,它們是兩個(gè)獨(dú)立的RDMA通信端點(diǎn)連接。所述RDMA通道341是從數(shù)據(jù)服務(wù)器320開(kāi)始的單向的,在傳輸級(jí)除建立外沒(méi)有協(xié)議交換并且在DAFS級(jí)別沒(méi)有會(huì)話綁定。
客戶(hù)端314上的RDMA存取驅(qū)動(dòng)程序355受控于所述體系結(jié)構(gòu)實(shí)現(xiàn)者,并且由此可以使用命名空間概括來(lái)允許數(shù)據(jù)服務(wù)器320作為一個(gè)虛擬地址呈現(xiàn)給FRP客戶(hù)端和適配層354。由此,F(xiàn)RP實(shí)現(xiàn)可以構(gòu)成從操作通道340連接至元數(shù)據(jù)服務(wù)器310、以及從RDMA通道341至數(shù)據(jù)服務(wù)器320的虛擬地址的會(huì)話。
在客戶(hù)端314,所述RDMA存取驅(qū)動(dòng)程序355允許其緩沖器的直接存取。所述客戶(hù)端314還包括用于直接存取RDMA啟動(dòng)的適配器的客戶(hù)端應(yīng)用程序的FRP客戶(hù)端和適配層354,并且允許到/來(lái)自于應(yīng)用程序緩沖器的RDMA。
所述元數(shù)據(jù)服務(wù)器310告知所述FRP并且提供數(shù)據(jù)服務(wù)器320上的數(shù)據(jù)的虛擬化。在此系統(tǒng)中,存在至少兩種類(lèi)型的元數(shù)據(jù)。首先,存在文件系統(tǒng)元數(shù)據(jù),其包括被存儲(chǔ)在原始數(shù)據(jù)塊中并且形成目錄結(jié)構(gòu)的“inodes”,用于把文件塊映射到原始數(shù)據(jù)塊。其次,存在數(shù)據(jù)塊虛擬化元數(shù)據(jù),其實(shí)質(zhì)上是“元文件系統(tǒng)”。每一客戶(hù)端將與一“文件系統(tǒng)解釋器”進(jìn)行通信,所述文件系統(tǒng)解釋器最好駐留在元數(shù)據(jù)服務(wù)器處。文件系統(tǒng)解釋器也可以駐留在客戶(hù)端/主機(jī)處,但是這要求修改客戶(hù)端并且因此不是十分有效。
實(shí)現(xiàn)基于文件的RDMA協(xié)議(FRP)要求向元數(shù)據(jù)服務(wù)器310添加RDMA文件存取部件(RFAC)364。所述RFAC 364充當(dāng)文件系統(tǒng)解釋器。所述RFAC 364把FRP文件系統(tǒng)映射至元數(shù)據(jù)服務(wù)器310的元文件系統(tǒng)。所述RFAC 364是文件服務(wù)器,并且還管理用于所述FRP會(huì)話的服務(wù)器側(cè)連接端點(diǎn)。所述RFAC 364把RDMA文件存取語(yǔ)言翻譯為元文件系統(tǒng)語(yǔ)言。然后,所述元數(shù)據(jù)服務(wù)器310提供(為每個(gè)請(qǐng)求)到數(shù)據(jù)服務(wù)器320上的原始數(shù)據(jù)塊的映射。RFAC 364與每一數(shù)據(jù)服務(wù)器320的適當(dāng)?shù)闹悄躌DMA部件374進(jìn)行通信,以便交換所述會(huì)話的RDMA連接通道端點(diǎn)信息和需要的數(shù)據(jù)交換342的細(xì)節(jié)。然后,用于該數(shù)據(jù)服務(wù)器320的所述智能RDMA部件374啟動(dòng)直接到/來(lái)自客戶(hù)端的存儲(chǔ)器緩沖器的RDMA活動(dòng)344。在完成時(shí),數(shù)據(jù)服務(wù)器320的智能RDMA部件374通知RFAC 364,并且RFAC 364接著向客戶(hù)端314答復(fù)所述傳送已經(jīng)完成。數(shù)據(jù)服務(wù)器320的智能RDMA部件374可以是特殊的獨(dú)立控制器、RAID控制器自身的增值特征等等。還需注意的是,所述數(shù)據(jù)服務(wù)器320可以包括RAID控制器。
作為選擇,所述智能RDMA部件374可以作為元數(shù)據(jù)服務(wù)器310上的額外的軟件部件來(lái)實(shí)現(xiàn)。雖然把所述智能RDMA部件374作為數(shù)據(jù)服務(wù)器堆棧370的一部分來(lái)舉例說(shuō)明,但是所述智能RDMA部件374可以是元數(shù)據(jù)服務(wù)器堆棧360的一部分。
作為另外的替代方式,所述智能RDMA部件374可以作為客戶(hù)端/主機(jī)314處的可安裝部件來(lái)實(shí)現(xiàn)。由此,即便在圖3中將智能RDMA部件374作為數(shù)據(jù)服務(wù)器堆棧370的一部分來(lái)舉例說(shuō)明,所述智能RDMA部件也可以是客戶(hù)端堆棧352的一部分。即使智能RDMA部件374是作為處于客戶(hù)端/主機(jī)314的可安裝部件實(shí)現(xiàn)的,RDMA也仍然被用于從數(shù)據(jù)服務(wù)器320向客戶(hù)端314傳送數(shù)據(jù),由所述智能RDMA部件374控制它。在該情況下,所述智能RDMA 374向由數(shù)據(jù)服務(wù)器320提供的原始?jí)K存儲(chǔ)發(fā)布命令。
圖4舉例說(shuō)明了作為根據(jù)本發(fā)明的客戶(hù)端堆棧400的一部分的智能RDMA部件。在操作中,客戶(hù)端414向元數(shù)據(jù)服務(wù)器410發(fā)布FRP命令412,所述元數(shù)據(jù)服務(wù)器410包括RDMA文件存取部件(RFAC)464,用作用于體系結(jié)構(gòu)中的FRP的控制連接端點(diǎn)服務(wù)器。所述RFAC464與標(biāo)準(zhǔn)元數(shù)據(jù)服務(wù)器軟件部件通信,以便發(fā)現(xiàn)數(shù)據(jù)服務(wù)器420上的哪些數(shù)據(jù)塊將被需要以服務(wù)于所述請(qǐng)求。然后,所述RFAC 464把數(shù)據(jù)塊信息發(fā)送回到處于客戶(hù)端的智能RDMA部件474。然后,處于客戶(hù)端414的智能RDMA部件474通過(guò)發(fā)布帶有作為自變量的客戶(hù)端目標(biāo)緩沖器的用戶(hù)級(jí)聯(lián)網(wǎng)命令418來(lái)啟動(dòng)來(lái)自于數(shù)據(jù)服務(wù)器的RDMA。所述RDMA傳送然后被啟動(dòng)。當(dāng)RDMA完成時(shí),從用戶(hù)級(jí)聯(lián)網(wǎng)接口發(fā)布回叫信號(hào)(callback)。在RDMA完成時(shí),所述智能RDMA部件474必須在元數(shù)據(jù)服務(wù)器410、即所述RFAC 464,并且在客戶(hù)端414、即客戶(hù)端的FRP客戶(hù)端476觸發(fā)完成。所述智能RDMA部件474可以向處于元數(shù)據(jù)服務(wù)器410的RFAC 464發(fā)送完成通知480,然后由RFAC 464向客戶(hù)端414發(fā)送傳統(tǒng)的FRP完成通知482,或者向元數(shù)據(jù)服務(wù)器410上的RFAC 464發(fā)送完成通知480,同時(shí)向客戶(hù)端414發(fā)送完成通知484。
因?yàn)樗鲋悄躌DMA部件474必須知曉關(guān)注流量控制序號(hào)的元數(shù)據(jù)服務(wù)器410和客戶(hù)端414之間的控制連接,所以第二過(guò)程具有不利方面。這是不同類(lèi)型的連接語(yǔ)義,其實(shí)際上依照與FRP客戶(hù)端476和智能RDMA部件474之間的協(xié)議不同的協(xié)議來(lái)觸發(fā)良好形成的消息。然而,它保存某些延遲。
再次參照?qǐng)D3,由于由來(lái)自于其他客戶(hù)端的寫(xiě)入或者其他原因(例如,文件系統(tǒng)移植、恢復(fù)操作等)而引起的元數(shù)據(jù)改變,所述元數(shù)據(jù)服務(wù)器310使客戶(hù)端的高速緩存無(wú)效。如果所述高速緩存層是隔片(shim)或者庫(kù),那么沒(méi)有駐留線程來(lái)響應(yīng)由元數(shù)據(jù)服務(wù)器310啟動(dòng)的高速緩存無(wú)效。這由反向控制或者輔助操作通道343(DAFS將其稱(chēng)為‘反向控制通道’)來(lái)處理,其考慮了啟動(dòng)異步遞送到客戶(hù)端314的操作的服務(wù)器(在該情況下,是元數(shù)據(jù)服務(wù)器310)。然后,客戶(hù)端314的高速緩存庫(kù)的職責(zé)是檢驗(yàn)此通道343是否有來(lái)自于元數(shù)據(jù)服務(wù)器310的通知在使用高速緩存的元數(shù)據(jù)以前強(qiáng)制全部或者部分的高速緩存無(wú)效。
所述數(shù)據(jù)服務(wù)器320包括RDMA引擎370(例如,所述RDMA交換協(xié)議引擎、RDMA啟動(dòng)器引擎和RDMA存取驅(qū)動(dòng)程序/DS地址虛擬化),其位于數(shù)據(jù)服務(wù)器320的控制器(未示出)處或者位于其附近,其與元數(shù)據(jù)服務(wù)器310交互以便獲取連接和客戶(hù)端目標(biāo)緩沖器信息,啟動(dòng)對(duì)客戶(hù)端緩沖器的RDMA讀和寫(xiě)以便實(shí)現(xiàn)數(shù)據(jù)傳送,并且向元數(shù)據(jù)服務(wù)器310發(fā)送RDMA操作的完成通知。RDMA引擎370可以被設(shè)置于每一數(shù)據(jù)服務(wù)器320處,并且能夠管理RDMA存儲(chǔ)存取端點(diǎn)、RDMA交換協(xié)議端點(diǎn)和單向RDMA FRP通道端點(diǎn)。所述RDMA引擎可以被設(shè)置在存儲(chǔ)附件內(nèi)部的非常小的服務(wù)器引擎上,或設(shè)置在RDMA啟用的適配器之后并對(duì)其進(jìn)行控制,或者被設(shè)置在外部。然而,在外部設(shè)置RDMA引擎370提出了可擴(kuò)展性和帶寬問(wèn)題。
數(shù)據(jù)服務(wù)器320可以剛好是帶有滿(mǎn)足光纖信道數(shù)據(jù)請(qǐng)求的RAID控制器前端的LUN(邏輯單元號(hào))的集合。所述數(shù)據(jù)服務(wù)器320不管理元數(shù)據(jù)。由此,所述數(shù)據(jù)服務(wù)器320沒(méi)有文件塊的概念,只有LUN塊的概念,LUN決正好是由RAID控制器作為L(zhǎng)UN給出的邏輯陣列部分。因此,所述數(shù)據(jù)服務(wù)器320使用產(chǎn)品HDD存儲(chǔ)附件。
如上所述,所述客戶(hù)端314將具有與元數(shù)據(jù)服務(wù)器310的FRP連接。所述FRP連接必須依照連貫方式與用于RDMA的數(shù)據(jù)服務(wù)器手動(dòng)切斷。DAFS規(guī)定了作為同一會(huì)話的一部分的額外通道。這些通道中的一個(gè)可以與通過(guò)表示所有數(shù)據(jù)服務(wù)器320的虛擬地址設(shè)置的數(shù)據(jù)服務(wù)器320建立,如此使得DAFS客戶(hù)端對(duì)于其會(huì)話具有至少兩個(gè)連接,一個(gè)是與元數(shù)據(jù)服務(wù)器310的連接用于元數(shù)據(jù)存取和I/O啟動(dòng),而另一個(gè)是與設(shè)置虛擬地址的客戶(hù)端314的入站通道的連接,它是到客戶(hù)端314的入站通道,即其中由數(shù)據(jù)服務(wù)器320啟動(dòng)傳送的連接。
例如,對(duì)于文件讀取來(lái)說(shuō),客戶(hù)端314位于SAN上,并且向請(qǐng)求RDMA讀取的元數(shù)據(jù)服務(wù)器310告知FRP。所述客戶(hù)端314發(fā)送其本機(jī)緩沖器信息以及保護(hù)標(biāo)記,如在FRP 312中所表明的那樣。所述元數(shù)據(jù)服務(wù)器310(在滿(mǎn)足正常元數(shù)據(jù)請(qǐng)求之后,為此而設(shè)計(jì)的)向數(shù)據(jù)服務(wù)器320中繼RDMA信息342。所述數(shù)據(jù)服務(wù)器320直接向客戶(hù)端314的緩沖器RDMA 344所述文件數(shù)據(jù),并且向元數(shù)據(jù)服務(wù)器310應(yīng)答346所述讀取已經(jīng)被滿(mǎn)足。所述元數(shù)據(jù)服務(wù)器310向客戶(hù)端314發(fā)送FRP讀取響應(yīng)348。因?yàn)镕RP通常是異步輸入/輸出啟動(dòng)器,所以輕微增加的等待時(shí)間不是問(wèn)題,但是就應(yīng)用程序性能而言,減少的客戶(hù)端開(kāi)銷(xiāo)卻是巨大的優(yōu)點(diǎn)。由此,RDMA從數(shù)據(jù)服務(wù)器320向客戶(hù)端314進(jìn)行以便傳遞文件塊數(shù)據(jù)(用于讀取),并且獲得文件塊數(shù)據(jù)(服務(wù)器啟動(dòng)的RDMA讀取,響應(yīng)于客戶(hù)端FRP寫(xiě)入請(qǐng)求,即,客戶(hù)端RDMA寫(xiě)入)。
元數(shù)據(jù)遞送可以經(jīng)由客戶(hù)端和元數(shù)據(jù)服務(wù)器之間的標(biāo)準(zhǔn)請(qǐng)求/響應(yīng)RPC類(lèi)型的信息交換來(lái)提供,并且可以經(jīng)由從元數(shù)據(jù)服務(wù)器到客戶(hù)端的元數(shù)據(jù)的RDMA遞送來(lái)提供。對(duì)于較大塊的元數(shù)據(jù)、諸如較大目錄列表的遞送、長(zhǎng)存取控制列表標(biāo)識(shí)的遞送、或者擴(kuò)展的文件屬性規(guī)范來(lái)說(shuō),RDMA是優(yōu)選的。由此,所述客戶(hù)端可以向元數(shù)據(jù)服務(wù)器310提出元數(shù)據(jù)請(qǐng)求382,規(guī)定足夠大以便保存所請(qǐng)求的信息的應(yīng)答緩沖器。所述元數(shù)據(jù)服務(wù)器310然后能把元數(shù)據(jù)384 RDMA到緩沖器中,并且利用遞送操作狀態(tài)的正常消息來(lái)響應(yīng)所述客戶(hù)端314。
正如可以看到的那樣,即便本發(fā)明的存儲(chǔ)系統(tǒng)體系結(jié)構(gòu)包括兼作數(shù)據(jù)服務(wù)器320的元數(shù)據(jù)服務(wù)器310,元數(shù)據(jù)服務(wù)器310還是獨(dú)立于服務(wù)于塊存儲(chǔ)的裝置320的邏輯單元,其中所述數(shù)據(jù)服務(wù)器320使用代表元數(shù)據(jù)服務(wù)器310和數(shù)據(jù)服務(wù)器320的同一服務(wù)器上的軟件模塊。此文件系統(tǒng)的客戶(hù)端314具有可安裝文件系統(tǒng)(IFS)驅(qū)動(dòng)程序,其把應(yīng)用程序數(shù)據(jù)請(qǐng)求翻譯為元數(shù)據(jù)的文件系統(tǒng)請(qǐng)求以及元數(shù)據(jù)服務(wù)器310的文件位置,其位于同一存儲(chǔ)區(qū)域網(wǎng)絡(luò)(SAN)上。
數(shù)據(jù)存取在一個(gè)FRP會(huì)話350上發(fā)生,所述一個(gè)FRP會(huì)話350由操作通道340和RDMA通道341組成。這樣能夠進(jìn)行五個(gè)步驟的處理來(lái)進(jìn)行數(shù)據(jù)存取,如圖3中所示那樣,客戶(hù)端看上去像一個(gè)數(shù)據(jù)請(qǐng)求/響應(yīng)對(duì)。以傳輸速度從數(shù)據(jù)服務(wù)器320到客戶(hù)端314上的應(yīng)用程序緩沖器進(jìn)行數(shù)據(jù)傳送,這由數(shù)據(jù)服務(wù)器320上的RDMA引擎堆棧370啟動(dòng),象由元數(shù)據(jù)服務(wù)器310的元數(shù)據(jù)服務(wù)器FRP服務(wù)器堆棧360控制的那樣。這樣實(shí)現(xiàn)了元數(shù)據(jù)服務(wù)器310的存儲(chǔ)虛擬化,同時(shí)允許以數(shù)據(jù)服務(wù)器320的連接速度進(jìn)行客戶(hù)端314的數(shù)據(jù)存取,并且防止向客戶(hù)端OS給予數(shù)據(jù)控制的內(nèi)在問(wèn)題。
支持第三方以及客戶(hù)端啟動(dòng)的RDMA通道341。對(duì)于獨(dú)立的RDMA連接來(lái)說(shuō),客戶(hù)端314可以直接與數(shù)據(jù)服務(wù)器320或者元數(shù)據(jù)服務(wù)器310進(jìn)行交互。所述連接是獨(dú)立的通道,但是是同一會(huì)話的一部分。RDMA可以在客戶(hù)端314和元數(shù)據(jù)服務(wù)器310之間經(jīng)由用于該會(huì)話的主操作通道連接3340、以及經(jīng)由存在于客戶(hù)端和第三方之間的另一個(gè)通道進(jìn)行,所述第三方例如是數(shù)據(jù)服務(wù)器320。通道340、341(將他們連系為同一總體會(huì)話350)的分離允許RDMA在數(shù)據(jù)服務(wù)器320和客戶(hù)端314之間與操作協(xié)同進(jìn)行。所述會(huì)話識(shí)別符將被作為元協(xié)議的一部分在元數(shù)據(jù)服務(wù)器310和數(shù)據(jù)服務(wù)器320之間傳遞,以便數(shù)據(jù)服務(wù)器320可以在面對(duì)客戶(hù)端314處的連接驗(yàn)證時(shí)進(jìn)行RDMA。
所述客戶(hù)端314仍然可以啟動(dòng)RDMA。雖然最好是只允許數(shù)據(jù)服務(wù)器320或者元數(shù)據(jù)服務(wù)器310啟動(dòng)的RDMA,例如,出于服務(wù)器緩沖器安全性和服務(wù)器性能/管理原因,客戶(hù)端啟動(dòng)的RDMA可以跨越任何所論述的通道來(lái)進(jìn)行。實(shí)際上,如上面所建議的那樣,由客戶(hù)端314進(jìn)行的寫(xiě)入可以被設(shè)置為RDMA寫(xiě)入而不是RDMA讀取,即,這種寫(xiě)入本質(zhì)上是客戶(hù)端啟動(dòng)的。
必須考慮在這些RDMA通道上的客戶(hù)端側(cè)高速緩存的后果。元數(shù)據(jù)會(huì)占據(jù)客戶(hù)端的高速緩存的重要位置,以便當(dāng)遍歷目錄樹(shù)時(shí),增大目錄查找的速度,或者保存存儲(chǔ)控制列表以增大對(duì)于各種操作的用戶(hù)權(quán)限確定速度。因?yàn)樗档土司W(wǎng)絡(luò)和服務(wù)器負(fù)載,故而這是合乎需要的。所述FRP客戶(hù)端354將具有其自己的元數(shù)據(jù)高速緩存,或者使用第三方的高速緩存隔片(shim)層或者庫(kù)來(lái)處理如上所述的這些活動(dòng)。
當(dāng)啟動(dòng)到客戶(hù)端314的RDMA時(shí),由數(shù)據(jù)服務(wù)器320看來(lái),存在與虛擬地址有關(guān)的問(wèn)題。這特別關(guān)系到數(shù)據(jù)服務(wù)器地址虛擬化的管理。如上所述,一個(gè)獨(dú)立通道用于數(shù)據(jù)服務(wù)器-至-客戶(hù)端的RDMA341,其是一個(gè)總體會(huì)話350的一部分,所述會(huì)話負(fù)責(zé)客戶(hù)端314和全部元數(shù)據(jù)服務(wù)器310/數(shù)據(jù)服務(wù)器320集之間的文件存取。當(dāng)每一數(shù)據(jù)服務(wù)器320將必然具有不同的傳輸層地址時(shí),所述客戶(hù)端314可以具有一個(gè)持續(xù)的RDMA連接341用于從全部范圍的數(shù)據(jù)服務(wù)器320到來(lái)的RDMA。然而,本發(fā)明的存儲(chǔ)系統(tǒng)體系結(jié)構(gòu)不依賴(lài)這種虛擬化。
圖5根據(jù)本發(fā)明實(shí)施例舉例說(shuō)明了客戶(hù)端軟件棧的附加細(xì)節(jié)以及按照RDMA傳輸(RDMA-T)500的虛擬尋址問(wèn)題。參照客戶(hù)端文件存取堆棧510,地址虛擬化是由RDMA端點(diǎn)地址虛擬化層(AV層)512來(lái)實(shí)現(xiàn)的。所述AV層庫(kù)512與其下面的RDMA傳輸端點(diǎn)供應(yīng)商層(EP層)514交互,以便向FRP客戶(hù)端516呈現(xiàn)單個(gè)連接視圖。所述AV層512可以由FRP客戶(hù)端516提供虛擬地址。所述虛擬地址是一個(gè)配置項(xiàng)。存在兩種可能的用于解析所述虛擬地址的方法。首先,作為配置細(xì)節(jié),所述AV層512可以查閱虛擬地址翻譯的設(shè)置文件。其次,所述AV層512可以聯(lián)系RDMA-T網(wǎng)絡(luò)520上的RDMA-T命名服務(wù)器(例如,元數(shù)據(jù)服務(wù)器524)以便解析所述虛擬地址。在這第二種方法中,命名服務(wù)器524的所述RDMA-T地址522將會(huì)是一個(gè)配置選項(xiàng)。
所述AV層512然后可以開(kāi)啟與虛擬地址涉及的RDMA-T地址530-534集合的持續(xù)RDMA連接。由于RDMA操作不會(huì)導(dǎo)致消息在EP層514上發(fā)送/接收,所以AV層512只需要考慮用作RDMA目標(biāo)的緩沖器是否向所有它管理的連接終點(diǎn)進(jìn)行了注冊(cè)。這增加了緩沖器注冊(cè)的等待時(shí)間,但是大部分的應(yīng)用程序?qū)⒃诔跏蓟瘯r(shí)為RDMA注冊(cè)緩沖器,然后此后變得遲鈍,以便防止在關(guān)鍵路徑中出現(xiàn)該操作的已經(jīng)很高的成本。如果連接斷開(kāi),則所述AV層512也許會(huì)或者也許不會(huì)試圖重建它——這是一個(gè)策略確定點(diǎn)。如果一次或者兩次重試失敗,那么AV層512可以假定上層516將已經(jīng)處理了所述結(jié)果。如果最后的或者唯一的連接斷開(kāi),那么AV層512必須把斷開(kāi)連接通知遞送至FRP客戶(hù)端516。
仍參照?qǐng)D5,其還示出了第二種實(shí)現(xiàn)方式。所述AV層512和EP層514可以被合并以便形成作為一個(gè)組合的新層,即,虛擬端點(diǎn)層或者VEP層550。這假定控制所述VEP層550的實(shí)現(xiàn)以便允許虛擬尋址和解析。然而,對(duì)于這種實(shí)現(xiàn)而言,存在障礙。簡(jiǎn)單地講,這種障礙包括驗(yàn)證問(wèn)題和相對(duì)于虛擬地址實(shí)現(xiàn)緩沖器注冊(cè)。
首先,驗(yàn)證問(wèn)題涉及確定VEP層550如何獲知來(lái)自于給定數(shù)據(jù)服務(wù)器540的RDMA請(qǐng)求是有效的而不是攻擊。對(duì)于在到元數(shù)據(jù)服務(wù)器524的原始請(qǐng)求中提及的應(yīng)用程序緩沖器而言,所述數(shù)據(jù)服務(wù)器540必須獲知緩沖器注冊(cè)關(guān)鍵字。所述數(shù)據(jù)服務(wù)器540還必須獲知元數(shù)據(jù)服務(wù)器524的連接標(biāo)識(shí)符,以便不僅可以使其能夠?qū)φ_的客戶(hù)端544進(jìn)行RDMA,而且可以使其與驗(yàn)證其客戶(hù)端544的存取。元數(shù)據(jù)服務(wù)器524的連接標(biāo)識(shí)符是由元數(shù)據(jù)服務(wù)器524經(jīng)由元數(shù)據(jù)服務(wù)器524和數(shù)據(jù)服務(wù)器540之間的RDMA交換協(xié)議560發(fā)送的。所述元數(shù)據(jù)服務(wù)器524給予數(shù)據(jù)服務(wù)器540其自身端點(diǎn)標(biāo)識(shí)關(guān)鍵字,以便當(dāng)數(shù)據(jù)服務(wù)器540對(duì)客戶(hù)端544啟動(dòng)RDMA時(shí),它可以傳遞適當(dāng)?shù)亩它c(diǎn)標(biāo)識(shí)符以及緩沖器位置、客戶(hù)端處理id以及客戶(hù)端緩沖器注冊(cè)關(guān)鍵字。
由此,即便所述RDMA沒(méi)有從與其建立連接的元數(shù)據(jù)服務(wù)器524RDMA-T端點(diǎn)進(jìn)入到客戶(hù)端544的VEP層550中,所述客戶(hù)端544也可以驗(yàn)證所述存取。對(duì)于上層來(lái)說(shuō),這樣看起來(lái)好像數(shù)據(jù)服務(wù)器540正通過(guò)使用其驗(yàn)證欺騙元數(shù)據(jù)服務(wù)器RDMA-T地址522。所述驗(yàn)證可以對(duì)照由客戶(hù)端配置的虛擬地址向數(shù)據(jù)服務(wù)器的RDMA-T地址530-534集合的映射來(lái)進(jìn)行雙重核對(duì),其中所述地址必須包括啟動(dòng)RDMA的數(shù)據(jù)服務(wù)器540的RDMA-T地址。這種映射可以通過(guò)稱(chēng)為第一種實(shí)現(xiàn)方式的相同的兩種方法來(lái)再次實(shí)現(xiàn),例如,作為配置細(xì)節(jié),所述VEP層550查閱虛擬地址翻譯的設(shè)置文件,或者VEP層550可以聯(lián)系RDMA-T網(wǎng)絡(luò)520上的RDMA-T命名服務(wù)器(例如,元數(shù)據(jù)服務(wù)器524)以解析所述虛擬地址。此外,在第二種方法中,命名服務(wù)器524的所述RDMA-T地址然后將會(huì)是一個(gè)配置選項(xiàng)。
如上所述,第二障礙是相對(duì)于虛擬地址實(shí)現(xiàn)緩沖器注冊(cè)。所述RDMA-T引擎必須確保處于客戶(hù)端544的緩沖器處于物理存儲(chǔ)器,即,其必須是從RDMA-T網(wǎng)絡(luò)接口直接存儲(chǔ)器存取的目標(biāo),以及是從元數(shù)據(jù)服務(wù)器524請(qǐng)求RDMA操作的處理的部分地址空間。這是通過(guò)向RDMA-T驅(qū)動(dòng)程序518進(jìn)行注冊(cè)來(lái)實(shí)現(xiàn)的,其用客戶(hù)端OS栓定或者鎖定緩沖器存儲(chǔ)器,以便使其以所定義的映射保存在物理存儲(chǔ)器中,并且在其索引中創(chuàng)建條目,所述索引將那個(gè)緩沖器映射到連系緩沖器的處理保護(hù)標(biāo)記、處理id和RDMA-T端點(diǎn)。所述標(biāo)記是通過(guò)注冊(cè)被返回的。通過(guò)與RDMA-T驅(qū)動(dòng)程序518配合在此層中設(shè)置虛擬化,來(lái)自于數(shù)據(jù)服務(wù)器540的RDMA將呈現(xiàn)適當(dāng)連接的保護(hù)標(biāo)記,將成為虛擬地址-數(shù)據(jù)服務(wù)器映射集的成員,并且由此將被驗(yàn)證。在緩沖器可以被注冊(cè)以前,將必須完成虛擬地址到數(shù)據(jù)服務(wù)器地址集映射,如此使得所述虛擬地址是有效的端點(diǎn)。然后,可以創(chuàng)建虛擬端點(diǎn),其體現(xiàn)了所述映射,并且用作注冊(cè)處理的索引點(diǎn)。
圖6舉例說(shuō)明了在沒(méi)有硬件限制的情況下本發(fā)明的功能600。在圖6中,主機(jī)610對(duì)元數(shù)據(jù)服務(wù)器614提出基于文件的RDMA請(qǐng)求(FRP)612。所述元數(shù)據(jù)服務(wù)器614包括RFAC 616,其用于把RDMA文件存取語(yǔ)言翻譯為元文件系統(tǒng)語(yǔ)言。例如處于主機(jī)610或者元數(shù)據(jù)服務(wù)器614中的文件系統(tǒng)解釋器620提供原始數(shù)據(jù)塊信息。RDMA通道端點(diǎn)和數(shù)據(jù)細(xì)節(jié)被提供給智能RDMA部件630??梢择v留在主機(jī)610、元數(shù)據(jù)服務(wù)器614或者數(shù)據(jù)服務(wù)器(未示出)中的智能RDMA部件630控制在主機(jī)610處的存儲(chǔ)器和數(shù)據(jù)服務(wù)器(未示出)之間的RDMA傳送650。
圖7舉例說(shuō)明了根據(jù)本發(fā)明的存儲(chǔ)系統(tǒng)部件500,其中參照?qǐng)D3-6示出的過(guò)程可以被有形地包含在計(jì)算機(jī)可讀介質(zhì)或者載體中,例如包含在圖5中所示的一個(gè)或多個(gè)固定和/或可移除的數(shù)據(jù)存儲(chǔ)裝置568中,或者包含在其他數(shù)據(jù)存儲(chǔ)或數(shù)據(jù)通信裝置中。表示在可移除的數(shù)據(jù)存儲(chǔ)裝置568上包含的處理的計(jì)算機(jī)程序590可以被載入存儲(chǔ)器592或者存儲(chǔ)系統(tǒng)部件500中、例如處理器(未示出)中用于執(zhí)行,以便配置圖5的存儲(chǔ)系統(tǒng)部件500。計(jì)算機(jī)程序590包括指令,當(dāng)由圖5的存儲(chǔ)系統(tǒng)部件500讀取并且執(zhí)行所述指令時(shí),使存儲(chǔ)系統(tǒng)部件500執(zhí)行實(shí)現(xiàn)本發(fā)明的步驟或者元件所必須的步驟。本領(lǐng)域技術(shù)人員將認(rèn)識(shí)到的是,存儲(chǔ)系統(tǒng)部件500可以是客戶(hù)端、元數(shù)據(jù)服務(wù)器、數(shù)據(jù)服務(wù)器、控制器等等。此外,只有每一部件要求的處理需要被載入所述部件中。
因此,本發(fā)明提供了許多優(yōu)點(diǎn)。例如,在元數(shù)據(jù)服務(wù)器處對(duì)存儲(chǔ)進(jìn)行虛擬化和管理,通過(guò)在元數(shù)據(jù)服務(wù)器處的可管理性和復(fù)制服務(wù)使文件系統(tǒng)語(yǔ)義優(yōu)點(diǎn)得以增長(zhǎng)。在實(shí)現(xiàn)者控制點(diǎn)、即RDMA存儲(chǔ)存取驅(qū)動(dòng)程序處,存取也被虛擬化。此外,以客戶(hù)端RDMA通道的速度進(jìn)行對(duì)數(shù)據(jù)服務(wù)器的所有文件存取,并且數(shù)據(jù)服務(wù)器只需要JBOD智能級(jí)即可——增加運(yùn)行RDMA引擎堆棧的控制器。數(shù)據(jù)傳送是應(yīng)用程序控制的。通過(guò)事件驅(qū)動(dòng)的和異步的完成通知體系結(jié)構(gòu)可以實(shí)現(xiàn)完全的異步。所述文件系統(tǒng)接口不再通過(guò)對(duì)OS的分塊調(diào)用,因此客戶(hù)端不再需要多線程來(lái)有效地進(jìn)行流水線存取請(qǐng)求,并且為了可靠性和用戶(hù)定制化,可以擁有它們自身的異步文件系統(tǒng)接口。OS性能障礙被忽略了,例如,存取大小粒度現(xiàn)在只受傳輸?shù)哪芰蛡鬏旘?qū)動(dòng)程序來(lái)限制,避免了上下文切換和中斷處理開(kāi)銷(xiāo),并且避免了額外的復(fù)制操作和雙重高速緩存。
已經(jīng)為了舉例說(shuō)明和描述的目的給出了本發(fā)明的示例性實(shí)施例的先前描述。這不意味著窮舉或者把本發(fā)明限制為所公開(kāi)的具體形式。根據(jù)上述教義能夠進(jìn)行許多修改和變化。其意圖是,本發(fā)明的范圍不由這種詳細(xì)說(shuō)明來(lái)限制,而是由所附權(quán)利要求書(shū)來(lái)限定。
權(quán)利要求
1.一種主機(jī),包括用于在其上運(yùn)行應(yīng)用程序的中央處理單元;用于在其中存儲(chǔ)數(shù)據(jù)的存儲(chǔ)器;以及耦合至所述存儲(chǔ)器的主機(jī)總線適配器,所述主機(jī)總線適配器包括適配器處理器,其被設(shè)置為用于向元數(shù)據(jù)服務(wù)器發(fā)布輸入/輸出請(qǐng)求,并且用于允許直接在存儲(chǔ)器和數(shù)據(jù)服務(wù)器之間進(jìn)行與所述輸入/輸出請(qǐng)求相關(guān)聯(lián)的數(shù)據(jù)的直接存儲(chǔ)器存取傳送。
2.如權(quán)利要求1所述的主機(jī),其中所述適配器處理器被進(jìn)一步配置為用于允許經(jīng)由RDMA通道進(jìn)行直接存儲(chǔ)器存取。
3.如權(quán)利要求2所述的主機(jī),其中允許經(jīng)由RDMA通道進(jìn)行直接存儲(chǔ)器存取還包括從主機(jī)總線適配器至存儲(chǔ)器的直接存儲(chǔ)器存取,其中所述存儲(chǔ)器包括用戶(hù)模式存儲(chǔ)器。
4.如權(quán)利要求2所述的主機(jī),其中所述RDMA通道是由所述主機(jī)啟動(dòng)的。
5.如權(quán)利要求2所述的主機(jī),其中所述RDMA通道是由所述數(shù)據(jù)服務(wù)器啟動(dòng)的。
6.如權(quán)利要求1所述的主機(jī),其中所述適配器處理器被進(jìn)一步配置為用于響應(yīng)于發(fā)布所述輸入/輸出請(qǐng)求來(lái)接收來(lái)自于元數(shù)據(jù)服務(wù)器的數(shù)據(jù)塊位置信息。
7.如權(quán)利要求1所述的主機(jī),其中所述適配器處理器被進(jìn)一步配置為用于向數(shù)據(jù)服務(wù)器發(fā)布用來(lái)標(biāo)識(shí)主機(jī)處的存儲(chǔ)器位置的命令,以便允許在存儲(chǔ)器和數(shù)據(jù)服務(wù)器之間進(jìn)行與輸入/輸出請(qǐng)求相關(guān)聯(lián)的數(shù)據(jù)的直接存儲(chǔ)器存取傳送。
8.如權(quán)利要求1所述的主機(jī),其中所述適配器處理器被進(jìn)一步配置為用于向元數(shù)據(jù)服務(wù)器通知已經(jīng)完成所述輸入/輸出請(qǐng)求。
9.如權(quán)利要求1所述的主機(jī),其中利用客戶(hù)端文件存取堆棧將所述適配器處理器進(jìn)一步配置為用于控制輸入/輸出請(qǐng)求,所述客戶(hù)端文件存取堆棧包括用于接收來(lái)自于應(yīng)用程序的數(shù)據(jù)請(qǐng)求并且發(fā)布所述輸入/輸出請(qǐng)求的文件存取協(xié)議;用于提供虛擬尋址和解析的虛擬化層;以及用于控制與主機(jī)的連接并且驗(yàn)證支持所述輸入/輸出請(qǐng)求的存儲(chǔ)器存取的RDMA傳輸層。
10.如權(quán)利要求9所述的主機(jī),其中所述RDMA傳輸層通過(guò)保持存儲(chǔ)器地址映射直到數(shù)據(jù)服務(wù)器的RDMA傳輸?shù)刂繁或?yàn)證為止來(lái)驗(yàn)證存儲(chǔ)器存取。
11.如權(quán)利要求1所述的主機(jī),其中利用客戶(hù)端文件存取堆棧將所述適配器處理器進(jìn)一步配置為用于控制輸入/輸出請(qǐng)求,所述客戶(hù)端文件存取堆棧包括用于接收來(lái)自于應(yīng)用程序的數(shù)據(jù)請(qǐng)求并且發(fā)布所述輸入/輸出請(qǐng)求的文件存取協(xié)議;用于解析輸入/輸出請(qǐng)求的虛擬地址并且為解析的虛擬地址開(kāi)啟RDMA通道的RDMA端點(diǎn)地址適配層;用于保持存儲(chǔ)器映射并且驗(yàn)證支持輸入/輸出請(qǐng)求的存儲(chǔ)器存取的RDMA傳輸端點(diǎn)供應(yīng)商層;以及用于控制與主機(jī)的連接的RDMA傳輸層。
12.如權(quán)利要求1所述的主機(jī),其中所述輸入/輸出請(qǐng)求包括帶有數(shù)據(jù)目標(biāo)位置的文件存取請(qǐng)求。
13.如權(quán)利要求1所述的主機(jī),還包括智能RDMA部件,用于控制文件-塊數(shù)據(jù)在主機(jī)存儲(chǔ)器和存儲(chǔ)裝置之間的RDMA傳送。
14.一種元數(shù)據(jù)服務(wù)器,包括用于存儲(chǔ)與數(shù)據(jù)服務(wù)器上的數(shù)據(jù)相關(guān)聯(lián)的元數(shù)據(jù)的存儲(chǔ)器;以及處理器,被配置為用于接收來(lái)自于主機(jī)的輸入/輸出請(qǐng)求,并且根據(jù)所述元數(shù)據(jù)向數(shù)據(jù)服務(wù)器發(fā)布輸入/輸出操作細(xì)節(jié),以便直接在主機(jī)處的存儲(chǔ)器和數(shù)據(jù)服務(wù)器之間傳送文件-塊數(shù)據(jù)。
15.如權(quán)利要求14所述的元數(shù)據(jù)服務(wù)器,其中所述輸入/輸出請(qǐng)求是請(qǐng)求直接從主機(jī)處的存儲(chǔ)器地址向數(shù)據(jù)服務(wù)器寫(xiě)入數(shù)據(jù)的請(qǐng)求。
16.如權(quán)利要求14所述的元數(shù)據(jù)服務(wù)器,其中所述輸入/輸出請(qǐng)求是請(qǐng)求從數(shù)據(jù)服務(wù)器直接向主機(jī)處的存儲(chǔ)器讀取由輸入/輸出操作細(xì)節(jié)涉及的數(shù)據(jù)的請(qǐng)求。
17.如權(quán)利要求14所述的元數(shù)據(jù)服務(wù)器,其中所述處理器被配置為虛擬化位于所述數(shù)據(jù)服務(wù)器的文件-塊數(shù)據(jù)。
18.如權(quán)利要求14所述的元數(shù)據(jù)服務(wù)器,其中所述輸入/輸出請(qǐng)求是對(duì)元數(shù)據(jù)的請(qǐng)求,所述處理器把所請(qǐng)求的元數(shù)據(jù)返回至主機(jī)處的存儲(chǔ)器地址。
19.如權(quán)利要求14所述的元數(shù)據(jù)服務(wù)器,其中所述處理器在主機(jī)和元數(shù)據(jù)服務(wù)器之間經(jīng)由RDMA通道返回所請(qǐng)求的元數(shù)據(jù)。
20.如權(quán)利要求14所述的元數(shù)據(jù)服務(wù)器,其中所述處理器被進(jìn)一步配置為用于接收來(lái)自于數(shù)據(jù)服務(wù)器的完成通知,并且向主機(jī)發(fā)布表示完成與輸入/輸出請(qǐng)求相關(guān)聯(lián)的會(huì)話的文件存取響應(yīng)。
21.如權(quán)利要求14所述的元數(shù)據(jù)服務(wù)器,其中所述處理器被進(jìn)一步配置為當(dāng)與高速緩存的數(shù)據(jù)相關(guān)聯(lián)的元數(shù)據(jù)在所述元數(shù)據(jù)服務(wù)器改變時(shí),在主機(jī)處使高速緩存的數(shù)據(jù)無(wú)效。
22.如權(quán)利要求14所述的元數(shù)據(jù)服務(wù)器,其中所述處理器被進(jìn)一步配置為把來(lái)自于主機(jī)的輸入/輸出請(qǐng)求從RDMA文件存取語(yǔ)言翻譯為元數(shù)據(jù)服務(wù)器的元文件系統(tǒng)語(yǔ)言,以便允許輸入/輸出請(qǐng)求被映射到數(shù)據(jù)服務(wù)器上的原始數(shù)據(jù)塊。
23.如權(quán)利要求14所述的元數(shù)據(jù)服務(wù)器,還包括智能RDMA部件,用于控制文件-塊數(shù)據(jù)在主機(jī)的存儲(chǔ)器地址和數(shù)據(jù)服務(wù)器之間的RDMA傳送。
24.一種數(shù)據(jù)服務(wù)器,包括用于在其上存儲(chǔ)文件-塊數(shù)據(jù)的至少一個(gè)存儲(chǔ)裝置;以及可操作地耦合至所述存儲(chǔ)裝置的處理器,所述處理器被配置為用于從元數(shù)據(jù)服務(wù)器接收與主機(jī)的輸入/輸出請(qǐng)求相關(guān)聯(lián)的輸入/輸出操作細(xì)節(jié),用于建立與由所接收的輸入/輸出操作細(xì)節(jié)標(biāo)識(shí)的主機(jī)處的存儲(chǔ)器地址的直接連接,并且用于直接在主機(jī)的存儲(chǔ)器地址和至少一個(gè)存儲(chǔ)裝置之間傳送由接收到的輸入/輸出操作細(xì)節(jié)涉及的文件-塊數(shù)據(jù)。
25.如權(quán)利要求24所述的數(shù)據(jù)服務(wù)器,其中所述處理器被進(jìn)一步配置為用于向元數(shù)據(jù)服務(wù)器提供完成通知,以便發(fā)信號(hào)通知主機(jī)的存儲(chǔ)器地址和存儲(chǔ)裝置之間的文件數(shù)據(jù)傳送已經(jīng)完成。
26.如權(quán)利要求24所述的數(shù)據(jù)服務(wù)器,其中所述處理器還包括存儲(chǔ)控制器,用于作為邏輯單元號(hào)來(lái)給出至少一個(gè)存儲(chǔ)裝置,并且用于通過(guò)處理主機(jī)的存儲(chǔ)器地址和至少一個(gè)存儲(chǔ)裝置之間的文件-塊數(shù)據(jù)來(lái)滿(mǎn)足所述輸入/輸出請(qǐng)求。
27.如權(quán)利要求24所述的數(shù)據(jù)服務(wù)器,其中所述數(shù)據(jù)服務(wù)器堆棧還包括智能RDMA部件,用于控制文件-塊數(shù)據(jù)在主機(jī)的存儲(chǔ)器地址和至少一個(gè)存儲(chǔ)裝置之間的RDMA傳送。
28.如權(quán)利要求24所述的數(shù)據(jù)服務(wù)器,其中所述處理器利用主機(jī)處的操作系統(tǒng)的最小處理開(kāi)銷(xiāo),直接在主機(jī)的存儲(chǔ)器地址和至少一個(gè)存儲(chǔ)裝置之間傳送由所接收的輸入/輸出操作細(xì)節(jié)涉及的文件-塊數(shù)據(jù)。
29.一種存儲(chǔ)網(wǎng)絡(luò),包括主機(jī),所述主機(jī)包括用于在處理輸入/輸出請(qǐng)求中使用的第一存儲(chǔ)器,所述主機(jī)被配置為用于發(fā)布輸入/輸出請(qǐng)求;耦合至所述主機(jī)的元數(shù)據(jù)服務(wù)器,所述元數(shù)據(jù)服務(wù)器包括用于存儲(chǔ)與文件-塊數(shù)據(jù)相關(guān)聯(lián)的元數(shù)據(jù)的第二存儲(chǔ)器,所述元數(shù)據(jù)服務(wù)器進(jìn)一步被配置為用于接收來(lái)自于所述主機(jī)的輸入/輸出請(qǐng)求并且用于提供輸入/輸出操作細(xì)節(jié)以便處理輸入/輸出請(qǐng)求;以及可操作地耦合至所述主機(jī)和所述元數(shù)據(jù)服務(wù)器的數(shù)據(jù)服務(wù)器,所述數(shù)據(jù)服務(wù)器包括用于在其上存儲(chǔ)文件-塊數(shù)據(jù)的至少一個(gè)存儲(chǔ)裝置,所述數(shù)據(jù)服務(wù)器被配置為用于從元數(shù)據(jù)服務(wù)器接收輸入/輸出操作細(xì)節(jié)以便處理所述輸入/輸出請(qǐng)求,用于建立與由來(lái)自于元數(shù)據(jù)服務(wù)器的輸入/輸出操作細(xì)節(jié)標(biāo)識(shí)的主機(jī)處的存儲(chǔ)器地址的直接連接,并且用于直接在主機(jī)處的標(biāo)識(shí)出的存儲(chǔ)器位置和至少一個(gè)存儲(chǔ)裝置之間傳送由所述輸入/輸出操作細(xì)節(jié)涉及的文件-塊數(shù)據(jù)。
30.一種可由計(jì)算機(jī)讀取的程序存儲(chǔ)裝置,所述介質(zhì)有形地包含可由計(jì)算機(jī)執(zhí)行的一個(gè)或多個(gè)指令程序,以便執(zhí)行用于在具有元數(shù)據(jù)存儲(chǔ)虛擬化的分布式文件服務(wù)體系結(jié)構(gòu)中以數(shù)據(jù)服務(wù)器連接速度進(jìn)行數(shù)據(jù)存取的方法,所述方法包括如下步驟向元數(shù)據(jù)服務(wù)器發(fā)布輸入/輸出請(qǐng)求;以及直接在所述存儲(chǔ)器和數(shù)據(jù)服務(wù)器之間傳送與輸入/輸出請(qǐng)求相關(guān)聯(lián)的數(shù)據(jù)。
31.一種可由計(jì)算機(jī)讀取的程序存儲(chǔ)裝置,所述介質(zhì)有形地包含可由計(jì)算機(jī)執(zhí)行的一個(gè)或多個(gè)指令程序,以便執(zhí)行用于在具有元數(shù)據(jù)存儲(chǔ)虛擬化的分布式文件服務(wù)體系結(jié)構(gòu)中允許以數(shù)據(jù)服務(wù)器連接速度進(jìn)行數(shù)據(jù)存取的方法,所述方法包括如下步驟存儲(chǔ)與數(shù)據(jù)服務(wù)器上的數(shù)據(jù)相關(guān)聯(lián)的元數(shù)據(jù);并且響應(yīng)于輸入/輸出請(qǐng)求,根據(jù)所述元數(shù)據(jù)向數(shù)據(jù)服務(wù)器發(fā)布輸入/輸出操作細(xì)節(jié),以便直接在主機(jī)處的存儲(chǔ)器和數(shù)據(jù)服務(wù)器之間傳送文件-塊數(shù)據(jù)。
32.一種可由計(jì)算機(jī)讀取的程序存儲(chǔ)裝置,所述介質(zhì)有形地包含可由計(jì)算機(jī)執(zhí)行的一個(gè)或多個(gè)指令程序,以便執(zhí)行用于在具有元數(shù)據(jù)存儲(chǔ)虛擬化的分布式文件服務(wù)體系結(jié)構(gòu)中以數(shù)據(jù)服務(wù)器連接速度提供數(shù)據(jù)存取的方法,所述方法包括如下步驟在包括至少一個(gè)存儲(chǔ)裝置的數(shù)據(jù)服務(wù)器上存儲(chǔ)文件-塊數(shù)據(jù);在數(shù)據(jù)服務(wù)器從元數(shù)據(jù)服務(wù)器接收與主機(jī)的輸入/輸出請(qǐng)求相關(guān)聯(lián)的輸入/輸出操作細(xì)節(jié);建立從數(shù)據(jù)服務(wù)器到由接收到的輸入/輸出操作細(xì)節(jié)標(biāo)識(shí)的主機(jī)處的存儲(chǔ)器地址的直接連接;并且直接在主機(jī)的存儲(chǔ)器地址和數(shù)據(jù)服務(wù)器之間傳送由接收到的輸入/輸出操作細(xì)節(jié)涉及的文件-塊數(shù)據(jù)。
33.一種可由計(jì)算機(jī)讀取的程序存儲(chǔ)裝置,所述介質(zhì)有形地包含可由計(jì)算機(jī)執(zhí)行的一個(gè)或多個(gè)指令程序,以便執(zhí)行用于提供具有元數(shù)據(jù)存儲(chǔ)虛擬化并且以數(shù)據(jù)服務(wù)器連接速度進(jìn)行數(shù)據(jù)存取的分布式文件服務(wù)體系結(jié)構(gòu)的方法,所述方法包括如下步驟從主機(jī)發(fā)布包括數(shù)據(jù)目標(biāo)位置的文件存取請(qǐng)求;處理包括數(shù)據(jù)目標(biāo)位置的文件存取請(qǐng)求;響應(yīng)于包括數(shù)據(jù)目標(biāo)位置的文件存取請(qǐng)求的處理,發(fā)布遠(yuǎn)程直接存儲(chǔ)器存取通道端點(diǎn)連接;并且直接在主機(jī)處的存儲(chǔ)器和數(shù)據(jù)服務(wù)器之間傳送與文件存取請(qǐng)求相關(guān)聯(lián)的文件-塊數(shù)據(jù)。
全文摘要
提供了一種用于提供具有元數(shù)據(jù)存儲(chǔ)虛擬化并且以數(shù)據(jù)服務(wù)器連接速度進(jìn)行數(shù)據(jù)存取的分布式文件服務(wù)體系結(jié)構(gòu)的方法、設(shè)備和程序存儲(chǔ)裝置。主機(jī)發(fā)布包括數(shù)據(jù)目標(biāo)位置的文件存取請(qǐng)求。對(duì)包括數(shù)據(jù)目標(biāo)位置的文件存取請(qǐng)求進(jìn)行處理。響應(yīng)于所述文件存取請(qǐng)求的處理而發(fā)布遠(yuǎn)程直接存儲(chǔ)器存取(RDMA)通道端點(diǎn)連接。直接在主機(jī)處的存儲(chǔ)器和數(shù)據(jù)服務(wù)器之間進(jìn)行與文件存取請(qǐng)求相關(guān)聯(lián)的文件-塊數(shù)據(jù)的RDMA傳送。
文檔編號(hào)G06F11/20GK1771495SQ200480002421
公開(kāi)日2006年5月10日 申請(qǐng)日期2004年5月6日 優(yōu)先權(quán)日2003年5月7日
發(fā)明者理查德·V·基斯利, 菲利普·D·奈特 申請(qǐng)人:國(guó)際商業(yè)機(jī)器公司
網(wǎng)友詢(xún)問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
常德市| 宜宾市| 隆德县| 古交市| 双桥区| 石门县| 理塘县| 西畴县| 任丘市| 泸州市| 丹东市| 沙湾县| 宣武区| 北京市| 文化| 西丰县| 双城市| 荥阳市| 米易县| 东明县| 通渭县| 祁东县| 兰溪市| 武安市| 昌黎县| 温州市| 丰顺县| 衢州市| 滦平县| 淳化县| 卢龙县| 崇阳县| 高唐县| 虎林市| 潮安县| 乡宁县| 恩平市| 龙州县| 柘荣县| 扶绥县| 海伦市|