本發明專利技術公開了一種分布式文件系統的文件讀系統和方法。該系統包括存儲服務器端和多個客戶端,所述服務器端包括預讀描述符表模塊和讀請求處理模塊,其中:所述預讀描述符表模塊,用于為來自所述客戶端的多個前端負載緩存預讀描述符信息,通過表結構緩存所有的預讀描述符信息;所述讀請求處理模塊,用于根據客戶端的文件讀請求獲取前端負載信息,用前端負載信息在緩存描述符表查找所述預讀描述符,獲得預讀描述符的地址,完成對目標文件的讀操作。其效果是提升多客戶端進程同時讀取同一文件時的聚合性能。
【技術實現步驟摘要】
本專利技術涉及計算機存儲
,特別是涉及到在機群結構中分布式文件 系統的文件讀系統和方法。
技術介紹
機群是以網絡互連并能協同工作的多個獨立的計算機(稱為機群的結點) 構成的并行計算機系統。它的結點和互連網絡通常都采用現成的商品(Commodity Off The Shelf, COTS)而非定制,這種硬件平臺的開放性在降 低系統成本的同時,也使其對商業化軟件和開源軟件都十分友好。由于機群相 對于傳統的MPP和大型的SMP而言具有優良的性能價格比,自從上世紀九十 年代中期以來,機群的研究、生產和應用都取得了迅猛的發展。在2005年11 月中旬發布的第二十六期Top500排行榜上,機群結構的比例達到了 72.0%, 而MPP和星群結構(Constellations)則分別占20.8%和7.2%,即機群己經成 為主流的并行計算機體系結構。機群往往配備大容量的存儲設備,需要對這些設備進行管理,同時,還要 為不同機群節點的用戶提供良好的文件共享服務。現有技術中,是通過分布式 文件系統為機群提供這些服務的。分布式文件系統將機群中的所有存儲設備整合起來,建立一個統一的名字 空間(文件和目錄的組織結構)。其中,機群中各個節點看到的分布式文件系 統中的目錄結構是一致的,不同節點的用戶可以以透明的方式訪問相同的文 件。通常地,分布式文件系統包括客戶端節點(客戶端)l和存儲服務器端節 點(存儲服務器端)2。分布式文件系統中文件的數據存儲在存儲服務器中, 用戶進程通過客戶端1訪問分布式文件系統中的文件,實際上是訪問存儲服務 器中的數據(讀寫操作,或稱訪問進程),包括向存儲服務器寫入數據(寫方 法,或稱寫訪問進程)和從存儲服務器讀取數據(讀方法,或稱讀訪問進程)。在分布式文件系統中,訪問存儲在存儲服務器端2的磁盤中的文件,其一 般通過兩種方式進行文件訪問1)按文件訪問接口進行訪問,如網絡文件系統(Network File System, NFS) ; 2)按對象訪問接口進行訪問,對象可以由 一個本地文件系統中的文件實現。在這兩類分布式文件系統的訪問方式中,分布式文件系統客戶端1的一個 文件往往對應于存儲服務器端2本地文件系統中的一個或者多個(stripe存儲 模式)文件,即目標文件。這樣,分布式文件系統的客戶端1讀取一個文件時, 首先將讀請求發送到存儲服務器端2;存儲服務器端2接收到請求時,從請求 中解析出目標文件的名稱和要訪問的位置信息,然后,直接調用本地文件系統 的open操作打開目標文件,再調用read操作從目標文件中讀取數據,最后調 用close操作關閉目標文件。即服務器端處理客戶端1的每一個read操作,都 會打開和關閉目標文件。但是,如圖1所示,如在網絡文件系統(NFS)中,客戶端l順序地訪問 一文件,連續發出兩次read操作readl和read2。 readl和read2所讀取的數 據在邏輯上是連續的,它們的數據對應存儲服務器端2同一目標文件 (target—file)。存儲服務器端2接收到readl請求時,將打開目標文件 (target—file),初始化預讀狀態信息,讀取readl所請求的數據,最后關閉目 標文件。目標文件被關閉時,預讀狀態信息也隨之被銷毀。存儲服務器在處理 read2請求時,還要再打開一次目標文件(target—file),重新初始化預讀狀態 信息,讀取read2所請求的數據,最后關閉目標文件,預讀狀態信息又被銷毀。這樣,服務器端處理客戶端1的多個連續的讀請求時,預讀狀態信息總是 被不斷的初始化,不斷地銷毀,而無法在請求間進行傳遞。即使客戶端進程以 順序的模式訪問一個文件,存儲服務器端2也無法發揮預讀的作用,其嚴重影 響存儲服務器的處理性能。為了解決上述問題,現有技術中,如在網絡文件系統(NFS)中,存儲服 務器端為每個正在被訪問的目標文件緩存一個預讀描述符。在第一次讀取一 目 標文件時,為其初始化一個預讀描述符,并使用它來指導本次讀請求所伴隨的 預讀操作。在關閉目標文件后還繼續為該文件緩存預讀描述符信息。這樣,在 處理該目標文件的后續讀請求時,就可以直接利用緩存的預讀信息來指導預讀 的過程。這樣,預讀狀態信息就可以在請求之間進行傳遞。客戶端進程順序讀取網絡文件系統中的文件時,預讀描述符緩存機制可以提升文件系統的讀性 能。另一種方法是,在存儲服務器端為每個目標文件緩存了打開文件描述符fd。由fd可以檢索到打開文件的file結構,file結構中維護了預讀描述符信息,它是通過緩存fd來緩存預讀描述符信息,從而提升文件系統的讀性能。但是,現有技術中,按目標文件緩存預讀描述符,當多個客戶端進程訪問 同一文件時,存儲服務器端為這多個進程只緩存了一個預讀描述符,但各個進 程讀取同一文件的預讀狀態信息往往是不一致的, 一個預讀描述符無法配合多 個進程的訪問模式來發揮效用。現有技術中,按文件緩存預讀描述符信息不會 得到期望的效果,而按文件緩存打開文件描述符fd與按文件緩存預讀描述符 存在同樣的問題。此外, 一個訪問進程打開的文件描述符個數是有限的,并且緩存每一個fd都會占用系統的資源,這些也是現有技術的缺點。
技術實現思路
本專利技術的目的在于提供,其能夠 解決在存儲服務器端無法發揮出順序預讀功能的問題,特別是能夠解決多個客 戶端進程同時讀取存儲服務器端同一 目標文件時,在存儲服務器端按目標文件 緩存預讀描述符的方法無法發揮順序預讀功能的問題。為實現本專利技術目的而提供的一種分布式文件系統的文件讀系統,包括存儲 服務器端和多個客戶端,所述服務器端包括預讀描述符表模塊和讀請求處理模塊,其中所述預讀描述符表模塊,用于為來自所述客戶端的多個前端負載緩存預讀描述符信息,通過表結構緩存所有的預讀描述符信息;所述讀請求處理模塊,用于根據客戶端的文件讀請求獲取前端負載信息, 用前端負載信息在緩存描述符表査找所述預讀描述符,獲得預讀描述符的地 址,完成對目標文件的讀操作。所述前端負載是由(client—id,process—id, target—ino)三元組進行標識,其中client—id表示請求讀取數據的客戶端的id號; process—id表示請求讀取數據的客戶端的進程號pid;target—ino表示存儲服務器端目標文件的i-number號。 所述表結構為哈希表結構。所述哈希表入口數固定,每個哈希表入口中所能連接的最大哈希表項個數 固定;每個哈希表入口中使用最近最少使用鏈表鏈接哈希表項;每個哈希表項記錄緩存的file—m—state結構,哈希表項的引用計數,以及 所屬的前端負載三元組信息;哈希函數是前端負載三元組信息(client—id,process—id, target—ino)到哈希 入口數組索引值的函數。為實現本專利技術目的還提供一種分布式文件系統的文件讀方法,包括下列步驟步驟A,存儲服務器加載時初始化預讀描述符緩存的表結構,并在處理前 端負載請求的過程中,根據請求中的前端負載信息,緩存預讀描述符,將預讀 描述符加入到所述表結構中;步驟B,根據客戶端的文件讀請求獲取前端負載信息,按前端負載在緩存 描述符表查找所述預讀描述符,獲得預讀描述符的地址,完成對目標文件的讀 操作。所述步驟B之后還可以包括下列步驟 本文檔來自技高網...
【技術保護點】
一種分布式文件系統的文件讀系統,包括存儲服務器端和多個客戶端,其特征在于,所述服務器端包括預讀描述符表模塊和讀請求處理模塊,其中:所述預讀描述符表模塊,用于為來自所述客戶端的多個前端負載緩存預讀描述符信息,通過表結構緩存所有的預讀描 述符信息;所述讀請求處理模塊,用于根據客戶端的文件讀請求獲取前端負載信息,用前端負載信息在緩存描述符表查找所述預讀描述符,獲得預讀描述符的地址,完成對目標文件的讀操作。
【技術特征摘要】
【專利技術屬性】
技術研發人員:劉岳,李劍宇,唐榮峰,熊勁,
申請(專利權)人:中國科學院計算技術研究所,
類型:發明
國別省市:11[中國|北京]
還沒有人留言評論。發表了對其他瀏覽者有用的留言會獲得科技券。