一种日志回放方法、装置、设备及计算机可读存储介质制造方法及图纸

技术编号:26170780 阅读:87 留言:0更新日期:2020-10-31 13:40
本申请公开了一种日志回放方法、装置、设备及计算机可读存储介质,应用于分布式文件系统,获取日志系统中第一条有效日志的第一序号;获取OSD本地文件系统中已写入日志的第二序号;判断第一序号与第二序号的差值是否大于1;若是,则将比第二序号大一个的日志序号作为第三序号;判断日志系统中是否存在第三序号对应的日志;若日志系统中存在第三序号对应的日志,则从第三序号对应的日志开始,对OSD本地文件系统进行日志回放。本申请中,在第一序号与第二序号的差值大于1的情况下,会将比第二序号大一个的日志序号作为第三序号,并通过第三序号在日志系统中查找第三序号对应的日志,以此保证能够日志回放的成功率。

A log playback method, device, device and computer-readable storage medium

【技术实现步骤摘要】
一种日志回放方法、装置、设备及计算机可读存储介质
本申请涉及分布式存储
,更具体地说,涉及一种日志回放方法、系统、设备及计算机可读存储介质。
技术介绍
在分布式文件系统中,OSD(Object-basedStorageDevice,对象存储设备)的主要功能是存储数据、复制数据、平衡数据、恢复数据等。一般情况下一块硬盘对应一个OSD,由OSD来对硬盘存储进行管理。当要往OSD中写入数据时,需先将数据写入日志系统,再由日志系统写入OSD本地文件系统中,也即一份数据需经过两次写操作才能写入OSD,由于写日志系统和写OSD本地文件系统是异步进行的,即由两个不同的线程进行处理,所以写入文件系统的日志序号和已经写入OSD本地文件系统的序号的进度是不一样的,为了区分两个序号,需要在日志系统中设置第一条有效日志的序号,及在OSD本地文件系统中设置已写入OSD本地文件系统的最新日志序号,当分布式文件系统发生掉电等异常情况时,需按照分布式文件系统中有效日志及之后的日志进行日志回放。然而,在日志回放过程中,可能出现OSD文件系统中的日志序号比日志系统中的日志序号小至少一号,由此在对分布式存储系统进行日志回放时,无法在日志系统中找到要回放的日志的情况,导致日志回放失败。综上所述,如何提高分布式文件系统的日志回放成功率是目前本领域技术人员亟待解决的问题。
技术实现思路
本申请的目的是提供一种日志回放方法,其能在一定程度上解决如何提高分布式文件系统的日志回放成功率的技术问题。本申请还提供了一种日志回放装置、设备及计算机可读存储介质。为了实现上述目的,本申请提供如下技术方案:一种日志回放方法,应用于分布式文件系统,包括:获取日志系统中第一条有效日志的第一序号;获取OSD本地文件系统中已写入日志的第二序号;判断所述第一序号与所述第二序号的差值是否大于1;若所述第一序号与所述第二序号的差值大于1,则将比所述第二序号大一个的日志序号作为第三序号;判断所述日志系统中是否存在所述第三序号对应的日志;若所述日志系统中存在所述第三序号对应的日志,则从所述第三序号对应的日志开始,对所述OSD本地文件系统进行日志回放。优选的,所述判断所述日志系统中是否存在所述第三序号对应的日志,包括:将所述第一序号对应的日志作为当前日志;判断所述日志系统中当前日志之前的上一日志是否为所述第三序号对应的日志;若上一日志并非所述第三序号对应的日志,则判断上一日志的序号是否小于所述第一序号,若上一日志的序号小于所述第一序号,则将上一日志作为当前日志,返回执行判断所述日志系统中当前日志之前的上一日志是否为所述第三序号对应的日志的步骤,若上一日志的序号大于所述第一序号,则判定所述日志系统中不存在所述第三序号对应的日志;若当前日志的上一日志为所述第三序号对应的日志,则判定所述日志系统中存在所述第三序号对应的日志。优选的,所述判断所述日志系统中当前日志之前的上一日志是否为所述第三序号对应的日志,包括:在所述日志系统中,读取上一日志尾部的日志头信息;判断所述日志头信息中的日志序号是否为所述第三序号;若所述日志头信息中的日志序号为所述第三序号,则基于所述日志头信息获取上一日志的日志数据,计算所述日志数据的实时校验值,判断所述实时校验值是否等于所述日志头信息中的校验值,若所述实时校验值等于所述日志头信息中的校验值,则判定所述日志系统中当前日志之前的上一日志为所述第三序号对应的日志,若所述实时校验值不等于所述日志头信息中的校验值,则判定所述日志系统中当前日志之前的上一日志并非所述第三序号对应的日志;若所述日志头信息中的日志序号并非所述第三序号,则判定所述日志系统中当前日志之前的上一日志并非所述第三序号对应的日志。优选的,所述基于所述日志头信息获取上一日志的日志数据,包括:在所述日志头信息中获取日志数据长度、日志数据后补零长度;基于当前日志的偏移地址、所述日志头信息的长度、所述日志数据长度、所述日志数据后补零长度,读取所述日志数据。优选的,所述基于当前日志的偏移地址、所述日志头信息的长度、所述日志数据长度、所述日志数据后补零长度,读取所述日志数据,包括:计算当前日志的偏移地址减去所述日志头信息的长度后得到的第一偏移地址;计算所述第一偏移地址减去所述日志数据后补零长度后得到的第二偏移地址;判断所述第二偏移地址是否小于所述日志数据长度;若所述第二偏移地址小于所述日志数据长度,则计算所述日志数据长度与所述第二偏移地址的长度差值,从所述日志系统的尾部向前读取与所述长度差值相等的第一数据,读取所述日志系统的头部到所述第二偏移地址间的第二数据,将所述第一数据和所述第二数据合并为所述日志数据;若所述第二偏移地址大于等于所述日志数据长度,则从所述第二偏移地址向前读取与所述日志数据长度相等的所述日志数据。一种日志回放装置,应用于分布式文件系统,包括:第一获取模块,用于获取日志系统中第一条有效日志的第一序号;第二获取模块,用于获取OSD本地文件系统中已写入日志的第二序号;第一设置模块,用于将比所述第二序号大一个的日志序号作为第三序号;第一判断模块,用于判断所述日志系统中是否存在所述第三序号对应的日志;若所述日志系统中存在所述第三序号对应的日志,则从所述第三序号对应的日志开始,对所述OSD本地文件系统进行日志回放。优选的,所述第一判断模块包括:第一设置子模块,用于将所述第一序号对应的日志作为当前日志;第一判断子模块,用于判断所述日志系统中当前日志之前的上一日志是否为所述第三序号对应的日志;若上一日志并非所述第三序号对应的日志,则判断上一日志的序号是否小于所述第一序号,若上一日志的序号小于所述第一序号,则将上一日志作为当前日志,返回执行判断所述日志系统中当前日志之前的上一日志是否为所述第三序号对应的日志的步骤,若上一日志的序号大于所述第一序号,则判定所述日志系统中不存在所述第三序号对应的日志;若当前日志的上一日志为所述第三序号对应的日志,则判定所述日志系统中存在所述第三序号对应的日志。优选的,所述第一判断子模块包括:第一读取单元,用于在所述日志系统中,读取上一日志尾部的日志头信息;第一判断单元,用于判断所述日志头信息中的日志序号是否为所述第三序号;若所述日志头信息中的日志序号为所述第三序号,则基于所述日志头信息获取上一日志的日志数据,计算所述日志数据的实时校验值,判断所述实时校验值是否等于所述日志头信息中的校验值,若所述实时校验值等于所述日志头信息中的校验值,则判定所述日志系统中当前日志之前的上一日志为所述第三序号对应的日志,若所述实时校验值不等于所述日志头信息中的校验值,则判定所述日志系统中当前日志之前的上一日志并非所述第三序号对应的日志;若所述日志头信息中的日志序号并非所述第三序号,则判定所述日志系统中当前日志之前本文档来自技高网...

【技术保护点】
1.一种日志回放方法,其特征在于,应用于分布式文件系统,包括:/n获取日志系统中第一条有效日志的第一序号;/n获取OSD本地文件系统中已写入日志的第二序号;/n判断所述第一序号与所述第二序号的差值是否大于1;/n若所述第一序号与所述第二序号的差值大于1,则将比所述第二序号大一个的日志序号作为第三序号;/n判断所述日志系统中是否存在所述第三序号对应的日志;/n若所述日志系统中存在所述第三序号对应的日志,则从所述第三序号对应的日志开始,对所述OSD本地文件系统进行日志回放。/n

【技术特征摘要】
1.一种日志回放方法,其特征在于,应用于分布式文件系统,包括:
获取日志系统中第一条有效日志的第一序号;
获取OSD本地文件系统中已写入日志的第二序号;
判断所述第一序号与所述第二序号的差值是否大于1;
若所述第一序号与所述第二序号的差值大于1,则将比所述第二序号大一个的日志序号作为第三序号;
判断所述日志系统中是否存在所述第三序号对应的日志;
若所述日志系统中存在所述第三序号对应的日志,则从所述第三序号对应的日志开始,对所述OSD本地文件系统进行日志回放。


2.根据权利要求1所述的方法,其特征在于,所述判断所述日志系统中是否存在所述第三序号对应的日志,包括:
将所述第一序号对应的日志作为当前日志;
判断所述日志系统中当前日志之前的上一日志是否为所述第三序号对应的日志;
若上一日志并非所述第三序号对应的日志,则判断上一日志的序号是否小于所述第一序号,若上一日志的序号小于所述第一序号,则将上一日志作为当前日志,返回执行判断所述日志系统中当前日志之前的上一日志是否为所述第三序号对应的日志的步骤,若上一日志的序号大于所述第一序号,则判定所述日志系统中不存在所述第三序号对应的日志;
若当前日志的上一日志为所述第三序号对应的日志,则判定所述日志系统中存在所述第三序号对应的日志。


3.根据权利要求2所述的方法,其特征在于,所述判断所述日志系统中当前日志之前的上一日志是否为所述第三序号对应的日志,包括:
在所述日志系统中,读取上一日志尾部的日志头信息;
判断所述日志头信息中的日志序号是否为所述第三序号;
若所述日志头信息中的日志序号为所述第三序号,则基于所述日志头信息获取上一日志的日志数据,计算所述日志数据的实时校验值,判断所述实时校验值是否等于所述日志头信息中的校验值,若所述实时校验值等于所述日志头信息中的校验值,则判定所述日志系统中当前日志之前的上一日志为所述第三序号对应的日志,若所述实时校验值不等于所述日志头信息中的校验值,则判定所述日志系统中当前日志之前的上一日志并非所述第三序号对应的日志;
若所述日志头信息中的日志序号并非所述第三序号,则判定所述日志系统中当前日志之前的上一日志并非所述第三序号对应的日志。


4.根据权利要求3所述的方法,其特征在于,所述基于所述日志头信息获取上一日志的日志数据,包括:
在所述日志头信息中获取日志数据长度、日志数据后补零长度;
基于当前日志的偏移地址、所述日志头信息的长度、所述日志数据长度、所述日志数据后补零长度,读取所述日志数据。


5.根据权利要求4所述的方法,其特征在于,所述基于当前日志的偏移地址、所述日志头信息的长度、所述日志数据长度、所述日志数据后补零长度,读取所述日志数据,包括:
计算当前日志的偏移地址减去所述日志头信息的长度后得到的第一偏移地址;
计算所述第一偏移地址减去所述日志数据后补零长度后得到的第二偏移地址;
判断所述第二偏移地址是否小于所述日志数据长度;
若所述第二偏移地址...

【专利技术属性】
技术研发人员:王庆海孟祥瑞
申请(专利权)人:广东浪潮大数据研究有限公司
类型:发明
国别省市:广东;44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1