專利名稱:基于客戶端持久緩存的遠程文件系統(tǒng)鏡像方法及系統(tǒng)的制作方法
技術領域:
本發(fā)明屬于計算機領域,借助于本地磁盤文件系統(tǒng)作為持久緩存下,為本地客戶計算設備上運行的應用提供高效透明訪問遠程文件系統(tǒng)鏡像的系統(tǒng)與方法。
背景技術:
目前的遠程文件系統(tǒng)主要可分為兩種類型:1.實時在線類型的遠程文件系統(tǒng),例如NFS、CIFS、SSHFS、,HDFS (Hadoop分布式文件系統(tǒng)),GFS (Google文件系統(tǒng))等。此類遠程文件系統(tǒng)必須實時與遠程文件系統(tǒng)連接,并本地計算設備上運行的應用提供遠程文件系統(tǒng)實時訪問的文件服務。其主要缺點:一、必須實時聯(lián)網,一旦斷線,則所有操作都將失效;二、當網絡狀況不穩(wěn)定時(WIFI或手機2G網絡),其用戶體驗很差。2.離線類型的遠程文件系統(tǒng),例如等DropBox、SkyDrive、BT等。此類遠程文件系統(tǒng)將所有遠程文件及文件目錄存儲在用戶本地,因此本地計算設備上的應用可以在離線狀態(tài)下使用此文件系統(tǒng)。其主要缺點:一、必須先完整下載所要訪問的遠程文件然后才能對其進行訪問;二、受到本地臨時存儲空間限制,無法提供大于本地存儲空間的文件訪問服務。以上這兩類都不能滿足將遠程文件系統(tǒng)上部分文件數(shù)據緩存在本地存儲設備上、并為本地計算設備上運行的應用提供遠大于本地存儲設備的存儲空間的需求,這正是本發(fā)明所要解決的具有很高的實用價值的問題。當前針對基于本地磁盤文件系統(tǒng)作為持久緩存、為本地計算設備上運行的應用提供遠程文件系統(tǒng)透明文件服務方法的研究目前成果比較少,主要有2個代表性的研究論文:論文I (1.Muthitacharoen, A.,Chen, B.,&Mazi6res, D (2001).A low-bandwidthnetwork file system.Proceedings of the eighteenth ACM symposium on Operatingsystems principles-SOSP’01,174-14.do1: 10.1145/502034.502052)重點研究了通過如何比較本地計算設備上緩存和遠程文件系統(tǒng)上相同文件的多個版本數(shù)據的相似度從而減少本地與遠程計算機之間文件傳輸?shù)臄?shù)據量。但是論文I沒有給出本地計算設備上文件緩存的管理具體方法,也沒有給出基于塊粒度的文件傳輸與文件緩存方法。論文2 (2.Michael Vrable, Stefan Savage, and Geoffrey M.Voelker.ACloud-Backed File System for the Enterprise.Proceedings of the 7th USENIXConference on File and Storage Technologies (FAST), San Jose, CA, February2012)石開究通過為企業(yè)網中建立統(tǒng)一的遠程文件系統(tǒng)訪問代理,該代理部署在企業(yè)網與外網的網關上,從而實現(xiàn)企業(yè)網中計算機透明訪問遠程云存儲,進而減少企業(yè)存儲成本。但是論文2并沒有研究在本地計算設備上遠程文件系統(tǒng)的緩存,而依然是在網絡中的代理服務器上實現(xiàn)緩存。
發(fā)明內容
本發(fā)明目的是為了解決上述現(xiàn)有實現(xiàn)方式存在的問題,提供一種在客戶計算設備上利用本地磁盤文件系統(tǒng)作為持久緩存空間的實現(xiàn)遠程文件系統(tǒng)的本地化鏡像方法及其系統(tǒng)?!坝脩魬贸绦颉痹诳蛻粲嬎阍O備上通過訪問“本地化鏡像客戶端系統(tǒng)”來透明訪問遠程文件系統(tǒng)?!氨镜鼗R像客戶端系統(tǒng)”通過“本地磁盤文件系統(tǒng)”來持久緩存遠程文件系統(tǒng)的部分文件及元數(shù)據,并負責維護本地持久緩存遠程文件系統(tǒng)的一致性。本發(fā)明采用塊粒度為最小單位來實現(xiàn)本地與遠程文件系統(tǒng)的文件上傳下載、以及本地持久緩存中文件的讀寫操作,并支持對文件的部分塊數(shù)據進行持久緩存。本發(fā)明將有效提高“應用”對遠程文件系統(tǒng)的訪問效率從而提高用戶體驗,并大大節(jié)省網絡流量,同時提供遠大于本地磁盤文件系統(tǒng)緩存空間大小的遠程文件系統(tǒng)的文件空間。1、本發(fā)明涉及的基于客戶端持久緩存的遠程文件系統(tǒng)鏡像系統(tǒng)(如圖1)包括遠程文件系統(tǒng)服務器裝置和客戶計算機裝置,二者通過網絡互聯(lián)。遠程文件系統(tǒng)服務器裝置主要包括遠程文件系統(tǒng)服務模塊,簡稱“遠程文件系統(tǒng)服務系統(tǒng)”,通過常見的網絡文件協(xié)議為網絡其它計算機提供文件系統(tǒng)服務??蛻粲嬎銠C裝置主要包括遠程文件系統(tǒng)的本地化鏡像客戶端系統(tǒng)模塊,簡稱“本地化鏡像客戶端系統(tǒng)”;本地具有持久存儲能力的磁盤文件系統(tǒng)模塊,簡稱“本地磁盤文件系統(tǒng)”;本地“虛擬文件系統(tǒng)”服務模塊;本地計算設備上運行的各種“應用”,簡稱“應用”;本地內存模塊。本地“虛擬文件系統(tǒng)”為各種“應用”提供統(tǒng)一的透明文件服務,無論是訪問“本地磁盤文件系統(tǒng)”還是訪問“遠程文件系統(tǒng)服務系統(tǒng)”;而本地“虛擬文件系統(tǒng)”實現(xiàn)訪問“遠程文件系統(tǒng)服務系統(tǒng)”的功能具體是由“本地化鏡像客戶端系統(tǒng)”來實現(xiàn)的;同時“本地化鏡像客戶端系統(tǒng)”將使用“本地磁盤文件系統(tǒng)”部分空間作為持久緩存“遠程文件系統(tǒng)服務系統(tǒng)”部分文件及元數(shù)據的空間。其中用戶計算設備既包括PC計算機也包括智能移動手持設備以及企業(yè)級服務器。虛擬文件系統(tǒng)服務和遠程文件系統(tǒng)服務器均為業(yè)界主流的標準協(xié)議和應用系統(tǒng)。按照本發(fā)明提供的系統(tǒng),所述的“本地化鏡像客戶端系統(tǒng)”由“本地化鏡像客戶端核心管理系統(tǒng)”子模塊、內存緩存管理子模塊、網絡文件系統(tǒng)驅動子模塊、和本地磁盤緩存管理子模塊組成。其中內存緩存管理子模塊負責內存中“元數(shù)據管理區(qū)”和“文件數(shù)據緩存區(qū)”的管理;網絡文件系統(tǒng)驅動子模塊負責與各種協(xié)議的網絡文件系統(tǒng)連接與文件數(shù)據傳輸及控制,各種網絡協(xié)議包括常見的NFS、FTP、HTTP、SSH、HDFS (Hadoop分布式文件系統(tǒng))和GFS (Google文件系統(tǒng))協(xié)議;本地磁盤緩存管理子模塊負責管理“本地磁盤文件系統(tǒng)”上的持久緩存目錄及元數(shù)據管理?!氨镜鼗R像客戶端核心管理系統(tǒng)”子模塊通過網絡文件系統(tǒng)驅動子模塊與遠程網絡文件系統(tǒng)進行文件傳輸及控制,“本地化鏡像客戶端核心管理系統(tǒng)”也負責完成本地“虛擬文件系統(tǒng)”傳過來的文件訪問操作,并進一步將所網絡下載的文件數(shù)據以及本地“應用”修改的文件數(shù)據及控制操作統(tǒng)一緩存在客戶計算機裝置上內存緩存區(qū)和“本地磁盤文件系統(tǒng)”持久緩存目錄中。按照本發(fā)明提供的系統(tǒng),“本地化鏡像客戶端系統(tǒng)”中的子模塊“本地化鏡像客戶端核心管理系統(tǒng)”,主要包括如下子模塊(如圖3):即IO請求響應子模塊、緩存查詢子模塊、本地磁盤緩存處理子模塊、本地內存緩存處理子模塊、網絡監(jiān)控子模塊、IO監(jiān)控子模塊、本地緩存整理子模塊。IO請求響應子模塊負責接收應用通過虛擬文件系統(tǒng)傳來的文件操作和回應;緩存查詢子模塊負責調用底層“內存緩存管理”來檢索、讀取、修改文件緩存信息;網絡監(jiān)控子模塊負責監(jiān)控與遠程網絡文件系統(tǒng)的連接;IO監(jiān)控子模塊負責本地用戶計算設備IO負載,當達到用戶配置文件中設置的條件時,即根據用戶設置的規(guī)則暫?;蜓泳從承┚W絡任務的執(zhí)行(數(shù)據下載、數(shù)據預取以及修改后數(shù)據的上傳);本地緩存整理子模塊負責管理本地磁盤文件系統(tǒng)中持久緩存。按照本發(fā)明提供的系統(tǒng),"本地化鏡像客戶端系統(tǒng)”內存中主要數(shù)據結構包括:內存元數(shù)據區(qū)、內存文件數(shù)據緩存區(qū)、內存緩存映射表、內存網絡任務表;"本地化鏡像客戶端系統(tǒng)”在"本地磁盤文件系統(tǒng)”持久存儲的主要數(shù)據文件包括:元數(shù)據文件、網絡任務文件、數(shù)據緩存文件;"本地磁盤文件系統(tǒng)”的指定持久緩存目錄的空間大小僅受限于該"本地磁盤文件系統(tǒng)”的空間大小,或者由"本地化鏡像客戶端系統(tǒng)”的參數(shù)來設定具體的持久緩存目錄的空間大小,即"本地磁盤文件系統(tǒng)”的指定持久緩存目錄的實際使用空間不能超過參數(shù)設定值,并且在"本地化鏡像客戶端系統(tǒng)”運行期間能夠動態(tài)改變具體的持久緩存目錄的空間大小?!氨镜鼗R像客戶端系統(tǒng)”管理“本地磁盤文件系統(tǒng)”的指定持久緩存目錄中持久緩存數(shù)據時,采用元數(shù)據管理方式管理文件以及文件和目錄之間的關系,元數(shù)據本身也存放在本地磁盤文件系統(tǒng)中,稱為“元數(shù)據文件”;“本地化鏡像客戶端系統(tǒng)”通過“元數(shù)據文件”可重構相應的遠程文件系統(tǒng)目錄結構以及在“本地磁盤文件系統(tǒng)”上的文件緩存狀態(tài);“本地化鏡像客戶端系統(tǒng)”運行時讀取該元數(shù)據文件部分或全部內容到內存中的“元數(shù)據管理區(qū)”,并定時將內存中“元數(shù)據管理區(qū)”內容回寫到“本地磁盤文件系統(tǒng)”中的元數(shù)據文件中,以保證遠程文件數(shù)據的本地化持久存儲。所述的“本地化鏡像客戶端系統(tǒng)”為了更高效地提供文件訪問服務,“本地化鏡像客戶端系統(tǒng)”運行時動態(tài)地將本地磁盤文件系統(tǒng)中的指定持久緩存目錄中的持久緩存目錄和文件的全部數(shù)據或部分數(shù)據裝載到“本地化鏡像客戶端系統(tǒng)”內存中的“文件數(shù)據緩存區(qū)”,并定期將所述內存中“文件數(shù)據緩存區(qū)”內容回寫到“本地磁盤文件系統(tǒng)”中的持久緩存中,以保證相應文件數(shù)據的本地化持久存儲。2、本發(fā)明涉及的基于客戶端持久緩存的遠程文件系統(tǒng)鏡像方法具體步驟如下:第1、啟動“遠程文件系統(tǒng)服務器”,并正常開啟網絡文件系統(tǒng)服務;第2、啟動客戶計算機裝置上操作系統(tǒng)的本地“虛擬文件系統(tǒng)”服務;第3、啟動客戶計算機裝置上的“本地化鏡像客戶端系統(tǒng)”,“本地化鏡像客戶端系統(tǒng)”分別與“遠程文件系統(tǒng)服務器”、本地“虛擬文件系統(tǒng)”以及“本地磁盤文件系統(tǒng)”進行連接和通信,從而通過本地“虛擬文件系統(tǒng)”為客戶計算機裝置上的“應用”提供透明訪問“遠程文件系統(tǒng)服務器”的文件服務,具體步驟包括如下:第3.1、“本地化鏡像客戶端系統(tǒng)”讀取參數(shù)配置文件,獲取相關運行參數(shù),運行參數(shù)包括“遠程文件系統(tǒng)”認證信息和登錄目錄、“本地虛擬文件系統(tǒng)”的掛載目錄和訪問權限信息、“本地磁盤文件系統(tǒng)”上的持久緩存目錄和元數(shù)據文件信息、運行性能與安全參數(shù);第3.2、“本地化鏡像客戶端系統(tǒng)”在客戶計算機裝置的內存建立并初始化“元數(shù)據管理區(qū)”和“文件數(shù)據緩存區(qū)”;第3.3、“本地化鏡像客戶端系統(tǒng)”讀取“本地磁盤文件系統(tǒng)”上的持久緩存目錄及元數(shù)據文件,進一步讀取已在本地持久緩存目錄中緩存的遠程文件系統(tǒng)目錄和文件數(shù)據到“本地化鏡像客戶端系統(tǒng)”內存中的“文件數(shù)據緩存區(qū)”中,并修改相應的元數(shù)據管理區(qū);第3.4、“本地化鏡像客戶端系統(tǒng)”連接“遠程文件系統(tǒng)服務器”,提交“遠程文件系統(tǒng)服務器”所需要的用戶名和口令給“遠程文件系統(tǒng)服務器”,經過“遠程文件系統(tǒng)服務器”認證通過后,讀取遠程文件系統(tǒng)相應目錄及其部分子目錄和文件并合并到“本地化鏡像客戶端系統(tǒng)”的內存空間的文件數(shù)據緩存區(qū)中,并修改“本地化鏡像客戶端系統(tǒng)”內存中的“元數(shù)據管理區(qū)”;第3.5、“本地化鏡像客戶端系統(tǒng)”向“本地虛擬文件系統(tǒng)”注冊并掛載到指定的掛載目錄上,開始提供透明訪問“遠程文件系統(tǒng)服務器”的文件服務;第3.6、本地計算設備上運行的“應用”通過標準的本地“虛擬文件系統(tǒng)”訪問“本地化鏡像客戶端系統(tǒng)”所提供的文件服務,從而透明地訪問“遠程文件系統(tǒng)”;第3.7、“本地化鏡像客戶端系統(tǒng)”正常運行期間,利用“本地磁盤文件系統(tǒng)”中指定的持久緩存目錄,動態(tài)地管理“應用”訪問“遠程文件系統(tǒng)服務器”的文件數(shù)據,包括下載和上傳文件及目錄數(shù)據,以保持本地“磁盤文件系統(tǒng)”中持久緩存數(shù)據和遠程文件系統(tǒng)數(shù)據的一致性;并動態(tài)維護“本地化鏡像客戶端系統(tǒng)”內存中的“元數(shù)據管理區(qū)”和“文件數(shù)據緩存區(qū)”信息,以及保持“本地化鏡像客戶端系統(tǒng)”內存數(shù)據和本地磁盤文件系統(tǒng)中持久緩存數(shù)據的一致性;第4、當停止“本地化鏡像客戶端系統(tǒng)”時,“本地化鏡像客戶端系統(tǒng)”將撤銷與本地“虛擬文件系統(tǒng)”的注冊,“本地化鏡像客戶端系統(tǒng)”將內存中“元數(shù)據管理區(qū)”和“文件數(shù)據緩存區(qū)”保存到本地磁盤文件系統(tǒng)中指定的持久緩存的目錄中,并關閉與遠程文件系統(tǒng)服務器的連接。按照本發(fā)明提供的鏡像方法,“本地化鏡像客戶端系統(tǒng)”采用塊粒度為最小單位實現(xiàn)本地與遠程文件系統(tǒng)的文件上傳下載、以及本地持久緩存中文件的讀寫操作,以及對“遠程文件系統(tǒng)服務器”中文件的持久緩存。在“本地磁盤文件系統(tǒng)”中的指定持久緩存目錄中可以緩存遠程文件系統(tǒng)中的全部文件,也可以緩存遠程文件系統(tǒng)中的部分文件,也可以緩存遠程文件系統(tǒng)中的單個文件的部分數(shù)據塊?!氨镜鼗R像客戶端系統(tǒng)”對持久緩存文件的元數(shù)據管理采用塊粒度為最小單位,而不是文件粒度?!氨镜鼗R像客戶端系統(tǒng)”向本地計算設備上的應用提供塊級別的文件服務,即應用請求讀取某文件的任意偏移量開始的小于等于虛擬文件系統(tǒng)規(guī)定大小的連續(xù)數(shù)據即一個塊數(shù)據時,“本地化鏡像客戶端系統(tǒng)”將按所述請求提供相應數(shù)據。“本地化鏡像客戶端系統(tǒng)”對內存中文件數(shù)據緩存區(qū)中的管理是以塊為單位,即提供塊大小的緩存空間申請和釋放,塊大小可由“本地化鏡像客戶端系統(tǒng)”的參數(shù)配置文件指定。如圖2所示,用戶計算設備中只有遠程文件系統(tǒng)中部分文件的部分數(shù)據塊。按照本發(fā)明提供的鏡像方法,“本地化鏡像客戶端系統(tǒng)”負責本地客戶計算設備中內存緩存的維護,包括刪除文件塊數(shù)據緩存、創(chuàng)建文件塊數(shù)據緩存、維護內存文件塊數(shù)據索弓1、修改文件塊數(shù)據緩存信息。“本地化鏡像客戶端系統(tǒng)”也負責本地磁盤文件系統(tǒng)中指定持久緩存目錄中的數(shù)據管理,包括刪除不用的緩存文件、創(chuàng)建新的緩存文件、或修改已有的緩存文件、對已有緩存文件進行索引。
“本地化鏡像客戶端系統(tǒng)”負責其內存中“文件數(shù)據緩存區(qū)”的管理,包括清理不用的文件數(shù)據緩存塊、加載新的文件數(shù)據緩存塊、對已有文件數(shù)據緩存塊進行索引;當“文件數(shù)據緩存區(qū)”中的空閑數(shù)據塊緩存空間沒有時或少于由“本地化鏡像客戶端系統(tǒng)”運行參數(shù)規(guī)定的空閑數(shù)據塊緩存空間數(shù)目時,“本地化鏡像客戶端系統(tǒng)”啟動內存的“文件數(shù)據緩存區(qū)”清理工作,清理狀態(tài)為“使用”的數(shù)據塊;清理算法可由“本地化鏡像客戶端系統(tǒng)”運行參數(shù)指定,“本地化鏡像客戶端系統(tǒng)”提供接口機制,并支持用戶自定義清理算法;若該“使用”狀態(tài)的數(shù)據塊未被修改,則直接設置為空閑狀態(tài)并修改相應的元數(shù)據管理區(qū);若該“使用”狀態(tài)的數(shù)據塊被修改,則進一步判斷其所對應的文件在“本地磁盤文件系統(tǒng)”的持久緩存目錄中是否存在,若該文件在“本地磁盤文件系統(tǒng)”的持久緩存目錄中存在則直接將文件數(shù)據緩存區(qū)中該“使用”狀態(tài)的數(shù)據塊回寫到“本地磁盤文件系統(tǒng)”的對應文件中,然后將內存文件數(shù)據緩存區(qū)中的該數(shù)據塊狀態(tài)設置為空閑狀態(tài)并修改相應的元數(shù)據管理區(qū);若該文件在“本地磁盤文件系統(tǒng)”的持久緩存目錄中不存在則先在“本地磁盤文件系統(tǒng)”的持久緩存目錄中建立該文件,然后直接將文件數(shù)據緩存區(qū)中該“使用”狀態(tài)的數(shù)據塊回寫到“本地磁盤文件系統(tǒng)”的對應文件中,然后將內存“文件數(shù)據緩存區(qū)”中的該數(shù)據塊狀態(tài)設置為空閑狀態(tài)并修改相應的元數(shù)據管理區(qū)?!氨镜鼗R像客戶端系統(tǒng)”負責本地磁盤文件系統(tǒng)中指定持久緩存目錄中的數(shù)據管理,包括刪除不用的緩存文件、創(chuàng)建新的緩存文件、或修改已有的緩存文件、對已有緩存文件進行索引;對于那些在“本地磁盤文件系統(tǒng)”中指定持久緩存目錄中的自最近一次修改以來尚未上傳到“遠程文件系統(tǒng)”中的文件及目錄,“本地化鏡像客戶端系統(tǒng)”同步或者異步地將所述文件及目錄上傳到遠程文件系統(tǒng)中,采用同步方式或異步方式由“本地化鏡像客戶端系統(tǒng)”運行參數(shù)決定,并修改“本地化鏡像客戶端系統(tǒng)”中相應的元數(shù)據?!氨镜鼗R像客戶端系統(tǒng)”負責“本地磁盤文件系統(tǒng)”中指定持久緩存目錄中的文件數(shù)據時,在刪除本地磁盤文件系統(tǒng)中指定持久緩存目錄中文件數(shù)據前,需要根據“本地化鏡像客戶端系統(tǒng)”的元數(shù)據管理區(qū)信息判斷該欲刪除的文件自最近一次修改以來是否已經上傳到遠程文件系統(tǒng)中,若尚未上傳到遠程文件系統(tǒng)則先生成上傳任務表,并根據上傳任務表將相關文件上傳到遠程文件系統(tǒng)的相應文件上。若上傳該欲刪除的文件失敗,則取消在“本地磁盤文件系統(tǒng)”中指定持久緩存目錄中刪除該文件,否則在“本地磁盤文件系統(tǒng)”中指定持久緩存目錄中刪除該文件?!氨镜鼗R像客戶端系統(tǒng)”負責本地磁盤文件系統(tǒng)中指定持久緩存目錄中的磁盤空間大小管理;當“本地磁盤文件系統(tǒng)”中指定持久緩存目錄中文件數(shù)據所占用的磁盤空間大小達到“本地化鏡像客戶端系統(tǒng)”的參數(shù)規(guī)定的大小時,“本地化鏡像客戶端系統(tǒng)”運行緩存文件淘汰算法,將指定的欲淘汰文件數(shù)據刪除,從而保證“本地磁盤文件系統(tǒng)”中指定持久緩存目錄中文件數(shù)據所占用的磁盤空間大小小于“本地化鏡像客戶端系統(tǒng)”的參數(shù)規(guī)定的大?。痪彺嫖募蕴惴捎伞氨镜鼗R像客戶端系統(tǒng)”運行參數(shù)指定,“本地化鏡像客戶端系統(tǒng)”提供接口機制,并支持用戶自定義緩存文件淘汰算法?!氨镜鼗R像客戶端系統(tǒng)”負責透明地將遠程文件系統(tǒng)指定目錄所管轄的子目錄和文件的全部或者部分數(shù)據下載到“本地磁盤文件系統(tǒng)”中指定持久緩存目錄中;“本地化鏡像客戶端系統(tǒng)”根據運行參數(shù)規(guī)定的文件數(shù)據預取算法(例如優(yōu)先預取最近IO文件所屬相同目錄下文件的算法)生成下載任務表,動態(tài)地將遠程文件系統(tǒng)指定目錄中所要預取的目錄和文件下載到“本地磁盤文件系統(tǒng)”中指定持久緩存目錄中,從而當本地設備上運行的“應用”訪問這些已經提前下載到“本地磁盤文件系統(tǒng)”中指定持久緩存目錄中的遠程文件系統(tǒng)的文件時其將以本地磁盤文件系統(tǒng)的訪問速度對該文件訪問,而不是網絡訪問速度。上傳任務和下載任務統(tǒng)一為“網絡任務表”,存在于“本地化鏡像客戶端系統(tǒng)”內存中,并由“本地化鏡像客戶端系統(tǒng)”定期將其寫入到“本地磁盤文件系統(tǒng)”中指定持久緩存目錄中的“網絡任務文件”中,從而保證其持久存儲,在“本地化鏡像客戶端系統(tǒng)”重新啟動后加載“網絡任務文件”到內存中的“網絡任務表”,使“本地化鏡像客戶端系統(tǒng)”繼續(xù)上次運行網絡任務。按照本發(fā)明提供的鏡像方法,“本地化鏡像客戶端系統(tǒng)”正常運行期間,當“應用”試圖訪問“遠程文件系統(tǒng)服務器”的文件數(shù)據時,“本地化鏡像客戶端系統(tǒng)”將首先在內存中的“元數(shù)據管理區(qū)”和“文件數(shù)據緩存區(qū)”信息查找內存中是否有所欲訪問的文件數(shù)據的緩存,若內存中有所述文件數(shù)據緩存,則直接返回給“應用”所欲訪問的文件數(shù)據,不需真正訪問“遠程文件系統(tǒng)服務器”;若內存中沒有所欲訪問的文件數(shù)據的緩存,則進一步查找本地“磁盤文件系統(tǒng)”中持久緩存數(shù)據是否有所欲訪問的文件數(shù)據的緩存,若本地“磁盤文件系統(tǒng)”中有所述文件數(shù)據緩存,則直接返回給“應用”所欲訪問的文件數(shù)據,不需真正訪問“遠程文件系統(tǒng)服務器”;否則“本地化鏡像客戶端系統(tǒng)”訪問“遠程文件系統(tǒng)服務器”中所欲訪問的文件數(shù)據,更新本地客戶計算設備中內存以及本地“磁盤文件系統(tǒng)”中緩存信息,最后返回給“應用”所欲訪問的文件數(shù)據。當本地計算設備上的“應用”對通過由“本地化鏡像客戶端系統(tǒng)”提供文件服務的掛載目錄所轄的子目錄和文件進行讀操作時,“本地化鏡像客戶端系統(tǒng)”首先查詢其內存“元數(shù)據管理區(qū)”看應用所請求的文件和其數(shù)據塊是否存在于內存中的“文件數(shù)據緩存區(qū)”,若存在則直接將相應數(shù)據拷貝給應用;若不存在內存中的“文件數(shù)據緩存區(qū)”,則進一步查看是否在本地磁盤文件系統(tǒng)中指定持久緩存目錄中,若存在于本地持久緩存目錄中,則將相應數(shù)據讀取到內存的文件數(shù)據緩存區(qū),再進一步拷貝給應用;若也不在本地磁盤文件系統(tǒng)中指定的持久緩存目錄中,則向“遠程文件系統(tǒng)服務器”發(fā)起請求讀取相應的文件和數(shù)據塊到本地內存的文件數(shù)據緩存區(qū),再進一步拷貝給應用;若向“遠程文件系統(tǒng)服務器”發(fā)起請求讀取相應的文件和數(shù)據塊操作失敗,則直接返回錯誤給應用;最終“本地化鏡像客戶端系統(tǒng)”修改其內存“元數(shù)據管理區(qū)”和“文件數(shù)據緩存區(qū)”。按照本發(fā)明提供的鏡像方法,“本地化鏡像客戶端系統(tǒng)”正常運行期間,當“應用”試圖在“遠程文件系統(tǒng)服務器”中建立、修改以及刪除文件操作時,“本地化鏡像客戶端系統(tǒng)”首先將建立和修改文件及控制信息緩存在本地“磁盤文件系統(tǒng)”中持久緩存目錄中,并更新本地“磁盤文件系統(tǒng)”中元數(shù)據信息,然后返回給“應用”操作結果,最后在本地客戶計算設備負載允許情況下同步或者異步地將“應用”對“遠程文件系統(tǒng)服務器”的修改以及刪除文件操作從本地“磁盤文件系統(tǒng)”中持久緩存讀取并提交給“遠程文件系統(tǒng)服務器”。當本地計算設備上的“應用”對通過由“本地化鏡像客戶端系統(tǒng)”提供文件服務的掛載目錄所轄的子目錄和文件進行寫操作時,“本地化鏡像客戶端系統(tǒng)”首先查詢其內存“元數(shù)據管理區(qū)”并判斷應用所請求的文件和數(shù)據塊是否存在于內存中的“文件數(shù)據緩存區(qū)”,若存在則直接將應用提供的寫入數(shù)據拷貝到對應的內存“文件數(shù)據緩存區(qū)”中;若不在本地內存的“文件數(shù)據緩存區(qū)”,則在先本地內存的“文件數(shù)據緩存區(qū)”申請相應大小的內存空間,然后將應用提供的寫入數(shù)據拷貝到對應的本地內存“文件數(shù)據緩存區(qū)”中。若在本地內存的“文件數(shù)據緩存區(qū)”申請一塊內存空間失敗,則先進行內存的“文件數(shù)據緩存區(qū)”清理,然后再重新申請內存空間,重復上述操作。最終“本地化鏡像客戶端系統(tǒng)”修改其內存”修改其內存“元數(shù)據管理區(qū)”和“文件數(shù)據緩存區(qū)”。按照本發(fā)明提供的鏡像方法,“本地化鏡像客戶端系統(tǒng)”負責與“遠程文件系統(tǒng)服務器”進行連接、認證以及文件上傳下載服務;若“本地化鏡像客戶端系統(tǒng)”不能正確連接和訪問“遠程文件系統(tǒng)服務器”,或“本地化鏡像客戶端系統(tǒng)”和“遠程文件系統(tǒng)服務器”正常工作中突然斷開連接時,“本地化鏡像客戶端系統(tǒng)”仍可繼續(xù)運行并為本地計算設備上運行的“應用”提供文件服務,此時僅提供在“本地磁盤文件系統(tǒng)”中的指定持久緩存目錄中已有緩存的相關文件服務;“本地化鏡像客戶端系統(tǒng)”可異步地稍后再嘗試連接和訪問“遠程文件系統(tǒng)服務器”,當再次恢復對“遠程文件系統(tǒng)服務器”的連接和訪問時,提供正常的“遠程文件系統(tǒng)服務器”的文件服務?!氨镜鼗R像客戶端系統(tǒng)”支持與多種類型的遠程文件系統(tǒng)服務器連接和訪問,“本地化鏡像客戶端系統(tǒng)”根據配置參數(shù)來自動地維護與遠程文件系統(tǒng)服務器連接;當網絡出現(xiàn)故障或與“遠程文件系統(tǒng)服務器”連接失敗時,“本地化鏡像客戶端系統(tǒng)”可以暫時不連接“遠程文件系統(tǒng)服務器”,而只利用“本地磁盤文件系統(tǒng)”指定的緩存目錄中的緩存文件數(shù)據為本地計算設備上的“應用”提供文件服務;所述的“本地化鏡像客戶端系統(tǒng)”通過向本地計算設備上操作系統(tǒng)中的“虛擬文件系統(tǒng)”注冊并掛載到指定掛載目錄,本地計算設備上運行的應用訪問“虛擬文件系統(tǒng)”的該指定掛載目錄時,該應用透明地由“本地化鏡像客戶端系統(tǒng)”提供文件服務;本發(fā)明所涉及的具體內容及所述術語的含義是:( I) “遠程文件系統(tǒng)服務器”:指提供訪問遠程計算機上文件系統(tǒng)的服務系統(tǒng),例如FTP服務器、SSH文件服務器、CIFS文件服務器、,HDFS (Hadoop分布式文件系統(tǒng))文件服務器,GFS(Google文件系統(tǒng))文件服務器等。而遠程計算機上的具體文件系統(tǒng)可以為任何已有的磁盤文件系統(tǒng)(如下述2所述)。(2) “本地磁盤文件系統(tǒng)”:指各種已有的建立在磁盤上的文件系統(tǒng),例如FAT32、NTFS、Ext2、Ext3、XFS、CDFS 等。(3)本地“虛擬文件系統(tǒng)”:指本地計算設備中操作系統(tǒng)上運行的虛擬文件系統(tǒng)服務,其為各種本地磁盤上具體的文件系統(tǒng)和遠程文件系統(tǒng)客戶代理提供統(tǒng)一的抽象的文件系統(tǒng)服務接口,本地計算設備上運行的應用通過該虛擬文件系統(tǒng)透明地訪問本地磁盤上具體的文件系統(tǒng)和遠程文件系統(tǒng),例如類UNIX系統(tǒng)中的VFS、以及Windows中的FSD。(4)本地計算設備上運行的“應用”(簡稱“應用”):指運行在本地計算設備上操作系統(tǒng)用戶態(tài)中的任意應用程序。(5) “遠程文件系統(tǒng)登陸目錄”:指“遠程文件系統(tǒng)服務器”暴露給用戶的可用文件及子文件夾組成的目錄。(6) “持久緩存目錄”:在用戶計算設備上存儲持久性緩存的存儲位置,其實現(xiàn)可以為“遠程文件系統(tǒng)登陸目錄”類似的文件、文件夾形式,也可以為單一文件形式存儲。(7) “本地掛載目錄”:在用戶計算設備上用戶最終用于訪問遠程文件系統(tǒng)的節(jié)點,表現(xiàn)為擁護計算設備上的一個虛擬磁盤或者一個目錄。
(8)遠程文件系統(tǒng)的“本地化鏡像客戶端系統(tǒng)”:其屬于前述(3)中所述的一種遠程文件系統(tǒng)的本地計算設備上的客戶代理程序,本地計算設備上運行的“應用”通過本地“虛擬文件系統(tǒng)”并進而訪問“本地化鏡像客戶端系統(tǒng)”(或直接訪問“本地化鏡像客戶端系統(tǒng)”)來最終實現(xiàn)對遠程文件系統(tǒng)的文件訪問。本發(fā)明所給出的遠程文件系統(tǒng)的“本地化鏡像客戶端系統(tǒng)”,其典型特點就是利用本地計算設備上本地存儲設備文件系統(tǒng)作為持久緩存空間,并為“應用”提供透明的塊級別遠程文件系統(tǒng)文件訪問服務,其極大地提高了 “應用”訪問遠程文件系統(tǒng)的性能和用戶體驗效果。(8.1) “本地化鏡像客戶端系統(tǒng)”中的“核心管理系統(tǒng)模塊”:加載用戶配置文件信息,包括遠程文件服務器地址及端口、最大并發(fā)下載連接數(shù)、最大并發(fā)上傳連接數(shù)、默認上傳模式(分為同步、異步等)、網絡流量限制、本地資源使用限制(包括但不限于CPU,內存,硬盤以及其他存儲設備)等設置。在加載完成后依據配置文件調用“內存驅動”、“網絡驅動”以及“本地磁盤文件系統(tǒng)驅動”三個模塊配合完成連接遠程服務器,載入文件系統(tǒng)緩存,文件上傳下載等操作。“核心管理系統(tǒng)模塊”包括內存“元數(shù)據管理區(qū)”、“元數(shù)據文件”、內存“文件數(shù)據緩存區(qū)”、“文件數(shù)據緩存文件”、“緩存查詢模塊”、“緩存映射表模塊”、“網絡任務生成模塊”、“網絡任務表模塊”、“ I/o監(jiān)控模塊”、“本地內存緩存處理模塊”、“本地磁盤緩存處理模塊”、“I/O請求響應模塊”、“本地緩存整理模塊”、“網絡監(jiān)控模塊”等。內存“元數(shù)據管理區(qū)”:用于管理元數(shù)據的保存、處理、載入等操作。此“元數(shù)據管理區(qū)”由“核心管理系統(tǒng)模塊”中的“緩存查詢模塊”、“緩存映射表模塊”、“本地內存緩存處理模塊”、“本地磁盤緩存處理模塊”組成。當“緩存查詢模塊”調用“緩存映射表”進行查詢時即對元數(shù)據進行處理。此處元數(shù)據指非文件數(shù)據的信息,即文件名、文件大小、創(chuàng)建時間、修改時間、訪問權限等內容。其數(shù)據組織可見圖4?!霸獢?shù)據文件”:存放在“本地磁盤文件系統(tǒng)”緩存目錄下,用來記錄遠程文件系統(tǒng)中目錄和文件的組織關系,以及記錄在“本地磁盤文件系統(tǒng)”緩存目錄的文件數(shù)據緩存狀態(tài)?!氨镜鼗R像客戶端系統(tǒng)”運行期間將加載其全部或者部分內容到內存“元數(shù)據管理區(qū)”。內存“文件數(shù)據緩存區(qū)”:用于管理文件數(shù)據的保存、處理、載入等操作。此“文件數(shù)據緩存區(qū)”由“核心管理系統(tǒng)模塊”中的“緩存查詢模塊”、“緩存映射表模塊”、“本地內存緩存處理模塊”、“本地磁盤緩存處理模塊”組成。其數(shù)據組織可見圖5。“文件數(shù)據緩存文件”:存放在“本地磁盤文件系統(tǒng)”緩存目錄下,作為遠程文件系統(tǒng)中相應文件的本地化緩存文件?!氨镜鼗R像客戶端系統(tǒng)”運行期間將加載其全部或者部分內容到內存“文件數(shù)據緩存區(qū)”。“緩存查詢模塊”:此模塊接受用戶(應用)發(fā)送的I/O請求,將其轉換為“核心管理系統(tǒng)模塊”內部處理格式后對“緩存映射表模塊”進行查詢,根據所需獲取的文件塊的映射情況(處于本地磁盤緩存、處于本地內存緩存或處于遠程服務器)調用對應的“本地磁盤緩存處理模塊”、“本地內存緩存處理模塊”或“網絡任務生成模塊”進行對數(shù)據的獲取操作。同時,當預取功能處于開啟狀態(tài)時,此模塊會依照規(guī)則向“網絡任務生成模塊”發(fā)送請求進行預取任務的生成?!熬彺嬗成浔砟K”:此模塊用于緩存遠程文件系統(tǒng)的所有文件及文件目錄的塊級別的映射信息以及元數(shù)據信息,并且可以響應其他模塊產生的對映射信息的調用以及修改。緩存組織形式見圖4?!熬彺嬗成浔砟K”的數(shù)據并不全部保存在內存中,而是分布在內存緩存以及硬盤的持久緩存中,當查詢文件的映射信息不在內存中時,通過調用“本地磁盤緩存處理模塊”將元數(shù)據拷貝到內存供“緩存查詢模塊”進行查詢調用。當內存緩存中的元數(shù)據達到用戶定義最大大小時,將調用“本地緩存整理模塊”、“本地磁盤緩存處理模塊”以及“本地內存緩存處理模塊”將內存緩存中一定時間(用戶定義)未被使用的元數(shù)據從內存緩存移除并轉存到本地磁盤持久緩存中。“網絡任務生成模塊”:此模塊根據“緩存查詢模塊”發(fā)送的請求構造上傳或下載的網絡任務,并插入到“網絡任務表模塊”中等待執(zhí)行?!熬W絡任務生成模塊”生成的任務包含請求文件的標識(對應遠程文件系統(tǒng)中的i節(jié)點號或者文件路徑)、請求的類型(元數(shù)據信息或數(shù)據信息)、請求文件的偏移量、請求的數(shù)據大小、請求的狀態(tài)(即時獲取,等待系統(tǒng)空閑獲取等用戶定義的狀態(tài)。此處的狀態(tài)對應“網絡任務表模塊”中的不同任務隊列)等信息?!癐/O監(jiān)控模塊”:此模塊用于監(jiān)控當前系統(tǒng)負載,當達到用戶配置文件中設置的條件時,即根據用戶設置的規(guī)則暫停或延緩某些網絡任務的執(zhí)行(數(shù)據下載、數(shù)據預取以及修改后數(shù)據的上傳)?!熬W絡任務表模塊”:此模塊用于存儲“網絡任務生成模塊”生成的任務,并接受“I/O監(jiān)控模塊”的調度調整。此模塊中按照用戶定義的網絡任務優(yōu)先級(例如即時獲取或等待系統(tǒng)空閑時獲取)構造不同的任務隊列表,按照“網絡任務生成模塊”生成任務的不同優(yōu)先級插入不同的隊列表,同時隊列表的任務處理模式同樣可以由用戶指定為隊列模式(先來先服務)或堆模式(后來先服務)。此模塊將自身存儲的任務按照當前用戶定義的傳輸協(xié)議(由遠程文件系統(tǒng)服務器決定)構造數(shù)據包,并傳送給“網絡驅動模塊”進行處理。每個任務處理完成后會將相關信息(例如文件數(shù)據塊映射信息)更新至“緩存映射表模塊”?!熬W絡任務表”模塊構造的數(shù)據包一般包括數(shù)據包大小、任務編號、請求文件的標識(對應遠程文件系統(tǒng)中的i節(jié)點號或者文件路徑)、請求的類型(元數(shù)據信息或數(shù)據信息)、請求文件的偏移量、請求的數(shù)據大小等信息(根據使用協(xié)議的不同其數(shù)據包內容會有變動)?!熬W絡任務表”模塊接收的返回數(shù)據包一般包括數(shù)據包大小、任務編號、返回數(shù)據以及返回數(shù)據長度(根據使用協(xié)議的不同其數(shù)據包內容會有變動)?!氨镜貎却婢彺嫣幚砟K”:此模塊用于將“緩存查詢模塊”發(fā)送的I/O請求轉換為當前系統(tǒng)支持的讀取模式(當使用內存表的時候,將I/o請求轉換為對應的內存塊起始號以及連續(xù)塊數(shù);當使用內存池的時候,將I/o請求轉換為對應的內存地址以及數(shù)據大小),并將此信息發(fā)送至“內存驅動模塊”獲取對應的數(shù)據?!氨镜貎却婢彺嫣幚砟K”將內存緩存分為元數(shù)據區(qū)以及文件數(shù)據區(qū),根據“緩存查詢模塊”發(fā)送的不同請求從對應的內存區(qū)域獲取數(shù)據返回給“緩存查詢模塊”或者“ I/o請求相應模塊”?!氨镜卮疟P文件系統(tǒng)上緩存處理模塊”:此模塊用于將“緩存查詢模塊”發(fā)送的I/O請求轉換為當前系統(tǒng)支持的讀取模式,并且發(fā)送到“本地磁盤文件系統(tǒng)驅動模塊”并獲取對應的數(shù)據信息?!癐/O請求響應模塊”:此模塊用于接收“本地磁盤文件系統(tǒng)上緩存處理模塊”、“本地內存緩存處理模塊”以及“網絡任務表模塊”傳輸?shù)木唧w數(shù)據信息經過修改后返回給應用。
“本地緩存整理模塊”:定期對內存以及本地磁盤文件系統(tǒng)上持久緩存目錄使用用戶定義的算法(默認為LRU算法)進行整理,通過“內存驅動模塊”、“本地磁盤文件系統(tǒng)驅動模塊”將過期內存數(shù)據轉移到“本地磁盤文件系統(tǒng)”持久緩存目錄中,并將過期持久緩存文件清除。同時利用“本地磁盤文件系統(tǒng)驅動模塊”提前取出將會使用的數(shù)據塊緩存至內存。以上提到的清理操作僅在用戶設定最大“本地磁盤文件系統(tǒng)”持久緩存大小,并且當前實際大小達到此值(若不設定最大持久緩存的數(shù)值,當則磁盤剩余空間不足以存儲新的持久緩存時)時候才會對數(shù)據進行清除操作。此外,當“本地化鏡像文件系統(tǒng)”啟動時,“本地緩存整理模塊”會將持久緩存數(shù)據選擇部分最常用的載入到內存中,構造“緩存映射表模塊”的數(shù)據供查詢使用。“網絡監(jiān)控模塊”:負責提供網絡狀態(tài)的監(jiān)控處理。當網絡斷開時,“本地化鏡像客戶端系統(tǒng)”進入離線模式,若用戶(應用)訪問已經緩存的數(shù)據內容則正常返回,若訪問本機未進行緩存的數(shù)據內容,則根據用戶的設置決定是立刻返回錯誤提示或者阻塞至網絡重新連接并接受所需數(shù)據后返回。同時,當網絡斷開時,“網絡監(jiān)控模塊”會定時嘗試重新連接網絡,當網絡重新建立后則跳出離線模式。(8.2) “網絡文件系統(tǒng)驅動模塊”:根據“核心管理系統(tǒng)模塊”載入的配置文件信息,向服務器發(fā)出連接請求,與指定的遠程文件服務器建立連接。當連接建立后,負責處理“核心管理系統(tǒng)?!币蟮纳蟼骷跋螺d任務。(8.3) “內存緩存管理驅動模塊”:根據“核心管理系統(tǒng)模塊”載入的配置文件信息,負責初始化對應的元數(shù)據區(qū)和文件數(shù)據區(qū),并且對內存緩存區(qū)進行數(shù)據的讀取修改刪除等操作。(8.4) “本地磁盤文系統(tǒng)驅動模塊”:根據“核心管理系統(tǒng)模塊”載入的配置文件信息,負責處理磁盤持久緩存數(shù)據。此模塊使用多種方式(洞文件、單一文件以及多個小文件)對文件的部分內容進行持久存儲。本發(fā)明的優(yōu)點和積極效果:相對于傳統(tǒng)的需要持久連線的遠程文件系統(tǒng)或本地完全緩存的遠程文件系統(tǒng),本發(fā)明具有以下優(yōu)勢:本發(fā)明使用本地磁盤文件系統(tǒng)持久緩存,以接近本地磁盤文件系統(tǒng)的訪問速度來訪問遠程文件系統(tǒng),因此提高了用戶的體驗,減少了用戶(應用)獲取數(shù)據時對網絡的依賴,提聞了響應速度;本發(fā)明采用塊粒度為最小單位來實現(xiàn)本地與遠程文件系統(tǒng)的文件上傳下載、以及本地持久緩存中文件的讀寫操作,并支持對文件的部分塊數(shù)據進行持久緩存。本發(fā)明由于使用本地磁盤文件系統(tǒng)持久緩存,當網絡斷開的情況也也可以支持一部分用戶(應用)的正常使用;本發(fā)明使用本地持久緩存,當所需內容處于本地時會直接從本地讀取,從而減少了不必要的網絡流量;本發(fā)明使用本地磁盤文件系統(tǒng)建立了持久緩存,此持久緩存僅保存遠程文件系統(tǒng)中部分文件的部分數(shù)據,因此遠程文件系統(tǒng)的可用邏輯空間可以大于本地存儲設備的空間。
圖1是本發(fā)明的物理架構圖,從該圖可以容易看出本發(fā)明的適用場景。各種用戶計算設備20均可以通過安裝遠程文件系統(tǒng)本地化鏡像客戶端系統(tǒng)220來連接遠程文件系統(tǒng)服務器10。遠程文件系統(tǒng)本地化鏡像客戶端系統(tǒng)220通過虛擬文件系統(tǒng)240掛載到用戶計算設備20中,并與用戶及應用230進行交互。在遠程文件系統(tǒng)本地化鏡像客戶端系統(tǒng)220中核心管理系統(tǒng)221負責調用內存驅動222,網絡驅動223以及本地磁盤文件系統(tǒng)驅動224來完成各種任務。同時,網絡驅動223通過內部置入不同的通信協(xié)議(NFS301SSHFS302)的方式來與多種遠程文件系統(tǒng)服務器進行交互。圖2是本發(fā)明的本地磁盤文件系統(tǒng)中持久緩存文件數(shù)據與遠程文件系統(tǒng)的文件數(shù)據映射關系的示意圖。圖3是本發(fā)明的邏輯架構圖。該圖完整給出了核心管理系統(tǒng)221,內存驅動222,網絡驅動223以及本地磁盤文件系統(tǒng)驅動224的內部邏輯功能模塊的交互關系。圖4是本發(fā)明的元數(shù)據的組織圖,此圖完整給出了緩存映射表模塊2218中對文件及文件夾元數(shù)據信息的組織方式以及映射表的存儲方式。圖5是本發(fā)明核心管理系統(tǒng)中文件數(shù)據的組織結構圖,此圖完整給出了緩存映射表模塊2218中文件數(shù)據的組織方式。圖6是本發(fā)明中“本地化鏡像客戶端系統(tǒng)”網絡監(jiān)控模塊連接“遠程文件系統(tǒng)服務”的流程圖,當網絡斷開時進入離線模式,若用戶(應用)訪問已經緩存的數(shù)據內容則正常返回,若訪問本機未進行緩存的數(shù)據內容,則根據用戶的設置決定是立刻返回錯誤提示或者阻塞至網絡重新連接并接受所需數(shù)據后返回。同時,當網絡斷開時,“網絡監(jiān)控模塊”會定時嘗試重新連接網絡,當網絡重新建立后則跳出離線模式。圖7是應用實例I的工作流程圖。圖8是應用實例I元數(shù)據組織示意圖。圖9是應用實例I文件數(shù)據組織示意圖。
具體實施例方式本發(fā)明提供了一種在客戶計算設備上利用本地磁盤文件系統(tǒng)作為持久緩存空間的實現(xiàn)遠程文件系統(tǒng)的本地化鏡像方法及其系統(tǒng)。實施例1、基于客戶端持久緩存的遠程文件系統(tǒng)鏡像系統(tǒng)本發(fā)明涉及的基于客戶端持久緩存的遠程文件系統(tǒng)鏡像系統(tǒng)(如圖1)包括遠程文件系統(tǒng)服務器裝置和客戶計算機裝置,二者通過網絡互聯(lián)。遠程文件系統(tǒng)服務器裝置主要包括遠程文件系統(tǒng)服務模塊,簡稱“遠程文件系統(tǒng)服務系統(tǒng)”,通過常見的網絡文件協(xié)議為網絡其它計算機提供文件系統(tǒng)服務。客戶計算機裝置主要包括遠程文件系統(tǒng)的本地化鏡像客戶端系統(tǒng)模塊,簡稱“本地化鏡像客戶端系統(tǒng)”;本地具有持久存儲能力的磁盤文件系統(tǒng)模塊,簡稱“本地磁盤文件系統(tǒng)”;本地“虛擬文件系統(tǒng)”服務模塊;本地計算設備上運行的各種“用戶應用程序”,簡稱“應用”;本地內存模塊。本地“虛擬文件系統(tǒng)”為各種“應用”提供統(tǒng)一的透明文件服務,無論是訪問“本地磁盤文件系統(tǒng)”還是訪問“遠程文件系統(tǒng)服務系統(tǒng)”;而本地“虛擬文件系統(tǒng)”實現(xiàn)訪問“遠程文件系統(tǒng)服務系統(tǒng)”的功能具體是由“本地化鏡像客戶端系統(tǒng)”來實現(xiàn)的;同時“本地化鏡像客戶端系統(tǒng)”將使用“本地磁盤文件系統(tǒng)”部分空間作為持久緩存“遠程文件系統(tǒng)服務系統(tǒng)”部分文件及元數(shù)據的空間。其中用戶計算設備既包括PC計算機也包括智能移動手持設備以及企業(yè)級服務器。虛擬文件系統(tǒng)服務和遠程文件系統(tǒng)服務器均為業(yè)界主流的標準協(xié)議和應用系統(tǒng)。實施例2、基于客戶端持久緩存的遠程文件系統(tǒng)鏡像方法本發(fā)明涉及的基于客戶端持久緩存的遠程文件系統(tǒng)鏡像方法具體步驟如下:第1、啟動“遠程文件系統(tǒng)服務器”,并正常開啟網絡文件系統(tǒng)服務;第2、啟動客戶計算機裝置上操作系統(tǒng)的本地“虛擬文件系統(tǒng)”服務;第3、啟動客戶計算機裝置上的“本地化鏡像客戶端系統(tǒng)”,“本地化鏡像客戶端系統(tǒng)”分別與“遠程文件系統(tǒng)服務器”、本地“虛擬文件系統(tǒng)”以及“本地磁盤文件系統(tǒng)”進行連接和通信,從而通過本地“虛擬文件系統(tǒng)”為客戶計算機裝置上的“應用”提供透明訪問“遠程文件系統(tǒng)服務器”的文件服務,具體步驟包括如下:第3.1、“本地化鏡像客戶端系統(tǒng)”讀取參數(shù)配置文件,獲取相關運行參數(shù),運行參數(shù)包括“遠程文件系統(tǒng)”認證信息和登錄目錄、“本地虛擬文件系統(tǒng)”的掛載目錄和訪問權限信息、“本地磁盤文件系統(tǒng)”上的持久緩存目錄和元數(shù)據文件信息、運行性能與安全參數(shù);第3.2、“本地化鏡像客戶端系統(tǒng)”在客戶計算機裝置的內存建立并初始化“元數(shù)據管理區(qū)”和“文件數(shù)據緩存區(qū)”;第3.3、“本地化鏡像客戶端系統(tǒng)”讀取“本地磁盤文件系統(tǒng)”上的持久緩存目錄及元數(shù)據文件,進一步讀取已在本地持久緩存目錄中緩存的遠程文件系統(tǒng)目錄和文件數(shù)據到“本地化鏡像客戶端系統(tǒng)”內存中的“文件數(shù)據緩存區(qū)”中,并修改相應的元數(shù)據管理區(qū);第3.4、“本地化鏡像客戶端系統(tǒng)”連接“遠程文件系統(tǒng)服務器”,提交“遠程文件系統(tǒng)服務器”所需要的用戶名和口令給“遠程文件系統(tǒng)服務器”,經過“遠程文件系統(tǒng)服務器”認證通過后,讀取遠程文件系統(tǒng)相應目錄及其部分子目錄和文件并合并到“本地化鏡像客戶端系統(tǒng)”的內存空間的文件數(shù)據緩存區(qū)中,并修改“本地化鏡像客戶端系統(tǒng)”內存中的“元數(shù)據管理區(qū)”;第3.5、“本地化鏡像客戶端系統(tǒng)”向“本地虛擬文件系統(tǒng)”注冊并掛載到指定的掛載目錄上,開始提供透明訪問“遠程文件系統(tǒng)服務器”的文件服務;第3.6、本地計算設備上運行的“應用”通過標準的本地“虛擬文件系統(tǒng)”訪問“本地化鏡像客戶端系統(tǒng)”所提供的文件服務,從而透明地訪問“遠程文件系統(tǒng)”;第3.7、“本地化鏡像客戶端系統(tǒng)”正常運行期間,利用“本地磁盤文件系統(tǒng)”中指定的持久緩存目錄,動態(tài)地管理“應用”訪問“遠程文件系統(tǒng)服務器”的文件數(shù)據,包括下載和上傳文件及目錄數(shù)據,以保持本地“磁盤文件系統(tǒng)”中持久緩存數(shù)據和遠程文件系統(tǒng)數(shù)據的一致性;并動態(tài)維護“本地化鏡像客戶端系統(tǒng)”內存中的“元數(shù)據管理區(qū)”和“文件數(shù)據緩存區(qū)”信息,以及保持“本地化鏡像客戶端系統(tǒng)”內存數(shù)據和本地磁盤文件系統(tǒng)中持久緩存數(shù)據的一致性;第4、當停止“本地化鏡像客戶端系統(tǒng)”時,“本地化鏡像客戶端系統(tǒng)”將撤銷與本地“虛擬文件系統(tǒng)”的注冊,“本地化鏡像客戶端系統(tǒng)”將內存中“元數(shù)據管理區(qū)”和“文件數(shù)據緩存區(qū)”保存到本地磁盤文件系統(tǒng)中指定的持久緩存的目錄中,并關閉與遠程文件系統(tǒng)服務器的連接。本發(fā)明的具體實現(xiàn)如下:
一、所述的“本地化鏡像客戶端系統(tǒng)”主要包括如下模塊:8卩“核心管理系統(tǒng)”模塊,“內存緩存管理驅動”模塊、“網絡文件系統(tǒng)驅動”模塊、“本地磁盤文件系統(tǒng)驅動”模塊?!昂诵墓芾硐到y(tǒng)”模塊負責“本地化鏡像客戶端系統(tǒng)”的上層主要業(yè)務功能,其它模塊負責具體的底層操作?!氨镜鼗R像客戶端系統(tǒng)”中的“核心管理系統(tǒng)”模塊主要包括如下子模塊:即IO請求響應子模塊、緩存查詢子模塊、本地磁盤緩存處理子模塊、本地內存緩存處理子模塊、網絡監(jiān)控子模塊、IO監(jiān)控子模塊、本地緩存整理子模塊。二、“本地化鏡像客戶端系統(tǒng)”內存中主要數(shù)據結構包括:內存元數(shù)據區(qū)、內存文件數(shù)據緩存區(qū)、內存緩存映射表、內存網絡任務表;“本地化鏡像客戶端系統(tǒng)”在“本地磁盤文件系統(tǒng)”持久存儲的主要數(shù)據文件包括:元數(shù)據文件、網絡任務文件、數(shù)據緩存文件。三、“本地化鏡像客戶端系統(tǒng)”在“本地磁盤文件系統(tǒng)”中的指定持久緩存目錄中建立遠程文件系統(tǒng)數(shù)據的本地化持久緩存。遠程文件系統(tǒng)中的文件及目錄在“本地磁盤文件系統(tǒng)”的指定持久緩存目錄中有對應的文件來持久緩存其全部數(shù)據(也可以持久緩存其部分數(shù)據),由“本地化鏡像客戶端系統(tǒng)”負責管理上述本地化持久緩存數(shù)據。由圖2可以看出“本地磁盤文件系統(tǒng)”持久緩存目錄中只緩存存儲了遠程文件系統(tǒng)中的部分文件,若“本地磁盤文件系統(tǒng)”持久緩存目錄空間允許也可緩存存儲了遠程文件系統(tǒng)中文件及目錄的全部數(shù)據。此持久緩存文件數(shù)據為元數(shù)據及文件數(shù)據,其組織方式見圖4及圖5。圖4為本地磁盤文件系統(tǒng)持久緩存中元數(shù)據的結構圖,此結構圖中可以看出本發(fā)明的元數(shù)據組織結構:每個“遠程文件系統(tǒng)服務器”上“遠程文件系統(tǒng)登陸目錄”下的文件或文件夾均有一個對應的文件元素9100。此文件元素由一個唯一識別的i結點編號9101、“遠程文件系統(tǒng)登陸目錄”下的i結點編號9102、對應的文件元數(shù)據屬性9103、父目錄9104、子元素9105、傳輸狀態(tài)(上傳狀態(tài)9106,表示是否已經將修改后的數(shù)據塊上傳完全;接收狀態(tài)9107,表示是否將數(shù)據塊接受完全;載入狀態(tài)9108,表示是否將子元素9105的數(shù)據載入完全;磁盤緩存狀態(tài)9109,表示是否有磁盤持久緩存)、時間戳9110 (表示本地元數(shù)據最后更新時間)以及文件數(shù)據塊映射表9111等信息組成;通過映射表集合9600來存儲具體的映射表9601,每個映射表9700信息對應著相關的存儲文件數(shù)據的緩存元素9800 (內存地址或磁盤持久緩存文件及偏移量等)、塊編號9701、塊類型9702、塊大小9703、等信息;此外,通過全局控制器9000存儲索引元數(shù)據使用的根節(jié)點9002,文件元素表9003以及文件元素工作表9004等信息。通過訪問根節(jié)點9002以及結合文件元素9100內部的父目錄9104子元素9105信息,可以實現(xiàn)樹狀索引,通過對文件元素工作表9004和文件元素表9003的查詢,可以實現(xiàn)常用文件的索引,提高訪問速度。圖5為文件數(shù)據緩存區(qū)的數(shù)據組織結構圖。此結構圖中可以看出本發(fā)明的文件數(shù)據組織方式:本發(fā)明通過使用基于塊的文件數(shù)據索引,可以實現(xiàn)單一文件的不同塊分別存在于“遠程文件系統(tǒng)登陸目錄”、本地內存緩存以及本地磁盤持久緩存上;當文件映射塊表示對應文件塊存在于遠端的時候,塊映射8100不存儲任何額外信息;當文件映射塊對應的文件塊存在于內存緩存的時候,塊映射8200存儲額外的塊長度8203,塊內存地址偏移量8202以及是否與前后文件塊連續(xù)8204等信息;當文件映射塊對對應的文件塊存在于本地磁盤持久緩存的時候,塊映射8300額外存儲此文件塊所在的緩存文件8304、塊長度8304、偏移位置8303、是否與前后文件塊連續(xù)8305等信息。
四、“本地磁盤文件系統(tǒng)”的指定持久緩存目錄的空間大小可以是無限大(即僅受限于該“本地磁盤文件系統(tǒng)”的空間大小),也可以由“本地化鏡像客戶端系統(tǒng)”的參數(shù)來設定具體的持久緩存目錄的空間大小(即“本地磁盤文件系統(tǒng)”的指定持久緩存目錄的實際使用空間不能超過參數(shù)設定值),并且在“本地化鏡像客戶端系統(tǒng)”運行期間可以動態(tài)改變具體的持久緩存目錄的空間大小。當持久緩存目錄已使用空間達到空間大小上限時,“本地化鏡像客戶端系統(tǒng)”啟動預先定義的算法(例如LRU)對過期緩存文件進行清理。五、“本地磁盤文件系統(tǒng)”上持久緩存目錄中存儲的數(shù)據為“元數(shù)據文件”及“緩存文件”?!氨镜鼗R像客戶端系統(tǒng)”將文件的數(shù)據以及文件的元數(shù)據分別存放?!霸獢?shù)據文件”用來持久存儲遠程文件系統(tǒng)登錄目錄(以及其所轄子目錄和文件)的信息關系,以及記錄在“本地磁盤文件系統(tǒng)”上文件數(shù)據緩存狀態(tài)?!熬彺嫖募眲t持久緩存遠程文件系統(tǒng)中特定文件數(shù)據到“本地磁盤文件系統(tǒng)”上的持久緩存目錄中的文件?!氨镜鼗R像客戶端系統(tǒng)”通過“元數(shù)據文件”可重構相應的遠程文件系統(tǒng)目錄結構以及在“本地磁盤文件系統(tǒng)”上的文件緩存狀態(tài)?!氨镜鼗R像客戶端系統(tǒng)”運行時讀取該元數(shù)據文件部分或全部內容到內存中的“元數(shù)據管理區(qū)”,以及讀取“緩存文件”部分或者全部內容到內存中的“文件緩存數(shù)據區(qū)”。“本地化鏡像客戶端系統(tǒng)”定時將內存中“元數(shù)據管理區(qū)”內容回寫到“本地磁盤文件系統(tǒng)”中的元數(shù)據文件中,以及將內存中的“文件緩存數(shù)據區(qū)”回寫到“本地磁盤文件系統(tǒng)”中的相對應的“緩存文件”,以保證遠程文件數(shù)據的本地化持久存儲;如圖3所示,通過“本地化鏡像客戶端系統(tǒng)”中的“緩存查詢模塊”2211進行對“緩存映射表模塊” 2218進行查詢后若發(fā)現(xiàn)對應的元數(shù)據存儲在本地磁盤文件系統(tǒng)緩存目錄上,則調用“本地磁盤緩存處理模塊” 2214通過“本地磁盤文件系統(tǒng)驅動” 224讀取相應的元數(shù)據信息,并更新“緩存映射表模塊” 2218 (表現(xiàn)為增加新的文件元素9100并寫入相關信息),之后通知“緩存查詢模塊”2211通過新生成的文件元素9100進行文件數(shù)據映射的查詢。若需要獲取的數(shù)據存在于本地磁盤文件系統(tǒng)緩存目錄上,則通過“本地磁盤緩存處理模塊2214”調用“本地磁盤文件系統(tǒng)驅動” 224根據緩存元素9800內部所記錄的存儲文件名、偏移量、長度等信息讀取相應的數(shù)據到內存緩存,并更新緩存元素9800為內存緩存,記錄內存中偏移量等內容。最后由“本地內存緩存處理模塊”2213響應“I/O請求響應模塊”2217構造返回數(shù)據返回給應用230。同時“I/O監(jiān)控模塊”2216定時清理“內存緩沖區(qū)”將過期元數(shù)據及文件數(shù)據寫入本地磁盤文件系統(tǒng)緩存目錄。六、“本地化鏡像客戶端系統(tǒng)”向本地計算設備上的應用提供塊級別的文件服務,即應用請求讀取某文件的任意偏移量開始的小于等于虛擬文件系統(tǒng)規(guī)定大小的連續(xù)數(shù)據(即一個塊數(shù)據)時,“本地化鏡像客戶端系統(tǒng)”將按其請求提供相應數(shù)據;“本地化鏡像客戶端系統(tǒng)”對內存中文件數(shù)據緩存區(qū)中的管理是以塊為單位,即提供塊大小的緩存空間申請和釋放,塊大小可由“本地化鏡像客戶端系統(tǒng)”的參數(shù)配置文件指定。七、“本地化鏡像客戶端系統(tǒng)”通過將自身掛載到用戶計算設備的“虛擬文件系統(tǒng)”,通過實現(xiàn)“虛擬文件系統(tǒng)”的標準訪問接口的方式來提供文件服務。用戶可以通過訪問指定的掛載目錄來進行文件操作。八、“本地化鏡像客戶端系統(tǒng)”支持與多種類型的遠程文件系統(tǒng)服務器連接和訪問,“本地化鏡像客戶端系統(tǒng)”根據配置參數(shù)來自動地維護與遠程文件系統(tǒng)服務器連接。當網絡出現(xiàn)故障或與“遠程文件系統(tǒng)服務器”連接失敗時,“本地化鏡像客戶端系統(tǒng)”可以暫時不連接“遠程文件系統(tǒng)服務器”,而只利用“本地磁盤文件系統(tǒng)”指定的緩存目錄中的緩存文件數(shù)據為本地計算設備上的“應用”提供文件服務。如圖6所示,“本地化鏡像客戶端系統(tǒng)”網絡監(jiān)控模塊連接“遠程文件系統(tǒng)服務”的流程圖,當網絡斷開時進入離線模式,若用戶(應用)訪問已經緩存的數(shù)據內容則正常返回,若訪問本機未進行緩存的數(shù)據內容,則根據用戶的設置決定是立刻返回錯誤提示或者阻塞至網絡重新連接并接受所需數(shù)據后返回。同時,當網絡斷開時,“網絡監(jiān)控模塊”會定時嘗試重新連接網絡,當網絡重新建立后則跳出離線模式。九、當本地計算設備上的“應用”對通過由“本地化鏡像客戶端系統(tǒng)”提供文件服務的掛載目錄所轄的子目錄和文件進行讀操作時,本地化鏡像客戶端系統(tǒng)首先查詢其內存“元數(shù)據管理區(qū)”看應用所請求的文件和其數(shù)據塊是否存在于內存中的“文件數(shù)據緩存區(qū)”,若存在則直接將相應數(shù)據拷貝給應用;若不存在內存中的“文件數(shù)據緩存區(qū)”,則進一步查看是否在本地磁盤文件系統(tǒng)中指定持久緩存目錄中,若存在于本地持久緩存目錄中,則將相應數(shù)據讀取到內存的文件數(shù)據緩存區(qū),再進一步拷貝給應用;若也不在本地磁盤文件系統(tǒng)中指定的持久緩存目錄中,則向“遠程文件系統(tǒng)服務器”發(fā)起請求讀取相應的文件和數(shù)據塊到本地內存的文件數(shù)據緩存區(qū),再進一步拷貝給應用;若向“遠程文件系統(tǒng)服務器”發(fā)起請求讀取相應的文件和數(shù)據塊操作失敗,則直接返回錯誤給應用。最終“本地化鏡像客戶端系統(tǒng)”修改其內存“元數(shù)據管理區(qū)”和“文件數(shù)據緩存區(qū)”。如圖3所示,通過“本地化鏡像客戶端系統(tǒng)”中的“緩存查詢模塊”2211進行對“緩存映射表模塊” 2218進行查詢后若發(fā)現(xiàn)對應的元數(shù)據存儲在本地磁盤文件系統(tǒng)緩存目錄上,則調用“本地磁盤緩存處理模塊” 2214通過“本地磁盤文件系統(tǒng)驅動” 224讀取相應的元數(shù)據信息,并更新“緩存映射表模塊”2218 (表現(xiàn)為增加新的文件元素9100并寫入相關信息),之后通知“緩存查詢模塊”2211通過新生成的文件元素9100進行文件數(shù)據映射的查詢;若存在于本地內存緩存,則通過“本地內存緩存處理模塊”2213調用“內存驅動”222獲取元數(shù)據信息;若存在于遠端文件系統(tǒng)登陸目錄處,則通過“網絡任務生成模塊”2212構造網絡任務傳輸給“網絡任務表模塊” 2215,2215將使用“網絡驅動” 223與遠端進行通信完成數(shù)據獲取操作,若獲取操作失敗或當前處于網絡離線模式,則返回錯誤代碼。若需要獲取的文件數(shù)據存在于本地磁盤文件系統(tǒng)緩存目錄上,則通過“本地磁盤緩存處理模塊2214”調用“本地磁盤文件系統(tǒng)驅動” 224根據緩存元素9800內部所記錄的存儲文件名、偏移量、長度等信息讀取相應的數(shù)據到內存緩存,并更新緩存元素9800為內存緩存,記錄內存中偏移量等內容。最后由“本地內存緩存處理模塊”2213響應“I/O請求響應模塊”2217構造返回數(shù)據返回給應用230 ;若所需獲取的文件數(shù)據存在于內存緩存,則直接通過“本地內存緩存處理模塊”2213響應“I/O請求響應模塊”2217構造返回數(shù)據返回給應用230 ;若所需獲取的文件數(shù)據存在于遠端文件系統(tǒng)登陸目錄,則通過“網絡任務生成模塊”2212產生包括遠程節(jié)點號9102,偏移量9804和大小9803的網絡任務傳遞給“網絡任務表模塊” 2215,其通過“網絡驅動”223與遠程交互獲得所需數(shù)據,之后更新緩存元素9800為內存緩存,記錄偏移量等信息,若獲取操作失敗或當前處于網絡離線模式,則返回錯誤代碼。最后使用“本地內存緩存處理模塊”2213響應“I/O請求響應模塊”2217構造返回數(shù)據返回給應用230。十、當本地計算設備上的“應用”對通過由“本地化鏡像客戶端系統(tǒng)”提供文件服務的掛載目錄所轄的子目錄和文件進行寫操作時,“本地化鏡像客戶端系統(tǒng)”首先查詢其內存“元數(shù)據管理區(qū)”并判斷應用所請求的文件和數(shù)據塊是否存在于內存中的“文件數(shù)據緩存區(qū)”,若存在則直接將應用提供的寫入數(shù)據拷貝到對應的內存“文件數(shù)據緩存區(qū)”中;若不在本地內存的“文件數(shù)據緩存區(qū)”,則在先本地內存的“文件數(shù)據緩存區(qū)”申請相應大小的內存空間,然后將應用提供的寫入數(shù)據拷貝到對應的本地內存“文件數(shù)據緩存區(qū)”中。若在本地內存的“文件數(shù)據緩存區(qū)”申請一塊內存空間失敗,則先進行內存的“文件數(shù)據緩存區(qū)”清理,然后再重新申請內存空間,重復上述操作。最終“本地化鏡像客戶端系統(tǒng)”修改其內存的“元數(shù)據管理區(qū)”和“文件數(shù)據緩存區(qū)”。如圖3所示,通過“本地化鏡像客戶端系統(tǒng)”中的“緩存查詢模塊”2211進行對“緩存映射表模塊”2218進行查詢后若發(fā)現(xiàn)對應的元數(shù)據存儲在本地內存緩存中,則通知“緩存查詢模塊”2211通過文件元素9100進行文件數(shù)據映射的查詢;若需要獲取的文件數(shù)據存在于本地磁盤文件系統(tǒng)緩存目錄上,則通過“本地磁盤緩存處理模塊2214”調用“本地磁盤文件系統(tǒng)驅動”224根據緩存元素9800內部所記錄的存儲文件名、偏移量、長度等信息讀取相應的數(shù)據到內存緩存,并更新緩存元素9800為內存緩存,記錄內存中偏移量等內容。此時若內存緩存已經達到用戶規(guī)定的最大大小,則通過“本地緩存整理模塊”2219將過期的數(shù)據塊通過“本地磁盤緩存處理模塊” 2214利用“本地磁盤文件系統(tǒng)驅動” 224存儲到本地磁盤的持久緩存區(qū),然后通過“本地內存緩存處理模塊” 2213利用“內存驅動” 222將這些過期數(shù)據塊移除,此操作會多次進行直到內存緩存小于用戶規(guī)定的最大大小。最后由“本地內存緩存處理模塊”2213響應“I/O請求響應模塊”2217構造返回數(shù)據返回給應用230 ;若所需獲取的文件數(shù)據存在于內存緩存,則直接通過“本地內存緩存處理模塊” 2213響應“I/O請求響應模塊”2217構造返回數(shù)據返回給應用230。十一、“本地化鏡像客戶端系統(tǒng)”負責其內存中“文件數(shù)據緩存區(qū)”的管理(包括清理不用的文件數(shù)據緩存塊、加載新的文件數(shù)據緩存塊、對已有文件數(shù)據緩存塊進行索引)。當“文件數(shù)據緩存區(qū)”中的空閑數(shù)據塊緩存空間沒有時或少于由“本地化鏡像客戶端系統(tǒng)”運行參數(shù)規(guī)定的空閑數(shù)據塊緩存空間數(shù)目時,“本地化鏡像客戶端系統(tǒng)”啟動內存的“文件數(shù)據緩存區(qū)”清理工作,清理狀態(tài)為“使用”的數(shù)據塊。清理算法可由“本地化鏡像客戶端系統(tǒng)”運行參數(shù)指定,“本地化鏡像客戶端系統(tǒng)”提供接口機制,并支持用戶自定義清理算法。若該“使用”狀態(tài)的數(shù)據塊未被修改,則直接設置為空閑狀態(tài)并修改相應的元數(shù)據管理區(qū)。若該“使用”狀態(tài)的數(shù)據塊被修改,則進一步判斷其所對應的文件在“本地磁盤文件系統(tǒng)”的持久緩存目錄中是否存在,若該文件在“本地磁盤文件系統(tǒng)”的持久緩存目錄中存在則直接將文件數(shù)據緩存區(qū)中該“使用”狀態(tài)的數(shù)據塊回寫到“本地磁盤文件系統(tǒng)”的對應文件中,然后將內存文件數(shù)據緩存區(qū)中的該數(shù)據塊狀態(tài)設置為空閑狀態(tài)并修改相應的元數(shù)據管理區(qū);若該文件在“本地磁盤文件系統(tǒng)”的持久緩存目錄中不存在則先在“本地磁盤文件系統(tǒng)”的持久緩存目錄中建立該文件,然后直接將文件數(shù)據緩存區(qū)中該“使用”狀態(tài)的數(shù)據塊回寫到“本地磁盤文件系統(tǒng)”的對應文件中,然后將內存“文件數(shù)據緩存區(qū)”中的該數(shù)據塊狀態(tài)設置為空閑狀態(tài)并修改相應的元數(shù)據管理區(qū)。具體運行機制如下:“本地緩存整理模塊”2219定時監(jiān)控當前緩存狀態(tài),若本地內存緩存達到用戶定義的最大大小,開始執(zhí)行清理操作。首先通過“緩存映射表模塊”2218查詢在內存中的文件元素9100,判斷上傳狀態(tài)9106,若所有被修改模塊已經上傳完畢,并且當前沒有被使用,則將映射表集合9600中映射表9700對應的緩存元素9800通過“本地磁盤緩存處理模塊” 2214利用“本地磁盤文件系統(tǒng)驅動” 224存儲到本地持久緩存中,并更新緩存元素9800以及映射表9700中的塊類型9702 ;若本地磁盤緩存達到用戶定義的最大大小,開始執(zhí)行清理操作。首先通過“本地緩存處理模塊”獲取本地磁盤持久緩存中的元數(shù)據信息,查看文件元素9100,按時間戳9110排序,若上傳狀態(tài)9106為0,即表示所有修改已經上傳到遠程文件系統(tǒng)服務器,則可以將映射表集合9600中映射表9700對應的緩存元素9800從磁盤緩存中清除。十二、“本地化鏡像客戶端系統(tǒng)”負責本地磁盤文件系統(tǒng)中指定持久緩存目錄中的數(shù)據管理(包括刪除不用的緩存文件、創(chuàng)建新的緩存文件、或修改已有的緩存文件、對已有緩存文件進行索引)。對于那些在“本地磁盤文件系統(tǒng)”中指定持久緩存目錄中的自最近一次修改以來尚未上傳到“遠程文件系統(tǒng)”中的文件及目錄,“本地化鏡像客戶端系統(tǒng)”同步或者異步地將其上傳到遠程文件系統(tǒng)中(采用同步方式或異步方式由“本地化鏡像客戶端系統(tǒng)”運行參數(shù)決定),并修改“本地化鏡像客戶端系統(tǒng)”中相應的元數(shù)據。十三、“本地化鏡像客戶端系統(tǒng)”負責本地磁盤文件系統(tǒng)中指定持久緩存目錄中的磁盤空間大小管理。當“本地磁盤文件系統(tǒng)”中指定持久緩存目錄中文件數(shù)據所占用的磁盤空間大小達到“本地化鏡像客戶端系統(tǒng)”的參數(shù)規(guī)定的大小時,“本地化鏡像客戶端系統(tǒng)”運行緩存文件淘汰算法,將指定的欲淘汰文件數(shù)據刪除,從而保證“本地磁盤文件系統(tǒng)”中指定持久緩存目錄中文件數(shù)據所占用的磁盤空間大小小于“本地化鏡像客戶端系統(tǒng)”的參數(shù)規(guī)定的大小。緩存文件淘汰算法可由“本地化鏡像客戶端系統(tǒng)”運行參數(shù)指定,“本地化鏡像客戶端系統(tǒng)”提供接口機制,并支持用戶自定義緩存文件淘汰算法。十四、“本地化鏡像客戶端系統(tǒng)”負責“本地磁盤文件系統(tǒng)”中指定持久緩存目錄中的文件數(shù)據時,在刪除本地磁盤文件系統(tǒng)中指定持久緩存目錄中文件數(shù)據前,需要根據“本地化鏡像客戶端系統(tǒng)”的元數(shù)據管理區(qū)信息判斷該欲刪除的文件自最近一次修改以來是否已經上傳到遠程文件系統(tǒng)中,若尚未上傳到遠程文件系統(tǒng)則先生成上傳任務表,并根據上傳任務表將相關文件上傳到遠程文件系統(tǒng)的相應文件上。若上傳該欲刪除的文件失敗,則取消在“本地磁盤文件系統(tǒng)”中指定持久緩存目錄中刪除該文件,否則在“本地磁盤文件系統(tǒng)”中指定持久緩存目錄中刪除該文件。十五、“本地化鏡像客戶端系統(tǒng)”負責透明地將遠程文件系統(tǒng)指定目錄所管轄的子目錄和文件的全部或者部分數(shù)據下載到“本地磁盤文件系統(tǒng)”中指定持久緩存目錄中。“本地化鏡像客戶端系統(tǒng)”根據其運行參數(shù)規(guī)定的文件數(shù)據預取算法(例如優(yōu)先預取最近IO文件所屬相同目錄下文件的算法)生成下載任務表,動態(tài)地將遠程文件系統(tǒng)指定目錄中所要預取的目錄和文件下載到“本地磁盤文件系統(tǒng)”中指定持久緩存目錄中,從而當本地設備上運行的“應用”訪問這些已經提前下載到“本地磁盤文件系統(tǒng)”中指定持久緩存目錄中的遠程文件系統(tǒng)的文件時其將以本地磁盤文件系統(tǒng)的訪問速度對該文件訪問,而不是網絡訪問速度。十六、“本地化鏡像客戶端系統(tǒng)”負責透明地將“本地磁盤文件系統(tǒng)”中指定持久緩存目錄中在本地計算設備上已經修改的文件和新創(chuàng)建的文件以及刪除文件等操作異步地或者同步地提交到遠程文件系統(tǒng)指定目錄中,具體采用異步模式還是同步模式取決于“本地化鏡像客戶端系統(tǒng)”運行參數(shù)。十七、“本地化鏡像客戶端系統(tǒng)”中的上傳任務和下載任務統(tǒng)一為“網絡任務表”,其存在于“本地化鏡像客戶端系統(tǒng)”內存中,并由“本地化鏡像客戶端系統(tǒng)”定期將其寫入到“本地磁盤文件系統(tǒng)”中指定持久緩存目錄中的“網絡任務文件”中,從而保證其持久存儲,在“本地化鏡像客戶端系統(tǒng)”重新啟動后加載“網絡任務文件”到內存中的“網絡任務表”,使“本地化鏡像客戶端系統(tǒng)”繼續(xù)上次運行網絡任務。十八、“本地化鏡像客戶端系統(tǒng)”的“I/O監(jiān)控模塊”負責用于監(jiān)控本地計算設備當前操作系統(tǒng)負載,當達到運行參數(shù)中設置的條件時,即根據用戶設置的規(guī)則暫?;蜓泳從承┚W絡任務的執(zhí)行(數(shù)據下載、數(shù)據預取以及修改后數(shù)據的上傳)。為能進一步了解本發(fā)明的技術內容、特點及功效,茲列舉以下應用實例,并配合附圖詳細說明如下:應用實例I在傳統(tǒng)的遠程文件系統(tǒng)使用場景中,通常需要不間斷的網絡連接來保證遠程文件系統(tǒng)的正常使用,此時若用戶處在不穩(wěn)定的網絡環(huán)境下,由于網絡斷開等原因導致無法正常使用遠程文件系統(tǒng)。在應用實例I中,應用可以使用本發(fā)明連接其遠程文件系統(tǒng),通過本地磁盤文件系統(tǒng)持久緩存機制,有效提高應用訪問遠程文件系統(tǒng)的速度,大大節(jié)省網絡流量,同時保障不穩(wěn)定網絡環(huán)境下的正常使用。圖7展示應用實例I的工作流程。首先,啟動安裝了“本地化鏡像客戶端”的用戶計算設備。實例I使用安裝Linux2.6內核的PC機,“遠程文件系統(tǒng)服務器端”可以使用普通PC機也可使用現(xiàn)有商業(yè)云?!斑h程文件系統(tǒng)服務器”在實例I中使用SSH Server0 “本地化鏡像客戶端”與“遠程文件系統(tǒng)服務器”的連接可以使用以太網或無線網絡。在實例I中采用無線網絡IEEE802.llb/g連接。其次,開啟“本地化鏡像客戶端”,此時“本地文件系統(tǒng)驅動”、“內存緩存管理”、“網絡文件系統(tǒng)驅動”以及“網絡監(jiān)控模塊”作為“本地化鏡像客戶端”進程的子線程啟動,“網絡文件系統(tǒng)驅動”模塊負責建立TCP連接,“網絡監(jiān)控模塊”開始監(jiān)控網絡連接狀況并開始嘗試連接服務器。同時“本地緩存整理模塊”通過調用“本地磁盤緩存處理模塊”開始載入本地持久緩存中的元數(shù)據信息,并構造“緩存映射表模塊”的數(shù)據。登陸成功之后,用戶(應用)請求的數(shù)據若在本地無緩存,則通過“網絡任務生成模塊”、“網絡任務模塊”和“網絡文件系統(tǒng)驅動”向“遠程文件系統(tǒng)服務器”請求數(shù)據。若請求的數(shù)據在本地有緩存,則通過“本地磁盤文件系統(tǒng)驅動”、“本地磁盤緩存處理模塊”、“本地內存緩存處理模塊”、“內存緩存管理”進行數(shù)據的獲取。網絡斷開后,“本地化鏡像客戶端”將會由“網絡監(jiān)控模塊”轉換為離線模式,此時如果用戶(應用)請求的數(shù)據在本地有緩存,則直接返回,否則將會返回錯誤信息。此時具體數(shù)據讀取流程參照圖7、8、9給出。如圖8 所示,“緩存映射表模塊”2218 中載入了 “/,,、“.vimrc”、“manuscripts,,、“paper.tex”、“slides”幾個文件元素9100,同時在磁盤中有未載入的文件元素9100bashrc”、“VMware”。若此時嘗試獲取.bashrc的文件元數(shù)據信息,那么通過“本地化鏡像客戶端系統(tǒng)”中的“緩存查詢模塊”2211進行對“緩存映射表模塊”2218中“.bashrc”查詢后發(fā)現(xiàn)對應的元數(shù)據存儲在本地磁盤文件系統(tǒng)緩存目錄上,調用“本地磁盤緩存處理模塊”2214通過“本地磁盤文件系統(tǒng)驅動”224讀取.bashrc的元數(shù)據信息,并更新“緩存映射表模塊”2218 (表現(xiàn)為增加新的文件元素9100并寫入相關信息)。若此時嘗試讀取.vimrc的元數(shù)據,那么通過“本地化鏡像客戶端系統(tǒng)”中的“緩存查詢模塊”2211進行對“緩存映射表模塊” 2218中“.bashrc ”查詢后發(fā)現(xiàn)對應的元數(shù)據存儲在本地內存緩存中,則調用“本地內存緩存處理模塊” 2213使用“內存驅動” 222讀取.bashrc的元數(shù)據信息。如圖9所示,文件數(shù)據的狀況如下:Vim.rc文件共4塊數(shù)據塊,其中O、I號數(shù)據塊存在于內存緩存,2、3號數(shù)據塊存在于磁盤緩存,4號數(shù)據塊本地無緩存;VMware文件共有700塊數(shù)據塊,O到500塊存在于內存緩存,501到529本地無緩存,530到700存在于磁盤緩存。若此時嘗試用文本編輯器打開vim.rc文件,由于文本編輯器默認載入文件的全部內容,所以應用230向“MFS核心管理系統(tǒng)”221請求全部五塊數(shù)據。此時“緩存查詢模塊”2211從“緩存映射表模塊”2218通過遍歷根節(jié)點9002及父目錄9104子元素9105的方式(樹狀遍歷)或者查詢文件元素工作表9200及文件元素表9300的方式(根據用戶設定參數(shù)不同而選擇,默認先查詢文件元素工作表,再查詢文件元素表,最后進行樹狀遍歷)獲取vim.rc對應的文件元素9100,通過塊映射表9111找到塊映射表集合9600,通過遍歷映射表9601獲得映射表9700,根據9700中塊類型9702選擇文件的讀取方式(使用“本地磁盤緩存處理模塊” 2214、“本地內存緩存處理模塊” 2213或者“網絡任務生成模塊” 2212)。此實例中,首先通過“本地內存緩存處理模塊”2213獲取O、I號數(shù)據塊。然后通過“本地磁盤緩存處理模塊2214”調用“本地磁盤文件系統(tǒng)驅動”224根據緩存元素9800內部所記錄的存儲文件名、偏移量、長度等信息讀取2、3號數(shù)據塊到內存緩存,并更新緩存元素9800為內存緩存,記錄內存中偏移量等內容。最后,若當前網絡為離線模式,則返回對應的錯誤代碼;若當前網絡正常,則通過“網絡任務生成模塊”2212產生包括遠程節(jié)點號9102,偏移量9804和大小9803的網絡任務傳遞給“網絡任務表模塊”2215,其通過“網絡驅動”223與遠程交互獲得所需數(shù)據,之后更新緩存元素9800為內存緩存,記錄偏移量等信息,若獲取操作失敗或當前處于網絡離線模式,則返回錯誤代碼。最后使用“本地內存緩存處理模塊”2213響應“I/O請求響應模塊”2217構造返回數(shù)據返回給應用230。此讀取實例下,當網絡離線模式時由于應用的特性,無法正常訪問此文件。若此時嘗試用虛擬機軟件載入虛擬硬盤VMware,此時應用僅請求需要的文件數(shù)據而不是全部文件數(shù)據,所以當501到509號數(shù)據未被使用時,此虛擬機可以正常運行在離線模式下??紤]到在此公開的對本發(fā)明的描述和特例的實施例,本發(fā)明的其他實施例對于本領域的技術人員來說是顯而意見的。這些說明和實施例僅作為例子來考慮,它們都屬于由所附權利要求所指示的本發(fā)明的保護范圍和精神之內。
權利要求
1.基于客戶端持久緩存的遠程文件系統(tǒng)鏡像系統(tǒng),其特征在于,該系統(tǒng)包括遠程文件系統(tǒng)服務器裝置和客戶計算機裝置,二者通過網絡互聯(lián); 遠程文件系統(tǒng)服務器裝置,主要包括遠程文件系統(tǒng)服務模塊,簡稱“遠程文件系統(tǒng)服務系統(tǒng)”,通過常見的網絡文件協(xié)議為網絡其它計算機提供文件系統(tǒng)服務; 客戶計算機裝置,主要包括遠程文件系統(tǒng)的本地化鏡像客戶端系統(tǒng)模塊,簡稱“本地化鏡像客戶端系統(tǒng)”;本地具有持久存儲能力的磁盤文件系統(tǒng)模塊,簡稱“本地磁盤文件系統(tǒng)”;本地“虛擬文件系統(tǒng)”服務模塊;本地計算設備上運行的各種“用戶應用程序”,簡稱“應用”;本地內存模塊; 本地“虛擬文件系統(tǒng)”為各種“應用”提供統(tǒng)一的透明文件服務,無論是訪問“本地磁盤文件系統(tǒng)”還是訪問“遠程文件系統(tǒng)服務系統(tǒng)”;而本地“虛擬文件系統(tǒng)”實現(xiàn)訪問“遠程文件系統(tǒng)服務系統(tǒng)”的功能,具體是由“本地化鏡像客戶端系統(tǒng)”來實現(xiàn)的;同時“本地化鏡像客戶端系統(tǒng)”將使用“本地磁盤文件系統(tǒng)”部分空間作為持久緩存“遠程文件系統(tǒng)服務系統(tǒng)”部分文件及元數(shù)據的空間。
2.根據權利要求1所述的系統(tǒng),其特征在于,所述的“本地化鏡像客戶端系統(tǒng)”由“本地化鏡像客戶端核心管理系統(tǒng)”子模塊、內存緩存管理子模塊、網絡文件系統(tǒng)驅動子模塊、和本地磁盤緩存管理子模塊組成;其中內存緩存管理子模塊負責內存中“元數(shù)據管理區(qū)”和“文件數(shù)據緩存區(qū)”的管理;網絡文件系統(tǒng)驅動子模塊負責與各種協(xié)議的網絡文件系統(tǒng)連接和文件數(shù)據傳輸及控制,各種網絡協(xié)議包括NFS、FTP、HTTP、SSH和Hadoop協(xié)議;本地磁盤緩存管理子模塊負責管理“本地磁盤文件系統(tǒng)”上的持久緩存目錄及元數(shù)據管理;“本地化鏡像客戶端核心管理系統(tǒng)”子模塊通過網絡文件系統(tǒng)驅動子模塊與遠程網絡文件系統(tǒng)進行文件傳輸及控制,“本地化鏡像客戶端核心管理系統(tǒng)”也負責完成本地“虛擬文件系統(tǒng)”傳過來的文件訪問操作,并進一步將所網絡下載的文件數(shù)據及本地“應用”修改的文件數(shù)據和控制操作統(tǒng)一緩存在客戶計算機裝置上內存緩存區(qū)和“本地磁盤文件系統(tǒng)”持久緩存目錄中。
3.根據權利要求2所述的系統(tǒng),其特征在于,“本地化鏡像客戶端系統(tǒng)”內存中主要數(shù)據結構包括:內存元數(shù)據區(qū)、內存文件數(shù)據緩存區(qū)、內存緩存映射表、內存網絡任務表;“本地化鏡像客戶端系統(tǒng)”在“本地磁盤文件系統(tǒng)”持久存儲的主要數(shù)據文件包括:元數(shù)據文件、網絡任務文件、數(shù)據緩存文件;“本地磁盤文件系統(tǒng)”的指定持久緩存目錄的空間大小僅受限于該“本地磁盤文件系統(tǒng)”的空間大小,或者由“本地化鏡像客戶端系統(tǒng)”的參數(shù)來設定具體的持久緩存目錄的空間大小,即“本地磁盤文件系統(tǒng)”的指定持久緩存目錄的實際使用空間不能超過參數(shù)設定值,并且在“本地化鏡像客戶端系統(tǒng)”運行期間能夠動態(tài)改變具體的持久緩存目錄的空間大小。
4.基于客戶端持久緩存的遠程文件系統(tǒng)鏡像方法,其特征在于,該方法的具體步驟如下: 第1、啟動“遠程文件系統(tǒng)服務器”,并正常開啟網絡文件系統(tǒng)服務; 第2、啟動客戶計算機裝置上操作系統(tǒng)的本地“虛擬文件系統(tǒng)”服務; 第3、啟動客戶計算機裝置上的“本地化鏡像客戶端系統(tǒng)”,“本地化鏡像客戶端系統(tǒng)”分別與“遠程文件系統(tǒng)服務器”、本地“虛擬文件系統(tǒng)”以及“本地磁盤文件系統(tǒng)”進行連接和通信,從而通過本地“虛擬文件系統(tǒng)”為客戶計算機裝置上的“應用”提供透明訪問“遠程文件系統(tǒng)服務器”的文件服務,具體步驟包括如下:第3.1、“本地化鏡像客戶端系統(tǒng)”讀取參數(shù)配置文件,獲取相關運行參數(shù),運行參數(shù)包括“遠程文件系統(tǒng)”認證信息和登錄目錄、“本地虛擬文件系統(tǒng)”的掛載目錄和訪問權限信息、“本地磁盤文件系統(tǒng)”上的持久緩存目錄和元數(shù)據文件信息、運行性能與安全參數(shù); 第3.2、“本地化鏡像客戶端系統(tǒng)”在客戶計算機裝置的內存建立并初始化“元數(shù)據管理區(qū)”和“文件數(shù)據緩存區(qū)”; 第3.3、“本地化鏡像客戶端系統(tǒng)”讀取“本地磁盤文件系統(tǒng)”上的持久緩存目錄及元數(shù)據文件,進一步讀取已在本地持久緩存目錄中緩存的遠程文件系統(tǒng)目錄和文件數(shù)據到“本地化鏡像客戶端系統(tǒng)”內存中的“文件數(shù)據緩存區(qū)”中,并修改相應的元數(shù)據管理區(qū); 第3.4、“本地化鏡像客戶端系統(tǒng)”連接“遠程文件系統(tǒng)服務器”,提交“遠程文件系統(tǒng)服務器”所需要的用戶名和口令給“遠程文件系統(tǒng)服務器”,經過“遠程文件系統(tǒng)服務器”認證通過后,讀取遠程文件系統(tǒng)相應目錄及其部分子目錄和文件并合并到“本地化鏡像客戶端系統(tǒng)”的內存空間的文件數(shù)據緩存區(qū)中,并修改“本地化鏡像客戶端系統(tǒng)”內存中的“元數(shù)據管理區(qū)”; 第3.5、“本地化鏡像客戶端系統(tǒng)”向“本地虛擬文件系統(tǒng)”注冊并掛載到指定的掛載目錄上,開始提供透明訪問“遠程文件系統(tǒng)服務器”的文件服務; 第3.6、本地計算設備上運行的“應用”通過標準的本地“虛擬文件系統(tǒng)”訪問“本地化鏡像客戶端系統(tǒng)”所提供的文件服務,從而透明地訪問“遠程文件系統(tǒng)”; 第3.7、“本地化鏡像客戶端系統(tǒng)”正常運行期間,利用“本地磁盤文件系統(tǒng)”中指定的持久緩存目錄,動態(tài)地管理“應用”訪問“遠程文件系統(tǒng)服務器”的文件數(shù)據,包括下載和上傳文件及目錄數(shù)據,以保持本地“磁盤文件系統(tǒng)”中持久緩存數(shù)據和遠程文件系統(tǒng)數(shù)據的一致性;并動態(tài)維護“本地化鏡像客戶端系統(tǒng)”內存中的“元數(shù)據管理區(qū)”和“文件數(shù)據緩存區(qū)”信息,以及保持“本地化鏡像客戶端系統(tǒng)”內存數(shù)據和本地磁盤文件系統(tǒng)中持久緩存數(shù)據的一致性; 第4、當停止“本地化鏡像客戶端系統(tǒng)”時,“本地化鏡像客戶端系統(tǒng)”將撤銷與本地“虛擬文件系統(tǒng)”的注冊,“本地化鏡像客戶端系統(tǒng)”將內存中“元數(shù)據管理區(qū)”和“文件數(shù)據緩存區(qū)”保存到本地磁盤文件系統(tǒng)中指定的持久緩存的目錄中,并關閉與遠程文件系統(tǒng)服務器的連接。
5.根據權利要求4所述的方法,其特征在于,“本地化鏡像客戶端系統(tǒng)”采用塊粒度為最小單位實現(xiàn)本地與遠程文件系統(tǒng)的文件上傳下載、以及本地持久緩存中文件的讀寫操作,以及對“遠程文件系統(tǒng)服務器”中文件的持久緩存;在“本地磁盤文件系統(tǒng)”中的指定持久緩存目錄中緩存遠程文件系統(tǒng)中的全部文件,或者緩存遠程文件系統(tǒng)中的部分文件,或者緩存遠程文件系統(tǒng)中的單個文件的部分數(shù)據塊;“本地化鏡像客戶端系統(tǒng)”對持久緩存文件的元數(shù)據管理采用塊粒度為最小單位,而不是文件粒度。
6.根據權利要求4所述的方法,其特征在于,“本地化鏡像客戶端系統(tǒng)”負責本地客戶計算設備中內存緩存的維護,包括刪除文件塊數(shù)據緩存、創(chuàng)建文件塊數(shù)據緩存、維護內存文件塊數(shù)據索引、修改文件塊數(shù)據緩存信息;“本地化鏡像客戶端系統(tǒng)”也負責本地磁盤文件系統(tǒng)中指定持久緩存目錄中的數(shù)據管理,包括刪除不用的緩存文件、創(chuàng)建新的緩存文件、或修改已有的緩存文件、對已有緩存文件進行索引。
7.根據權利要求4所述的方法,其特征在于,“本地化鏡像客戶端系統(tǒng)”正常運行期間,當“應用”試圖訪問“遠程文件系統(tǒng)服務器”的文件數(shù)據時,“本地化鏡像客戶端系統(tǒng)”將首先在內存中的“元數(shù)據管理區(qū)”和“文件數(shù)據緩存區(qū)”信息查找內存中是否有所欲訪問的文件數(shù)據的緩存,若內存中有所述文件數(shù)據緩存,則直接返回給“應用”所欲訪問的文件數(shù)據,不需真正訪問“遠程文件系統(tǒng)服務器”;若內存中沒有所欲訪問的文件數(shù)據的緩存,則進一步查找本地“磁盤文件系統(tǒng)”中持久緩存數(shù)據是否有所欲訪問的文件數(shù)據的緩存,若本地“磁盤文件系統(tǒng)”中有所述文件數(shù)據緩存,則直接返回給“應用”所欲訪問的文件數(shù)據,不需真正訪問“遠程文件系統(tǒng)服務器”;否則“本地化鏡像客戶端系統(tǒng)”訪問“遠程文件系統(tǒng)服務器”中所欲訪問的文件數(shù)據,更新本地客戶計算設備中內存以及本地“磁盤文件系統(tǒng)”中緩存信息,最后返回給“應用”所欲訪問的文件數(shù)據。
8.根據權利要求4所述的方法,其特征在于,“本地化鏡像客戶端系統(tǒng)”正常運行期間,當“應用”試圖在“遠程文件系統(tǒng)服務器”中建立、修改以及刪除文件操作時,“本地化鏡像客戶端系統(tǒng)”首先將建立和修改文件及控制信息緩存在本地“磁盤文件系統(tǒng)”中持久緩存目錄中,并更新本地“磁盤文件系統(tǒng)”中元數(shù)據信息,然后返回給“應用”操作結果,最后在本地客戶計算設備負載允許情況下同步或者異步方式將“應用”對“遠程文件系統(tǒng)服務器”的修改以及刪除文件操作從本地“磁盤文件系統(tǒng)”中持久緩存讀取并提交給“遠程文件系統(tǒng)服務器”。
9.根據權利要求4所述的方法,其特征在于,“本地化鏡像客戶端系統(tǒng)”負責與“遠程文件系統(tǒng)服務器”進行連接、認證以及文件上傳下載服務;若“本地化鏡像客戶端系統(tǒng)”不能正確連接和訪問“遠程文件系統(tǒng)服務器”,或“本地化鏡像客戶端系統(tǒng)”和“遠程文件系統(tǒng)服務器”正常工作中突然斷開連接時,“本地化鏡像客戶端系統(tǒng)”仍能夠繼續(xù)運行并為本地計算設備上運行的“應用”提供文件服務,此時僅提供在“本地磁盤文件系統(tǒng)”中的指定持久緩存目錄中已有緩存的相關文件服務;“本地化鏡像客戶端系統(tǒng)”異步地稍后再嘗試連接和訪問“遠程文件系統(tǒng)服務器”,當再次恢復對“遠程文件系統(tǒng)服務器”的連接和訪問時,提供正常的“遠程文件系統(tǒng)服務器” 的文件服務。
全文摘要
本發(fā)明是在網絡環(huán)境下在客戶計算設備上利用本地磁盤文件系統(tǒng)作為持久緩存空間的實現(xiàn)遠程文件系統(tǒng)的本地化鏡像方法及其系統(tǒng)。應用在客戶計算設備上通過訪問“本地化鏡像客戶端系統(tǒng)”來透明訪問遠程文件系統(tǒng)?!氨镜鼗R像客戶端系統(tǒng)”通過“本地磁盤文件系統(tǒng)”來持久緩存遠程文件系統(tǒng)的部分文件及文件的部分數(shù)據,并負責維護本地持久緩存遠程文件系統(tǒng)的一致性。本發(fā)明采用塊粒度為最小單位來實現(xiàn)本地與遠程文件系統(tǒng)的文件上傳下載、以及本地持久緩存中文件的讀寫操作,并支持對文件的部分塊數(shù)據進行持久緩存。本發(fā)明將有效提高“用戶應用程序”對遠程文件系統(tǒng)的訪問效率從而提高用戶體驗,并大大節(jié)省網絡流量。
文檔編號H04L29/08GK103116618SQ201310032480
公開日2013年5月22日 申請日期2013年1月28日 優(yōu)先權日2013年1月28日
發(fā)明者李旭東, 史寶旭 申請人:南開大學