当前位置: 首页 > 专利查询>浙江大学专利>正文

一种分布式文件系统元数据分配方法技术方案

技术编号:4116527 阅读:295 留言:0更新日期:2012-04-11 18:40
本发明专利技术公开了一种分布式文件系统元数据分配方法。该方法将文件系统的目录作为哈希的基本单元,采用可扩展的哈希方法来分配元数据到各个元数据服务器,使得客户端可以定位元数据的位置,元数据访问效率高,元数据分布均匀,负载均衡;同时保持了目录的存储局部性,方便预取的实现,提高访问效率。赋给目录唯一不改变的标识符,避免了哈希路径名引起的元数据迁移,提高系统性能;元数据服务器加入或退出不会引起大量的元数据重新分布,最大限度地减少元数据迁移,可扩展性高。

【技术实现步骤摘要】

本专利技术涉及分布式文件系统领域,更具体地,涉及针对集群式的元数据服务器 (Metadata Server : MDS)的。随着对象存储设备(Object Storage Device : OSD)的出现,为构建PB(IO的15次方字节)程度的大规模的分布式文件系统提供了基础。为了更有效地管理基于OSD的大 规模分布式文件系统,常常将文件的元数据与数据访问分离,由独立的元数据服务器集 群管理文件系统的所有元数据,而OSD组成的集群则专门用来管理、存储文件。数据图 1给出了此种情况下分布式文件系统的结构。元数据是描述数据的数据,文件系统的元数据包括文件的基本属性信息和目录 结构信息。虽然它的大小只占整个系统大小的小部分,但是元数据的操作非常频繁, 占整个文件系统操作的50%多,使得元数据管理非常重要。 一种好的元数据分配方法 可以使系统获得高性能和高可扩展性。现有的方法主要有静态子树分块(Static Subtree Partition)、动态子树分块(Dynamic Subtree Partition)、哈希(Hash)等。 静态子树分块方法将整个文件系统划分成若干目录子树,分配子树给不同的 MDS。这种方法的优点是元数据的分配简单,便于开发目录的存储局部性,缺点是扩展 性差,且不能有效地平衡负载,容易引起热点(hot-pot)问题。 动态子树分块方法在静态子树分块方法的基础上,采用动态分解子树的方法平 衡负载,即当某棵子树结构过大或是访问比较频繁时,动态的分解该棵子树成两棵或多 棵子树,并将分解后的子树迁移到其他MDS,从而平衡负载。但是,这种方法并没有解 决可扩展性问题,同时也存在大量元数据迁移现象 哈希方法基于一些唯一的文件标识符(例如索引节点号、路径名)的哈希值分 布元数据。该方法的优点是能够直接计算出元数据的位置,元数据被均匀地分布到各个 MDS从而可以获得较好的负载均衡,但是它失去了文件系统目录的存储局部性,使得路 径遍历消耗很大。而且,当文件(或目录)重命名或者元数据服务器增加或减少时,其哈 希值相应改变,这将导致大量的元数据迁移,使得系统性能急剧下降。 鉴于现有的元数据分配方法无法满足分布式文件系统对元数据服务器集群高性 能、高扩展性的需求,我们提出了一种基于目录的可扩展哈希方法来分配元数据。该方 法继承了哈希方法原有的优点——负载均衡、查询速度快,并且可以保持目录局部性、 允许目录名修改且不引起数据迁移、元数据服务器增加或加入只会引起少量的元数据迁 移,大大提高了可扩展性。
技术实现思路
本专利技术的目的在于提供一种新的、高效的、可扩展的元数据分配方法,该方法 将文件系统的目录作为哈希的基本单元,采用可扩展的哈希方法来分配元数据到各个元
技术介绍
4数据服务器。 将目录作为哈希的基本单元,可以保持目录的存储局部性,方便进行预取,提 高系统的效率。在创建目录时,赋给每个目录唯一的不改变的标识符,以该标识符的 哈希值为依据分配元数据到不同的元数据服务器。这样就避免了哈希路径名所遇到的问 题——修改路径名时,改变了哈希值,导致元数据迁移。 采用对元数据服务器集群的节点数进行取模运算的普通哈希算法不能满足分布 式文件系统的可扩展性要求。当元数据服务器加入、退出(或失效)时,哈希值改变, 导致元数据大量迁移,引起极大的网络消耗。为了解决这个问题,我们采用可扩展的哈 希方法,首先,我们将目录标识符以及元数据服务器的标识符使用同一哈希函数[Addr二 hash(key),其中key值取值比较大的常数];然后,根据哈希值的大小进行分配。由于采 用的key值与元数据服务器集群的服务器数无关,元数据服务器的加入或退出不会造成大 量元数据的重新分配,只会影响少量元数据的分配。其具体实施方式如图2所示。 综上所述,采用基于目录的可扩展哈希方法分配元数据,可以有如下优点 (l)客户端可以定位元数据的位置,元数据访问效率高。 (2)元数据分布均匀,负载均衡。 (3)将目录作为哈希的基本单元,保持目录的存储局部性,方便预取的实现,提 高访问效率。 (4)赋给目录唯一不改变的标识符,避免了哈希路径名引起的元数据迁移,提高 系统性能。 (5)元数据服务器加入或退出不会引起大量的元数据重新分布,最大限度地减少 元数据迁移,可扩展性高。附图说明 图1为分布式文件系统的结构 图2为文件系统基于目录的分解演示 图3为可扩展哈希方法的元数据分配 图4为元数据服务器退出时元数据的重分配 图5为元数据服务器加入时元数据的重分配具体实施例方式为了使本专利技术的目的、技术方案及优点更加清楚,以下结合附图说明及具体实 施例对本专利技术作进一步地详细描述 图l是分布式文件系统结构,整个系统由三部分构成客户端、元数据服务器 集群以及OSD集群。元数据服务器集群主要负责管理元数据、提供给客户统一的命名空 间,OSD集群主要负责存储文件的数据和元数据。当客户操作文件时,首先,根据元数 据分配原则定位到负责该文件的元数据服务器,发送请求给该台元数据服务器;元数据 服务器在接收的请求后,对该文件的元数据进行相应的操作(例如创建、查询、修改、 删除等),返回给客户该文件的标识符;然后,客户以文件的标识符为输入参数与OSD 集群通信,进行具体的文件IO操作。 以下对本专利技术所涉及到关键过程进行详细的阐述 (1)文件系统的分解 文件系统的命名空间是以目录树的结构组织的,我们以目录为标准,把目录包 含的第一层文件或子目录作为哈希的基本单元(DHU: Directory-based Hash Unit),每个 DHU对应一个目录。同一个DHU中文件或子目录的元数据将被分配到同一个元数据服 务器中,目录树中第二层以及以下层的元数据将被分配到其他元数据服务器,即每一个 DHU只包含其子目录的元数据信息,但是不包含子目录下的内容。如图2所示。在目 录dl下有3层,第一层的文件和目录都属于DHU1,该目录树有dl, d2, d3三个目录, 分别对应有三个DHU: DHU1, DHU2, DHU3。 (2)元数据的分配 元数据服务器集群中的每个节点都有其唯一标识的ID(例如IP地址),每个 DHU都有我们赋给的唯一的不改变的标识符DHU-ID。 首先,我们使用同一哈希函数哈希节点ID和DHU-ID到0 2的圆上(范围 的大小取决于文件系统的规模,应避免不同的元数据服务器节点哈希到相同的虚拟位置 上);然后从DHU-ID的哈希值映射到圆上的位置开始顺时针查找,将DHU中包含的元 数据分配到找到的第一个服务器上;如果超过232仍然找不到服务器,则分配到第一台元 数据服务器上。如图3所示,DHU 1顺时针查找到MDS1,其元数据被分配到MDS 1 ; DHU 2顺时针查找到MDS 4,于是其元数据被分配到MDS 4 ;依次类推 另外,使用一般的哈希算法哈希元数据服务器,元数据服务器在圆上的映射地 点分布不均匀。因此,我们采用虚拟元数据服务器的思想,为每个物理元数据服务器在 圆上分配多个虚拟元数据服务器,这样就可以拟制分布不均匀,获得更好的负载均衡, 并最大限度的减小元数据服务器增减时的元数据重新分配。 (3)元数据的访问 对元数据的访问主要有创建、删本文档来自技高网
...

【技术保护点】
一种分布式文件系统元数据分配方法,所述分布式文件系统包括客户端、元数据服务器集群以及OSD集群,其特征在于:  创建目录,将文件系统的目录作为哈希的基本单元;  采用可扩展的哈希方法进行元数据分配,在所述可扩展的哈希方法中,首先,将目录标识符以及元数据服务器的标识符使用同一哈希函数Addr=hash(key),其中key值取值比较大的常数,然后,根据哈希值的大小进行分配。

【技术特征摘要】
一种分布式文件系统元数据分配方法,所述分布式文件系统包括客户端、元数据服务器集群以及OSD集群,其特征在于创建目录,将文件系统的目录作为哈希的基本单元;采用可扩展的哈希方法进行元数据分配,在所述可扩展的哈希方法中,首先,将目录标识符以及元数据服务器的标识符使用同一哈希函数Addr=hash(key),其中key值取值比较大的常数,然后,根据哈希值的大小进行分配。2. 如权利要求1所述的分布式文件系统元数据分配方法,其特征在于在所述创建目录阶段,赋给每个目录唯一的不改变的标识符,以该标识符的哈希值为依据分配元数据到不同的元数据服务器。3. 如权利要求1或2所述的分布式文件系统元数据分配方法,其特征在于所述分布式文件系统在进行分解时,以目录为标准,把目录包含的第一层文件或子目录作为哈希的基本单元,每个所述哈希的基本单元对应一个目录,同一个所述哈希的基本单元中文件或子目录的元数据将被分配到同一个元数据服务器中,目录树中第二层以及以下层的元数据将被分配到其他元数据服务器。4. 如权利要求1或2所述的分布式文件系统元数据分配方法,其特征在于所述分布式文件系统在进行元数据分配时,元数据服务器集群中的每个节点都有其唯一标识的ID,每个所述哈希的基本单元都有唯一的不改变的标识符DHU-ID,首先,使用同一哈希函数哈希节点ID和DHU-ID到0 232的圆上;然后从DHU-ID的哈希值映射到圆上的位置开始顺时针查找,将所述哈希的基本单元中包含的元数据分配到找到的第一个服务器上;如果超过232仍然找不到服务器,则分配到第一台元数据服务器上。5. 如权利要求4所述的分布式文件系统元数据分配方法,其特征在于所述圆的范围大小取决于文件系统的规模,应避免不同的元数据服务器节点哈希到相同的虚拟位置上。6. 如权利要求1或2所述的分布式文件系统元数据分配方法,其特征在于所述分布式文件系统在创建文件或目录时,按以下步骤进行,第一步,接收请求的服务器解析目录/dl/d2/,获取d2对应的哈希基本单位的标识符DHU-ID,计算该DHU-ID的哈希值;第二步,根据DHU-ID的哈希值查找管理该哈希基本单位下元数据的第二元数据服务器,并发送创建文件或目录的请求给该第二元数据服务器;第三步,该第二元数据服务器接收到请求后,在目录d2下添加相应的文件或目录的元数据,并返回给用户文件或目录的标识符;第四步该第二元数据服务器发送更新目录d2元数据的请求给d2的父目录dl所对应的第一元数据服务器。7. 如权利要求1或2所述的分布式文件系统元数据分配...

【专利技术属性】
技术研发人员:尹建伟张聪萍吴朝晖邓水光李莹吴健
申请(专利权)人:浙江大学
类型:发明
国别省市:86[]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1