亚洲狠狠干,亚洲国产福利精品一区二区,国产八区,激情文学亚洲色图

后端設(shè)備上的文件連接的制作方法

文檔序號:10663599閱讀:167來源:國知局
后端設(shè)備上的文件連接的制作方法
【專利摘要】一種設(shè)備包括接收器,用于接收文件的連接?查找遠(yuǎn)程過程調(diào)用(remote procedural call,RPC),其中所述連接?查找RPC請求與所述文件關(guān)聯(lián)的子文件的連接操作,以及發(fā)射器,用于響應(yīng)于所述連接?查找RPC傳輸所述文件。一種分布式文件系統(tǒng)(distributed file system,DFS)客戶端包括發(fā)射器,用于傳輸文件的連接?查找RPC,其中所述連接?查找RPC請求與所述文件關(guān)聯(lián)的子文件的連接操作,以及接收器,用于響應(yīng)于所述連接?查找RPC接收所述文件。一種方法包括接收文件的連接?查找RPC,其中所述連接?查找RPC請求與所述文件關(guān)聯(lián)的子文件的連接操作,以及響應(yīng)于所述連接?查找RPC傳輸所述文件。
【專利說明】后端設(shè)備上的文件連接
[0001 ]相關(guān)申請案交叉申請
[0002] 本申請要求2014年2月24日由Vineet Chadha和Guangyu Shi遞交的發(fā)明名稱為 "后端設(shè)備上的文件連接(File Joining on Back End Device)"的第14/188,429號美國非 臨時專利申請案的在先申請優(yōu)先權(quán),該在先申請的全部內(nèi)容以引入的方式并入本文本中。
【背景技術(shù)】
[0003] 分布式文件系統(tǒng)(distributed file system,DFS)是一種允許從多個設(shè)備訪問文 件的文件系統(tǒng)。DFS可以采用服務(wù)器-客戶端架構(gòu),其中客戶端可以訪問中央服務(wù)器上存儲 的文件。如若存在訪問,授權(quán)權(quán)力可以確定此類訪問的程度。服務(wù)器可以是專門用于管理磁 盤驅(qū)動器的功能強大的計算機,可以統(tǒng)稱為DFS的后端;客戶端可以是個人計算機,可以統(tǒng) 稱為DFS的前端。服務(wù)器可以包括,或者以通信方式耦合至系統(tǒng)磁盤陣列。系統(tǒng)磁盤陣列均 可包括多個系統(tǒng)磁盤。用戶可以使用軟件應(yīng)用來操作客戶端。DFS可以使用統(tǒng)一命名約定和 映射方案來記錄文件位置。DFS的一個優(yōu)點是它們可以在服務(wù)器上提供集中式存儲系統(tǒng),該 集中式存儲系統(tǒng)可以釋放客戶端上的資源,否則客戶端可以使用這些資源來存儲文件。因 此,釋放的資源可以允許客戶端執(zhí)行其它重要功能。
[0004] 網(wǎng)絡(luò)文件系統(tǒng)(Network File System,NFS)是一個允許客戶端訪問服務(wù)器文件的 DFS協(xié)議。NFS 4.1版本是NFS的最新版本,該協(xié)議的全部內(nèi)容以引入的方式并入本文本中。 NFS和其它DFS協(xié)議可以包括遠(yuǎn)程過程調(diào)用(remote procedural call,RPC),RPC可以指在 沒有顯式用戶交互的情況下使一臺設(shè)備產(chǎn)生在另一臺設(shè)備上執(zhí)行的過程的通信。典型的 RPC可以是讀、寫、移除以及讀取目錄(例如,readdirhRPC可以參考非透明文件句柄和輸入 參數(shù),或者調(diào)用參數(shù)進(jìn)行調(diào)用。NFS先前是一種無狀態(tài)協(xié)議,這意味著它將每個數(shù)據(jù)請求處 理為與任意先前請求無關(guān)的獨立請求。然而,NFS已經(jīng)演進(jìn)為一種有狀態(tài)協(xié)議,這意味著按 照有狀態(tài)協(xié)議處理相關(guān)請求。演進(jìn)為有狀態(tài)協(xié)議提升了廣域網(wǎng)(wide area network,WAN) 內(nèi)DFS的性能,但是隨著文件大小增大且DFS變得更為復(fù)雜,進(jìn)一步優(yōu)化DFS中的文件分布變 得尤為重要。

【發(fā)明內(nèi)容】

[0005] 在一項實施例中,本發(fā)明包含一種設(shè)備,所述設(shè)備包括接收器,用于接收文件的連 接-查找RPC,其中所述連接-查找RPC請求與所述文件關(guān)聯(lián)的子文件的連接操作,以及發(fā)射 器,用于響應(yīng)于所述連接-查找RPC傳輸所述文件。
[0006] 在另一項實施例中,本發(fā)明包含一種DFS客戶端,所述DFS客戶端包括發(fā)射器,用于 傳輸文件的連接-查找RPC,其中所述連接-查找RPC請求與所述文件關(guān)聯(lián)的子文件的連接操 作,以及接收器,用于響應(yīng)于所述連接-查找RPC接收所述文件。
[0007] 在又一項實施例中,本發(fā)明包含一種方法,所述方法包括接收文件的連接-查找 RPC,其中所述連接-查找RPC請求與所述文件關(guān)聯(lián)的子文件的連接操作,以及響應(yīng)于所述連 接-查找RPC傳輸所述文件。
[0008] 結(jié)合附圖和權(quán)利要求書可以從以下的詳細(xì)描述中更清楚地理解這些和其它特征。
【附圖說明】
[0009] 為了更透徹地理解本發(fā)明,現(xiàn)參閱結(jié)合附圖和【具體實施方式】而描述的以下簡要說 明,其中的相同參考標(biāo)號表不相同部分。
[0010]圖1為根據(jù)本發(fā)明一實施例的網(wǎng)絡(luò)設(shè)備的示意圖。
[0011]圖2為根據(jù)本發(fā)明一實施例的DFS的示意圖。
[0012]圖3為圖2所描述的執(zhí)行連接操作的DFS的消息序列圖。
[0013]圖4為圖3所描述的連接操作的圖例。
[0014]圖5為根據(jù)本發(fā)明一實施例的圖2所描述的DFS執(zhí)行連接操作的的消息序列圖。
[0015] 圖6為圖5所描述的連接操作的圖例。
[0016] 圖7為根據(jù)本發(fā)明一實施例的圖示執(zhí)行連接操作的方法的流程圖。
【具體實施方式】
[0017] 首先應(yīng)理解,盡管下文提供一項或多項實施例的說明性實施方案,但所公開的系 統(tǒng)和/或方法可使用任何數(shù)目的技術(shù)來實施,無論該技術(shù)是當(dāng)前已知還是現(xiàn)有的。本發(fā)明決 不應(yīng)限于下文所說明的說明性實施方案、附圖和技術(shù),包括本文所說明并描述的示例性設(shè) 計和實施方案,而是可在所附權(quán)利要求書的范圍以及其等效物的完整范圍內(nèi)修改。
[0018] 當(dāng)DFS中的客戶端請求與文件關(guān)聯(lián)的數(shù)據(jù)時,響應(yīng)服務(wù)器需要從多個系統(tǒng)磁盤上 駐留的多個文件或子文件獲取該數(shù)據(jù)。例如,典型的基于LAMP的網(wǎng)絡(luò)應(yīng)用可以使用戶的統(tǒng) 計數(shù)據(jù)在一段時間內(nèi)收集。LAMP可以指Linux、Apache、MySQL,以及PHP、Perl或者Python。 Linux是一種操作系統(tǒng);Apache是一種網(wǎng)絡(luò)服務(wù)器軟件程序;MySQL是一種數(shù)據(jù)庫軟件;PHP、 Perl和Python是編程語言。這些數(shù)據(jù)可以位于不同系統(tǒng)磁盤的不同子文件中。在此情況下, 應(yīng)用可能需要將這些子文件組合為一個文件以便數(shù)據(jù)可以使用。因此,客戶端可以通過每 個系統(tǒng)磁盤上每個子文件的一系列RPC與服務(wù)器交互。例如,如果服務(wù)器需要從五個子文件 中獲取數(shù)據(jù),其中每個子文件駐留在不同的系統(tǒng)磁盤上,客戶端可以通過五個系列的RPC與 服務(wù)器交互。所有系列的RPC結(jié)束后,客戶端可以通過邏輯方式連接數(shù)據(jù)。該連接過程可以 稱作連接操作。多個系列的RPC可能導(dǎo)致開銷巨大,尤其如果數(shù)據(jù)量巨大。因此,需要減少開 銷,以便降低連接操作的時延,并且需要以可擴(kuò)展且安全的方式進(jìn)行。
[0019] 本文公開了用于改進(jìn)DFS的技術(shù)、方法和設(shè)備。具體而言,所公開技術(shù)可以將連接 操作從客戶端迀移到服務(wù)器。連接操作可以通過以下操作來完成:客戶端向服務(wù)器發(fā)送新 的連接-查找RPC,服務(wù)器在其自身的沙盤中執(zhí)行連接-查找以及相關(guān)連接操作,以及修改應(yīng) 用編程接口(application programming interface,API)以包含連接-查找以及相關(guān)連接 操作的語義。沙盤可以指存儲器,在此情況下為服務(wù)器存儲器,特定空間中的受控進(jìn)程或資 源集。沙盤還可以指容器或者虛擬機,虛擬機可以指基于軟件的計算機。API可以指指定軟 件組件如何交互的庫。通過將連接操作從客戶端迀移到服務(wù)器,所公開技術(shù)可以提供至少 三方面的優(yōu)勢。首先,連接-查找只需要單個系列的RPC,而不是多個系列的RPC,因此減少了 與數(shù)據(jù)請求關(guān)聯(lián)的開銷并且降低了連接操作的時延。隨著文件大小增大,傳統(tǒng)技術(shù)可能需 要甚至更多系列的RPC,因此進(jìn)一步突出所公開技術(shù)理解的開銷減少。第二,由于沙盤相對 較小,所以沙盤高度可擴(kuò)展。第三,連接操作是安全的,因為連接操作發(fā)生在沙盤中,而沙盤 本身是安全的。
[0020] 圖1為根據(jù)本發(fā)明一實施例的網(wǎng)絡(luò)設(shè)備100的示意圖。網(wǎng)絡(luò)設(shè)備100可包括多個入 端口 110和/或接收單元(receiver unit,Rx) 120,用于接收數(shù)據(jù);處理器、邏輯單元,或者中 央處理器(central processing unit,CPU)130,用于處理數(shù)據(jù);多個發(fā)射單元 (transmitter unit,Tx) 140和/或出端口 150,用于傳輸數(shù)據(jù);以及存儲器160,用于存儲數(shù) 據(jù)。網(wǎng)絡(luò)設(shè)備100可以適用于實施任意所公開的技術(shù)、方法和設(shè)備。
[0021] 處理器130可在硬件和/或軟件中實施。處理器130可以與入端口 110、接收單元 120、發(fā)射單元140、出端口 150,以及存儲器160通信。處理器130可實施為一個或多個CPU芯 片、核(例如,多核處理器)、現(xiàn)場可編程門陣列(field-programmable gate array,F(xiàn)PGA)、 專用集成電路(application specific integrated circuit,ASIC),和/或數(shù)字信號處理 器(digital signal processor,DSP)〇
[0022] 存儲器160可包括一個或多個磁盤、磁帶驅(qū)動器,或固態(tài)驅(qū)動器,并且可用作溢流 數(shù)據(jù)存儲設(shè)備;可用于當(dāng)程序被選擇執(zhí)行時存儲這些程序;以及可用于存儲在程序執(zhí)行期 間讀取的指令和數(shù)據(jù)。存儲器160可以是易失性的和/或非易失性的,并且可以是只讀存儲 器(read-only memory,R0M),隨機存取存儲器(random-access memory,RAM),三重內(nèi)容尋 址存儲器(ternary content-addressable memory,TCAM),靜態(tài)隨機存取存儲器(static random-access memory,SRAM)或它們的任意組合。
[0023] 圖2為根據(jù)本發(fā)明一實施例的DFS 200的示意圖。DFS 200可以包括m個客戶端210、 網(wǎng)絡(luò)設(shè)備230、服務(wù)器240,以及系統(tǒng)磁盤陣列280 J可表示任意合適的數(shù)字。DFS 200組件可 以通信方式通過任意合適的有線或無線信道相互耦合。DFS 200組件可以使用NFS或者任意 其它合適的協(xié)議相互通信。
[0024]客戶端210可以是用于發(fā)送和接收數(shù)據(jù)的任意硬件設(shè)備??蛻舳?10均可包括DFS 應(yīng)用220??蛻舳?10可以與終端用戶關(guān)聯(lián)。例如,客戶端210可以是筆記本電腦、平板電腦、 臺式電腦、移動電話,或者其它設(shè)備。或者,客戶端可以是以通信方式耦合至筆記本電腦、平 板電腦、臺式電腦、移動電話,或者其它設(shè)備等終端用戶設(shè)備的服務(wù)器。在此情況下,客戶端 210可以稱為應(yīng)用服務(wù)器。
[0025]應(yīng)用220可以是數(shù)據(jù)庫應(yīng)用或者適用于請求和接收數(shù)據(jù)的其它應(yīng)用。例如,應(yīng)用 220可以使用NFS或者另一合適的協(xié)議通過一系列RPC請求和接收數(shù)據(jù)。應(yīng)用220可以包括 API (未示出),或者與API關(guān)聯(lián)??梢孕薷腁PI以包含新連接-查找的語義。
[0026] 網(wǎng)絡(luò)230可以是任意網(wǎng)絡(luò),用于提供DFS 200組件之間的通信。例如,網(wǎng)絡(luò)230可以 是互聯(lián)網(wǎng)、移動電話網(wǎng)絡(luò)、局域網(wǎng)(local area network,LAN),廣域網(wǎng)(wide area network,WAN),或者另一網(wǎng)絡(luò)。或者,網(wǎng)絡(luò)230可以是客戶端210和服務(wù)器240之間的專用信 道。網(wǎng)絡(luò)230可以允許通信沿著任意合適的有線或無線信道進(jìn)行。
[0027]服務(wù)器240可以是用于發(fā)送和接收數(shù)據(jù)的任意硬件設(shè)備。例如,服務(wù)器240可以是 EMC2、NetApp、PLX技術(shù),或者具有任意合適的處理能力和存儲量的類似服務(wù)器。服務(wù)器240 可以包括應(yīng)用220、操作系統(tǒng)250,以及虛擬機監(jiān)視器260。服務(wù)器240可以是網(wǎng)絡(luò)連接存儲 (network-attached storage,NAS)設(shè)備,NSA設(shè)備可以指專門為存儲和服務(wù)文件構(gòu)建的文 件級計算機數(shù)據(jù)存儲設(shè)備。服務(wù)器240也可稱作NAS網(wǎng)關(guān)設(shè)備或者NAS控制器。服務(wù)器240可 以用于為客戶端210執(zhí)行任務(wù)。例如,服務(wù)器240可以是專用硬件計算機服務(wù)器。
[0028] 操作系統(tǒng)250可以是任意操作系統(tǒng),用于接收來自客戶端210的數(shù)據(jù)請求以及向客 戶端210發(fā)送數(shù)據(jù)。在向客戶端210發(fā)送數(shù)據(jù)之前,操作系統(tǒng)250可以首先從系統(tǒng)磁盤陣列 280中獲取該數(shù)據(jù)。服務(wù)器240可以包括或者以通信方式耦合至系統(tǒng)磁盤陣列280。系統(tǒng)磁盤 陣列280可以包括η個系統(tǒng)磁盤290,用于存儲由服務(wù)器240使用的數(shù)據(jù)。N可表示任意合適的 數(shù)字。
[0029] 虛擬機監(jiān)視器260可以是創(chuàng)建并運行虛擬機的軟件、固件或硬件。在此方面,虛擬 機監(jiān)視器260可創(chuàng)建并運行沙盤270。此外,虛擬機監(jiān)視器260可控制CPU 130的時間、調(diào)用次 數(shù)、內(nèi)存分配,以及與應(yīng)用220關(guān)聯(lián)的其它系統(tǒng)資源的使用。虛擬機監(jiān)控器260可以是ZeroVM 虛擬機監(jiān)視器,其是一種在WWW. zerovm. org中描述的開源虛擬機監(jiān)視器,該虛擬機監(jiān)視器 的全部內(nèi)容以引入的方式并入本文本中。
[0030] 沙盤270可以是如上所述的受控進(jìn)程或資源集。至少存在兩種沙盤。第一種沙盤可 包括一組多個進(jìn)程并且可以執(zhí)行進(jìn)程級策略。第二種沙盤可以是基于庫的,或者基于外內(nèi) 核的,并且可執(zhí)行改進(jìn)的抽象或API,例如沙盤的泛虛擬化抽象。對于第二種沙盤,操作系統(tǒng) 250可了解沙盤中執(zhí)行的應(yīng)用。沙盤270可以是基于庫的沙盤。沙盤270可以是輕量型的,或 者具有較小的虛擬機監(jiān)視器存儲占用,這意味著沙盤270可占據(jù)服務(wù)器240的存儲器的相對 較小部分。例如,沙盤270可最多僅占據(jù)服務(wù)器240的存儲器中的75千字節(jié)(kilobyte,kB)。 沙盤240可以基于Google Native Cl ient沙盤技術(shù),該技術(shù)在www · code · google · com/p/ nativeclient/中描述,并且該技術(shù)的全部內(nèi)容以引入的方式并入本文本中。應(yīng)用220可以 連接至沙盤270以便執(zhí)行更為安全。讀取文件前,客戶端210可以從虛擬機監(jiān)視器260提供的 模板清單(未示出)接收輸入信道。寫入文件前,客戶端210可以從清單接收輸出信道。應(yīng)用 220可以使用特殊調(diào)用在清單中接收或設(shè)置變量。清單可以基于文件屬性、操作,以及系統(tǒng) 資源動態(tài)配置。
[0031] 圖3為圖2中所述的DFS 200執(zhí)行連接操作的的消息序列圖。在步驟305處,應(yīng)用220 可在客戶端i 21(h上執(zhí)行。例如,與客戶端i 21(h關(guān)聯(lián)的用戶可以運行應(yīng)用220,并且指示該 應(yīng)用從服務(wù)器240上下載名為"file.txt"的文件。因此,客戶端:21〇dP服務(wù)器240可以啟動 一系列RPC。在步驟310處,客戶端! 21(h可以向服務(wù)器240發(fā)送查找。該查找可以是Lookup (pfh,arg)形式。Pfh可指父文件句柄,其可指執(zhí)行查找的目錄。文件句柄可以是待下載文件 的文件結(jié)構(gòu)的指針。Arg可以指調(diào)用參數(shù),并且可以包括文件名稱參數(shù)。文件名稱參數(shù)可以 指待下載文件的名稱。因此,該查找可以是Lookup(pfh,f ile. txt),其可指示服務(wù)器240查 找并返回file.txt的文件句柄。從API角度而言,該查找可以與客戶端:21(h側(cè)和服務(wù)器240 側(cè)的文件打開、虛擬文件系統(tǒng)(virtual file system,VFS)查找,以及NFS查找層操作關(guān)聯(lián)。 VFS查找可位于比文件打開低的層,NFS查找可位于比VFS查找低的層?;蛘?,文件打開可位 于最高層,VFS查找可位于較低層,NFS查找可位于最低層。在步驟315處,服務(wù)器240可確定 f ile . txt的文件句柄。然而,該文件句柄可能不是整個file, txt的單個指針。例如,NFS配 置、file.txt大小、創(chuàng)建file.txt所需的子文件數(shù)量可要求服務(wù)器240以多個子文件發(fā)送 fi 1 e. txt。例如,整個fi 1 e. txt可能不駐留在單個系統(tǒng)磁盤290上,但是f i 1 e. txt的第一子 文件可駐留在系統(tǒng)磁盤2 2902上,file.txt的第二子文件可駐留在系統(tǒng)磁盤4 2904上, file.txt的第三子文件可駐留在系統(tǒng)磁盤15 29015上。file.txt的第一子文件可稱作文件2, file. txt的第二子文件可稱作文件4, file. txt的第三子文件可稱作文件15。在此情況下,客 戶端! 210!和服務(wù)器240可為file.txt的三個子文件執(zhí)行一系列RPC。在步驟320處,服務(wù)器 240可以向客戶端i 21(h發(fā)送返回。該返回可以是Return(fh)形式。Fh可以指文件句柄。因 此,fh可包括文件2、文件4和文件15的指針。
[0032] 在步驟325處,客戶端! 21(h可以向服務(wù)器240發(fā)送讀取。該讀取可以是Read(fh, arg)形式。Fh在上文進(jìn)行描述。Arg在上文進(jìn)行描述,并且可包括字節(jié)偏移和字節(jié)數(shù)。因此, 該讀取可以是Read [文件2,( 200; 4,000 )],其可指示服務(wù)器240在字節(jié)偏移為200且字節(jié)數(shù) 為4000時返回文件2。從API角度而言,該讀取可以與客戶端:21(h側(cè)和服務(wù)器240側(cè)的文件 讀取、VFS讀取,以及NFS讀取層操作關(guān)聯(lián)。VFS讀取可位于比文件讀取低的層,NFS讀取可位 于比VFS讀取低的層?;蛘?,文件讀取可位于最高層,VFS讀取可位于較低層,NFS讀取可位于 最低層。在步驟330處,服務(wù)器240可請求來自系統(tǒng)磁盤 2 2902的文件2。在步驟335處,系統(tǒng)磁 盤2 2902可向服務(wù)器240發(fā)送文件2。在步驟340處,服務(wù)器240可將文件2加載至其存儲器。在 步驟345處,服務(wù)器240可將文件 2返回給客戶端! 2l(h。在步驟350處,客戶端!可為文件4和文 件15啟動類似的讀取和返回過程,直至在步驟355處服務(wù)器240將文件 15返回給客戶端1<3 [0033]在步驟360處,客戶端! 210!可執(zhí)行連接操作,并且連接文件2、文件4和文件15來形 成file.txt。最后,在步驟365處,客戶端:21(h可結(jié)束應(yīng)用220。可以看出,連接操作需要客 戶端i 21〇dP服務(wù)器240之間重復(fù)的RPC。具體而言,文件2、文件4和文件15均要求一組讀取和 返回RPC,因此RPC總數(shù)為六。隨著所要求的數(shù)據(jù)大小增大,服務(wù)器240可以以更多文件發(fā)送 所請求的數(shù)據(jù),因此需要更多系列的RPC。多個系列的RPC可導(dǎo)致網(wǎng)絡(luò)230和DFS 200的開銷 巨大。
[0034]圖4為圖3所描述的連接操作的圖例。該圖例可包括DFS 200,其可包括含客戶端 210ι的前端410、網(wǎng)絡(luò)230,以及含服務(wù)器240、磁盤2 2902、磁盤4 2904和磁盤15 29015的后端 420。如圖所示,服務(wù)器240可從系統(tǒng)磁盤2 2902接收文件2 4302,從系統(tǒng)磁盤4 2904接收文 件4 4304,以及從系統(tǒng)磁盤15 29015接收文件15 43015。服務(wù)器240隨后可將文件2 4302、文件4 4304和文件15 43015返回給客戶端! 21(h??蛻舳?! 210!可執(zhí)行連接操作,并且連接文件2 4302、文件4 4304和文件15 43015來形成file, txt 450,這是客戶端! 21(h原先從服務(wù)器240 請求的完整文件。圖中還示出,連接操作440可發(fā)生在前端410而非后端420上。
[0035]圖5為根據(jù)本發(fā)明一實施例的圖2所描述的DFS 200執(zhí)行連接操作的消息序列圖。 在步驟505處,應(yīng)用220可在客戶端i 21(h上執(zhí)行。例如,與客戶端i 21(h關(guān)聯(lián)的用戶可以運 行應(yīng)用220,并且指示該應(yīng)用從服務(wù)器240上下載file.txt 450。因此,客戶端:21(h和服務(wù) 器240可以啟動一系列RPC。在步驟510處,客戶端! 21(h可以向服務(wù)器240發(fā)送連接-查找。該 連接-查找可以是Join-Lookup (pfh,arg)形式。Pfh在上文進(jìn)行描述。Arg在上文進(jìn)行描述, 并且可包括no_of_files、join_op_info、fname(no_of_files),以及條件參數(shù)。no_of_ files參數(shù)可以指待查找和連接的文件數(shù)量。例如,客戶端:21(h可請求file.txt 450和四 個其它文件的連接-查找。在此情況下,n〇_of_fileS參數(shù)可以為五。j 〇in_op_info參數(shù)可以 指連接操作的類型。例如,連接操作可以是內(nèi)、外、左,或右連接。fname(no_of_files)參數(shù) 可以指待查找和連接的文件數(shù)量。例如,fname(no_of_f i 1 es)參數(shù)可包括f i le . txt 450和 上述示例中其它四個文件的名稱。最后,條件參數(shù)可以指偏移或者其它相關(guān)信息。例如,條 件參數(shù)可以指定連接操作應(yīng)當(dāng)為等值或自然連接操作。Arg的形式可如下:
[0037]因此,連接-查找可以是Join-Lookup[pfh,( 1,*,f ile · txt,*)],其可指示服務(wù)器 240查找、連接并返回file.txt 450。*符號可指示剩余參數(shù)可以為任意合適的值。從API角 度而言,連接-查找可以與客戶端i 21(h側(cè)和服務(wù)器240側(cè)的File⑶pen、VFS連接-查找,以 及NFS連接-查找層操作關(guān)聯(lián),F(xiàn)ile COpen可以是一種改進(jìn)的文件打開。VFS連接-查找可位 于比File COpen低的層,NFS連接-查找可位于比VFS連接-查找低的層?;蛘?,F(xiàn)ile COpen可 位于最高層,VFS連接-查找可位于較低層,NFS連接-查找可位于最低層。
[0038] 在步驟515處,服務(wù)器240可經(jīng)由虛擬機監(jiān)控器260對沙盤270做分叉。分叉可以指 創(chuàng)建與文件系統(tǒng)對象關(guān)聯(lián)的字節(jié)流,在此情況下為沙盤270。在步驟520處,服務(wù)器240可在 沙盤270中部署連接操作。因此,沙盤270可以啟動請求和接收含file. txt 450的子文件。在 步驟525處,沙盤270可請求來自系統(tǒng)磁盤2 2902的文件2 4302。在步驟530處,系統(tǒng)磁盤2 2902可向沙盤270發(fā)送文件2 4302。在步驟535處,沙盤270可將文件2 4302加載至其存儲器。 在步驟540處,沙盤270可為文件4 4304和文件15 43015啟動類似的請求、發(fā)送和加載過程,直 至在步驟545處沙盤270將文件15 43015加載至其存儲器。
[0039] 在步驟550處,沙盤270可執(zhí)行連接操作,并且連接文件2 4302、文件4 4304和文件15 43015來形成file.txt 450。在步驟555處,沙盤270可將file.txt 450返回給客戶端! 21(h。 最后,在步驟560處,客戶端:21(h可結(jié)束應(yīng)用220??梢钥闯?,連接操作不需要客戶端i 21(h 和服務(wù)器240之間重復(fù)的RPC。但是,對于文件2 43〇2、文件4 43〇4和文件15 430i5,只存在一個 系列的連接-查找和返回RPC,因此RPC總數(shù)為二。
[0040]圖6為圖5所描述的連接操作的圖例。該圖例可包括DFS 200,其可包括含客戶端 210ι的前端410、網(wǎng)絡(luò)230,以及含服務(wù)器240、磁盤2 2902、磁盤4 2904和磁盤15 29015的后端 420。如圖所示,沙盤270可從系統(tǒng)磁盤2 2902接收文件2 4302,從系統(tǒng)磁盤4 2904接收文件4 4304,以及從系統(tǒng)磁盤15 29015接收文件15 43015。沙盤270可執(zhí)行連接操作610,并且連接文 件2 4302、文件4 4304和文件15 43015來形成file.txt 450,這是客戶端! 21(h原先從服務(wù)器 240請求的完整文件。沙盤270隨后可將file.txt 450返回給客戶端! 21(h。圖中還示出,連 接操作610可發(fā)生在后端420而非前端410上。
[0041]圖7為根據(jù)本發(fā)明一實施例的圖示執(zhí)行連接操作的方法700的流程圖。方法700可 在設(shè)備100、服務(wù)器240,或者任意其它合適的設(shè)備中實施。在步驟710處,可接收文件的連 接-查找RPC。該連接-查找RPC可請求與該文件關(guān)聯(lián)的子文件的連接操作。例如,服務(wù)器240 可接收來自任意客戶端210的連接-查找。該連接-查找RPC可為Join-Lookup (pfh, arg)形 式。步驟710可與圖5中的步驟510類似。在步驟720處,可響應(yīng)于該連接-查找RPC傳輸此文 件。例如,服務(wù)器240可將此文件發(fā)送給客戶端210中的任意一個。步驟720可與圖5中的步驟 555類似。
[0042]所公開技術(shù)可以適用于現(xiàn)有和未來的NFS以及其它DFS協(xié)議,不管這些協(xié)議是無狀 態(tài)的還是有狀態(tài)的。在此方面,所公開技術(shù)可以隨著適用協(xié)議而變化。此外,所公開技術(shù)可 適用于集群文件系統(tǒng),例如Hadoop分布式文件系統(tǒng)(Hadoop distributed file system, HDFS)和Google文件系統(tǒng)(Google File System,GFS)。最后,所公開技術(shù)可采用替代虛擬機 監(jiān)視器,例如Mirage,其在www · openmirage · org/中描述并且Mirage的全部內(nèi)容以引入的方 式并入本文本中。
[0043]本發(fā)明公開至少一項實施例,且所屬領(lǐng)域的普通技術(shù)人員對所述實施例和/或所 述實施例的特征作出的變化、組合和/或修改均在本發(fā)明公開的范圍內(nèi)。因組合、合并和/或 省略所述實施例的特征而得到的替代性實施例也在本發(fā)明的范圍內(nèi)。在明確說明數(shù)字范圍 或限制的情況下,此類表達(dá)范圍或限制應(yīng)被理解成包括在明確說明的范圍或限制內(nèi)具有相 同大小的迭代范圍或限制(例如,從約為1到約為10包括2、3、4等;大于0.10包括0.11、0.12、 0.13等)。例如,只要公開具有下限和上限R u的數(shù)字范圍,則明確公開了此范圍內(nèi)的任何數(shù) 字。具體而言,在所述范圍內(nèi)的以下數(shù)字是明確公開的:R=Ri+k*(Ru-R〇,其中k為從1%到 100%范圍內(nèi)以1%遞增的變量,BP,k為1%、2%、3%、4%、5%……50%,51%,52%…… 95%、96%、97%、98%、99%或100%。此外,由上文所定義的兩個數(shù)字R定義的任何數(shù)字范 圍也是明確公開的。除非另有說明,否則使用術(shù)語"約"是指隨后數(shù)字的±10%。相對于權(quán)利 要求的任一元素使用術(shù)語"選擇性地"意味著所述元素是需要的,或者所述元素是不需要 的,兩種替代方案均在所述權(quán)利要求的范圍內(nèi)。使用如"包括"、"包含"和"具有"等較廣術(shù)語 可被理解為提供對如"由……組成"、"基本上由……組成"以及"大體上由……組成"等較窄 術(shù)語的支持。因此,保護(hù)范圍不受上文所陳述的說明限制,而是由所附權(quán)利要求書界定,所 述范圍包含所附權(quán)利要求書的標(biāo)的物的所有等效物。每一和每條權(quán)利要求作為進(jìn)一步揭示 內(nèi)容并入說明書中,且所附權(quán)利要求書是本發(fā)明的實施例。對所述揭示內(nèi)容中的參考進(jìn)行 的論述并非承認(rèn)其為現(xiàn)有技術(shù),尤其是具有在本申請案的在先申請優(yōu)先權(quán)日期之后的公開 日期的任何參考。本發(fā)明中所引用的所有專利、專利申請案和公開案的揭示內(nèi)容特此以引 用的方式并入本文本中,其提供補充本發(fā)明的示例性、程序性或其它細(xì)節(jié)。
[0044]雖然本公開已提供了若干實施例,但應(yīng)理解,在不脫離本發(fā)明的精神或范圍的情 況下,本發(fā)明所公開的系統(tǒng)和方法可以許多其它具體形式來體現(xiàn)。本發(fā)明的示例應(yīng)被視為 說明性而非限制性的,且本發(fā)明并不限于本文本所給出的細(xì)節(jié)。例如,各種元件或組件可以 結(jié)合或集成到另一個系統(tǒng),或者某些特征可以省略或不實施。
[0045]此外,在不脫離本發(fā)明的范圍的情況下,各種實施例中描述和說明為離散或單獨 的技術(shù)、系統(tǒng)、子系統(tǒng)和方法可以與其它系統(tǒng)、模塊、技術(shù)或方法進(jìn)行組合或合并。示出或論 述為彼此耦合或直接耦合或通信的其它項也可以采用電方式、機械方式或其它方式通過某 一接口、設(shè)備或中間部件間接地耦合或通信。其它變化、替代和改變的示例可以由本領(lǐng)域的 技術(shù)人員在不脫離本文精神和所公開的范圍的情況下確定。
【主權(quán)項】
1. 一種設(shè)備,其特征在于,包括: 接收器,用于接收文件的連接-查找遠(yuǎn)程過程調(diào)用(remote procedural call,RPC),其 中所述連接-查找RPC請求與所述文件關(guān)聯(lián)的子文件的連接操作;以及 發(fā)射器,用于響應(yīng)于所述連接-查找RPC傳輸所述文件。2. 根據(jù)權(quán)利要求1所述的設(shè)備,其特征在于,所述設(shè)備為分布式文件系統(tǒng)(distributed file system,DFS)網(wǎng)絡(luò)連接存儲(network-attached storage,NAS)服務(wù)器,用于實施網(wǎng)絡(luò) 文件系統(tǒng)(Network File System,NFS)協(xié)議。3. 根據(jù)權(quán)利要求1或權(quán)利要求2所述的設(shè)備,其特征在于,還包括: 存儲器;以及 與所述存儲器的一部分關(guān)聯(lián)的沙盤,用于: 獲取所述子文件, 加載所述子文件,以及 執(zhí)行所述連接操作。4. 根據(jù)權(quán)利要求3所述的設(shè)備,其特征在于,還包括系統(tǒng)磁盤陣列,其中所述系統(tǒng)磁盤 陣列包括系統(tǒng)磁盤,所述系統(tǒng)磁盤包括所述子文件,所述沙盤還用于從所述系統(tǒng)磁盤中獲 取所述子文件。5. 根據(jù)權(quán)利要求3所述的設(shè)備,其特征在于,還包括虛擬機監(jiān)控器,用于創(chuàng)建并運行所 述沙盤。6. 根據(jù)權(quán)利要求3或權(quán)利要求5所述的設(shè)備,其特征在于,所述沙盤為75千字節(jié)(kB)或 更小。7. 根據(jù)權(quán)利要求1至6中任一權(quán)利要求所述的設(shè)備,其特征在于,所述連接-查找RPC包 括參數(shù),所述參數(shù)包括指待查找和連接的文件數(shù)量的參數(shù),指待執(zhí)行的連接操作的類型的 參數(shù),指待查找和連接的所述文件的名稱的參數(shù),以及指偏移或其它相關(guān)信息的參數(shù)。8. 根據(jù)權(quán)利要求7所述的設(shè)備,其特征在于,所述連接-查找RPC為Join-Lookup(pfh, arg)形式,pfh指父文件句柄,arg指所述參數(shù)。9. 根據(jù)權(quán)利要求7所述的設(shè)備,其特征在于,所述參數(shù)形式如下: Struct join_arg { Int no_ot^files; String join_op_info; String fnam(no of files); Int condition; }·10. -種分布式文件系統(tǒng)(distributed file system,DFS)客戶端,其特征在于,包括: 發(fā)射器,用于傳輸文件的連接-查找遠(yuǎn)程過程調(diào)用(remote procedural call,RPC),其 中所述連接-查找RPC請求與所述文件關(guān)聯(lián)的子文件的連接操作;以及 接收器,用于響應(yīng)于所述連接-查找RPC接收所述文件。11. 根據(jù)權(quán)利要求10所述的DFS客戶端,其特征在于,還包括: 存儲器; 耦合至所述存儲器的處理器;以及 所述存儲器上存儲的應(yīng)用,由所述處理器執(zhí)行,用于實施網(wǎng)絡(luò)文件系統(tǒng)(Network File System,NFS)協(xié)議。12. 根據(jù)權(quán)利要求11所述的DFS客戶端,其特征在于,還包括與所述應(yīng)用關(guān)聯(lián)的應(yīng)用編 程接口(application programming interface,API),其中所述API包括所述連接-查找RPC 的語義。13. 根據(jù)權(quán)利要求12所述的DFS客戶端,其特征在于,所述連接-查找RPC與改進(jìn)的文件 打開層操作、虛擬文件系統(tǒng)(virtual file system,VFS)連接-查找層操作,以及NFS連接-查找層操作關(guān)聯(lián),所述VFS連接-查找層操作位于比所述改進(jìn)的文件打開層操作低的層,所 述NFS連接-查找層操作位于比所述VFS連接-查找層操作低的層。14. 根據(jù)權(quán)利要求10所述的DFS客戶端,其特征在于,所述連接-查找RPC包括參數(shù),所述 參數(shù)包括指待查找和連接的文件數(shù)量的參數(shù),指待執(zhí)行的連接操作的類型的參數(shù),指待查 找和連接的所述文件的名稱的參數(shù),以及指偏移或其它相關(guān)信息的參數(shù)。15. -種方法,其特征在于,包括: 接收文件的連接-查找遠(yuǎn)程過程調(diào)用(remote procedural call,RPC),其中所述連接-查找RPC請求與所述文件關(guān)聯(lián)的子文件的連接操作;以及 響應(yīng)于所述連接-查找RPC傳輸所述文件。16. 根據(jù)權(quán)利要求15所述的方法,其特征在于,還包括: 創(chuàng)建沙盤; 所述沙盤獲取所述子文件; 將所述子文件加載至所述沙盤;以及 在所述沙盤中執(zhí)行所述連接操作。17. 根據(jù)權(quán)利要求16所述的方法,其特征在于,所述沙盤為75千字節(jié)(kB)或更小。18. 根據(jù)權(quán)利要求15至17中任一權(quán)利要求所述的方法,其特征在于,所述連接-查找RPC 包括參數(shù),所述參數(shù)包括指待查找和連接的文件數(shù)量的參數(shù),指待執(zhí)行的連接操作的類型 的參數(shù),指待查找和連接的所述文件的名稱的參數(shù),以及指偏移或其它相關(guān)信息的參數(shù)。19. 根據(jù)權(quán)利要求18所述的方法,其特征在于,所述連接-查找RPC為Join-Lookup(pfh, arg)形式,pfh指父文件句柄,arg指所述參數(shù)。20. 根據(jù)權(quán)利要求18所述的方法,其特征在于,所述參數(shù)形式如下: Struct jom_arg { Int no-of_files; String join_op_info; String fham(no_of_files); Int condition; }·:21. -種方法,其特征在于,包括: 傳輸文件的連接-查找遠(yuǎn)程過程調(diào)用(remote procedural call,RPC),其中所述連接-查找RPC請求與所述文件關(guān)聯(lián)的子文件的連接操作;以及 響應(yīng)于所述連接-查找RPC接收所述文件。22. 根據(jù)權(quán)利要求21所述的方法,其特征在于,所述連接-查找RPC與改進(jìn)的文件打開層 操作、虛擬文件系統(tǒng)(virtual file system,VFS)連接-查找層操作,以及NFS連接-查找層 操作關(guān)聯(lián),所述VFS連接-查找層操作位于比所述改進(jìn)的文件打開層操作低的層,所述NFS連 接-查找層操作位于比所述VFS連接-查找層操作低的層。23. 根據(jù)權(quán)利要求21所述的方法,其特征在于,所述連接-查找RPC包括參數(shù),所述參數(shù) 包括指待查找和連接的文件數(shù)量的參數(shù),指待執(zhí)行的連接操作的類型的參數(shù),指待查找和 連接的所述文件的名稱的參數(shù),以及指偏移或其它相關(guān)信息的參數(shù)。
【文檔編號】G06F17/30GK106030575SQ201580009898
【公開日】2016年10月12日
【申請日】2015年2月15日
【發(fā)明人】維尼特·查德哈, 施廣宇
【申請人】華為技術(shù)有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1