一种分布式文件系统元数据信息读取方法及系统与流程

文档序号:12720190阅读:205来源:国知局
一种分布式文件系统元数据信息读取方法及系统与流程

本发明涉及元数据读取技术领域,特别涉及一种分布式文件系统元数据信息读取方法及系统。



背景技术:

分布式文件系统元数据信息存储了文件的所有属性信息以及数据存储位置,这些元数据信息都存储到inode,即索引节点中,每个文件都有唯一的inode存储元数据信息,inode会有唯一的inode号作为inode的标识。

众所周知,分布式文件系统有元数据服务、数据服务和客户端三大组成部分。对于分布式文件系统的文件IO操作,首先要获取文件元数据信息,然后再去操作数据。元数据信息存储了文件的所有属性信息以及数据存储位置,这些元数据信息都存储到inode中,每个文件都有唯一的inode存储元数据信息。当然,目录作为一种具有目录信息的特殊文件,也是如此。inode会有唯一的inode号作为inode的标识。文件系统中一个文件元数据信息读取,一般有两种方式:一种是依据inode存储位置获取inode信息;第二种是通过父目录元数据信息去读取子文件元数据信息。前者主要用于本地文件系统,后者主要用于分布式文件系统。而后者最大的弊端是无法直接依据文件inode号直接获取元数据信息。这就导致文件系统无法充分使用inode号去优化元数据机制,从而导致元数据信息读取速度较低。

综上所述,如何提高分布式文件系统元数据信息读取速度是本领域技术人员目前需要解决的技术问题。



技术实现要素:

有鉴于此,本发明的目的在于提供一种分布式文件系统元数据信息读取方法及系统,可以显著提高分布式文件系统元数据信息读取速度。其具体方案如下:

一种分布式文件系统元数据信息读取方法,包括:

获取待读取元数据的inode号的路径信息;

根据所述路径信息,在数据库中查找相应的inode信息;

根据所述inode信息,读取所述待读取元数据;

其中,所述路径信息为预先存储的所述待读取元数据相应的inode路径。

优选的,所述inode号均存储在所述数据库中。

优选的,所述数据库为键值存储数据库。

优选的,获取待读取元数据的inode号的路径信息包括:

在所述键值存储数据库中,根据key=待读取元数据的inode号的值,得到所述路径信息。

优选的,所述路径信息包括所述待读取元数据inode号的父目录inode号和祖先目录inode号。

优选的,根据所述路径信息,在数据库中查找相应的inode信息包括:

判断系统缓存中是否存在所述父目录inode号对应的所述inode信息,若是,则获取所述inode信息,若否,则判断所述系统缓存中是否存在所述祖先目录inode号对应的所述inode信息。

本发明还公开了一种分布式文件系统元数据信息读取系统,包括:

路径信息获取模块,用于获取待读取元数据的inode号的路径信息;

Inode信息查找模块,用于根据所述路径信息,在数据库中查找相应的inode信息;

元数据读取模块,用于根据所述inode信息,读取所述待读取元数据;

其中,所述路径信息为预先存储的所述待读取元数据相应的inode路径。

本发明公开了一种分布式文件系统元数据信息读取方法,包括:获取待读取元数据的inode号的路径信息;根据所述路径信息,在数据库中查找相应的inode信息;根据所述inode信息,读取所述待读取元数据;其中,所述路径信息为预先存储的所述待读取元数据相应的inode路径。可见,本发明通过预先记录元数据inode号的路径信息,在需要读取元数据时,根据该路径信息在系统缓存中查找父目录和祖先目录的inode号,从而读取相应的元数据,从而显著提高了分布式文件系统元数据信息读取速度。

本发明还公开了一种分布式文件系统元数据信息读取系统,具有与上述方法相同的技术效果,在此不再赘述。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。

图1为本发明实施例公开的一种分布式文件系统元数据信息读取方法的流程示意图;

图2为本发明实施例公开的一种分布式文件系统元数据信息读取系统的结构示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

本发明实施例公开了一种分布式文件系统元数据信息读取方法,参见图1所示,包括步骤S1至S3,其中:

步骤S1:获取待读取元数据的inode号的路径信息。其中,上述路径信息为预先存储的上述待读取元数据相应的inode路径。

每个文件inode号,会存储到指定位置,可以是64K个inode的路径信息存储到一个指定位置,依次类推。

上述inode号可以均存储在数据库中,或存储在指定inode位置。

为了提高查找效率,本发明可使用k-v数据库形式,即采用键值存储数据库,存储路径信息。当然,也可以使用其他数据库储存路径信息

在一种具体的将路径信息以k-v数据库形式储存的实施例中,获取待读取元数据的inode号的路径信息包括:

根据inode号,在键值存储数据库中,利用键值检索指令key=inode,此处指令inode号为待读取元数据的inode号,即key=待读取元数据的inode号的值,得到相应的值,该值即为上述路径信息。

分布式系统大多通过父目录元数据信息去读取子文件元数据信息,因此子文件元数据信息相应的inode号不一定能够直接获得相应的inode值,因此上述路径信息包括上述待读取元数据inode号的父目录inode号和祖先目录inode号。

步骤S2:根据上述路径信息,在数据库中查找相应的inode信息。

在上述将路径信息以k-v数据库形式储存的实施例中,根据路径信息,在数据库中查找相应的inode信息包括:

由于在系统缓存中查找数据速度比根据父目录读取子目录数据更快,因此通过查找系统系统缓存中是否存在相应的与inode信息对应inode号,即判断系统缓存中是否存在上述父目录inode号对应的上述inode信息,若是,则获取上述inode信息,若否,则判断上述系统缓存中是否存在上述祖先目录inode号对应的上述inode信息。

由于数据库操作延时很低,获取父目录的inode号后去缓存中检查是否有父目录inode信息,有的话直接从父目录获取本inode信息;没有的话再去复现目录找,直到找到缓存中有的祖先inode信息去获取子以及子孙的inode信息。

步骤S3:根据上述inode信息,读取上述待读取元数据。

本发明的提供的思路为:在文件元数据存储的时候,记录文件路径信息到指定存储位置(可以是指定inode),路径信息保存了父目录以及祖先目录的inode号,每个信息已kv数据库形式存储。当需要依据inode号去获取inode信息时,直接到存储位置以key=inode号获取对应value值,即路径信息,由于数据库操作延时很低,获取父目录的inode号后去缓存中检查是否有父目录inode信息,有的话直接从父目录获取本inode信息;没有的话再去祖先目录找,直到找到缓存中有的祖先inode信息去获取子以及子孙的inode信息。

可以理解的是,使用SSD固态硬盘可以进一步提高查找速度,即进一步显著提高分布式文件系统元数据信息读取速度。

在一种具体的实施方案中,读取元数据的全部过程如下:

1)元数据服务进程需要依据inode号获取inode信息。

2)依据inode号去存储inode号路径信息的位置,获取key=inode号的value信息,value值即存储路径。

3)查找缓存中是否有value中父目录inode号对应inode信息;否,继续查找祖先inode号是否在缓存中有对应inode信息。

4)直到找到inode信息去获取路径上目录inode号的元数据信息。

本发明还公开了一种分布式文件系统元数据信息读取系统,参见图2所示,包括路径信息获取模块11、Inode信息查找模块12和元数据读取模块13,其中:

路径信息获取模块11,用于获取待读取元数据的inode号的路径信息。其中,上述路径信息为预先存储的上述待读取元数据相应的inode路径。

每个文件inode号,会存储到指定位置,可以是64K个inode的路径信息存储到一个指定位置,依次类推。

上述inode号可以均存储在数据库中,或存储在指定inode位置。

为了提高查找效率,本发明可使用k-v数据库形式,即采用键值存储数据库,存储路径信息。当然,也可以使用其他数据库储存路径信息

在一种具体的将路径信息以k-v数据库形式储存的实施例中,获取待读取元数据的inode号的路径信息包括:

根据inode号,在键值存储数据库中,利用键值检索指令key=inode,此处指令inode号为待读取元数据的inode号,即key=待读取元数据的inode号的值,得到相应的值,该值即为上述路径信息。

分布式系统大多通过父目录元数据信息去读取子文件元数据信息,因此子文件元数据信息相应的inode号不一定能够直接获得相应的inode值,因此上述路径信息包括上述待读取元数据inode号的父目录inode号和祖先目录inode号。

Inode信息查找模块12,用于根据上述路径信息,在数据库中查找相应的inode信息。

在上述将路径信息以k-v数据库形式储存的实施例中,根据路径信息,在数据库中查找相应的inode信息包括:

由于在系统缓存中查找数据速度比根据父目录读取子目录数据更快,因此通过查找系统系统缓存中是否存在相应的与inode信息对应inode号,即判断系统缓存中是否存在上述父目录inode号对应的上述inode信息,若是,则获取上述inode信息,若否,则判断上述系统缓存中是否存在上述祖先目录inode号对应的上述inode信息。

由于数据库操作延时很低,获取父目录的inode号后去缓存中检查是否有父目录inode信息,有的话直接从父目录获取本inode信息;没有的话再去复现目录找,直到找到缓存中有的祖先inode信息去获取子以及子孙的inode信息。

元数据读取模块13,用于根据上述inode信息,读取上述待读取元数据。

可以理解的是,使用SSD固态硬盘可以进一步提高查找速度,即进一步显著提高分布式文件系统元数据信息读取速度。

最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

以上对本发明所提供的一种分布式文件系统元数据信息读取方法及系统进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1