本發(fā)明涉及通信領域,尤其涉及一種掛載文件系統(tǒng)的方法、裝置及設備。
背景技術:
網(wǎng)絡存儲基于標準網(wǎng)絡協(xié)議實現(xiàn)數(shù)據(jù)傳輸,為網(wǎng)絡中的Windows/Linux/Mac OS等各種不同操作系統(tǒng)的客戶端提供文件共享和數(shù)據(jù)備份。多個客戶端通過連接同一存儲系統(tǒng)(即網(wǎng)絡存儲)從而實現(xiàn)不同客戶端的不同業(yè)務需求。比如基本的讀取存儲系統(tǒng)中的文件,或者往存儲系統(tǒng)中寫入文件等。由于存儲系統(tǒng)對存儲容量的要求較大,所以存儲系統(tǒng)一般由多個存儲節(jié)點組成。
客戶端在訪問存儲系統(tǒng)中的多個文件時,單個客戶端就需要很高的穩(wěn)定帶寬(通常>2GB/s)。但是,隨著人們的需求越來越高,越來越多的業(yè)務需要更高更穩(wěn)定的帶寬才能夠?qū)崿F(xiàn),比如視頻制作、高性能計算機群(英文全稱:High Performance Computing,英文縮寫:HPC)等的業(yè)務。而在現(xiàn)有技術中,基于標準NFS協(xié)議,單個客戶端只能與存儲系統(tǒng)的單個存儲節(jié)點建立連接。當存儲系統(tǒng)中的單個存儲節(jié)點穩(wěn)點帶寬不能滿足單臺工作站需求時,則會影響業(yè)務正常運行,比如視頻業(yè)務,可能會出現(xiàn)卡頓情況。因此,如現(xiàn)有的連接機制中,單個客戶端在運行高帶寬要求的業(yè)務時,由于單節(jié)點帶寬不穩(wěn)定,提供的帶寬不足,使得客戶端與存儲系統(tǒng)之間的傳輸速率較低,從而導致這類業(yè)務的正常運行。
技術實現(xiàn)要素:
本申請?zhí)峁┝艘环N掛載文件系統(tǒng)的方法、裝置及設備,用于提高客戶端與存儲系統(tǒng)之間的傳輸速率,提高了高帶寬要求業(yè)務的運行穩(wěn)定性。
本申請第一方面提供一種掛載文件系統(tǒng)的方法,該文件系統(tǒng)用于管理存儲系統(tǒng)中存儲的文件,該方法包括:
該存儲系統(tǒng)包括多個存儲節(jié)點,客戶端從存儲系統(tǒng)中選擇多個存儲節(jié)點作為目標存儲節(jié)點,該目標存儲節(jié)點為客戶端需要建立通信連接的存儲節(jié)點,客戶端獲取多個目標存儲節(jié)點的標識,該標識可以為存儲節(jié)點的唯一識別標識,比如網(wǎng)絡互連協(xié)議(英文全稱:Internet Protocol,英文縮寫:簡稱IP)地址,或者存儲節(jié)點的序號,或者存儲節(jié)點的節(jié)點名稱等,客戶端根據(jù)多個目標存儲節(jié)點的標識,與多個目標存儲節(jié)點建立多個通信連接,客戶端再使用該多個通信連接掛載文件系統(tǒng),創(chuàng)建掛載點。
客戶端獲取多個目標存儲節(jié)點的標識,客戶端根據(jù)多個目標存儲節(jié)點的標識,建立與多個目標存儲節(jié)點的多個通信連接,客戶端使用多個通信連接掛載文件系統(tǒng)。這樣,單個客戶端所建立的掛載點中,使用了與多個存儲節(jié)點所建立的多條通信連接,使得客戶端能夠并行訪問多個存儲節(jié)點,從而提高客戶端與存儲系統(tǒng)之間的傳輸速率,同時也提高了高帶寬要求業(yè)務的運行穩(wěn)定性。
在一種可能的實現(xiàn)方式中,在客戶端獲取多個目標存儲節(jié)點的標識之前,該方法還可以包括:
客戶端從存儲系統(tǒng)包括的存儲節(jié)點中,確定存儲有目標文件中任一數(shù)據(jù)塊的存儲節(jié)點作為所述目標存儲節(jié)點。
在存儲系統(tǒng)中,單個存儲節(jié)點一般只存儲有文件的數(shù)據(jù)塊,在該實現(xiàn)方式中,客戶端優(yōu)先選擇建立連接的存儲節(jié)點存儲有該客戶端需要獲取的目標文件的數(shù)據(jù)塊,比如存儲節(jié)點包括第一節(jié)點、第二節(jié)點以及第三節(jié)點,目標文件被分為兩部分數(shù)據(jù)塊分別存儲于第一節(jié)點與第二節(jié)點中。而客戶端在與存儲節(jié)點建立通信連接之前,優(yōu)先選擇存儲有目標文件數(shù)據(jù)塊的第一節(jié)點與第二節(jié)點,從而使得客戶端在獲取目標文件時能夠直接從第一節(jié)點與第二節(jié)點中獲取目標文件,減少了客戶端所連接的存儲節(jié)點從其它存儲節(jié)點獲取目標文件數(shù)據(jù)塊的時間,從而提高了客戶端與存儲系統(tǒng)之間的數(shù)據(jù)傳輸效率。
在另一種可能的實現(xiàn)方式中,客戶端根據(jù)多個目標存儲節(jié)點的標識,建立與多個目標存儲節(jié)點的多個通信連接具體可以為:
客戶端根據(jù)目標存儲節(jié)點的標識,從連接索引庫中確定多個目標存儲節(jié)點的連接索引,客戶端根據(jù)多個目標存儲節(jié)點的連接索引,建立與多個目標存儲節(jié)點的多個通信連接。
在該實現(xiàn)方式中,客戶端保存有一個連接索引庫,該連接索引庫中保存有每個存儲節(jié)點與該客戶端首次建立通信連接時所使用的連接索引。以便下次客戶端再需要與該存儲節(jié)點建立通信連接時,只需將客戶端所獲取到的目標存儲節(jié)點的標識與連接索引庫的存儲節(jié)點的標識進行匹配,則能找到所對應的連接索引,從而建立通信連接。無需客戶端再與存儲節(jié)點進行發(fā)送遠程調(diào)用請求和返回入口句柄等一系列建立通信連接的準備操作,提高了客戶端與存儲節(jié)點建立通信連接的效率。
在另一種可能的實現(xiàn)方式中,該方法還可以包括:
在客戶端掛載所述文件系統(tǒng)后,客戶端從多個通信連接中確定至少一個通信連接,客戶端基于至少一個通信連接訪問所對應的目標存儲節(jié)點來獲取至少一個目標文件。
若客戶端與存儲系統(tǒng)之間以文件為粒度進行傳輸,那么客戶端在同時獲取多個目標文件時,則可以通過多個通信連接并行訪問多個目標存儲節(jié)點來獲取多個目標文件。比如客戶端可以并行訪問三個存儲節(jié)點從而獲取三個目標文件,這樣,提高了客戶端的業(yè)務運行速率。
本申請第二方面提供一種掛載文件系統(tǒng)的裝置,該文件系統(tǒng)用于管理存儲系統(tǒng)中存儲的文件,該裝置可以通過軟件實現(xiàn),也可以通過軟硬結(jié)合的方式實現(xiàn),在一種實現(xiàn)方式中,該裝置包括:
獲取單元,用于獲取多個目標存儲節(jié)點的標識,存儲系統(tǒng)包括多個存儲節(jié)點,該標識可以為存儲節(jié)點的唯一識別標識,比如IP地址,或者存儲節(jié)點的序號,或者存儲節(jié)點的節(jié)點名稱等;
連接單元,用于根據(jù)多個目標存儲節(jié)點的標識,建立與多個目標存儲節(jié)點的多個通信連接;
掛載單元,用于使用多個通信連接掛載文件系統(tǒng)。
在另一種實現(xiàn)方式中,該裝置包括:收發(fā)器、存儲器以及處理器,收發(fā)器、存儲器以及處理器通過總線連接,存儲器內(nèi)存儲有計算機指令,處理器通過執(zhí)行存儲器內(nèi)的計算機指令實現(xiàn)如上述第一方面所提供的掛載文件系統(tǒng)的方法。
第三方面提供一種設備,該設備括至少一個處理器、存儲器和通信接口。所述至少一個處理器、所述存儲器和所述通信接口均通過總線連接;所述存儲器存儲計算機執(zhí)行指令;所述至少一個處理器執(zhí)行所述存儲器存儲的計算機執(zhí)行指令,使得所述設備通過所述通信接口與存儲系統(tǒng)進行數(shù)據(jù)交互來執(zhí)行上述第一方面或者第一方面的各種可能設計提供的掛載文件系統(tǒng)的方法,或者使得所述設備通過所述通信接口與存儲系統(tǒng)進行數(shù)據(jù)交互來實現(xiàn)第二方面中的掛載文件系統(tǒng)的裝置。
本申請第四方面提供一種計算機可讀存儲介質(zhì),計算機可讀存儲介質(zhì)中存儲有計算機執(zhí)行指令,當設備的至少一個處理器執(zhí)行該計算機執(zhí)行指令時,設備執(zhí)行上述第一方面或者第一方面的各種可能設計提供的掛載文件系統(tǒng)的方法。
本申請第五方面提供一種計算機程序產(chǎn)品,該計算機程序產(chǎn)品包括計算機執(zhí)行指令,該計算機執(zhí)行指令存儲在計算機可讀存儲介質(zhì)中。設備的至少一個處理器可以從計算機可讀存儲介質(zhì)讀取該計算機執(zhí)行指令,至少一個處理器執(zhí)行該計算機執(zhí)行指令使得設備實施上述第一方面或者第一方面的各種可能設計提供的掛載文件系統(tǒng)的方法。
附圖說明
圖1為發(fā)明實施例中掛載文件系統(tǒng)的一個系統(tǒng)架構(gòu)示意圖;
圖2為本發(fā)明實施例中掛載文件系統(tǒng)的方法的一個示意圖;
圖3為本發(fā)明實施例中掛載文件系統(tǒng)的裝置的一個示意圖;
圖4為本發(fā)明實施例中設備的一個示意圖。
具體實施方式
本發(fā)明實施例提供了一種掛載文件系統(tǒng)的方法、裝置及設備,用于提高客戶端與存儲系統(tǒng)之間的傳輸速率,提高了高帶寬要求業(yè)務的運行穩(wěn)定性。
參照圖1所示,圖1為本發(fā)明實施例中掛載文件系統(tǒng)的一個系統(tǒng)架構(gòu)示意圖。在該系統(tǒng)架構(gòu)中,包括客戶端,存儲系統(tǒng)。其中,存儲系統(tǒng)由多個存儲節(jié)點組成,多個存儲節(jié)點通過光纖連接交換機,該交換機通過光纖連接該客戶端,從而實現(xiàn)多個存儲節(jié)點與客戶端的互聯(lián)。其中,光纖可以為10千兆以太網(wǎng)(英文全稱:Gigabit Ethernet,英文縮寫:GE)光纖線,交換機可以為10GE的高速率傳輸交換機。存儲節(jié)點中存儲有客戶端需要獲取的目標文件的整個文件或者文件的數(shù)據(jù)塊,多個存儲節(jié)點之間能夠進行數(shù)據(jù)互傳,客戶端可以通過訪問某一個存儲節(jié)點來獲取存儲于該存儲節(jié)點或者不存儲于該存儲節(jié)點上的目標文件。當客戶端需要獲取的目標文件不存儲于該存儲節(jié)點時,該存儲節(jié)點通過該目標文件的標識遍歷整個存儲系統(tǒng)中的其它存儲節(jié)點,從而從其它存儲節(jié)點中獲取該目標文件的數(shù)據(jù)。單個客戶端還可以通過本發(fā)明提供的掛載文件的方法與該存儲系統(tǒng)中的多個存儲節(jié)點建立通信連接,從而實現(xiàn)并行訪問多個存儲節(jié)點來獲取目標文件,提高客戶端與存儲系統(tǒng)之間的數(shù)據(jù)傳輸速率。
需要說明的是,該客戶端可以為個人計算機(英文全稱:Personal Computer,英文縮寫:PC)或者服務器等具有計算能力的設備;具體地,該設備上運行可以訪問存儲系統(tǒng)的客戶端程序來使得該設備成為客戶端。存儲系統(tǒng)可以為網(wǎng)絡附屬存儲(英文全稱:Network Attached Storage,英文縮寫:NAS)、開放系統(tǒng)的直連式存儲(英文全稱:Direct Access Storage英文縮寫:DAS),存儲區(qū)域網(wǎng)絡(英文全稱:Storage Area Network,英文縮寫:SAN)等。存儲節(jié)點的硬件介質(zhì)可同構(gòu)或異構(gòu)。為了便于闡述,本發(fā)明實施例以NAS存儲為例進行說明,該舉例并非對本發(fā)明方案的限定。
參照圖2所示,圖2為本發(fā)明實施例中掛載文件系統(tǒng)的方法的一個實施例,其中,所述文件系統(tǒng)用于管理存儲系統(tǒng)中存儲的文件,該方法具體為:
101、客戶端獲取多個目標存儲節(jié)點的標識,所述存儲系統(tǒng)包括多個存儲節(jié)點。
為了提高客戶端與存儲系統(tǒng)之間的數(shù)據(jù)傳輸速率,在本發(fā)明實施例中,客戶端需要與存儲系統(tǒng)中的多個存儲節(jié)點建立多個通信連接。而在建立通信連接之前,客戶端需要獲取多個目標存儲節(jié)點的標識,該標識可以為存儲節(jié)點的IP地址。具體的,客戶端獲取存儲節(jié)點的IP地址可以為:客戶端先向域名系統(tǒng)(英文全稱:Domain Name System,英文縮寫:DNS)服務器發(fā)起存儲系統(tǒng)發(fā)起浮動IP查詢,該浮動IP為可以跟多個物理IP進行匹配的虛擬IP,其中,每一個浮動IP對應一個存儲節(jié)點。DNS服務器返回包含存儲系統(tǒng)中浮動IP地址的列表。需要說明的是,目標存儲節(jié)點的標識可以為存儲節(jié)點的唯一識別標識,并不僅限于IP地址,還可以使存儲節(jié)點的序號,或者存儲節(jié)點的節(jié)點名稱等。DNS服務器屬于該存儲系統(tǒng),負責該存儲系統(tǒng)的域名解析。
可選的,客戶端可以獲取存儲系統(tǒng)中的所有存儲節(jié)點的標識,與所有存儲節(jié)點均建立通信連接?;蛘撸蛻舳艘部梢垣@取存儲系統(tǒng)中的部分存儲節(jié)點的標識,與部分存儲節(jié)點建立通信連接。在與部分存儲節(jié)點建立通信連接的方式中,客戶端可以根據(jù)所有存儲節(jié)點的連接負載情況進行選擇,優(yōu)先選擇連接負載較少的存儲節(jié)點,并與之建立通信連接。
在另一種可能的實現(xiàn)方式中,客戶端還可以通過待獲取的目標文件所在的位置來選擇存儲節(jié)點。具體為,客戶端先從存儲系統(tǒng)包括的存儲節(jié)點中,確定存儲有目標文件中任一數(shù)據(jù)塊的存儲節(jié)點作為目標存儲節(jié)點。在存儲系統(tǒng)中,單個存儲節(jié)點一般只存儲有文件的數(shù)據(jù)塊,極少存儲有整個文件,因此,當客戶端需要獲取某個完整的目標文件時,則需要該客戶端所連接的存儲節(jié)點從其它存儲節(jié)點中獲取該目標文件的其它數(shù)據(jù)塊,從而使得客戶端從所連接的存儲節(jié)點獲取該整個目標文件。因此,在該實現(xiàn)方式中,客戶端優(yōu)先選擇建立連接的存儲節(jié)點存儲有該客戶端需要獲取的目標文件的數(shù)據(jù)塊,比如存儲節(jié)點包括第一節(jié)點、第二節(jié)點以及第三節(jié)點,目標文件被分為兩部分數(shù)據(jù)塊分別存儲于第一節(jié)點與第二節(jié)點中。而客戶端在與存儲節(jié)點建立通信連接之前,優(yōu)先選擇存儲有目標文件數(shù)據(jù)塊的第一節(jié)點與第二節(jié)點,從而使得客戶端在獲取目標文件時能夠直接從第一節(jié)點與第二節(jié)點中獲取目標文件,減少了客戶端所連接的存儲節(jié)點從其它存儲節(jié)點獲取目標文件數(shù)據(jù)塊的時間,從而提高了客戶端與存儲系統(tǒng)之間的數(shù)據(jù)傳輸效率。
102、客戶端根據(jù)所述多個目標存儲節(jié)點的標識,建立與所述多個目標存儲節(jié)點的多個通信連接。
客戶端在獲取了多個目標存儲節(jié)點的標識后,即上述的目標存儲節(jié)點的浮動IP地址后,客戶端則能夠與多個目標存儲節(jié)點建立通信連接,具體建立通信連接的方式為:客戶端根據(jù)浮動IP地址的列表向任意一個浮動IP(比如第一個)所對應的存儲節(jié)點請求掛載連接,例如請求的方式可以是發(fā)送文件系統(tǒng)掛載的遠程調(diào)用請求,例如MOUNT RPC調(diào)用請求;第一個浮動IP所對應的存儲節(jié)點則會通過掛載模塊(例如mountd模塊)返回文件系統(tǒng)根目錄的入口句柄,例如ROOT FILEHANDLE;客戶端遍歷浮動IP地址列表,分別與多個對應的存儲節(jié)點的網(wǎng)絡文件系統(tǒng)(英文全稱:Network File System,英文縮寫:NFS)服務模塊(例如NFS Server)建立通信連接。該通信連接可以為套接字(Socket)連接,客戶端在建立的所有Socket連接后,還可以將所有Socket連接的連接狀態(tài)進行存儲,每個存儲節(jié)點的Socket連接狀態(tài)包括該存儲節(jié)點的Socket連接狀態(tài)為正常或異常、以及該存儲節(jié)點的Socket連接的負載情況等信息。在客戶端與多個目標存儲節(jié)點建立通信連接,即Socket連接后,則可以進行實例化,使用該多個通信連接掛載文件系統(tǒng)。
在上述建立通信連接的方式中,客戶端為通過所獲取到的多個存儲節(jié)點的浮動IP地址,實時獲取該多個存儲節(jié)點的入口句柄,從而建立通信連接。而在另一種實現(xiàn)方式中,客戶端在確定了多個目標存儲節(jié)點的浮動IP地址后,還可以從預先存儲的連接索引庫中確定該多個目標存儲節(jié)點的連接索引,再根據(jù)該多個連接索引與多個存儲節(jié)點建立通信連接。
由于每個存儲節(jié)點的入口句柄以及浮動IP地址一般是不會更改的,因此客戶端在首次獲取到存儲節(jié)點的入口句柄以及該存儲節(jié)點的浮動IP地址后,則將與該客戶端建立通信連接,并將該通信連接的連接索引,即入口句柄以及該存儲節(jié)點的浮動IP地址保存到連接索引庫中,以便下次客戶端再需要與該存儲節(jié)點建立通信連接時,只需將客戶端所獲取到的浮動IP地址與連接索引庫中的IP地址進行匹配,則能找到所對應的連接索引,從而建立通信連接。無需客戶端再與存儲節(jié)點進行發(fā)送遠程調(diào)用請求和返回入口句柄等一系列建立通信連接的準備操作,提高了客戶端與存儲節(jié)點建立通信連接的效率。需要說明的是,若客戶端當前所需要連接的存儲節(jié)點為第一次連接,那么在連接索引庫中則沒有保存該存儲節(jié)點的連接索引,從而客戶端需要通過上述實時建立通信連接的步驟與該存儲節(jié)點建立通信連接,在建立通信連接后,將該存儲節(jié)點的連接索引保存于該連接索引庫中。
103、客戶端使用所述多個通信連接掛載文件系統(tǒng)。
客戶端在于多個目標存儲節(jié)點建立通信連接后,則能夠進行實例化本地掛載點,即創(chuàng)建好文件系統(tǒng)本地掛載點。掛載點實際上就是Linux操作系統(tǒng)中的磁盤文件系統(tǒng)的入口目錄,類似于Windows操作系統(tǒng)中的用來訪問不同分區(qū)的C:、D:、E:等盤符??蛻舳嗽趯嵗瘨燧d點后,則可以訪問所連接的存儲節(jié)點,從而獲取目標文件。
本發(fā)明實施例中,客戶端獲取多個目標存儲節(jié)點的標識,所述存儲系統(tǒng)包括所述多個存儲節(jié)點,客戶端根據(jù)所述多個目標存儲節(jié)點的標識,建立與所述多個目標存儲節(jié)點的多個通信連接,客戶端使用所述多個通信連接掛載文件系統(tǒng)。這樣,單個客戶端所建立的掛載點中,使用了與多個存儲節(jié)點所建立的多條通信連接,使得客戶端能夠并行訪問多個存儲節(jié)點,從而提高客戶端與存儲系統(tǒng)之間的傳輸速率,同時也提高了高帶寬要求業(yè)務的運行穩(wěn)定性。
結(jié)合圖2實施例,在一個可選實施例中,該掛載文件系統(tǒng)的方法還包括:
在客戶端掛載所述文件系統(tǒng)后,客戶端從所述多個通信連接中確定至少一個通信連接;
客戶端基于所述至少一個通信連接訪問所對應的目標存儲節(jié)點來獲取至少一個目標文件。
當客戶端與多個存儲節(jié)點建立多個通信連接,并通過這些多個通信連接掛載文件系統(tǒng)之后,客戶端則能夠根據(jù)這些通信連接訪問多個存儲節(jié)點,從而獲取存儲節(jié)點中的目標文件??蛇x的,客戶端可以從多個通信連接中選擇一條或多條通信連接,從而訪問一個或多個存儲節(jié)點,進而獲取一個或多個目標文件。客戶端獲取目標文件的方式可以通過按文件為粒度進行傳輸,也可以是以目標文件存儲于存儲節(jié)點的數(shù)據(jù)塊為粒度進行傳輸。比如,客戶端可以選擇一條通信連接訪問一個存儲節(jié)點,若該存儲節(jié)點只存儲有目標文件的一部分數(shù)據(jù)塊或未存儲有目標文件的數(shù)據(jù)塊,則該存儲節(jié)點則根據(jù)目標文件的標識,比如文件名從搜索其它存儲節(jié)點,從而獲取該目標文件的所有數(shù)據(jù)塊,從而將該整個目標文件的所有數(shù)據(jù)塊發(fā)送給客戶端?;蛘?,多個存儲節(jié)點中分別存儲有目標文件的不同的數(shù)據(jù)塊,那么客戶端可以使用多個通信連接同時訪問多個存儲節(jié)點,從不同的存儲節(jié)點獲取到目標文件的不同數(shù)據(jù)塊,客戶端再重新整合不同的數(shù)據(jù)塊,從而生成完整的目標文件。
可選的,客戶端還可以基于所述多個通信連接并行訪問所對應的目標存儲節(jié)點來獲取多個目標文件。
若客戶端與存儲系統(tǒng)之間以文件為粒度進行傳輸,那么客戶端在同時獲取多個目標文件時,則可以通過多個通信連接并行訪問多個目標存儲節(jié)點來獲取多個目標文件。比如客戶端可以并行訪問三個存儲節(jié)點從而獲取三個目標文件??蛻舳双@取目標文件可以包括客戶端對目標文件進行讀操作或者寫操作等業(yè)務操作。
可選的,上述客戶端從所述多個通信連接中確定所述至少一個通信連接,具體可以為:
客戶端從所述多個通信連接中確定通信負載小的至少一個通信連接。
上述實施例中說明了客戶端在存儲節(jié)點建立通信連接后,則存儲了存儲節(jié)點的連接狀態(tài),該連接狀態(tài)中包含了存儲節(jié)點的負載情況?;谪撦d均衡原則,客戶端在選擇存儲節(jié)點進行數(shù)據(jù)傳輸時,可以優(yōu)先選擇當前通信負載教小的通信連接的存儲節(jié)點進行數(shù)據(jù)傳輸。具體可以為:客戶端從所述多個目標存儲節(jié)點中,確定通信連接數(shù)少的第一存儲節(jié)點,再從所述多個通信連接中,確定與所述第一存儲節(jié)點的通信連接作為通信負載小的通信連接。
需要說明的是,當客戶端需要使用兩個以上的通信連接訪問兩個以上的存儲節(jié)點時,那么客戶端所選擇的兩個以上的通信連接均為通信負載小的通信連接。
可選的,當目標文件為至少兩個時,客戶端還可以先獲取所述至少兩個目標文件中每個文件的大小信息;
客戶端根據(jù)與存儲系統(tǒng)的傳輸速率計算出所述每個文件傳輸所消耗的時間;
客戶端根據(jù)所述每個文件傳輸所消耗的時間以文件為粒度計算出平均所述每個存儲節(jié)點需傳輸?shù)奈募?shù)目;
所述客戶端通過所述文件數(shù)目并行訪問多個存儲節(jié)點來獲取所述至少兩個目標文件。
比如客戶端需要獲取的目標文件為4個,客戶端選擇兩個通信連接進行該4個文件的傳輸。客戶端首先向存儲系統(tǒng)發(fā)送該4個文件的讀請求,存儲系統(tǒng)則會根據(jù)該4個文件的文件標識獲取到該4個文件的每個文件的大小信息,其中若第一個文件為10G,第二個文件為1G,第三個文件為3G,第四個文件為2G,那么按照以文件為粒度傳輸?shù)姆绞?,通過兩個連接進行傳輸,若每條通信連接的傳輸速率均為1G/s,那么傳輸?shù)谝粋€文件需要花費10s,傳輸?shù)诙€文件需要花費1s,傳輸?shù)谌齻€文件需要花費3s,傳輸?shù)谒膫€文件需要花費2s。那么按照均衡的原則,可以通過一個通信線路來傳輸?shù)谝粋€文件,而另一條通信鏈路來傳輸另外三個文件。又或者,第四個文件的大小為8G,那么4個文件的總大小為22G,通過兩條通信線路來傳輸,平均每條通信線路則可以傳輸兩個文件,分別是第一個文件與第二個文件在一條通信線路上進行傳輸,第二個文件與第三個文件在另一條通信線路上進行傳輸。這樣,使得客戶端與存儲系統(tǒng)之間進行數(shù)據(jù)傳輸?shù)臄?shù)據(jù)大小負載更為均衡,提高了客戶端與存儲系統(tǒng)之間的傳輸效率。
可選的,為了提高XNFS多連接的安全性,以存儲系統(tǒng)為NAS存儲為例,還可以將NAS存儲中的統(tǒng)一認證模塊移植到客戶端中,客戶端和NAS存儲分別固化一對相同的賬戶及密碼,加密保存,然后客戶端作為認證客戶端,NAS存儲作為認證服務端,使用上述統(tǒng)一認證機制完成雙向認證,在雙向認證通過后才能進行文件系統(tǒng)掛載和文件訪問。
參照圖3所示,本發(fā)明實施例中掛載文件系統(tǒng)的裝置的一個實施例包括:
獲取單元201,用于獲取多個目標存儲節(jié)點的標識,所述存儲系統(tǒng)包括多個存儲節(jié)點;
連接單元202,用于根據(jù)所述多個目標存儲節(jié)點的標識,建立與所述多個目標存儲節(jié)點的多個通信連接;
掛載單元203,用于使用所述多個通信連接掛載文件系統(tǒng)。
可選的,所述裝置包括:
確定單元204,用于在所述獲取單元獲取多個目標存儲節(jié)點的標識之前,從所述存儲系統(tǒng)包括的存儲節(jié)點中,確定存儲有目標文件中任一數(shù)據(jù)塊的存儲節(jié)點作為所述目標存儲節(jié)點。
可選的,所述連接單元202具體用于:
根據(jù)所述目標存儲節(jié)點的標識,從連接索引庫中確定所述多個目標存儲節(jié)點的連接索引;
根據(jù)所述多個目標存儲節(jié)點的連接索引,建立與所述多個目標存儲節(jié)點的多個通信連接。
可選的,所述確定單元204還用于,在所述掛載單元203掛載所述文件系統(tǒng)后,從所述多個通信連接中確定至少一個通信連接;
所述獲取單元201還用于,基于所述至少一個通信連接訪問所對應的目標存儲節(jié)點來獲取至少一個目標文件。
可選的,所述確定單元204具體用于:
從所述多個通信連接中確定通信負載小的至少一個通信連接。
可選的,所述確定單元204具體用于:
從所述多個目標存儲節(jié)點中,確定通信連接數(shù)少的第一存儲節(jié)點;
從所述多個通信連接中,確定與所述第一存儲節(jié)點的通信連接作為通信負載小的通信連接。
可選的,所述獲取單元201還用于:
在掛載所述文件系統(tǒng)后,基于所述多個通信連接并行訪問所對應的目標存儲節(jié)點來獲取多個目標文件。
關于圖3實施例中各個單元的具體描述可以參照圖2實施例以及圖2的可選實施例中所提供的掛載文件系統(tǒng)的方法的詳細描述,此處不做贅述。
本發(fā)明實施例還提供一種存儲系統(tǒng),所述存儲系統(tǒng)為上述實施例中描述的存儲系統(tǒng),用于與客戶端配合來實現(xiàn)上述的掛載文件系統(tǒng)的方法。
本發(fā)明實施例還提供一種存儲節(jié)點,該存儲節(jié)點屬于上述實施例中描述的存儲系統(tǒng),該存儲節(jié)點為上述實施例中描述的存儲節(jié)點,該存儲節(jié)點用于與客戶端配合來實現(xiàn)上述的掛載文件系統(tǒng)的方法。
參見圖4所示,本發(fā)明實施例還提供了一種設備300,設備300包括至少一個處理器301、存儲器302和通信接口303;所述至少一個處理器301、所述存儲器302和所述通信接口303均通過總線304連接;
所述存儲器302,用于存儲計算機執(zhí)行指令;
所述至少一個處理器301,用于執(zhí)行所述存儲器302存儲的計算機執(zhí)行指令,使得所述設備300通過所述通信接口303與存儲系統(tǒng)進行數(shù)據(jù)交互來執(zhí)行上述方法實施例提供的掛載文件系統(tǒng)的方法,或者使得所述設備300通過所述通信接口303與存儲系統(tǒng)進行數(shù)據(jù)交互來實現(xiàn)掛載文件系統(tǒng)的裝置的部分或者全部功能。
至少一個處理器301,可以包括不同類型的處理器301,或者包括相同類型的處理器301;處理器301可以是以下的任一種:中央處理器(Central Processing Unit,簡稱CPU)、ARM處理器、現(xiàn)場可編程門陣列(Field Programmable Gate Array,簡稱FPGA)、專用處理器等具有計算處理能力的器件。一種可選實施方式,所述至少一個處理器301還可以集成為眾核處理器。
存儲器302可以是以下的任一種或任一種組合:隨機存取存儲器(Random Access Memory,簡稱RAM)、只讀存儲器(read only memory,簡稱ROM)、非易失性存儲器(non-volatile memory,簡稱NVM)、固態(tài)硬盤(Solid State Drives,簡稱SSD)、機械硬盤、磁盤、磁盤整列等存儲介質(zhì)。
通信接口303用于設備300與其他設備(例如存儲系統(tǒng)中的存儲節(jié)點)進行數(shù)據(jù)交互。通信接口303可以是以下的任一種或任一種組合:網(wǎng)絡接口(例如以太網(wǎng)接口)、無線網(wǎng)卡等具有網(wǎng)絡接入功能的器件。
該總線304可以包括地址總線、數(shù)據(jù)總線、控制總線等,為便于表示,圖4用一條粗線表示該總線??偩€304可以是以下的任一種或任一種組合:工業(yè)標準體系結(jié)構(gòu)(Industry Standard Architecture,簡稱ISA)總線、外設組件互連標準(Peripheral Component Interconnect,簡稱PCI)總線、擴展工業(yè)標準結(jié)構(gòu)(Extended Industry Standard Architecture,簡稱EISA)總線等有線數(shù)據(jù)傳輸?shù)钠骷?/p>
所屬領域的技術人員可以清楚地了解到,為描述的方便和簡潔,上述描述的系統(tǒng),裝置和單元的具體工作過程,可以參考前述方法實施例中的對應過程,在此不再贅述。
在本申請所提供的幾個實施例中,應該理解到,所揭露的系統(tǒng),裝置和方法,可以通過其它的方式實現(xiàn)。例如,以上所描述的裝置實施例僅僅是示意性的,例如,所述單元的劃分,僅僅為一種邏輯功能劃分,實際實現(xiàn)時可以有另外的劃分方式,例如多個單元或組件可以結(jié)合或者可以集成到另一個系統(tǒng),或一些特征可以忽略,或不執(zhí)行。另一點,所顯示或討論的相互之間的耦合或直接耦合或通信連接可以是通過一些接口,裝置或單元的間接耦合或通信連接,可以是電性,機械或其它的形式。
所述作為分離部件說明的單元可以是或者也可以不是物理上分開的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位于一個地方,或者也可以分布到多個網(wǎng)絡單元上??梢愿鶕?jù)實際的需要選擇其中的部分或者全部單元來實現(xiàn)本實施例方案的目的。
另外,在本發(fā)明各個實施例中的各功能單元可以集成在一個處理單元中,也可以是各個單元單獨物理存在,也可以兩個或兩個以上單元集成在一個單元中。上述集成的單元既可以采用硬件的形式實現(xiàn),也可以采用軟件功能單元的形式實現(xiàn)。
所述集成的單元如果以軟件功能單元的形式實現(xiàn)并作為獨立的產(chǎn)品銷售或使用時,可以存儲在一個計算機可讀取存儲介質(zhì)中。基于這樣的理解,本發(fā)明的技術方案本質(zhì)上或者說對現(xiàn)有技術做出貢獻的部分或者該技術方案的全部或部分可以以軟件產(chǎn)品的形式體現(xiàn)出來,該計算機軟件產(chǎn)品存儲在一個存儲介質(zhì)中,包括若干指令用以使得一臺計算機設備(可以是個人計算機,服務器,或者網(wǎng)絡設備等)執(zhí)行本發(fā)明各個實施例所述方法的全部或部分步驟。而前述的存儲介質(zhì)包括:U盤、移動硬盤、只讀存儲器(ROM,Read-Only Memory)、隨機存取存儲器(RAM,Random Access Memory)、磁碟或者光盤等各種可以存儲程序代碼的介質(zhì)。
以上所述,以上實施例僅用以說明本發(fā)明的技術方案,而非對其限制;盡管參照前述實施例對本發(fā)明進行了詳細的說明,本領域的普通技術人員應當理解:其依然可以對前述各實施例所記載的技術方案進行修改,或者對其中部分技術特征進行等同替換;而這些修改或者替換,并不使相應技術方案的本質(zhì)脫離本發(fā)明各實施例技術方案的精神和范圍。