專利名稱:一種云端存儲系統(tǒng)的數(shù)據緩存方法
一種云端存儲系統(tǒng)的數(shù)據緩存方法技術領域
本發(fā)明屬于計算機數(shù)據存儲技術領域,特別涉及到一種云端存儲系統(tǒng)中緩存數(shù)據 的方法。
背景技術:
隨著信息技術的快速發(fā)展,社會信息化程度越來越高,個人擁有的數(shù)字化信息也 呈爆炸性趨勢增長,在這樣的背景下,存儲設備成了人們日常生活中必不可少的工具。但是 各種繁雜的存儲設備同時也帶來了很多問題,例如個人用戶多個存儲設備之間如何保證數(shù) 據的一致性,如何保證所有存儲設備中存放的數(shù)據的安全可靠,如何解決存儲設備空間有 限等。因此,如何提供一種高效的、便于管理、空間動態(tài)增長的存儲服務變成了研究的熱點 問題。
計算機網絡技術的快速發(fā)展給存儲技術帶來的新的突破,網絡附屬存儲(NAS),存 儲區(qū)域網絡(SAN)等技術方興未艾,給傳統(tǒng)的存儲技術帶來了很大程度上的改觀,但是這 些技術一方面非常昂貴,另一方面不適合應用在廣域網范圍內。由全球網絡存儲工業(yè)協(xié)會 (SNIA)以及亞馬遜(Amazon)等公司提出的云存儲(Cloud Storage)的概念針對目前的存 儲技術發(fā)展趨勢對未來的網絡存儲提出了革命性的構想數(shù)據的存儲服務可以做到就像現(xiàn) 在的水和電的服務一樣,將網絡鋪設到每家每戶,提供各種各樣的資費標準,對不同用戶提 供不同的服務。這樣做一方面可以為用戶提供非常優(yōu)質的存儲服務,例如可以提供存儲空 間的動態(tài)增長服務和網絡中任意點接入;另一方面做到了對用戶透明,將所有的技術問題 都交給專門的云存儲服務提供商去解決,用戶不必擔心數(shù)據的可靠性和安全性等問題;同 時還可以為用戶提供更加優(yōu)質便宜的存儲服務,使得用戶不必花大量的開銷維護升級存儲 系統(tǒng)。
云存儲按照架構一般分為兩大塊,分別是云存儲服務和云端存儲系統(tǒng)。云存儲服 務是指少數(shù)幾家大型公司作為服務提供商提供的部署在整個因特網環(huán)境中的數(shù)據服務,可 以使用一定的接口對云存儲服務進行相應的數(shù)據訪問,存放在云存儲服務中的數(shù)據稱為云 存儲數(shù)據。云端存儲系統(tǒng)是指在客戶端進行安裝部署的存儲系統(tǒng),一般包括可動態(tài)加載的 內核模塊,用于捕獲文件系統(tǒng)命令,與云存儲服務接口進行交互以提供云存儲數(shù)據的網絡 通信模塊和用于對捕獲到的命令進行處理的執(zhí)行模塊,執(zhí)行模塊通過網絡通信模塊與云存 儲服務進行交互,不同的云端存儲系統(tǒng)差異體現(xiàn)在執(zhí)行模塊中。存儲在云端存儲系統(tǒng)中的 文件和存儲在硬盤上的文件一樣,也是由很多邏輯上的數(shù)據塊組成,但不同的是,云端存儲 系統(tǒng)中的數(shù)據塊也是文件,稱之為數(shù)據塊文件。云端存儲系統(tǒng)負責將數(shù)據塊文件存放到云 存儲服務中、獲取云存儲服務中的數(shù)據塊文件、按照捕獲的文件系統(tǒng)命令修改數(shù)據塊文件 中的數(shù)據以及管理數(shù)據塊文件。
目前主流的云存儲服務提供商包括亞馬遜(Amazon)的S3和微軟的mesh。針對不 同的云存儲服務提供商,也出現(xiàn)了一些相應的云端存儲系統(tǒng)。具有代表性的云端存儲系統(tǒng) 包括Dropbox和SugarSync等,它們都是利用在客戶端存放一份完整的數(shù)據備份,然后每次修改后,計算差量數(shù)據傳回云存儲服務;當云端存儲系統(tǒng)訪問云存儲數(shù)據時,需要首先將數(shù) 據完整的下載一份存放到客戶端,然后再針對已經存放至客戶端的數(shù)據進行操作。這樣的 策略存在以下幾個明顯的缺點一、訪問云存儲數(shù)據的效率低下云端存儲系統(tǒng)訪問云存 儲服務時,需要無差別的下載所有的云存儲數(shù)據到客戶端,全部下載完了以后方可進行相 應的操作,使得用戶需要花費大量時間等待期間的下載過程,并且如果用戶僅僅只需要操 作一個小文件,卻不得不將所有的數(shù)據全部從云存儲服務下載下來;二、對用戶不透明用 戶不能夠做到像訪問本地文件系統(tǒng)數(shù)據一樣訪問云存儲數(shù)據,需要每次打開相應的云端存 儲系統(tǒng),進行數(shù)據同步操作后才可以訪問到云存儲數(shù)據;三、對網絡狀態(tài)過于敏感,如果云 端存儲系統(tǒng)在向云存儲服務請求數(shù)據時出現(xiàn)網絡故障,則所有云存儲數(shù)據均不可用;發(fā)明內容
本發(fā)明的目是為克服已有技術的不足之處,提出一種云端存儲系統(tǒng)的數(shù)據緩存方 法,該方法利用緩存數(shù)據塊文件的策略以及程序局部性(locality)的優(yōu)勢,達到提高響應 速度的目的,同時還可以實現(xiàn)在斷網情況下訪問本地數(shù)據緩存區(qū)中的云存儲數(shù)據。
本發(fā)明提出的一種云端存儲系統(tǒng)的數(shù)據緩存方法,其特征在于,該方法使用閃存 盤(或使用SIM卡,SSD盤等存儲介質)作為云端文件系統(tǒng)的載體,并將閃存盤劃分成系統(tǒng) 區(qū)和數(shù)據區(qū),系統(tǒng)區(qū)中存放操作系統(tǒng),計算機從閃存盤進行啟動;該數(shù)據區(qū)進一步劃分為本 地數(shù)據緩存區(qū)和元數(shù)據數(shù)據庫,本地數(shù)據緩存區(qū)中存放從云存儲服務中獲取的數(shù)據塊緩存 文件,元數(shù)據數(shù)據庫用來記錄云存儲數(shù)據的描述信息;
該方法中的云端存儲系統(tǒng)包括可動態(tài)加載的內核模塊,網絡通信模塊,以及可進 行緩存管理的執(zhí)行模塊;該方法包括以下步驟
1)采用閃存盤作為云端存儲系統(tǒng)的載體,從閃存盤啟動計算機,將閃存盤系統(tǒng)區(qū) 中的操作系統(tǒng)加載到計算機內存中;云端存儲系統(tǒng)作為后臺程序,隨著操作系統(tǒng)的啟動而 運行,將云端存儲系統(tǒng)的可動態(tài)加載的內核模塊加入到操作系統(tǒng)內核中,使得云端存儲系 統(tǒng)對用戶的表現(xiàn)形式為本地文件系統(tǒng);
2)云端存儲系統(tǒng)的可進行緩存管理的執(zhí)行模塊掃描本地數(shù)據緩存區(qū)中的數(shù)據塊 緩存文件,將獲取的每個數(shù)據塊緩存文件對應的該數(shù)據塊緩存文件所組成的文件中的數(shù)據 塊編號,存放在一個內存中的有序表中;
3)對網絡通信模塊進行初始化,建立消息隊列,通過消息隊列在因特網上與云存 儲服務進行交互;上層應用程序通過POSIX文件系統(tǒng)接口向虛擬文件系統(tǒng)層(vre)發(fā)送文 件系統(tǒng)命令;
4)云存儲系統(tǒng)的可動態(tài)加載的內核模塊透過虛擬文件系統(tǒng)層捕獲上層應用程序 創(chuàng)建文件、修改文件、讀取文件和刪除文件的操作命令,并將這些命令重定向到可進行緩存 管理的執(zhí)行模塊;
5)可進行緩存管理的執(zhí)行模塊將捕獲到的操作命令進行具體的創(chuàng)建文件操作、寫 入數(shù)據到現(xiàn)有文件操作、讀取文件數(shù)據操作和刪除文件操作,這些操作后形成的新數(shù)據塊 以文件的形式緩存到本地數(shù)據緩存區(qū)中;當寫入數(shù)據到現(xiàn)有文件和讀取現(xiàn)有文件時本地數(shù) 據緩存區(qū)中的數(shù)據超過設定閾值,觸發(fā)可進行緩存管理的執(zhí)行模塊對本地數(shù)據緩存區(qū)中的 數(shù)據塊緩存文件進行緩存替換,并當所需要的數(shù)據塊緩存文件不在本地數(shù)據緩存區(qū)時,向云存儲服務獲取數(shù)據塊緩存文件;
6)網絡通信模塊將步驟幻中形成的新的數(shù)據塊緩存文件存回云存儲服務,并當 所需要的數(shù)據塊緩存文件不在本地數(shù)據緩存區(qū)時,從云存儲服務獲取。
本發(fā)明的特點及有益效果是
1、利用本發(fā)明的方法,可以利用本地數(shù)據緩存區(qū)有效地加快云端存儲系統(tǒng)的響應 速度,帶來更好的用戶體驗;
2、利用本發(fā)明的方法,可以實現(xiàn)在斷網狀態(tài)下訪問存放在本地數(shù)據緩存區(qū)中的云 存儲數(shù)據,而目前已有的云端存儲系統(tǒng)對網絡狀態(tài)過于敏感,在斷網狀態(tài)完全無法工作;
3、與現(xiàn)有的云存儲系統(tǒng)相比,本發(fā)明方法可以實現(xiàn)對文件的隨機讀寫操作,從而 可以做到支持隨機拖動的視頻播放等操作,而不需要等待文件下載到本地后才能進行相關 操作;
4、本發(fā)明方法避免了在云端存儲系統(tǒng)和云存儲服務之間傳輸對方已有的數(shù)據,大 幅度降低了網絡開銷;
5、本發(fā)明方法避免了大量讀寫操作時帶來的對云存儲服務的壓力,如果數(shù)據塊緩 存文件存放在本地數(shù)據緩存區(qū)中,則直接對數(shù)據塊緩存文件進行操作,避免了大量向云存 儲服務請求數(shù)據時給云存儲服務帶來的壓力;
6、與現(xiàn)有的云端存儲系統(tǒng)相比,本發(fā)明方法尤其適用于具有云端存儲系統(tǒng)本地存 儲設備容量有限、云端存儲系統(tǒng)與云存儲服務之間的帶寬受限、云端存儲系統(tǒng)與云存儲服 務之間網絡易出現(xiàn)故障特點的云存儲環(huán)境。
圖1是本發(fā)明方法示意圖。
圖2是本發(fā)明方法中云端存儲系統(tǒng)響應應用程序寫入數(shù)據到現(xiàn)有文件命令的處 理流程圖。
圖3是本發(fā)明方法中云端存儲系統(tǒng)響應應用程序讀取現(xiàn)有文件數(shù)據命令的處理 流程圖。
圖4是本發(fā)明方法中云端存儲系統(tǒng)響應應用程序刪除文件命令的處理流程圖。
具體實施方式
本發(fā)明提出的一種云端存儲系統(tǒng)的數(shù)據緩存方法,結合附圖及實施例詳細說明如 下
本發(fā)明使用閃存盤(或使用SIM卡,SSD盤等存儲介質)作為云端文件系統(tǒng)的載 體,并將閃存盤劃分成系統(tǒng)區(qū)和數(shù)據區(qū),系統(tǒng)區(qū)中存放操作系統(tǒng),計算機從閃存盤進行啟 動;該數(shù)據區(qū)進一步劃分為本地數(shù)據緩存區(qū)和元數(shù)據數(shù)據庫,本地數(shù)據緩存區(qū)中存放從云 存儲服務中獲取的數(shù)據塊緩存文件,元數(shù)據數(shù)據庫用來記錄云存儲數(shù)據的描述信息;
該方法中的云端存儲系統(tǒng)包括可動態(tài)加載的內核模塊,網絡通信模塊,以及可進 行緩存管理的執(zhí)行模塊;該方法包括以下步驟
1)采用閃存盤作為云端存儲系統(tǒng)的載體,從閃存盤啟動計算機,將閃存盤系統(tǒng)區(qū) 中的操作系統(tǒng)加載到計算機內存中;云端存儲系統(tǒng)作為后臺程序,隨著操作系統(tǒng)的啟動而運行,將云端存儲系統(tǒng)的可動態(tài)加載的內核模塊加入到操作系統(tǒng)內核中,使得云端存儲系 統(tǒng)對用戶的表現(xiàn)形式為本地文件系統(tǒng);
2)云端存儲系統(tǒng)的可進行緩存管理的執(zhí)行模塊掃描本地數(shù)據緩存區(qū)中的數(shù)據塊 緩存文件,將獲取的每個數(shù)據塊緩存文件對應的該數(shù)據塊緩存文件所組成的文件中的數(shù)據 塊編號,存放在一個內存中的有序表中;
3)對網絡通信模塊進行初始化,建立消息隊列,通過消息隊列在因特網上與云存 儲服務進行交互;上層應用程序通過POSIX文件系統(tǒng)接口向虛擬文件系統(tǒng)層(vre)發(fā)送文 件系統(tǒng)命令;
4)云存儲系統(tǒng)的可動態(tài)加載的內核模塊透過虛擬文件系統(tǒng)層捕獲上層應用程序 創(chuàng)建文件、修改文件、讀取文件和刪除文件的操作命令,并將這些命令重定向到可進行緩存 管理的執(zhí)行模塊;
5)可進行緩存管理的執(zhí)行模塊將捕獲到的操作命令進行具體的創(chuàng)建文件操作、寫 入數(shù)據到現(xiàn)有文件操作、讀取文件數(shù)據操作和刪除文件操作,這些操作后形成的新數(shù)據塊 以文件的形式緩存到本地數(shù)據緩存區(qū)中;當寫入數(shù)據到現(xiàn)有文件和讀取現(xiàn)有文件時本地數(shù) 據緩存區(qū)中的數(shù)據超過設定閾值,觸發(fā)可進行緩存管理的執(zhí)行模塊對本地數(shù)據緩存區(qū)中的 數(shù)據塊緩存文件進行緩存替換,并當所需要的數(shù)據塊緩存文件不在本地數(shù)據緩存區(qū)時,向 云存儲服務獲取數(shù)據塊緩存文件;
6)網絡通信模塊將步驟幻中形成的新的數(shù)據塊緩存文件存回云存儲服務,并當 所需要的數(shù)據塊緩存文件不在本地數(shù)據緩存區(qū)時,從云存儲服務獲取。如圖1所示。
所述閃存盤本地數(shù)據緩存區(qū)中的數(shù)據塊緩存文件用來組成可以供應用程序使用 的文件;元數(shù)據數(shù)據庫中設置文件(可供應用程序使用的文件)信息表、數(shù)據塊信息表和文 件組成表。
所述的文件信息表如表1所示,該表中記錄所有通過云端存儲系統(tǒng)存放在云存儲 服務中的文件元數(shù)據信息,包括文件標識、文件大小、文件類型、文件名、文件父目錄標識、 用戶訪問權限以及文件的創(chuàng)建時間(Ctime)、修改時間(Mtime)和最后訪問時間(Vtime);
表1 文件信息表
權利要求
1.一種云端存儲系統(tǒng)的數(shù)據緩存方法,其特征在于,該方法使用閃存盤作為云端文件 系統(tǒng)的載體,并將閃存盤劃分成系統(tǒng)區(qū)和數(shù)據區(qū),系統(tǒng)區(qū)中存放操作系統(tǒng),計算機從閃存盤 進行啟動;該數(shù)據區(qū)進一步劃分為本地數(shù)據緩存區(qū)和元數(shù)據數(shù)據庫,本地數(shù)據緩存區(qū)中存 放從云存儲服務中獲取的數(shù)據塊緩存文件,元數(shù)據數(shù)據庫用來記錄云存儲數(shù)據的描述信 息;該方法中的云端存儲系統(tǒng)包括可動態(tài)加載的內核模塊,網絡通信模塊,以及可進行緩存 管理的執(zhí)行模塊;該方法包括以下步驟1)采用閃存盤作為云端存儲系統(tǒng)的載體,從閃存盤啟動計算機,將閃存盤系統(tǒng)區(qū)中的 操作系統(tǒng)加載到計算機內存中;云端存儲系統(tǒng)作為后臺程序,隨著操作系統(tǒng)的啟動而運行, 將云端存儲系統(tǒng)的可動態(tài)加載的內核模塊加入到操作系統(tǒng)內核中,使得云端存儲系統(tǒng)對用 戶的表現(xiàn)形式為本地文件系統(tǒng);2)云端存儲系統(tǒng)的可進行緩存管理的執(zhí)行模塊掃描本地數(shù)據緩存區(qū)中的數(shù)據塊緩存 文件,將獲取的每個數(shù)據塊緩存文件對應的該數(shù)據塊緩存文件所組成的文件中的數(shù)據塊編 號,存放在一個內存中的有序表中;3)對網絡通信模塊進行初始化,建立消息隊列,通過消息隊列在因特網上與云存儲服 務進行交互;上層應用程序通過POSIX文件系統(tǒng)接口向虛擬文件系統(tǒng)層(vre)發(fā)送文件系 統(tǒng)命令;4)云存儲系統(tǒng)的可動態(tài)加載的內核模塊透過虛擬文件系統(tǒng)層捕獲上層應用程序創(chuàng)建 文件、修改文件、讀取文件和刪除文件的操作命令,并將這些命令重定向到可進行緩存管理 的執(zhí)行模塊;5)可進行緩存管理的執(zhí)行模塊將捕獲到的操作命令進行具體的創(chuàng)建文件操作、寫入數(shù) 據到現(xiàn)有文件操作、讀取文件數(shù)據操作和刪除文件操作,這些操作后形成的新數(shù)據塊以文 件的形式緩存到本地數(shù)據緩存區(qū)中;當寫入數(shù)據到現(xiàn)有文件和讀取現(xiàn)有文件時本地數(shù)據緩 存區(qū)中的數(shù)據超過設定閾值,觸發(fā)可進行緩存管理的執(zhí)行模塊對本地數(shù)據緩存區(qū)中的數(shù)據 塊緩存文件進行緩存替換,并當所需要的數(shù)據塊緩存文件不在本地數(shù)據緩存區(qū)時,向云存 儲服務獲取數(shù)據塊緩存文件;6)網絡通信模塊將步驟幻中形成的新的數(shù)據塊緩存文件存回云存儲服務,并當所需 要的數(shù)據塊緩存文件不在本地數(shù)據緩存區(qū)時,從云存儲服務獲取。
2.如權利要求1所述方法,其特征在于,所述閃存盤本地數(shù)據緩存區(qū)中的數(shù)據塊緩存 文件用來組成可以供應用程序使用的文件;元數(shù)據數(shù)據庫中設置文件信息表、數(shù)據塊信息 表和文件組成表;所述的文件信息表中記錄所有通過云端存儲系統(tǒng)存放在云存儲服務中的 文件元數(shù)據信息,包括文件標識、文件大小、文件類型、文件名、文件父目錄標識、用戶訪問 權限以及文件的創(chuàng)建時間(Ctime)、修改時間(Mtime)和最后訪問時間(Vtime)。
3.如權利要求2所述方法,其特征在于,所述步驟5)中的創(chuàng)建文件操作包括在元數(shù)據 數(shù)據庫文件信息表和文件組成表中添加被創(chuàng)建文件的元數(shù)據信息,爾后將數(shù)據庫文件以差 量傳輸?shù)姆绞絺浞莸皆拼鎯Ψ铡?br>
4.如權利要求2所述方法,其特征在于,所述步驟5)中的寫入數(shù)據到現(xiàn)有文件操作具 體包括以下步驟(5-11)內核模塊將捕獲到的寫入命令的參數(shù)傳遞給可進行緩存管理的執(zhí)行模塊;可 進行緩存管理的執(zhí)行模塊首先判斷寫入的字符數(shù)組長度是否包括多個數(shù)據塊,如果是,則將待寫入數(shù)據截斷,使截斷后的寫入數(shù)據保證都在一個數(shù)據塊內,余下數(shù)據循環(huán)此過程寫 入,直至寫完;接著可進行緩存管理的執(zhí)行模塊根據命令參數(shù)中的文件名查詢文件信息表, 獲得該文件的文件標識,通過獲得的文件標識和命令參數(shù)中的文件偏移查詢文件組成表, 獲得數(shù)據塊標識,通過數(shù)據塊標識查詢有序表,判斷出該文件對應的數(shù)據塊緩存文件是否 已經在本地數(shù)據緩存區(qū)中;(5-12)若判斷得出數(shù)據塊緩存文件不在本地數(shù)據緩存區(qū),則根據(5-11)中獲得的文 件標識和數(shù)據塊標識向云存儲服務發(fā)出獲取數(shù)據請求,云存儲服務根據文件標識和數(shù)據塊 標識找到相應的數(shù)據塊緩存文件并傳回保存到本地數(shù)據緩存區(qū)中;若數(shù)據塊緩存文件在本 地數(shù)據緩存區(qū)中,則跳過本步驟;(5-13)將數(shù)據塊緩存文件中的數(shù)據讀入到計算機內存中,根據(5-11)中獲得的寫入 命令參數(shù),將待寫入的字符數(shù)組寫入該內存區(qū)域中,對該內存區(qū)域計算哈希值,通過哈希值 查詢數(shù)據塊信息表,如果該內存區(qū)域中的數(shù)據和某個數(shù)據塊緩存文件中的數(shù)據一致,則將 該數(shù)據塊緩存文件的引用數(shù)加1,否則,將內存區(qū)域中的數(shù)據寫入到本地數(shù)據緩沖區(qū)中,存 放成一個新的數(shù)據塊緩存文件,并將該新的數(shù)據塊緩存文件標識為臟(dirty),通知內核模 塊成功寫入,內核模塊進而通知上層應用程序成功寫入;(5-14)根據寫入數(shù)據的大小,修改元數(shù)據數(shù)據庫中的文件信息表、數(shù)據塊信息表以及 文件組成表,爾后將數(shù)據庫文件以差量傳輸?shù)姆绞絺浞莸皆拼鎯Ψ眨?5-15)當本地數(shù)據緩存區(qū)容量大小超過設定閾值)時,開始對本地數(shù)據緩存區(qū)進行緩 存替換;首先將沒有標記為臟的數(shù)據塊緩存文件傳回到云存儲服務,并刪除這些數(shù)據塊緩 存文件;如果此時本地數(shù)據緩存區(qū)容量大小已經小于設定閾值,則停止緩存替換過程;如 果此時本地數(shù)據緩存區(qū)的大小仍然大于設定閾值,則采用LRU替換算法對標記為臟的數(shù)據 塊緩存文件進行替換;替換具體包括按照最后訪問時間對數(shù)據塊緩存文件進行排序,依次 調用云存儲服務接口將存儲在云存儲服務中與當前標記為臟的數(shù)據塊緩存文件同名的數(shù) 據塊緩存文件刪除,爾后將標記為臟的數(shù)據塊緩存文件傳回至云存儲服務,接著將該數(shù)據 塊緩存文件從本地數(shù)據緩存區(qū)中刪除;一旦本地數(shù)據緩存區(qū)容量大小小于設定閾值,則停 止緩存替換過程。
5.如權利要求2所述方法,其特征在于,所述步驟5)中的讀取現(xiàn)有文件數(shù)據操作具體 包括以下步驟(5-21)內核模塊將捕獲到的讀取命令的參數(shù)傳遞給可進行緩存管理的執(zhí)行模塊,;可 進行緩存管理的執(zhí)行模塊首先判斷待讀取的數(shù)據長度是否包含文件的多個數(shù)據塊,如果包 含多個數(shù)據塊,則將待讀取長度截斷在一個數(shù)據塊內,余下長度循環(huán)此過程讀入,直至讀 完;接著可進行緩存管理的執(zhí)行模塊根據命令參數(shù)中的文件名查詢文件信息表,獲得該文 件的文件標識,通過獲得的文件標識和命令參數(shù)中的文件偏移查詢文件組成表,獲得數(shù)據 塊標識,通過數(shù)據塊標識查詢有序表,判斷出該文件對應的數(shù)據塊緩存文件是否在本地數(shù) 據緩存區(qū)中;(5-22)若判斷得出數(shù)據塊緩存文件不在本地數(shù)據緩存區(qū),則根據獲得的文件標識和數(shù) 據塊標識向云存儲服務發(fā)出獲取數(shù)據請求,云存儲服務根據文件標識和數(shù)據塊標識找到相 應的數(shù)據塊緩存文件并傳回保存到本地數(shù)據緩存區(qū)中;若數(shù)據塊緩存文件在本地數(shù)據緩存 區(qū)中,則本步驟跳過;(5-23)當待讀取的數(shù)據塊緩存文件已經從云存儲服務復制到本地數(shù)據緩存區(qū)中,緩存 管理器將數(shù)據塊緩存文件讀入到內存,根據(5-21)中獲得的讀取命令參數(shù),讀取數(shù)據塊緩 存文件相應的數(shù)據,并將讀取的數(shù)據返回給內核模塊,內核模塊進而將數(shù)據返回給上層應 用;(5-24)修改文件信息表中所讀取文件標識對應的最后訪問時間項,爾后將數(shù)據庫文件 以差量傳輸?shù)姆绞絺浞莸皆拼鎯Ψ铡?br>
6.如權利要求2所述方法,其特征在于,所述步驟幻中的刪除現(xiàn)有文件命令具體包括 以下步驟(5-31)內核模塊將捕獲到的刪除文件命令的參數(shù)傳遞給可進行緩存管理的執(zhí)行模塊, 命令參數(shù)包括文件標識;根據文件標識查詢文件組成表,獲得組成文件的數(shù)據塊標識;(5-32)根據得到的結果查詢數(shù)據塊信息表,將結果中的數(shù)據塊標識對應的引用數(shù)減 1,當引用數(shù)為0時,將該數(shù)據塊標識保存至刪除表中;(5-33)根據刪除表中的數(shù)據塊標識,依次查詢有序表,判斷該數(shù)據塊標識對應的數(shù) 據塊緩存文件是否在本地數(shù)據緩存區(qū)中,若在本地數(shù)據緩存區(qū)中,則將數(shù)據塊緩存文件刪 除;(5-34)根據刪除表中的數(shù)據塊標識,依次調用云存儲服務的刪除文件接口,將云存儲 服務中的相應數(shù)據塊緩存文件刪除;(5-35)在元數(shù)據數(shù)據庫文件信息表和文件組成表中刪除被刪除文件的元數(shù)據信息,爾 后將數(shù)據庫文件以差量傳輸?shù)姆绞絺浞莸皆拼鎯Ψ眨?5-36)根據刪除表中的數(shù)據塊標識,依次刪除數(shù)據塊信息表中的記錄項,接著刪除文 件信息表和文件組成表中的相應記錄項,通過返回值通知內核模塊刪除成功,內核模塊進 而通知上層應用刪除文件成功。
全文摘要
本發(fā)明涉及一種云端存儲系統(tǒng)的數(shù)據緩存方法,屬于計算機數(shù)據存儲技術領域;該方法包括采用閃存盤作為云端存儲系統(tǒng)的載體,從閃存盤啟動計算機,將閃存盤系統(tǒng)區(qū)中的操作系統(tǒng)加載到計算機內存中;云端存儲系統(tǒng)掃描本地數(shù)據緩存區(qū)中的數(shù)據塊緩存文件,將獲取的每個數(shù)據塊緩存文件存放在內存中;云存儲系統(tǒng)透過虛擬文件系統(tǒng)層捕獲上層應用程序創(chuàng)建文件、修改文件、讀取文件和刪除文件的操作命令,這些操作后形成的新數(shù)據塊以文件的形式緩存到本地數(shù)據緩存區(qū)中;網絡通信模塊將形成的新的數(shù)據塊緩存文件存回云存儲服務,并當所需要的數(shù)據塊緩存文件不在本地數(shù)據緩存區(qū)時,從云存儲服務獲取。該方法提高了響應速度,實現(xiàn)了在斷網情況下訪問云存儲數(shù)據。
文檔編號H04L29/08GK102035881SQ201010554529
公開日2011年4月27日 申請日期2010年11月19日 優(yōu)先權日2010年11月19日
發(fā)明者汪東升, 石偉 申請人:清華大學