新四季網

一種基於對象存儲設備的對象文件組織方法

2023-05-07 05:39:36

專利名稱:一種基於對象存儲設備的對象文件組織方法
技術領域:
本發明涉及計算機分布式存儲技術領域,尤其是一種基於對象存儲設備的對 象文件組織方法。
技術背景對象是對象存儲系統中的基本單位,一個對象是文件的數據和一組屬性的組 合。對象的屬性可以包括文件的RAID參數、.服務質量、訪問信息和數據分布信息等。對象存儲設備對外提供對象接口,以對象作為基本存取單元。對象存儲設備 具有一定的智能,有自己的CPU、內存、網絡和磁碟系統,實現數據存儲、智能 分布和對象元數據管理的功能。在對象存儲設備中,所有的對象都有唯一的標識 符,通過對象標識符訪問該文件對象。對象存儲設備管理文件對象數據,數據放 置在標準磁碟設備上,但不提供塊接口的形式,客戶端要通過對象標識符和偏移 量來進行數據讀寫操作。對象存儲設備可以通過自身的CPU和內存資源來對數據分布進行優化,通過設置緩存的支持數據的預取和緩衝讀取,減少物理磁碟讀取次數。在傳統的文件系統中,都是使用一個間接的數據塊映射表來記錄每個文件的 數據塊的分布情況。對一個超大文件的存儲,需要佔用很多的數據塊,這樣的數 據塊映射表很大,比較難以維護。數據塊的分配是由塊分配器來控制的, 一般的 塊分配器一次只能分配一個數據塊,這就意味著向磁碟系統寫入數據時,就需要 調用很多次塊分配器。由於塊分配器在在分配空間時無法獲取總共需要分配的塊 數,因此無法對所分配的空間在位置上進行優化。Lustre是一個由Cluster File System公司開發的開源文件系統,系統由客 戶端、集群管理系統和對象存儲系統(Object Store Target)組成。CMU的NASD 釆用了智能磁碟驅動器設備,這種設備提供給用戶的不是磁碟塊接口,而是磁碟 對象接口。 Lustre和CMU的NASD這兩個系統中都釆用了傳統的文件系統,Lustre 使用的是Linux中的Ext3, NASD使用的是經過修改的IJFS,由於傳統的文件系統沒 有充分利用對象的大小不同的特點,在空間分配上採用較小分塊的分配方法,數 據塊的分布比較零散,分配的速率比較低。在對象存取方法上,缺乏高效的緩存機制增加了磁碟的讀寫次數,無法充分發揮對象存儲系統的優勢。 發明內容本發明所要解決的技術問題是採用連續分配多個數據塊的方法,減少査找和 分配空閒塊的時間,彌補當前分布式文件系統中對象文件系統磁碟空間分配局限 和不足的基於對象存儲設備的對象文件組織方法。本發明解決上述問題,所採用的技術方案是該方法的具體步驟為,(1) 在磁碟中建立對象文件系統的布局,將對象描述、對象位圖、數據位 圖、對象節點表信息加載在內存中;(2) 空間分配器在分配空間前檢測對象文件的大小;(3) 如果已知對象文件的大小,採用預分配的方法,在磁碟上為該對象文 件分配空間;(4) 如果不知道對象文件的大小,先將對象文件的部分數據寫入緩衝區;(5) 檢測緩衝區是否被填滿或者客戶端是否有要求釋放緩存數據,為緩衝 區的數據在磁碟上分配空間,將數據寫入磁碟;當緩衝區的數據要遠遠大於磁碟 的邏輯數據分塊大小時,空間分配器為其劃分存儲的區間。本發明所述預分配的方法過程為,(a) 按照對象文件的大小,決定此對象文件所需空間的分組位置;(b) 在分組內査找最合適的區間,如果找到則使用該區間保存數據;(C)如果未找到合適的區間,則先分配對象文件大小l/2的空間,然後跳 轉到步驟(a);(d) 鎖定找到的區間,準備將該區間分配給對象文件;(e) 判斷該區間的大小是否等於對象文件的大小,如果等於對象文件的大 小則直接進行分配;(f) 如果該區間的大於對象文件的大小,則分割該區間,將區間的前面一 段分配給對象文件,後面一段則根據大小放入相應的區間分組。本發明所述步驟(4)中,採用內存緩衝區緩存對象文件的部分數據,其中 查找對象節點信息的過程為,(a) 根據對象ID在緩存中查找對象節點信息;(b) 如果在緩存中査詢命中,返回該對象節點信息;(c) 如果在緩存中未査詢到,檢査請求等待列表,若其中有該對象ID的節 點信息請求,則添加到等待隊列;(d) 在磁碟上讀取該對象ID對應的節點信息,將結果返回給所有的請求等待者;(e) 將查詢到的節點信息放入緩存,釆用最近最小使用策略進行緩存替換。 本發明所述步驟(5)中磁碟的邏輯數據分塊大小為1Kbyte或者4Kbyte。 本發明所述磁碟的存儲分區從邏輯上劃分為若干數據塊,每個塊1024 byte或者4096 byte,數據塊的大小在創建系統時由系統管理員設置,或交給文件系 統的創建程序去決定。本發明所述的區間為磁碟上連續的若干數據塊,用起始位置和長度來表示一 個區間。本發明與現有技術相比,具有以下有益效果該方法所採用的對象文件系統繼承了傳統通用文件系統的優良特性,包括穩定性、高效性、高可靠性,通過區 間管理磁碟空間的機制保證了大對象的對寫效率,通過對象元數據的日誌機制保證了數據的一致性和高容錯特性;空間按照區間分配,對象的存儲具有空間連續 性,具有高效的空間管理效率,且緩衝區機制能保證了對象訪問的高性能。


圖1為本發明的分布式文件系統環境圖。圖2為對象文件系統與傳統文件系統的比較圖。圖3為對象文件系統磁碟布局示意圖。圖4為空間分配器的總體流程圖。圖5為磁碟空間預分配方法的流程圖。
具體實施方式
在對象文件系統中,文件數據按照對象的方式來組織和管理,每個對象具有 一個全局的對象ID,對象還包括大小、創建修改時間、訪問特徵和關聯關係等屬性。通用的Ext3文件系統對大文件的支持不夠理想,文件數據塊可能會分布在 不連續的磁碟空間上,並需要維護很長的文件塊列表,本發明在Ext3文件系統 的基礎上進行了改進,對於小對象(4 512Kbyte)採用Ext3文件系統原有的方式進行存放,對於大對象(512Kbyte以上)按照區間劃分放入磁碟的若干個連續空 間裡,這樣減少了文件塊列表的長度和磁頭尋道和旋轉的延時,保證了對大對象讀寫的高效率。本發明將磁碟上連續的若干數據塊稱為區間,使用起始位置和長度的方法表 示一個區間。磁碟空間的分配不再使用原有的固定大小的塊分配方法,而使用區 間來分配空間。這樣可以取代原有很長的數據塊列表,使用少量的區間號就能表 示整個文件所分配的空間,並且空間在分布上是相對連續的,使得磁碟空間管理 更加高效。該方法的具體步驟為,(1) 在磁碟中建立對象文件系統的布局,將對象描述、對象位圖、數據位 圖、對象節點表信息加載在內存中;(2) 空間分配器在分配空間前檢測對象文件的大小;(3) 如果己知對象文件的大小,採用預分配的方法,在磁碟上為該對象文 件分配空間;(4) 如果不知道對象文件的大小,先將對象文件的部分數據寫入緩衝區;(5) 檢測緩衝區是否被填滿或者客戶端是否有要求釋放緩存數據,為緩衝 區的數據在磁碟上分配空間,將數據寫入磁碟;當緩衝區的數據要遠遠大於磁碟 的邏輯數據分塊大小時,空間分配器為其劃分存儲的區間。其中預分配的方法過程為-(a) 按照對象文件的大小,決定此對象文件所需空間的分組位置;(b) 在分組內查找最合適的區間,如果找到則使用該區間保存數據;(c) 如果未找到合適的區間,則先分配對象文件大小1/2的空間,然後跳 轉到步驟(a);(d) 鎖定找到的區間,準備將該區間分配給對象文件;(e) 判斷該區間的大小是否等於對象文件的大小,如果等於對象文件的大 小則直接進行分配;(f) 如果該區間的大於對象文件的大小,則分割該區間,將區間的前面一 段分配給對象文件,後面一段則根據大小放入相應的區間分組。在本發明中,預分配方法在文件系統層面提供了相應的API接口, P2P軟體、多源下載軟體等可以利用此接口預先創建一個與要下載文件相同大小的空文件, 預先分配好足夠的存儲空間,保證以後的下載不會因為磁碟空間不足而失敗,並 且這些空間在磁碟上是連續的,不會產生過多的磁碟空間碎片。與傳統文件系統 的儘快分配策略不同的是,本發明在對象大小未知的情況下,採用延遲分配的方 法,將文件對象的部分數據將先寫入到緩衝區,當緩衝區填滿或者客戶端要求釋 放緩存數據時,才將緩衝區的數據寫入磁碟。緩衝區的數據要遠遠大於磁碟的邏 輯數據分塊大小(lKbyte或者4Kbyte),空間分配器將為其劃分存儲的區間。這 樣的策略優化了整個文件系統的數據塊分配,顯著提升性能。上述步驟(4)中,採用內存緩衝區緩存對象文件的部分數據,其中査找對 象節點信息的過程為(a) 根據對象ID在緩存中查找對象節點信息;(b) 如果在緩存中查詢命中,返回該對象節點信息;(c) 如果在緩存中未査詢到,檢査請求等待列表,若其中有該對象ID的節 點信息請求,則添加到等待隊列;(d) 在磁碟上讀取該對象ID對應的節點信息,將結果返回給所有的請求等待者;(e) 將査詢到的節點信息放入緩存,採用最近最小使用策略進行緩存替換。 參見圖l,整個系統由元數據管理伺服器集群、對象存儲伺服器集群和文件對象訪問客戶端組成。元數據伺服器管理對象的元數據信息,維護文件到對象的 映射關係,負責管理用戶權限和身份認證。對象存儲伺服器通過基於對象的訪問 接口向客戶端提供數據讀寫操作,管理和組織磁碟上的數據,對磁碟空間進行分 配,本發明的對象文件組織方法是對象存儲伺服器的關鍵組成部分。參見圖2,對象文件存儲系統與傳統文件系統相比,其改進之處是對象文 件存儲系統將存儲組件從內核空間中轉移到存儲子系統的底層,提供磁碟空間和 容量的管理、數據塊的存儲分配和數據緩存功能。參見圖3,對於本對象文件系統來說,磁碟存儲分區首先從邏輯上劃分為一 個個數據塊,每個塊1024 byte或者4096 byte,這個大小在創建系統時由系統 管理員設置,也可以交給文件系統的創建程序去決定。文件系統的創建程序根據 磁碟分區的大小,選擇一個合適的值。這些數據塊又被劃分到若干個存儲空間裡,每個存儲空間裡有多少個塊是在創建文件系統時劃分好的。
在本對象文件系統中,磁碟的起始部位定義了文件系統的基本參數,劃分所 需的空間用來完成文件系統的基本功能。為了保持與普通文件系統的兼容性,從 磁碟分區的開始(即第1個字節)到1024個字節的這些空間用來保存磁碟頭信息, 磁碟頭描述了整個對象文件系統的信息,這部分空間被稱為超級塊,包括文件系 統籤名標誌、磁碟號、空間總量、已使用量、文件系統狀態、掛載時間、日誌文 件的位置和大小、磁碟上存放的對象數、數據塊計數、保留的數據塊計數、空閒 數據塊計數、數據塊大小、最後一次操作的序列號、系統內部標識和超級塊版本 號等。為了保證可靠性,要保存兩個超級塊,在對象文件系統裡分配的到ID分 別為0和1。
在區段描述中記錄對象位圖、數據位圖和對象節點表的位置,通過這三個位 置指針進行定位。對象節點表中保存著對象結點(Onode)信息,相當於傳統文件 系統Inode, 0node裡保存著該對象的數據塊列表,這個列表的大小定義為15, 前12個指針為直接數據塊指針,這些數據塊裡保存的就是對象數據。若這12 個直接數據塊存放不下全部的數據,第13個指針為間接數據塊指針,對應的數 據塊裡保存的全是數據塊指針。第14個和第15個指針分別是二級和三級的數據 塊指針,這樣的分層結構足夠保存足夠多的對象數據列表。
對象查找表是一個哈希表,用來實現對象ID到對象Onode號的映射,每個 對象表在哈希表中佔一項,哈希表的大小等於磁碟中所存放的對象數。區間表用 來存儲管理區間的分配情況,每個區間按照大小被保存到不同的分組內,在分組 內對區間進行排序,這樣能便於空間的分配。文件系統的命名空間不是由對象文 件系統實現的,對象文件系統不提供文件路徑名字的解析,這部分的工作將由元 數據伺服器來完成。
參見圖4,空間分配器在分配空間之前,如果已經獲取對象的大小,將採用 預分配方法。否則,採用延遲分配策略,先將數據寫入緩衝區,當緩衝區填充滿 或者數據已經寫入完成時,將對緩衝區內的數據按照預分配方法劃分空間。
參見圖5,在分配磁碟空間時,分配對象文件系統要提供以對象為接口的磁 盤讀寫操作,對於對象的讀取操作,需要將對象ID作為參數傳入,經過哈希表 的查詢先找到該對象的0node號,在0node表中查詢到對象在磁碟上的起始位置和所佔用的區間,得到區間信息後,就可以從磁碟上讀取對象的數據。對於新對 象的寫操作,就需要為該對象分配存儲空間。
在磁碟空間的管理方面,將磁碟上的每一個空閒區間按照近似大小分成若干 個組,每個組的大小可以由系統管理員在運行初始時進行配置,也可以在文件系
統格式化的時候根據磁碟容量決定。在每個組內對區間大小進行排序,如要申請 分配一個大小為N的區間時,需要執行以下步驟
(1) 按照對象大小N,決定此對象所需空間的分組位置;
(2) 在分組內查找最合適的區間,由於分組內的區間是經過排序的,可以
在O(logn)時間內檢測到是否有合適的區間來存放數據。如果在分組找到合適的
區間,則執行歩驟(3);如果沒有找到合適的區間,則準備分配對象大小1/2
的空間,跳轉到開始重新執行該過程。
(3) 準備將這個區間分配給該對象,鎖定這個區間以防止其分配給其他對
象;
(4) 判斷這個區間的大小是否等於對象大小,如果等於對象大小則直接進 行分配,跳轉到步驟(6);
(5) 分割這個區間,將這個分區的前面一段分配給對象,後面一段根據大
小放入相應的區間分組;
(6) 此次空間分配完成,過程結束。 由於磁碟是按照固定大小的塊來管理剩餘空間的,分配到的分區大小一般是
大於對象大小的,選取分區的前一段放置數據,後一段的空閒空間進行回收放入 空閒分區表。
對於大的對象一次無法分配到所需空間的,則先嘗試分配一半的空間,若無 法滿足則嘗試四分之一的空間,經過多次分配後,將最終得到多個區間段組成的 對象存儲空間。雖然這些區段不連續,但每個區段的大小是大於磁碟數據塊的大 小的,能夠減少傳統文件系統的塊分配列表。
本對象文件系統掛載後,對象位圖和數據位圖會加載到內存中,對象節點表
由於佔用空間很大並不會加載,設置了對象節點表的緩存。通過對象ID要獲取 對應的0node,首先在緩存中查詢,如果沒有找到,則需要到磁碟上讀取。在讀 取磁碟之前,先查看Onode的請求等待列表中是否有已經有這個Onode請求,發現有這個請求則加入等待列表中等待,從磁碟讀取到0node後通知所有的等待 者。通過LRU策略將查詢到的0node放入緩存,使以後的訪問儘可能的命中。
使用對象緩衝區來保存部分訪問數據,由於緩衝區的大小是有限的,部分數 據有可能會被LRU策略替換出去。這樣在讀一個對象的數據時,有些數據緩衝區 中有,有些是缺失的。將要請求的對象數據的位移和長度與緩衝區內的數據進行 比對,找到缺失數據的位移和長度,從磁碟上請求這些缺失的數據,這樣就有效 地減少了磁碟的10次數。
權利要求
1、一種基於對象存儲設備的對象文件組織方法,其特徵是具體步驟為,(1)在磁碟中建立對象文件系統的布局,將對象描述、對象位圖、數據位圖、對象節點表信息加載在內存中;(2)空間分配器在分配空間前檢測對象文件的大小;(3)如果已知對象文件的大小,採用預分配的方法,在磁碟上為該對象文件分配空間;(4)如果不知道對象文件的大小,先將對象文件的部分數據寫入緩衝區;(5)檢測緩衝區是否被填滿或者客戶端是否有要求釋放緩存數據,為緩衝區的數據在磁碟上分配空間,將數據寫入磁碟;當緩衝區的數據要遠遠大於磁碟的邏輯數據分塊大小時,空間分配器為其劃分存儲的區間。
2、 根據權利要求1所述的基於對象存儲設備的對象文件組織方法,其特徵 是所述預分配的方法過程為,(a) 按照對象文件的大小,決定此對象文件所需空間的分組位置;(b) 在分組內查找最合適的區間,如果找到則使用該區間保存數據;(C)如果未找到合適的區間,則先分配對象文件大小1/2的空間,然後跳轉到步驟(a);(d) 鎖定找到的區間,準備將該區間分配給對象文件;(e) 判斷該區間的大小是否等於對象文件的大小,如果等於對象文件的大 小則直接進行分配;(f) 如果該區間的大於對象文件的大小,則分割該區間,將區間的前面一 段分配給對象文件,後面一段則根據大小放入相應的區間分組。
3、 根據權利要求1所述的基於對象存儲設備的對象文件組織方法,其特徵 是所述步驟(4)中,採用內存緩衝區緩存對象文件的部分數據,其中査找對象節點信息的過程為,(a) 根據對象ID在緩存中查找對象節點信息;(b) 如果在緩存中査詢命中,返回該對象節點信息;(c) 如果在緩存中未査詢到,檢査請求等待列表,若其中有該對象ID的節 點信息請求,則添加到等待隊列;(d) 在磁碟上讀取該對象ID對應的節點信息,將結果返回給所有的請求等待者;(e)將査詢到的節點信息放入緩存,採用最近最小使用策略進行緩存替換。
4、 根據權利要求1所述的基於對象存儲設備的對象文件組織方法,其特徵 是所述步驟(5)中磁碟的邏輯數據分塊大小為1Kbyte或者4Kbyte。
5、 根據權利要求1所述的基於對象存儲設備的對象文件組織方法,其特徵 是所述磁碟的存儲分區從邏輯上劃分為若干數據塊,每個塊1024 byte或者 4096 byte,數據塊的大小在創建系統時由系統管理員設置,或交給文件系統的 創建程序去決定。
6、 根據權利要求2所述的基於對象存儲設備的對象文件組織方法,其特徵 是:所述的區間為磁碟上連續的若干數據塊,用起始位置和長度來表示一個區間。
全文摘要
本發明涉及一種基於對象存儲設備的對象文件組織方法。其在磁碟中建立對象文件系統的布局,將對象描述、對象位圖等信息加載在內存中;空間分配器在分配空間前檢測對象文件的大小;如已知對象文件的大小,採用預分配的方法,在磁碟上為該對象文件分配空間;如不知道對象文件的大小,先將對象文件的部分數據寫入緩衝區;檢測緩衝區是否被填滿或客戶端是否要求釋放緩存數據,為緩衝區的數據在磁碟上分配空間,將數據寫入磁碟;當緩衝區的數據要遠大於磁碟的邏輯數據分塊大小時,空間分配器為其劃分存儲的區間。本發明採用連續分配多個數據塊的方法,能減少查找和分配空閒塊的時間,彌補當前分布式文件系統中對象文件系統磁碟空間分配局限和不足。
文檔編號G06F17/30GK101556557SQ20091009856
公開日2009年10月14日 申請日期2009年5月14日 優先權日2009年5月14日
發明者健 吳, 吳朝暉, 鵬 孫, 尹建偉, 瑩 李, 鄧水光 申請人:浙江大學

同类文章

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

一種新型多功能組合攝影箱的製作方法【專利摘要】本實用新型公開了一種新型多功能組合攝影箱,包括敞開式箱體和前攝影蓋,在箱體頂部設有移動式光源盒,在箱體底部設有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-本發明所屬領域本發明涉及一種用來自動讀取管狀容器所載識別碼的裝置,其中的管狀容器被放在循環於配送鏈上的文檔匣或託架裝置中。本發明特別適用於,然而並非僅僅專用於,對引入自動分析系統的血液樣本試管之類的自動識別。本發明還涉及專為實現讀