一种管理日志的方法和装置制造方法及图纸

技术编号:21033956 阅读:32 留言:0更新日期:2019-05-04 05:19
本申请公开了一种管理日志的方法和装置,涉及计算机技术领域,有助于节省刷盘所耗费的时间。该方法应用于缓存,缓存包括缓存控制器和日志盘,缓存控制器用于将数据保存到日志盘,日志盘包括多条日志,每条日志对应一个快照操作的数据或一个IO操作的数据;方法包括:接收IO操作,并获取第一时间标签;在确定第一时间标签早于系统时间的当前值的情况下,为该IO操作配置第二时间标签,系统时间指示缓存控制器进行快照操作的时间,缓存控制器每进行一次快照操作,系统时间相应更新一次,第二时间标签为执行第二时间标签配置操作时的系统时间或执行第二时间标签配置操作时的操作时间;将该IO操作的数据写入日志盘,该IO操作的数据包括第二时间标签。

【技术实现步骤摘要】
一种管理日志的方法和装置
本申请涉及计算机
,尤其涉及一种管理日志的方法和装置。
技术介绍
快照(snapshot)是存储的一个重要特性,其一个作用是能够进行在线数据的备份与恢复。快照是关于指定数据集合的一个完全可用拷贝,该拷贝包括相应数据在某个时间点(即拷贝开始的时间点)的映像。快照可以是其所指定的数据的一个副本。而从技术角度来讲,快照是指向保存在存储系统中的数据的引用标记或指针。存储系统每接收到一个快照操作,会在日志盘的一条日志(log)中记录该快照操作的数据。日志盘是存储系统的缓存(cache)中的存储空间。一个快照操作的数据包括该快照操作的标识以及该快照操作的时间标签等,不同快照操作的时间标签不同。存储系统每接收到一个输入输出(input/output,IO)操作(具体是指写操作),会在日志盘的一条日志中记录该IO操作的数据。一个IO操作的数据包括该IO操作的标识、该IO操作携带的待写数据以及该IO操作的时间标签等,不同IO操作的时间标签可以相同也可以不同。存储系统接收到的第1个快照操作所指定的数据集合,是时间标签早于或等于该第1个快照操作的时间标签的IO操作所携带的待写数据构成的集合;存储系统接收到的其他快照操作所指定的数据集合,是时间标签晚于上一个快照操作的时间标签,且早于或等于该其他快照操作的时间标签的IO操作所携带的待写数据构成的集合。通常,存储系统先将IO操作的数据写入日志盘,然后再通过日志回放,将日志盘中的IO操作所携带的待写数据刷盘至持久性介质中。并且,存储系统需要按照以下规则进行刷盘:完成对一个快照操作所指定的数据集合中的所有数据的刷盘之后,才能执行对下一个快照操作所指定的数据的刷盘。为了方便描述,下文中将记录快照操作的数据的日志称为snapLog,将记录IO操作的数据的日志称为dataLog。将一个snapLog中记录的快照操作所指定的数据所在的dataLog,称为该snapLog对应的dataLog。如果不对日志进行管理,则可能出现snapLog之后存在该snapLog对应的dataLog的情况,这样,在日志回放时,需要把日志盘上所有log回放完,才能启动对该快照操作所指定的数据的刷盘,这会导致刷盘需要耗费的时间较长。
技术实现思路
为了节省刷盘所耗费的时间,本申请提供了一种管理日志的方法和装置。第一方面,本申请提供了一种管理日志的方法。该方法可以应用于缓存,缓存包括缓存控制器和日志盘,缓存控制器用于将数据保存到日志盘,日志盘包括多条日志,每条日志对应一个快照操作的数据或一个IO操作的数据;方法包括:接收IO操作,并获取该IO操作的第一时间标签;在确定该IO操作的第一时间标签早于系统时间的当前值的情况下,为该IO操作配置第二时间标签,系统时间指示缓存控制器进行快照操作的时间,缓存控制器每进行一次快照操作,系统时间相应更新一次,第二时间标签为执行第二时间标签配置操作时的系统时间或执行第二时间标签配置操作时的操作时间;将该IO操作的数据写入日志盘,其中该IO操作的数据包括第二时间标签。该技术方案中,缓存控制器若确定某一IO操作的时间标签早于系统时间的当前值,则重新为该IO操作配置时间标签。这样,能够保证后写入日志盘的IO操作的时间标签均等于或晚于,先写入日志盘的快照操作的时间标签。如此一来,可以实现在日志回放时,每遇到一条snapLog,就可以认为针对该snapLog对应的快照操作所指定的数据已经全部回放完毕,从而可以启动对该快照操作所指定的数据的刷盘,进而节省刷盘时间。另外该方法可以支持缓存控制器并发进行至少两个操作(包括IO操作和/或快照操作),因此能够提高cache的性能,以及因及时执行快照操作而提高快照性能。在一种可能的设计中,在确定该IO操作的第一时间标签早于系统时间的当前值的情况下,为该IO操作配置第二时间标签,可以包括:产生错误指示,根据错误指示重新进行该IO操作,在重新进行该IO操作的过程中,为该IO操作配置第二时间标签。其中,进行IO操作,是指从对接收到的IO操作进行处理开始至将该IO操作的数据写入日志盘的过程。该可能的设计,提供了一种配置第二时间标签的实现方式,具体实现时不限于此。在一种可能的设计中,将该IO操作的数据写入日志盘,可以包括:确定第二时间标签等于或晚于系统时间的当前值时,将该IO操作的数据写入日志盘。在一种可能的设计中,该方法还可以包括:若该IO操作的数据写入日志盘失败,则为该IO操作的配置第三时间标签,将该IO操作的数据写入日志盘,其中该IO操作的数据包括第三时间标签;其中,第三时间标签为执行第三时间标签配置操作时的系统时间或执行第三时间标签配置操作时的操作时间。该可能的设计提供了一种IO操作写入失败时的处理方式。在一种可能的设计中,获取该IO操作的第一时间标签,可以包括:在接收到该IO操作时读取系统时间,将接收到该IO操作时的系统时间设置为第一时间标签。或者,将执行第一时间标签配置操作时的操作时间设置为第一时间标签。或者,将接收到该IO操作的接收时间设置为第一时间标签。当然本申请不限于此,例如,该IO操作中可以携带一个时间信息,然后,直接将该时间信息设置为第一时间标签。在一种可能的设计中,接收到该IO操作时的系统时间为进行第一快照操作的时间;在设置第一时间标签之后,以及在确定该IO操作的第一时间标签与系统时间的当前值的关系之前,该方法还可以包括:进行第二快照操作,以及更新系统时间,更新后的系统时间为进行第二快照操作的时间。其中,第一快照操作是最近一次写入日志盘的快照操作。更新后的系统时间可以作为后续接收到的第二快照操作的下一个快照操作的时间标签,以及在接收到该下一个快照操作之前接收到的IO操作的时间标签。在一种可能的设计中,进行第二快照操作,可以包括:获取第二快照操作的第四时间标签;在确定第二快照操作的第四时间标签早于系统时间的当前值的情况下,为第二快照操作配置第五时间标签,第五时间标签为执行第五时间标签配置操作时的系统时间或执行第五时间标签配置操作时的操作时间;将第二快照操作的数据写入日志盘,其中第二快照操作的数据包括第五时间标签。可选的,若第五时间标签等于或晚于系统时间的当前值,则将第二快照操作的数据写入日志盘。这样,有助于实现写入日志盘的任意两个快照操作的时间标签不同,从而可以支持缓存控制器并发进行多个快照操作,因此能够提高cache的性能,以及因及时执行快照操作而提高快照性能。在一种可能的设计中,该方法还可以包括:若第二快照操作的数据写入失败,则获取第二快照操作的第六时间标签,将第二快照操作的数据写入日志盘,其中,第二快照操作的数据包括第六时间标签,第六时间标签是执行第六时间标签配置操作时的系统时间或执行所述第六时间标签配置操作时的操作时间。若第二快照操作的数据写入成功,则更新系统时间的值;其中,执行该获取步骤时系统时间的值。或者,若第二快照操作的数据写入失败,则输出第二快照操作执行失败的信息。该可能的设计提供了两种快照操作的数据写入失败时缓存控制器的处理方式。第二方面,本申请提供了一种管理日志的方法。该方法可以应用于缓存,缓存包括缓存控制器和日志盘,缓存控制器用于将数据保存到日志盘,日志盘包括多条日志,每条日志对应本文档来自技高网
...

【技术保护点】
1.一种管理日志的方法,其特征在于,应用于缓存,所述缓存包括缓存控制器和日志盘,所述缓存控制器用于将数据保存到所述日志盘,所述日志盘包括多条日志,每条日志对应一个快照操作的数据或一个IO操作的数据;所述方法包括:接收IO操作,并获取所述IO操作的第一时间标签;在确定所述IO操作的第一时间标签早于系统时间的当前值的情况下,为所述IO操作配置第二时间标签,所述系统时间指示所述缓存控制器进行快照操作的时间,所述缓存控制器每进行一次快照操作,所述系统时间相应更新一次,所述第二时间标签为执行所述第二时间标签配置操作时的系统时间或执行所述第二时间标签配置操作时的操作时间;将所述IO操作的数据写入所述日志盘,其中所述IO操作的数据包括所述第二时间标签。

【技术特征摘要】
1.一种管理日志的方法,其特征在于,应用于缓存,所述缓存包括缓存控制器和日志盘,所述缓存控制器用于将数据保存到所述日志盘,所述日志盘包括多条日志,每条日志对应一个快照操作的数据或一个IO操作的数据;所述方法包括:接收IO操作,并获取所述IO操作的第一时间标签;在确定所述IO操作的第一时间标签早于系统时间的当前值的情况下,为所述IO操作配置第二时间标签,所述系统时间指示所述缓存控制器进行快照操作的时间,所述缓存控制器每进行一次快照操作,所述系统时间相应更新一次,所述第二时间标签为执行所述第二时间标签配置操作时的系统时间或执行所述第二时间标签配置操作时的操作时间;将所述IO操作的数据写入所述日志盘,其中所述IO操作的数据包括所述第二时间标签。2.根据权利要求1所述的方法,其特征在于,所述在确定所述IO操作的第一时间标签早于系统时间的当前值的情况下,为所述IO操作配置第二时间标签包括:产生错误指示,根据所述错误指示重新进行所述IO操作,在重新进行所述IO操作的过程中,为所述IO操作配置第二时间标签。3.根据权利要求1或2所述的方法,其特征在于,所述将所述IO操作的数据写入所述日志盘包括:确定所述第二时间标签等于或晚于所述系统时间的当前值时,将所述IO操作的数据写入所述日志盘。4.根据权利要求1至3任一项所述的方法,其特征在于,所述方法还包括:若所述IO操作的数据写入所述日志盘失败,则为所述IO操作的配置第三时间标签,将所述IO操作的数据写入所述日志盘,其中所述IO操作的数据包括所述第三时间标签;其中,所述第三时间标签为执行所述第三时间标签配置操作时的系统时间或执行所述第三时间标签配置操作时的操作时间。5.根据权利要求1至4任一项所述的方法,其特征在于,所述获取所述IO操作的第一时间标签包括:在接收到所述IO操作时读取所述系统时间,将接收到所述IO操作时的系统时间设置为所述第一时间标签;或者,将执行所述第一时间标签配置操作时的操作时间设置为所述第一时间标签;或者,将接收到所述IO操作的接收时间设置为所述第一时间标签。6.根据权利要求5所述的方法,其特征在于,所述接收到所述IO操作时的系统时间为进行第一快照操作的时间;在设置所述第一时间标签之后,以及在所述确定所述IO操作的第一时间标签与系统时间的当前值的关系之前,所述方法还包括:进行第二快照操作,以及更新所述系统时间,所述更新后的系统时间为进行所述第二快照操作的时间。7.根据权利要求6所述的方法,其特征在于,所述进行第二快照操作包括:获取所述第二快照操作的第四时间标签;在确定所述第二快照操作的第四时间标签早于系统时间的当前值的情况下,为所述第二快照操作配置第五时间标签,所述第五时间标签为执行所述第五时间标签配置操作时的系统时间或执行所述第五时间标签配置操作时的操作时间;将所述第二快照操作的数据写入所述日志盘,其中所述第二快照操作的数据包括所述第五时间标签。8.一种缓存控制器,其特征在于,所述缓存控制器用于将数据保存到日志盘,所述日志盘包括多条日志,每条日志对应一个快照操作的数据或一个IO操作的数据;所述缓存控制器包括:接收单元,用于接收IO操作;获取单元,用于获...

【专利技术属性】
技术研发人员:王霖杨忠兵
申请(专利权)人:华为技术有限公司
类型:发明
国别省市:广东,44

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

1