日志存储方法和装置制造方法

文档序号:6550859阅读:176来源:国知局
日志存储方法和装置制造方法
【专利摘要】本发明实施例提供一种日志存储方法和装置。该方法包括:接收日志源发送的日志存储请求;确定日志源发送日志数据的发送速率;根据日志数据的发送速率,确定包含有日志数据的日志的大小;根据日志的标识和日志源的IP地址,确定日志的存储地址;根据日志的大小,采用预分配的方法,在与存储地址对应的磁盘中为日志分配磁盘空间;将包含有日志数据的日志存储到与磁盘空间中。本方案通过确定日志大小以及日志的存储地址,并通过在与该存储地址对应的磁盘中为日志预分配磁盘空间,能够将日志存储到预分配的磁盘空间中。由于该磁盘空间是根据日志大小分配的,因此能够减少磁盘碎片,并提高日志服务器的磁盘的性能。
【专利说明】日志存储方法和装置
【技术领域】
[0001 ] 本发明实施例涉及计算机存储技术,尤其涉及一种日志存储方法和装置。
【背景技术】
[0002]日志是日志源(例如网络设备、系统及服务程序等)在运行时产生的名为log的事件记录,是日志源运行时产生的数据的集合,每一行日志都记载着日期、时间、使用者及动作等相关操作的描述信息。日志记录了日志源的生命周期,通过查阅与分析日志,可以获知日志源在某个时刻所处的状态。
[0003]日志服务器是一种对不同日志源运行产生并发送的日志进行记录存储的服务器装置,一般具有比较大的磁盘存储空间,以实现对不同日志源发送的日志进行分类存储,例如,按日期分类存储,在一些对时间统计需求比较高的场合,通常还需要按小时或分钟等对日志文件进行分割存储。
[0004]现有的日志存储技术,一般是根据日志源发送的日志临时分配相应的磁盘存储空间,从而达到将日志存储到磁盘的目的。
[0005]上述日志存储技术均存在以下缺陷:在集中式的日志存储结构中,也即当多个日志源同时向日志服务器发送日志时,日志服务器会交替的往每个日志源对应的日志存储文件中写入日志数据,导致单个日志在日志服务器的磁盘上的存储区域不连续,进一步导致各个日志存储文件中的日志数据的存储区域交叉在一起,从而产生大量磁盘碎片,降低日志服务器的磁盘的性能。

【发明内容】

[0006]本发明实施例提供一种日志存储方法和装置,以减少磁盘碎片,并提高日志服务器的磁盘的性能。
[0007]第一方面,本发明实施例提供了一种日志存储方法,包括:
[0008]接收日志源发送的日志存储请求,所述日志存储请求包括:日志数据、包含有所述日志数据的日志的标识和日志源的IP地址;
[0009]确定日志源发送日志数据的发送速率;
[0010]根据日志数据的发送速率,确定包含有所述日志数据的日志的大小;
[0011]根据所述日志的标识和日志源的IP地址,确定日志的存储地址;
[0012]根据所述日志的大小,采用预分配的方法,在与所述存储地址对应的磁盘中为所述日志分配磁盘空间;
[0013]将包含有所述日志数据的日志存储到与所述磁盘空间中。
[0014]第二方面,本发明实施例还提供了一种日志存储装置,包括:
[0015]存储请求接收模块,用于接收日志源发送的日志存储请求,所述日志存储请求包括:日志数据、包含有所述日志数据的日志的标识和日志源的IP地址;
[0016]发送速率确定模块,用于确定日志源发送日志数据的发送速率;[0017]日志大小确定模块,用于根据日志数据的发送速率,确定包含有所述日志数据的日志的大小;
[0018]存储地址确定模块,用于根据所述日志的标识和日志源的IP地址,确定日志的存储地址;
[0019]磁盘空间分配模块,用于根据所述日志的大小,采用预分配的方法,在与所述存储地址对应的磁盘中为所述日志分配磁盘空间;
[0020]日志存储模块,用于将包含有所述日志数据的日志存储到与所述磁盘空间中。
[0021]本发明实施例提供的日志存储方法和装置,通过日志源发送日志数据的发送速率,能够确定日志大小,通过日志存储请求中的日志的标识和日志源的IP地址,能够确定日志的存储地址,通过在与该存储地址对应的磁盘中为日志预分配磁盘空间,因此能够将日志存储到预分配的磁盘空间中。由于预分配的磁盘空间是根据日志大小分配的,因此能够减少磁盘碎片,并提高日志服务器的磁盘的性能。
【专利附图】

【附图说明】
[0022]为了更清楚地说明本发明,下面将对本发明中所需要使用的附图做一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
[0023]图1为本发明实施例一提供的一种日志存储方法的流程图;
[0024]图2为本发明实施例二提供的一种日志存储方法的流程图;
[0025]图3为本发明实施例三提供的一种日志存储装置的结构示意图。
【具体实施方式】
[0026]为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施例中的技术方案作进一步详细描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。可以理解的是,此处所描述的具体实施例仅用于解释本发明,而非对本发明的限定,基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部内容。
[0027]实施例一
[0028]请参阅图1,为本发明实施例一提供的一种日志存储方法的流程图。本发明实施例的方法可以由以硬件和/或软件实现的日志存储装置来执行,该装置典型的是配置于能够提供日志存储服务的服务器中。
[0029]如图1所示,所述方法包括:
[0030]步骤110、接收日志源发送的日志存储请求,所述日志存储请求包括:日志数据、包含有所述日志数据的日志的标识和日志源的IP地址;
[0031]在本步骤中,日志源包括网络设备、系统及服务程序等。日志数据是日志源在运行时产生的,日志数据记载着日志源的运行记录,例如,日期、时间、使用者及相关操作等信息。日志是日志源在运行时产生的名为log的事件记录,为日志数据的集合。日志源不间断地产生日志数据,并对日志分配一个日志标识,也即日志ID。通常具有相同的事件主体、相同时间发生的日志具有相同的日志标识。
[0032]需要说明的是,本步骤中,可以同时接收不同日志源发送的日志存储请求,并对不同的日志存储请求进行并行处理。
[0033]步骤120、确定日志源发送日志数据的发送速率;
[0034]在本步骤中,可以通过监测所述日志存储请求,确定日志源发送日志数据的发送速率。换言之,当监测到的请求类型为日志存储请求时,触发监测该日志存储请求,从而确定日志源发送日志数据的发送速率。
[0035]步骤130、根据日志数据的发送速率,确定包含有所述日志数据的日志的大小;
[0036]在本步骤中,可以通过日志数据的发送速率和发送时长,确定包含有所述日志数据的日志的大小;也可以通过预先统计获知日志数据的发送速率和日志大小的对应关系,根据该对应关系,将与当前日志数据的发送速率对应的日志大小确定为包含有所述日志数据的日志的大小,例如通过统计预设时间段(例如,I个月或3周等)内的日志数据的发送速率与对应的日志大小获知该对应关系。
[0037]步骤140、根据所述日志的标识和日志源的IP地址,确定日志的存储地址;
[0038]本步骤具体是确定日志的存储地址。示例性地,根据所述日志的标识和日志源的IP地址,根据预设日志存储策略,确定日志的存储地址为{磁盘名称/日志ID/log/IP地址
/日期/时间}。
[0039]实际应用中,一个业务的相关日志数据(即,一个业务下的应用)对应一个日志ID,例如,对于业务为QQ浏览器的业务日志来说,可以设置用户注册事件(QQ浏览器下的一个应用)对应一个日志ID,具有对应的日志数据结构,而用户浏览事件(QQ浏览器下的另一个应用)对应另一个日志ID,相应具有该日志ID对应的日志数据结构。当然,实际应用中,一个业务也可以只申请一个日志ID,某个业务申请一个日志ID还是多个日志ID,由业务开发人员根据业务的日志数据量,日志数据种类,并结合后续基于日志数据的统计需求综合考虑。
[0040]步骤150、根据所述日志的大小,采用预分配的方法,在与所述存储地址对应的磁盘中为所述日志分配磁盘空间;
[0041]本步骤具体是在与步骤140确定的日志存储地址对应的磁盘中,为通过步骤130确定的日志大小分配与日志大小相匹配的磁盘空间。
[0042]步骤160、将包含有所述日志数据的日志存储到与所述磁盘空间中。
[0043]本实施例的技术方案,通过日志源发送日志数据的发送速率,能够确定日志大小,通过日志存储请求中的日志的标识和日志源的IP地址,能够确定日志的存储地址,通过在与该存储地址对应的磁盘中为日志预分配磁盘空间,因此能够将日志存储到预分配的磁盘空间中。由于预分配的磁盘空间是根据日志大小分配的,因此能够减少磁盘碎片,并提高日志服务器的磁盘的性能。
[0044]需要说明的是,现有技术中一般是等到日志需要存储时,临时为该日志分配存储空间,导致日志被分散存储到整个磁盘的不同区域,而不是连续地存储在磁盘连续的簇中。换言之,磁盘在使用一段时间后,由于反复写入和删除的操作,磁盘中的空闲扇区会分散到整个磁盘中不连续的物理位置上,从而使日志不能存储在磁盘连续的扇区里。这样,再读写日志时就需要到不同的区域去读取,增加了磁头的来回移动,降低了磁盘的访问速度。[0045]而本实施例的技术方案,通过预分配的方式,使得单个日志文件的数据始终存储在磁盘上一片连续的空间中,由于日志首尾相接整齐存储而减少磁盘碎片,因此能够加快磁盘读写速度,并提高磁盘的整体性能和运行速度。
[0046]还需要说明的是,现有技术中需要定期进行磁盘碎片整理,磁盘碎片整理的时间和磁盘已使用的容量和磁盘碎片程度成正比,而且在进行磁盘碎片整理期间,磁盘的输入输出接口会被磁盘碎片整理程序占满,基本无法进行正常的日志存储服务,还会降低磁盘的寿命。
[0047]而本实施例的技术方案,采用预分配的方式,使得单个日志文件的数据始终存储在磁盘上一片连续的空间中,而减少磁盘碎片,从而在磁盘碎片整理过程中,磁盘的输入输出接口既能提供磁盘碎片整理服务,又能提供日志存储服务,也即保证了服务器性能的稳定,不会因为日志的增多而性能下降,并能延长磁盘的使用寿命。
[0048]实施例二
[0049]请参阅图2,为本发明实施例二提供的一种日志存储方法的流程图。本实施例在上述实施例的基础上,提供了根据所述日志的大小,采用预分配的方法,在与所述存储地址对应的磁盘中为所述日志分配磁盘空间这一步骤的优选方案。如图2所示,该优选方法,包括:
[0050]步骤210、根据所述日志的大小,确定该日志所需的磁盘中可用空间的分组;
[0051]在磁盘的空间管理方面,将磁盘上的每一个可用空间照近似大小分成若干个组,每个组的大小可以由系统管理员在运行初始时进行配置,也可以在文件系统格式化的时候根据磁盘容量确定。
[0052]步骤220、在所述分组内查找区间大小大于或等于所述日志大小的区间;
[0053]每个组包括区间描述参数存储区域和至少一个日志数据存储区域,本步骤具体是查找日志数据存储区域大小大于或等于所述日志大小的区间。
[0054]步骤230、将大于或等于所述日志大小的区间中的一个作为该日志的磁盘空间。
[0055]本实施例的技术方案,通过确定与该存储地址对应的磁盘中可用空间的分组所包含的区间的大小,将大于或等于所述日志大小的区间中的一个作为该日志的磁盘空间,能够为日志预分配磁盘空间,由于预分配的磁盘空间是根据日志大小分配的,因此能够减少磁盘碎片,并提高日志服务器的磁盘的性能。
[0056]实施例三
[0057]请参阅图3,为本发明实施例三提供的一种日志存储装置的结构示意图。如图3所示,该装置包括:存储请求接收模块310、发送速率确定模块320、日志大小确定模块330、存储地址确定模块340、磁盘空间分配模块350和日志存储模块360。
[0058]其中,存储请求接收模块310用于接收日志源发送的日志存储请求,所述日志存储请求包括:日志数据、包含有所述日志数据的日志的标识和日志源的IP地址;发送速率确定模块320用于确定日志源发送日志数据的发送速率;日志大小确定模块330用于根据日志数据的发送速率,确定包含有所述日志数据的日志的大小;存储地址确定模块340用于根据所述日志的标识和日志源的IP地址,确定日志的存储地址;磁盘空间分配模块350用于根据所述日志的大小,采用预分配的方法,在与所述存储地址对应的磁盘中为所述日志分配磁盘空间;日志存储模块360用于将包含有所述日志数据的日志存储到与所述磁盘空间中。
[0059]本实施例的技术方案,通过日志源发送日志数据的发送速率,能够确定日志大小,通过日志存储请求中的日志的标识和日志源的IP地址,能够确定日志的存储地址,通过在与该存储地址对应的磁盘中为日志预分配磁盘空间,因此能够将日志存储到预分配的磁盘空间中。由于预分配的磁盘空间是根据日志大小分配的,因此能够减少磁盘碎片,并提高日志服务器的磁盘的性能。
[0060]在上述方案中,发送速率确定模块320具体用于通过监测所述日志存储请求,确定日志源发送日志数据的发送速率。
[0061]在上述方案中,磁盘空间分配模块350包括:分组确定单元、区间查找单元和磁盘空间确定单元。
[0062]其中,分组确定单元用于根据所述日志的大小,确定该日志所需的磁盘中可用空间的分组;区间查找单元用于在所述分组内查找区间大小大于或等于所述日志大小的区间;磁盘空间确定单元用于将大于或等于所述日志大小的区间中的一个作为该日志的磁盘空间。
[0063]本发明实施例提供的日志存储装置可执行本发明任意实施例所提供的日志存储方法,具备执行方法相应的功能模块和有益效果。
[0064]最后应说明的是:以上各实施例仅用于说明本发明的技术方案,而非对其进行限制;实施例中优选的实施方式,并非对其进行限制,对于本领域技术人员而言,本发明可以有各种改动和变化。凡在本发明的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
【权利要求】
1.一种日志存储方法,其特征在于,包括: 接收日志源发送的日志存储请求,所述日志存储请求包括:日志数据、包含有所述日志数据的日志的标识和日志源的IP地址; 确定日志源发送日志数据的发送速率; 根据日志数据的发送速率,确定包含有所述日志数据的日志的大小; 根据所述日志的标识和日志源的IP地址,确定日志的存储地址; 根据所述日志的大小,采用预分配的方法,在与所述存储地址对应的磁盘中为所述日志分配磁盘空间; 将包含有所述日志数据的日志存储到与所述磁盘空间中。
2.根据权利要求1所述的方法,其特征在于,确定日志源发送日志数据的发送速率,包括: 通过监测所述日志存储请求,确定日志源发送日志数据的发送速率。
3.根据权利要求1所述的方法,其特征在于,根据所述日志的大小,采用预分配的方法,在与所述存储地址对应的磁盘中为所述日志分配磁盘空间,包括: 根据所述日志的大小,确定该日志所需的磁盘中可用空间的分组; 在所述分组内查找区间大小大于或等于所述日志大小的区间; 将大于或等于所述日志大小的区间中的一个作为该日志的磁盘空间。
4.一种日志存储装置,其特征在于,包括: 存储请求接收模块,用于接收日志源发送的日志存储请求,所述日志存储请求包括:日志数据、包含有所述日志数据的日志的标识和日志源的IP地址; 发送速率确定模块,用于确定日志源发送日志数据的发送速率; 日志大小确定模块,用于根据日志数据的发送速率,确定包含有所述日志数据的日志的大小; 存储地址确定模块,用于根据所述日志的标识和日志源的IP地址,确定日志的存储地址; 磁盘空间分配模块,用于根据所述日志的大小,采用预分配的方法,在与所述存储地址对应的磁盘中为所述日志分配磁盘空间; 日志存储模块,用于将包含有所述日志数据的日志存储到与所述磁盘空间中。
5.根据权利要求1所述的装置,其特征在于,发送速率确定模块具体用于通过监测所述日志存储请求,确定日志源发送日志数据的发送速率。
6.根据权利要求1所述的装置,其特征在于,磁盘空间分配模块包括: 分组确定单元,用于根据所述日志的大小,确定该日志所需的磁盘中可用空间的分组; 区间查找单元,用于在所述分组内查找区间大小大于或等于所述日志大小的区间;磁盘空间确定单兀,用于将大于或等于所述日志大小的区间中的一个作为该日志的磁盘空间。
【文档编号】G06F12/02GK104021088SQ201410290387
【公开日】2014年9月3日 申请日期:2014年6月24日 优先权日:2014年6月24日
【发明者】刘杰, 梁润强, 欧吉增, 霍键聪, 史伟 申请人:广东睿江科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1