一种提高大型分布式文件系统元数据访问效率的方法与流程
- 国知局
- 2024-08-05 12:12:18
本发明涉及数据管理,尤其涉及一种提高大型分布式文件系统元数据访问效率的方法。
背景技术:
1、文件系统通常为用户提供分层的命名空间(即目录树)来管理文件。在目录树中,每个文件/目录都拥有元数据信息。现代数据中心通常包含数百甚至数千亿个文件,使用一个超大规模的文件系统来管理所有文件给元数据服务带来了严峻的挑战。首先,随着目录树的扩展和工作负载的多样性,实现兼具元数据高本地性和良好的负载平衡是非常困难的。其次,路径解析的延迟可能很高,因为在非常大规模的文件系统中目录树层级一般会很深。第三,客户端元数据缓存的一致性维护开销变得巨大,因为超大规模的文件系统通常需要为大量并发客户端服务。
2、业界提供很多技术来应对这三个挑战。目录分区技术将文件系统目录树按一定规则划分多个子树,然后打散到多个元数据服务器,解决了单元数据服务器的性能瓶颈,实现了元数据服务的负载均衡,facebook的tectonic文件系统,hopsfs和ceph文件系统皆采用了该技术,但目录分区技术无法兼具元数据服务的负载均衡和高本地性。
3、为了减少递归式路径解析的巨大延迟,通用技术是通过客户端缓存或者路径哈希的方式,前者存在根热点瓶颈问题,后者舍弃了文件系统扫描功能;目前业界一般采用基于租约的客户端缓存机制,该机制在indexfs,locofs,nfsv4及pvfs等系统中广泛应用,但因为租约到期后的缓存更新,该机制容易造成负载不均衡。
4、因此,需要提供一种提高大型分布式文件系统元数据访问效率的方法来解决上述技术问题。
技术实现思路
1、为解决上述之一技术问题,本发明提供的一种提高大型分布式文件系统元数据访问效率的方法,运用于分布式架构的文件系统中,包括元数据解耦分区管理环节、可预测文件路径构建环节和元数据目录协调缓存环节;其中,
2、元数据解耦分区管理环节:将目录的访问和内容元数据解耦,具体子步骤包括:元数据分解、元数据分组和元数据分区;
3、可预测文件路径构建环节:通过构建可预测文件路径,实现路径解析的并行化;具体子步骤包括:目录id创建、路径预测解析和路径并行查找;
4、元数据目录协调缓存环节:客户端优先缓存目录访问元数据,缓存命中将消除对根目录的查找请求;具体子步骤包括:客户端缓存目录和客户端缓存处理。
5、作为更进一步的解决方案,所述文件系统包括客户端和元数据服务器;其中,客户端面向用户提供全局共享的文件系统目录树,用户通过客户端提供的posix语义接口访问文件系统的服务;客户端面向文件系统的内部,将posix语义转换为专有文件系统协议,并访问文件系统的元数据和数据;文件系统提供一个或者多个元数据服务器;其中,文件系统的元数据服务由元数据服务器提供,元数据用于描述文件系统及其管理文件的寻址文件数据。
6、作为更进一步的解决方案,元数据分解:文件系统将元数据分解为访问元数据和内容元数据两个独立部分;其中,访问元数据用于记录访问的目录名,目录id和访问权限;内容元数据用于记录目录内容子项的条目列表和时间戳。
7、作为更进一步的解决方案,元数据分组:文件系统将相关元数据对象分组到同一个元数据服务器,将每个目录的内容元数据与其子目录的访问元数据和存储文件的元数据分成一组,从而使得目录树拆分为独立的以目录为单位的目录组。
8、作为更进一步的解决方案,元数据分区:文件系统对各目录组的目录id进行哈希,并通过目录id的哈希对各目录组进行哈希映射,从而将各目录组划分到不同的元数据服务器中。
9、作为更进一步的解决方案,目录id创建:文件系统按照创建规则生成全局唯一的目录id;创建规则:通过构建三元组<父目录id,目录名,目录名版本号>,并对该三元组进行加密散列来生成目录id;其中,目录名版本号根据预设的迭代规则进行更替。
10、作为更进一步的解决方案,路径预测解析:客户端通过使用路径或子路径的根目录来预测所有中间目录,预测中间目录通过解析中间目录的预测目录id进行;其中,客户端获取根目录的目录id和迭代规则,并通过迭代规则生成中间目录的预测目录名版本号,通过预测目录名版本号构建三元组并进行加密散列,生成中间目录对应的预测目录id;各目录名版本号按照预设迭代规则进行更替,逐步为路径或子路径构建所有中间目录的预测目录id。
11、作为更进一步的解决方案,路径并行查找:客户端通过预测目录id并行发送所有中间目录的查找请求,每个查找请求都将检查访问权限,并将预测目录id与元数据服务器中存储的目录id进行比较;若预测目录id与目录id不匹配,则元数据服务器查找请求将向客户端返回真实的目录id;否则,客户端无需主动获取目录id即完成中间目录的正常访问。
12、作为更进一步的解决方案,客户端缓存目录:客户端缓存目录组的访问元数据;并基于文件系统的层次结构以树结构组织缓存条目,将该树结构的叶条目链接为最近最少使用列表;当缓存替换发生时,最近最少使用的叶条目将被逐出,以确保根目录驻留缓存。
13、作为更进一步的解决方案,客户端缓存处理:设置一个中央重命名协调器协调集群重命名操作带来的影响,每一次重命名操作会联系中央重命名协调器为每个目录重命名操作分配一个递增的版本号,然后将重命名消息及其版本号广播到元数据服务器,元数据服务器在按版本排序的invlist列表中维护重命名信息;
14、客户端在路径解析期间,优先利用本地缓存条目而不主动使其失效;每个客户端都有一个客户端版本号,用于表示本地缓存条目已在客户端版本号之前通过重命名操作更新;当客户端与元数据服务器联系时,客户端会将请求连同路径名和客户端版本号一起发送至对应元数据服务器;
15、元数据服务器将通过将路径名与invlist列表中的重命名操作进行比较来验证客户端路径名的有效性;在验证时,只需要比较请求的客户端版本号和invlist列表中最新版本号所对应的目录重命名操作是否相同;若相同,则元数据服务器判定请求的路径名有效,接收请求并返回处理结果;若不同,则元数据服务器判定请求的路径名无效,中止请求并返回目录重命名操作更新信息;客户端更新本地缓存条目和客户端版本号。
16、与相关技术相比较,本发明提供的一种提高大型分布式文件系统元数据访问效率的方法具有如下有益效果:
17、本发明首先通过元数据解耦分区管理环节将每个目录的访问元数据与其父目录分组,将内容元数据与其子目录分组,从而实现元数据的高局部性;其次通过可预测文件路径构建环节为每个目录分配一个可预测的id,客户端可以推测文件全路径里所有中间目录的id,然后为路径上的每一个单元并行发送查找操作,大大减少了元数据操作的延迟;最后通过元数据目录协调缓存环节在客户端缓存目录的访问型元数据,以就地解决对根目录的频繁查找,并且在元数据服务器上非主动地使缓存条目无效,从而缓解根热点并实现了可扩展的路径解析。
技术特征:1.一种提高大型分布式文件系统元数据访问效率的方法,运用于分布式架构的文件系统中,其特征在于,包括元数据解耦分区管理环节、可预测文件路径构建环节和元数据目录协调缓存环节;其中,
2.根据权利要求1所述的一种提高大型分布式文件系统元数据访问效率的方法,其特征在于,所述文件系统包括客户端和元数据服务器;其中,客户端面向用户提供全局共享的文件系统目录树,用户通过客户端提供的posix语义接口访问文件系统的服务;客户端面向文件系统的内部,将posix语义转换为专有文件系统协议,并访问文件系统的元数据和数据;文件系统提供一个或者多个元数据服务器;其中,文件系统的元数据服务由元数据服务器提供,元数据用于描述文件系统及其管理文件的寻址文件数据。
3.根据权利要求2所述的一种提高大型分布式文件系统元数据访问效率的方法,其特征在于,元数据分解:文件系统将元数据分解为访问元数据和内容元数据两个独立部分;其中,访问元数据用于记录访问的目录名,目录id和访问权限;内容元数据用于记录目录内容子项的条目列表和时间戳。
4.根据权利要求3所述的一种提高大型分布式文件系统元数据访问效率的方法,其特征在于,元数据分组:文件系统将相关元数据对象分组到同一个元数据服务器,将每个目录的内容元数据与其子目录的访问元数据和存储文件的元数据分成一组,从而使得目录树拆分为独立的以目录为单位的目录组。
5.根据权利要求4所述的一种提高大型分布式文件系统元数据访问效率的方法,其特征在于,元数据分区:文件系统对各目录组的目录id进行哈希,并通过目录id的哈希对各目录组进行哈希映射,从而将各目录组划分到不同的元数据服务器中。
6.根据权利要求5所述的一种提高大型分布式文件系统元数据访问效率的方法,其特征在于,目录id创建:文件系统按照创建规则生成全局唯一的目录id;创建规则:通过构建三元组<父目录id,目录名,目录名版本号>,并对该三元组进行加密散列来生成目录id;其中,目录名版本号根据预设的迭代规则进行更替。
7.根据权利要求6所述的一种提高大型分布式文件系统元数据访问效率的方法,其特征在于,路径预测解析:客户端通过使用路径或子路径的根目录来预测所有中间目录,预测中间目录通过解析中间目录的预测目录id进行;其中,客户端获取根目录的目录id和迭代规则,并通过迭代规则生成中间目录的预测目录名版本号,通过预测目录名版本号构建三元组并进行加密散列,生成中间目录对应的预测目录id;各目录名版本号按照预设迭代规则进行更替,逐步为路径或子路径构建所有中间目录的预测目录id。
8.根据权利要求7所述的一种提高大型分布式文件系统元数据访问效率的方法,其特征在于,路径并行查找:客户端通过预测目录id并行发送所有中间目录的查找请求,每个查找请求都将检查访问权限,并将预测目录id与元数据服务器中存储的目录id进行比较;若预测目录id与目录id不匹配,则元数据服务器查找请求将向客户端返回真实的目录id;否则,客户端无需主动获取目录id即完成中间目录的正常访问。
9.根据权利要求8所述的一种提高大型分布式文件系统元数据访问效率的方法,其特征在于,客户端缓存目录:客户端缓存目录组的访问元数据;并基于文件系统的层次结构以树结构组织缓存条目,将该树结构的叶条目链接为最近最少使用列表;当缓存替换发生时,最近最少使用的叶条目将被逐出,以确保根目录驻留缓存。
10.根据权利要求9所述的一种提高大型分布式文件系统元数据访问效率的方法,其特征在于,客户端缓存处理:设置一个中央重命名协调器协调集群重命名操作带来的影响,每一次重命名操作会联系中央重命名协调器为每个目录重命名操作分配一个递增的版本号,然后将重命名消息及其版本号广播到元数据服务器,元数据服务器在按版本排序的invlist列表中维护重命名信息;
技术总结本发明提供了一种提高大型分布式文件系统元数据访问效率的方法,涉及数据管理技术领域。本发明首先通过元数据解耦分区管理环节将每个目录的访问元数据与其父目录分组,将内容元数据与其子目录分组,从而实现元数据的高局部性;其次通过可预测文件路径构建环节为每个目录分配一个可预测的ID,客户端可以推测文件全路径里所有中间目录的ID,然后为路径上的每一个单元并行发送查找操作,大大减少了元数据操作的延迟;最后通过元数据目录协调缓存环节在客户端缓存目录的访问型元数据,以就地解决对根目录的频繁查找,并且在元数据服务器上非主动地使缓存条目无效,从而缓解根热点并实现了可扩展的路径解析。技术研发人员:王宁,曹国栋,欧伟,钟吉林,王皓,董博受保护的技术使用者:四川省华存智谷科技有限责任公司技术研发日:技术公布日:2024/8/1本文地址:https://www.jishuxx.com/zhuanli/20240802/261533.html
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 YYfuon@163.com 举报,一经查实,本站将立刻删除。
下一篇
返回列表