專利名稱::一種基于dbms的元數據管理方法和元數據服務器的制作方法
技術領域:
:本發明屬于存儲
技術領域:
,涉及其中的海量存儲系統,具體涉及元數據服務器和元數據管理方法。
背景技術:
:海量存儲系統中需要保存Terabyte、Petabyte級別甚至更大規模的數據,海量數據本身的元數據量也非常巨大,為了滿足海量存儲系統對高1/0性能和管理靈活性的要求,如何管理海量存儲系統的元數據并設計相應的元數據服務器是一個重要問題。海量存儲系統中數據的元數據,如文件的名字、屬性和訪問授權等都需要集中地由元數據服務器管理。訪問海量存儲系統中的數據時,首先需要訪問元數據服務器,利用文件名等信息查詢文件的元數據,獲得數據屬性和訪問授權等元數據信息后,才能讀取相應的數據。海量存儲系統需要同時處理大量的訪問請求,管理元數據所需的時間與空間開銷、以及靈活性對海量存儲系統的I/O性能有很大的影響。海量存儲系統中常用的元數據管理算法包括目錄子樹分區法和文件哈希算法。1986年美國麻省理工學院的Popek等人提出的目錄子樹分區(DirectorySubtreePartitioning)算法,將層次式的目錄結構劃分為若干子樹,把不同的目錄子樹分布到不同的元數據服務器中,從而提高元數據管理的性能。但層次式的目錄結構存在遍歷開銷大的問題,在執行目錄改名和更改訪問授權等操作時需要移動大量的元數據,影響了海量存儲系統的性能。1996年IBM的P.F.Corbett等人提出的哈希(Hash)算法,通過設計相應的Hash函數,可以將同一目錄下的文件均勻地分布到不同的元數據服務器中,能減少元數據操作中的瓶頸。但該算法破壞了目錄的層次結構,在執行與目錄有關的目錄列表和訪問授權管理等指令時,需要遍歷所有的元數據信息;同樣存在執行目錄改名和更改訪問授權等操作時,所需時間與空間開銷較大的問題。2003年美國加利福尼亞圣克魯茲大學存儲系統研究中心的ScottA.Brandt等人提出的LH算法,在保持元數據的層次目錄結構的同時,使用Hash函數計算路徑名的哈希值來確定存放文件元數據的位置;在文件的權限訪問方面,將文件的訪問授權與目錄的訪問授權進行區分管理,提高了更改訪問授權等操作的性能。但由于文件的訪問授權未分散保存于訪問路徑中所有目錄與文件中,在更改某一個目錄的訪問權限后,需更新該目錄下的所有子目錄和文件的訪問權限,此外還會引發元數據一致性的問題。2007年華中科技大學的蘇勇等人提出元數據共享存儲池管理算法。由網絡存儲器構建共享存儲池,元數據采用Hash函數進行分布,可以避免當某個目錄成為訪問熱點時所存在的瓶頸問題。但存在Hash函數確定困難,適應性差等問題。海量存儲系統中元數據管理的特性分析海量存儲系統中通常將文件的元數據和數據分開存儲,數據保存在存儲設備中,元數據包括文件的屬性、訪問授權和數據的存儲位置等信息,由專門的元數據服務器進行管理。主機在接收到用戶訪問數據的請求后,首先向元數據服務器發送請求,根據元數據服務器返回的數據地址信息,訪問相應的存儲設備。元數據服務器需要完成元數據的查找,比3較訪問授權信息和提取數據地址等一系列操作。此外還有不少用戶的訪問請求只需要對元數據進行處理,如文件的改名、移動、修改屬性(文件大小、所有者、創建時間和修改時間等屬性)的操作。1、元數據的唯一標識為了解決文件重名的問題,僅使用文件名查找元數據是不夠的,還需要文件的訪問路徑等信息。另外,在訪問文件的元數據時,需要查找的不僅是該文件的元數據,還有該文件訪問路徑上所有目錄的元數據。2、查找元數據的效率采用層次結構的元數據組織方式在訪問某一文件之前,需要依次、逐層地訪問該文件訪問路徑上的所有目錄,很難快速便捷地查找到某個文件。3、不同的元數據管理要求不同的文件和目錄需要保存的屬性類型與個數各不相同,傳統元數據管理算法中,使用單一格式保存文件和目錄的元數據,存在冗余、靈活性差等問題。4、目錄與文件的關聯目錄作為海量存儲系統中一類特殊的文件,與一般的文件有所不同,保存了目錄所屬的文件和子目錄信息,還保存了目錄和文件之間的層次信息,傳統文件系統中采用文本文件保存。
發明內容本發明的目的是解決海量存儲系統中元數據管理方法所存在的時間與空間開銷大、靈活性差等問題,提供一種高效管理元數據的方法,并構建一種用于海量存儲系統的元數據服務器實現本發明目的的技術方案是,一種基于DBMS的元數據管理方法,包括下列步驟1)、在元數據服務器中建立元數據數據庫系統;2)、元數據服務器接收元數據查找請求;3)、元數據服務器轉換元數據請求,查找元數據;4、元數據服務器返回元數據;所述步驟l)具體包括l.1)在元數據服務器中建立DBMS(數據庫管理系統);1.2)在DBMS基礎上以二維表基礎組織元數據,建立保存海量存儲系統元數據的元數據管理系統;所述步驟3)中的轉換元數據請求的方式為將元數據操作轉換為SQL語句。所述步驟1.2)具體可包括下列步驟在元數據數據庫系統中建立五張二維表File表、File-Attribute表、Allocation表、Authorization表禾口Affiliation表;其中,File表保存文件和目錄的基本信息,ID是文件或目錄的唯一標識,PathName為文件或目錄的訪問路徑和文件名,DPID為該文件上層目錄的標識。表lFile表4字段類型IDintPathNamecharDPIDintFile-Attribute表保存文件和目錄的屬性,ID是文件或目錄的唯一標識,AttributeName是文件所對應屬性的名字,AttributeValue為文件各屬性所對應的值,AttributeType為文件屬性的類型。此時文件所有屬性均以字符串的形式保存,在使用時再轉換為其對應的類型。表2File-Attribute表字段類型IDintAttributeNamecharAttributeValuecharAttributeTypecharAllocation表保存文件中數據所在的數據塊信息,ID是文件的唯一標識,SegmentID為文件中數據所在數據塊的標識。表3Allocation表字段類型IDintSegmentIDintAuthorization表保存文件和目錄訪問授權的信息,ID是文件或目錄的唯一標識,AC是文件或目錄的訪問授權。表4Authorization表字段類型IDintACcharAffiliation表保存文件和目錄與所有上層目錄之間的所屬關系,ID是文件和目錄的唯一標識,PID為文件或目錄的所有上層目錄標識。5表5Affiliation表<table>tableseeoriginaldocumentpage6</column></row><table>所述步驟3)更具體地可包括下列步驟(3.1)分析元數據請求,分解所需完成的元數據操作要求;(3.2)依據所需完成的元數據操作要求,生成操作元數據數據庫的SQL語句。本發明在元數據服務器中安裝DBMS軟件,構成用于保存和管理海量存儲系統中元數據的元數據數據庫,構建新型的元數據服務器,減少海量存儲系統中管理元數據所需的時間與空間開銷,提高管理元數據的靈活性。實現本發明目的的裝置如下—種基于DBMS的元數據服務器,包括接收元數據請求裝置、轉換元數據請求裝置和返回元數據裝置,所述元數據服務器中還設有元數據數據庫系統,用于保存和管理海量存儲系統中的元數據;所述轉換元數據請求裝置用于將元數據請求轉換為操作元數據數據庫的SQL語句。所述元數據數據庫系統具體可包括下列模塊DBMS(數據庫管理系統)模塊,用于建立、使用和維護元數據數據庫系統;元數據數據庫模塊,用于在DBMS模塊中建立File、File-Attribute、Allocation、Authorization和Affiliation五張二維表,來保存海量存儲系統中的元數據。所述轉換元數據請求裝置具體可包括下列模塊分析元數據請求模塊分析元數據請求,分解獲得所需完成的元數據操作。生成操作元數據數據庫的SQL語句模塊基于分析元數據請求的結果,分解獲得所需完成的元數據操作,構建出完成元數據請求所需的SQL語句。本發明在元數據服務器中安裝DBMS軟件,構建新型的元數據服務器,用于保存和管理海量存儲系統中元數據的元數據數據庫,達到減少管理元數據所需的時間與空間開銷、提高靈活性的目的。本發明的有益效果在于1、使用DBMS構建保存海量存儲系統的元數據服務器,能利用DBMS具有的效率高、便于擴展等特性,提高管理元數據的性能,增強管理元數據的靈活性。2、使用多個二維表保存元數據信息,原來層次結構的文件與目錄之間從屬關系轉換為元組之間的聯系。此外針對File表、File-Attribute表、Allocation表、Authorization表和Affiliation表分別建立了多個索引,改變了需遍歷訪問路徑中各級目錄的方法,有效地減少了查找元數據所需的時間與空間開銷。3、以查詢更為方便的二維表結構保存文件與目錄之間的關系,保存了文件與目錄之間的層次結構,在執行目錄列表等操作命令時,只需對File表進行兩次查詢,所需的時間與空間開銷小,能有效地改變執行目錄列表等操作命令所需時間與空間開銷過大的問題。4、在訪問文件時只需要檢查文件及父目錄的訪問授權,避免了遍歷訪問路徑中各目錄所需的大量時間與空間開銷。在修改目錄的訪問授權時只需要修改子目錄的訪問授權信息,所需的時間與空間開銷/J、。5、由File-Attribute表保存文件的屬性信息,文件的每個屬性對應表中一個元組,不同文件的屬性個數、類型等可各不相同,實現了管理文件屬性靈活性。6、文件與目錄之間的從屬關系由元組之間的關聯表示,在移動文件時只需要修改二維表中的少量數據項,所需的時間與空間開銷小。圖1本發明實施例1元數據服務器的結構圖圖2元數據數據庫的結構圖具體實施方式實施例1如圖1所示,一種基于DBMS的元數據服務器,包括元數據數據庫系統、接收元數據請求裝置、轉換元數據請求裝置和返回元數據裝置。元數據數據庫系統用于保存和管理海量存儲系統中的元數據,接收元數據請求裝置用于接收主機發出的元數據請求,轉換元數據請求裝置用于將元數據請求轉換為操作元數據數據庫的SQL語句,返回元數據裝置用于將對元數據的操作結果返回給主機。本實施例在現有元數據服務器的基礎上,組織、修改和查找元數據的方法,增加元數據數據庫系統和轉換元數據請求裝置,構成本發明的用于海量存儲系統的元數據服務器。元數據數據庫系統的結構如圖2所示,包括DBMS模塊和元數據數據庫模塊。元數據數據庫系統中各功能的說明如表1所示。表1元數據數據庫系統中的功能模塊模塊名稱作用DBMS模塊在元數據服務器中安裝DBMS軟件,用于實現保存和管理海量存儲系統中元數據的功能。元數據數據庫模塊在DBMS模塊中建立File、File-Attribute、AllocationAuthorization和Affiliation五張二維表,用于保存海量存儲系統中的元數據。實施例2如圖2所示,一種基于DBMS的元數據管理方法,包括下列步驟1、建立保存元數據的數據庫,以二維表組織元數據;2、接收元數據請求,3、轉換元數據請求;4、返回元數據;其中以二維表組織元數據步驟和轉換元數據請求步驟是區別于現有元數據管理方法的關鍵。7步驟1具體可包括下列流程(1)在元數據服務器中安裝DBMS軟件,建立保存海量存儲系統元數據的數據庫系統。(2)在數據庫中建立File表保存文件和目錄的基本信息,ID是文件或目錄的唯一標識,PathName為文件或目錄的訪問路徑和文件名,DPID為該文件上層目錄的標識。(3)在數據庫中建立File-Attribute表保存文件和目錄的屬性,ID是文件或目錄的唯一標識,AttributeName是文件所對應屬性的名字,AttributeValue為文件各屬性所對應的值,AttributeType為文件屬性的類型。此時文件所有屬性均以字符串的形式保存,在使用時再轉換為其對應的類型。(4)在數據庫中建立在數據庫中建立Allocation表保存文件中數據所在的數據塊信息,ID是文件的唯一標識,SegmentID為文件中數據所在數據塊的標識。(5)在數據庫中建立Authorization表保存文件和目錄訪問授權的信息,ID是文件或目錄的唯一標識,AC是文件或目錄的訪問授權。(6)在數據庫中建立Affiliation表保存文件和目錄與所有上層目錄之間的所屬關系,ID是文件和目錄的唯一標識,PID為文件或目錄的所有上層目錄標識。轉換元數據請求步驟具體可包括下列流程(1)分析元數據請求分析元數據請求,將其分解為一組需完成的元數據操作要求。(2)生成SQL語句依據所需完成的一組元數據操作要求,生成操作元數據數據庫的SQL語句。下面給出幾個典型種類的元數據請求,給出分析和生成SQL語句的方法。目錄操作文件與目錄之間的從屬關系蘊含在File表中元組之間的關聯中,File表中包含了所有文件和目錄的訪問路徑以及父目錄的信息,因此處理目錄列表時僅需要查詢File表;首先根據用戶需要對目錄內容列表的目錄訪問路徑設為dp—name,查找該目錄所對應的標識id,再依據獲得的目錄標識id查找File表中DPID與其相同的元組,即可獲得該目錄的內容列表。對應的SQL查詢語句如下SELECTPathNameFROMFileWHEREDPID=(SELECTIDFROMFileWHEREPathName=dp—name)當處理修改目錄屬性的操作命令時,需要查詢File表和File-Attribute表。首先依據訪問路徑查詢File表獲得目錄標識id,再更新File-Attribute表中該目錄的屬性。如更新目錄訪問路徑為dp_name的修改時間為現在的時間(由now函數獲得),則對應的SQL語句如下UPDATEFile-AttributeSETAttributeValue=麗()WHEREAttributeName='ModifyTime'andID=(SELECTIDFROMFileWHEREPa個ame=dp—name)文件操作創建文件時,首先在File表中插入一條元組,記錄文件的訪問路徑、標識和父目錄的標識等信息;再將文件的每個屬性作為一個元組插入到File-Attribute表中;依據文件的訪問路徑,將文件的每個上層目錄作為一個元組插入到Affiliation表中;最后將文件數據所在的數據塊信息,作為一個元組插入到Allocation表中。刪除文件時所做的工作與創建文件相反。建立保存元數據二維表的索引,并利用文件訪問路徑縮小查找的范圍,減少查找文件所需的時間與空間開銷。當已知文件的完整訪問路徑時,可將訪問路徑作為關鍵字查詢File表,利用索引快速獲得文件的標識。當在某一目錄下搜索文件時,可首先查找File表獲得該目錄的標識,再查找Affiliation表中PID值與其相同的元組,從而快速獲得所需文件的標識。移動文件時,只需要修改File表中PathName的值,用新的訪問路徑代替。復制文件時,則首先在File表、File-Attribute表、Affiliation表和Allocation表中查找需復制文件所對應的元組,用新的文件標識和訪問路徑替代后再添加到相應的表中。文件屬性的操作不同類型文件需保存的屬性個數、類型各不相同,File-Attribute表中每個元組表示某個文件的一個屬性,不限制文件屬性的個數與類型,從而滿足靈活保存文件屬性的要求。查詢文件的屬性時,首先查詢File表獲得文件的標識,然后使用文件標識查詢File-Attribute表,獲得文件的屬性。添加文件屬性時,將文件標識、屬性名、屬性值和屬性類型作為一個元組添加到File-Attribute表中。修改文件屬性值時,在File-Attribute表中查找相應的元組,將新的屬性值寫入AttributeValue字段中。刪除文件的屬性時,查找File-Attribute表中ID值與文件標識相同,且AttributeName與要刪除的屬性名相同的元組。訪問授權的操作在訪問文件時,查找Authorization表中該文件和父目錄的訪問授權,進行比較,如不相同,則將父目錄的訪問授權作為新的訪問授權值,并更新該文件元組中AC字段的值。當修改目錄的訪問授權后,查找該目錄下的所有子目錄,用新訪問授權更新Authorization表中對應的元組。權利要求一種基于DBMS的元數據管理方法,包括下列步驟1)在元數據服務器中建立元數據數據庫系統;2)元數據服務器接收元數據查找請求;3)元數據服務器轉換元數據請求,查找元數據;4)元數據服務器返回元數據;所述步驟1)具體包括1.1)在元數據服務器中建立DBMS;1.2)在DBMS基礎上以二維表組織元數據,建立保存海量存儲系統元數據的元數據數據庫系統;所述步驟3)中的轉換元數據請求的方式為將元數據操作轉換為SQL語句。2.根據權利要求1所述的元數據管理方法,其特征在于,所述步驟1.2)具體可包括下列步驟在元數據數據庫系統中建立五張二維表File表、File-Attribute表、Allocation表、Authorization表禾口Affiliation表;其中,File表保存文件和目錄的基本信息,ID是文件或目錄的唯一標識,PathName為文件或目錄的訪問路徑和文件名,DPID為該文件上層目錄的標識;File-Attribute表保存文件和目錄的屬性,ID是文件或目錄的唯一標識,AttributeName是文件所對應屬性的名字,AttributeValue為文件各屬性所對應的值,AttributeType為文件屬性的類型。此時文件所有屬性均以字符串的形式保存,在使用時再轉換為其對應的類型;Allocation表保存文件中數據所在的數據塊信息,ID是文件的唯一標識,SegmentID為文件中數據所在數據塊的標識;Authorization表保存文件和目錄訪問授權的信息,ID是文件或目錄的唯一標識,AC是文件或目錄的訪問授權;Affiliation表保存文件和目錄與所有上層目錄之間的所屬關系,ID是文件和目錄的唯一標識,PID為文件或目錄的所有上層目錄標識。3.根據權利要求1所述的元數據管理方法,其特征在于,所述步驟3)更具體地可包括下列步驟(3.1)分析元數據請求,分解所需完成的元數據操作要求;(3.2)依據所需完成的元數據操作要求,生成操作元數據數據庫的SQL語句。4.一種基于DBMS的元數據服務器,包括接收元數據請求裝置、轉換元數據請求裝置和返回元數據裝置,其特征在于,所述元數據服務器中還設有元數據數據庫系統,用于保存和管理海量存儲系統中的元數據;所述轉換元數據請求裝置用于將元數據請求轉換為操作元數據數據庫的SQL語句。5.根據權利要求4所述元數據服務器,其特征在于,所述元數據數據庫系統具體可包括下列模塊DBMS(數據庫管理系統)模塊,用于建立、使用和維護元數據數據庫系統;元數據數據庫模塊,用于在DBMS模塊中建立File、File-Attribute、Allocation、Authorization和Affiliation五張二維表,來保存海量存儲系統中的元數據。6.根據權利要求4所述元數據服務器,其特征在于,所述轉換元數據請求裝置具體可包括下列模塊分析元數據請求模塊分析元數據請求,分解獲得所需完成的元數據操作;生成操作元數據數據庫的SQL語句模塊基于分析元數據請求的結果,分解獲得所需完成的元數據操作,構建出完成元數據請求所需的SQL語句。全文摘要本發明提出了一種基于DBMS的元數據管理方法和元數據服務器,在元數據服務器中安裝DBMS用于構建保存海量存儲系統的元數據數據庫,建立五個二維表用于保存元數據,并在分析元數據請求后,將元數據請求轉換為一組操作元數據數據庫的SQL語句,由此構建了用于海量存儲系統的新型元數據服務器,分析了執行典型元數據操作時所需的時間與空間開銷、以及管理元數據的靈活性,驗證了該發明能減少管理海量存儲系統中元數據所需的時間與空間開銷,提高管理元數據的靈活性。文檔編號G06F17/30GK101789027SQ201010124079公開日2010年7月28日申請日期2010年3月15日優先權日2010年3月15日發明者牛德姣,蔡濤,鞠時光申請人:江蘇大學