新四季網

基於客戶端持久緩存的遠程文件系統鏡像方法及系統的製作方法

2023-11-03 21:51:42 2

專利名稱:基於客戶端持久緩存的遠程文件系統鏡像方法及系統的製作方法
技術領域:
本發明屬於計算機領域,藉助於本地磁碟文件系統作為持久緩存下,為本地客戶計算設備上運行的應用提供高效透明訪問遠程文件系統鏡像的系統與方法。
背景技術:
目前的遠程文件系統主要可分為兩種類型:1.實時在線類型的遠程文件系統,例如NFS、CIFS、SSHFS、,HDFS (Hadoop分布式文件系統),GFS (Google文件系統)等。此類遠程文件系統必須實時與遠程文件系統連接,並本地計算設備上運行的應用提供遠程文件系統實時訪問的文件服務。其主要缺點:一、必須實時聯網,一旦斷線,則所有操作都將失效;二、當網絡狀況不穩定時(WIFI或手機2G網絡),其用戶體驗很差。2.離線類型的遠程文件系統,例如等DropBox、SkyDrive、BT等。此類遠程文件系統將所有遠程文件及文件目錄存儲在用戶本地,因此本地計算設備上的應用可以在離線狀態下使用此文件系統。其主要缺點:一、必須先完整下載所要訪問的遠程文件然後才能對其進行訪問;二、受到本地臨時存儲空間限制,無法提供大於本地存儲空間的文件訪問服務。以上這兩類都不能滿足將遠程文件系統上部分文件數據緩存在本地存儲設備上、並為本地計算設備上運行的應用提供遠大於本地存儲設備的存儲空間的需求,這正是本發明所要解決的具有很高的實用價值的問題。當前針對基於本地磁碟文件系統作為持久緩存、為本地計算設備上運行的應用提供遠程文件系統透明文件服務方法的研究目前成果比較少,主要有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)重點研究了通過如何比較本地計算設備上緩存和遠程文件系統上相同文件的多個版本數據的相似度從而減少本地與遠程計算機之間文件傳輸的數據量。但是論文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)石開究通過為企業網中建立統一的遠程文件系統訪問代理,該代理部署在企業網與外網的網關上,從而實現企業網中計算機透明訪問遠程雲存儲,進而減少企業存儲成本。但是論文2並沒有研究在本地計算設備上遠程文件系統的緩存,而依然是在網絡中的代理伺服器上實現緩存。

發明內容
本發明目的是為了解決上述現有實現方式存在的問題,提供一種在客戶計算設備上利用本地磁碟文件系統作為持久緩存空間的實現遠程文件系統的本地化鏡像方法及其系統。「用戶應用程式」在客戶計算設備上通過訪問「本地化鏡像客戶端系統」來透明訪問遠程文件系統。「本地化鏡像客戶端系統」通過「本地磁碟文件系統」來持久緩存遠程文件系統的部分文件及元數據,並負責維護本地持久緩存遠程文件系統的一致性。本發明採用塊粒度為最小單位來實現本地與遠程文件系統的文件上傳下載、以及本地持久緩存中文件的讀寫操作,並支持對文件的部分塊數據進行持久緩存。本發明將有效提高「應用」對遠程文件系統的訪問效率從而提高用戶體驗,並大大節省網絡流量,同時提供遠大於本地磁碟文件系統緩存空間大小的遠程文件系統的文件空間。1、本發明涉及的基於客戶端持久緩存的遠程文件系統鏡像系統(如圖1)包括遠程文件系統伺服器裝置和客戶計算機裝置,二者通過網絡互聯。遠程文件系統伺服器裝置主要包括遠程文件系統服務模塊,簡稱「遠程文件系統服務系統」,通過常見的網絡文件協議為網絡其它計算機提供文件系統服務。客戶計算機裝置主要包括遠程文件系統的本地化鏡像客戶端系統模塊,簡稱「本地化鏡像客戶端系統」;本地具有持久存儲能力的磁碟文件系統模塊,簡稱「本地磁碟文件系統」;本地「虛擬文件系統」服務模塊;本地計算設備上運行的各種「應用」,簡稱「應用」;本地內存模塊。本地「虛擬文件系統」為各種「應用」提供統一的透明文件服務,無論是訪問「本地磁碟文件系統」還是訪問「遠程文件系統服務系統」;而本地「虛擬文件系統」實現訪問「遠程文件系統服務系統」的功能具體是由「本地化鏡像客戶端系統」來實現的;同時「本地化鏡像客戶端系統」將使用「本地磁碟文件系統」部分空間作為持久緩存「遠程文件系統服務系統」部分文件及元數據的空間。其中用戶計算設備既包括PC計算機也包括智能移動手持設備以及企業級伺服器。虛擬文件系統服務和遠程文件系統伺服器均為業界主流的標準協議和應用系統。按照本發明提供的系統,所述的「本地化鏡像客戶端系統」由「本地化鏡像客戶端核心管理系統」子模塊、內存緩存管理子模塊、網絡文件系統驅動子模塊、和本地磁碟緩存管理子模塊組成。其中內存緩存管理子模塊負責內存中「元數據管理區」和「文件數據緩存區」的管理;網絡文件系統驅動子模塊負責與各種協議的網絡文件系統連接與文件數據傳輸及控制,各種網絡協議包括常見的NFS、FTP、HTTP、SSH、HDFS (Hadoop分布式文件系統)和GFS (Google文件系統)協議;本地磁碟緩存管理子模塊負責管理「本地磁碟文件系統」上的持久緩存目錄及元數據管理。「本地化鏡像客戶端核心管理系統」子模塊通過網絡文件系統驅動子模塊與遠程網絡文件系統進行文件傳輸及控制,「本地化鏡像客戶端核心管理系統」也負責完成本地「虛擬文件系統」傳過來的文件訪問操作,並進一步將所網絡下載的文件數據以及本地「應用」修改的文件數據及控制操作統一緩存在客戶計算機裝置上內存緩存區和「本地磁碟文件系統」持久緩存目錄中。按照本發明提供的系統,「本地化鏡像客戶端系統」中的子模塊「本地化鏡像客戶端核心管理系統」,主要包括如下子模塊(如圖3):即IO請求響應子模塊、緩存查詢子模塊、本地磁碟緩存處理子模塊、本地內存緩存處理子模塊、網絡監控子模塊、IO監控子模塊、本地緩存整理子模塊。IO請求響應子模塊負責接收應用通過虛擬文件系統傳來的文件操作和回應;緩存查詢子模塊負責調用底層「內存緩存管理」來檢索、讀取、修改文件緩存信息;網絡監控子模塊負責監控與遠程網絡文件系統的連接;IO監控子模塊負責本地用戶計算設備IO負載,當達到用戶配置文件中設置的條件時,即根據用戶設置的規則暫停或延緩某些網絡任務的執行(數據下載、數據預取以及修改後數據的上傳);本地緩存整理子模塊負責管理本地磁碟文件系統中持久緩存。按照本發明提供的系統,"本地化鏡像客戶端系統」內存中主要數據結構包括:內存元數據區、內存文件數據緩存區、內存緩存映射表、內存網絡任務表;"本地化鏡像客戶端系統」在"本地磁碟文件系統」持久存儲的主要數據文件包括:元數據文件、網絡任務文件、數據緩存文件;"本地磁碟文件系統」的指定持久緩存目錄的空間大小僅受限於該"本地磁碟文件系統」的空間大小,或者由"本地化鏡像客戶端系統」的參數來設定具體的持久緩存目錄的空間大小,即"本地磁碟文件系統」的指定持久緩存目錄的實際使用空間不能超過參數設定值,並且在"本地化鏡像客戶端系統」運行期間能夠動態改變具體的持久緩存目錄的空間大小。「本地化鏡像客戶端系統」管理「本地磁碟文件系統」的指定持久緩存目錄中持久緩存數據時,採用元數據管理方式管理文件以及文件和目錄之間的關係,元數據本身也存放在本地磁碟文件系統中,稱為「元數據文件」;「本地化鏡像客戶端系統」通過「元數據文件」可重構相應的遠程文件系統目錄結構以及在「本地磁碟文件系統」上的文件緩存狀態;「本地化鏡像客戶端系統」運行時讀取該元數據文件部分或全部內容到內存中的「元數據管理區」,並定時將內存中「元數據管理區」內容回寫到「本地磁碟文件系統」中的元數據文件中,以保證遠程文件數據的本地化持久存儲。所述的「本地化鏡像客戶端系統」為了更高效地提供文件訪問服務,「本地化鏡像客戶端系統」運行時動態地將本地磁碟文件系統中的指定持久緩存目錄中的持久緩存目錄和文件的全部數據或部分數據裝載到「本地化鏡像客戶端系統」內存中的「文件數據緩存區」,並定期將所述內存中「文件數據緩存區」內容回寫到「本地磁碟文件系統」中的持久緩存中,以保證相應文件數據的本地化持久存儲。2、本發明涉及的基於客戶端持久緩存的遠程文件系統鏡像方法具體步驟如下:第1、啟動「遠程文件系統伺服器」,並正常開啟網絡文件系統服務;第2、啟動客戶計算機裝置上作業系統的本地「虛擬文件系統」服務;第3、啟動客戶計算機裝置上的「本地化鏡像客戶端系統」,「本地化鏡像客戶端系統」分別與「遠程文件系統伺服器」、本地「虛擬文件系統」以及「本地磁碟文件系統」進行連接和通信,從而通過本地「虛擬文件系統」為客戶計算機裝置上的「應用」提供透明訪問「遠程文件系統伺服器」的文件服務,具體步驟包括如下:第3.1、「本地化鏡像客戶端系統」讀取參數配置文件,獲取相關運行參數,運行參數包括「遠程文件系統」認證信息和登錄目錄、「本地虛擬文件系統」的掛載目錄和訪問權限信息、「本地磁碟文件系統」上的持久緩存目錄和元數據文件信息、運行性能與安全參數;第3.2、「本地化鏡像客戶端系統」在客戶計算機裝置的內存建立並初始化「元數據管理區」和「文件數據緩存區」;第3.3、「本地化鏡像客戶端系統」讀取「本地磁碟文件系統」上的持久緩存目錄及元數據文件,進一步讀取已在本地持久緩存目錄中緩存的遠程文件系統目錄和文件數據到「本地化鏡像客戶端系統」內存中的「文件數據緩存區」中,並修改相應的元數據管理區;第3.4、「本地化鏡像客戶端系統」連接「遠程文件系統伺服器」,提交「遠程文件系統伺服器」所需要的用戶名和口令給「遠程文件系統伺服器」,經過「遠程文件系統伺服器」認證通過後,讀取遠程文件系統相應目錄及其部分子目錄和文件並合併到「本地化鏡像客戶端系統」的內存空間的文件數據緩存區中,並修改「本地化鏡像客戶端系統」內存中的「元數據管理區」;第3.5、「本地化鏡像客戶端系統」向「本地虛擬文件系統」註冊並掛載到指定的掛載目錄上,開始提供透明訪問「遠程文件系統伺服器」的文件服務;第3.6、本地計算設備上運行的「應用」通過標準的本地「虛擬文件系統」訪問「本地化鏡像客戶端系統」所提供的文件服務,從而透明地訪問「遠程文件系統」;第3.7、「本地化鏡像客戶端系統」正常運行期間,利用「本地磁碟文件系統」中指定的持久緩存目錄,動態地管理「應用」訪問「遠程文件系統伺服器」的文件數據,包括下載和上傳文件及目錄數據,以保持本地「磁碟文件系統」中持久緩存數據和遠程文件系統數據的一致性;並動態維護「本地化鏡像客戶端系統」內存中的「元數據管理區」和「文件數據緩存區」信息,以及保持「本地化鏡像客戶端系統」內存數據和本地磁碟文件系統中持久緩存數據的一致性;第4、當停止「本地化鏡像客戶端系統」時,「本地化鏡像客戶端系統」將撤銷與本地「虛擬文件系統」的註冊,「本地化鏡像客戶端系統」將內存中「元數據管理區」和「文件數據緩存區」保存到本地磁碟文件系統中指定的持久緩存的目錄中,並關閉與遠程文件系統伺服器的連接。按照本發明提供的鏡像方法,「本地化鏡像客戶端系統」採用塊粒度為最小單位實現本地與遠程文件系統的文件上傳下載、以及本地持久緩存中文件的讀寫操作,以及對「遠程文件系統伺服器」中文件的持久緩存。在「本地磁碟文件系統」中的指定持久緩存目錄中可以緩存遠程文件系統中的全部文件,也可以緩存遠程文件系統中的部分文件,也可以緩存遠程文件系統中的單個文件的部分數據塊。「本地化鏡像客戶端系統」對持久緩存文件的元數據管理採用塊粒度為最小單位,而不是文件粒度。「本地化鏡像客戶端系統」向本地計算設備上的應用提供塊級別的文件服務,即應用請求讀取某文件的任意偏移量開始的小於等於虛擬文件系統規定大小的連續數據即一個塊數據時,「本地化鏡像客戶端系統」將按所述請求提供相應數據。「本地化鏡像客戶端系統」對內存中文件數據緩存區中的管理是以塊為單位,即提供塊大小的緩存空間申請和釋放,塊大小可由「本地化鏡像客戶端系統」的參數配置文件指定。如圖2所示,用戶計算設備中只有遠程文件系統中部分文件的部分數據塊。按照本發明提供的鏡像方法,「本地化鏡像客戶端系統」負責本地客戶計算設備中內存緩存的維護,包括刪除文件塊數據緩存、創建文件塊數據緩存、維護內存文件塊數據索弓1、修改文件塊數據緩存信息。「本地化鏡像客戶端系統」也負責本地磁碟文件系統中指定持久緩存目錄中的數據管理,包括刪除不用的緩存文件、創建新的緩存文件、或修改已有的緩存文件、對已有緩存文件進行索引。
「本地化鏡像客戶端系統」負責其內存中「文件數據緩存區」的管理,包括清理不用的文件數據緩存塊、加載新的文件數據緩存塊、對已有文件數據緩存塊進行索引;當「文件數據緩存區」中的空閒數據塊緩存空間沒有時或少於由「本地化鏡像客戶端系統」運行參數規定的空閒數據塊緩存空間數目時,「本地化鏡像客戶端系統」啟動內存的「文件數據緩存區」清理工作,清理狀態為「使用」的數據塊;清理算法可由「本地化鏡像客戶端系統」運行參數指定,「本地化鏡像客戶端系統」提供接口機制,並支持用戶自定義清理算法;若該「使用」狀態的數據塊未被修改,則直接設置為空閒狀態並修改相應的元數據管理區;若該「使用」狀態的數據塊被修改,則進一步判斷其所對應的文件在「本地磁碟文件系統」的持久緩存目錄中是否存在,若該文件在「本地磁碟文件系統」的持久緩存目錄中存在則直接將文件數據緩存區中該「使用」狀態的數據塊回寫到「本地磁碟文件系統」的對應文件中,然後將內存文件數據緩存區中的該數據塊狀態設置為空閒狀態並修改相應的元數據管理區;若該文件在「本地磁碟文件系統」的持久緩存目錄中不存在則先在「本地磁碟文件系統」的持久緩存目錄中建立該文件,然後直接將文件數據緩存區中該「使用」狀態的數據塊回寫到「本地磁碟文件系統」的對應文件中,然後將內存「文件數據緩存區」中的該數據塊狀態設置為空閒狀態並修改相應的元數據管理區。「本地化鏡像客戶端系統」負責本地磁碟文件系統中指定持久緩存目錄中的數據管理,包括刪除不用的緩存文件、創建新的緩存文件、或修改已有的緩存文件、對已有緩存文件進行索引;對於那些在「本地磁碟文件系統」中指定持久緩存目錄中的自最近一次修改以來尚未上傳到「遠程文件系統」中的文件及目錄,「本地化鏡像客戶端系統」同步或者異步地將所述文件及目錄上傳到遠程文件系統中,採用同步方式或異步方式由「本地化鏡像客戶端系統」運行參數決定,並修改「本地化鏡像客戶端系統」中相應的元數據。「本地化鏡像客戶端系統」負責「本地磁碟文件系統」中指定持久緩存目錄中的文件數據時,在刪除本地磁碟文件系統中指定持久緩存目錄中文件數據前,需要根據「本地化鏡像客戶端系統」的元數據管理區信息判斷該欲刪除的文件自最近一次修改以來是否已經上傳到遠程文件系統中,若尚未上傳到遠程文件系統則先生成上傳任務表,並根據上傳任務表將相關文件上傳到遠程文件系統的相應文件上。若上傳該欲刪除的文件失敗,則取消在「本地磁碟文件系統」中指定持久緩存目錄中刪除該文件,否則在「本地磁碟文件系統」中指定持久緩存目錄中刪除該文件。「本地化鏡像客戶端系統」負責本地磁碟文件系統中指定持久緩存目錄中的磁碟空間大小管理;當「本地磁碟文件系統」中指定持久緩存目錄中文件數據所佔用的磁碟空間大小達到「本地化鏡像客戶端系統」的參數規定的大小時,「本地化鏡像客戶端系統」運行緩存文件淘汰算法,將指定的欲淘汰文件數據刪除,從而保證「本地磁碟文件系統」中指定持久緩存目錄中文件數據所佔用的磁碟空間大小小於「本地化鏡像客戶端系統」的參數規定的大小;緩存文件淘汰算法可由「本地化鏡像客戶端系統」運行參數指定,「本地化鏡像客戶端系統」提供接口機制,並支持用戶自定義緩存文件淘汰算法。「本地化鏡像客戶端系統」負責透明地將遠程文件系統指定目錄所管轄的子目錄和文件的全部或者部分數據下載到「本地磁碟文件系統」中指定持久緩存目錄中;「本地化鏡像客戶端系統」根據運行參數規定的文件數據預取算法(例如優先預取最近IO文件所屬相同目錄下文件的算法)生成下載任務表,動態地將遠程文件系統指定目錄中所要預取的目錄和文件下載到「本地磁碟文件系統」中指定持久緩存目錄中,從而當本地設備上運行的「應用」訪問這些已經提前下載到「本地磁碟文件系統」中指定持久緩存目錄中的遠程文件系統的文件時其將以本地磁碟文件系統的訪問速度對該文件訪問,而不是網絡訪問速度。上傳任務和下載任務統一為「網絡任務表」,存在於「本地化鏡像客戶端系統」內存中,並由「本地化鏡像客戶端系統」定期將其寫入到「本地磁碟文件系統」中指定持久緩存目錄中的「網絡任務文件」中,從而保證其持久存儲,在「本地化鏡像客戶端系統」重新啟動後加載「網絡任務文件」到內存中的「網絡任務表」,使「本地化鏡像客戶端系統」繼續上次運行網絡任務。按照本發明提供的鏡像方法,「本地化鏡像客戶端系統」正常運行期間,當「應用」試圖訪問「遠程文件系統伺服器」的文件數據時,「本地化鏡像客戶端系統」將首先在內存中的「元數據管理區」和「文件數據緩存區」信息查找內存中是否有所欲訪問的文件數據的緩存,若內存中有所述文件數據緩存,則直接返回給「應用」所欲訪問的文件數據,不需真正訪問「遠程文件系統伺服器」;若內存中沒有所欲訪問的文件數據的緩存,則進一步查找本地「磁碟文件系統」中持久緩存數據是否有所欲訪問的文件數據的緩存,若本地「磁碟文件系統」中有所述文件數據緩存,則直接返回給「應用」所欲訪問的文件數據,不需真正訪問「遠程文件系統伺服器」;否則「本地化鏡像客戶端系統」訪問「遠程文件系統伺服器」中所欲訪問的文件數據,更新本地客戶計算設備中內存以及本地「磁碟文件系統」中緩存信息,最後返回給「應用」所欲訪問的文件數據。當本地計算設備上的「應用」對通過由「本地化鏡像客戶端系統」提供文件服務的掛載目錄所轄的子目錄和文件進行讀操作時,「本地化鏡像客戶端系統」首先查詢其內存「元數據管理區」看應用所請求的文件和其數據塊是否存在於內存中的「文件數據緩存區」,若存在則直接將相應數據拷貝給應用;若不存在內存中的「文件數據緩存區」,則進一步查看是否在本地磁碟文件系統中指定持久緩存目錄中,若存在於本地持久緩存目錄中,則將相應數據讀取到內存的文件數據緩存區,再進一步拷貝給應用;若也不在本地磁碟文件系統中指定的持久緩存目錄中,則向「遠程文件系統伺服器」發起請求讀取相應的文件和數據塊到本地內存的文件數據緩存區,再進一步拷貝給應用;若向「遠程文件系統伺服器」發起請求讀取相應的文件和數據塊操作失敗,則直接返回錯誤給應用;最終「本地化鏡像客戶端系統」修改其內存「元數據管理區」和「文件數據緩存區」。按照本發明提供的鏡像方法,「本地化鏡像客戶端系統」正常運行期間,當「應用」試圖在「遠程文件系統伺服器」中建立、修改以及刪除文件操作時,「本地化鏡像客戶端系統」首先將建立和修改文件及控制信息緩存在本地「磁碟文件系統」中持久緩存目錄中,並更新本地「磁碟文件系統」中元數據信息,然後返回給「應用」操作結果,最後在本地客戶計算設備負載允許情況下同步或者異步地將「應用」對「遠程文件系統伺服器」的修改以及刪除文件操作從本地「磁碟文件系統」中持久緩存讀取並提交給「遠程文件系統伺服器」。當本地計算設備上的「應用」對通過由「本地化鏡像客戶端系統」提供文件服務的掛載目錄所轄的子目錄和文件進行寫操作時,「本地化鏡像客戶端系統」首先查詢其內存「元數據管理區」並判斷應用所請求的文件和數據塊是否存在於內存中的「文件數據緩存區」,若存在則直接將應用提供的寫入數據拷貝到對應的內存「文件數據緩存區」中;若不在本地內存的「文件數據緩存區」,則在先本地內存的「文件數據緩存區」申請相應大小的內存空間,然後將應用提供的寫入數據拷貝到對應的本地內存「文件數據緩存區」中。若在本地內存的「文件數據緩存區」申請一塊內存空間失敗,則先進行內存的「文件數據緩存區」清理,然後再重新申請內存空間,重複上述操作。最終「本地化鏡像客戶端系統」修改其內存」修改其內存「元數據管理區」和「文件數據緩存區」。按照本發明提供的鏡像方法,「本地化鏡像客戶端系統」負責與「遠程文件系統伺服器」進行連接、認證以及文件上傳下載服務;若「本地化鏡像客戶端系統」不能正確連接和訪問「遠程文件系統伺服器」,或「本地化鏡像客戶端系統」和「遠程文件系統伺服器」正常工作中突然斷開連接時,「本地化鏡像客戶端系統」仍可繼續運行並為本地計算設備上運行的「應用」提供文件服務,此時僅提供在「本地磁碟文件系統」中的指定持久緩存目錄中已有緩存的相關文件服務;「本地化鏡像客戶端系統」可異步地稍後再嘗試連接和訪問「遠程文件系統伺服器」,當再次恢復對「遠程文件系統伺服器」的連接和訪問時,提供正常的「遠程文件系統伺服器」的文件服務。「本地化鏡像客戶端系統」支持與多種類型的遠程文件系統伺服器連接和訪問,「本地化鏡像客戶端系統」根據配置參數來自動地維護與遠程文件系統伺服器連接;當網絡出現故障或與「遠程文件系統伺服器」連接失敗時,「本地化鏡像客戶端系統」可以暫時不連接「遠程文件系統伺服器」,而只利用「本地磁碟文件系統」指定的緩存目錄中的緩存文件數據為本地計算設備上的「應用」提供文件服務;所述的「本地化鏡像客戶端系統」通過向本地計算設備上作業系統中的「虛擬文件系統」註冊並掛載到指定掛載目錄,本地計算設備上運行的應用訪問「虛擬文件系統」的該指定掛載目錄時,該應用透明地由「本地化鏡像客戶端系統」提供文件服務;本發明所涉及的具體內容及所述術語的含義是:( I) 「遠程文件系統伺服器」:指提供訪問遠程計算機上文件系統的服務系統,例如FTP伺服器、SSH文件伺服器、CIFS文件伺服器、,HDFS (Hadoop分布式文件系統)文件伺服器,GFS(Google文件系統)文件伺服器等。而遠程計算機上的具體文件系統可以為任何已有的磁碟文件系統(如下述2所述)。(2) 「本地磁碟文件系統」:指各種已有的建立在磁碟上的文件系統,例如FAT32、NTFS、Ext2、Ext3、XFS、CDFS 等。(3)本地「虛擬文件系統」:指本地計算設備中作業系統上運行的虛擬文件系統服務,其為各種本地磁碟上具體的文件系統和遠程文件系統客戶代理提供統一的抽象的文件系統服務接口,本地計算設備上運行的應用通過該虛擬文件系統透明地訪問本地磁碟上具體的文件系統和遠程文件系統,例如類UNIX系統中的VFS、以及Windows中的FSD。(4)本地計算設備上運行的「應用」(簡稱「應用」):指運行在本地計算設備上作業系統用戶態中的任意應用程式。(5) 「遠程文件系統登陸目錄」:指「遠程文件系統伺服器」暴露給用戶的可用文件及子文件夾組成的目錄。(6) 「持久緩存目錄」:在用戶計算設備上存儲持久性緩存的存儲位置,其實現可以為「遠程文件系統登陸目錄」類似的文件、文件夾形式,也可以為單一文件形式存儲。(7) 「本地掛載目錄」:在用戶計算設備上用戶最終用於訪問遠程文件系統的節點,表現為擁護計算設備上的一個虛擬磁碟或者一個目錄。
(8)遠程文件系統的「本地化鏡像客戶端系統」:其屬於前述(3)中所述的一種遠程文件系統的本地計算設備上的客戶代理程序,本地計算設備上運行的「應用」通過本地「虛擬文件系統」並進而訪問「本地化鏡像客戶端系統」(或直接訪問「本地化鏡像客戶端系統」)來最終實現對遠程文件系統的文件訪問。本發明所給出的遠程文件系統的「本地化鏡像客戶端系統」,其典型特點就是利用本地計算設備上本地存儲設備文件系統作為持久緩存空間,並為「應用」提供透明的塊級別遠程文件系統文件訪問服務,其極大地提高了 「應用」訪問遠程文件系統的性能和用戶體驗效果。(8.1) 「本地化鏡像客戶端系統」中的「核心管理系統模塊」:加載用戶配置文件信息,包括遠程文件伺服器地址及埠、最大並發下載連接數、最大並發上傳連接數、默認上傳模式(分為同步、異步等)、網絡流量限制、本地資源使用限制(包括但不限於CPU,內存,硬碟以及其他存儲設備)等設置。在加載完成後依據配置文件調用「內存驅動」、「網絡驅動」以及「本地磁碟文件系統驅動」三個模塊配合完成連接遠程伺服器,載入文件系統緩存,文件上傳下載等操作。「核心管理系統模塊」包括內存「元數據管理區」、「元數據文件」、內存「文件數據緩存區」、「文件數據緩存文件」、「緩存查詢模塊」、「緩存映射表模塊」、「網絡任務生成模塊」、「網絡任務表模塊」、「 I/o監控模塊」、「本地內存緩存處理模塊」、「本地磁碟緩存處理模塊」、「I/O請求響應模塊」、「本地緩存整理模塊」、「網絡監控模塊」等。內存「元數據管理區」:用於管理元數據的保存、處理、載入等操作。此「元數據管理區」由「核心管理系統模塊」中的「緩存查詢模塊」、「緩存映射表模塊」、「本地內存緩存處理模塊」、「本地磁碟緩存處理模塊」組成。當「緩存查詢模塊」調用「緩存映射表」進行查詢時即對元數據進行處理。此處元數據指非文件數據的信息,即文件名、文件大小、創建時間、修改時間、訪問權限等內容。其數據組織可見圖4。「元數據文件」:存放在「本地磁碟文件系統」緩存目錄下,用來記錄遠程文件系統中目錄和文件的組織關係,以及記錄在「本地磁碟文件系統」緩存目錄的文件數據緩存狀態。「本地化鏡像客戶端系統」運行期間將加載其全部或者部分內容到內存「元數據管理區」。內存「文件數據緩存區」:用於管理文件數據的保存、處理、載入等操作。此「文件數據緩存區」由「核心管理系統模塊」中的「緩存查詢模塊」、「緩存映射表模塊」、「本地內存緩存處理模塊」、「本地磁碟緩存處理模塊」組成。其數據組織可見圖5。「文件數據緩存文件」:存放在「本地磁碟文件系統」緩存目錄下,作為遠程文件系統中相應文件的本地化緩存文件。「本地化鏡像客戶端系統」運行期間將加載其全部或者部分內容到內存「文件數據緩存區」。「緩存查詢模塊」:此模塊接受用戶(應用)發送的I/O請求,將其轉換為「核心管理系統模塊」內部處理格式後對「緩存映射表模塊」進行查詢,根據所需獲取的文件塊的映射情況(處於本地磁碟緩存、處於本地內存緩存或處於遠程伺服器)調用對應的「本地磁碟緩存處理模塊」、「本地內存緩存處理模塊」或「網絡任務生成模塊」進行對數據的獲取操作。同時,當預取功能處於開啟狀態時,此模塊會依照規則向「網絡任務生成模塊」發送請求進行預取任務的生成。「緩存映射表模塊」:此模塊用於緩存遠程文件系統的所有文件及文件目錄的塊級別的映射信息以及元數據信息,並且可以響應其他模塊產生的對映射信息的調用以及修改。緩存組織形式見圖4。「緩存映射表模塊」的數據並不全部保存在內存中,而是分布在內存緩存以及硬碟的持久緩存中,當查詢文件的映射信息不在內存中時,通過調用「本地磁碟緩存處理模塊」將元數據拷貝到內存供「緩存查詢模塊」進行查詢調用。當內存緩存中的元數據達到用戶定義最大大小時,將調用「本地緩存整理模塊」、「本地磁碟緩存處理模塊」以及「本地內存緩存處理模塊」將內存緩存中一定時間(用戶定義)未被使用的元數據從內存緩存移除並轉存到本地磁碟持久緩存中。「網絡任務生成模塊」:此模塊根據「緩存查詢模塊」發送的請求構造上傳或下載的網絡任務,並插入到「網絡任務表模塊」中等待執行。「網絡任務生成模塊」生成的任務包含請求文件的標識(對應遠程文件系統中的i節點號或者文件路徑)、請求的類型(元數據信息或數據信息)、請求文件的偏移量、請求的數據大小、請求的狀態(即時獲取,等待系統空閒獲取等用戶定義的狀態。此處的狀態對應「網絡任務表模塊」中的不同任務隊列)等信息。「I/O監控模塊」:此模塊用於監控當前系統負載,當達到用戶配置文件中設置的條件時,即根據用戶設置的規則暫停或延緩某些網絡任務的執行(數據下載、數據預取以及修改後數據的上傳)。「網絡任務表模塊」:此模塊用於存儲「網絡任務生成模塊」生成的任務,並接受「I/O監控模塊」的調度調整。此模塊中按照用戶定義的網絡任務優先級(例如即時獲取或等待系統空閒時獲取)構造不同的任務隊列表,按照「網絡任務生成模塊」生成任務的不同優先級插入不同的隊列表,同時隊列表的任務處理模式同樣可以由用戶指定為隊列模式(先來先服務)或堆模式(後來先服務)。此模塊將自身存儲的任務按照當前用戶定義的傳輸協議(由遠程文件系統伺服器決定)構造數據包,並傳送給「網絡驅動模塊」進行處理。每個任務處理完成後會將相關信息(例如文件數據塊映射信息)更新至「緩存映射表模塊」。「網絡任務表」模塊構造的數據包一般包括數據包大小、任務編號、請求文件的標識(對應遠程文件系統中的i節點號或者文件路徑)、請求的類型(元數據信息或數據信息)、請求文件的偏移量、請求的數據大小等信息(根據使用協議的不同其數據包內容會有變動)。「網絡任務表」模塊接收的返回數據包一般包括數據包大小、任務編號、返回數據以及返回數據長度(根據使用協議的不同其數據包內容會有變動)。「本地內存緩存處理模塊」:此模塊用於將「緩存查詢模塊」發送的I/O請求轉換為當前系統支持的讀取模式(當使用內存表的時候,將I/o請求轉換為對應的內存塊起始號以及連續塊數;當使用內存池的時候,將I/o請求轉換為對應的內存地址以及數據大小),並將此信息發送至「內存驅動模塊」獲取對應的數據。「本地內存緩存處理模塊」將內存緩存分為元數據區以及文件數據區,根據「緩存查詢模塊」發送的不同請求從對應的內存區域獲取數據返回給「緩存查詢模塊」或者「 I/o請求相應模塊」。「本地磁碟文件系統上緩存處理模塊」:此模塊用於將「緩存查詢模塊」發送的I/O請求轉換為當前系統支持的讀取模式,並且發送到「本地磁碟文件系統驅動模塊」並獲取對應的數據信息。「I/O請求響應模塊」:此模塊用於接收「本地磁碟文件系統上緩存處理模塊」、「本地內存緩存處理模塊」以及「網絡任務表模塊」傳輸的具體數據信息經過修改後返回給應用。
「本地緩存整理模塊」:定期對內存以及本地磁碟文件系統上持久緩存目錄使用用戶定義的算法(默認為LRU算法)進行整理,通過「內存驅動模塊」、「本地磁碟文件系統驅動模塊」將過期內存數據轉移到「本地磁碟文件系統」持久緩存目錄中,並將過期持久緩存文件清除。同時利用「本地磁碟文件系統驅動模塊」提前取出將會使用的數據塊緩存至內存。以上提到的清理操作僅在用戶設定最大「本地磁碟文件系統」持久緩存大小,並且當前實際大小達到此值(若不設定最大持久緩存的數值,當則磁碟剩餘空間不足以存儲新的持久緩存時)時候才會對數據進行清除操作。此外,當「本地化鏡像文件系統」啟動時,「本地緩存整理模塊」會將持久緩存數據選擇部分最常用的載入到內存中,構造「緩存映射表模塊」的數據供查詢使用。「網絡監控模塊」:負責提供網絡狀態的監控處理。當網絡斷開時,「本地化鏡像客戶端系統」進入離線模式,若用戶(應用)訪問已經緩存的數據內容則正常返回,若訪問本機未進行緩存的數據內容,則根據用戶的設置決定是立刻返回錯誤提示或者阻塞至網絡重新連接並接受所需數據後返回。同時,當網絡斷開時,「網絡監控模塊」會定時嘗試重新連接網絡,當網絡重新建立後則跳出離線模式。(8.2) 「網絡文件系統驅動模塊」:根據「核心管理系統模塊」載入的配置文件信息,向伺服器發出連接請求,與指定的遠程文件伺服器建立連接。當連接建立後,負責處理「核心管理系統模」要求的上傳及下載任務。(8.3) 「內存緩存管理驅動模塊」:根據「核心管理系統模塊」載入的配置文件信息,負責初始化對應的元數據區和文件數據區,並且對內存緩存區進行數據的讀取修改刪除等操作。(8.4) 「本地磁碟文系統驅動模塊」:根據「核心管理系統模塊」載入的配置文件信息,負責處理磁碟持久緩存數據。此模塊使用多種方式(洞文件、單一文件以及多個小文件)對文件的部分內容進行持久存儲。本發明的優點和積極效果:相對於傳統的需要持久連線的遠程文件系統或本地完全緩存的遠程文件系統,本發明具有以下優勢:本發明使用本地磁碟文件系統持久緩存,以接近本地磁碟文件系統的訪問速度來訪問遠程文件系統,因此提高了用戶的體驗,減少了用戶(應用)獲取數據時對網絡的依賴,提聞了響應速度;本發明採用塊粒度為最小單位來實現本地與遠程文件系統的文件上傳下載、以及本地持久緩存中文件的讀寫操作,並支持對文件的部分塊數據進行持久緩存。本發明由於使用本地磁碟文件系統持久緩存,當網絡斷開的情況也也可以支持一部分用戶(應用)的正常使用;本發明使用本地持久緩存,當所需內容處於本地時會直接從本地讀取,從而減少了不必要的網絡流量;本發明使用本地磁碟文件系統建立了持久緩存,此持久緩存僅保存遠程文件系統中部分文件的部分數據,因此遠程文件系統的可用邏輯空間可以大於本地存儲設備的空間。


圖1是本發明的物理架構圖,從該圖可以容易看出本發明的適用場景。各種用戶計算設備20均可以通過安裝遠程文件系統本地化鏡像客戶端系統220來連接遠程文件系統伺服器10。遠程文件系統本地化鏡像客戶端系統220通過虛擬文件系統240掛載到用戶計算設備20中,並與用戶及應用230進行交互。在遠程文件系統本地化鏡像客戶端系統220中核心管理系統221負責調用內存驅動222,網絡驅動223以及本地磁碟文件系統驅動224來完成各種任務。同時,網絡驅動223通過內部置入不同的通信協議(NFS301SSHFS302)的方式來與多種遠程文件系統伺服器進行交互。圖2是本發明的本地磁碟文件系統中持久緩存文件數據與遠程文件系統的文件數據映射關係的示意圖。圖3是本發明的邏輯架構圖。該圖完整給出了核心管理系統221,內存驅動222,網絡驅動223以及本地磁碟文件系統驅動224的內部邏輯功能模塊的交互關係。圖4是本發明的元數據的組織圖,此圖完整給出了緩存映射表模塊2218中對文件及文件夾元數據信息的組織方式以及映射表的存儲方式。圖5是本發明核心管理系統中文件數據的組織結構圖,此圖完整給出了緩存映射表模塊2218中文件數據的組織方式。圖6是本發明中「本地化鏡像客戶端系統」網絡監控模塊連接「遠程文件系統服務」的流程圖,當網絡斷開時進入離線模式,若用戶(應用)訪問已經緩存的數據內容則正常返回,若訪問本機未進行緩存的數據內容,則根據用戶的設置決定是立刻返回錯誤提示或者阻塞至網絡重新連接並接受所需數據後返回。同時,當網絡斷開時,「網絡監控模塊」會定時嘗試重新連接網絡,當網絡重新建立後則跳出離線模式。圖7是應用實例I的工作流程圖。圖8是應用實例I元數據組織示意圖。圖9是應用實例I文件數據組織示意圖。
具體實施例方式本發明提供了一種在客戶計算設備上利用本地磁碟文件系統作為持久緩存空間的實現遠程文件系統的本地化鏡像方法及其系統。實施例1、基於客戶端持久緩存的遠程文件系統鏡像系統本發明涉及的基於客戶端持久緩存的遠程文件系統鏡像系統(如圖1)包括遠程文件系統伺服器裝置和客戶計算機裝置,二者通過網絡互聯。遠程文件系統伺服器裝置主要包括遠程文件系統服務模塊,簡稱「遠程文件系統服務系統」,通過常見的網絡文件協議為網絡其它計算機提供文件系統服務。客戶計算機裝置主要包括遠程文件系統的本地化鏡像客戶端系統模塊,簡稱「本地化鏡像客戶端系統」;本地具有持久存儲能力的磁碟文件系統模塊,簡稱「本地磁碟文件系統」;本地「虛擬文件系統」服務模塊;本地計算設備上運行的各種「用戶應用程式」,簡稱「應用」;本地內存模塊。本地「虛擬文件系統」為各種「應用」提供統一的透明文件服務,無論是訪問「本地磁碟文件系統」還是訪問「遠程文件系統服務系統」;而本地「虛擬文件系統」實現訪問「遠程文件系統服務系統」的功能具體是由「本地化鏡像客戶端系統」來實現的;同時「本地化鏡像客戶端系統」將使用「本地磁碟文件系統」部分空間作為持久緩存「遠程文件系統服務系統」部分文件及元數據的空間。其中用戶計算設備既包括PC計算機也包括智能移動手持設備以及企業級伺服器。虛擬文件系統服務和遠程文件系統伺服器均為業界主流的標準協議和應用系統。實施例2、基於客戶端持久緩存的遠程文件系統鏡像方法本發明涉及的基於客戶端持久緩存的遠程文件系統鏡像方法具體步驟如下:第1、啟動「遠程文件系統伺服器」,並正常開啟網絡文件系統服務;第2、啟動客戶計算機裝置上作業系統的本地「虛擬文件系統」服務;第3、啟動客戶計算機裝置上的「本地化鏡像客戶端系統」,「本地化鏡像客戶端系統」分別與「遠程文件系統伺服器」、本地「虛擬文件系統」以及「本地磁碟文件系統」進行連接和通信,從而通過本地「虛擬文件系統」為客戶計算機裝置上的「應用」提供透明訪問「遠程文件系統伺服器」的文件服務,具體步驟包括如下:第3.1、「本地化鏡像客戶端系統」讀取參數配置文件,獲取相關運行參數,運行參數包括「遠程文件系統」認證信息和登錄目錄、「本地虛擬文件系統」的掛載目錄和訪問權限信息、「本地磁碟文件系統」上的持久緩存目錄和元數據文件信息、運行性能與安全參數;第3.2、「本地化鏡像客戶端系統」在客戶計算機裝置的內存建立並初始化「元數據管理區」和「文件數據緩存區」;第3.3、「本地化鏡像客戶端系統」讀取「本地磁碟文件系統」上的持久緩存目錄及元數據文件,進一步讀取已在本地持久緩存目錄中緩存的遠程文件系統目錄和文件數據到「本地化鏡像客戶端系統」內存中的「文件數據緩存區」中,並修改相應的元數據管理區;第3.4、「本地化鏡像客戶端系統」連接「遠程文件系統伺服器」,提交「遠程文件系統伺服器」所需要的用戶名和口令給「遠程文件系統伺服器」,經過「遠程文件系統伺服器」認證通過後,讀取遠程文件系統相應目錄及其部分子目錄和文件並合併到「本地化鏡像客戶端系統」的內存空間的文件數據緩存區中,並修改「本地化鏡像客戶端系統」內存中的「元數據管理區」;第3.5、「本地化鏡像客戶端系統」向「本地虛擬文件系統」註冊並掛載到指定的掛載目錄上,開始提供透明訪問「遠程文件系統伺服器」的文件服務;第3.6、本地計算設備上運行的「應用」通過標準的本地「虛擬文件系統」訪問「本地化鏡像客戶端系統」所提供的文件服務,從而透明地訪問「遠程文件系統」;第3.7、「本地化鏡像客戶端系統」正常運行期間,利用「本地磁碟文件系統」中指定的持久緩存目錄,動態地管理「應用」訪問「遠程文件系統伺服器」的文件數據,包括下載和上傳文件及目錄數據,以保持本地「磁碟文件系統」中持久緩存數據和遠程文件系統數據的一致性;並動態維護「本地化鏡像客戶端系統」內存中的「元數據管理區」和「文件數據緩存區」信息,以及保持「本地化鏡像客戶端系統」內存數據和本地磁碟文件系統中持久緩存數據的一致性;第4、當停止「本地化鏡像客戶端系統」時,「本地化鏡像客戶端系統」將撤銷與本地「虛擬文件系統」的註冊,「本地化鏡像客戶端系統」將內存中「元數據管理區」和「文件數據緩存區」保存到本地磁碟文件系統中指定的持久緩存的目錄中,並關閉與遠程文件系統伺服器的連接。本發明的具體實現如下:
一、所述的「本地化鏡像客戶端系統」主要包括如下模塊:8卩「核心管理系統」模塊,「內存緩存管理驅動」模塊、「網絡文件系統驅動」模塊、「本地磁碟文件系統驅動」模塊。「核心管理系統」模塊負責「本地化鏡像客戶端系統」的上層主要業務功能,其它模塊負責具體的底層操作。「本地化鏡像客戶端系統」中的「核心管理系統」模塊主要包括如下子模塊:即IO請求響應子模塊、緩存查詢子模塊、本地磁碟緩存處理子模塊、本地內存緩存處理子模塊、網絡監控子模塊、IO監控子模塊、本地緩存整理子模塊。二、「本地化鏡像客戶端系統」內存中主要數據結構包括:內存元數據區、內存文件數據緩存區、內存緩存映射表、內存網絡任務表;「本地化鏡像客戶端系統」在「本地磁碟文件系統」持久存儲的主要數據文件包括:元數據文件、網絡任務文件、數據緩存文件。三、「本地化鏡像客戶端系統」在「本地磁碟文件系統」中的指定持久緩存目錄中建立遠程文件系統數據的本地化持久緩存。遠程文件系統中的文件及目錄在「本地磁碟文件系統」的指定持久緩存目錄中有對應的文件來持久緩存其全部數據(也可以持久緩存其部分數據),由「本地化鏡像客戶端系統」負責管理上述本地化持久緩存數據。由圖2可以看出「本地磁碟文件系統」持久緩存目錄中只緩存存儲了遠程文件系統中的部分文件,若「本地磁碟文件系統」持久緩存目錄空間允許也可緩存存儲了遠程文件系統中文件及目錄的全部數據。此持久緩存文件數據為元數據及文件數據,其組織方式見圖4及圖5。圖4為本地磁碟文件系統持久緩存中元數據的結構圖,此結構圖中可以看出本發明的元數據組織結構:每個「遠程文件系統伺服器」上「遠程文件系統登陸目錄」下的文件或文件夾均有一個對應的文件元素9100。此文件元素由一個唯一識別的i結點編號9101、「遠程文件系統登陸目錄」下的i結點編號9102、對應的文件元數據屬性9103、父目錄9104、子元素9105、傳輸狀態(上傳狀態9106,表示是否已經將修改後的數據塊上傳完全;接收狀態9107,表示是否將數據塊接受完全;載入狀態9108,表示是否將子元素9105的數據載入完全;磁碟緩存狀態9109,表示是否有磁碟持久緩存)、時間戳9110 (表示本地元數據最後更新時間)以及文件數據塊映射表9111等信息組成;通過映射表集合9600來存儲具體的映射表9601,每個映射表9700信息對應著相關的存儲文件數據的緩存元素9800 (內存地址或磁碟持久緩存文件及偏移量等)、塊編號9701、塊類型9702、塊大小9703、等信息;此外,通過全局控制器9000存儲索引元數據使用的根節點9002,文件元素表9003以及文件元素工作表9004等信息。通過訪問根節點9002以及結合文件元素9100內部的父目錄9104子元素9105信息,可以實現樹狀索引,通過對文件元素工作表9004和文件元素表9003的查詢,可以實現常用文件的索引,提高訪問速度。圖5為文件數據緩存區的數據組織結構圖。此結構圖中可以看出本發明的文件數據組織方式:本發明通過使用基於塊的文件數據索引,可以實現單一文件的不同塊分別存在於「遠程文件系統登陸目錄」、本地內存緩存以及本地磁碟持久緩存上;當文件映射塊表示對應文件塊存在於遠端的時候,塊映射8100不存儲任何額外信息;當文件映射塊對應的文件塊存在於內存緩存的時候,塊映射8200存儲額外的塊長度8203,塊內存地址偏移量8202以及是否與前後文件塊連續8204等信息;當文件映射塊對對應的文件塊存在於本地磁碟持久緩存的時候,塊映射8300額外存儲此文件塊所在的緩存文件8304、塊長度8304、偏移位置8303、是否與前後文件塊連續8305等信息。
四、「本地磁碟文件系統」的指定持久緩存目錄的空間大小可以是無限大(即僅受限於該「本地磁碟文件系統」的空間大小),也可以由「本地化鏡像客戶端系統」的參數來設定具體的持久緩存目錄的空間大小(即「本地磁碟文件系統」的指定持久緩存目錄的實際使用空間不能超過參數設定值),並且在「本地化鏡像客戶端系統」運行期間可以動態改變具體的持久緩存目錄的空間大小。當持久緩存目錄已使用空間達到空間大小上限時,「本地化鏡像客戶端系統」啟動預先定義的算法(例如LRU)對過期緩存文件進行清理。五、「本地磁碟文件系統」上持久緩存目錄中存儲的數據為「元數據文件」及「緩存文件」。「本地化鏡像客戶端系統」將文件的數據以及文件的元數據分別存放。「元數據文件」用來持久存儲遠程文件系統登錄目錄(以及其所轄子目錄和文件)的信息關係,以及記錄在「本地磁碟文件系統」上文件數據緩存狀態。「緩存文件」則持久緩存遠程文件系統中特定文件數據到「本地磁碟文件系統」上的持久緩存目錄中的文件。「本地化鏡像客戶端系統」通過「元數據文件」可重構相應的遠程文件系統目錄結構以及在「本地磁碟文件系統」上的文件緩存狀態。「本地化鏡像客戶端系統」運行時讀取該元數據文件部分或全部內容到內存中的「元數據管理區」,以及讀取「緩存文件」部分或者全部內容到內存中的「文件緩存數據區」。「本地化鏡像客戶端系統」定時將內存中「元數據管理區」內容回寫到「本地磁碟文件系統」中的元數據文件中,以及將內存中的「文件緩存數據區」回寫到「本地磁碟文件系統」中的相對應的「緩存文件」,以保證遠程文件數據的本地化持久存儲;如圖3所示,通過「本地化鏡像客戶端系統」中的「緩存查詢模塊」2211進行對「緩存映射表模塊」 2218進行查詢後若發現對應的元數據存儲在本地磁碟文件系統緩存目錄上,則調用「本地磁碟緩存處理模塊」 2214通過「本地磁碟文件系統驅動」 224讀取相應的元數據信息,並更新「緩存映射表模塊」 2218 (表現為增加新的文件元素9100並寫入相關信息),之後通知「緩存查詢模塊」2211通過新生成的文件元素9100進行文件數據映射的查詢。若需要獲取的數據存在於本地磁碟文件系統緩存目錄上,則通過「本地磁碟緩存處理模塊2214」調用「本地磁碟文件系統驅動」 224根據緩存元素9800內部所記錄的存儲文件名、偏移量、長度等信息讀取相應的數據到內存緩存,並更新緩存元素9800為內存緩存,記錄內存中偏移量等內容。最後由「本地內存緩存處理模塊」2213響應「I/O請求響應模塊」2217構造返回數據返回給應用230。同時「I/O監控模塊」2216定時清理「內存緩衝區」將過期元數據及文件數據寫入本地磁碟文件系統緩存目錄。六、「本地化鏡像客戶端系統」向本地計算設備上的應用提供塊級別的文件服務,即應用請求讀取某文件的任意偏移量開始的小於等於虛擬文件系統規定大小的連續數據(即一個塊數據)時,「本地化鏡像客戶端系統」將按其請求提供相應數據;「本地化鏡像客戶端系統」對內存中文件數據緩存區中的管理是以塊為單位,即提供塊大小的緩存空間申請和釋放,塊大小可由「本地化鏡像客戶端系統」的參數配置文件指定。七、「本地化鏡像客戶端系統」通過將自身掛載到用戶計算設備的「虛擬文件系統」,通過實現「虛擬文件系統」的標準訪問接口的方式來提供文件服務。用戶可以通過訪問指定的掛載目錄來進行文件操作。八、「本地化鏡像客戶端系統」支持與多種類型的遠程文件系統伺服器連接和訪問,「本地化鏡像客戶端系統」根據配置參數來自動地維護與遠程文件系統伺服器連接。當網絡出現故障或與「遠程文件系統伺服器」連接失敗時,「本地化鏡像客戶端系統」可以暫時不連接「遠程文件系統伺服器」,而只利用「本地磁碟文件系統」指定的緩存目錄中的緩存文件數據為本地計算設備上的「應用」提供文件服務。如圖6所示,「本地化鏡像客戶端系統」網絡監控模塊連接「遠程文件系統服務」的流程圖,當網絡斷開時進入離線模式,若用戶(應用)訪問已經緩存的數據內容則正常返回,若訪問本機未進行緩存的數據內容,則根據用戶的設置決定是立刻返回錯誤提示或者阻塞至網絡重新連接並接受所需數據後返回。同時,當網絡斷開時,「網絡監控模塊」會定時嘗試重新連接網絡,當網絡重新建立後則跳出離線模式。九、當本地計算設備上的「應用」對通過由「本地化鏡像客戶端系統」提供文件服務的掛載目錄所轄的子目錄和文件進行讀操作時,本地化鏡像客戶端系統首先查詢其內存「元數據管理區」看應用所請求的文件和其數據塊是否存在於內存中的「文件數據緩存區」,若存在則直接將相應數據拷貝給應用;若不存在內存中的「文件數據緩存區」,則進一步查看是否在本地磁碟文件系統中指定持久緩存目錄中,若存在於本地持久緩存目錄中,則將相應數據讀取到內存的文件數據緩存區,再進一步拷貝給應用;若也不在本地磁碟文件系統中指定的持久緩存目錄中,則向「遠程文件系統伺服器」發起請求讀取相應的文件和數據塊到本地內存的文件數據緩存區,再進一步拷貝給應用;若向「遠程文件系統伺服器」發起請求讀取相應的文件和數據塊操作失敗,則直接返回錯誤給應用。最終「本地化鏡像客戶端系統」修改其內存「元數據管理區」和「文件數據緩存區」。如圖3所示,通過「本地化鏡像客戶端系統」中的「緩存查詢模塊」2211進行對「緩存映射表模塊」 2218進行查詢後若發現對應的元數據存儲在本地磁碟文件系統緩存目錄上,則調用「本地磁碟緩存處理模塊」 2214通過「本地磁碟文件系統驅動」 224讀取相應的元數據信息,並更新「緩存映射表模塊」2218 (表現為增加新的文件元素9100並寫入相關信息),之後通知「緩存查詢模塊」2211通過新生成的文件元素9100進行文件數據映射的查詢;若存在於本地內存緩存,則通過「本地內存緩存處理模塊」2213調用「內存驅動」222獲取元數據信息;若存在於遠端文件系統登陸目錄處,則通過「網絡任務生成模塊」2212構造網絡任務傳輸給「網絡任務表模塊」 2215,2215將使用「網絡驅動」 223與遠端進行通信完成數據獲取操作,若獲取操作失敗或當前處於網絡離線模式,則返回錯誤代碼。若需要獲取的文件數據存在於本地磁碟文件系統緩存目錄上,則通過「本地磁碟緩存處理模塊2214」調用「本地磁碟文件系統驅動」 224根據緩存元素9800內部所記錄的存儲文件名、偏移量、長度等信息讀取相應的數據到內存緩存,並更新緩存元素9800為內存緩存,記錄內存中偏移量等內容。最後由「本地內存緩存處理模塊」2213響應「I/O請求響應模塊」2217構造返回數據返回給應用230 ;若所需獲取的文件數據存在於內存緩存,則直接通過「本地內存緩存處理模塊」2213響應「I/O請求響應模塊」2217構造返回數據返回給應用230 ;若所需獲取的文件數據存在於遠端文件系統登陸目錄,則通過「網絡任務生成模塊」2212產生包括遠程節點號9102,偏移量9804和大小9803的網絡任務傳遞給「網絡任務表模塊」 2215,其通過「網絡驅動」223與遠程交互獲得所需數據,之後更新緩存元素9800為內存緩存,記錄偏移量等信息,若獲取操作失敗或當前處於網絡離線模式,則返回錯誤代碼。最後使用「本地內存緩存處理模塊」2213響應「I/O請求響應模塊」2217構造返回數據返回給應用230。十、當本地計算設備上的「應用」對通過由「本地化鏡像客戶端系統」提供文件服務的掛載目錄所轄的子目錄和文件進行寫操作時,「本地化鏡像客戶端系統」首先查詢其內存「元數據管理區」並判斷應用所請求的文件和數據塊是否存在於內存中的「文件數據緩存區」,若存在則直接將應用提供的寫入數據拷貝到對應的內存「文件數據緩存區」中;若不在本地內存的「文件數據緩存區」,則在先本地內存的「文件數據緩存區」申請相應大小的內存空間,然後將應用提供的寫入數據拷貝到對應的本地內存「文件數據緩存區」中。若在本地內存的「文件數據緩存區」申請一塊內存空間失敗,則先進行內存的「文件數據緩存區」清理,然後再重新申請內存空間,重複上述操作。最終「本地化鏡像客戶端系統」修改其內存的「元數據管理區」和「文件數據緩存區」。如圖3所示,通過「本地化鏡像客戶端系統」中的「緩存查詢模塊」2211進行對「緩存映射表模塊」2218進行查詢後若發現對應的元數據存儲在本地內存緩存中,則通知「緩存查詢模塊」2211通過文件元素9100進行文件數據映射的查詢;若需要獲取的文件數據存在於本地磁碟文件系統緩存目錄上,則通過「本地磁碟緩存處理模塊2214」調用「本地磁碟文件系統驅動」224根據緩存元素9800內部所記錄的存儲文件名、偏移量、長度等信息讀取相應的數據到內存緩存,並更新緩存元素9800為內存緩存,記錄內存中偏移量等內容。此時若內存緩存已經達到用戶規定的最大大小,則通過「本地緩存整理模塊」2219將過期的數據塊通過「本地磁碟緩存處理模塊」 2214利用「本地磁碟文件系統驅動」 224存儲到本地磁碟的持久緩存區,然後通過「本地內存緩存處理模塊」 2213利用「內存驅動」 222將這些過期數據塊移除,此操作會多次進行直到內存緩存小於用戶規定的最大大小。最後由「本地內存緩存處理模塊」2213響應「I/O請求響應模塊」2217構造返回數據返回給應用230 ;若所需獲取的文件數據存在於內存緩存,則直接通過「本地內存緩存處理模塊」 2213響應「I/O請求響應模塊」2217構造返回數據返回給應用230。十一、「本地化鏡像客戶端系統」負責其內存中「文件數據緩存區」的管理(包括清理不用的文件數據緩存塊、加載新的文件數據緩存塊、對已有文件數據緩存塊進行索引)。當「文件數據緩存區」中的空閒數據塊緩存空間沒有時或少於由「本地化鏡像客戶端系統」運行參數規定的空閒數據塊緩存空間數目時,「本地化鏡像客戶端系統」啟動內存的「文件數據緩存區」清理工作,清理狀態為「使用」的數據塊。清理算法可由「本地化鏡像客戶端系統」運行參數指定,「本地化鏡像客戶端系統」提供接口機制,並支持用戶自定義清理算法。若該「使用」狀態的數據塊未被修改,則直接設置為空閒狀態並修改相應的元數據管理區。若該「使用」狀態的數據塊被修改,則進一步判斷其所對應的文件在「本地磁碟文件系統」的持久緩存目錄中是否存在,若該文件在「本地磁碟文件系統」的持久緩存目錄中存在則直接將文件數據緩存區中該「使用」狀態的數據塊回寫到「本地磁碟文件系統」的對應文件中,然後將內存文件數據緩存區中的該數據塊狀態設置為空閒狀態並修改相應的元數據管理區;若該文件在「本地磁碟文件系統」的持久緩存目錄中不存在則先在「本地磁碟文件系統」的持久緩存目錄中建立該文件,然後直接將文件數據緩存區中該「使用」狀態的數據塊回寫到「本地磁碟文件系統」的對應文件中,然後將內存「文件數據緩存區」中的該數據塊狀態設置為空閒狀態並修改相應的元數據管理區。具體運行機制如下:「本地緩存整理模塊」2219定時監控當前緩存狀態,若本地內存緩存達到用戶定義的最大大小,開始執行清理操作。首先通過「緩存映射表模塊」2218查詢在內存中的文件元素9100,判斷上傳狀態9106,若所有被修改模塊已經上傳完畢,並且當前沒有被使用,則將映射表集合9600中映射表9700對應的緩存元素9800通過「本地磁碟緩存處理模塊」 2214利用「本地磁碟文件系統驅動」 224存儲到本地持久緩存中,並更新緩存元素9800以及映射表9700中的塊類型9702 ;若本地磁碟緩存達到用戶定義的最大大小,開始執行清理操作。首先通過「本地緩存處理模塊」獲取本地磁碟持久緩存中的元數據信息,查看文件元素9100,按時間戳9110排序,若上傳狀態9106為0,即表示所有修改已經上傳到遠程文件系統伺服器,則可以將映射表集合9600中映射表9700對應的緩存元素9800從磁碟緩存中清除。十二、「本地化鏡像客戶端系統」負責本地磁碟文件系統中指定持久緩存目錄中的數據管理(包括刪除不用的緩存文件、創建新的緩存文件、或修改已有的緩存文件、對已有緩存文件進行索引)。對於那些在「本地磁碟文件系統」中指定持久緩存目錄中的自最近一次修改以來尚未上傳到「遠程文件系統」中的文件及目錄,「本地化鏡像客戶端系統」同步或者異步地將其上傳到遠程文件系統中(採用同步方式或異步方式由「本地化鏡像客戶端系統」運行參數決定),並修改「本地化鏡像客戶端系統」中相應的元數據。十三、「本地化鏡像客戶端系統」負責本地磁碟文件系統中指定持久緩存目錄中的磁碟空間大小管理。當「本地磁碟文件系統」中指定持久緩存目錄中文件數據所佔用的磁碟空間大小達到「本地化鏡像客戶端系統」的參數規定的大小時,「本地化鏡像客戶端系統」運行緩存文件淘汰算法,將指定的欲淘汰文件數據刪除,從而保證「本地磁碟文件系統」中指定持久緩存目錄中文件數據所佔用的磁碟空間大小小於「本地化鏡像客戶端系統」的參數規定的大小。緩存文件淘汰算法可由「本地化鏡像客戶端系統」運行參數指定,「本地化鏡像客戶端系統」提供接口機制,並支持用戶自定義緩存文件淘汰算法。十四、「本地化鏡像客戶端系統」負責「本地磁碟文件系統」中指定持久緩存目錄中的文件數據時,在刪除本地磁碟文件系統中指定持久緩存目錄中文件數據前,需要根據「本地化鏡像客戶端系統」的元數據管理區信息判斷該欲刪除的文件自最近一次修改以來是否已經上傳到遠程文件系統中,若尚未上傳到遠程文件系統則先生成上傳任務表,並根據上傳任務表將相關文件上傳到遠程文件系統的相應文件上。若上傳該欲刪除的文件失敗,則取消在「本地磁碟文件系統」中指定持久緩存目錄中刪除該文件,否則在「本地磁碟文件系統」中指定持久緩存目錄中刪除該文件。十五、「本地化鏡像客戶端系統」負責透明地將遠程文件系統指定目錄所管轄的子目錄和文件的全部或者部分數據下載到「本地磁碟文件系統」中指定持久緩存目錄中。「本地化鏡像客戶端系統」根據其運行參數規定的文件數據預取算法(例如優先預取最近IO文件所屬相同目錄下文件的算法)生成下載任務表,動態地將遠程文件系統指定目錄中所要預取的目錄和文件下載到「本地磁碟文件系統」中指定持久緩存目錄中,從而當本地設備上運行的「應用」訪問這些已經提前下載到「本地磁碟文件系統」中指定持久緩存目錄中的遠程文件系統的文件時其將以本地磁碟文件系統的訪問速度對該文件訪問,而不是網絡訪問速度。十六、「本地化鏡像客戶端系統」負責透明地將「本地磁碟文件系統」中指定持久緩存目錄中在本地計算設備上已經修改的文件和新創建的文件以及刪除文件等操作異步地或者同步地提交到遠程文件系統指定目錄中,具體採用異步模式還是同步模式取決於「本地化鏡像客戶端系統」運行參數。十七、「本地化鏡像客戶端系統」中的上傳任務和下載任務統一為「網絡任務表」,其存在於「本地化鏡像客戶端系統」內存中,並由「本地化鏡像客戶端系統」定期將其寫入到「本地磁碟文件系統」中指定持久緩存目錄中的「網絡任務文件」中,從而保證其持久存儲,在「本地化鏡像客戶端系統」重新啟動後加載「網絡任務文件」到內存中的「網絡任務表」,使「本地化鏡像客戶端系統」繼續上次運行網絡任務。十八、「本地化鏡像客戶端系統」的「I/O監控模塊」負責用於監控本地計算設備當前作業系統負載,當達到運行參數中設置的條件時,即根據用戶設置的規則暫停或延緩某些網絡任務的執行(數據下載、數據預取以及修改後數據的上傳)。為能進一步了解本發明的技術內容、特點及功效,茲列舉以下應用實例,並配合附圖詳細說明如下:應用實例I在傳統的遠程文件系統使用場景中,通常需要不間斷的網絡連接來保證遠程文件系統的正常使用,此時若用戶處在不穩定的網絡環境下,由於網絡斷開等原因導致無法正常使用遠程文件系統。在應用實例I中,應用可以使用本發明連接其遠程文件系統,通過本地磁碟文件系統持久緩存機制,有效提高應用訪問遠程文件系統的速度,大大節省網絡流量,同時保障不穩定網絡環境下的正常使用。圖7展示應用實例I的工作流程。首先,啟動安裝了「本地化鏡像客戶端」的用戶計算設備。實例I使用安裝Linux2.6內核的PC機,「遠程文件系統伺服器端」可以使用普通PC機也可使用現有商業雲。「遠程文件系統伺服器」在實例I中使用SSH Server0 「本地化鏡像客戶端」與「遠程文件系統伺服器」的連接可以使用乙太網或無線網絡。在實例I中採用無線網絡IEEE802.llb/g連接。其次,開啟「本地化鏡像客戶端」,此時「本地文件系統驅動」、「內存緩存管理」、「網絡文件系統驅動」以及「網絡監控模塊」作為「本地化鏡像客戶端」進程的子線程啟動,「網絡文件系統驅動」模塊負責建立TCP連接,「網絡監控模塊」開始監控網絡連接狀況並開始嘗試連接伺服器。同時「本地緩存整理模塊」通過調用「本地磁碟緩存處理模塊」開始載入本地持久緩存中的元數據信息,並構造「緩存映射表模塊」的數據。登陸成功之後,用戶(應用)請求的數據若在本地無緩存,則通過「網絡任務生成模塊」、「網絡任務模塊」和「網絡文件系統驅動」向「遠程文件系統伺服器」請求數據。若請求的數據在本地有緩存,則通過「本地磁碟文件系統驅動」、「本地磁碟緩存處理模塊」、「本地內存緩存處理模塊」、「內存緩存管理」進行數據的獲取。網絡斷開後,「本地化鏡像客戶端」將會由「網絡監控模塊」轉換為離線模式,此時如果用戶(應用)請求的數據在本地有緩存,則直接返回,否則將會返回錯誤信息。此時具體數據讀取流程參照圖7、8、9給出。如圖8 所示,「緩存映射表模塊」2218 中載入了 「/,,、「.vimrc」、「manuscripts,,、「paper.tex」、「slides」幾個文件元素9100,同時在磁碟中有未載入的文件元素9100bashrc」、「VMware」。若此時嘗試獲取.bashrc的文件元數據信息,那麼通過「本地化鏡像客戶端系統」中的「緩存查詢模塊」2211進行對「緩存映射表模塊」2218中「.bashrc」查詢後發現對應的元數據存儲在本地磁碟文件系統緩存目錄上,調用「本地磁碟緩存處理模塊」2214通過「本地磁碟文件系統驅動」224讀取.bashrc的元數據信息,並更新「緩存映射表模塊」2218 (表現為增加新的文件元素9100並寫入相關信息)。若此時嘗試讀取.vimrc的元數據,那麼通過「本地化鏡像客戶端系統」中的「緩存查詢模塊」2211進行對「緩存映射表模塊」 2218中「.bashrc 」查詢後發現對應的元數據存儲在本地內存緩存中,則調用「本地內存緩存處理模塊」 2213使用「內存驅動」 222讀取.bashrc的元數據信息。如圖9所示,文件數據的狀況如下:Vim.rc文件共4塊數據塊,其中O、I號數據塊存在於內存緩存,2、3號數據塊存在於磁碟緩存,4號數據塊本地無緩存;VMware文件共有700塊數據塊,O到500塊存在於內存緩存,501到529本地無緩存,530到700存在於磁碟緩存。若此時嘗試用文本編輯器打開vim.rc文件,由於文本編輯器默認載入文件的全部內容,所以應用230向「MFS核心管理系統」221請求全部五塊數據。此時「緩存查詢模塊」2211從「緩存映射表模塊」2218通過遍歷根節點9002及父目錄9104子元素9105的方式(樹狀遍歷)或者查詢文件元素工作表9200及文件元素表9300的方式(根據用戶設定參數不同而選擇,默認先查詢文件元素工作表,再查詢文件元素表,最後進行樹狀遍歷)獲取vim.rc對應的文件元素9100,通過塊映射表9111找到塊映射表集合9600,通過遍歷映射表9601獲得映射表9700,根據9700中塊類型9702選擇文件的讀取方式(使用「本地磁碟緩存處理模塊」 2214、「本地內存緩存處理模塊」 2213或者「網絡任務生成模塊」 2212)。此實例中,首先通過「本地內存緩存處理模塊」2213獲取O、I號數據塊。然後通過「本地磁碟緩存處理模塊2214」調用「本地磁碟文件系統驅動」224根據緩存元素9800內部所記錄的存儲文件名、偏移量、長度等信息讀取2、3號數據塊到內存緩存,並更新緩存元素9800為內存緩存,記錄內存中偏移量等內容。最後,若當前網絡為離線模式,則返回對應的錯誤代碼;若當前網絡正常,則通過「網絡任務生成模塊」2212產生包括遠程節點號9102,偏移量9804和大小9803的網絡任務傳遞給「網絡任務表模塊」2215,其通過「網絡驅動」223與遠程交互獲得所需數據,之後更新緩存元素9800為內存緩存,記錄偏移量等信息,若獲取操作失敗或當前處於網絡離線模式,則返回錯誤代碼。最後使用「本地內存緩存處理模塊」2213響應「I/O請求響應模塊」2217構造返回數據返回給應用230。此讀取實例下,當網絡離線模式時由於應用的特性,無法正常訪問此文件。若此時嘗試用虛擬機軟體載入虛擬硬碟VMware,此時應用僅請求需要的文件數據而不是全部文件數據,所以當501到509號數據未被使用時,此虛擬機可以正常運行在離線模式下。考慮到在此公開的對本發明的描述和特例的實施例,本發明的其他實施例對於本領域的技術人員來說是顯而意見的。這些說明和實施例僅作為例子來考慮,它們都屬於由所附權利要求所指示的本發明的保護範圍和精神之內。
權利要求
1.基於客戶端持久緩存的遠程文件系統鏡像系統,其特徵在於,該系統包括遠程文件系統伺服器裝置和客戶計算機裝置,二者通過網絡互聯; 遠程文件系統伺服器裝置,主要包括遠程文件系統服務模塊,簡稱「遠程文件系統服務系統」,通過常見的網絡文件協議為網絡其它計算機提供文件系統服務; 客戶計算機裝置,主要包括遠程文件系統的本地化鏡像客戶端系統模塊,簡稱「本地化鏡像客戶端系統」;本地具有持久存儲能力的磁碟文件系統模塊,簡稱「本地磁碟文件系統」;本地「虛擬文件系統」服務模塊;本地計算設備上運行的各種「用戶應用程式」,簡稱「應用」;本地內存模塊; 本地「虛擬文件系統」為各種「應用」提供統一的透明文件服務,無論是訪問「本地磁碟文件系統」還是訪問「遠程文件系統服務系統」;而本地「虛擬文件系統」實現訪問「遠程文件系統服務系統」的功能,具體是由「本地化鏡像客戶端系統」來實現的;同時「本地化鏡像客戶端系統」將使用「本地磁碟文件系統」部分空間作為持久緩存「遠程文件系統服務系統」部分文件及元數據的空間。
2.根據權利要求1所述的系統,其特徵在於,所述的「本地化鏡像客戶端系統」由「本地化鏡像客戶端核心管理系統」子模塊、內存緩存管理子模塊、網絡文件系統驅動子模塊、和本地磁碟緩存管理子模塊組成;其中內存緩存管理子模塊負責內存中「元數據管理區」和「文件數據緩存區」的管理;網絡文件系統驅動子模塊負責與各種協議的網絡文件系統連接和文件數據傳輸及控制,各種網絡協議包括NFS、FTP、HTTP、SSH和Hadoop協議;本地磁碟緩存管理子模塊負責管理「本地磁碟文件系統」上的持久緩存目錄及元數據管理;「本地化鏡像客戶端核心管理系統」子模塊通過網絡文件系統驅動子模塊與遠程網絡文件系統進行文件傳輸及控制,「本地化鏡像客戶端核心管理系統」也負責完成本地「虛擬文件系統」傳過來的文件訪問操作,並進一步將所網絡下載的文件數據及本地「應用」修改的文件數據和控制操作統一緩存在客戶計算機裝置上內存緩存區和「本地磁碟文件系統」持久緩存目錄中。
3.根據權利要求2所述的系統,其特徵在於,「本地化鏡像客戶端系統」內存中主要數據結構包括:內存元數據區、內存文件數據緩存區、內存緩存映射表、內存網絡任務表;「本地化鏡像客戶端系統」在「本地磁碟文件系統」持久存儲的主要數據文件包括:元數據文件、網絡任務文件、數據緩存文件;「本地磁碟文件系統」的指定持久緩存目錄的空間大小僅受限於該「本地磁碟文件系統」的空間大小,或者由「本地化鏡像客戶端系統」的參數來設定具體的持久緩存目錄的空間大小,即「本地磁碟文件系統」的指定持久緩存目錄的實際使用空間不能超過參數設定值,並且在「本地化鏡像客戶端系統」運行期間能夠動態改變具體的持久緩存目錄的空間大小。
4.基於客戶端持久緩存的遠程文件系統鏡像方法,其特徵在於,該方法的具體步驟如下: 第1、啟動「遠程文件系統伺服器」,並正常開啟網絡文件系統服務; 第2、啟動客戶計算機裝置上作業系統的本地「虛擬文件系統」服務; 第3、啟動客戶計算機裝置上的「本地化鏡像客戶端系統」,「本地化鏡像客戶端系統」分別與「遠程文件系統伺服器」、本地「虛擬文件系統」以及「本地磁碟文件系統」進行連接和通信,從而通過本地「虛擬文件系統」為客戶計算機裝置上的「應用」提供透明訪問「遠程文件系統伺服器」的文件服務,具體步驟包括如下:第3.1、「本地化鏡像客戶端系統」讀取參數配置文件,獲取相關運行參數,運行參數包括「遠程文件系統」認證信息和登錄目錄、「本地虛擬文件系統」的掛載目錄和訪問權限信息、「本地磁碟文件系統」上的持久緩存目錄和元數據文件信息、運行性能與安全參數; 第3.2、「本地化鏡像客戶端系統」在客戶計算機裝置的內存建立並初始化「元數據管理區」和「文件數據緩存區」; 第3.3、「本地化鏡像客戶端系統」讀取「本地磁碟文件系統」上的持久緩存目錄及元數據文件,進一步讀取已在本地持久緩存目錄中緩存的遠程文件系統目錄和文件數據到「本地化鏡像客戶端系統」內存中的「文件數據緩存區」中,並修改相應的元數據管理區; 第3.4、「本地化鏡像客戶端系統」連接「遠程文件系統伺服器」,提交「遠程文件系統伺服器」所需要的用戶名和口令給「遠程文件系統伺服器」,經過「遠程文件系統伺服器」認證通過後,讀取遠程文件系統相應目錄及其部分子目錄和文件並合併到「本地化鏡像客戶端系統」的內存空間的文件數據緩存區中,並修改「本地化鏡像客戶端系統」內存中的「元數據管理區」; 第3.5、「本地化鏡像客戶端系統」向「本地虛擬文件系統」註冊並掛載到指定的掛載目錄上,開始提供透明訪問「遠程文件系統伺服器」的文件服務; 第3.6、本地計算設備上運行的「應用」通過標準的本地「虛擬文件系統」訪問「本地化鏡像客戶端系統」所提供的文件服務,從而透明地訪問「遠程文件系統」; 第3.7、「本地化鏡像客戶端系統」正常運行期間,利用「本地磁碟文件系統」中指定的持久緩存目錄,動態地管理「應用」訪問「遠程文件系統伺服器」的文件數據,包括下載和上傳文件及目錄數據,以保持本地「磁碟文件系統」中持久緩存數據和遠程文件系統數據的一致性;並動態維護「本地化鏡像客戶端系統」內存中的「元數據管理區」和「文件數據緩存區」信息,以及保持「本地化鏡像客戶端系統」內存數據和本地磁碟文件系統中持久緩存數據的一致性; 第4、當停止「本地化鏡像客戶端系統」時,「本地化鏡像客戶端系統」將撤銷與本地「虛擬文件系統」的註冊,「本地化鏡像客戶端系統」將內存中「元數據管理區」和「文件數據緩存區」保存到本地磁碟文件系統中指定的持久緩存的目錄中,並關閉與遠程文件系統伺服器的連接。
5.根據權利要求4所述的方法,其特徵在於,「本地化鏡像客戶端系統」採用塊粒度為最小單位實現本地與遠程文件系統的文件上傳下載、以及本地持久緩存中文件的讀寫操作,以及對「遠程文件系統伺服器」中文件的持久緩存;在「本地磁碟文件系統」中的指定持久緩存目錄中緩存遠程文件系統中的全部文件,或者緩存遠程文件系統中的部分文件,或者緩存遠程文件系統中的單個文件的部分數據塊;「本地化鏡像客戶端系統」對持久緩存文件的元數據管理採用塊粒度為最小單位,而不是文件粒度。
6.根據權利要求4所述的方法,其特徵在於,「本地化鏡像客戶端系統」負責本地客戶計算設備中內存緩存的維護,包括刪除文件塊數據緩存、創建文件塊數據緩存、維護內存文件塊數據索引、修改文件塊數據緩存信息;「本地化鏡像客戶端系統」也負責本地磁碟文件系統中指定持久緩存目錄中的數據管理,包括刪除不用的緩存文件、創建新的緩存文件、或修改已有的緩存文件、對已有緩存文件進行索引。
7.根據權利要求4所述的方法,其特徵在於,「本地化鏡像客戶端系統」正常運行期間,當「應用」試圖訪問「遠程文件系統伺服器」的文件數據時,「本地化鏡像客戶端系統」將首先在內存中的「元數據管理區」和「文件數據緩存區」信息查找內存中是否有所欲訪問的文件數據的緩存,若內存中有所述文件數據緩存,則直接返回給「應用」所欲訪問的文件數據,不需真正訪問「遠程文件系統伺服器」;若內存中沒有所欲訪問的文件數據的緩存,則進一步查找本地「磁碟文件系統」中持久緩存數據是否有所欲訪問的文件數據的緩存,若本地「磁碟文件系統」中有所述文件數據緩存,則直接返回給「應用」所欲訪問的文件數據,不需真正訪問「遠程文件系統伺服器」;否則「本地化鏡像客戶端系統」訪問「遠程文件系統伺服器」中所欲訪問的文件數據,更新本地客戶計算設備中內存以及本地「磁碟文件系統」中緩存信息,最後返回給「應用」所欲訪問的文件數據。
8.根據權利要求4所述的方法,其特徵在於,「本地化鏡像客戶端系統」正常運行期間,當「應用」試圖在「遠程文件系統伺服器」中建立、修改以及刪除文件操作時,「本地化鏡像客戶端系統」首先將建立和修改文件及控制信息緩存在本地「磁碟文件系統」中持久緩存目錄中,並更新本地「磁碟文件系統」中元數據信息,然後返回給「應用」操作結果,最後在本地客戶計算設備負載允許情況下同步或者異步方式將「應用」對「遠程文件系統伺服器」的修改以及刪除文件操作從本地「磁碟文件系統」中持久緩存讀取並提交給「遠程文件系統伺服器」。
9.根據權利要求4所述的方法,其特徵在於,「本地化鏡像客戶端系統」負責與「遠程文件系統伺服器」進行連接、認證以及文件上傳下載服務;若「本地化鏡像客戶端系統」不能正確連接和訪問「遠程文件系統伺服器」,或「本地化鏡像客戶端系統」和「遠程文件系統伺服器」正常工作中突然斷開連接時,「本地化鏡像客戶端系統」仍能夠繼續運行並為本地計算設備上運行的「應用」提供文件服務,此時僅提供在「本地磁碟文件系統」中的指定持久緩存目錄中已有緩存的相關文件服務;「本地化鏡像客戶端系統」異步地稍後再嘗試連接和訪問「遠程文件系統伺服器」,當再次恢復對「遠程文件系統伺服器」的連接和訪問時,提供正常的「遠程文件系統伺服器」 的文件服務。
全文摘要
本發明是在網絡環境下在客戶計算設備上利用本地磁碟文件系統作為持久緩存空間的實現遠程文件系統的本地化鏡像方法及其系統。應用在客戶計算設備上通過訪問「本地化鏡像客戶端系統」來透明訪問遠程文件系統。「本地化鏡像客戶端系統」通過「本地磁碟文件系統」來持久緩存遠程文件系統的部分文件及文件的部分數據,並負責維護本地持久緩存遠程文件系統的一致性。本發明採用塊粒度為最小單位來實現本地與遠程文件系統的文件上傳下載、以及本地持久緩存中文件的讀寫操作,並支持對文件的部分塊數據進行持久緩存。本發明將有效提高「用戶應用程式」對遠程文件系統的訪問效率從而提高用戶體驗,並大大節省網絡流量。
文檔編號H04L29/08GK103116618SQ201310032480
公開日2013年5月22日 申請日期2013年1月28日 優先權日2013年1月28日
發明者李旭東, 史寶旭 申請人:南開大學

同类文章

一種新型多功能組合攝影箱的製作方法

一種新型多功能組合攝影箱的製作方法【專利摘要】本實用新型公開了一種新型多功能組合攝影箱,包括敞開式箱體和前攝影蓋,在箱體頂部設有移動式光源盒,在箱體底部設有LED脫影板,LED脫影板放置在底板上;移動式光源盒包括上蓋,上蓋內設有光源,上蓋部設有磨沙透光片,磨沙透光片將光源封閉在上蓋內;所述LED脫影

壓縮模式圖樣重疊檢測方法與裝置與流程

本發明涉及通信領域,特別涉及一種壓縮模式圖樣重疊檢測方法與裝置。背景技術:在寬帶碼分多址(WCDMA,WidebandCodeDivisionMultipleAccess)系統頻分復用(FDD,FrequencyDivisionDuplex)模式下,為了進行異頻硬切換、FDD到時分復用(TDD,Ti

個性化檯曆的製作方法

專利名稱::個性化檯曆的製作方法技術領域::本實用新型涉及一種檯曆,尤其涉及一種既顯示月曆、又能插入照片的個性化檯曆,屬於生活文化藝術用品領域。背景技術::公知的立式檯曆每頁皆由月曆和畫面兩部分構成,這兩部分都是事先印刷好,固定而不能更換的。畫面或為風景,或為模特、明星。功能單一局限性較大。特別是畫

一種實現縮放的視頻解碼方法

專利名稱:一種實現縮放的視頻解碼方法技術領域:本發明涉及視頻信號處理領域,特別是一種實現縮放的視頻解碼方法。背景技術: Mpeg標準是由運動圖像專家組(Moving Picture Expert Group,MPEG)開發的用於視頻和音頻壓縮的一系列演進的標準。按照Mpeg標準,視頻圖像壓縮編碼後包

基於加熱模壓的纖維增強PBT複合材料成型工藝的製作方法

本發明涉及一種基於加熱模壓的纖維增強pbt複合材料成型工藝。背景技術:熱塑性複合材料與傳統熱固性複合材料相比其具有較好的韌性和抗衝擊性能,此外其還具有可回收利用等優點。熱塑性塑料在液態時流動能力差,使得其與纖維結合浸潤困難。環狀對苯二甲酸丁二醇酯(cbt)是一種環狀預聚物,該材料力學性能差不適合做纖

一種pe滾塑儲槽的製作方法

專利名稱:一種pe滾塑儲槽的製作方法技術領域:一種PE滾塑儲槽一、 技術領域 本實用新型涉及一種PE滾塑儲槽,主要用於化工、染料、醫藥、農藥、冶金、稀土、機械、電子、電力、環保、紡織、釀造、釀造、食品、給水、排水等行業儲存液體使用。二、 背景技術 目前,化工液體耐腐蝕貯運設備,普遍使用傳統的玻璃鋼容

釘的製作方法

專利名稱:釘的製作方法技術領域:本實用新型涉及一種釘,尤其涉及一種可提供方便拔除的鐵(鋼)釘。背景技術:考慮到廢木材回收後再加工利用作業的方便性與安全性,根據環保規定,廢木材的回收是必須將釘於廢木材上的鐵(鋼)釘拔除。如圖1、圖2所示,目前用以釘入木材的鐵(鋼)釘10主要是在一釘體11的一端形成一尖

直流氧噴裝置的製作方法

專利名稱:直流氧噴裝置的製作方法技術領域:本實用新型涉及ー種醫療器械,具體地說是ー種直流氧噴裝置。背景技術:臨床上的放療過程極易造成患者的局部皮膚損傷和炎症,被稱為「放射性皮炎」。目前對於放射性皮炎的主要治療措施是塗抹藥膏,而放射性皮炎患者多伴有局部疼痛,對於止痛,多是通過ロ服或靜脈注射進行止痛治療

新型熱網閥門操作手輪的製作方法

專利名稱:新型熱網閥門操作手輪的製作方法技術領域:新型熱網閥門操作手輪技術領域:本實用新型涉及一種新型熱網閥門操作手輪,屬於機械領域。背景技術::閥門作為流體控制裝置應用廣泛,手輪傳動的閥門使用比例佔90%以上。國家標準中提及手輪所起作用為傳動功能,不作為閥門的運輸、起吊裝置,不承受軸向力。現有閥門

用來自動讀取管狀容器所載識別碼的裝置的製作方法

專利名稱:用來自動讀取管狀容器所載識別碼的裝置的製作方法背景技術:1-本發明所屬領域本發明涉及一種用來自動讀取管狀容器所載識別碼的裝置,其中的管狀容器被放在循環於配送鏈上的文檔匣或託架裝置中。本發明特別適用於,然而並非僅僅專用於,對引入自動分析系統的血液樣本試管之類的自動識別。本發明還涉及專為實現讀