[發(fā)明專利]一種分布式文件系統(tǒng)的文件寫入系統(tǒng)和方法有效
| 申請?zhí)枺?/td> | 200710167900.5 | 申請日: | 2007-10-25 |
| 公開(公告)號: | CN101149755A | 公開(公告)日: | 2008-03-26 |
| 發(fā)明(設(shè)計)人: | 劉岳;李劍宇;唐榮峰;熊勁 | 申請(專利權(quán))人: | 中國科學院計算技術(shù)研究所 |
| 主分類號: | G06F17/30 | 分類號: | G06F17/30;G06F12/00;H04L29/06 |
| 代理公司: | 北京律誠同業(yè)知識產(chǎn)權(quán)代理有限公司 | 代理人: | 梁揮;陳振 |
| 地址: | 100080北京*** | 國省代碼: | 北京;11 |
| 權(quán)利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 一種 分布式 文件系統(tǒng) 文件 寫入 系統(tǒng) 方法 | ||
技術(shù)領(lǐng)域
本發(fā)明涉及計算機存儲領(lǐng)域,特別是一種分布式文件系統(tǒng)的文件寫入系統(tǒng)和方法。
背景技術(shù)
機群(cluster)結(jié)構(gòu)是由互相連接的多個獨立計算機所組成的結(jié)構(gòu),這些計算機可以是單機或多處理器系統(tǒng)(PC、工作站或SMP),每個計算機都有自己的存儲器、I/O設(shè)備和操作系統(tǒng)。機群結(jié)構(gòu)對用戶和應(yīng)用來說是一個單一的系統(tǒng),它可以提供低價高效的高性能環(huán)境和快速可靠的服務(wù)。由于機群結(jié)構(gòu)具有高性價比的優(yōu)勢,因而目前其已經(jīng)成為了高性能計算的主流結(jié)構(gòu)。
在機群系統(tǒng)中,往往配備有大容量的存儲設(shè)備,在系統(tǒng)運作時,需要對這些設(shè)備進行管理。同時,機群系統(tǒng)也需要為不同機群節(jié)點的用戶提供良好的文件共享服務(wù)。分布式文件系統(tǒng)為機群結(jié)構(gòu)提供了這些服務(wù),它將機群系統(tǒng)中的所有存儲設(shè)備整合起來,建立一個統(tǒng)一的名字空間(文件和目錄的組織結(jié)構(gòu))。各個節(jié)點看到的分布式文件系統(tǒng)的目錄結(jié)構(gòu)是一致的,不同節(jié)點的用戶可以采用透明的方式訪問相同的文件。分布式文件系統(tǒng)中的數(shù)據(jù)不一定存儲在本節(jié)點的磁盤中,因而通常都會設(shè)有專用的存儲服務(wù)器。以寫為例,應(yīng)用進程通過分布式文件系統(tǒng)的客戶端寫數(shù)據(jù)時,客戶端首先將數(shù)據(jù)通過網(wǎng)絡(luò)傳送到存儲服務(wù)器端,存儲服務(wù)器再將接收到的數(shù)據(jù)寫到本節(jié)點的磁盤中。
在Linux操作系統(tǒng)中,進程對文件的訪問流程為:(1)open(2)read/write(3)read/write(4)read/write...(n)close。即,進程在訪問文件之前,首先要通過open操作打開一個文件,獲取一個文件描述符fd。打開文件之后,進程可以用所獲取到的文件描述符fd作為參數(shù)來調(diào)用read/write函數(shù)進行讀寫操作。在讀寫完畢之后,進程還需要通過close操作來關(guān)閉文件。
在文件系統(tǒng)中,文件存儲的布局與I/O性能密切相關(guān)。為了提高系統(tǒng)整體的I/O性能,現(xiàn)有文件系統(tǒng)在分配數(shù)據(jù)塊時都盡量將同一文件的數(shù)據(jù)塊在磁盤上連續(xù)存放,這樣做一方面可以減少文件數(shù)據(jù)寫入時磁頭的移動;另一方面,在讀取文件時也可以充分發(fā)揮出文件預讀的效果。然而,當系統(tǒng)中的多個進程需要同時給各自寫入的文件分配數(shù)據(jù)塊時,它們將競爭申請系統(tǒng)中的空閑塊,從而導致一段連續(xù)的空閑塊區(qū)域被交錯地分配給多個文件,進而降低了每個文件的數(shù)據(jù)塊在磁盤上的連續(xù)程度。
針對上述問題,ext3文件系統(tǒng)提出了數(shù)據(jù)塊預留分配機制來緩解多個并發(fā)進程在塊分配時的相互干擾問題。ext3文件系統(tǒng)為每個需要分配數(shù)據(jù)塊的文件維護一個預分配狀態(tài)信息,實際上就是為每個需要分配數(shù)據(jù)塊的文件預留一段連續(xù)的數(shù)據(jù)塊區(qū)域,當多個文件同時申請數(shù)據(jù)塊時,分別從各自的預留區(qū)域中進行分配,以避免不同文件的數(shù)據(jù)塊交織在一起,從而使每個文件都能具有較高的連續(xù)程度。同時,每個需要分配數(shù)據(jù)塊的文件的預分配狀態(tài)信息會根據(jù)進程對該文件的訪問模式來不斷調(diào)整,比如,當系統(tǒng)識別到進程一直在為某個文件順序地分配數(shù)據(jù)塊時,將會擴大該文件的塊預留窗口,也就是為該文件預留更多的數(shù)據(jù)塊;相反,如果進程不是順序地為文件分配數(shù)據(jù)塊,系統(tǒng)將會縮小該文件的塊預留窗口;通過上述調(diào)整,可以最大程度地發(fā)揮塊預留分配機制的優(yōu)勢。
其中,每個文件的塊預留分配狀態(tài)信息保存在與該文件相對應(yīng)的ext3inode結(jié)構(gòu)中,該結(jié)構(gòu)在初次為該文件分配數(shù)據(jù)塊時被初始化,在最后一個寫進程關(guān)閉文件時被銷毀。
在本地訪問中,直接對ext3文件系統(tǒng)中的文件進行多次寫操作只需一次打開和關(guān)閉操作,其流程如圖1所示。在整個訪問過程中,文件系統(tǒng)能夠一直管理預分配狀態(tài)信息并根據(jù)其中的信息來預分配數(shù)據(jù)塊。然而,在分布式文件系統(tǒng)中,客戶端所要訪問的文件不一定是存儲在本地磁盤中,而是對應(yīng)于存儲服務(wù)器端本地文件系統(tǒng)中的一個目標文件,當存儲服務(wù)器建立在ext3本地文件系統(tǒng)之上時,目標文件就是一個ext3類型的的本地文件。
在分布式文件系統(tǒng)中,存儲服務(wù)器端服務(wù)線程處理客戶端發(fā)來的每個寫請求時,都需要打開和關(guān)閉目標文件,其流程如圖2所示。在關(guān)閉目標文件時,目標文件的塊預分狀態(tài)信息很有可能被銷毀,從而導致預分配狀態(tài)信息不能在請求間傳遞。當有多個客戶端進程同時為各自的文件分配數(shù)據(jù)塊時,存儲服務(wù)器不能為每個目標文件持續(xù)地維護塊預分配狀態(tài)信息,塊預分配機制也就無法發(fā)揮效用,從而會導致多個目標文件數(shù)據(jù)在磁盤上交錯存儲,進而降低數(shù)據(jù)寫入以及后續(xù)讀操作的性能。
該專利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專利權(quán)人授權(quán)。該專利全部權(quán)利屬于中國科學院計算技術(shù)研究所,未經(jīng)中國科學院計算技術(shù)研究所許可,擅自商用是侵權(quán)行為。如果您想購買此專利、獲得商業(yè)授權(quán)和技術(shù)合作,請聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/200710167900.5/2.html,轉(zhuǎn)載請聲明來源鉆瓜專利網(wǎng)。
- 上一篇:煤氣爐用酚水處理裝置
- 下一篇:新型保溫隔熱聚苯乙烯成型擠塑板





