CN107291924A - 一种用于灾备系统的同步复制日志控制方法和系统 - Google Patents

一种用于灾备系统的同步复制日志控制方法和系统 Download PDF

Info

Publication number
CN107291924A
CN107291924A CN201710515917.9A CN201710515917A CN107291924A CN 107291924 A CN107291924 A CN 107291924A CN 201710515917 A CN201710515917 A CN 201710515917A CN 107291924 A CN107291924 A CN 107291924A
Authority
CN
China
Prior art keywords
data block
synchronous
chained list
record
block
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201710515917.9A
Other languages
English (en)
Other versions
CN107291924B (zh
Inventor
夏文
刘应涛
付忞
吴大立
古亮
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sangfor Technologies Co Ltd
Original Assignee
Sangfor Technologies Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Sangfor Technologies Co Ltd filed Critical Sangfor Technologies Co Ltd
Priority to CN201710515917.9A priority Critical patent/CN107291924B/zh
Publication of CN107291924A publication Critical patent/CN107291924A/zh
Application granted granted Critical
Publication of CN107291924B publication Critical patent/CN107291924B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1448Management of the data involved in backup or backup restore
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/1805Append-only file systems, e.g. using logs or journals to store data
    • G06F16/1815Journaling file systems

Abstract

本发明公开了一种用于灾备系统的同步复制日志控制方法和系统,该方法包括:预先设置内存日志的内存数据块ID记录集和磁盘日志的磁盘数据块ID记录集,内存数据块ID记录集和磁盘数据块ID记录集相同,定义所有的磁盘数据块ID记录集均为发生数据修改而需要同步复制的数据块集合;实时获取生产中心和灾备中心的数据修改操作信息,以获得需要同步复制的数据块ID;判断发生修改操作的数据块ID是否属于内存数据块ID记录集;若是,则禁止触发磁盘日志的更新;若否,则将发生修改操作的数据块ID写入内存数据块ID记录集和磁盘数据块ID记录集。挖掘了存储系统数据修改操作的时间和空间局部性,降低了灾备系统的写入延迟,提高了灾备复制性能。

Description

一种用于灾备系统的同步复制日志控制方法和系统
技术领域
本发明涉及灾备技术领域,特别是涉及一种用于灾备系统的同步复制日志控制方法和系统。
背景技术
一般而言,不容许数据丢失(即RPO=0)的灾备系统采取了基于实时同步复制日志记录的方案,以保障数据同步复制的事务原子性和应对系统各种异常处理。该同步复制将需要记录本地生产中心的写入情况和灾备中心的写入情况,这样可以保障每次写请求的事务原子性:针对系统异常后,根据日志记录信息重放该写请求同步复制操作,即可恢复灾备中心与生产中心的数据同步。但是频繁的日志记录带来了频繁的系统IO操作,这极大地增加了灾备系统的同步复制时延。
因此,如何降低灾备系统的延迟,以提高存储系统的性能,是本领域技术人员目前需要解决的技术问题。
发明内容
本发明的目的是提供一种用于灾备系统的同步复制日志控制方法和系统,可以降低灾备系统的延迟,以提高存储系统的性能。
为解决上述技术问题,本发明提供了如下技术方案:
一种用于灾备系统的同步复制日志控制方法,包括:
预先设置内存日志的内存数据块ID记录集和磁盘日志的磁盘数据块ID记录集,所述内存数据块ID记录集和所述磁盘数据块ID记录集相同,定义所有的磁盘数据块ID记录集均为发生数据修改而需要同步复制的数据块集合;
实时获取生产中心和灾备中心的数据修改操作信息,以获得需要同步复制的数据块ID;
判断发生修改操作的数据块ID是否属于所述内存数据块ID记录集;
若是,则禁止触发磁盘日志的更新;
若否,则将所述发生修改操作的数据块ID写入所述内存数据块ID记录集和所述磁盘数据块ID记录集。
优选地,还包括:
判断所述灾备中心的写请求操作是否完成;
若是,则将所述灾备中心的写请求操作完成日志更新至所述内存日志中。
优选地,预先设置内存日志的内存数据块ID记录集和磁盘日志的磁盘数据块ID记录集,所述内存数据块ID记录集和所述磁盘数据块ID记录集相同,包括:
预先在内存日志中设置四个链表,分别为空闲链表、未同步链表、已同步链表和更新链表;
设置内存数据块ID记录集,将所述内存数据块ID记录集中对应的数据块根据自身的同步状态置于所述未同步链表或所述已同步链表;
将所述未同步链表和所述已同步链表中的元素置于预设缓存中,所述预设缓存中的各元素记录了对应的内存数据块ID记录集以及该内存数据块ID对应的引用次数,引用次数用于表示该内存数据块ID记录集的同步信息;
根据所述内存数据块ID记录集,设置一致的磁盘数据块ID记录集,将所述磁盘数据块ID记录集置于所述磁盘日志中。
优选地,所述判断所述发生修改操作的数据块ID是否属于所述内存数据块ID记录集,包括:
判断所述发生修改操作的数据块ID是否在所述预设缓存记录中。
优选地,所述若否,则将所述同步复制操作信息的数据块ID写入所述内存数据块ID记录集和所述磁盘数据块ID记录集,包括:
若判定所述发生修改操作的数据块ID不在所述预设缓存记录中,则检查所述空闲链表中是否有空闲元素;
若是,则根据所述发生修改操作的数据块ID,选取空闲元素进行赋值并移动到所述未同步链表中,并相应更新所述磁盘日志,其中,更新的元素在未写入到所述磁盘日志前保存在所述更新链表中,在写入磁盘日志后,将所述更新链表中的元素移动到所述未同步链表中;
若否,则判断所述已同步链表是否为空;
若否,则对所述已同步链表中的元素进行淘汰;
若是,则阻塞所述同步复制操作的写请求,并根据预设缓存替代算法在所述已同步链表中寻找可淘汰的元素,将该可淘汰的元素的值更新为该写请求,将该元素的引用计数加1并放至所述未同步链表中;
将所述预设缓存中的元素更新至所述磁盘日志。
优选地,还包括:
若判定所述发生修改操作的数据块ID在所述预设缓存记录中,则将该发生修改操作数据块ID对应的数据块的引用计数加1。
优选地,还包括:
判断当前灾备系统是否发生故障;
若是,则判断当前故障是否恢复;
若是,则根据灾备系统的故障类型对应调取所述内存日志或所述磁盘日志中记录的对应数据块对灾备系统进行数据同步状态恢复。
优选地,所述根据灾备系统的故障类型对应调取所述内存日志或所述磁盘日志中记录的对应数据块对灾备系统进行数据同步状态恢复,包括:
当所述灾备系统的故障类型为灾备端设备断线时,在所述灾备端设备重新连接时,将所述内存日志中的未同步链表中记录的所有数据块进行重传,对灾备系统进行数据同步状态恢复;
当所述灾备系统的故障类型为生产中心故障时,调取所述磁盘日志中记录的所有数据块进行重传,对灾备系统进行数据同步状态恢复。
一种用于灾备系统的同步复制日志控制系统,包括:
预处理模块,用于预先设置内存日志的内存数据块ID记录集和磁盘日志的磁盘数据块ID记录集,所述内存数据块ID记录集和所述磁盘数据块ID记录集相同,定义所有的磁盘数据块ID记录集均为发生数据修改而需要同步复制的数据块集合;
获取模块,用于实时获取生产中心和灾备中心的数据修改操作信息,以获得需要同步复制的数据块ID;
第一判断模块,用于判断发生修改操作的数据块ID是否属于所述内存数据块ID记录集;
第一执行模块,用于在判定发生修改操作的数据块ID属于所述内存数据块ID记录集时,禁止触发磁盘日志的更新;
第二执行模块,用于在判定发生修改操作的数据块ID不属于所述内存数据块ID记录集时,将所述发生修改操作的数据块ID写入所述内存数据块ID记录集和所述磁盘数据块ID记录集。
优选地,还包括:
第二判断模块,用于判断所述灾备中心的写请求操作是否完成;
更新模块,用于在判定所述灾备中心的写请求操作完成时,将所述灾备中心的写请求操作完成日志更新至所述内存日志中。
优选地,所述预处理模块包括:
第一预处理单元,用于预先在内存日志中设置四个链表,分别为空闲链表、未同步链表、已同步链表和更新链表;
第二预处理单元,用于设置内存数据块ID记录集,将所述内存数据块ID记录集中对应的数据块根据自身的同步状态置于所述未同步链表或所述已同步链表;
第三预处理单元,用于将所述未同步链表和所述已同步链表中的元素置于预设缓存中,所述预设缓存中的各元素记录了对应的内存数据块ID记录集以及该内存数据块ID对应的引用次数,引用次数用于表示该内存数据块ID记录集的同步信息;
第四预处理单元,用于根据所述内存数据块ID记录集,设置一致的磁盘数据块ID记录集,将所述磁盘数据块ID记录集置于所述磁盘日志中。
优选地,所述第一判断模块包括:
第一判断单元,用于判断所述发生修改操作的数据块ID是否在所述预设缓存记录中。
优选地,所述第二执行模块包括:
第一执行单元,用于在判定所述发生修改操作的数据块ID不在所述预设缓存记录中时,检查所述空闲链表中是否有空闲元素;
第二执行单元,用于在检测出所述空闲链表中有空闲元素时,根据所述发生修改操作的数据块ID,选取空闲元素进行赋值并移动到所述未同步链表中,并相应更新所述磁盘日志,其中,更新的元素在未写入到所述磁盘日志前保存在所述更新链表中,在写入磁盘日志后,将所述更新链表中的元素移动到所述未同步链表中;
第二判断单元,用于在检测出所述空闲链表中没有空闲元素时,判断所述已同步链表是否为空;
第三执行单元,用于在判定所述已同步链表不为空时,对所述已同步链表中的元素进行淘汰;
第四执行单元,用于在判定所述已同步链表为空时,阻塞所述同步复制操作的写请求,并根据预设缓存替代算法在所述已同步链表中寻找可淘汰的元素,将该可淘汰的元素的值更新为该写请求,将该元素的引用计数加1并放至所述未同步链表中;
第五执行单元,用于将所述预设缓存中的元素更新至所述磁盘日志。
优选地,还包括:
第三执行模块,用于在判定所述发生修改操作的数据块ID在所述预设缓存记录中时,将该发生修改操作数据块ID对应的数据块的引用计数加1。
优选地,还包括:
第三判断模块,用于判断当前灾备系统是否发生故障;
第四判断模块,用于在判定当前灾备系统发生故障后,判断当前故障是否恢复;
第四执行模块,用于在判定当前故障恢复时,根据灾备系统的故障类型对应调取所述内存日志或所述磁盘日志中记录的对应数据块对灾备系统进行数据同步状态恢复。
优选地,所述第四执行模块包括:
第一恢复单元,用于当所述灾备系统的故障类型为灾备端设备断线时,在所述灾备端设备重新连接时,将所述内存日志中的未同步链表中记录的所有数据块进行重传,对灾备系统进行数据同步状态恢复;
第二恢复单元,用于当所述灾备系统的故障类型为生产中心故障时,调取所述磁盘日志中记录的所有数据块进行重传,对灾备系统进行数据同步状态恢复。
与现有技术相比,上述技术方案具有以下优点:
本发明实施例所提供的一种用于灾备系统的同步复制日志控制方法,包括:预先设置内存日志的内存数据块ID记录集和磁盘日志的磁盘数据块ID记录集,内存数据块ID记录集和磁盘数据块ID记录集相同,定义所有的磁盘数据块ID记录集均为发生数据修改而需要同步复制的数据块集合;实时获取生产中心和灾备中心的数据修改操作信息,以获得需要同步复制的数据块ID;判断发生修改操作的数据块ID是否属于内存数据块ID记录集;若是,则禁止触发磁盘日志的更新;若否,则将发生修改操作的数据块ID写入内存数据块ID记录集和磁盘数据块ID记录集。通过建立内存日志和磁盘日志进行协同工作,通过内存日志和磁盘日志维持一个相同的频繁修改的数据块ID记录集,当有同步复制的写请求时,对于内存日志有日志记录的写请求就免去了更新到磁盘日志的操作,有效挖掘写请求访问的时间局部性来减少磁盘日志的IO操作,灾备中心写请求操作完成日志更新至内存日志中,大大减少了同步复制事务中磁盘日志的IO操作,相对于磁盘日志的IO操作来说,内存日志的IO操作几乎没有时间延迟,从而大大降低了灾备系统的延迟,从而提高了存储系统的性能。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明一种具体实施方式所提供的用于灾备系统的同步复制日志控制方法流程图;
图2为本发明一种具体实施方式所提供的内存日志和磁盘日志示意图;
图3为本发明一种具体实施方式所提供的整体写复制操作流程图;
图4为本发明一种实施方式所提供的写请求日志工作原理流程;
图5为本发明一种实施方式所提供的灾备端掉线异常处理流程图;
图6为本发明一种实施方式所提供的生产端意外崩溃处理流程图;
图7为本发明一种具体实施方式所提供的用于灾备系统的同步复制日志控制系统结构示意图。
具体实施方式
本发明的核心是提供一种用于灾备系统的同步复制日志控制方法和系统,可以降低灾备系统的延迟,以提高存储系统的性能。
为了使本发明的上述目的、特征和优点能够更为明显易懂,下面结合附图对本发明的具体实施方式做详细的说明。
在以下描述中阐述了具体细节以便于充分理解本发明。但是本发明能够以多种不同于在此描述的其它方式来实施,本领域技术人员可以在不违背本发明内涵的情况下做类似推广。因此本发明不受下面公开的具体实施方式的限制。
请参考图1、图2和图3,图1为本发明一种具体实施方式所提供的用于灾备系统的同步复制日志控制方法流程图;图2为本发明一种具体实施方式所提供的内存日志和磁盘日志示意图;图3为本发明一种具体实施方式所提供的整体写复制操作流程图。
本发明的一种具体实施方式提供了一种用于灾备系统的同步复制日志控制方法,包括:
S11:预先设置内存日志的内存数据块ID记录集和磁盘日志的磁盘数据块ID记录集,内存数据块ID记录集和磁盘数据块ID记录集相同,定义所有的磁盘数据块ID记录集均为发生数据修改而需要同步复制的数据块集合。
在本实施方式中,设置了内存日志和磁盘日志协同工作的工作机制,即应用对内存和磁盘日志的联合控制方法。其中,由于内存数据块ID记录集和磁盘数据块ID记录集相同,因此,内存日志和磁盘日志共同维持了一个相同的数据块ID记录集。内存数据块ID记录集和磁盘数据块ID记录集标记了最近发生变化的数据块的同步和修改情况。所谓的定义所有的磁盘数据块均为同步复制数据块,即默认磁盘日志中的所有的磁盘数据块均是灾备系统的写操作时对应的数据块。
S12:实时获取生产中心和灾备中心的数据修改操作信息,以获得需要同步复制的数据块ID。即获取灾备系统中的写请求操作的完成信息。
S13:判断发生修改操作的数据块ID是否属于内存数据块ID记录集。
即判断当前灾备系统中写请求操作对应的数据块的ID是否属于内存数据块ID记录集,由于默认内存数据块ID记录集对应的内存数据块是发生变化的数据块,即进行写操作对应的数据块,但是并不能确定当前写操作对应的数据块一定在记录的数据块中,因此,在此进行判断同步复制操作信息的数据块ID是否属于内存数据块ID记录集。
S14:若是,则禁止触发磁盘日志的更新。
S15:若否,则将发生修改操作的数据块ID写入内存数据块ID记录集和磁盘数据块ID记录集。
本实施方式通过建立内存日志和磁盘日志进行协同工作,通过内存日志和磁盘日志维持一个相同的频繁修改的数据块ID记录集,当有同步复制的写请求时,对于内存日志有日志记录的写请求就免去了更新到磁盘日志的操作,有效挖掘写请求访问的时间局部性来减少磁盘日志的IO操作,灾备中心写请求操作完成日志更新至内存日志中,大大减少了同步复制事务中磁盘日志的IO操作,相对于磁盘日志的IO操作来说,内存日志的IO操作几乎没有时间延迟,从而大大降低了灾备系统的延迟,从而提高了存储系统的性能。
当同步复制操作信息的数据块不属于内存数据块ID记录集对应的数据块集合时,将该同步复制操作信息的数据块ID进行记录。即加入至内存日志和磁盘日志,以使内存日志和磁盘日志更加完整。
进一步地,还包括:
判断灾备中心的写请求操作是否完成。
若是,则将灾备中心的写请求操作完成日志更新至内存日志中。
在本实施方式中,以内存日志和磁盘日志中均包括五个数据块为例进行说明,IDx、IDy、IDz、IDi、IDj为五个数据块的ID,IDk为被淘汰的元素。其中,内存日志支持LRU等多次替换算法,支持查询操作。如图2所示,采用了二级日志方案,内存日志和磁盘日志协同记录同步复制事务,通过内存日志和磁盘日志维持一个相同的频繁修改的数据块ID记录集,当有新的同步复制操作发起时,检测该同步复制操作的数据块ID是否在内存日志的内存数据块ID记录集中(一般这个集合控制在很小的范围内,通常是20-100个,而且由于日志信息仅记录数据块对应的元数据信息,所以占用的存储空间都很小,一般都小于4KB),如果不在,则写入内存日志和磁盘日志的数据块ID集合;如果在,则不需要触发磁盘日志的更新操作。在这里,磁盘日志将不记录同步复制的情况,而是由内存日志记录同步复制的完成情况。
如图3所示,在生产中心当产生新的写请求时,查询内存日志,即缓存日志,如无记录,则更新缓存和磁盘日志,进行写操作执行,然后发送数据至灾备中心,灾备中心进行写操作执行,然后反馈信息至生产中心,生产中心更新缓存日志,确认返回成功。
磁盘日志将不记录同步复制的完成情况,而内存日志记录同步复制的完成情况。换言之,在本实施方式中,灾备系统的写请求操作完成的日志将更新至内存日志中,这样最大化地减少了同步复制事务过程中的磁盘日志的IO操作。有效挖掘写请求的访问时间局部性来减少磁盘日志的IO操作。由于内存的IO操作速度极快,相对于磁盘日志的IO操作来说,内存日志的IO操作几乎没有时间延迟,从而大大降低了灾备系统的延迟,从而提高了存储系统的性能。
请参考图4,图4为本发明一种实施方式所提供的写请求日志工作原理流程。
在本发明的一种实施方式中,预先设置内存日志的内存数据块ID记录集和磁盘日志的磁盘数据块ID记录集,内存数据块ID记录集和磁盘数据块ID记录集相同,包括:预先在内存日志中设置四个链表,分别为空闲链表、未同步链表、已同步链表和更新链表;设置内存数据块ID记录集,将内存数据块ID记录集中对应的各数据块根据自身的同步状态置于未同步链表或已同步链表;将未同步链表和已同步链表中的元素置于预设缓存中,预设缓存中的各元素记录了对应的数据块以及该该内存数据块ID的引用次数,引用次数用于表示该数据块的同步信息;根据内存数据块ID记录集,设置一致的磁盘数据块ID记录集,将磁盘数据块ID记录集置于磁盘日志中。
在本实施方式中,优选预设缓存为LRU缓存,其中,LRU是Least Recently Used的缩写,对于在内存中但又不用的数据块叫做LRU。LRU缓存将最近最少使用的数据移除,让给最新读取的数据。
判断发生修改操作的数据块ID是否属于内存数据块ID记录集,包括:判断发生修改操作的数据块ID是否在预设缓存记录中。
若否,则将同步复制操作信息的数据块ID写入内存数据块ID记录集和磁盘数据块ID记录集,包括:若判定发生修改操作而需同步复制操作对应的数据块ID不在预设缓存记录中,则检查空闲链表中是否有空闲元素;
若是,则根据发生修改操作需要同步复制操作对应的数据块ID,选取空闲元素进行赋值并移动到未同步链表中,并相应更新磁盘日志,其中,更新的元素在未写入到磁盘日志前保存在更新链表中,在写入磁盘日志后,将更新链表中的元素移动到未同步链表中;
若否,则判断已同步链表是否为空;
若否,则对已同步链表中的元素进行淘汰;
若是,则阻塞同步复制操作的写请求,并根据预设缓存替代算法在已同步链表中寻找可淘汰的元素,将该可淘汰的元素的值更新为该写请求,将该元素的引用计数加1并放至未同步链表中;
将预设缓存中的元素更新至磁盘日志。
若判定发生修改操作的数据块ID在预设缓存记录中,则将该发生修改操作数据块ID对应的数据块的引用计数加1。
优选内存日志采用LRU淘汰算法(近期最少使用算法)对数据块ID记录进行管理,预设缓存中的每一项元素表示了某一个ID的数据块的同步情况,LRU元素中记录了数据块ID以及该数据块的引用次数,其中,引用次数表示该数据块的同步情况—引用次数不为0则表示该数据块中存在尚未同步复制完成的数据。
内存日志始终维持4个不同用途的链表:空闲链表、未同步链表、已同步链表、更新链表。4个链表的总节点数与配置的日志记录数量(即预设缓存中元素的总数量N)相同。初始化时在空闲链表中固定分配N个空闲的缓存元素,空闲链表中的元素不表示任何数据块,只是预备给预设缓存进行日志记录使用。未同步链表和已同步链表中的元素是预设缓存中的元素,其中未同步链表中的元素的引用计数不为0,表示相应数据块存在尚未同步复制完成的数据,在收到同步复制确认之后,相应元素的引用计数减1,如果引用计数为0,则将元素移动到已同步链表中;已同步链表中的元素引用计数为0,表示相应数据块已经全部同步完成。
当新的写请求操作的数据范围未在LRU(同步链表和为同步链表)中,则需要添加或者替换LRU元素,更新的元素在未写入到磁盘日志前保存在更新链表中,在写入磁盘日志后,将更新链表中的元素移动到未同步链表中。
日志工作的流程是内存日志和磁盘日志相互配合完成的。当新的写请求到来时,先检查写请求对应的数据块ID是否在LRU记录中(即是否在未同步链表和已同步链表中),如果在LRU中,则将该项引用计数加1,并放到未同步链表的前端;如果不在LRU中,则检查是否有空闲元素,将空闲元素赋值并移动到未同步链表中,并将更新写入磁盘日志;如果空闲链表为空,则需要淘汰掉已同步链表中的元素,如果已同步链表为空,则写请求需要阻塞,找到可淘汰元素后(按照LRU或者其他缓存替换算法寻找可淘汰元素),将该元素的值更新为新的写请求,并将引用计数加1放到未同步链表中。在收到灾备端的回复之后,将对应的未同步链表中的元素的引用计数减1,不更新磁盘日志,当未同步链表中元素引用计数为0时,移动到已同步链表中。所以已同步链表中的元素对应的数据在生产端和灾备端是保持一致的。
具体的,如图4所示,写请求日志工作流程包括:
S41:获取新写请求;
S42:判断该新写请求对应的数据块是否在未同步链表中;
S43:若是,则该新写请求对应的数据块的引用数加1,并进入步骤S44:等待确认;
S45:若否,则判断该写请求对应的数据块是否在已同步链表中;
S46:若是,则该新写请求对应的数据块的引用数加1,并移动到未同步链表中,进入步骤S44;
S47:若否,则判断空闲链表是否为空;
S48:若否,则该新写请求对应的数据块的引用计数加1,并移动到未同步链表中,进入步骤S44;
S49:若是,则判断已同步链表是否为空;
S410:若是,则进行写请求阻塞,并返回步骤S49;
S411:若否,则淘汰同步链表最后一个元素,修改为该新请求对应的数据块ID,加入更新链表;
S412:写入更新到磁盘日志;
S413:将新请求的对应数据块移动到未同步链表,并进入步骤S44;
在步骤S44的等待确认后,进入步骤S414:收到同步确认;
S415:将对应的未同步链表中的元素的引用计数减1;
S416:若未同步链表中的元素引用计数为0,移动到已同步链表。
磁盘日志更新时将内存日志LRU中的元素信息记录到磁盘,磁盘日志是否更新取决于新的写请求是否命中预设缓存,只有预设缓存不命中才会引起磁盘日志的更新,在磁盘日志更新完成前,写请求是阻塞的。由于普通应用写请求的空间局部性很强,因此磁盘日志更新的频率较低,更新磁盘日志的性能开销较小。
请参考图5和图6,图5为本发明一种实施方式所提供的灾备端掉线异常处理流程图;图6为本发明一种实施方式所提供的生产端意外崩溃处理流程图。
在本发明的一种实施方式中,还对灾备系统异常处理的流程进行说明。
在本实施方式中,该控制方法还包括:判断当前灾备系统是否发生故障;若是,则判断当前故障是否恢复;若是,则根据灾备系统的故障类型对应调取内存日志或磁盘日志中记录的对应数据块对灾备系统进行数据同步状态恢复。
根据灾备系统的故障类型对应调取内存日志或磁盘日志中记录的对应数据块对灾备系统进行数据同步状态恢复,包括:
当灾备系统的故障类型为灾备端设备断线时,在灾备端设备重新连接时,将内存日志中的未同步链表中记录的所有数据块进行重传,对灾备系统进行数据状态同步恢复。
如图5所示,灾备端掉线异常处理流程包括:
S51:执行灾备端重连;
S52:判断未同步链表是否为空;
S53:若是,则恢复同步状态;
S54:若否,则遍历未同步链表重传对应数据块,然后执行步骤S53。
当灾备系统的故障类型为生产中心故障时,调取磁盘日志中记录的所有数据块进行重传,对灾备系统进行数据同步状态恢复。
如图6所示,生产端意外崩溃处理流程包括:
S61:进行生产端重启;
S62:读取磁盘日志;
S63:读取磁盘日志对应的数据;
S64:将读取的磁盘日志对应的数据发送到灾备端;
S65:恢复同步状态。
在本实施方式中,内存日志可以应对灾备端断线重连的数据同步。在灾备端掉线后,内存日志未同步链表中的元素对应的数据块不会被LRU淘汰,在灾备端重新连接时,将内存日志未同步链表中的所有元素数据块进行重传,这样可以保证在灾备端掉线期间的数据可以重新同步,最终恢复到到正常同步复制状态。
其次,磁盘日志可以应对生产中心意外崩溃的情况,在这种情况下,本地数据被修改但是同步复制数据未成功发送到灾备中心,由于磁盘日志可以完整地反映当前数据的修改情况,并且磁盘日志的更新在本地数据修改之前,因此生产中心在数据修改未成功发送到灾备中心情况下崩溃,只要再次启动时读取磁盘日志并重传磁盘日志中的所有记录对应的数据块到灾备中心后,然后双方系统也能迅速恢复到正常同步复制状态。
需要说明的是,本发明日志中记录的数据块集合通常情况下大于真实的修改数据块的集合,以提高缓存日志的命中率。日志记录的磁盘块越多,内存日志中LRU命中的几率就越大,写磁盘日志的次数就越小,因此系统的IO性能越高。但是同时日志记录项越大,生产中心崩溃恢复后需要同步的数据就越多,恢复同步状态的时间越长。内存日志在内存中维持的内存数据块ID集标记了最近发生变化的数据块的同步和修改情况。内存日志的记录数和磁盘日志的记录数相同,设为N(N为整数),其中,N的取值在恢复同步时间与IO性能之间进行权衡决定。
还需要说明的是,本发明各实施方式日志记录的元素对应的数据块大小可以设定为1MB-4MB不等,这个大小一般大于正常的写请求操作大小(一般为4KB),所以日志记录的元素单个数据块也可以对应地缓存住多个相邻的写请求操作,可以在空间维度上提高日志缓存的命中率,减少日志磁盘IO次数。
请参考图7,图7为本发明一种具体实施方式所提供的用于灾备系统的同步复制日志控制系统结构示意图。
相应地,本发明一种实施方式还提供了一种用于灾备系统的同步复制日志控制系统,包括:
预处理模块71,用于预先设置内存日志的内存数据块ID记录集和磁盘日志的磁盘数据块ID记录集,内存数据块ID记录集和磁盘数据块ID记录集相同,定义所有的磁盘数据块ID记录集均为发生数据修改而需要同步复制的数据块集合。获取模块72,用于实时获取生产中心和灾备中心的数据修改操作信息,以获得需要同步复制的数据块ID。第一判断模块73,用于判断发生修改操作的数据块ID是否属于内存数据块ID记录集。第一执行模块74,用于在判定发生修改操作的数据块ID属于内存数据块ID记录集时,禁止触发磁盘日志的更新。第二执行模块75,用于在判定发生修改操作的数据块ID不属于内存数据块ID记录集时,将发生修改操作的数据块ID写入内存数据块ID记录集和磁盘数据块ID记录集。
本实施方式所提供的用于灾备系统的同步复制日志控制系统,通过建立内存日志和磁盘日志进行协同工作,通过内存日志和磁盘日志维持一个相同的频繁修改的数据块ID记录集,当有同步复制的写请求时,对于内存日志有日志记录的写请求就免去了更新到磁盘日志的操作,有效挖掘写请求访问的时间局部性来减少磁盘日志的IO操作,灾备中心写请求操作完成日志更新至内存日志中,大大减少了同步复制事务中磁盘日志的IO操作,相对于磁盘日志的IO操作来说,内存日志的IO操作几乎没有时间延迟,从而大大降低了灾备系统的延迟,从而提高了存储系统的性能。
进一步地,该控制系统还包括:第二判断模块,用于判断灾备中心的写请求操作是否完成;更新模块,用于在判定灾备中心的写请求操作完成时,将灾备中心的写请求操作完成日志更新至内存日志中。
在本实施方式中,设置了内存日志和磁盘日志协同工作的工作机制,即应用对内存和磁盘日志的联合控制方法。其中,由于内存数据块ID记录集和磁盘数据块ID记录集相同,因此,内存日志和磁盘日志共同维持了一个相同的数据块ID记录集。内存数据块ID记录集和磁盘数据块ID记录集标记了最近发生变化的数据块的同步和修改情况。所谓的定义所有的磁盘数据块均为同步复制数据块,即默认磁盘日志中的所有的磁盘数据块均是灾备系统的写操作时对应的数据块
第一判断模块判断当前灾备系统中写请求操作对应的数据块的ID是否属于内存数据块ID记录集,由于默认内存数据块ID记录集对应的内存数据块是发生变化的数据块,即进行写操作对应的数据块,但是并不能确定当前写操作对应的数据块一定在记录的数据块中,因此,在此进行判断同步复制操作信息的数据块ID是否属于内存数据块ID记录集。
当同步复制操作信息的数据块不属于内存数据块ID记录集对应的数据块集合时,将该同步复制操作信息的数据块ID进行记录。即加入至内存日志和磁盘日志,以使内存日志和磁盘日志更加完整。
在本实施方式中,以内存日志和磁盘日志中均包括五个数据块为例进行说明,IDx、IDy、IDz、IDi、IDj为五个数据块的ID,IDk为被淘汰的元素。其中,内存日志支持LRU等多次替换算法,支持查询操作。如图2所示,采用了二级日志方案,内存日志和磁盘日志协同记录同步复制事务,通过内存日志和磁盘日志维持一个相同的频繁修改的数据块ID记录集,当有新的同步复制操作发起时,检测该同步复制操作的数据块ID是否在内存日志的内存数据块ID记录集中(一般这个集合控制在很小的范围内,通常是20-100个,而且由于日志信息仅记录数据块对应的元数据信息,所以占用的存储空间都很小,一般都小于4KB),如果不在,则写入内存日志和磁盘日志的数据块ID集合;如果在,则不需要触发磁盘日志的更新操作。在这里,磁盘日志将不记录同步复制的情况,而是由内存日志记录同步复制的完成情况。
磁盘日志将不记录同步复制的完成情况,而内存日志记录同步复制的完成情况。换言之,在本实施方式中,灾备系统的写请求操作完成的日志将更新至内存日志中,这样最大化地减少了同步复制事务过程中的磁盘日志的IO操作。有效挖掘写请求的访问时间局部性来减少磁盘日志的IO操作。由于内存的IO操作速度极快,相对于磁盘日志的IO操作来说,内存日志的IO操作几乎没有时间延迟,从而大大降低了灾备系统的延迟,从而提高了存储系统的性能。
在本发明的一种实施方式中,预处理模块包括:第一预处理单元,用于预先在内存日志中设置四个链表,分别为空闲链表、未同步链表、已同步链表和更新链表;第二预处理单元,用于设置内存数据块ID记录集,将内存数据块ID记录集中对应的数据块根据自身的同步状态置于未同步链表或已同步链表;第三预处理单元,用于将未同步链表和已同步链表中的元素置于预设缓存中,预设缓存中的各元素记录了对应的内存数据块ID记录集以及该内存数据块ID对应的引用次数,引用次数用于表示该内存数据块ID记录集的同步信息;第四预处理单元,用于根据内存数据块ID记录集,设置一致的磁盘数据块ID记录集,将磁盘数据块ID记录集置于磁盘日志中。
第一判断模块包括:第一判断单元,用于判断发生修改操作的数据块ID是否在预设缓存记录中。
第二执行模块包括:第一执行单元,用于在判定发生修改操作的数据块ID不在预设缓存记录中时,检查空闲链表中是否有空闲元素;第二执行单元,用于在检测出空闲链表中有空闲元素时,根据发生修改操作的数据块ID,选取空闲元素进行赋值并移动到未同步链表中,并相应更新磁盘日志,其中,更新的元素在未写入到磁盘日志前保存在更新链表中,在写入磁盘日志后,将更新链表中的元素移动到未同步链表中;第二判断单元,用于在检测出空闲链表中没有空闲元素时,判断已同步链表是否为空;第三执行单元,用于在判定已同步链表不为空时,对已同步链表中的元素进行淘汰;第四执行单元,用于在判定已同步链表为空时,阻塞同步复制操作的写请求,并根据预设缓存替代算法在已同步链表中寻找可淘汰的元素,将该可淘汰的元素的值更新为该写请求,将该元素的引用计数加1并放至未同步链表中;第五执行单元,用于将预设缓存中的元素更新至磁盘日志。
进一步地,还包括:第三执行模块,用于在判定发生修改操作的数据块ID在预设缓存记录中时,将该发生修改操作数据块ID对应的数据块的引用计数加1。
优选内存日志采用LRU淘汰算法(近期最少使用算法)对数据块ID记录进行管理,预设缓存中的每一项元素表示了某一个ID的数据块的同步情况,LRU元素中记录了数据块ID以及该数据块的引用次数,其中,引用次数表示该数据块的同步情况—引用次数不为0则表示该数据块中存在尚未同步复制完成的数据。
内存日志始终维持4个不同用途的链表:空闲链表、未同步链表、已同步链表、更新链表。4个链表的总节点数与配置的日志记录数量(即预设缓存中元素的总数量N)相同。初始化时在空闲链表中固定分配N个空闲的缓存元素,空闲链表中的元素不表示任何数据块,只是预备给预设缓存进行日志记录使用。未同步链表和已同步链表中的元素是预设缓存中的元素,其中未同步链表中的元素的引用计数不为0,表示相应数据块存在尚未同步复制完成的数据,在收到同步复制确认之后,相应元素的引用计数减1,如果引用计数为0,则将元素移动到已同步链表中;已同步链表中的元素引用计数为0,表示相应数据块已经全部同步完成。
当新的写请求操作的数据范围未在LRU(同步链表和为同步链表)中,则需要添加或者替换LRU元素,更新的元素在未写入到磁盘日志前保存在更新链表中,在写入磁盘日志后,将更新链表中的元素移动到未同步链表中。
日志工作的流程是内存日志和磁盘日志相互配合完成的。当新的写请求到来时,先检查写请求对应的数据块ID是否在LRU记录中(即是否在未同步链表和已同步链表中),如果在LRU中,则将该项引用计数加1,并放到未同步链表的前端;如果不在LRU中,则检查是否有空闲元素,将空闲元素赋值并移动到未同步链表中,并将更新写入磁盘日志;如果空闲链表为空,则需要淘汰掉已同步链表中的元素,如果已同步链表为空,则写请求需要阻塞,找到可淘汰元素后(按照LRU或者其他缓存替换算法寻找可淘汰元素),将该元素的值更新为新的写请求,并将引用计数加1放到未同步链表中。在收到灾备端的回复之后,将对应的未同步链表中的元素的引用计数减1,不更新磁盘日志,当未同步链表中元素引用计数为0时,移动到已同步链表中。所以已同步链表中的元素对应的数据在生产端和灾备端是保持一致的。
在本发明的一种实施方式中,该控制系统还包括:第三判断模块,用于判断当前灾备系统是否发生故障;第四判断模块,用于在判定当前灾备系统发生故障后,判断当前故障是否恢复;第四执行模块,用于在判定当前故障恢复时,根据灾备系统的故障类型对应调取内存日志或磁盘日志中记录的对应数据块对灾备系统进行数据同步状态恢复。
第四执行模块包括:第一恢复单元,用于当灾备系统的故障类型为灾备端设备断线时,在灾备端设备重新连接时,将内存日志中的未同步链表中记录的所有数据块进行重传,对灾备系统进行数据同步状态恢复;第二恢复单元,用于当灾备系统的故障类型为生产中心故障时,调取磁盘日志中记录的所有数据块进行重传,对灾备系统进行数据同步状态恢复。
在本实施方式中,内存日志可以应对灾备端断线重连的数据同步。在灾备端掉线后,内存日志未同步链表中的元素对应的数据块不会被LRU淘汰,在灾备端重新连接时,将内存日志未同步链表中的所有元素数据块进行重传,这样可以保证在灾备端掉线期间的数据可以重新同步,最终恢复到到正常同步复制状态。
其次,磁盘日志可以应对生产中心意外崩溃的情况,在这种情况下,本地数据被修改但是同步复制数据未成功发送到灾备中心,由于磁盘日志可以完整地反映当前数据的修改情况,并且磁盘日志的更新在本地数据修改之前,因此生产中心在数据修改未成功发送到灾备中心情况下崩溃,只要再次启动时读取磁盘日志并重传磁盘日志中的所有记录对应的数据块到灾备中心后,然后双方系统也能迅速恢复到正常同步复制状态。
需要说明的是,本发明日志中记录的数据块集合通常情况下大于真实的修改数据块的集合,以提高缓存日志的命中率。日志记录的磁盘块越多,内存日志中LRU命中的几率就越大,写磁盘日志的次数就越小,因此系统的IO性能越高。但是同时日志记录项越大,生产中心崩溃恢复后需要同步的数据就越多,恢复同步状态的时间越长。内存日志在内存中维持的内存数据块ID集标记了最近发生变化的数据块的同步和修改情况。内存日志的记录数和磁盘日志的记录数相同,设为N(N为整数),其中,N的取值在恢复同步时间与IO性能之间进行权衡决定。
还需要说明的是,本发明各实施方式日志记录的元素对应的数据块大小可以设定为1MB-4MB不等,这个大小一般大于正常的写请求操作大小(一般为4KB),所以日志记录的元素单个数据块也可以对应地缓存住多个相邻的写请求操作,可以在空间维度上提高日志缓存的命中率,减少日志磁盘IO次数。
综上所述,本发明所提供的用于灾备系统的同步复制日志控制方法和系统,通过记录频繁修改的数据块ID集合,以及简化同步复制日志协议,实现了减少磁盘以及SSD这一类非易失性存储介质的日志IO的目标;同时能够处理生产中心异常后的同步复制业务恢复,通过读取磁盘日志,按照日志记录信息续传对应的数据块,从而避免了整个镜像文件的重传;通过磁盘日志和内存日志的协同处理,可以有效地处理灾备系统的异常,迅速恢复灾备同步复制业务。
以上对本发明所提供的一种用于灾备系统的同步复制日志控制方法和系统进行了详细介绍。本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明权利要求的保护范围内。

Claims (16)

1.一种用于灾备系统的同步复制日志控制方法,其特征在于,包括:
预先设置内存日志的内存数据块ID记录集和磁盘日志的磁盘数据块ID记录集,所述内存数据块ID记录集和所述磁盘数据块ID记录集相同,定义所有的磁盘数据块ID记录集均为发生数据修改而需要同步复制的数据块集合;
实时获取生产中心和灾备中心的数据修改操作信息,以获得需要同步复制的数据块ID;
判断发生修改操作的数据块ID是否属于所述内存数据块ID记录集;
若是,则禁止触发磁盘日志的更新;
若否,则将所述发生修改操作的数据块ID写入所述内存数据块ID记录集和所述磁盘数据块ID记录集。
2.根据权利要求1所述的方法,其特征在于,还包括:
判断所述灾备中心的写请求操作是否完成;
若是,则将所述灾备中心的写请求操作完成日志更新至所述内存日志中。
3.根据权利要求2所述的方法,其特征在于,预先设置内存日志的内存数据块ID记录集和磁盘日志的磁盘数据块ID记录集,所述内存数据块ID记录集和所述磁盘数据块ID记录集相同,包括:
预先在内存日志中设置四个链表,分别为空闲链表、未同步链表、已同步链表和更新链表;
设置内存数据块ID记录集,将所述内存数据块ID记录集中对应的数据块根据自身的同步状态置于所述未同步链表或所述已同步链表;
将所述未同步链表和所述已同步链表中的元素置于预设缓存中,所述预设缓存中的各元素记录了对应的内存数据块ID记录集以及该内存数据块ID对应的引用次数,引用次数用于表示该内存数据块ID记录集的同步信息;
根据所述内存数据块ID记录集,设置一致的磁盘数据块ID记录集,将所述磁盘数据块ID记录集置于所述磁盘日志中。
4.根据权利要求3所述的方法,其特征在于,所述判断所述发生修改操作的数据块ID是否属于所述内存数据块ID记录集,包括:
判断所述发生修改操作的数据块ID是否在所述预设缓存记录中。
5.根据权利要求4所述的方法,其特征在于,所述若否,则将所述同步复制操作信息的数据块ID写入所述内存数据块ID记录集和所述磁盘数据块ID记录集,包括:
若判定所述发生修改操作的数据块ID不在所述预设缓存记录中,则检查所述空闲链表中是否有空闲元素;
若是,则根据所述发生修改操作的数据块ID,选取空闲元素进行赋值并移动到所述未同步链表中,并相应更新所述磁盘日志,其中,更新的元素在未写入到所述磁盘日志前保存在所述更新链表中,在写入磁盘日志后,将所述更新链表中的元素移动到所述未同步链表中;
若否,则判断所述已同步链表是否为空;
若否,则对所述已同步链表中的元素进行淘汰;
若是,则阻塞所述同步复制操作的写请求,并根据预设缓存替代算法在所述已同步链表中寻找可淘汰的元素,将该可淘汰的元素的值更新为该写请求,将该元素的引用计数加1并放至所述未同步链表中;
将所述预设缓存中的元素更新至所述磁盘日志。
6.根据权利要求5所述的方法,其特征在于,还包括:
若判定所述发生修改操作的数据块ID在所述预设缓存记录中,则将该发生修改操作数据块ID对应的数据块的引用计数加1。
7.根据权利要求2至6任一项所述的方法,其特征在于,还包括:
判断当前灾备系统是否发生故障;
若是,则判断当前故障是否恢复;
若是,则根据灾备系统的故障类型对应调取所述内存日志或所述磁盘日志中记录的对应数据块对灾备系统进行数据同步状态恢复。
8.根据权利要求7所述的方法,其特征在于,所述根据灾备系统的故障类型对应调取所述内存日志或所述磁盘日志中记录的对应数据块对灾备系统进行数据同步状态恢复,包括:
当所述灾备系统的故障类型为灾备端设备断线时,在所述灾备端设备重新连接时,将所述内存日志中的未同步链表中记录的所有数据块进行重传,对灾备系统进行数据同步状态恢复;
当所述灾备系统的故障类型为生产中心故障时,调取所述磁盘日志中记录的所有数据块进行重传,对灾备系统进行数据同步状态恢复。
9.一种用于灾备系统的同步复制日志控制系统,其特征在于,包括:
预处理模块,用于预先设置内存日志的内存数据块ID记录集和磁盘日志的磁盘数据块ID记录集,所述内存数据块ID记录集和所述磁盘数据块ID记录集相同,定义所有的磁盘数据块ID记录集均为发生数据修改而需要同步复制的数据块集合;
获取模块,用于实时获取生产中心和灾备中心的数据修改操作信息,以获得需要同步复制的数据块ID;
第一判断模块,用于判断发生修改操作的数据块ID是否属于所述内存数据块ID记录集;
第一执行模块,用于在判定发生修改操作的数据块ID属于所述内存数据块ID记录集时,禁止触发磁盘日志的更新;
第二执行模块,用于在判定发生修改操作的数据块ID不属于所述内存数据块ID记录集时,将所述发生修改操作的数据块ID写入所述内存数据块ID记录集和所述磁盘数据块ID记录集。
10.根据权利要求9所述的系统,其特征在于,还包括:
第二判断模块,用于判断所述灾备中心的写请求操作是否完成;
更新模块,用于在判定所述灾备中心的写请求操作完成时,将所述灾备中心的写请求操作完成日志更新至所述内存日志中。
11.根据权利要求10所述的系统,其特征在于,所述预处理模块包括:
第一预处理单元,用于预先在内存日志中设置四个链表,分别为空闲链表、未同步链表、已同步链表和更新链表;
第二预处理单元,用于设置内存数据块ID记录集,将所述内存数据块ID记录集中对应的数据块根据自身的同步状态置于所述未同步链表或所述已同步链表;
第三预处理单元,用于将所述未同步链表和所述已同步链表中的元素置于预设缓存中,所述预设缓存中的各元素记录了对应的内存数据块ID记录集以及该内存数据块ID对应的引用次数,引用次数用于表示该内存数据块ID记录集的同步信息;
第四预处理单元,用于根据所述内存数据块ID记录集,设置一致的磁盘数据块ID记录集,将所述磁盘数据块ID记录集置于所述磁盘日志中。
12.根据权利要求11所述的系统,其特征在于,所述第一判断模块包括:
第一判断单元,用于判断所述发生修改操作的数据块ID是否在所述预设缓存记录中。
13.根据权利要求12所述的系统,其特征在于,所述第二执行模块包括:
第一执行单元,用于在判定所述发生修改操作的数据块ID不在所述预设缓存记录中时,检查所述空闲链表中是否有空闲元素;
第二执行单元,用于在检测出所述空闲链表中有空闲元素时,根据所述发生修改操作的数据块ID,选取空闲元素进行赋值并移动到所述未同步链表中,并相应更新所述磁盘日志,其中,更新的元素在未写入到所述磁盘日志前保存在所述更新链表中,在写入磁盘日志后,将所述更新链表中的元素移动到所述未同步链表中;
第二判断单元,用于在检测出所述空闲链表中没有空闲元素时,判断所述已同步链表是否为空;
第三执行单元,用于在判定所述已同步链表不为空时,对所述已同步链表中的元素进行淘汰;
第四执行单元,用于在判定所述已同步链表为空时,阻塞所述同步复制操作的写请求,并根据预设缓存替代算法在所述已同步链表中寻找可淘汰的元素,将该可淘汰的元素的值更新为该写请求,将该元素的引用计数加1并放至所述未同步链表中;
第五执行单元,用于将所述预设缓存中的元素更新至所述磁盘日志。
14.根据权利要求13所述的系统,其特征在于,还包括:
第三执行模块,用于在判定所述发生修改操作的数据块ID在所述预设缓存记录中时,将该发生修改操作数据块ID对应的数据块的引用计数加1。
15.根据权利要求10至14任一项所述的系统,其特征在于,还包括:
第三判断模块,用于判断当前灾备系统是否发生故障;
第四判断模块,用于在判定当前灾备系统发生故障后,判断当前故障是否恢复;
第四执行模块,用于在判定当前故障恢复时,根据灾备系统的故障类型对应调取所述内存日志或所述磁盘日志中记录的对应数据块对灾备系统进行数据同步状态恢复。
16.根据权利要求15所述的系统,其特征在于,所述第四执行模块包括:
第一恢复单元,用于当所述灾备系统的故障类型为灾备端设备断线时,在所述灾备端设备重新连接时,将所述内存日志中的未同步链表中记录的所有数据块进行重传,对灾备系统进行数据同步状态恢复;
第二恢复单元,用于当所述灾备系统的故障类型为生产中心故障时,调取所述磁盘日志中记录的所有数据块进行重传,对灾备系统进行数据同步状态恢复。
CN201710515917.9A 2017-06-29 2017-06-29 一种用于灾备系统的同步复制日志控制方法和系统 Active CN107291924B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710515917.9A CN107291924B (zh) 2017-06-29 2017-06-29 一种用于灾备系统的同步复制日志控制方法和系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710515917.9A CN107291924B (zh) 2017-06-29 2017-06-29 一种用于灾备系统的同步复制日志控制方法和系统

Publications (2)

Publication Number Publication Date
CN107291924A true CN107291924A (zh) 2017-10-24
CN107291924B CN107291924B (zh) 2020-08-14

Family

ID=60099061

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710515917.9A Active CN107291924B (zh) 2017-06-29 2017-06-29 一种用于灾备系统的同步复制日志控制方法和系统

Country Status (1)

Country Link
CN (1) CN107291924B (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108319521A (zh) * 2018-01-29 2018-07-24 中国工商银行股份有限公司 自动补账处理方法及装置
CN108595119A (zh) * 2018-03-30 2018-09-28 浙江大华技术股份有限公司 一种数据同步方法及分布式系统
WO2019140732A1 (zh) * 2018-01-19 2019-07-25 网宿科技股份有限公司 一种数据存储方法、编码设备及解码设备
CN113282245A (zh) * 2021-06-15 2021-08-20 中国建设银行股份有限公司 一种审计供数的方法及主机平台

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008166899A (ja) * 2006-12-27 2008-07-17 Ricoh Co Ltd 画像形成装置、制御方法、およびプログラム
US20080256142A1 (en) * 2007-04-10 2008-10-16 Apertio Limited Journaling in network data architectures
CN102129435A (zh) * 2010-01-13 2011-07-20 中国移动通信集团公司 数据存储业务控制方法及系统
CN102521114A (zh) * 2011-11-30 2012-06-27 华中科技大学 一种虚拟化环境下的文件系统日志存储系统
US20140325157A1 (en) * 2013-04-26 2014-10-30 Netapp, Inc. Data access request monitoring to reduce system resource use for background operations
CN105335098A (zh) * 2015-09-25 2016-02-17 华中科技大学 一种基于存储级内存的日志文件系统性能提高方法
CN106502831A (zh) * 2016-10-24 2017-03-15 深圳市深信服电子科技有限公司 一种镜像文件复制的方法及装置

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008166899A (ja) * 2006-12-27 2008-07-17 Ricoh Co Ltd 画像形成装置、制御方法、およびプログラム
US20080256142A1 (en) * 2007-04-10 2008-10-16 Apertio Limited Journaling in network data architectures
CN102129435A (zh) * 2010-01-13 2011-07-20 中国移动通信集团公司 数据存储业务控制方法及系统
CN102521114A (zh) * 2011-11-30 2012-06-27 华中科技大学 一种虚拟化环境下的文件系统日志存储系统
US20140325157A1 (en) * 2013-04-26 2014-10-30 Netapp, Inc. Data access request monitoring to reduce system resource use for background operations
CN105335098A (zh) * 2015-09-25 2016-02-17 华中科技大学 一种基于存储级内存的日志文件系统性能提高方法
CN106502831A (zh) * 2016-10-24 2017-03-15 深圳市深信服电子科技有限公司 一种镜像文件复制的方法及装置

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
RU FANG: "High performance database logging using storage class memory", 《2011 IEEE 27TH INTERNATIONAL CONFERENCE ON DATA ENGINEERING》 *
潘巍: "新型非易失存储环境下事务型数据管理技术研究", 《软件学报》 *
石伟: "基于非易失存储器的事务存储系统综述", 《计算机研究与发展》 *

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019140732A1 (zh) * 2018-01-19 2019-07-25 网宿科技股份有限公司 一种数据存储方法、编码设备及解码设备
CN108319521A (zh) * 2018-01-29 2018-07-24 中国工商银行股份有限公司 自动补账处理方法及装置
CN108595119A (zh) * 2018-03-30 2018-09-28 浙江大华技术股份有限公司 一种数据同步方法及分布式系统
CN108595119B (zh) * 2018-03-30 2021-04-16 浙江大华技术股份有限公司 一种数据同步方法及分布式系统
CN113282245A (zh) * 2021-06-15 2021-08-20 中国建设银行股份有限公司 一种审计供数的方法及主机平台
CN113282245B (zh) * 2021-06-15 2024-04-12 中国建设银行股份有限公司 一种审计供数的方法及主机平台

Also Published As

Publication number Publication date
CN107291924B (zh) 2020-08-14

Similar Documents

Publication Publication Date Title
CN101578586B (zh) 在故障转移和故障回复环境中使用虚拟拷贝
CN107291924A (zh) 一种用于灾备系统的同步复制日志控制方法和系统
CN1648867B (zh) 数据处理系统
CN1983153B (zh) 数据处理系统中执行远程复制的方法和存储数据的方法
CN101755257B (zh) 管理在不同的网络上将写入从首要存储器拷贝到次要存储器
CN107870829B (zh) 一种分布式数据恢复方法、服务器、相关设备及系统
CN101334797B (zh) 一种分布式文件系统及其数据块一致性管理的方法
CN100570574C (zh) 用于管理存储系统之间的数据拷贝的系统和方法
CN100495354C (zh) 在耦合会话环境内合并一簇会话的会话信息的方法和系统
JP3968207B2 (ja) データ多重化方法およびデータ多重化システム
CN101207512B (zh) 一种数据库系统冗灾备份和切换方法
KR20110044858A (ko) 데이터 센터들에 걸쳐 데이터 서버들내 데이터 무결정의 유지
CN110807064B (zh) Rac分布式数据库集群系统中的数据恢复装置
CN103780638A (zh) 数据同步方法及系统
KR20150035507A (ko) 데이터 송신 방법, 데이터 수신 방법, 및 저장 장치
JP2004343776A (ja) カスケード式再同期を利用する障害回復システム
JP5699852B2 (ja) 情報処理装置、ストレージ制御方法およびプログラム
JP2005174196A (ja) 複数の記憶システムを有するデータ処理システム
CN102014152A (zh) 一种远程复制系统及其方法
CN108804523A (zh) 数据同步方法、系统及计算机可读存储介质
JP2004334574A (ja) ストレージの運用管理プログラム、運用管理方法及び管理計算機
CN1653427A (zh) 用于创建虚拟数据拷贝的方法和装置
CN103902405B (zh) 一种准连续性数据复制方法及装置
CN108415793A (zh) 经由日志操作修改复制组的成员资格
EP4213038A1 (en) Data processing method and apparatus based on distributed storage, device, and medium

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant