專利名稱:在一個分布式文件系統(tǒng)中高效高速緩存的系統(tǒng)與方法
技術領域:
本發(fā)明涉及管理數(shù)據(jù)的信息處理系統(tǒng)。更具體地,本發(fā)明涉及一個分布式文件系統(tǒng)中的客戶的數(shù)據(jù)管理。更具體地,本發(fā)明涉及可支持連通或斷開的客戶操作的分布式文件系統(tǒng)客戶中的高速緩存與登錄。
計算機工作站的功能與存儲容量正在提高。工作站原來是為單個用戶執(zhí)行一個或多個獨立的任務用的。一個單位中的許多用戶對工作站的大量使用促成了對工作站間的通信與用戶之間的數(shù)據(jù)共享的需求。這導致了諸如
圖1中所示的分布式文件系統(tǒng)結(jié)構的開發(fā)。
圖1中的若干工作站是用一個局域網(wǎng)(LAN)互聯(lián)的。一個廣域網(wǎng)(WAN)可用于互聯(lián)若干局域網(wǎng)。LAN與WAN構成一個單一的邏輯網(wǎng)絡。圖1中的工作站標識為服務器S1、S2、S3及客戶C1、C2、C3。將一個工作站指定為一個客戶或服務器取決于該特定的工作站在網(wǎng)絡中所執(zhí)行的功能。一個特殊的工作站可以同時既是一個客戶又是一個服務器。一個分布式文件系統(tǒng)的實現(xiàn)要求存在至少一個服務器及至少一個客戶。
傳統(tǒng)上,客戶工作站在所有時間上都是連接在LAN上以接受該LAN的服務及共享文件等資源的。從LAN斷開意味著從LAN資源上斷開。只有在斷開之前已將必要的文件與程序復制到客戶上,工作才能繼續(xù)在卸下的客戶上進行。
便攜式工作站的功能的提高已使分離的或“移動的”計算成為現(xiàn)實。便攜式工作站可以與桌面或桌旁單元相同的處理器、存儲器及盤存儲容量購置。然而,便攜式工作站或便攜式計算機當前在分離時具有相同的限制除非在斷開之前已對文件或程序進行了復制,否則便沒有共享的資源可利用。當重新連通工作站時,留給用戶人工地使在便攜式設備上改變過的文件與網(wǎng)絡上文件一致。圖1中示出了作為用虛線連接在網(wǎng)絡上的客戶C1102的一個可斷開的便攜式工作站。
諸如圖1中所示的通過網(wǎng)絡的數(shù)據(jù)文件共享已出現(xiàn)了多時。最簡單的共享形式允許客戶請求來自服務器上的一個文件的數(shù)據(jù)。將必要的數(shù)據(jù)送至客戶處理器并將對該數(shù)據(jù)的任何改變或修正返回給服務器。建立了適當?shù)姆怄i使一個第二客戶不改變被第一客戶掌握的一個文件中的數(shù)據(jù)。
分布式文件系統(tǒng)通過增加更有效地將數(shù)據(jù)分配給客戶與更有效地控制文件共享機制而改進文件共享。存在著許多分布式文件系統(tǒng)。一種流行的分布式文件系統(tǒng)便是Transarc公司推出的Andrew文件系統(tǒng)(AFS)。
AFS通過在正在存取服務器數(shù)據(jù)的一個客戶中建立一個文件高速緩沖存儲器而改進分布式文件處理的效率。這一高速緩存器是由客戶應用程序訪問的,并且只在高速緩存缺失時才從服務器取數(shù)據(jù)。數(shù)據(jù)的高速緩存減少了網(wǎng)絡通信量并加速客戶處的響應時間。
AFS高速緩存器的兼容性是基于一個服務器回叫系統(tǒng)的。服務器會通知高速緩存了某些數(shù)據(jù)的各客戶任何使客戶的高速緩存數(shù)據(jù)無效的條件。一旦無效,便從高速緩存器中刪掉這些數(shù)據(jù),而在需要時必須重新從服務器得到。
連接在AFS上的一個工作站的斷開會使客戶喪失分布式文件的存取。斷開時,客戶會自動失掉所有回叫而使高速緩存器無效。
分布式文件系統(tǒng)(DFS)是AFS的改進產(chǎn)品,它支持OSF分布式計算環(huán)境(DSE)。DFS采用以服務器為基礎的令牌機構來保證客戶高速緩存器的兼容性??蛻羧〉谩白x”令牌來保證它們的高速緩存器中的數(shù)據(jù)的有效性。如果一個客戶要改變一個文件中的數(shù)據(jù),它取得該數(shù)據(jù)的一個“寫”令牌,賦予一個客戶(諸如C1)一個“寫”令牌使其它所有客戶中的相同數(shù)據(jù)的“讀”令牌失效。令牌失效使這些客戶中的高速緩存數(shù)據(jù)失效。從一個DFS系統(tǒng)上斷開使客戶喪失任何未完成的令牌。在沒有令牌的情況下,客戶不能讀或?qū)懮踔粮咚倬彺鏀?shù)據(jù)。
Carnegie Mellon大學已作出努力來為連接在AFS網(wǎng)上的可卸下的工作站提供支持。CODA項目是旨在提供一個分布式文件系統(tǒng)以經(jīng)常的數(shù)據(jù)可利用性的。它通過在多個服務器中復制數(shù)據(jù)及提供用戶的斷開操作支持來達到這一目的。見“Coda一種分布式工作站環(huán)境的高利用率文件系統(tǒng)”IEEE學報,卷39,4號1990年4月。
Coda中的分布式操作是通過數(shù)據(jù)的有利復制控制完成的。有利的控制允許許多客戶讀與寫數(shù)據(jù),即使在斷開時也一樣。數(shù)據(jù)不兼容性留待以后標識與解決。不利的復制控制通過限制在一個單一的部分上的讀與寫而防止所有的沖突。斷開從該客戶上去掉判定另一個客戶是否具有對數(shù)據(jù)存取的能力。在不利的復制控制下,客戶不能寫。見“Coda文件系統(tǒng)中的斷開的操作”,J.Kistler,MSatyanarayanan,Carnegie Mellon大學,第13次操作系統(tǒng)原理討論會會議文集,1991年10月。
Coda分布式操作允許客戶繼續(xù)存取與更新保持在客戶側(cè)高速緩存器中的數(shù)據(jù)。文件操作只在高速緩沖存儲器出現(xiàn)缺失時才失敗,因為這時客戶才不能從服務器中存取數(shù)據(jù)。AFS與Coda高速緩存整個文件。Coda在斷開的操作期間更新文件并維護對數(shù)據(jù)的所有改變的登錄。重新連通時,客戶通過將登錄的事務處理提交給服務器文件,負責更新數(shù)據(jù)的所有服務器復制品。數(shù)據(jù)不兼容性是通過推遲人工干預的決定而處理的。
Coda具有一個主要的缺點,只支持Coda服務器上的連接。Coda與AFS一樣是一個分布式文件系統(tǒng)協(xié)議。Coda依賴于服務器與所有客戶都在使用相同的分布式文件系統(tǒng)協(xié)議這一事實。這便要求網(wǎng)絡中的所有客戶與服務器改變到Coda協(xié)議來支持斷開的操作。
Huston與Honeyman在“AFS的斷開的操作”,L.B.Huston與P.Honeyman,信息技術綜合中心,Michigan大學,中提出了第二種方法,公布在USENIX移動與位置無關的計算討論會會刊,1993年8月。Hston與Honeyman提出了一種能夠不改變服務器而連接到一個標準的AFS服務器的客戶系統(tǒng)??蛻舸a修改支持斷開的操作與重新連通。重新連通與一致性是通過登錄斷開時的每一個事務處理而完成的。每一次讀、寫或更新是記錄在一個在重新連通時放送給服務器的一個事務處理登錄中的。這一方法具有支持一個標準的AFS服務器的優(yōu)點。然而,它依賴于AFS分布式文件系統(tǒng)協(xié)議的存在,并且不工作在AFS服務器以外的服務器上??偟牡卿浄椒ㄟ€降低系統(tǒng)效率。登錄的大小還會在任何大小的系統(tǒng)中導致客戶盤空間問題與一致性延遲。
從而,在提供一種允許斷開的客戶繼續(xù)操作并在重新連通時具有高效一致性的分布式文件系統(tǒng)中存在著技術問題。另一個技術問題是建立一個可使用多種分布式文件系統(tǒng)協(xié)議的分布式文件系統(tǒng)客戶。最終,存在著建立一個獨立于目標或路徑名分解的操作系統(tǒng)語法的分布式文件系統(tǒng)客戶的技術問題。
本發(fā)明旨在提供一種支持連通與斷開的客戶操作兩者的分布式文件系統(tǒng)。該客戶文件系統(tǒng)可與多種文件系統(tǒng)結(jié)構連接并支持高效的事務處理登錄。
本發(fā)明旨在管理在一個第一操作系統(tǒng)下操作的客戶計算機系統(tǒng)中的一個文件系統(tǒng)高速緩存器的一種方法。該方法包括下述步驟截取對一個分布式文件系統(tǒng)中的一個文件系統(tǒng)目標的操作系統(tǒng)請求;變換所述請求以消除操作系統(tǒng)依賴的語法;在所述客戶的存儲裝置中的一個高速緩存中測試有關所述文件系統(tǒng)目標的數(shù)據(jù)的存在;以及,如果高速緩存數(shù)據(jù)存在,便滿足所述文件系統(tǒng)目標請求。
因此,本發(fā)明的一個目的為提供一種能夠在從服務器斷開時操作的分布式文件系統(tǒng)客戶。
另一個目的為提供一種為重新連通時的一致性而高效地登錄事務處理的一種可斷開的客戶。
本發(fā)明的又另一個目的為提供給一個文件系統(tǒng)客戶以高效的高速緩存以降低高速緩存所需的存儲器與盤空間的量及提高高速緩存處理的速度與效率。
又另一個目的為提供一種能以多種分布式文件系統(tǒng)協(xié)議工作的分布式文件系統(tǒng)客戶。
本發(fā)明的又一個目的為提供一種獨立于操作系統(tǒng)的分布式文件系統(tǒng)客戶。
本發(fā)明的又另一個目的為通過主動高速緩存分解的目標名而提高高速緩存效率。
本發(fā)明的又另一個目的為提供一種不依賴于一個目標名而允許各文件系統(tǒng)目標具有各有不同的目標名語法規(guī)則的多個父代的高速緩存管理系統(tǒng)。
從下述附圖中所展示的本發(fā)明的一個較佳實施例的更具體的描述中,本發(fā)明的上述及其它目的、特征與優(yōu)點將是顯而易見的,附圖中相同的參考號表示本發(fā)明的相同部分。
圖1表示本發(fā)明的一個分布式網(wǎng)絡環(huán)境。
圖2為包含本發(fā)明的一個實施例的一個工作站的方框圖。
圖3為一個先有技術分布式文件系統(tǒng)的方框圖。
圖4為例示本發(fā)明的實施例的功能部件的方框圖。
圖5為本發(fā)明的較佳實施例中的數(shù)據(jù)結(jié)構的示例。
圖6為本發(fā)明的一個替代實施例的方框圖。
圖7為描述本發(fā)明的一個實施例的處理步驟的流程圖。
圖2例示一種典型的客戶或服務器工作站配置。本發(fā)明最好用諸如IBM RISC(精簡指令集計算機)系統(tǒng)/6000工作站或IBM PS/2個人計算機等工作站實現(xiàn)??蛻襞c服務器工作站用一個令牌環(huán)或以太網(wǎng)LAN互聯(lián),如圖1中所示。連接在LAN上的工作站中可包含諸如C1的便攜式工作站,它可從LAN上斷開,并獨立于LAN使用??梢岳斫?,在本發(fā)明的范圍內(nèi)可使用許多其它配置的工作站硬件或LAN類型。
一個典型的客戶或服務器工作站200具有一個處理器210、系統(tǒng)存儲器214以及諸如硬盤驅(qū)動器、軟盤或光盤存儲設備等非易失性存儲器212。處理器通過I/O控制器218接受從諸如鍵盤224與指點設備226等輸入/輸出(I/O)設備的輸入。系統(tǒng)在圖形控制器220驅(qū)動的顯示器222上將圖形信息提供給操作員。該工作站是通過網(wǎng)絡接口適配器216連接到一個網(wǎng)絡(未示出)上的。
本發(fā)明的較佳實施例是用操作在工作站200的存儲器與處理器中的一個計算機進程實現(xiàn)的。實現(xiàn)本發(fā)明的一種計算機程序產(chǎn)品可存儲在非易失性存儲器212中,其中包括磁帶、軟盤、或激光盤只讀存儲器(CD-ROM)設備上的存儲器。
參照圖3例示了先有技術分布式文件系統(tǒng)的操作。圖3例示了用一個網(wǎng)絡接口306互聯(lián)的一個客戶工作站302與一個服務器工作站304。用戶進程308提出的對一個特定文件或有關位于盤存儲器390上的一個文件的信息的請求的處理如下。注意,客戶302與服務器304兩者都分成用戶地址空間310、314與核心地址空間312、316。應用程序與核心之間的接口(稱作應用程序接口或API)為S.R.Kleiman的“Vnodes在Sun UNIX中的一種多文件系統(tǒng)類型的結(jié)構”,夏季Usenix會議會報,1986,中所定義的VFS/vnode API。當然也可采用其它接口。VFS/vnode接口允許存在多個虛擬文件系統(tǒng)。分布式文件系統(tǒng)成為對客戶工作站的一個虛擬文件系統(tǒng)。
用戶進程308請求存儲設備390上的一個數(shù)據(jù)文件。請求320被VFS接口截獲并傳送到常駐在客戶核心地址空間312中的分布式文件系統(tǒng)客戶322。該分布式文件系統(tǒng)客戶管理在網(wǎng)絡上與服務器的通信。在網(wǎng)絡306上的一則報文326中將該請求傳送給服務器核心316中的分布式文件系統(tǒng)服務器324。分布式文件系統(tǒng)服務器324通過使用VFS接口328存取存儲設備390,以存取包含設備390的服務器的本地物理文件系統(tǒng)。得到所請求的數(shù)據(jù),并將其在330處從分布式文件系統(tǒng)服務器324傳送到分布式文件系統(tǒng)客戶322,后者又在332處將數(shù)據(jù)傳送給請求的用戶進程308。
分布式文件系統(tǒng)客戶322可包含一個數(shù)據(jù)高速緩存器(未示出)來高速緩存從服務器請求來的數(shù)據(jù)。分布式文件系統(tǒng)客戶在向服務器請求數(shù)據(jù)之前,先在高速緩存中檢驗有效數(shù)據(jù)。
本發(fā)明的較佳實施例示出在圖4中??蛻艄ぷ髡揪哂幸粋€用戶地址空間402及一個核心地址空間404。本發(fā)明的改進的高速緩存管理程序406最好操作在用戶地址空間402中,但也能實現(xiàn)在核心地址空間404中。
用戶程序408、410、412發(fā)出文件系統(tǒng)請求414、416、418。用戶程序n示出為使用一個邏輯文件系統(tǒng)414,后者依次發(fā)布一個文件系統(tǒng)請求420。文件系統(tǒng)請求符合于VFS/vnodes接口,然而在本發(fā)明的范圍內(nèi)也能使用其它接口。本發(fā)明可用于任何符合VFS/vnode API的邏輯文件系統(tǒng),或者在替代的實施例中,符合任何其它API的邏輯文件系統(tǒng)。
VFS接口將文件系統(tǒng)請求導向高速緩存管理程序406。高速緩存管理程序406維護有關客戶所存取的分布式文件系統(tǒng)的本地信息。如果可能,高速緩存管理程序服務于文件系統(tǒng)請求而不存取服務器。如果所請求的信息在高速緩存器中并且仍然有效,則文件系統(tǒng)請求可由高速緩存管理程序滿足。下面將更詳細地描述高速緩存管理程序406。
高速緩存管理程序406從位于高速緩存管理程序存儲器中的數(shù)據(jù)中、或者通過存取本地物理文件系統(tǒng)420、或者通過使用分布式文件系統(tǒng)存取422三者之一來滿足文件系統(tǒng)請求。高速緩存管理程序在本地物理文件系統(tǒng)中保存分布式文件的本地拷貝供快速存取。分布式文件系統(tǒng)存取422向分布式文件系統(tǒng)服務器324發(fā)布必要的命令,如上面所討論的。雖然本發(fā)明不限于整個文件的高速緩存,但較佳實施例是高速緩存整個文件的。
高速緩存管理程序406與分布式文件系統(tǒng)存取422獨立于操作系統(tǒng)與分布式文件系統(tǒng)存取協(xié)議。操作系統(tǒng)獨立性是通過支持定義的接口達到的。支持的接口包括用于文件系統(tǒng)操作的VFS+/Vnodes接口;諸如由IBM SOMobjects持久性框架提供的持久性接口;用于高速緩存的文件的本地文件系統(tǒng)接口(LSI);各種分布式文件系統(tǒng)協(xié)議;高速緩存同步接口;以及登錄重放接口。高速緩存管理程序不依賴于任何操作系統(tǒng)語法。文件名是變換成獨立于文件名成分分隔符字符的,并認為是沒有保留字符與保留字的。路徑名分解也是獨立于操作系統(tǒng)語法的。從而,一個特定的文件系統(tǒng)目標可由具有沖突的語法規(guī)則的兩個操作系統(tǒng)引用。例如,高速緩存管理程序406可實現(xiàn)為與IBM OS/2操作系統(tǒng)或IBM AIX操作系統(tǒng)一起操作,或只加以很小的改動便能與其它任何操作系統(tǒng)一起操作。
本發(fā)明的高速緩存管理程序是獨立于分布式文件系統(tǒng)協(xié)議的。分布式文件系統(tǒng)存取422可使用來自開放軟件基礎(Open SoftwareFoundatior)(OSF)的分布式計算環(huán)境(DCE)服務器或IBMLAN服務器程序產(chǎn)品兩者之一來存取遠程服務器。只需小的改動便能使用其它遠程文件存取協(xié)議。同步機構與登錄重放機構操作與協(xié)議相關的任務。
高速緩存管理程序406維護客戶高速緩存器409。結(jié)合高速緩存器409,高速緩存管理程序維護卷信息410與一個修改登錄412。卷信息410中包含關于客戶工作站能通過高速緩存管理程序存取的文件系統(tǒng)的信息。在本較佳實施例中,遠程文件系統(tǒng)是用卷連接在客戶上的。各卷在卷信息數(shù)據(jù)庫中有一個卷項。因此,一個遠程文件系統(tǒng)將作為一個Unix型文件系統(tǒng)(例如作為一個特殊文件系統(tǒng)/rfs安裝的),或者作為一個DCE驅(qū)動器字母(例如G\.)連接在客戶工作站上。關于遠程文件系統(tǒng)及其狀態(tài)的所有信息維護在卷信息數(shù)據(jù)庫410中。多個遠程文件系統(tǒng)可同時連接在一個單一的客戶上。
圖5中示出了高速緩存器409的詳細結(jié)構。高速緩存器409中為文件路徑名、文件系統(tǒng)目標數(shù)據(jù)與文件系統(tǒng)目標狀態(tài)信息維護一個單一的高速緩存器。高速緩存器是維護在永久性堆中的,即周期性地寫入非易失性存儲器中,并且在電源或系統(tǒng)故障時能從其中恢復。一個單一的整體高速緩存器減少總的高速緩沖存儲器需求,從而提高高速緩存器性能。單一高速緩存器只需要一個散列表而不是先有技術系統(tǒng)中的三個。所有的高速緩存處理可實現(xiàn)在單一的一組代碼中,它存儲不同類型的文件系統(tǒng)目標,而不是用于各種類型的高速緩存器的分離的代碼的傳統(tǒng)機制。高速緩存的文件系統(tǒng)目標一般性地示出在502處。文件系統(tǒng)目標502既用于高速緩存管理程序的連通操作,也用于其斷開的操作。
文件系統(tǒng)目標502是一種包含存取一個遠程文件或該遠程文件的本地高速緩存的拷貝的必要信息的數(shù)據(jù)結(jié)構。為客戶工作站引用的各遠程文件或目錄在高速緩存器中建立一個文件系統(tǒng)目標項。文件系統(tǒng)目標中包含一個VFS+/vnode標識符504與文件標識符506。文件標識符506中包括卷、服務器與文件數(shù)據(jù)。VFS+/vnode標識符中包括VFS/vnodes標準規(guī)范所定義的信息。包括進這些信息允許對所有VFS/vnode接口的全面支持。本發(fā)明在該數(shù)據(jù)結(jié)構上附加額外的信息來支持改進的高速緩存與斷開的操作。卷項508為對卷信息數(shù)據(jù)庫410中該文件所屬的卷的卷項545的一個指針。維護了一個狀態(tài)變量510與狀態(tài)結(jié)構512來為數(shù)據(jù)提供高速緩存狀態(tài)信息。在使用諸如C++程序設計語言等工具實現(xiàn)在一個面向目標的環(huán)境中的本較佳實施例中,狀態(tài)結(jié)構是定義為一個目標類的。一個特定的操作系統(tǒng)文件(諸如OS/2或AIX)的狀態(tài)結(jié)構以建立狀態(tài)結(jié)構類的一個子類定義。該子類用定義文件狀態(tài)所必需的實際內(nèi)容超越狀態(tài)結(jié)構類。
文件系統(tǒng)目標維護高速緩存器相關性信息514。這一信息用于保證高速緩存器與服務器及服務器復制品之間的一致性。存取控制清單(ACL)的一張清單516按照IEEE POSIX標準定義文件系統(tǒng)存取與修改的許可。其它標志信息維護在518處。卷的安裝狀態(tài)及父代指針522與優(yōu)先級信息524維護在520處。各文件系統(tǒng)目標具有一個分配的優(yōu)先級,它用于確定刪除哪些目標來為新目標讓出空間。
文件系統(tǒng)數(shù)據(jù)是通過一個文件/目錄/符號鍵路指針526存取的。這一指針取決于文件系統(tǒng)目標的類型,提供對三種不同類型的高速緩存數(shù)據(jù)的存取。一個數(shù)據(jù)文件的文件系統(tǒng)目標有一個指向高速緩存文件540的指針,高速緩存文件540又指向本地文件系統(tǒng)420中的本地高速緩存的數(shù)據(jù)文件。一個目錄指針指向一個高速緩存的目錄542。該高速緩存的目錄542是建立在一種主動高速緩存方式上的。每當請求一個特定目錄的目錄信息時,便返回該目錄及其全部緊接子代。由于在請求了父代目錄信息之后,立即請求關于一個或多個子代目錄的信息的概率很高,因此這能降低高速緩存缺失。目錄高速緩存器提供路徑名分解所需的信息,即將一個特定的文件系統(tǒng)路徑請求映射到一個特定的數(shù)據(jù)文件上。最終,指針526可指向高速緩存的符號鏈路信息544。這一高速緩存的信息允許符號鏈路的分解。
在528為各種計數(shù)器、閂鎖與柄提供了項,以及一個清除狀態(tài)指示器532。對于斷開的操作,清除狀態(tài)指示器532是重要的,并用于指示一致性狀態(tài)。
注意到文件系統(tǒng)目標名并不包括在數(shù)據(jù)結(jié)構502中是重要的。這便允許從不同的目標名設定無沖突地引用該文件系統(tǒng)目標。各文件系統(tǒng)目標能有多個父代。各父代可遵守不同的命名約定,例如目標管理群(OMG)或AIX、OS/2或其它操作系統(tǒng)的命名規(guī)定。從而,一個特定的文件目標employee-list從OS/2可作為C/employee-list及從AIX作為/usr/employee-list來存取。
高速緩存管理程序406支持連通的與斷開的操作。在連通的操作中,高速緩存管理程序406從高速緩存器或者必要時通過遠程文件存取來滿足文件系統(tǒng)請求。在斷開時,高速緩存管理程序從高速緩存器滿足請求,并維護一個對所有文件系統(tǒng)修改的修改登錄546。
圖6表示本發(fā)明的一種高速緩存管理程序。這一實施例是設計成用于IBM OS/2操作系統(tǒng)的。文件系統(tǒng)請求由系統(tǒng)作為一條“磁盤操作系統(tǒng)調(diào)用”命令602發(fā)布。所有的文件系統(tǒng)請求是由IFS文件系統(tǒng)604服務的。IFS提供邏輯文件系統(tǒng)能力。IFS可安裝及服務于不同類型的文件系統(tǒng)。安裝的文件系統(tǒng)中可包括諸如DOS系統(tǒng)常用的FAT文件系統(tǒng)606、或者OS/2 HPFS文件系統(tǒng)608。在LAN環(huán)境中,LAN請求器610呈現(xiàn)為另一個文件系統(tǒng),其中文件存取是傳送給LAN服務器來操作的。按照本發(fā)明的一個高速緩存管理程序可作為另一類型的文件系統(tǒng)612安裝。所有的遠程文件系統(tǒng)存取是傳送給高速緩存管理程序612的。高速緩存管理程序檢測高速緩存器614(在用戶地址空間中的),以判定所請求的信息是否已經(jīng)高速緩存了。如果是,便將該信息提供給應用程序,包括在必要時提供或修改保持在本地文件系統(tǒng)606或608中的高速緩存的數(shù)據(jù)。如果未找到文件系統(tǒng)數(shù)據(jù),便將一個請求傳送給LAN請求器610,令其在LAN服務器上存取必要的數(shù)據(jù)。當遠程數(shù)據(jù)到達時,便將它放在高速緩存器中供將來引用。
圖7表示一條文件寫命令的處理流程的流程圖。其它文件系統(tǒng)命令是類似地實現(xiàn)的。該命令從702開始,在704發(fā)布一條文件寫命令。高速緩存管理程序在706檢驗判定所請求的文件是否在高速緩存器中。如果是,便在708更新該文件的高速緩存拷貝。接著,在710檢驗高速緩存器以判定該卷是否是當前連通的。連通狀態(tài)是維護在卷信息數(shù)據(jù)庫410中的。如果該卷是連通的,便在712將改變傳播回服務器而處理在722結(jié)束。如果該卷不是連通的,便在714將改變登錄在修改登錄中而處理在722結(jié)束。
如果請求的文件不在高速緩存器中,接著高速緩存管理程序便在716檢驗所請求的卷是否是連通的。如果是連通的,便在718從遠程文件系統(tǒng)請求該文件、將其放在高速緩存器中,并在步驟708恢復處理。如果該卷不是連通的,便在720將一個失敗信號返回給應用程序。
將修改(諸如步驟714)登錄進修改登錄546是通過登錄目標完成的。問題域是由一個客戶修改登錄類及登錄的各不同類型的事務處理的一個獨立的類表示的。為各種操作定義了不同的目標,諸如對于寫文件、建立文件、刪除文件都存在一個目標。當在斷開的操作模式中在714處高速緩存管理程序登錄了一個改變時,便建立了一個與所請求的操作對應的登錄目標類型(諸如寫文件)。調(diào)用一種登錄方法將目標放入登錄中。該目標方法包括壓縮與優(yōu)化供重放的登錄的方法。登錄一個特定的目標可能會導致刪除一個以前登錄的目標。例如,當建立一個文件并稍后刪除它時,文件刪除目標將刪除文件建立登錄項、任何文件修改登錄項、然后退出而不在登錄中放置一個文件刪除項。本系統(tǒng)保證重新連通時,高速緩存器與遠程文件系統(tǒng)的同步會快捷高效地發(fā)生。登錄目標中的信息消除了在重放前處理或壓縮登錄的必要。
從以上描述中可以理解,在本發(fā)明的較佳實施例中可作出各種修正與改變而仍不脫離其真實精神。這一描述只是為了例示的目的,不應視為是一種限制的意思。本發(fā)明的范圍只受以下權利要求書限制。
權利要求
1.一種管理在一個第一操作系統(tǒng)下操作的一個客戶計算機系統(tǒng)中的一個文件系統(tǒng)高速緩存器的方法,包括下述步驟截取操作系統(tǒng)對一個分布式文件系統(tǒng)中的一個文件系統(tǒng)目標的請求;變換所述請求以消除操作系統(tǒng)依賴的語法;根據(jù)所述變換后的請求,在所述客戶的存儲裝置中的一個高速緩存器中檢測文件系統(tǒng)目標數(shù)據(jù)的存在;以及如果高速緩存數(shù)據(jù)存在,便滿足所述文件系統(tǒng)目標請求。
2.權利要求1的方法,其特征在于還包括下述步驟檢測判定是否存在對所述分布式文件系統(tǒng)的連通;如果不存在高速緩存數(shù)據(jù)但存在著連通,則不考慮分布式文件系統(tǒng)協(xié)議,生成一個對來自所述分布式文件系統(tǒng)的所述文件系統(tǒng)目標的請求;將所述請求傳輸給所述分布式文件系統(tǒng);以及如果既不存在高速緩存數(shù)據(jù)又不存在連通,則拒絕所述文件系統(tǒng)目標請求。
3.權利要求2的方法,其特征在于傳輸所述請求的步驟包括為所述請求的文件系統(tǒng)目標確定一種分布式文件系統(tǒng)協(xié)議;將所述操作系統(tǒng)無關的請求變換成符合所述確定的分布式文件系統(tǒng)協(xié)議的一個請求;以及將所述變換后的請求發(fā)送給所述分布式文件系統(tǒng)。
4.權利要求2的方法,其特征在于還包括下述步驟每當所述檢測步驟判定不存在對所述分布式文件系統(tǒng)的連通時,便執(zhí)行下述步驟檢測所述文件系統(tǒng)目標以確定一種請求類型;為所述請求類型,激活一個請求登錄目標;調(diào)用一種修改登錄方法來登錄所述文件系統(tǒng)目標請示;以及通過執(zhí)行所述請求類型的登錄優(yōu)化處理,登錄所述文件系統(tǒng)目標請求。
5.一種計算機文件系統(tǒng),包括用于在一個存儲裝置中存儲文件系統(tǒng)目標數(shù)據(jù)的高速緩存裝置;利用所述高速緩存裝置來滿足操作系統(tǒng)對文件系統(tǒng)目標的請求的高速緩存管理裝置,所述高速緩存管理裝置是與操作系統(tǒng)語法無關的,并且與分布式文件系統(tǒng)協(xié)議無關;可拆卸地將所述高速緩存管理裝置連接在一個文件系統(tǒng)目標服務器上的網(wǎng)絡裝置;以及通過設置的網(wǎng)絡裝置存取文件系統(tǒng)目標請求的遠程文件存取裝置。
6.權利要求5的系統(tǒng),其特征在于還包括目標修改登錄裝置,用于在每當所述高速緩存裝置從所述文件系統(tǒng)目標服務器上斷開時,采集經(jīng)所述高速緩存管理裝置處理過的各操作系統(tǒng)請求的改變信息。
7.一種用于高速緩存客戶系統(tǒng)對分布式文件系統(tǒng)的名字引用的方法,包括下述步驟將所述名字引用變換成與分隔符語法無關的;向所述分布式文件系統(tǒng)請求與語法無關的名字分解;分解所述與語法無關的名字;在所述客戶系統(tǒng)中高速緩存分解后的名字,以及所述分解后的名字的名字路徑成分的所有緊接子代的名字。
8.一種用于維護文件系統(tǒng)信息的計算機系統(tǒng)高速緩存裝置,包括用于存儲多個文件系統(tǒng)目標數(shù)據(jù)項的存儲裝置;用于將各所述文件系統(tǒng)目標數(shù)據(jù)項鏈接到一個文件卷的鏈接裝置;以及第二鏈接裝置,用于將各所述文件系統(tǒng)數(shù)據(jù)目標鏈接到本地數(shù)據(jù)存儲器中一個單元、本地存儲器中的一個目錄高速緩存器或本地存儲器中的一個符號鏈路三者之一上。
9.權利要求8的計算機系統(tǒng),其特征在于所述文件系統(tǒng)目標數(shù)據(jù)項是與任何文件系統(tǒng)目標名無關的,并且是可受各具不同命名語法的多個文件系統(tǒng)目標父代引用的。
10.權利要求8的計算機系統(tǒng),其特征在于還包括;用于每當從所述文件卷上斷開所述高速緩存器時,為各文件卷登錄對受所述多個文件系統(tǒng)目標數(shù)據(jù)項引用的目標作出的所有改變的登錄裝置。
11.權利要求8的計算機系統(tǒng),其特征在于還包括接口裝置,用于接收操作系統(tǒng)對文件系統(tǒng)目標數(shù)據(jù)的請求,及將這些請求變換成與操作系統(tǒng)無關的請求。
12.權利要求9的計算機系統(tǒng),其特征在于還包括登錄裝置,用于每當從所述文件卷上斷開所述高速緩存器時,為各文件卷登錄對受所述多個文件系統(tǒng)目標數(shù)據(jù)項引用的目標作出的所有改變。
13.權利要求9的計算機系統(tǒng),其特征在于還包括;接口裝置,用于接收操作系統(tǒng)對文件系統(tǒng)目標數(shù)據(jù)的請求,并將這些請求變換成與操作系統(tǒng)無關的請求。
14.權利要求11的計算機系統(tǒng),其特征在于所述目錄裝置包括用于存儲請求的文件系統(tǒng)數(shù)據(jù)目標的分解后的目錄項的裝置;以及用于存儲層次上緊接在所述請求的文件系統(tǒng)數(shù)據(jù)目標的各路徑成分下方的目標的分解后的目錄項的裝置。
15.權利要求13的計算機系統(tǒng),其特征在于所述目錄裝置包括用于存儲請求的文件系統(tǒng)數(shù)據(jù)目標的分解后的目錄項的裝置;以及用于存儲層次上緊接在所述請求的文件系統(tǒng)數(shù)據(jù)目標的各路徑成分下方的目標的分解后的目錄項的裝置。
全文摘要
一種高速緩存管理程序高效地支持連通的與斷開的客戶操作。為文件系統(tǒng)數(shù)據(jù)、狀態(tài)及路徑名信息維護一個單一的整體高速緩存器??赡軙r,文件系統(tǒng)請求由高速緩存器滿足,而必要時則傳送給一個遠程文件系統(tǒng)去服務。高速緩存管理程序是與操作系統(tǒng)文件語法及分布式文件系統(tǒng)協(xié)議無關的。斷開的操作是通過一種主動高速緩存策略與登錄文件系統(tǒng)修改支持的。修改登錄是在斷開客戶時通過登錄目標而建立的,并在建立時對登錄進行優(yōu)化。
文檔編號G06F15/16GK1121216SQ9510212
公開日1996年4月24日 申請日期1995年2月24日 優(yōu)先權日1994年3月7日
發(fā)明者T·G·康特雷爾, S·扎吉, A·A·沙希恩, R·B·沃德 申請人:國際商業(yè)機器公司