元数据管理

来源:互联网 发布:qq农场魔法池数据 编辑:程序博客网 时间:2024/05/03 07:04

在分布式存储架构中,为了提高系统性能,更有效的管理元数据和文件数据,通常把元数据的处理和文件数据的访问分离开来,由元数据管理服务器(MDS)管理文件系统命名空间和文件各种属性,并负责与客户端交互,提供文件访问权限和文件存储位置等信息,同时由存储服务器负责存储文件,并直接处理客户端对文件数据的各种读写请求。


元数据管理面临的挑战

当目录规模扩展到数十亿时,仍能有效维护此类目录。

当分布式文件系统规模达到万亿文件时,仍能提供高性能的元数据处理。现有的同步机制极大限制了元数据修改操作的并发性。

有效平衡MDS工作负载。大规模并发随机访问带来的元数据缓存的低使用率(命中率低)和MDS之间的负载不均衡问题。


元数据管理系统架构发展

传统文件系统,元数据和文件数据保存在一个计算机上,并由同一个文件系统管理,能高效管理GB规模的文件。

而随着数据规模的不断激增,单一节点的存储能力已经不同满足需求,分布式存储与分布式文件系统随之产生。在这种架构下,元数据单独由MDS服务器管理,文件数据由另外的存储器存储,两种数据之间通过网络交互,使得用户能独立直接访问两种服务器。其中MDS服务器可以是单独一台计算机或者多台计算机组成的服务器集群。

在实际使用过程中,大规模并发访问会导致MDS集群的负载不均衡,为了提高系统性能和可扩展性,元数据的迁移不可避免。但是由于元数据是保存在MDS的硬盘上,迁移会造成大量的硬盘I/O,严重影响服务质量。因此,提出一种新的元数据管理系统架构,即元数据处理与元数据存储相分离,其中MDS用来与客户端交互,处理用户对元数据的各种请求。而元数据的存储就由面向对象的存储设备来负责。这样就将数据迁移控制在缓存数据移动,不涉及硬盘I/O,极大的提高了系统性能。


元数据管理技术

元数据的管理策略主要分为两大类:子树分割(Subtree Partitioning)和哈希(Hashing)。

子树分割策略把分布式文件系统的全局命名空间和目录层次按照一定策略分割成多个子树,每个子树分布到一个特定的MDS中。

哈希策略则利用文件或目录的某个特征值来计算hash值,并根据这些hash值把对应的文件或目录分布到MDS中。


静态子树分割只有在修改系统配置之后,子树才会在MDS中重新分布。实现简单,充分利用存储局部性,但是权限验证耗时长,不能动态负载。

针对这些缺点,Weil等人在2004年提出了动态子树分割策略。该策略将命名空间的不同子树委托授权给不同的MDS服务器,方法更灵活,分割粒度也相应较小,可以通过子树迁移来实现动态负载均衡。


静态哈希策略分布粒度更小,负载分布更均衡,且并发度更高。但是缺点也很明显:元数据的均匀分布使得系统的一致性很难维护,目录重命名或者MDS集群的变动会导致规模庞大的元数据迁移。

LH(Lazy Hybrid)策略,它保留了目录层次结构,以便于提供文件系统语义,同时采用文件的全路径名称进行hash计算,从而把文件分布到不同的MDS中。它在保留子树分割和静态哈希的优点同时,也不可避免的包含了二者的缺点。








0 0