一种日志文件的处理方法及装置与流程

文档序号:37275776发布日期:2024-03-12 21:09阅读:10来源:国知局
一种日志文件的处理方法及装置与流程

本技术涉及计算机数据存储,尤其涉及一种日志文件的处理方法及装置。


背景技术:

1、当前存储系统越来越采用日志文件记录不断产生的数据,这种方式能充分发挥存储设备顺序写的高性能,并且能够使得系统架构设计上变得简单,包括快照的设计、数据一致性、成本优化、数据安全保证、异常的处理等。

2、为了提高日志文件中数据的可靠性,在写满多个日志文件后,使用校验规则(例如纠删码技术)产生多个日志文件的校验日志文件。以纠删码的配比为k+m为例,可以对k个日志文件中的数据进行编码得到m个校验日志文件,之后存储k个日志文件和m个校验日志文件。当任意一个日志文件损坏时,可以通过读取校验日志文件和其他日志文件来重建(或称解码)该日志文件,从而提高日志文件中数据的可靠性。

3、对多个日志文件进行编码的过程的计算复杂度较大,占用大量计算资源,大幅降低存储系统的性能。


技术实现思路

1、本技术提供一种日志文件的处理方法及装置,用于降低对多个日志文件进行编码的过程所占用的计算资源。

2、第一方面,提供一种日志文件的处理方法,该方法可以包括:向k个日志文件中写入客户数据,每个所述日志文件的地址空间被划分为n个数据块,k和n为正整数。当每个所述日志文件的目标数据块被写满时,根据k个所述目标数据块中的数据分别向m个目标校验块中写入校验数据,m个所述目标校验块分别为m个校验日志文件中的一个校验块,每个所述校验日志文件的地址空间被划分为n个校验块,m为正整数。

3、将以日志文件为最小单元的编码过程拆分为多个以日志文件中的数据块为最小单元的编码过程,有利于降低编码过程的计算复杂度,降低编码过程占用的计算资源,提高存储系统的性能。

4、可选的,所述客户数据包括一个或多个写请求所指示写入的第一数据。

5、可选的,所述第一数据包括依次排列的多个数据单元,向k个所述日志文件中写入所述第一数据包括:根据每个所述日志文件的剩余地址空间的大小,将所述多个数据单元依次写入k个所述日志文件中。这样,有利于以相同的进度将第一数据分布在k个日志文件中,以充分利用k个日志文件写满前的时间资源来填满m个校验日志文件。

6、可选的,根据每个所述日志文件的剩余地址空间的大小,将所述多个数据单元中的第i个所述数据单元写入k个所述日志文件中,包括:将第i个所述数据单元写入剩余地址空间最大的至少一个所述日志文件中,其中,i为小于或等于k的正整数。有利于以相同的进度将第一数据分布在k个日志文件中,以充分利用k个日志文件写满前的时间资源来填满m个校验日志文件。

7、可选的,每个所述数据单元为所述一个或多个写请求中一个写请求所指示写入的数据。

8、可选的,每个所述数据单元的大小为一个或多个所述数据块的大小。单个写请求所指示写入的数据可能包括多个数据块,将每个数据块写入剩余地址空间最大的至少一个日志文件,有利于在写完该写请求所指示写入的数据时,获取该数据的校验数据,提高校验数据的生成效率,提高该写请求所指示写入的数据的可靠性。

9、可选的,所述客户数据还包括每个所述日志文件的管理数据,每个所述日志文件的管理数据包括相应日志文件的元数据。

10、可选的,每个所述日志文件的地址空间包括用于写入所述第一数据的第一地址空间和用于写入相应日志文件的管理数据的第二地址空间,向k个所述日志文件中写入k个所述日志文件的管理数据包括:当目标日志文件的第一地址空间被所述第一数据中的部分数据写满后,向所述目标日志文件的第二地址空间写入所述目标日志文件的管理数据。

11、可选的,k个所述日志文件的地址空间和m个所述校验日志文件的地址空间被划分为n个校验组,每个所述校验组包括k个所述日志文件的一个所述数据块和m个所述校验日志文件中的一个所述校验块,n个所述校验组中的目标校验组包括k个所述目标数据块和m个所述目标校验块。

12、第二方面,提供一种日志文件的处理装置,包括:日志文件写入模块,用于向k个日志文件中写入客户数据,每个所述日志文件的地址空间被划分为n个数据块,k和n为正整数。校验日志文件写入模块,用于当每个所述日志文件的目标数据块被写满时,根据k个所述目标数据块中的数据分别向m个目标校验块中写入校验数据,m个所述目标校验块分别为m个校验日志文件中的一个校验块,每个所述校验日志文件的地址空间被划分为n个校验块,m为正整数。

13、可选的,所述客户数据包括一个或多个写请求所指示写入的第一数据。

14、可选的,所述第一数据包括依次排列的多个数据单元,所述日志文件写入模块,具体用于根据每个所述日志文件的剩余地址空间的大小,将所述多个数据单元依次写入k个所述日志文件中。

15、可选的,所述日志文件写入模块,具体用于将第i个所述数据单元写入剩余地址空间最大的至少一个所述日志文件中,其中,i为小于或等于k的正整数。

16、可选的,每个所述数据单元的大小为一个或多个所述数据块的大小。

17、可选的,每个所述数据单元为所述一个或多个写请求中一个写请求所指示写入的数据。

18、可选的,所述客户数据还包括每个所述日志文件的管理数据,每个所述日志文件的管理数据包括相应日志文件的元数据。

19、可选的,每个所述日志文件的地址空间包括用于写入所述第一数据的第一地址空间和用于写入相应日志文件的管理数据的第二地址空间,所述日志文件写入模块,具体用于当目标日志文件的第一地址空间被所述第一数据中的部分数据写满后,向所述目标日志文件的第二地址空间写入所述目标日志文件的管理数据。

20、第三方面,本技术提供一种计算机设备,所述计算机设备包括存储器和处理器,所述处理器执行存储器存储的计算机指令,使得所述计算机设备执行第一方面中任意一种可能的实现方式所描述的方法。

21、第四方面,本技术提供一种存储系统,包括如第二方面中任一种可能的处理装置。

22、可选的,该存储系统还包括客户端或应用服务器,客户端或应用服务器向第二方面任一可能的处理装置发送写请求或读请求。可选的,写请求为文件归档信号,读请求为文件读取信号。

23、第五方面,本技术提供一种计算机可读存储介质,包括指令,当其在计算机设备上运行时,使得所述计算机设备执行第一方面中任意一种可能的实现方式所描述的方法。

24、第六方面,本技术提供一种计算机程序产品,该计算机程序产品包含的程序代码被计算机设备执行时,以实现如本技术能够执行第一方面中任意一种可能的实现方式所描述的方法。

25、由于本技术提供的各装置可用于执行第一方面中任一可能实现方式的步骤,因此本技术各装置所能获得到的技术效果可参考前述方法所获得的技术效果,此处不再赘述。

26、针对现有技术缺陷及改进需求,本发明提供了一种多日志及校验并发生成系统及其方法、客户端,其目的在于:通过将日志文件划分为多个细粒度数据块,在多个日志文件并发写入过程中并发产生校验数据块,提升了校验数据产生的效率和日志数据的整体可靠性。

27、为实现上述目的,按照本发明第一方面,提供了一种多日志及校验并发生成方法及其系统,包括使用日志文件组记录客户写、日志文件内部逻辑地址空间划分为一组连续固定块并按照地址由低到高编号、每个日志文件均从低地址开始以仅追加的方式写入用户数据、日志文件校验组的数据编码与失效数据恢复方法、客户写放置规则、客户写读取规则、客户端。

28、优选地,大量客户以追加写方式写到日志存储服务器内的一组日志文件中,每个日志文件具有唯一id并且大小固定。一个日志文件装满后,日志文件内部元数据记录所包含所有客户写属性及内部存储地址,也保存在该日志文件内部,之后该日志文件变成封印状态,处于只读状态。多个封印日志文件需要根据给定校验规则产生相应的校验日志文件,这些封印日志文件和校验日志文件构成一个日志文件校验组。

29、优选地,把日志文件内部逻辑地址空间划分为一组连续数据块。首先创建一个空的日志文件校验组,包括空的日志文件和校验文件,客户写操作以特定放置策略分别追加写入到此组的日志文件中,当该组日志文件中对应数据块都装满时,根据给定校验规则立刻产生相应的校验数据块,并写入相应的校验日志文件的相应数据块。所有日志文件写满后,把日志文件所有元数据写入日志文件尾部,并且封印日志文件,系统也为此组日志文件元数据所在数据块产生一组校验数据块,写入校验日志文件数据块。最后整体关闭本日志文件校验组。

30、优选地,每个日志文件均从低地址开始以仅追加的方式写入用户数据,日志文件中首先写入客户写的数据,并将记录了客户写数据在日志文件内部的存储位置信息,在日志文件未写满时,日志文件元数据保存在内存或者其他存储区域中;当日志文件写满后一次性将所有日志文件元数据以及日志文件属性写入日志文件,之后封印该日志文件。

31、优选地,把日志文件内部逻辑地址空间划分为一组连续固定数据块,并按照地址由低到高编号,不同日志文件块大小相同。同一日志文件校验组内,日志文件与校验日志文件中相同编号的块构成一个编码条带。以使用(n,k)里德所罗门编码为例,日志文件组包含n个日志文件,k个校验日志文件,日志文件和校验日志文件大小均相同,日志文件与校验日志文内部逻辑地址空间划分为一组连续固定块,同一日志文件中的校验块从低地址开始递增编号,同一日志文件组中编号相同的校验块组成一个编码条带,其中,日志文件中的校验块存放的是数据块,校验日志文件中的校验块存放校验数据,当位于一个条带中的数据块全部写满之后,根据条带中的数据块生成校验块写入校验日志中对应位置。

32、优选地,一个日志文件校验组,具有日志文件数据恢复方法。当给定容错能力以内,一个或者多个日志文件或者校验文件失效时,根据剩余日志文件或者校验文件恢复出日志文件或者校验文件中的数据,根据给定校验规则,恢复出失效的日志文件或者校验文件,替代失效文件。

33、优选地,该日志文件校验组中,日志文件或者校验文件中的部分数据块失效时,在给定容错能力,可以从相应的编码条带中恢复出失效的数据块。

34、优选地,客户写放置策略将客户写分配到一个日志文件校验组中的不同日志文件中。具体而言,一个日志文件组中包括n个日志文件,k个校验数据日志文件,使用一个或多个写入进程根据特定客户写放置规则将所有写请求分配到n个日志文件中,保证一个编码条带中数据块尽量同时填满,进而快速产生相应的校验数据块。

35、优选地,实施例中的客户写放置规则为:将该校验组内的日志文件按照剩余存储空间进行排序。如果当前客户写尺寸小于等于最大剩余空间,则把该写分配到剩余空间最多的日志文件,如果有两个日志文件剩余空间均最大,则写入编号较小者。如果当前客户写尺寸大于最大剩余空间、但小于所有日志文件剩余空间之和,则拆分该客户写,从剩余空间最大的日志文件开始分配,直到该客户写完全分配完。如果当前客户写尺寸大于所有日志文件剩余空间之和,则拆分该客户写填充满所有日志文件,之后,创建一个新的日志文件校验组,按照前面的算法写入该客户写的剩余数据。每次完成一个用户写时,更新相应的日志文件元数据。

36、优选地,实施例中的客户写放置规则为:如果当前客户写按照编码条带优先方式,把客户写按照水平方式,依次轮流写入不同日志文件内同一编码条带的数据块。当一个编码条带写满,则写入下一个编码条带。每次完成一个用户写时,更新相应的日志文件元数据。

37、优选地,实施例中的客户写放置规则为:当一个日志文件校验组内所有日志文件被装满时,把所有日志文件元数据写到相应日志文件的尾部数据块,并封印日志文件。当封印日志文件长度不相等时,则按照最长封印日志文件的最大数据块产生校验条带,如果较短日志文件没有该校验条带中的数据块或者数据块不满时,则使用全0或者全1填充满不存在的数据块,进而产生校验数据块,写入校验文件。

38、优选地,日志文件组的封印规则为:将当前日志文件组所有日志文件元数据写入日志文件末尾,并追加写入日志文件首部。如果客户文件和元数据长度之和小于日志文件预定义长度,不足的部分使用无效数据填充在客户文件和元数据之间。当日志文件元数据与首部写入完成后,日志文件变为只读不可写状态,日志文件封印完成。

39、优选地,客户文件的读取过程为:以读取关键字为a的客户文件为例,从索引表中查询关键字a,如果查询失败,说明客户文件不存在,返回失败。如果查询成功,则从日志文件中读取客户文件的全部字文件,拼接为一个完整文件后返回。

40、优选的,客户写的读取过程为:从索引表中查询客户文件关键字,如果查询失败,说明客户文件不存在,返回失败。如果查询成功,则从日志文件中读取客户文件的全部字文件,拼接为一个完整文件后返回。

41、为实现上述目的,按照本发明第二方面,提供了一种客户端,所述客户端可以与本发明第一方面所述的一种多日志校验并发生成方法及其系统通信,向其发送文件归档信号以及文件读取信号。

42、总体而言,通过本发明所构思的以上技术方案,能够取得以下有益效果:

43、本发明提供的一种多日志及校验并发生成系统及其方法,充分考虑日志文件在数据块级的并行校验,兼顾日志文件写入速度以及校验数据生成速度。在写入日志文件的过程中生成校验数据,可以避免传统校验数据生成过程中一次性产生大量校验数据带来的磁盘大规模读写行为,以及伴随的系统性能下降问题。

44、可选的,上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,并可依照说明书的内容予以实施,以下以本发明的较佳实施例并配合附图详细说明如后。本发明的具体实施方式由以下实施例及其附图详细给出。

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