一種云存儲(chǔ)客戶端及其高效數(shù)據(jù)訪問(wèn)方法
【技術(shù)領(lǐng)域】
[0001]本申請(qǐng)涉及計(jì)算機(jī)存儲(chǔ)技術(shù)領(lǐng)域,具體涉及一種云存儲(chǔ)系統(tǒng)客戶端及其高效數(shù)據(jù)訪問(wèn)方法。
【背景技術(shù)】
[0002]隨著信息化程度的不斷提高,全球數(shù)據(jù)日益膨脹。面對(duì)當(dāng)前海量數(shù)據(jù)存儲(chǔ)需求,傳統(tǒng)的存儲(chǔ)系統(tǒng)在容量和性能的擴(kuò)展上存在瓶頸。云存儲(chǔ)以其擴(kuò)展性強(qiáng)、性?xún)r(jià)比高、容錯(cuò)性好等優(yōu)勢(shì)得到了業(yè)界的廣泛認(rèn)同。云存儲(chǔ)是通過(guò)集群應(yīng)用、網(wǎng)格技術(shù)、分布式文件系統(tǒng)等,將網(wǎng)絡(luò)中大量類(lèi)型各異的存儲(chǔ)設(shè)備整合起來(lái),并對(duì)外提供數(shù)據(jù)存儲(chǔ)和業(yè)務(wù)訪問(wèn)功能的系統(tǒng)。簡(jiǎn)單來(lái)說(shuō),云存儲(chǔ)是對(duì)虛擬化存儲(chǔ)資源的管理和使用。云存儲(chǔ)是存儲(chǔ)領(lǐng)域一個(gè)新的概念,其目前已成為學(xué)術(shù)界和工業(yè)界的一個(gè)研宄熱點(diǎn)。
[0003]區(qū)別于傳統(tǒng)的存儲(chǔ)技術(shù),云存儲(chǔ)提供了更好的可擴(kuò)展性,當(dāng)需增加存儲(chǔ)能力時(shí),只需添加服務(wù)器即可實(shí)現(xiàn),而不需要對(duì)存儲(chǔ)系統(tǒng)的結(jié)構(gòu)進(jìn)行重新設(shè)計(jì);同時(shí)隨著存儲(chǔ)能力的增加,云存儲(chǔ)系統(tǒng)的性能不會(huì)下降。目前,云存儲(chǔ)的興起正在顛覆傳統(tǒng)的存儲(chǔ)系統(tǒng)架構(gòu),其正以良好的可擴(kuò)展性、性?xún)r(jià)比和容錯(cuò)性等優(yōu)勢(shì)得到業(yè)界的廣泛認(rèn)同。
[0004]云存儲(chǔ)客戶端程序作為云存儲(chǔ)系統(tǒng)的結(jié)構(gòu)模型中的訪問(wèn)層,對(duì)外提供數(shù)據(jù)存儲(chǔ)和業(yè)務(wù)訪問(wèn)功能。用戶可以將本地電腦的文件通過(guò)云存儲(chǔ)客戶端保存到云存儲(chǔ)服務(wù)器中,也可以通過(guò)客戶端提供的接口直接進(jìn)行業(yè)務(wù)訪問(wèn)。同時(shí)用戶隨時(shí)通過(guò)其它安裝有云存儲(chǔ)客戶端的電腦,快速地訪問(wèn)和獲取屬于存儲(chǔ)于云端的文件。
[0005]在現(xiàn)有技術(shù)中,一種策略是,客戶端的每次操作請(qǐng)求都直接發(fā)送到服務(wù)端,這樣頻繁的對(duì)服務(wù)端的訪問(wèn)會(huì)加大服務(wù)端的負(fù)擔(dān),導(dǎo)致服務(wù)端響應(yīng)慢。另外,對(duì)于文件的讀寫(xiě)操作,一種策略是只從一臺(tái)存儲(chǔ)服務(wù)節(jié)點(diǎn)上讀取或?qū)憯?shù)據(jù),這樣會(huì)導(dǎo)致該臺(tái)存儲(chǔ)節(jié)點(diǎn)壓力過(guò)大,而其他存儲(chǔ)節(jié)點(diǎn)處于空閑中,即沒(méi)有充分利用網(wǎng)絡(luò)帶寬。
【發(fā)明內(nèi)容】
[0006]本申請(qǐng)?zhí)峁┝艘环N云存儲(chǔ)客戶端及其高效數(shù)據(jù)訪問(wèn)方法,能夠提高云存儲(chǔ)系統(tǒng)的訪問(wèn)能力,解決訪問(wèn)云存儲(chǔ)服務(wù)端數(shù)據(jù)的響應(yīng)速度慢,并發(fā)效率低,帶寬利用率低的缺陷。
[0007]本申請(qǐng)實(shí)施例提供的一種云存儲(chǔ)客戶端高效數(shù)據(jù)訪問(wèn)方法,文件分為元數(shù)據(jù)和數(shù)據(jù),其中元數(shù)據(jù)存儲(chǔ)在云服務(wù)端的元數(shù)據(jù)服務(wù)節(jié)點(diǎn),數(shù)據(jù)存儲(chǔ)在云服務(wù)端的存儲(chǔ)服務(wù)節(jié)點(diǎn),數(shù)據(jù)按照一定大小劃分為數(shù)據(jù)塊,允許同一文件不同數(shù)據(jù)塊并發(fā)訪問(wèn);該方法包括如下步驟:
[0008]A、客戶端根據(jù)用戶操作,生成文件訪問(wèn)請(qǐng)求;
[0009]B、查詢(xún)所述文件訪問(wèn)請(qǐng)求所要訪問(wèn)文件的元數(shù)據(jù)在客戶端本地是否有相應(yīng)緩存,若是,執(zhí)行步驟D,否則執(zhí)行步驟C ;
[0010]C、客戶端從云服務(wù)端元數(shù)據(jù)服務(wù)節(jié)點(diǎn)上下載元數(shù)據(jù),更新客戶端本地的元數(shù)據(jù)緩存,并結(jié)束本流程;
[0011]D、從客戶端本地的元數(shù)據(jù)緩存中讀取對(duì)應(yīng)的元數(shù)據(jù)信息。
[0012]較佳地,步驟D包括:將元數(shù)據(jù)操作緩存在隊(duì)列中,采用異步方式對(duì)元數(shù)據(jù)進(jìn)行批量處理。
[0013]較佳地,步驟C或步驟D之后進(jìn)一步包括:
[0014]判斷是否讀寫(xiě)文件內(nèi)容,若是,并發(fā)向云服務(wù)端存儲(chǔ)服務(wù)節(jié)點(diǎn)讀寫(xiě)數(shù)據(jù)。
[0015]較佳地,對(duì)于寫(xiě)操作,根據(jù)預(yù)定的寫(xiě)緩存大小緩存一定的數(shù)據(jù),定時(shí)分塊并發(fā)傳送到相應(yīng)的云服務(wù)端的存儲(chǔ)服務(wù)節(jié)點(diǎn)上。
[0016]較佳地,對(duì)于讀操作,根據(jù)預(yù)取的大小和預(yù)取的偏移量,決定到對(duì)應(yīng)的云服務(wù)端存儲(chǔ)服務(wù)節(jié)點(diǎn)上預(yù)取部分?jǐn)?shù)據(jù)。
[0017]本申請(qǐng)實(shí)施例還提供了一種云存儲(chǔ)客戶端,包括元數(shù)據(jù)緩存管理模塊、數(shù)據(jù)緩存及讀寫(xiě)處理模塊和元數(shù)據(jù)批量處理模塊;
[0018]元數(shù)據(jù)緩存管理模塊,用于緩存元數(shù)據(jù)基本屬性信息;若客戶端請(qǐng)求的文件信息在元數(shù)據(jù)緩存管理模塊中時(shí),直接從元數(shù)據(jù)緩存管理模塊中返回信息;
[0019]數(shù)據(jù)緩存及讀寫(xiě)處理模塊,對(duì)于寫(xiě)操作,根據(jù)預(yù)定的寫(xiě)緩存大小緩存一定的數(shù)據(jù),定時(shí)分塊并發(fā)傳送到相應(yīng)的云服務(wù)端的存儲(chǔ)服務(wù)節(jié)點(diǎn)上,其中不同的數(shù)據(jù)塊可能存儲(chǔ)在不同的存儲(chǔ)服務(wù)節(jié)點(diǎn)也可能存儲(chǔ)在相同的存儲(chǔ)服務(wù)節(jié)點(diǎn);對(duì)于讀操作,根據(jù)預(yù)取的大小和預(yù)取的偏移量決定到對(duì)應(yīng)的云服務(wù)端存儲(chǔ)服務(wù)節(jié)點(diǎn)上預(yù)取部分?jǐn)?shù)據(jù)到數(shù)據(jù)緩存及讀寫(xiě)處理模塊中;
[0020]元數(shù)據(jù)批量處理模塊,用于將元數(shù)據(jù)操作緩存到隊(duì)列中,采用異步方式對(duì)元數(shù)據(jù)進(jìn)行批量處理。
[0021]較佳地,該云存儲(chǔ)客戶端進(jìn)一步包括:
[0022]異步和超時(shí)處理模塊,用于對(duì)于實(shí)時(shí)性要求高的數(shù)據(jù)訪問(wèn)操作,采用異步和超時(shí)處理:對(duì)于讀訪問(wèn),預(yù)讀某個(gè)數(shù)據(jù)塊一旦讀超時(shí)立即重試讀另一個(gè)復(fù)制塊,達(dá)到及時(shí)取回所需的數(shù)據(jù)塊到數(shù)據(jù)緩存及讀寫(xiě)處理模塊中;對(duì)于寫(xiě)訪問(wèn),采取異步方式,采集到的數(shù)據(jù)塊寫(xiě)入數(shù)據(jù)緩存及讀寫(xiě)處理模塊后立即返回,由另一個(gè)專(zhuān)門(mén)的傳輸線程將數(shù)據(jù)緩存及讀寫(xiě)處理模塊中的數(shù)據(jù)刷新到云服務(wù)端。
[0023]從以上技術(shù)方案可以看出,通過(guò)元數(shù)據(jù)和數(shù)據(jù)分開(kāi)存儲(chǔ)在不同服務(wù)節(jié)點(diǎn),數(shù)據(jù)分塊并發(fā)傳輸方式,提高了帶寬利用率;通過(guò)異步和超時(shí)處理機(jī)制縮短了訪問(wèn)數(shù)據(jù)的響應(yīng)時(shí)間;通過(guò)元數(shù)據(jù)緩存和數(shù)據(jù)緩沖區(qū)減少了網(wǎng)絡(luò)請(qǐng)求量,加快了數(shù)據(jù)處理;通過(guò)批量處理小文件訪問(wèn)請(qǐng)求減少了對(duì)元數(shù)據(jù)服務(wù)器的負(fù)擔(dān),提升了大量數(shù)據(jù)請(qǐng)求的性能。本申請(qǐng)?zhí)峁┑脑拼鎯?chǔ)客戶端能夠高效地滿足企業(yè)級(jí)用戶將大量數(shù)據(jù)向云存儲(chǔ)服務(wù)端備份以及并發(fā)讀取的需求,并且具有高性能,低延遲,大容量,易擴(kuò)展,易管理,安全可靠的特點(diǎn)。
【附圖說(shuō)明】
[0024]圖1為本申請(qǐng)實(shí)施例提供的云存儲(chǔ)客戶端的內(nèi)部結(jié)構(gòu)示意圖;
[0025]圖2為本申請(qǐng)實(shí)施例提供的云存儲(chǔ)系統(tǒng)客戶端的數(shù)據(jù)訪問(wèn)流程示意圖。
【具體實(shí)施方式】
[0026]為使本申請(qǐng)技術(shù)方案的技術(shù)原理、特點(diǎn)以及技術(shù)效果更加清楚,以下結(jié)合具體實(shí)施例對(duì)本申請(qǐng)技術(shù)方案進(jìn)行詳細(xì)闡述。
[0027]本申請(qǐng)?zhí)峁┑脑拼鎯?chǔ)客戶端高效數(shù)據(jù)訪問(wèn)方法的基本設(shè)計(jì)思想是:將文件分為元數(shù)據(jù)和數(shù)據(jù)兩部分,數(shù)據(jù)按一定大小分塊的組織方式。該組織方式提供高效數(shù)據(jù)訪問(wèn)的基礎(chǔ)。同一文件不同數(shù)據(jù)塊可以并發(fā)訪問(wèn)。只涉及到元數(shù)據(jù)部分的操作可以批量處理。同時(shí)元數(shù)據(jù)和數(shù)據(jù)的網(wǎng)絡(luò)訪問(wèn)獨(dú)立進(jìn)行,互不影響,保證了傳輸數(shù)據(jù)塊時(shí)帶寬的最大利用率。對(duì)于對(duì)時(shí)間實(shí)時(shí)性要求高的應(yīng)用采用讀寫(xiě)緩沖,異步和超時(shí)相結(jié)合的處理機(jī)制。
[0028]所述云存儲(chǔ)客戶端的內(nèi)部結(jié)構(gòu)如圖1所示,其包括的主要模塊有元數(shù)據(jù)緩存管理模塊101、數(shù)據(jù)緩存及讀寫(xiě)處理模塊102、元數(shù)據(jù)批量處理模塊103以及異步和超時(shí)處理模塊104。其中,
[0029]元數(shù)據(jù)緩存管理模塊101,用于緩存元數(shù)據(jù)基本屬性信息,如創(chuàng)建時(shí)間,文件大小等信息。若客戶端請(qǐng)求的文件信息在該元數(shù)據(jù)緩存管理模塊中時(shí),直接從元數(shù)據(jù)緩存管理模塊中返回信息,避免大量元數(shù)據(jù)訪問(wèn)操作經(jīng)過(guò)網(wǎng)絡(luò)向云服務(wù)端元數(shù)據(jù)服務(wù)節(jié)點(diǎn)請(qǐng)求。
[0030]數(shù)據(jù)緩存及讀寫(xiě)處理模塊102,對(duì)于寫(xiě)操作,根據(jù)預(yù)定的寫(xiě)緩存大小緩存一定的數(shù)據(jù),定時(shí)分塊并發(fā)傳送到相應(yīng)的云服務(wù)端的存儲(chǔ)服務(wù)節(jié)點(diǎn)上,其中不同的數(shù)據(jù)塊可能存儲(chǔ)在不同的存儲(chǔ)服務(wù)節(jié)點(diǎn)也可能存儲(chǔ)在相同的存儲(chǔ)服務(wù)節(jié)點(diǎn);對(duì)于讀操作,根據(jù)預(yù)取的大小和預(yù)取的偏移量決定到對(duì)應(yīng)的云服務(wù)端存儲(chǔ)服務(wù)節(jié)點(diǎn)上預(yù)取部分?jǐn)?shù)據(jù)到數(shù)據(jù)緩存及讀寫(xiě)處理模塊中。
[0031]根據(jù)本申請(qǐng)的另一實(shí)施例,所謂預(yù)取的偏移量即本次讀操作在所讀文件中的起始位置,預(yù)取的大小則是從起始