麻豆精品无码国产在线播放,国产亚洲精品成人AA片新蒲金,国模无码大尺度一区二区三区,神马免费午夜福利剧场

一種多用戶版本文件遞階式映射方法

文檔序號:6362911閱讀:250來源:國知局
專利名稱:一種多用戶版本文件遞階式映射方法
技術領域
本發(fā)明涉及一種多用戶版本文件系統(tǒng)的遞階式映射方法,涉及一種分布式文件系統(tǒng),特別涉及云計算領域的分布式文件系統(tǒng)。
背景技術
云計算是當前計算機領域一大熱門研究問題,云計算的核心是將某一個或某幾個數據中心的計算資源虛擬化之后,向用戶提供以租用計算資源為形式的服務,資源管理是云計算系統(tǒng)的核心問題,特別是數據和軟件資源的管理,其存放和組織方式是“云”環(huán)境處理計算能力以及性能的關鍵因素。軟件資源的基礎是文件,軟件的運行均基于文件(如可執(zhí)行文件和配置文件及數據等等),云計算的核心任務是提供計算服務,這個服務必定由多個軟件來完成,但安裝配置一個計算環(huán)境是非常費時費力的,因此盡量減少安裝這些軟件次數和提高軟件共享度非常重要。另一方面,登記到這個計算環(huán)境中的用戶必定會根據需求對各個應用軟件進行個性化的配置,這些配置往往會與其他用戶的配置相沖突,從而產生不同版本的配置相互覆蓋的現象.。不僅是應用軟件相關的文件,一些多用戶共享且用戶修改需求不大的文件集合也存在這方面問題,如一個大型實驗室的項目開發(fā)參考資料,每個研究員都會在這些資料之上添加自己的備注,這些備注只要研究員自己可見即可。若是直接在共享資料上進行修改,必定會影響其他人員,同時也造成共享服務器對數據的一致性維護難題;為了不影響其他研究員使用這些文件,各個研究員不得不將資料拷貝到自己的主機上進行修改,這樣又造成了大量的數據冗余。因此,需要一種合適的文件系統(tǒng)來解決上述文件共享中的問題?,F有單機文件系統(tǒng)并不能實現同一文件同時被多個用戶完全隔離地修改;而當前流行的分布式文件系統(tǒng),如IBM的集群文件系統(tǒng)GPFS、Clemson等多所大學合作開發(fā)的PVFS、Google公司的 GoogleFS,以及全球toplOO高性能計算機中部署最多的高性能并行文件系統(tǒng)Luster等等, 都專注于數據的存儲組織方式,圖9給出的是一般分布式文件系統(tǒng)的部署結構,其主要思想是文件元數據(MetaData,即文件的一些控制信息,如文件名、存儲位置等)和文件數據 (即文件內容)分開存放,客戶端根據需要從元數據服務器獲得文件的數據位置,然后根據該位置從數據服務器上獲得數據。對于用戶管理,以及與用戶相關聯的文件使用管理,分布式文件系統(tǒng)很少涉及到。常規(guī)操作系統(tǒng)中對多用戶的數據管理方式都是會為每個用戶創(chuàng)建一個專屬目錄來存放用戶自己的數據。如Linux下所有的用戶都會有一個個人專屬的目錄,稱為主目錄, 以供用戶擺放自己的文件。其他用戶除非有特別的授權,否則無法查看非本人專屬目錄中的文件。每個用戶在日常工作中,最好盡可能的將個人文件、數據存放在自己的專屬目錄下,以方便管理,提高用戶個人數據的安全,防止被意外破壞。但是這樣也會造成數據共享問題,參照圖10,用戶之間的數據共享僅通過開發(fā)權限或者建立鏈接來實現——這些共享數據機制僅僅只針對于數據文件,而對于系統(tǒng)的軟件共享機制則需要特別設置(如在windows中,賦予用戶使用權限),特定用戶才能使用相應的軟件。用戶獲得軟件使用權限之后,可能會對軟件進行符合自己使用要求的修改配置,而這種修改配置對其他用戶是可見的,即某個用戶對軟件的修改配置勢必影響其他用戶的使用,后來用戶的修改就會覆蓋掉前面用戶的配置,這對于多用戶環(huán)境下各用戶維持各自的軟件運行環(huán)境是很不利的。這個問題同樣可以擴展至多用戶共享同一大型數據集合一每個用戶可能只對其中少數數據進行了修改,這些修改相互覆蓋,若每個用戶都想只保留自己的更新,則需要把整個數據集合拷貝至自己的目錄下以保留一份獨立的副本,這一方面造成了極大的空間浪費,同時對共享資源的訪問也帶來了復雜的同步管理,制約了系統(tǒng)對用戶請求的快速響應。由以上可見,現有文件系統(tǒng)無法為多用戶同時提供完全隔離的運行環(huán)境和數據視圖,實現一種能夠為用戶提供數據和應用軟件服務,又能在多用戶之間實現數據和軟件獨立使用的文件系統(tǒng)具有非常大的實用價值,

發(fā)明內容
要解決的技術問題為了避免現有技術的不足之處,本發(fā)明提出一種多用戶版本文件系統(tǒng)的遞階式映射方法,克服現有操作系統(tǒng)中文件系統(tǒng)對數據和軟件共享的限制,根據配置向所有使用該系統(tǒng)的用戶提供共享數據,用戶可以在這些文件的基礎上獨立進行操作。若用戶對某個文件進行了修改等更新操作,本發(fā)明的文件系統(tǒng)將該文件轉為該用戶所特有的一個文件副本,用戶下一次使用這個文件集合時,本發(fā)明的文件系統(tǒng)向用戶虛擬一個私有的工作空間。 本發(fā)明的文件系統(tǒng)將用戶修改過的、已存為私有的文件和其他共享文件整合成一個虛擬的文件系統(tǒng),并將這個虛擬版本的文件系統(tǒng)映射到用戶的私有虛擬工作空間,從而使用戶感覺他在“獨享”整個共享數據集合。技術方案一種多用戶版本文件系統(tǒng)的遞階式映射方法,其特征在于用戶版本文件系統(tǒng)按照共享程度分為完全共享文件、部分共享文件和用戶私有文件三類系統(tǒng)文件,完全共享文件存儲在完全共享文件區(qū)域,部分共享文件存儲在部分共享文件區(qū)域,用戶私有文件存儲在用戶私有文件區(qū)所述完全共享文件是文件系統(tǒng)向所有用戶提供的文件,這些文件一旦添加之后用戶不能在其基礎上進行任何改變;所述部分共享文件是部分用戶所共享的文件集合,這些文件由文件系統(tǒng)根據用戶使用進行添加或者刪除等維護,單個用戶亦不能在其基礎上進行任何改動;所述用戶私有文件是當用戶對某一共享文件進行了修改之后,若該修改特點為該用戶所特有,則相應的用戶工作空間內的共享文件副本就被轉存為該用戶所特有的私有文件;具體遞階式映射步驟如下步驟I :文件系統(tǒng)提供一份由所有用戶完全共享的文件數據集合,這些完全共享的文件數據集合包括一般的數據文件這些文件為系統(tǒng)提供給多個用戶共享的基本數據文件集合,用戶在這些文件提供的信息基礎上單獨作出自己的信息修改、添加和刪除操作,用戶與用戶之間的操作相互獨立;應用軟件所對應的可執(zhí)行文件或配置文件管理員只需在系統(tǒng)中安裝一次某個軟件,共用系統(tǒng)的所有用戶在授權情況下使用該軟件,并且根據需要進行獨立配置和修改,這些修改只對執(zhí)行操作的用戶有效,并不會覆蓋或者影響其他用戶的修改;步驟2 :根據不同情況,系統(tǒng)進行如下處理a :用戶登錄系統(tǒng)文件系統(tǒng)立即為該用戶構建一個虛擬的工作空間Workspace, 令其為該用戶私有,用戶所有文件相關的工作均在其虛擬工作空間內完成;所述多個用戶的虛擬工作空間相互獨立,每個用戶的工作不會跨越其持有的工作空間,空間內的活動也不會影響到其他用戶工作空間;b :初始化用戶私有虛擬工作空間文件系統(tǒng)將完全共享、部分共享和用戶私有三種類型的文件整合,創(chuàng)建一個對用戶特有版本的虛擬文件系統(tǒng);所述虛擬文件系統(tǒng)只存在于相應的用戶私有工作空間,只對該用戶可見,隨虛擬工作空間一起創(chuàng)建,該虛擬文件系統(tǒng)根據用戶對文件數據的更新情況,將文件數據刷到相應的磁盤存儲區(qū)域;c :用戶請求某個文件用戶虛擬文件系統(tǒng)將相應的文件從遞階式存儲多版本文件系統(tǒng)所管理的文件集合中導入,并在對應的工作空間緩存起來,且不考慮該被請求文件的類型;虛擬文件系統(tǒng)把用戶的請求信息轉發(fā)給文件系統(tǒng)的映射模塊,映射模塊把請求轉換成對真實文件系統(tǒng)的文件請求;然根據所請求文件類型在相應區(qū)域取出文件數據返回給用戶虛擬文件系統(tǒng);d:緩存處理當用戶要保存文件時,若文件內容在用戶虛擬工作空間發(fā)生了改變,則把這個文件副本存到用戶私有的文件目錄下,否則保持其原來存儲路徑不變;用戶例程處理文件數據完成,將結果數據交付給位于其工作空間的緩存。緩存連接著遞階式映射多用戶版本文件系統(tǒng)的映射模塊,映射模塊將緩存中的內容寫回到磁盤存儲區(qū)域①對于用戶只讀數據的文件,做清空緩存處理;②對于被用戶修改過的共享文件(包括完全共享文件和部分共享文件),保存至磁盤上用戶私有文件存儲區(qū)域;③對于被修改過的用戶私有文件,直接存入原來的位置;e :用戶例程刪除文件分兩種情況處理①對于共享文件,只刪除該用戶對應的虛擬文件系統(tǒng)目錄中的相應文件記錄對于用戶私有文件,刪除虛擬文件系統(tǒng)目錄中相關記錄,并釋放文件數據在用戶私有存儲區(qū)域的空間;f :用戶例程添加文件一律將新加文件歸為用戶私有文件,存入用戶私有存儲區(qū)域;g:用戶私有存儲區(qū)域的冗余文件合并由于共享文件在使用一段時間后,會在多個用戶私有空間中被分別修改,但文件內容又重合一致,文件系統(tǒng)提供冗余文件合并功所述冗余文件合并功能將多個用戶所持有的完全相同的、但歸其各自私有的文件轉化為部分共享文件撤除用戶私有存儲區(qū)域內的文件副本;將該副本轉存到該組用戶共有的部分共享文件存儲區(qū)域h :部分共享文件維護當共享文件集合中的文件全部被移出時,表示該共享文件集合所對應的用戶組不存在除完全共享文件外的部分共享文件數據,需要將該部分共享文件集合記錄在整個遞階式存儲文件系統(tǒng)的目錄記錄中刪除,以標識用戶組的部分共享消失;
i :用戶退出系統(tǒng)釋放用戶特有的虛擬文件系統(tǒng)之后,釋放相應的虛擬工作空間。有益效果本發(fā)明提出的一種多用戶版本文件系統(tǒng)的遞階式映射方法,有益效果是本發(fā)明通過從向所有用戶提供基本的完全共享文件集合開始,根據用戶對文件修改情況不同,遞階式的存儲各個用戶的文件數據,并通過映射功能,①為每一個用戶維護一個獨立的私有文件系統(tǒng)版本,隔離的、獨立的虛擬文件系統(tǒng)使用戶感覺整個系統(tǒng)只為其單獨服務,完全屏蔽了其他用戶的干擾;②在保證多用戶共享文件數據和應用軟件的同時,實現了共享式文件系統(tǒng)中高度的去冗余性;③對于搭建復雜的計算環(huán)境,安裝配置工作只需進行一次,所有用戶便可以使用該運行環(huán)境,并可以進行任意修改配置,而這些修改配置絕不會影響其它用戶使用;④避免了一般共享式文件系統(tǒng)中復雜繁重的數據一致性維護;⑤數據安全性方面,每個用戶都可為自己私有的虛擬文件系統(tǒng)定制特定的安全保護機制(橫向安全機制),同時也可以為整個文件系統(tǒng)的各個遞階存儲層次制定不同的安全級別(縱向安全級別)一從縱橫兩方面可提供較其他文件系統(tǒng)更可靠、更靈活的安全訪問控制。


圖I是本發(fā)明的結構示意2是本發(fā)明實施例的三種類型文件存儲示意3是本發(fā)明實施例的系統(tǒng)目錄示意4是本發(fā)明實施例中地址分配舉例示意5是本發(fā)明實施例中三種類型文件遞階式映射層次示意6是本發(fā)明實施例中文件從緩沖區(qū)映射到用戶虛擬文件系統(tǒng)示意7是本發(fā)明實施例中用戶例程修改共享文件流程示意8(a)是本發(fā)明實施例中系統(tǒng)全局文件映射位圖示意8(b)是本發(fā)明實施例中用戶全局文件映射位圖與計算示意9 一般分布式文件系統(tǒng)結構圖10常規(guī)操作系統(tǒng)用戶目錄組織方式
具體實施例方式現結合實施例、附圖對本發(fā)明作進一步描述結構組成參照圖1,本發(fā)明的文件系統(tǒng)映射方法主要包括作業(yè)空間、數據存儲區(qū)域、映射模塊、緩沖區(qū)四個部分組成。作業(yè)空間是文件系統(tǒng)為用戶提供服務的場地,是所有在線用戶虛擬工作空間的集合。而各個用戶的虛擬工作空間內部包含一個為用戶提供數據服務的虛擬文件系統(tǒng)。虛擬工作空間為用戶模擬只為單用戶服務的系統(tǒng),而虛擬文件系統(tǒng)模擬只為特定用戶私有的文件系統(tǒng)。一旦有用戶登錄使用,作業(yè)空間就為該用戶創(chuàng)建一個臨時的虛擬工作空間,為用戶模擬一臺完全獨立的系統(tǒng)環(huán)境,用戶所有的應用例程都運行其中,其內部的虛擬文件系統(tǒng)則提供用戶例程所需的所有文件數據,虛擬文件系統(tǒng)的運行機制完全與一般文件系統(tǒng)相似。本發(fā)明通過虛擬工作空間和虛擬文件系統(tǒng)來實現各個用戶應用相互隔離和數據相互隔離。參照圖2,數據存儲區(qū)域存放著各類型的文件數據,在本實施用例中,采取文件按類型按用戶分區(qū)域存儲數據存儲區(qū)域分為完全共享文件區(qū)域、部分共享文件區(qū)域和用戶私有文件區(qū)域。為了保存系統(tǒng)用戶信息和文件映射信息,數據存儲區(qū)域還特別分出一個系統(tǒng)映射目錄區(qū)域,該區(qū)域內的目錄統(tǒng)管系統(tǒng)內所有用戶以及各個用戶所持有文件的目錄映身寸關系。參照圖5,映射模塊負責把不同共享等級的文件數據映射成一份完整的文件系統(tǒng)數據。原本為一個整體的共享文件數據集合被分散開來存儲,在向用戶提供服務時,需要把這些分散的數據映射到用戶虛擬文件系統(tǒng)中,使得用戶不會覺察數據被拆分。緩沖區(qū)是內存中裝載數據的容器。系統(tǒng)加載文件時,會將文件數據存入緩沖區(qū)中, 根據數據類型不同,本實施用例把緩沖區(qū)劃分為完全共享緩沖/部分共享緩沖和用戶私有緩沖。目錄管理本實施用例根據不同用戶映射不同版本的文件系統(tǒng),因此必須把用戶與各自的文件數據版本關聯起來。本實施用例維護一個用戶目錄和一個系統(tǒng)文件目錄。所有用戶持有的用戶文件目錄構成遞階式映射多用戶版本文件系統(tǒng)的系統(tǒng)文件目錄。參照圖3,本實施用例采用一張系統(tǒng)用戶目錄來登記所有用戶的信息。用戶登錄時,系統(tǒng)根據這張表驗證用戶信息,若有用戶注冊,則在此表內添加一行。系統(tǒng)文件目錄記錄所有的文件信息,它由各個用戶的目錄構成。為用戶加載虛擬文件系統(tǒng)時,系統(tǒng)根據用戶ID找到用戶文件目錄所在位置,然后根據目錄內容加載用戶虛擬文件系統(tǒng)視圖。用戶目錄中的FID只對用戶定義,完全共享和部分共享會對文件進行自己范圍內的編號。文件數據按類型按用戶存放,圖4所示為對存儲區(qū)域地址劃分的例子,不同的地址范圍存儲不同類型的數據。依據圖4中對部分共享區(qū)域地址的說明,起始255個單位為用戶組信息,剩余每一個單位對應一條目錄信息,64位地址中左起21到32位為用戶組編號, 即系統(tǒng)中最多2048個用戶組,這樣,每一個用戶組部分共享的文件都集中存儲在同一連續(xù)區(qū)域;同樣,用戶的私有文件都根據用戶ID集中存放,其中用戶文件目錄也放在對應區(qū)域的起始位置。圖3示例的USER-I的私有文件存儲區(qū)域起始65535個單位為對應用戶的目錄,64位地址中左起第I至16位為用戶編號,即系統(tǒng)中最多支持65535個用戶。有新用戶加入時,需要在用戶目錄中登記該用戶信息,并按照完全共享文件數據來初始化用戶文件目錄;系統(tǒng)完全共享資源可以在系統(tǒng)使用過程中由管理員動態(tài)加入,加入的文件同時被記錄到用戶文件目錄中,這樣各個用戶都可以使用這些新數據。數據存儲區(qū)域完全共享文件區(qū)域在整個數據存儲區(qū)域中只有一份,為描述簡單,本實施用例不考慮訪問控制,即該區(qū)域中的任意文件數據對所有用戶可見。對于中途新加入的用戶,其最初所擁有的文件數據集合就只有完全共享文件區(qū)域內的文件。部分共享文件區(qū)域根據用戶組不同可能有多組。若一個用戶組內用戶都持有同一個文件,則該用戶組必定對應了一個部分共享文件組。為區(qū)分映射,一個部分共享文件組與該文件組對應的用戶組信息相關,如圖2中,部分共享文件組I與用戶組I相關聯,用戶組 I內的所有用戶都持有部分共享文件組I內的所有文件;系統(tǒng)中每一個用戶都對應了存儲區(qū)域中的一個用戶私有文件區(qū)域。如圖2,用戶私有的文件存儲區(qū)域被劃分為用戶擁有的私有的文件組和文件目錄兩部分。用戶私有文件組是該用戶所獨享的文件集合,這部分文件數據只有該用戶才可以加載、訪問、修改等;用戶私有文件存儲區(qū)域中的文件目錄可以索引到用戶可見的所有文件,包括完全共享和部分共享文件。初始化時,系統(tǒng)根據這個目錄加載用戶虛擬文件系統(tǒng),而用戶也可以根據該目錄查找或者加載自己的文件。存儲區(qū)域文件映射到緩沖區(qū)圖6給出了一種文件數據從緩沖區(qū)到用戶虛擬文件系統(tǒng)的遞階式映射關系。本實施用例中,用戶虛擬文件系統(tǒng)中保持一張用戶打開文件列表,該列表負責將用戶當前所需的文件映射到相應的緩沖區(qū)。用戶的所有例程數據都是通過該表獲得,例程請求一個尚未加載的文件數據過程如下I.用戶例程給出要請求文件的路徑(該路徑即為用戶虛擬文件系統(tǒng)視圖提供的目錄文件層次);2.映射模塊根據這個路徑查找用戶文件目錄對應的目錄項;3.映射模塊從目錄項中取得文件具體存儲位置,根據文件信息準備好存放數據的臨時緩沖區(qū),并向下層(設備層)請求讀該文件;4.設備層取出數據放到映射模塊設置的臨時緩沖區(qū),映射模塊再根據獲得的目錄項中標識文件類型的Model值來決定將緩沖數據傳入哪種類型的緩沖區(qū)中①若Model = Private,則將數據寫入用戶私有緩沖區(qū),若此時用戶私有緩沖區(qū)為空,則需要先出示換用戶私有緩沖區(qū);②若Model = Par-Share,則將數據寫入相應的部分共享緩沖區(qū),同樣,若該緩沖區(qū)為空,需先要初始化;③若Model = Com-Share,則將數據寫入全局唯一的完全共享緩沖區(qū)內,完全共享緩沖區(qū)在系統(tǒng)啟動時就被初始化好。5.用戶虛擬文件系統(tǒng)根據映射結果填充用戶打開文件列表,FID即為用戶目錄中對應的FID,DATA-PLACE為文件填充的緩沖區(qū)位置。6.用戶虛擬文件系統(tǒng)向用戶返回數據讀成功,用戶例程可通過打開文件列表中的記錄訪問緩沖中的數據。修改文件用戶例程從緩沖區(qū)中取得要處理的數據,當例程試圖修改緩沖區(qū)內的數據時,由于緩沖的文件可能是共享文件,因此不能隨意直接修改,分以下兩種情況處理I.若修改的目標文件時用戶私有的文件,則直接在用戶緩沖區(qū)中修改文件內容, 然后標記該文件數據為“臟”,即設置IsDirty = Yes ;2.若修改的目標文件為共享文件(完全共享文件或部分共享文件),為不破壞共享數據①設置一與目標文件緩沖大小相同的臨時緩沖區(qū);②將目標文件在緩沖區(qū)的內容拷貝到該臨時緩沖區(qū);
③按照用戶例程請求內容修改臨時緩沖區(qū)內的文件數據;④修改完成后將該臨時緩沖區(qū)附加到用戶私有緩沖區(qū)內,標記緩沖文件為“臟”, 另外虛擬文件系統(tǒng)為該新私有文件分配一個私有文件區(qū)域內唯一的FID ;⑤刪除共享文件緩沖中的文件記錄;⑥修改用戶文件目錄(若修改部分緩沖區(qū)文件,還需要修正用戶組信息)。上述① ⑤的操作示例圖參照圖7,用戶一旦修改共享文件,該文件就轉化為該用戶私有的文件,原文件副本在共享區(qū)保留不變。創(chuàng)建/刪除文件若用戶例程創(chuàng)建新文件,則直接把該文件歸為用戶私有文件,該文件創(chuàng)建時,虛擬文件系統(tǒng)為其分配一個用戶文件目錄范圍內唯一的FID,然后將該文件記錄和文件緩沖數據附加到用戶私有緩沖,并標記該文件為“臟”。若用戶例程要刪除某個文件,根據文件類型不同做如下判斷處理I.若刪除的目標文件是用戶私有文件,則①釋放用戶私有緩沖區(qū)內的該文件記錄和數據;②釋放磁盤上用戶私有文件區(qū)域內的文件數據空間以及目錄記錄;③刪除用戶打開文件列表中的相應記錄。2.若刪除的目標文件時共享文件(包括部分共享和完全共享),則①釋放共享緩沖區(qū)(部分共享緩沖或者完全共享緩沖)相應的文件記錄和數據;②刪除用戶打開文件列表中對應目標文件的記錄。緩沖區(qū)映射到存儲區(qū)域當緩沖區(qū)滿或者用戶例程退出時,需要根據情況釋放系統(tǒng)緩沖區(qū)內的數據,圖I 中的數據存儲模塊內的存儲映射做如下工作I.若要釋放的文件來自于共享緩沖(部分共享緩沖或者完全共享緩沖),則直接釋放緩沖數據;2.若要釋放的文件來自用戶私有緩沖,則需要按照以下情況做處理①若目標文件的IsDirty = No,則直接釋放緩沖區(qū)數據;若目標文件的IsDirty = Yes,則將文件數據寫入用戶私有文件存儲區(qū)域,若文件時新②創(chuàng)建的(包括文件數據從共享緩沖轉入用戶私有緩沖),則還需要更新用戶文件目錄,即在用戶文件目錄中添加該新文件的記錄信息。部分共享文件的生成隨著用戶修改歷史的積累,用戶的私有文件會越積越多,原來系統(tǒng)向用戶提供的完全共享數據可能大部分已經被用戶修改而轉為用戶私有文件,這樣不符合本發(fā)明所要解決的目標問題,因此需要盡可能合并相同的文件數據,即創(chuàng)建用戶組部分共享的文件組。如上文所述,系統(tǒng)提供的完全共享數據集合一般是相互關聯性比較強,修改可能性比較小或者修改數據量很少的文件集合,如一個應用軟件的所有配套文件,包括可執(zhí)行文件、庫文件、配置文件等。這些文件的格式和內容往往是固定模式的,用戶即使進行修改也需要遵循相應的規(guī)定,修改內容也是被限定在固定范圍的,因此,各個用戶私有的文件組織之間可能存在大量相同的,但是異于完全共享文件的文件。在本實施用例中,使用以下方法來合并用戶私有文件組之間的相同數據
參照圖8(a),系統(tǒng)為每個用戶文件目錄構建一張用戶文件在系統(tǒng)文件目錄中的全局映射位圖,即分配一個與系統(tǒng)所有文件數目一致的位圖,位圖按照文件的全局FID統(tǒng)一編號。初始化該位圖時,先獲取用戶的文件目錄,掃描用戶擁有的文件記錄,根據以下情況為映射位圖賦值①若該文件為共享文件(包括部分共享和完全共享),則置用戶全局文件映射位圖相應于文件Global FID的位值為“O” ;②若該文件為用戶私有文件,則置用戶全局文件映射位圖相應于文件Global FID 的位值為“I”。通過以上步驟可以快速得到用戶私有文件的全局映射圖,得到各個用戶的全局文件映射圖之后,將這些位圖兩兩之間進行與運算便可迅速得到兩個用戶共同持有的文件。 圖8 (b)給出了 η個用戶全局文件映射位圖與計算的示例,該圖所示計算可得到η個用戶共同持有的文件映射圖。得到用戶組內共同持有的文件之后,可以根據一定算法(如MD5)比較文件內容是否一致,若文件內容一致,則可將持有相同內容文件的用戶組生成一個部分共享文件組 (若原本存在對應的用戶組,則只需把文件合并到文件組即可);生產文件組之后,將文件數據拷貝到部分共享文件存儲區(qū)域,并釋放該文件在各個用戶私有存儲區(qū)域內的空間,同時修正用戶文件目錄,標記該文件已轉為部分共享。綜上,本發(fā)明實施例采用如下的執(zhí)行步驟I.用戶登錄系統(tǒng)之后,系統(tǒng)為其生成一個隔離的虛擬工作空間;2.系統(tǒng)通過映射模塊和存儲映射讀取用戶文件目錄,將目錄中不同類型的文件遞階式映射成用戶獨享的虛擬文件系統(tǒng);3.用戶例程向虛擬文件系統(tǒng)請求文件數據,映射模塊把數據讀入不同的緩沖區(qū);4.用戶修改的文件數據總是寫入用戶私有緩沖,其中共享文件轉為用戶私有副本,而其原文件副本保持不變;5.用戶刪除共享文件時只刪除用戶目錄中的記錄,文件數據仍保存在共享區(qū)域;6.用戶新加的文件一律歸為用戶私有文件;7.用戶更新的文件一律存入用戶私有文件存儲區(qū)域;8.系統(tǒng)利用用戶全局文件映射文圖階段性地對部分共享文件進行維護。本發(fā)明并不局限于前述實施例中,如各種映射方法,目錄組織結構和數據存儲方法、系統(tǒng)維護流程等等,只要是遞階式映射用戶虛擬文件系統(tǒng)的所有情況,本發(fā)明也同樣適用。
權利要求
1.一種多用戶版本文件系統(tǒng)的遞階式映射方法,其特征在于用戶版本文件系統(tǒng)按照共享程度分為完全共享文件、部分共享文件和用戶私有文件三類系統(tǒng)文件,完全共享文件存儲在完全共享文件區(qū)域,部分共享文件存儲在部分共享文件區(qū)域,用戶私有文件存儲在用戶私有文件區(qū)所述完全共享文件是文件系統(tǒng)向所有用戶提供的文件,這些文件一旦添加之后用戶不能在其基礎上進行任何改變;所述部分共享文件是部分用戶所共享的文件集合,這些文件由文件系統(tǒng)根據用戶使用進行添加或者刪除等維護,單個用戶亦不能在其基礎上進行任何改動;所述用戶私有文件是當用戶對某一共享文件進行了修改之后,若該修改特點為該用戶所特有,則相應的用戶工作空間內的共享文件副本就被轉存為該用戶所特有的私有文件;具體遞階式映射步驟如下步驟I:文件系統(tǒng)提供一份由所有用戶完全共享的文件數據集合,這些完全共享的文件數據集合包括一般的數據文件這些文件為系統(tǒng)提供給多個用戶共享的基本數據文件集合,用戶在這些文件提供的信息基礎上單獨作出自己的信息修改、添加和刪除操作,用戶與用戶之間的操作相互獨立;應用軟件所對應的可執(zhí)行文件或配置文件管理員只需在系統(tǒng)中安裝一次某個軟件, 共用系統(tǒng)的所有用戶在授權情況下使用該軟件,并且根據需要進行獨立配置和修改,這些修改只對執(zhí)行操作的用戶有效,并不會覆蓋或者影響其他用戶的修改;步驟2 :根據不同情況,系統(tǒng)進行如下處理a :用戶登錄系統(tǒng)文件系統(tǒng)立即為該用戶構建一個虛擬的工作空間Workspace,令其為該用戶私有,用戶所有文件相關的工作均在其虛擬工作空間內完成;所述多個用戶的虛擬工作空間相互獨立,每個用戶的工作不會跨越其持有的工作空間,空間內的活動也不會影響到其他用戶工作空間;b :初始化用戶私有虛擬工作空間文件系統(tǒng)將完全共享、部分共享和用戶私有三種類型的文件整合,創(chuàng)建一個對用戶特有版本的虛擬文件系統(tǒng);所述虛擬文件系統(tǒng)只存在于相應的用戶私有工作空間,只對該用戶可見,隨虛擬工作空間一起創(chuàng)建,該虛擬文件系統(tǒng)根據用戶對文件數據的更新情況,將文件數據刷到相應的磁盤存儲區(qū)域;c :用戶請求某個文件用戶虛擬文件系統(tǒng)將相應的文件從遞階式存儲多版本文件系統(tǒng)所管理的文件集合中導入,并在對應的工作空間緩存起來,且不考慮該被請求文件的類型;虛擬文件系統(tǒng)把用戶的請求信息轉發(fā)給文件系統(tǒng)的映射模塊,映射模塊把請求轉換成對真實文件系統(tǒng)的文件請求;然根據所請求文件類型在相應區(qū)域取出文件數據返回給用戶虛擬文件系統(tǒng);d:緩存處理當用戶要保存文件時,若文件內容在用戶虛擬工作空間發(fā)生了改變,則把這個文件副本存到用戶私有的文件目錄下,否則保持其原來存儲路徑不變;用戶例程處理文件數據完成,將結果數據交付給位于其工作空間的緩存。緩存連接著遞階式映射多用戶版本文件系統(tǒng)的映射模塊,映射模塊將緩存中的內容寫回到磁盤存儲區(qū)域①對于用戶只讀數據的文件,做清空緩存處理;②對于被用戶修改過的共享文件(包括完全共享文件和部分共享文件),保存至磁盤上用戶私有文件存儲區(qū)域;③對于被修改過的用戶私有文件,直接存入原來的位置;e :用戶例程刪除文件分兩種情況處理①對于共享文件,只刪除該用戶對應的虛擬文件系統(tǒng)目錄中的相應文件記錄對于用戶私有文件,刪除虛擬文件系統(tǒng)目錄中相關記錄,并釋放文件數據在用戶私有存儲區(qū)域的空間;f :用戶例程添加文件一律將新加文件歸為用戶私有文件,存入用戶私有存儲區(qū)域; g :用戶私有存儲區(qū)域的冗余文件合并由于共享文件在使用一段時間后,會在多個用戶私有空間中被分別修改,但文件內容又重合一致,文件系統(tǒng)提供冗余文件合并功能;所述冗余文件合并功能將多個用戶所持有的完全相同的、但歸其各自私有的文件轉化為部分共享文件撤除用戶私有存儲區(qū)域內的文件副本;將該副本轉存到該組用戶共有的部分共享文件存儲區(qū)域;h :部分共享文件維護當共享文件集合中的文件全部被移出時,標識著該共享文件集合所對應的用戶組不存在除完全共享文件外的部分共享文件數據,需要將該部分共享文件集合記錄在整個遞階式存儲文件系統(tǒng)的目錄記錄中刪除,以標識用戶組的部分共享消失; i :用戶退出系統(tǒng)釋放用戶特有的虛擬文件系統(tǒng)之后,釋放相應的虛擬工作空間。
全文摘要
本發(fā)明涉及一種多用戶版本文件系統(tǒng)的遞階式映射方法,通過從向所有用戶提供基本的完全共享文件集合開始,根據用戶對文件修改情況不同,遞階式的存儲各個用戶的文件數據,并通過映射功能,①為每一個用戶維護一個獨立的私有文件系統(tǒng)版本;②在保證多用戶共享文件數據和應用軟件的同時,實現了共享式文件系統(tǒng)中高度的去冗余性;③對于搭建復雜的計算環(huán)境,安裝配置工作只需進行一次,所有用戶便可以使用該運行環(huán)境,并可以進行任意修改配置;④避免了一般共享式文件系統(tǒng)中復雜繁重的數據一致性維護;⑤數據安全性方面,每個用戶都可為自己私有的虛擬文件系統(tǒng)定制特定的安全保護機制,為整個文件系統(tǒng)的各個遞階存儲層次制定不同的安全級別,可提供較其他文件系統(tǒng)更可靠、更靈活的安全訪問控制。
文檔編號G06F17/30GK102609448SQ201210006100
公開日2012年7月25日 申請日期2012年1月10日 優(yōu)先權日2012年1月10日
發(fā)明者張曉 , 李戰(zhàn)懷, 趙曉南 申請人:西北工業(yè)大學
網友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
主站蜘蛛池模板: 东港市| 班玛县| 新和县| 灌南县| 怀仁县| 巴彦县| 花莲市| 棋牌| 江西省| 财经| 福泉市| 柳州市| 威远县| 江门市| 土默特左旗| 桐城市| 墨竹工卡县| 烟台市| 黄陵县| 根河市| 隆安县| 资讯 | 东山县| 岚皋县| 如皋市| 汕尾市| 崇信县| 奈曼旗| 武清区| 北海市| 蓝田县| 石渠县| 陇川县| 平安县| 屯留县| 安徽省| 治县。| 乐山市| 神农架林区| 临湘市| 南岸区|