一种应用于随机存取的元数据管理方法及模块的制作方法

文档序号:6402044阅读:209来源:国知局
专利名称:一种应用于随机存取的元数据管理方法及模块的制作方法
技术领域
本发明涉及一种应用于随机存取的元数据管理方法及模块,该方法应用于分布式文件系统的元数据服务器集群管理及其元数据管理上,属于计算机科学与技术领域。
背景技术
近些年来,随着互联网的高速发展,每天都会产生数以亿计的数据量,分布式文件系统逐渐成为大规模数据存储的首要选择。在分布式存储架构中,为了更有效地管理元数据和文件数据,通常把元数据的处理和文件数据的访问分离开来,由元数据服务器管理文件系统命名空间和文件各种属性,并负责向客户端提供文件访问权限和文件存储位置等信息,同时由数据服务器负责存储文件,并直接处理客户端对文件数据的各种读写请求。这样分离之后,就可以利用分布式文件系统的访问特性,具体针对系统瓶颈进行优化,而最近的研究显示,文件系统中50%-80%的访问操作对象都是元数据,而不是数量较大的文件数据,因此,元数据的管理策略对 于系统性能具有至关重要的影响。元数据的管理策略大概可以分为两类:子树分割和哈希方法。其中子树分割策略把分布式文件系统的全局命名空间和目录层次按照一定策略分割成多棵子树,每棵子树都分布到元数据服务器集群中的一台特定的元数据服务器中,但每台元数据服务器中可能维护有一棵或多棵子树;而哈希方法采用哈希函数来建立元数据存储索引,意味着元数据管理系统利用每个文件和目录的某个特征(名称、路径名等)来计算哈希值,并根据这些哈希值把对应的文件或目录分布到某台元数据服务器中存储。子树分割方法在80至90年代的分布式文件系统中使用比较广泛,如美国Sun公司的Network File System (NFS)和卡内基梅隆大学的Andrew File System (AFS)都是采用的这种元数据管理策略。子树分割方法非常接近人们的直观思维,实现起来较为简单,但缺点也较多,如权限验证耗时长,不能动态均衡负载等。2004年,Lustre分布式文件系统通过普通的哈希函数计算文件的上级目录名的哈希值,把该哈希值作为元数据存储索引值,而90年代末期的VESTA分布式文件系统和RAMA分布式文件系统通过普通的哈希函数直接计算文件的全路径名称的哈希值作为元数据存储的索引值,这两种元数据管理系统虽用不同的唯一标志来计算哈希值,但都属于哈希策略。此类策略具有明显的优点,元数据在元数据服务器集群中存储均匀,存取负载分布均衡,且支持高并发存取,但同时缺点也是明显的,当客户端对文件目录进行重命名操作时,元数据服务器需要迁移元数据,当客户端访问文件或目录时,文件系统要对该文件或目录的上级目录进行权限认证,而上级目录可能存放在其他元数据服务器上,所以元数据服务器之间要频繁地通信以确保用户具有对文件或目录的访问权限。

发明内容
本发明“一种应用于随机存取的元数据管理方法及模块”由三个模块组成,如图1所示,分别是传统哈希策略模块、名字映射模块和目录结构模块,下面从各模块的功能、具体实现以及模块的执行流程来对本发明做详细说明。( I)本发明各模块的功能 传统哈希策略模块:该发明的基础模块,它由一个哈希函数组成,该模块的功能是运用哈希函数对文件或目录的全路径计算哈希值,然后根据计算得到的哈希值确定存放文件或目录的元数据的位置。 名字映射模块:该发明的特色模块,它由全路径分解和名字映射表两部分组成,所谓全路径分解就是把文件或目录的全路径名分解成一个个单独的目录名和文件名,而名字映射表记载了文件或目录的原始名和重命名的对应关系。该模块的功能是完成文件或目录的重命名到原始名的转换。 目录结构模块:该发明的关键模块,它由结构化编码,目录结构及权限查询表以及权限认证三部分组成。结构化编码是指对文件或目录的全路径名等信息进行编码;目录及权限查询表记录了文件与目录、目录与目录之间的关联信息以及用户对它们的访问权限;权限认证是指判断用户对某个文件或目录是否具有访问的权限。该发明的三个模块各自具有各自的功能。传统哈希策略模块提供了高效的元数据访问方法,名字映射模块利用名字映射避免了在文件或目录名字改变时迁移大量元数据,目录结构模块提供了目录与目录、目录与文件的元数据之间的关联信息,避免了元数据服务器在交换元数据信息时的频繁通信。具体功能如下:(2)本发明中各模块功能的具体实现本发明中的每个模块功能的实现是依赖于每个模块中各组成部分的实现方法,具体介绍如下:
传统哈希策略模块的在实现上,是由一个哈希函数对文件或目录的全路径名计算哈希值。 名字映射模块中的名字映射功能主要依靠名字映射表来实现,名字映射表主要由两项组成,一项是文件名,本发明称其为原始名,该文件名是在用户创建文件时记载在表项中,同时也存储在元数据服务器中,当用户对某个文件或者目录进行重命名时,客户端查询名字映射表,当发现重命名处空白时就填入新的名字,当重命名处已有名字时,把旧的名字替换为新的名字。 目录结构模块的实现分目录结构及权限查询表、结构化编码和权限认证三个部分来介绍:目录结构及权限查询表主要由三项组成,第一项是inode号,inode号是文件系统对文件或目录的全局编号;第二项是结构化编号,如图4所示,这个编号记载了文件或目录所在的目录结构,结构化编号的头部记载元数据所在的服务器的编号,中间部分是对全路径的分级编号,尾部记载目录级数;第三项是权限值。结构化编码是指对目录或文件的全路径进行编号,编号采用二进制编号,系统可以设定目录结构中每一段所占的二进制位数。权限认证是指通过查询目录结构及权限查询表来判断用户是否具有对文件或目录的访问权限。权限值是九位二进制数,高三位表示用户组权限,中间三位为用户权限,低三位为其他用户权限。三位二进制数的最高位为读权限,中间位为写权限,最低位为执行权限,“ I ”表示具有权限,“0”表示没有权限。查询要访问文件或目录的全路径上的所有目录的权限值,对这些权限值进行与运算,最终得到一个权限值。(3)本发明中模块的执行流程为了说明本发明执行流程,从客户端创建文件、重命名文件以及访问文件的过程描述了本发明各模块之间的关系和本发明的执行流程,本发明的具体执行流程如下: 创建文件阶段为了直观地说明在文件系统创建文件阶段时各模块的作用,如图3所示,当用户发出创建文件/dl/fl请求时,流程如下:首先,名字映射模块进行工作,在该模块中完成对/dl/fl的全路径分解,然后把全路径分解后的结果写进名字映射表,同时把结果发送给目录结构模块中的结构化编码;然后,名字映射表完成名字映射操作,把新生成的全路径名(fullname)交给哈希函数计算哈希值,客户端根据哈希值得到要访问的元数据服务器的编号(mds id),该元数据服务器根据客户端的请求完成相应操作,返回元数据信息(inode号、mds id及权限值)给目录结构模块,并应答客户端;最后,目录结构模块根据名字映射模块以及元数据服务器发来的信息制作目录结构及权限查询表。 访问文件阶段为了说明客户端访问文件时该发明中各模块的作用,如图4所示,当用户访问文件name2时,流程如下:
首先,名字映射模块对name2进行全路径名分解,并通过查询名字映射表,完成重命名到原始名的映射,生成新的全路径名fullname ;其次,传统哈希策略模块对fullname计算哈希值,客户端获取元数据服务器编号(mds id),并向元数据服务器请求要访问文件name2的元数据;然后,元数据服务器查询目录结构模块中的目录结构及权限查询表,并通过权限认证判断客户端是否具有对该文件的访问权限。最后,经过权限认证,如果用户对文件有访问权限,元数据服务器返回元数据信息给客户端;如果没有,则告知客户端无权限访问。


图1元数据管理方法及模块图2结构化编号的组成结构图3客户端创建文件图4客户端访问文件
具体实施例方式为了说明这种新的元数据管理方法,这里给出一些操作的实例。假设文件系统已经存在如下数据:/dl/fl;我们在文件系统中要建立目录/d2,并设置权限为rwxr_xr_x。过程如下:第一步,客户端首先发送请求,把全路径/d2进行分解,分解成根/和目录名d2 ;
第二步,查寻名字映射表,发现表中无d2,则在表中添加d2项,如表I所示,并对全路径进行哈希计算,算出元数据服务器编号(mds id)给客户端;根据/和d2进行编号,假设文件系统设定元数据服务器(mds)是2位编码,一级目录是2位编码,二级目录是3位编码,三级目录是4位编码,目录级数是3位编码,则编码结果如表2所示;第三步,客户端向指定的元数据服务器发送建立/d2的请求;第四步,元数据服务器完成建立元数据任务,将/d2元数据信息inode号以及执行权限发给目录结构及权限查询表,并回复客户端执行成功;第五步,目录结构服务器更新表2,将inode号和权限值填入表中。表I
权利要求
1.本发明提出“一种应用于随机存取的元数据管理方法及模块”,该发明通过哈希函数将元数据均衡地分配到各台元数据服务器中,同时增加两个功能模块,一个模块是名字映射模块,该模块完成重命名到原始名的转换;另一个模块是目录结构模块,该模块通过对每个文件或目录进行结构化编号,保存了目录与目录、目录与文件间的关联信息,这两个新功能模块帮助解决了传统哈希策略遇到的问题。本发明的特征在于: (1)本发明提出名字映射模块,提供重命名到原始名字的映射服务,分布式文件系统在重命名操作时无需迁移大量元数据。
(2)本发明提出目录结构模块,提供对文件或目录的结构化编号,编号中包含了目录与目录、目录与文件的 关联信息,避免了传统哈希策略中元数据服务器间的频繁通信。
全文摘要
本发明提出一种应用于随机存取的元数据管理方法及模块,该发明通过哈希函数将元数据均衡地分配到各台元数据服务器中,同时增加两个功能模块,一个模块是名字映射模块,该模块完成重命名到原始名的转换;另一个模块是目录结构模块,该模块通过对每个文件或目录进行结构化编号,保存了目录与目录、目录与文件间的关联信息,这两个新功能模块帮助解决了传统哈希策略遇到的问题。
文档编号G06F17/30GK103218433SQ20131012969
公开日2013年7月24日 申请日期2013年4月15日 优先权日2013年4月15日
发明者陆月明, 解晓伟, 袁玉宇, 及莹 申请人:北京邮电大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1