本发明涉及数据处理领域,特别涉及文件管理方法、系统、介质和计算机程序产品。
背景技术:
1、分布式文件系统向用户提供统一的接口,将用户的数据存储在不同的节点上,并且维护好元数据,用户只需要像访问本地文件系统一样来访问分布式文件系统就行。
2、现有的分布式文件系统主要通过以下两种方式在各个节点对磁盘上的数据进行管理,一种是借助本地的文件系统进行管理,将数据切分为多个对象文件存储在本地文件系统中,另一种是直接对裸盘进行管理,自己维护磁盘的元数据。在收到上层的io请求时,根据请求的内容找到对应的元数据,最后转换为对磁盘指定位置的一次读取操作或写入操作。这样的分布式文件系统实现复杂,维护难度大。
技术实现思路
1、本发明的目的在于提供文件管理方法、系统、介质和计算机程序产品,可以基于只支持文件追加写的分布式存储系统来实现,并且对外提供随机写的能力。
2、本发明公开了一种文件管理方法,所述方法包括:
3、对于由分布式存储系统存储的每个文件,由元数据服务器向所述文件分配文件标识,所述文件被划分为一个或多个二级制大对象,每个二级制大对象具有相应的二级制大对象标识,并且基于所述文件标识和所述二级制大对象标识,每个二级制大对象被哈希到相应的片段;
4、对于每个片段,由所述元数据服务器向所述片段分配片段服务器以加载所述片段,每个片段具有相应的数据文件和索引文件,所述数据文件用于存储所述片段所对应的一个或多个文件的相应二级制大对象的数据信息,并且所述索引文件用于存储与所述片段对应的所述一个或多个文件的所述相应二级制大对象的索引信息。
5、可选地,所述方法还包括:
6、由管理模块解析从客户端接收到的请求,所述请求包括写入请求,并且所述写入请求包括文件标识、偏移、长度和写入数据;
7、基于所述写入请求中的所述文件标识、所述偏移和所述长度,由所述管理模块确定相应文件的相应二级制大对象及其所对应的相应片段,并且向加载该片段的片段服务器发送所述写入请求;
8、由该片段服务器将所述写入请求中的所述文件标识、所述偏移、所述长度和所述写入数据写入该片段的一数据文件,更新缓存的索引信息,并且当该数据文件被封存且切换到该片段的下一数据文件时,将缓存的索引信息写入该片段的索引文件。
9、可选地,所述方法还包括:
10、由管理模块解析从客户端接收到的请求,所述请求包括读取请求,并且所述读取请求包括文件标识、偏移和长度;
11、基于所述读取请求中的所述文件标识、所述偏移和所述长度,由所述管理模块确定相应文件的相应二级制大对象及其所对应的相应片段,并且向加载该片段的片段服务器发送所述读取请求;
12、基于所述读取请求中的所述文件标识、所述偏移和所述长度,由该片段服务器从缓存的索引信息和该片段的索引文件中寻找该片段的相应数据文件的读取位置,并且从该读取位置读取读取数据。
13、可选地,在每个片段服务器与所述元数据服务器之间传递心跳信息,并且当一片段服务器与所述元数据服务器的心跳中断时,由所述元数据服务器将该片段服务器加载的片段分配到另一片段服务器,并且更新片段与片段服务器之间的对应关系。
14、可选地,在由所述元数据服务器将该片段服务器加载的片段分配到另一片段服务器之后,该另一片段服务器基于该片段的索引文件和数据文件来恢复缓存的索引信息。
15、可选地,在所述管理模块与所述元数据服务器之间传递心跳信息,并且由所述管理模块从所述元数据服务器获取更新的片段与片段服务器之间的对应关系。
16、可选地,所述方法还包括:
17、由管理模块解析从客户端接收到的请求,所述请求包括元数据请求,并且所述元数据请求包括文件标识、文件名、文件类型和文件大小;
18、由所述管理模块向所述元数据服务器发送所述元数据请求;
19、基于所述元数据请求中的所述文件标识、所述文件名、所述文件类型和所述文件大小,由所述元数据服务器存储相应文件的元数据。
20、可选地,所述方法还包括:
21、由回收模块回收每个片段的相应数据文件中的无效数据和相应索引文件中的无效索引。
22、本发明公开了一种文件管理系统,所述系统包括分布式存储系统、元数据服务器和片段服务器;
23、对于由所述分布式存储系统存储的每个文件,由所述元数据服务器向所述文件分配文件标识,所述文件被划分为一个或多个二级制大对象,每个二级制大对象具有相应的二级制大对象标识,并且基于所述文件标识和所述二级制大对象标识,每个二级制大对象被哈希到相应的片段;
24、对于每个片段,由所述元数据服务器向所述片段分配所述片段服务器以加载所述片段,每个片段具有相应的数据文件和索引文件,所述数据文件用于存储所述片段所对应的一个或多个文件的相应二级制大对象的数据信息,并且所述索引文件用于存储与所述片段对应的所述一个或多个文件的所述相应二级制大对象的索引信息。
25、本发明公开了一种计算机可读存储介质,其上存储有计算机可执行指令,所述指令被处理器执行以实施根据上面描述的文件管理方法。
26、本发明公开了一种计算机程序产品,包括计算机可执行指令,所述指令被处理器执行以实施根据上面描述的文件管理方法。
27、本发明与现有技术相比,主要区别及其效果在于:
28、本发明设计了一种文件管理系统和方法,其底层存储是建立在一种只支持追加写的分布式存储系统之上的,由底层存储系统保证数据的可靠性,并且提供多副本或纠删的冗余策略,由于该存储系统只支持追加写,复杂度低,减少了io放大。上层负责实现用户文件的元数据管理、文件索引的检索和io调度,向用户提供了对文件的随机写能力,支持nfs协议。这些逻辑和底层存储相互解耦,有节点出现故障时,上层逻辑无需关心底层数据的迁移,维护难度低。
1.一种文件管理方法,其特征在于,所述方法包括:
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
3.根据权利要求1所述的方法,其特征在于,所述方法还包括:
4.根据权利要求2或3所述的方法,其特征在于,在每个片段服务器与所述元数据服务器之间传递心跳信息,并且当一片段服务器与所述元数据服务器的心跳中断时,由所述元数据服务器将该片段服务器加载的片段分配到另一片段服务器,并且更新片段与片段服务器之间的对应关系。
5.根据权利要求4所述的方法,其特征在于,在由所述元数据服务器将该片段服务器加载的片段分配到另一片段服务器之后,该另一片段服务器基于该片段的索引文件和数据文件来恢复缓存的索引信息。
6.根据权利要求4所述的方法,其特征在于,在所述管理模块与所述元数据服务器之间传递心跳信息,并且由所述管理模块从所述元数据服务器获取更新的片段与片段服务器之间的对应关系。
7.根据权利要求1所述的方法,其特征在于,所述方法还包括:
8.根据权利要求1所述的方法,其特征在于,所述方法还包括:
9.一种文件管理系统,其特征在于,所述系统包括分布式存储系统、元数据服务器和片段服务器;
10.一种计算机可读存储介质,其上存储有计算机可执行指令,其特征在于,所述指令被处理器执行以实施根据权利要求1-8中任一项所述的文件管理方法。
11.一种计算机程序产品,包括计算机可执行指令,其特征在于,所述指令被处理器执行以实施根据权利要求1-8中任一项所述的文件管理方法。