一种元数据管理方法及装置与流程

文档序号:16528766发布日期:2019-01-05 10:34阅读:160来源:国知局
一种元数据管理方法及装置与流程

本发明涉及计算机应用技术领域,特别是涉及一种元数据管理方法及装置。



背景技术:

随着计算机技术的快速发展,处理器和存储器之间性能差距越来越大,特别是处理器和外存之间性能的差距尤为明显,这样使得i/o瓶颈问题日益突出。

为缓解i/o瓶颈问题,传统方法是通过在内存中设置磁盘文件缓存,减少访问外存的次数。

但数据爆炸式的增长对内存容量的需求越来越大,传统方法通过增加缓存容量带来的效益反而减少,而且内外存之间频繁交换数据会产生较大的开销,读写访问延迟较大。



技术实现要素:

本发明的目的是提供一种元数据管理方法及装置,以实现快速的元数据访问,减少元数据查找时间,减少数据拷贝,降低读写访问延迟。

为解决上述技术问题,本发明提供如下技术方案:

一种元数据管理方法,应用于分布式非易失文件系统中的任意一个元数据服务器,所述分布式非易失文件系统包括多个元数据服务器、多个存储服务器,每个存储服务器中均设置有一个或多个非易失内存,所有存储服务器的非易失内存映射成两个整体的内存空间,一个内存空间为分布式文件数据区,一个内存空间为分布式文件元数据区;所述方法包括:

接收针对第一元数据的访问请求;

对所述访问请求进行语义分析,确定所述访问请求的操作信息;

将所述访问请求放入与所述操作信息相关的待处理队列中,所述待处理队列中的所有访问请求具有相关性;

在达到设定的响应触发条件时,在所述分布式文件元数据区响应所述待处理队列中的所有访问请求。

在本发明的一种具体实施方式中,还包括:

确定所述分布式文件元数据区保存的每个元数据的热度;

将热度高于设定热度阈值的元数据的位置映射到多个元数据服务器上。

在本发明的一种具体实施方式中,还包括:

接收针对第二元数据的写入请求;

将所述第二元数据拆分成多个数据片;

根据每个存储服务器的负载程度,将所述第二元数据的多个数据片存放到不同的存储服务器的内存空间中。

在本发明的一种具体实施方式中,在所述接收针对第二元数据的写入请求之后,还包括:

确定当前接收到的写入请求是否达到设定个数阈值;

如果是,则执行所述将所述第二元数据拆分成多个数据片的步骤,并同时响应当前接收到的其他写入请求。

在本发明的一种具体实施方式中,在所述接收针对第二元数据的写入请求之后、所述将所述第二元数据拆分成多个数据片之前,还包括:

将所述第二元数据写入本地缓存;

在所述将所述第二元数据的多个数据片存放到不同的存储服务器的内存空间中之后,还包括:

将所述第二元数据的每个数据片的存放信息记录到日志中。

在本发明的一种具体实施方式中,所述日志记录有元数据多级分片索引。

一种元数据管理装置,应用于分布式非易失文件系统中的任意一个元数据服务器,所述分布式非易失文件系统包括多个元数据服务器、多个存储服务器,每个存储服务器中均设置有一个或多个非易失内存,所有存储服务器的非易失内存映射成两个整体的内存空间,一个内存空间为分布式文件数据区,一个内存空间为分布式文件元数据区;所述装置包括:

访问请求接收模块,用于接收针对第一元数据的访问请求;

操作信息确定模块,用于对所述访问请求进行语义分析,确定所述访问请求的操作信息;

访问请求放入模块,用于将所述访问请求放入与所述操作信息相关的待处理队列中,所述待处理队列中的所有访问请求具有相关性;

访问请求响应模块,用于在达到设定的响应触发条件时,在所述分布式文件元数据区响应所述待处理队列中的所有访问请求。

在本发明的一种具体实施方式中,还包括位置映射模块,用于:

确定所述分布式文件元数据区保存的每个元数据的热度;

将热度高于设定热度阈值的元数据的位置映射到多个元数据服务器上。

在本发明的一种具体实施方式中,还包括:

写入请求接收模块,用于接收针对第二元数据的写入请求;

元数据拆分模块,用于将所述第二元数据拆分成多个数据片;

元数据存放模块,用于根据每个存储服务器的负载程度,将所述第二元数据的多个数据片存放到不同的存储服务器的内存空间中。

在本发明的一种具体实施方式中,还包括个数确定模块,用于:

在所述接收针对第二元数据的写入请求之后,确定当前接收到的写入请求是否达到设定个数阈值;

如果是,则触发所述元数据拆分模块执行所述将所述第二元数据拆分成多个数据片的步骤,并同时响应当前接收到的其他写入请求。

应用本发明实施例所提供的技术方案,分布式非易失文件系统中每个存储服务器中设置有一个或多个非易失内存,所有非易失内存映射成两个整体的内存空间,一个内存空间为分布式文件数据区,一个内存空间为分布式文件元数据区,元数据服务器在接收到针对第一元数据的访问请求时,对访问请求进行语义分析,确定访问请求的操作信息,将访问请求放入与操作信息相关的待处理队列中,在达到设定的响应触发条件时,在所述分布式文件元数据区响应所述待处理队列中的所有访问请求。利用非易失内存进行元数据存储,可以实现快速的元数据访问,减少元数据的查找时间,减少数据拷贝,降低读写访问延迟,而且,通过语义分析将相关访问请求放入相同待处理队列中并发处理,减少了网络开销,提高了访问效率。

附图说明

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

图1为本发明实施例中一种分布式非易失文件系统的结构示意图;

图2为本发明实施例中一种元数据管理方法的实施流程图;

图3为本发明实施例中一种元数据管理装置的结构示意图。

具体实施方式

为了使本技术领域的人员更好地理解本发明方案,下面结合附图和具体实施方式对本发明作进一步的详细说明。显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

本发明的核心是提供一种元数据管理方法,该方法应用于分布式非易失文件系统中的任意一个元数据服务器,该分布式非易失文件系统包括多个元数据服务器、多个存储服务器,每个存储服务器中均设置有一个或多个非易失内存,所有存储服务器的非易失内存映射成两个整体的内存空间,一个内存空间为分布式文件数据区,一个内存空间为分布式文件元数据区。借助于非易失内存进行文件数据和元数据的存储,可以更好地利用非易失存储设备的随机访问性能。分布式文件数据区对应的内存空间的地址全局共享,被统一管理,分布式文件元数据区对应的内存空间的地址也是全局共享,被统一管理的。分布式非易失文件系统中所有元数据服务器、存储服务器等节点可看到一致的视图。同一地址指向同一个位置,该统一地址空间可字节寻址,由持久化的非易失内存组成。通过非易失内存对元数据进行高效管理,利用rdma(remotedirectmemoryaccess,远程直接数据存取)技术的直接访问特性对非易失内存中的元数据进行零拷贝读取。

如图1所示,为分布式非易失文件系统的结构示意图,包括元数据服务器1、元数据服务器2,存储服务器1、存储服务器2,每个存储服务器中设置有两个非易失内存,所有非易失内存映射成两个整体的内存空间,一个内存空间为分布式文件数据区,一个内存空间为分布式文件元数据区,两个内存空间均具有分布式、高可靠、持久化、统一地址空间、内存存储等特性。元数据服务器可以将文件数据、文件元数据等存储至存储服务器的非易失内存,同时可直接访问非易失内存读取文件,执行相应的i/o操作。支持多用户、并发访问。

另外,如图1所示,元数据服务器包括元数据接口和分布式锁接口,元数据接口作为元数据操作入口,分布式锁接口作为锁操作入口,二者相互影响。元数据访问请求到来后会进行关联分析,将与以往元数据访问请求有关联的放入一组进行处理,元数据处理将不同类型的元数据请求写入不同的文件日志中。元数据处理受到分布式锁的管理服务器的影响,当客户端主动发送申请锁或者撤销锁请求时,锁服务会影响相应的元数据处理。当某一个元数据的请求过多、某元数据服务器的元数据请求量过多或者元数据容量过多时,可以将热点元数据拷贝或者迁移到其他元数据服务器上。迁移的过程可以是先从统一地址空间读到本地元数据缓存中后进行。故障恢复主要可以解决元数据服务器崩溃、死机重启后的恢复工作。元数据缓存为元数据服务器的本地缓存,无论锁服务还是元数据处理可以通过本地缓存进行。

需要说明的是,图1所示元数据服务器、存储服务器、非易失内存个数仅为示例,在实际应用中,可以有更多个。

参见图2所示,为本发明实施例所提供的一种元数据管理方法的实施流程图,该方法可以包括以下步骤:

s210:接收针对第一元数据的访问请求。

在实际应用中,客户端可以根据实际需要向相应的元数据服务器发出针对元数据的访问请求。对于分布式非易失文件系统中任意一个元数据服务器而言,该元数据服务器在接收到针对第一元数据的访问请求时,可以继续执行步骤s220的操作。

s220:对访问请求进行语义分析,确定访问请求的操作信息。

对元数据的访问请求可以包括对元数据的读取、修改、删除等请求。元数据服务器在接收到针对第一元数据的访问请求时,可以对接收到的访问请求进行语义分析,确定访问请求的操作信息,如该访问请求是对第一元数据进行读取操作、修改操作还是删除操作等。

s230:将访问请求放入与操作信息相关的待处理队列中。

待处理队列中的所有访问请求具有相关性。

元数据服务器在确定当前接收到的访问请求的操作信息后,可以将访问请求放入与操作信息相关的待处理队列中。

在本发明实施例中,元数据服务器可以维护多个待处理队列,每个待处理队列中存放的访问请求具有相关性。即通过识别操作的语义相似性,将强相关操作顺序放入相同待处理队列中。

s240:在达到设定的响应触发条件时,在分布式文件元数据区响应待处理队列中的所有访问请求。

在本发明实施例中,可以预先设定响应触发条件,如设定时间间隔,达到设定时间间隔时,认为达到了设定的响应触发条件,或者,设定个数,待处理队列中的访问请求的个数达到设定个数时,认为达到了设定的响应触发条件。当然,还可以根据实际情况设定其他触发条件,本发明实施例对此不做限制。

在达到设定的响应触发条件时,元数据服务器可以基于待处理队列中的所有访问请求,对存储服务器的非易失内存构建的分布式文件元数据区进行相应访问请求的响应。实现对文件元数据操作因果关系的并发处理,减少网络开销,提高访问效率。

应用本发明实施例所提供的方法,分布式非易失文件系统中每个存储服务器中设置有一个或多个非易失内存,所有非易失内存映射成两个整体的内存空间,一个内存空间为分布式文件数据区,一个内存空间为分布式文件元数据区,元数据服务器在接收到针对第一元数据的访问请求时,对访问请求进行语义分析,确定访问请求的操作信息,将访问请求放入与操作信息相关的待处理队列中,在达到设定的响应触发条件时,在分布式文件元数据区响应待处理队列中的所有访问请求。利用非易失内存进行元数据存储,可以实现快速的元数据访问,减少元数据的查找时间,减少数据拷贝,降低读写访问延迟,而且,通过语义分析将相关访问请求放入相同待处理队列中并发处理,减少了网络开销,提高了访问效率。

在本发明的一个实施例中,该方法还可以包括以下步骤:

步骤一:确定分布式文件元数据区保存的每个元数据的热度;

步骤二:将热度高于设定热度阈值的元数据的位置映射到多个元数据服务器上。

分布式非易失文件系统的元数据服务器可以对分布式文件元数据区中的元数据进行访问。可以确定分布式文件元数据区保存的每个元数据的热度。每个元数据的热度可以根据元数据被访问的频率进行确定,还可以根据元数据被写入的时刻距离当前时刻的时长进行确定。

可以理解的是,热度高的元数据被访问的几率较大,所以,可以将热度高于设定热度阈值的元数据的位置映射到多个元数据服务器,以在这些元数据服务器接收到针对这些元数据的访问请求时,可以快速查找相应位置,提高响应速度。

在本发明的一个实施例中,该方法还可以包括以下步骤:

第一个步骤:接收针对第二元数据的写入请求;

第二个步骤:将第二元数据拆分成多个数据片;

第三个步骤:根据每个存储服务器的负载程度,将第二元数据的多个数据片存放到不同的存储服务器的内存空间中。

为便于描述,将上述三个步骤结合起来进行说明。

元数据服务器在接收到针对第二元数据的写入请求时,可以将第二元数据拆分成多个数据片,具体的,可以按照设定大小进行拆分。

随着分布式非易失文件系统的运行,不同存储服务器的负载程度可能不同。可以根据每个存储服务器的负载程度,将第二元数据的多个数据片存放到不同的存储服务器的内存空间中。具体的,可以选择负载程度低于设定负载阈值的存储服务器,优先在这些存储服务器的内存空间中进行数据片的存放,实现负载均衡。

在本发明的一种具体实施方式中,在第一个步骤接收针对第二元数据的写入请求之后,该方法还可以包括以下步骤:

确定当前接收到的写入请求是否达到设定个数阈值;如果是,则执行第二个步骤的操作,并同时响应当前接收到的其他写入请求。

在接收到针对第二元数据的写入请求之后,可以查看当前接收到的写入请求是否达到设定个数阈值,如果达到,则进行将第二元数据拆分成多个数据片及将数据片进行存放的步骤,并同时响应当前接收到的其他写入请求。而非进行单一写入请求的响应,实现元数据操作的基于日志的写时顺序log-structurebased写入方式,达到一定大小的小写,减少对非易失内存的小写次数。

在本发明的一个实施例中,在第一个步骤接收针对第二元数据的写入请求之后、第二个步骤将第二元数据拆分成多个数据片之前,该方法还可以包括以下步骤:

将第二元数据写入本地缓存;

在第三个步骤将第二元数据的多个数据片存放到不同的存储服务器的内存空间之后,还包括:

将第二元数据的每个数据片的存放信息记录到日志中。

在本发明实施例中,接收到针对第二元数据的写入请求之后,可以将第二元数据写入本地缓存,然后再将第二元数据拆分成多个数据片,根据每个存储服务器的负载程度,将第二元数据的多个数据片存放到不同的存储服务器的内存空间中,并将第二元数据的每个数据片的存放信息记录到日志中。即先将第二元数据写入本地缓存,写完成后,再以日志记录的形式刷回非易失内存。元数据服务器的内存作为元数据写入的本地缓存。

日志记录有元数据多级分片索引,元数据多级分片索引以传统目录树结构为基础,增加大目录多级分片,更方便查找。

元数据目录树结构采用大目录多级分片方式,透明的映射到全局的分布式内存中,既可以映射到当前元数据服务器的本地内存,也可以映射到远端元数据服务器内存。当元数据服务器添加或者删除时只需修改映射位置,就可以做到动态扩展。同时,本发明实施例可以按照指定语义创建元数据的索引,使用新的映射表,保存每个元数据条目和新映射的扁平索引目录的位置,映射表和新的目录结构可以加载到内存中,每次元数据的操作可以从索引目录查找映射表,找到真实元数据的映射位置,修改元数据。既不会造成元数据的多次拷贝,也可以实现按照应用的快速查找。

相应于上面的方法实施例,本发明实施例还提供了一种元数据管理装置,应用于分布式非易失文件系统中的任意一个元数据服务器,分布式非易失文件系统包括多个元数据服务器、多个存储服务器,每个存储服务器中均设置有一个或多个非易失内存,所有存储服务器的非易失内存映射成两个整体的内存空间,一个内存空间为分布式文件数据区,一个内存空间为分布式文件元数据区。下文描述的一种元数据管理装置与上文描述的一种元数据管理方法可相互对应参照。

参见图3所示,该装置包括:

访问请求接收模块310,用于接收针对第一元数据的访问请求;

操作信息确定模块320,用于对访问请求进行语义分析,确定访问请求的操作信息;

访问请求放入模块330,用于将访问请求放入与操作信息相关的待处理队列中,待处理队列中的所有访问请求具有相关性;

访问请求响应模块340,用于在达到设定的响应触发条件时,在分布式文件元数据区响应待处理队列中的所有访问请求。

应用本发明实施例所提供的装置,分布式非易失文件系统中每个存储服务器中设置有一个或多个非易失内存,所有非易失内存映射成两个整体的内存空间,一个内存空间为分布式文件数据区,一个内存空间为分布式文件元数据区,元数据服务器在接收到针对第一元数据的访问请求时,对访问请求进行语义分析,确定访问请求的操作信息,将访问请求放入与操作信息相关的待处理队列中,在达到设定的响应触发条件时,在分布式文件元数据区响应待处理队列中的所有访问请求。利用非易失内存进行元数据存储,可以实现快速的元数据访问,减少元数据的查找时间,减少数据拷贝,降低读写访问延迟,而且,通过语义分析将相关访问请求放入相同待处理队列中并发处理,减少了网络开销,提高了访问效率。

在本发明的一种具体实施方式中,还包括位置映射模块,用于:

确定分布式文件元数据区保存的每个元数据的热度;

将热度高于设定热度阈值的元数据的位置映射到多个元数据服务器上。

在本发明的一种具体实施方式中,还包括:

写入请求接收模块,用于接收针对第二元数据的写入请求;

元数据拆分模块,用于将第二元数据拆分成多个数据片;

元数据存放模块,用于根据每个存储服务器的负载程度,将第二元数据的多个数据片存放到不同的存储服务器的内存空间中。

在本发明的一种具体实施方式中,还包括个数确定模块,用于:

在接收针对第二元数据的写入请求之后,确定当前接收到的写入请求是否达到设定个数阈值;

如果是,则触发元数据拆分模块执行将第二元数据拆分成多个数据片的步骤,并同时响应当前接收到的其他写入请求。

在本发明的一种具体实施方式中,还包括本地缓存写入模块,用于:

在接收针对第二元数据的写入请求之后、将第二元数据拆分成多个数据片之前,将第二元数据写入本地缓存;

还包括日志记录模块,用于:

在将第二元数据的多个数据片存放到不同的存储服务器的内存空间中之后,将第二元数据的每个数据片的存放信息记录到日志中。

在本发明的一种具体实施方式中,日志记录有元数据多级分片索引。

本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。

专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。

结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(ram)、内存、只读存储器(rom)、电可编程rom、电可擦除可编程rom、寄存器、硬盘、可移动磁盘、cd-rom、或技术领域内所公知的任意其它形式的存储介质中。

本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的技术方案及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明权利要求的保护范围内。

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