一种日志备份方法及装置制造方法

文档序号:6515994阅读:173来源:国知局
一种日志备份方法及装置制造方法
【专利摘要】本发明的实施例公开了一种日志备份方法及装置,涉及信息【技术领域】,解决了Linux文件系统下文件恢复性差的问题。具体方案为:解析日志文件内容中的事务日志,如果事务日志中包含新建操作信息或者更改操作信息,则在该事务日志中提取对应的节点信息及目录项信息,并将提取出的节点信息和目录项信息写入预设的日志存储空间,然后解析下一事务日志,直至日志文件内容中的所有事务日志解析完。
【专利说明】一种日志备份方法及装置
【技术领域】
[0001]本发明涉及信息【技术领域】,尤其涉及ー种日志备份方法及装置。
【背景技术】
[0002]文件系统是操作系统用于明确磁盘分区上的文件的方法和数据结构;即在磁盘上组织文件的系统。Linux文件系统是当前应用最广泛的文件系统,Linux文件系统给用户提供了对用户文件存放和访问的有效管理,Linux文件系统中的文件是数据的集合,文件系统不仅包含着文件中的数据而且还有文件系统的结构,所有Linux用户的文件、目录、软连接及文件保护信息等都存储在其中。常见的Linux文件系统包括:EXT3 (Third ExtendedFile System,第三扩展文件系统)、XFS (Extended File System,扩展文件系统)、ReiserFS(Reiser File System, Reiser 文件系统)。
[0003]用户在使用过程中,因为磁盘坏道、意外篡改、误删除文件等各种原因,会导致用户文件丢失或者Linux文件系统无法正常使用,这就需要对数据进行恢复。
[0004]但是,现有技术中,无法对数据进行彻底恢复,只能恢复近期误删除的文件或者部分丢失文件,数据恢复效果不佳,对用户的使用造成了阻碍。

【发明内容】

[0005]本发明的实施例提供ー种日志备份方法及装置,涉及信息【技术领域】,能够解决Linux文件系统下文件恢复性差的问题。
[0006]为达到上述目的,本发明的实施例采用如下技术方案:
[0007]第一方面,一种日志备份方法,应用于Linux文件系统,包括:
[0008]获取日志文件内容,所述日志文件内容包括至少ー个事务日志;
[0009]在所述至少一个事务日志中获取第一事务日志,并解析所述第一事务日志;
[0010]如果所述第一事务日志中包含新建操作信息或者更改操作信息,则在所述第一事务日志中提取对应的节点信息及目录项信息;
[0011 ] 将所述提取出的节点信息及目录项信息写入预设的日志存储空间。
[0012]结合第一方面,在第一种可能的实现方式中,所述日志文件内容还包括:日志超级块;
[0013]在所述至少一个事务日志中获取第一事务日志,并解析所述第一事务日志,包括:
[0014]在所述日志文件内容的第一扇区读取所述日志超级块;
[0015]在所述日志超级块中获取第一事务序列号和第一事务起始块号;
[0016]根据所述第一事务序列号和所述第一事务起始块号读取第一事务起始块;
[0017]解析所述第一事务起始块。
[0018]结合第一方面的第一种可能的实现方式,在第二种可能的实现方式中,所述将所述提取出的节点信息及目录项信息写入预设的日志存储空间,包括:[0019]在所述第一事务起始块中获取第一事务源地址,所述第一事务源地址为所述第一事务的操作对象的存储地址;
[0020]根据所述第一事务源地址将所述提取出的节点信息及目录项信息写入所述日志存储空间中对应的第一事务备份地址。
[0021]结合第一方面,在第三种可能的实现方式中,所述方法还包括:
[0022]如果所述第一事务日志中包含删除操作信息,则直接跳过该事务。
[0023]结合第一方面,在第四种可能的实现方式中,所述获取日志文件内容,包括:
[0024]在文件系统存储空间中获取文件系统超级块;
[0025]在所述文件系统超级块中获取日志数据块大小及日志数据块编号;
[0026]根据所述日志数据块大小及所述日志数据块编号获取所述文件系统的日志数据块地址;
[0027]根据所述日志数据块地址获取日志数据块中存储的所述日志文件内容。
[0028]结合第一方面的第四种可能的实现方式,在第五种可能的实现方式中,所述根据所述日志数据块地址获取日志数据块中存储的所述日志文件内容,包括:
[0029]根据所述日志数据块地址将所述日志数据块中存储的所述日志文件内容复制到预设的日志备份区;
[0030]在所述日志备份区获取所述日志文件内容。
[0031]结合第一方面的第五种可能的实现方式,在第六种可能的实现方式中,所述根据所述日志数据块地址将所述日志数据块中存储的所述日志文件内容复制到预设的日志备份区,包括:
[0032]根据所述日志数据块地址获取日志数据块末尾区域的地址;
[0033]检测写命令中是否包含所述日志数据块末尾区域的地址;
[0034]若是,则暂停写操作,井根据所述日志数据块地址将所述日志数据块中存储的所述日志文件内容复制到所述日志备份区;
[0035]复制完成后,恢复写操作。
[0036]结合第一方面的第四种可能的实现方式,在第七种可能的实现方式中,所述在所述文件系统超级块中获取日志数据块大小及日志数据块编号,包括:
[0037]在所述文件系统超级块中获取文件系统类型;
[0038]判断所述文件系统类型是否为预设的类型;
[0039]若是,则在所述文件系统超级块中获取所述日志数据块大小及所述日志数据块编号。
[0040]第二方面,ー种日志备份装置,应用于Linux文件系统,其特征在于,包括:
[0041]获取单元,用于获取日志文件内容,所述日志文件内容包括至少ー个事务日志,在所述至少一个事务日志中获取第一事务日志;
[0042]解析単元,用于解析所述获取单元获取的所述第一事务日志;
[0043]所述获取単元,还用于当所述第一事务日志中包含新建操作信息或者更改操作信息时,在所述第一事务日志中提取对应的节点信息及目录项信息;
[0044]读写单元,用于将所述获取单元提取出的节点信息及目录项信息写入预设的日志存储空间。[0045]结合第二方面,在第一种可能的实现方式中,
[0046]所述日志文件内容还包括:日志超级块;
[0047]所述获取単元,还用于在所述日志文件内容的第一扇区读取所述日志超级块,在所述日志超级块中获取第一事务序列号和第一事务起始块号,井根据所述第一事务序列号和所述第一事务起始块号读取第一事务起始块;
[0048]所述解析単元,还用于解析所述获取单元读取的所述第一事务起始块。
[0049]结合第二方面的第一种可能的实现方式,在第二种可能的实现方式中,
[0050]所述获取単元,还用于在所述第一事务起始块中获取第一事务源地址,所述第一事务源地址为所述第一事务的操作对象的存储地址;
[0051]所述读写単元,还用于根据所述获取单元获取的所述第一事务源地址将所述提取出的节点信息及目录项信息写入所述日志存储空间中对应的第一事务备份地址。
[0052]结合第二方面,在第三种可能的实现方式中,
[0053]所述解析単元,还用于当所述第一事务日志中包含删除操作信息吋,直接跳过该事务。
[0054]结合第二方面,在第四种可能的实现方式中,
[0055]所述获取単元,还用于在文件系统存储空间中获取文件系统超级块,在所述文件系统超级块中获取日志数据块大小及日志数据块编号,根据所述日志数据块大小及所述日志数据块编号获取所述文件系统的日志块地址,井根据所述日志数据块地址获取日志数据块中存储的所述日志文件内容。
[0056]结合第二方面的第四种可能的实现方式,在第五种可能的实现方式中,
[0057]所述读写単元,还用于根据所述日志数据块地址将所述日志数据块中存储的所述日志文件内容复制到预设的日志备份区;
[0058]所述获取単元,还用于在所述日志备份区获取所述日志文件内容。
[0059]结合第二方面的第五种可能的实现方式,在第六种可能的实现方式中,
[0060]所述获取単元,还用于根据所述日志数据块地址获取日志数据块末尾区域的地址;
[0061]所述读写単元,还用于检测写命令中是否包含所述日志数据块末尾区域的地址;
[0062]若是,则暂停写操作,井根据所述日志数据块地址将所述日志数据块中存储的所述日志文件内容复制到所述日志备份区;
[0063]复制完成后,恢复写操作。
[0064]结合第二方面的第四种可能的实现方式,在第七种可能的实现方式中,
[0065]所述获取単元,还用于在所述文件系统超级块中获取文件系统类型;
[0066]所述日志备份装置还包括判断単元,
[0067]所述判断単元,用于判断所述获取单元获取的所述文件系统类型是否为预设的类型;
[0068]所述获取単元,还用于当所述判断単元的判断结果为是,在所述文件系统超级块中获取所述日志数据块大小及所述日志数据块编号。
[0069]本发明的实施例提供的日志备份方法及装置,通过解析日志文件内容中的事务日志,如果事务日志中包含新建操作信息或者更改操作信息,则在该事务日志中提取对应的节点信息及目录项信息,并将提取出的节点信息和目录项信息写入预设的日志存储空间,然后解析下一事务日志,直至日志文件内容中的所有事务日志解析完,解决了 Linux文件系统下文件恢复性差的问题,提高了 Linux文件系统下用户数据的可恢复性。
【专利附图】

【附图说明】
[0070]为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0071]图1为本发明的实施例提供的ー种日志备份方法流程示意图;
[0072]图2为本发明的另ー实施例提供的ー种日志备份方法流程示意图;
[0073]图3为本发明的实施例提供的一种日志文件数据结构示意图;
[0074]图4为本发明的实施例提供的ー种日志备份装置结构示意图;
[0075]图5为本发明的另ー实施例提供的ー种日志备份装置结构示意图。
【具体实施方式】
[0076]下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0077]本发明的实施例提供ー种日志备份方法,应用于Linux文件系统,參照图1所示,该方法包括:
[0078]101、获取日志文件内容。
[0079]其中,该日志文件内容包括至少ー个事务日志。
[0080]102、在至少ー个事务日志中获取第一事务日志,并解析第一事务日志。
[0081 ] 具体可选的,该日志文件内容还包括日志超级块,该日志超级块在日志文件内容的第一扇区,在日志超级块中读取第一事务序列号和第一事务起始块号,并根据第一事务序列号和第一事务起始块号读取第一事务起始块,然后解析第一事务起始块。
[0082]103、如果第一事务日志中包含新建操作信息或者更改操作信息,则在第一事务日志中提取对应的节点信息及目录项信息。
[0083]可选的,当第一事务日志中包含删除操作信息时,直接跳过该事物日志。
[0084]104、将提取出的节点信息及目录项信息写入预设的日志存储空间。
[0085]可选的,重复步骤102-104,将日志文件内容中的所有事务日志解析完,就完成了日志文件内容的备份。
[0086]这样,通过解析可以不记录删除文件的操作,只记录更改操作和新建操作,并且能够及时记录最新的操作信息,使得用户在恢复文件的时候,能够更准确,快速的恢复文件,并且,由于记录了全部的日志文件内容,也使得长期损坏的文件可以恢复,提高了 Linux文件系统下用户数据的可恢复性。
[0087]本发明的实施例提供的日志备份方法,通过解析日志文件内容中的事务日志,如果事务日志中包含新建操作信息或者更改操作信息,则在该事务日志中提取对应的节点信息及目录项信息,并将提取出的节点信息和目录项信息写入预设的日志存储空间,然后解析下一事务日志,直至日志文件内容中的所有事务日志解析完,解决了 Linux文件系统下文件恢复性差的问题,提高了 Linux文件系统下用户数据的可恢复性。
[0088]本发明的另ー实施例提供ー种日志备份方法,应用于Linux文件系统,本实施例以Linux文件系统中EXT3文件系统为例,可选的,本实施例结合自动精简配置技术进行说明,但这不代表本发明只适用于EXT3文件系统和自动精简配置技木。參照图2所示,该方法包括:
[0089]201、进行分区信息检测。
[0090]可选的,在Linux系统中,对LUN(Logical Unit Number,逻辑单元号)进行检测,此处,因为现有的Linux系统只有两种分区形式,所以只需要检测MBR(Master Boot Record,主引导记录)和 GPT (Globally Unique Identifier Partition Table Format,全局卩隹一标示磁盘分区表格式)两种分区,如果识别到MBR或者GPT分区,则将分区的信息分解析出来,记录各个分区的起始位置。
[0091]202、在文件系统存储空间中获取文件系统超级块,在文件系统超级块中获取文件系统类型,判断文件系统类型是否为预设的类型。
[0092]此处,对各个分区分别进行文件系统识别,本发明以EXT3文件系统为例,所以预设的类型为EXT3文件系统。具体的,EXT3文件系统的文件系统超级块数据结构如表一所示,具体判断方法为在文件系统超级块中偏移量为0x38-0x39处的值是否为53EF,且0xE0-0xE3处的值为08,如果两个判断结果都为是,则证明该LUN为EXT3文件系统,可以执行步骤203,若判断结果为否,则终止操作。
[0093]表一
【权利要求】
1.ー种日志备份方法,应用于Linux文件系统,其特征在于,包括: 获取日志文件内容,所述日志文件内容包括至少ー个事务日志; 在所述至少一个事务日志中获取第一事务日志,并解析所述第一事务日志; 如果所述第一事务日志中包含新建操作信息或者更改操作信息,则在所述第一事务日志中提取对应的节点信息及目录项信息; 将所述提取出的节点信息及目录项信息写入预设的日志存储空间。
2.根据权利要求1所述的方法,其特征在干, 所述日志文件内容还包括:日志超级块; 在所述至少一个事务日志中获取第一事务日志,并解析所述第一事务日志,包括: 在所述日志文件内容的第一扇区读取所述日志超级块; 在所述日志超级块中获取第一事务序列号和第一事务起始块号; 根据所述第一事务序列号和所述第一事务起始块号读取第一事务起始块; 解析所述第一事务起始块。
3.根据权利要求2所述的方法,其特征在于,所述将所述提取出的节点信息及目录项信息写入预设的日志存储空间,包括: 在所述第一事务起始块中获取第一事务源地址,所述第一事务源地址为所述第一事务的操作对象的存储地址; 根据所述第一事务源地址将所述提取出的节点信息及目录项信息写入所述日志存储空间中对应的第一事务备份地址。
4.根据权利要求1所述的方法,其特征在于,所述方法还包括: 如果所述第一事务日志中包含删除操作信息,则直接跳过该事务。
5.根据权利要求1所述的方法,其特征在于,所述获取日志文件内容,包括: 在文件系统存储空间中获取文件系统超级块; 在所述文件系统超级块中获取日志数据块大小及日志数据块编号; 根据所述日志数据块大小及所述日志数据块编号获取所述文件系统的日志数据块地址; 根据所述日志数据块地址获取日志数据块中存储的所述日志文件内容。
6.根据权利要求5所述的方法,其特征在干,所述根据所述日志数据块地址获取日志数据块中存储的所述日志文件内容,包括: 根据所述日志数据块地址将所述日志数据块中存储的所述日志文件内容复制到预设的日志备份区; 在所述日志备份区获取所述日志文件内容。
7.根据权利要求6所述的方法,其特征在干,所述根据所述日志数据块地址将所述日志数据块中存储的所述日志文件内容复制到预设的日志备份区,包括: 根据所述日志数据块地址获取日志数据块末尾区域的地址; 检测写命令中是否包含所述日志数据块末尾区域的地址; 若是,则暂停写操作,井根据所述日志数据块地址将所述日志数据块中存储的所述日志文件内容复制到所述日志备份区; 复制完成后,恢复写操作。
8.根据权利要求5所述的方法,其特征在干,所述在所述文件系统超级块中获取日志数据块大小及日志数据块编号,包括: 在所述文件系统超级块中获取文件系统类型; 判断所述文件系统类型是否为预设的类型; 若是,则在所述文件系统超级块中获取所述日志数据块大小及所述日志数据块编号。
9.ー种日志备份装置,应用于Linux文件系统,其特征在于,包括: 获取单元,用于获取日志文件内容,所述日志文件内容包括至少ー个事务日志,在所述至少ー个事务日志中获取第一事务日志; 解析単元,用于解析所述获取单元获取的所述第一事务日志; 所述获取単元,还用于当所述第一事务日志中包含新建操作信息或者更改操作信息时,在所述第一事务日志中提取对应的节点信息及目录项信息; 读写单元,用于将所述获取单元提取出的节点信息及目录项信息写入预设的日志存储空间。
10.根据权利要求9所述的装置,其特征在干, 所述日志文件内容还包括:日志超级块; 所述获取単元,还用于在所述日志文件内容的第一扇区读取所述日志超级块,在所述日志超级块中获取第一事务序列号和第一事务起始块号,井根据所述第一事务序列号和所述第一事务起始块号读取第一事务起始块; 所述解析単元,还用于解析所述获取单元读取的所述第一事务起始块。
11.根据权利要求10所述的装置,其特征在于,包括: 所述获取単元,还用于在所述第一事务起始块中获取第一事务源地址,所述第一事务源地址为所述第一事务的操作对象的存储地址; 所述读写単元,还用于根据所述获取单元获取的所述第一事务源地址将所述提取出的节点信息及目录项信息写入所述日志存储空间中对应的第一事务备份地址。
12.根据权利要求9所述的装置,其特征在于,包括: 所述解析単元,还用于当所述第一事务日志中包含删除操作信息时,直接跳过该事务。
13.根据权利要求9所述的装置,其特征在于,包括: 所述获取単元,还用于在文件系统存储空间中获取文件系统超级块,在所述文件系统超级块中获取日志数据块大小及日志数据块编号,根据所述日志数据块大小及所述日志数据块编号获取所述文件系统的日志块地址,井根据所述日志数据块地址获取日志数据块中存储的所述日志文件内容。
14.根据权利要求13所述的装置,其特征在于,包括: 所述读写単元,还用于根据所述日志数据块地址将所述日志数据块中存储的所述日志文件内容复制到预设的日志备份区; 所述获取単元,还用于在所述日志备份区获取所述日志文件内容。
15.根据权利要求14所述的装置,其特征在于,包括: 所述获取単元,还用于根据所述日志数据块地址获取日志数据块末尾区域的地址; 所述读写単元,还用于检测写命令中是否包含所述日志数据块末尾区域的地址; 若是,则暂停写操作,井根据所述日志数据块地址将所述日志数据块中存储的所述日志文件内容复制到所述日志备份区; 复制完成后,恢复写操作。
16.根据权利要求13所述的装置,其特征在干, 所述获取単元,还用于在所述文件系统超级块中获取文件系统类型; 所述日志备份装置还包括判断単元, 所述判断単元,用于判断所述获取单元获取的所述文件系统类型是否为预设的类型;所述获取単元,还用于当所述判断単元的判断结果为是,在所述文件系统超级块中获取所述日志数据块大小及所述日志数据块`编号。
【文档编号】G06F12/02GK103577283SQ201310495537
【公开日】2014年2月12日 申请日期:2013年10月21日 优先权日:2013年10月21日
【发明者】周钊, 赵玮 申请人:华为技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1