一种海量存储系统的元数据服务器和元数据索引方法

文档序号:6333884阅读:322来源:国知局
专利名称:一种海量存储系统的元数据服务器和元数据索引方法
技术领域
本发明属于存储技术领域,涉及其中的海量存储系统,具体涉及元数据服务器和 元数据索引方法。
背景技术
海量存储系统中,在访问数据之前首先需要访问元数据服务器,依据文件名等信 息查询和获得数据的大小、访问授权和保存位置等元数据信息后,才能读取相应存储设备 中保存的数据。但大量的访问请求最终并不需要操作所保存的数据,而只需操作元数据即 可。据统计在NFS和AFS中,75. 4%的读操作仅需使用元数据,占读操作总时间与空间开销 的49% ;82. 2%写操作仅需使用元数据,占写操作总时间与空间开销的63. 5%。因此如何设 计元数据服务器、管理元数据是提高海量存储系统性能的重要手段。海量存储系统中目前一般使用树型结构和基于哈希的元数据管理方法。在使用树 型结构的元数据管理方法时,查找元数据时需要逐层访问文件路径中的每个目录,时间与 空间开销大。使用基于哈希的元数据管理方法时,因为海量存储系统中保存的数据量不确 定,使得确定哈希函数非常困难,在改变哈希函数后则需要大量的时间与空间开销进行更 新。在使用树型结构的元数据管理方法时,可使用B树建立元数据的索引,但当海量存储系 统保存的数据量很大时,借助与B树索引查找元数据所需要的时间与空间开销仍然较大, 而维护包含大量结点的B树索引也需要很大的时间和空间开销。1986年美国麻省理工学院的Popek等人提出了目录子树分区(Directory Subtree Partitioning)算法,由不同的元数据服务器分别管理一个或多个目录子树。由 于采用目录层次树结构来管理元数据,查找元数据时需按照文件路径逐层访问,所需的时 间与空间开销大。1996年IBM的P. F. Corbett等人提出了基于哈希的元数据管理算法,使 用文件路径计算哈希值,实现元数据的管理和查找。但哈希函数难以满足海量存储系统中 保存不同数量数据时的要求,而修改哈希函数后需要大量的时间与空间开销调整元数据。 2003年美国加利福尼亚圣克鲁兹大学的Scott A. Brandt等人提出了 LH算法,混合了树型 结构和基于哈希两类算法,使用文件路径计算哈希值,再使用该哈希值查询元数据查找表 获得元数据。但同样存在选择哈希函数困难的问题。海量存储系统中元数据管理的特性分析
海量存储系统中保存了大量各种类型的数据,这些数据被访问的频率和时间等因素各 不相同。大量的研究表明,当数据刚刚被保存到海量存储系统中时,对数据的访问和修改会 很频繁;随着时间的推移,这些数据的访问频率会大大下降,直到在很长一段时间内几乎不 被访问。在这个过程中,元数据的操作频率也同样随着数据被访问频率的变化而变化。我 们依据海量存储系统中元数据的生命周期,可将元数据分为两个级别
(1)活跃元数据该类元数据当前被访问的频率很高,减少查询元数据所需的时间与空 间开销是关键。( 2 )非活跃元数据该类元数据当前被访问的频率较低或基本不被访问,如何使得管理元数据所需的时间与空间开销较小是关键。

发明内容
本发明的目的是解决现有元数据索引方法所存在的时间与空间开销大、灵活性差 等问题,提供一种海量存储系统的元数据索引方法,并构建一种用于海量存储系统的新型 元数据服务器。实现本发明目的的技术方案是,一种面向海量存储系统的元数据组织和查询方 法。现有元数据服务器在管理元数据时包括下列步骤1收集元数据;2、使用B树建立元数 据的索引或使用HASH对元数据进行散列;其特征在于,在上述步骤1和步骤2之间还有元 数据分级步骤,用于对元数据进行分级;此外对步骤2进行修改,分解为活跃元数据索引步 骤和非活跃元数据索引步骤。具体是一种基于分级的元数据索引方法,包括下列步骤
1)收集元数据;
2)元数据分级步骤①计算元数据的活跃度;②将元数据分为活跃和非活跃两个等
级;
3)根据元数据的等级建立活跃元数据索引和非活跃元数据索引。上述①计算元数据的活跃度具体是使用公式1计算元数据的活跃度A,
k是更新元数据的时间,t是系统当前的时间,/是该元数据总的被访问的次数; 公式 1 :Α = - //+ β- ,
上述②对元数据进行分级,依据元数据的活跃度,将元数据分为活跃和非活跃两个级 别;具体是
(1)定义元数据活跃阀值4,作为对元数据分级的依据 (2)使用公式2判断元数据的等级;
括跃工(Α為)<0 其中Z为元数据等级判断函数,计算方法如公式3所示 公式3 1=1為。上述步骤3)中活跃元数据索引步骤具体可包括下列步骤
(1)将活跃元数据按照文件的属性(如后缀名)进行分区;
(2)均衡活跃元数据各分区中元数据的数量;
(3)使用Bloom Filter,生成分区中元数据的摘要串;
(4)使用B树以文件路径或标识为关键字建立元数据的索引。上述步骤3)中非活跃元数据索引步骤具体可包括下列步骤
(1)将非活跃元数据按照文件的属性(如后缀名)进行分区;
(2)均衡非活跃元数据各分区中元数据的数量;
(3)使用Bloom Filter,生成分区中元数据的摘要串;(4)在哈希函数选择表中查找该分区所使用的哈希函数;
(5)使用该分区的哈希函数以文件路径或标识为关键字计算保存的位置。本发明首先计算元数据的活跃度,将元数据分为活跃和非活跃两个级别,使用不 同的方法分别对活跃元数据和非活跃元数据建立索引,具有查询活跃元数据所需的时间和 空间开销小和管理非活跃元数据所需额外时间与空间小的特性。本发明还公开了基于上述分级管理方法的查找方法,包括下列步骤1、接收元数 据的访问请求;2、查找元数据;3、返回元数据。所述查找元数据步骤具体包括下列步骤
(1)在活跃元数据中查找首先借助活跃元数据的索引进行查找,如能找到,则转到步 骤3,否则执行步骤(2);
(2)在非活跃元数据中查找借助非活跃元数据的索引进行查找,如能找到,则转到步 骤3,否则返回无法找到该元数据的信息。上述步骤(1)在活跃元数据中查找步骤具体可包括下列步骤 第一步使用文件路径或标识通过Bloom Filter计算;
第二步将所获得的值与某一分区的摘要串进行比较;
第三步存在某个哈希值不在该分区所对应的摘要串中则转到第四步执行,否则转到 第三步执行;
第四步如是最后一个分区,则返回;否则移动下一个分区转到第二步执行; 第五步使用分区的B树索引查找对应的元数据,如找不到则返回。上述步骤(2)在非活跃元数据中查找步骤具体可包括下列步骤 第一步使用文件路径或标识通过Bloom Filter计算;
第二步将所获得的值与某一分区的摘要串进行比较;
第三步存在某个哈希值不在该分区所对应的摘要串中则转到第四步执行,否则转到 第三步执行;
第四步如是最后一个分区,则返回;否则移动下一个分区转到第二步执行; 第五步获得该分区对应的哈希函数;
第六步使用该分区所对应的哈希函数计算可能保存元数据的位置,进行查找,如找不 到则返回。实现本发明方法发明目的的装置如下
一种新型海量存储系统元数据服务器,包括接收元数据访问请求装置、查找元数据装 置和返回元数据装置;其特征在于,在上述接收元数据访问请求装置和查找元数据装置之 间还有元数据分级装置和元数据分级索引装置。接收元数据访问请求装置用于接收海量存储系统中的元数据访问请求;
元数据分级装置用于依据元数据的活跃度,将元数据分为活跃和非活跃两个级别; 元数据索引装置针对活跃和非活跃元数据的不同特性,使用相应方法分别建立活跃 和非活跃元数据的索引;
查找元数据装置依据所接收的元数据访问请求,计算元数据的活跃度,使用活跃或非 活跃元数据的索引查找元数据;
返回元数据装置将所找到元数据信息反馈给海量存储系统中的主机。
所述元数据分级装置具体可包括下列模块
元数据活跃度计算模块用于计算元数据的活跃度,作为元数据分级的依据; 元数据分级模块用于将元数据分为活跃和非活跃两部分。所述元数据分级索引装置具体可包括下列模块 活跃元数据索引模块用于对活跃元数据建立索引;
非活跃元数据索引模块用于对非活跃元数据建立索引。本发明通过在海量存储系统元数据服务器内设置元数据分级和元数据分级索引 装置。依据元数据的活跃度,将元数据分为活跃和非活跃两部分,为提高查找元数据的效 率,减少管理元数据所需的时间与空间开销奠定基础;依据活跃和非活跃元数据不同的特 性,使用相应的方法为活跃元数据和非活跃元数据建立索引,减少查找活跃元数据所需的 时间与空间开销,并使得管理非活跃元数据所需的时间与空间开销较小。本发明的有益效果在于
1、在海量存储系统元数据服务器中增加了元数据分级装置,将元数据分为活跃元数据 和非活跃元数据两部分,为减少管理和查找元数据所需的时间和空间开销奠定了基础。2、元数据分级装置为针对各类元数据在管理和查找等方面的不同要求,选择不同 的索引方法,为减少管理和查找元数据所需的时间和空间开销奠定了基础。3、在海量存储系统元数据服务器中增加了元数据分级装置,针对活跃元数据和非 活跃元数据的特点,使用相应的方法建立索引,使得查找活跃元数据所需的时间和空间开 销较小,减少管理非活跃元数据所需的时间和空间开销。


图1是元数据未分级前的示意图。图2是元数据分级后的示意图。图3是查找活跃元数据的流程。图4是哈希函数查找表的示例。图5是查找非活跃元数据的流程。图6是查找元数据平均比较次数性能的测试。图7是查找元数据最大比较次数性能的测试。
具体实施例方式实施例1
一种海量存储系统的元数据服务器,包括接收元数据访问请求装置、元数据分级装置、 元数据分级索引装置、查找元数据装置和返回元数据装置;在接收元数据访问请求装置和 查找元数据装置之间还有元数据分级装置和元数据索引装置,用于依据活跃度对元数据进 行分级,并使用相应方法建立不同级别元数据的索引。本实施例在现有海量存储系统元数据服务器的基础上,增加元数据分级装置和元 数据分级索引装置,构成具有较小时间与空间开销特性的新型元数据服务器。元数据分级装置包括元数据活跃度计算模块和元数据分级模块等主要功能。元数据分级装置中各功能的说明如表1所示。
7
表1元数据分级装置中的功能模块
权利要求
一种基于分级的元数据索引方法,包括下列步骤1)收集元数据;2)元数据分级步骤①计算元数据的活跃度;②将元数据分为活跃和非活跃两个等级;3)根据元数据的等级建立活跃元数据索引和非活跃元数据索引。
2.根据权利要求1所述的元数据索引方法,其特征在于,所述计算元数据活跃度的步 骤具体是使用公式1计算元数据的活跃度,公式 1 A=I-Iff+ l/t-t,其中A代表活跃度是更新元数据的时间, 是系统当前的时间,是该元数据总的被访问的 次数;所述将元数据分为活跃和非活跃两部分的步骤具体包括 定义元数据活跃阀值4,作为对元数据分级的依据; (2)使用公式2判断元数据的等级;其中Z为元数据等级判断函数,计算方法如公式3所示公式3 :L=.4·為。
3.根据权利要求1所述的元数据索引方法,其特征在于,所述建立活跃元数据的索引 步骤具体可包括下列步骤将活跃元数据按照文件的属性进行分区; 均衡活跃元数据各分区中元数据的数量; 使用Bloom Filter,生成分区中元数据的摘要串; 使用B树以文件路径或标识为关键字建立元数据的索引。
4.根据权利要求1所述的元数据索引方法,其特征在于,所述建立非活跃元数据的索 引步骤具体可包括下列步骤将非活跃元数据按照文件的属性进行分区;均衡非活跃元数据各分区中元数据的数量;使用Bloom Filter,生成分区中元数据的摘要串;在哈希函数选择表中查找该分区所使用的哈希函数;使用该分区的哈希函数以文件路径或标识为关键字计算保存的位置。
5.一种基于权利要求1所述元数据索引方法的海量存储系统的元数据服务器,包括接 收元数据访问请求装置、查找元数据装置和返回元数据装置;其特征在于,在接收元数据访 问请求装置和查找元数据装置之间还有元数据分级装置和元数据分级索引装置,元数据分 级装置用于依据活跃度对元数据进行分级,元数据分级索引装置用于建立不同级别元数据 的索引。
6.根据权利要求5所述的海量存储系统元数据服务器,其特征在于,所述元数据分级 装置具体包括下列模块元数据活跃度计算模块用于计算元数据的活跃度,作为元数据分级的依据; 元数据分级模块用于将元数据分为活跃和非活跃两部分。
7.根据权利要求5所述的海量存储系统元数据服务器,其特征在于,所述元数据分级 索引装置具体可包括下列模块活跃元数据索引模块用于对活跃元数据建立索引; 非活跃元数据索引模块用于对非活跃元数据建立索引。
全文摘要
本发明属于存储技术领域,具体涉及海量存储系统元数据服务器和元数据索引方法。所说的元数据服务器,包括接收元数据访问请求装置、查找元数据装置和返回元数据装置;在接收元数据访问请求装置和查找元数据装置之间还有元数据分级装置和元数据分级索引装置。本发明所说的方法包括、收集元数据、元数据分级和根据元数据的等级建立活跃元数据索引和非活跃元数据索引的步骤。本发明建立了基于分级元数据管理算法的原型系统,使用有效方法进行了测试与比较,验证了基于分级元数据管理算法能减少查找活跃元数据所需的时间与空间开销,提高了对不同负载的适应能力,增强性能的稳定性。
文档编号G06F17/30GK101944134SQ20101051007
公开日2011年1月12日 申请日期2010年10月18日 优先权日2010年10月18日
发明者刘阳宽, 牛德姣, 蔡涛, 鞠时光 申请人:江苏大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1