CN109271457A - 一种数据同步方法及装置 - Google Patents
一种数据同步方法及装置 Download PDFInfo
- Publication number
- CN109271457A CN109271457A CN201811376497.1A CN201811376497A CN109271457A CN 109271457 A CN109271457 A CN 109271457A CN 201811376497 A CN201811376497 A CN 201811376497A CN 109271457 A CN109271457 A CN 109271457A
- Authority
- CN
- China
- Prior art keywords
- data
- node
- data block
- caching
- storage
- 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.)
- Pending
Links
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请公开了一种数据同步方法及装置,包括:第一节点在确定第二节点恢复正常运行的情况下,确定第一节点缓存中的第一目标数据块和第二目标数据块,其中,该第一目标数据中的各个数据块对应于存储设备中的存储地址不连续,该第二目标数据为第一节点的缓存中除第一目标数据以外的数据;第一节点直接将其同步至第二节点的缓存中,并将第二目标数据持久化存储至存储设备中,然后再将该存储设备中的第二目标数据同步至第二节点的缓存中。由于第一目标数据无需再被存储至存储设备中,进而在第二节点故障恢复后,第一、第二节点能够在较短时间内对缓存中的数据进行同步,使得该SAN存储双控系统的性能也能在短时间内恢复正常。
Description
技术领域
本申请涉及数据处理技术领域,特别是涉及一种数据同步方法及装置。
背景技术
在SAN(Storage Area Network,存储区域网络)存储双控系统中,正常状态下是由主节点与备节点两个节点来处理数据写入的I/O请求。在该数据写入的I/O请求被响应时,通常是会在两个节点的缓存中进行数据镜像,即会将数据分别写入至两个节点的缓存中进行存储。这样,当其中一个节点出现故障时,另一个节点可以利用缓存中的数据接管I/O处理任务,从而保证业务不会被中断。若只有一个节点处理数据写入的I/O请求时(比如另外一个节点发生故障),由于对于写入该节点缓存中的数据无法在另一个节点的缓存中进行备份,因此,为了保证数据安全,处理该I/O请求的节点通常会将写入缓存中的数据持久化存储到硬盘中,以使得在硬盘中对该数据进行备份。
如果在将数据持久化存储至硬盘的过程中,发生故障的节点恢复运行,为了保证数据一致性,恢复运行的节点通常需要等待数据持续化存储过程完成之后,才会重新在该节点与另一个节点之间进行数据镜像。但是,对于持久化存储至硬盘的多个数据块,其在硬盘中的存储地址并非是全部连续的,导致部分存储地址不连续的数据块在存储至硬盘时需要耗费较长的时间,从而使得整个数据持续化存储过程所需耗费的时间较长。因此,即使发生故障的节点已经恢复正常运行,但是该恢复运行的节点也需要等待较长的时间才能将另一个节点的缓存中的数据备份至该恢复运行的节点的缓存中,从而使得整个存储系统的性能也会在较长的时间内无法恢复正常。
发明内容
本申请实施例提供了一种的方法及装置,以使得
第一方面,本申请实施例提供了一种数据同步方法,所述方法应用于第一节点,所述方法包括:
在确定第二节点恢复正常运行的情况下,确定所述第一节点的缓存中的第一目标数据和第二目标数据,所述第一目标数据中的各个数据块对应于存储设备中的存储地址不连续,所述第二目标数据为所述第一节点的缓存中除所述第一目标数据以外的数据;
将所述第一目标数据中的各个数据块同步至所述第二节点的缓存中;
将所述第二目标数据中的各个数据块持久化存储至所述存储设备中;
将所述存储设备中的第二目标数据同步至所述第二节点的缓存中。
在一种可能的实现方式中,所述确定待同步数据中的第一目标数据,包括:
获取所述第一节点的缓存中的各个数据块对应于存储设备中的存储地址;
将存储地址不连续的数据块确定为所述第一目标数据。
在一种可能的实现方式中,所述第一目标数据中的每个数据块具有同步标识,所述同步标识表征所述数据块等待被同步至所述第二节点的缓存中,所述方法还包括:
针对于所述第一目标数据中的每个数据块,在将所述数据块同步至所述第二节点的缓存中后,更新所述数据块的同步标识,使得更新后的同步标识表征所述数据块已经被同步至所述第二节点的缓存中。
在一种可能的实现方式中,所述第二目标数据中的每个数据块具有存储标识,所述存储标识表征所述数据块等待被存储至所述存储设备中,所述方法还包括:
针对于所述第一目标数据中的每个数据块,在将所述数据块存储至所述存储设备中后,更新所述数据块的同步标识,使得更新后的同步标识表征所述数据块已经被存储至所述存储设备中。
在一种可能的实现方式中,所述方法还包括:
响应于主机发送的数据读取请求,确定所述数据读取请求所对应的待同步数据中的目标数据块;
若所述目标数据块所具有的同步标识表征所述目标数据块等待被同步至所述第二节点的缓存中,或所述目标数据块所具有的存储标识表征所述目标数据块等待被存储至所述存储设备中,则从所述第一节点的缓存中读取所述目标数据块。
第二方面,本申请实施例还提供了一种数据同步装置,所述装置应用于第一节点,所述装置包括:
第一确定模块,用于在确定第二节点恢复正常运行的情况下,确定所述第一节点的缓存中的第一目标数据和第二目标数据,所述第一目标数据中的各个数据块对应于存储设备中的存储地址不连续,所述第二目标数据为所述第一节点的缓存中除所述第一目标数据以外的数据;
第一同步模块,用于将所述第一目标数据中的各个数据块同步至所述第二节点的缓存中;
存储模块,用于将所述第二目标数据中的各个数据块持久化存储至所述存储设备中;
第二同步模块,用于将所述存储设备中的第二目标数据同步至所述第二节点的缓存中。
在一种可能的实现方式中,所述第一确定模块,包括:
获取单元,用于获取所述第一节点的缓存中的各个数据块对应于存储设备中的存储地址;
确定单元,用于将存储地址不连续的数据块确定为所述第一目标数据。
在一种可能的实现方式中,所述第一目标数据中的每个数据块具有同步标识,所述同步标识表征所述数据块等待被同步至所述第二节点的缓存中,所述装置还包括:
第一更新模块,用于针对于所述第一目标数据中的每个数据块,在将所述数据块同步至所述第二节点的缓存中后,更新所述数据块的同步标识,使得更新后的同步标识表征所述数据块已经被同步至所述第二节点的缓存中。
在一种可能的实现方式中,所述第二目标数据中的每个数据块具有存储标识,所述存储标识表征所述数据块等待被存储至所述存储设备中,所述装置还包括:
第二更新模块,用于针对于所述第一目标数据中的每个数据块,在将所述数据块存储至所述存储设备中后,更新所述数据块的同步标识,使得更新后的同步标识表征所述数据块已经被存储至所述存储设备中。
在一种可能的实现方式中,所述装置还包括:
第二确定模块,用于响应于主机发送的数据读取请求,确定所述数据读取请求所对应的待同步数据中的目标数据块;
读取模块,用于若所述目标数据块所具有的同步标识表征所述目标数据块等待被同步至所述第二节点的缓存中,或所述目标数据块所具有的存储标识表征所述目标数据块等待被存储至所述存储设备中,则从所述第一节点的缓存中读取所述目标数据块。
在本申请实施例的上述实现方式中,第一节点在确定第二节点恢复正常运行的情况下,可以确定第一节点缓存中的第一目标数据块和第二目标数据块,其中,该第一目标数据中的各个数据块对应于存储设备(如硬盘等)中的存储地址不连续,该第二目标数据为第一节点的缓存中除第一目标数据以外的数据;对于第一目标数据,第一节点可以直接将其同步至第二节点的缓存中,而无需持久化存储至存储设备中,而对于第二目标数据,第一节点可以将其持久化存储至存储设备中,然后再将该存储设备中的第二目标数据同步至第二节点的缓存中。在此过程中,对于第一节点缓存中的第一目标数据,由于其所包含的各个数据块对应于存储设备中的存储地址不连续,也即,第一目标数据中的各个数据块所对应的存储地址之间随机性较大,因此,通过将第一目标数据直接同步至第二节点的缓存中,就无需再将第一目标数据持久化存储至存储设备中,而存储设备可以只存储随机性较小的第二目标数据,从而可以减少了数据持久化存储至存储设备所需耗费的时间,进而在第二节点故障恢复后,主、第一节点能够在较短时间内对缓存中的数据进行同步,使得该SAN存储双控系统的性能也能在短时间内恢复正常。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的附图。
图1为本申请实施例中一应用场景示意图;
图2为本申请实施例中一种数据同步方法的流程示意图;
图3为本申请实施例中一种数据同步装置的结构示意图。
具体实施方式
在SAN存储双控系统中,主节点与备节点在共同处理数据写入的I/O请求时,若其中一个节点,如主节点发生故障,则备节点会接管该I/O请求的处理任务。此时,为了保证数据安全,备节点通常会将缓存中的数据块持久化存储至硬盘中。但是,对于备节点缓存中的各个数据块,其在硬盘中的存储地址并非是全部连续的,具体的,在部分数据块中,下一个数据块的存储地址并非是承接上一个数据块的存储地址,这使得在存储完上一个数据块后,硬盘需要花费一定时间将下一个数据块跳转到相应的存储地址中继续存储,相比于将存储地址连续的两个数据块进行存储而言,所需耗费的时间更长。而且,两个数据块的存储地址之间的随机性越大,硬盘存储数据时跳转存储地址所需耗费的时间也就越长。这也就是说,在将备节点缓存中的数据持久化存储至硬盘的过程中,缓存中的部分数据块对应于硬盘中的存储地址不连续,会使得整个数据持久化存储至硬盘的过程所需耗费的时间较长。而当主节点在故障后恢复正常运行时,主节点是通过从硬盘中读取之前备份的数据来实现主节点与备节点之间的数据一致,因此,主节点需要等到备节点将上述数据持久化存储至硬盘的过程完成之后,才能实现主节点与备节点的缓存中的数据的同步。因此,若数据持久化存储至硬盘的过程所需时间过长,就会导致即使发生故障的主节点恢复正常运行,由于主、备节点需要较长时间才能对缓存中的数据进行同步,因此,该SAN存储双控系统的性能也会在较长的一段时间内无法恢复正常。
针对于上述技术问题,本申请实施例提供了一种数据同步的方法,鉴于备节点缓存中存储地址随机性较大的数据块最终也是由硬盘同步至主节点的缓存中,因此,备节点通过将这部分数据块直接同步到主节点的缓存中,使得这部分数据块无需再被存储至硬盘中,从而减少了备节点缓存中的数据持久化存储至硬盘所需耗费的时长,进而使得主节点在故障恢复后可以在较短的时间内实现与备节点实现数据同步。具体的,备节点在确定主节点恢复正常运行的情况下,可以确定备节点缓存中的第一目标数据块和第二目标数据块,其中,该第一目标数据中的各个数据块对应于存储设备(如硬盘等)中的存储地址不连续,该第二目标数据为备节点的缓存中除第一目标数据以外的数据;对于第一目标数据,备节点可以直接将其同步至主节点的缓存中,而无需持久化存储至存储设备中,而对于第二目标数据,备节点可以将其持久化存储至存储设备中,然后再将该存储设备中的第二目标数据同步至主节点的缓存中。
在此过程中,对于备节点缓存中的第一目标数据,由于其所包含的各个数据块对应于存储设备中的存储地址不连续,也即,第一目标数据中的各个数据块所对应的存储地址之间随机性较大,因此,通过将第一目标数据直接同步至主节点的缓存中,就无需再将第一目标数据持久化存储至存储设备中,而存储设备可以只存储随机性较小的第二目标数据,从而可以减少了数据持久化存储至存储设备所需耗费的时间,进而在主节点故障恢复后,主、备节点能够在较短时间内对缓存中的数据进行同步,使得该SAN存储双控系统的性能也能在短时间内恢复正常。
举例来说,本申请实施例可以应用于如图1的示例性应用场景。在该应用场景中,SAN存储双控系统100包括多对节点,每对节点均包括主节点与备节点以及至少一个存储设备。假设其中一对节点中的主节点101在故障后恢复正常,则该主节点101可以通过向备节点102发送心跳消息,以告知备节点102恢复正常运行,此时,备节点102在通过主节点101发送的心跳消息确定主节点101正常运行的情况下,确定自身缓存中的第一目标数据以及第二目标数据,其中,该第一目标数据中的各个数据块对应于存储设备103中的存储地址不连续,该第二目标数据为备节点的缓存中除第一目标数据以外的数据;然后,备节点102可以将第一目标数据直接同步至主节点101的缓存中,并将第二目标数据持久化存储至存储设备103中,然后,备节点102可以将存储设备103中的第二目标数据同步至主节点101的缓存中,以实现主节点101与备节点102之间的数据同步。
可以理解的是,上述场景仅是本申请实施例提供的一个场景示例,本申请实施例并不限于此场景。比如,SAN存储双控系统可以只包括一对节点,或者,SAN存储双控系统中的多对节点可以共用一个存储设备等。
为使本申请的上述目的、特征和优点能够更加明显易懂,下面将结合附图对本申请实施例中的各种非限定性实施方式进行示例性说明。显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本申请保护的范围。
参阅图2,图2示出了本申请实施例中一种数据同步方法的流程示意图,该方法具体可以包括:
S201:在确定第二节点恢复正常运行的情况下,确定第一节点的缓存中的第一目标数据和第二目标数据,其中,第一目标数据中的各个数据块对应于存储设备中的存储地址不连续,第二目标数据为第一节点的缓存中除第一目标数据以外的数据。
本实施例中,第一节点与第二节点可以是SAN存储双控系统中的一对节点,并且,通常是由该第一节点与第二节点共同处理同一个I/O请求。当第二节点处于不正常运行状态或者失活状态时,第一节点通常需要将自身缓存中的数据下刷至存储设备中,以使得第一节点缓存中的数据能够在存储设备中进行备份,从而保证数据的安全性。在此过程中,若第二节点从不正常运行状态或者失活状态恢复正常运行时,本实施例中,为了使得第一节点与第二节点中能够尽快完成数据同步,从而使得SAN存储双控系统的整体性能能够尽快恢复正常,第一节点可以将自身缓存中的数据进行分类,划分成第一目标数据以及第二目标数据,其中,第一目标数据中的各个数据块对应于存储设备中的存储地址通常不连续,而第二目标数据即为第一节点缓存中除第一目标数据以外剩余部分的数据。
其中,对于第一目标数据中的各个数据块,在将其存储至存储设备时,除了在确定存储地址后将数据块写入存储设备需要耗费时间以外,在存储完上一个数据块后,由于相邻两个数据块的存储地址不连续,存储设备还需要花费一段时间从当前存储地址跳转到下一个数据块的存储地址,而且,相邻两个数据块的存储地址之间的随机性越大,存储设备进行存储地址的跳转所需花费的时间通常也会越长。
本实施例中,与第一目标数据不同的是,第二目标数据中的各个数据块对应存储设备中的存储地址连续,或者即使各个数据块对应于存储设备中的存储地址不连续,但是各个数据块的存储地址之间的随机性较小,硬盘在存储两个相邻的数据块时,跳转存储地址所需耗费的时间也很短,则第一节点即将第一目标数据存储至存储设备中,其所需的时间也与存储具有连续存储地址的数据块所需的时间近似相等。基于此,在一种确定第一目标数据以及第二目标数据的示例性实施方式中,第一节点可以获取第一节点的缓存中的各个数据块对应于存储设备中的存储地址,并计算出各个数据块的存储地址之间的随机性,将具有较大随机性的存储地址的数据块确定为第一目标数据,则所确定出的第一目标数据中的各个数据块对应于存储设备上的存储地址之间通常不连续,而将剩余的数据块确定为第二目标数据。甚至在另一些可能的实施方式中,第一节点可以直接将存储地址之间不连续的数据块确定为第一目标数据,并将剩余的各个数据块确定为第二目标数据,而剩余的各个数据块具有连续的存储地址。
另外,值得注意的是,在一种示例性应用场景中,第二节点可以是由故障状态恢复为正常运行状态,从而触发第一节点对自身缓存中的数据进行第一目标数据以及第二目标数据的分类;而在另一种示例性应用场景中,第二节点可以是被定时重启或者人为重启,使得第二节点暂时无法正常工作,当第二节点正常启动并且运行时,可以触发第一节点对自身缓存中的数据进行第一目标数据以及第二目标数据的分类。当然,上述两种应用场景仅作为示例性说明,并非是对本申请实施例的所有可适用的应用场景进行限定。
而对于上述所提及的存储设备,实际应用中可以是诸如硬盘、磁盘等外部存储器,并允许第一节点与第二节点对其进行数据访问。
S202:将第一目标数据中的各个数据块同步至第二节点的缓存中。
本实施例中,正是考虑到第一目标数据中的各个数据块对应于存储设备上的存储地址不连续,使得在存储第一目标数据时相对于存储具有连续存储地址的数据块而言,通常需要花费更长的时间,并且,对于第一目标数据,即使将其下刷至存储设备中后,为了保证第一节点与第二节点之间的数据同步,后续还会从存储设备中,因此,在确定出第一目标数据后,可以直接将该第一目标数据同步至第二节点的缓存中,而可以不用再下刷至存储设备中,从而缩短了将第一节点缓存中的数据下刷至存储设备所需的时长。这样,第二节点在恢复正常运行后,等待数据下刷至存储设备完成所需的等待时间也会缩短。
S203:将第二目标数据中的各个数据块持久化存储至存储设备中。
本实施例中,对于第一节点缓存中的第一目标数据,由于其中各个数据块对应于存储设备的存储地址之间具有较大随机性,则可以直接将其同步至第二节点的缓存中,而对于第一节点缓存中的第二目标数据,由于其中各个数据块对应于存储设备的存储地址之间的随机性较小,则可以继续按照已有的方式将其备份至存储设备中。
S204:将存储设备中的第二目标数据同步至第二节点缓存中。
可以理解的是,在第二节点恢复正常运行后,为了保证第一节点与第二节点之间的数据一致性,需要将两个节点缓存中的数据进行同步,而第一节点缓存中的数据包括第一目标数据和第二目标数据,因此,在将第一目标数据直接同步至第二节点的缓存中后,第一节点可以控制将备份至存储设备中的第二目标数据也同步至第二节点的缓存中,从而使得第一节点与第二节点的缓存中的数据实现同步。
值得注意的是,实际应用中还可以为第一节点的缓存中的每个数据块配备与之对应的标识。在一种示例中,可以在将第一目标数据中的各个数据块同步至第二节点的缓存前,针对于第一目标数据中的每个数据块,为其配备同步标识,该同步标识表征了该数据块等待被同步至第二节点的缓存中。这样,基于该同步标识,就可以从第一节点缓存中的多个数据块中,区分出需要被同步至第二节点缓存中的数据块。进一步的,第一节点在完成将该数据块同步至第二节点的缓存中后,可以对该数据块的同步标识进行更新,使得更新后的同步标识表征该数据块已经完成数据同步,从而可以基于该更新后的同步标识,可以将该数据块与第一目标数据中等待完成数据同步的数据块进行区分。
类似的,在将第二目标数据中的各个数据块备份至存储设备前,针对于第二目标数据中的每个数据块,可以为其配备有存储标识,该存储标识表征了该数据块等待被存储至存储设备中。这样,基于该存储标识,第一节点就可以从第一节点缓存中的多个数据块中,区分出需要下刷至第二节点缓存中的数据块。进一步的,第一节点在完成将该数据块备份至存储节点后,可以对该数据块的存储标识进行更新,使得更新后的存储标识可以表征该数据块已经完成数据备份,即完成将该数据块存储至存储设备的过程,从而可以基于该更新后的存储标识,可以将该数据块与第一目标数据中等待完成数据备份的数据块进行区分。
在进一步可能的实施方式中,第一节点可以将自身缓存中的各个数据块的存储标识和同步标识发送给第二节点,以便于第二节点基于接收到的存储标识和同步标识,确定所需直接同步至第二节点缓存中的第一目标数据以及需要从存储设备完成数据同步的第二目标数据。
实际应用中,第一节点在处理I/O请求时,通常会处理当前业务中存在的其它I/O请求,或者主机发送的具有较高优先级的I/O请求。此时,若处理该I/O请求时所需读取的数据,为第一节点缓存中尚未同步至第二节点缓存中的数据,或者为第一节点缓存中尚未备份至存储设备中的数据,则第一节点可以直接从自身缓存中读取该数据。在一种示例性的具体实施方式中,以处理主机发送的数据读取请求为例,第一节点可以响应该数据读取请求,确定该数据读取请求所对应的第一节点缓存中的目标数据块,若该目标数据块具有同步标识,并且所具有的同步标识表征目标数据块等待被同步至第二节点的缓存中,或者,该目标数据块具有存储标识,并且所具有的存储标识表征该目标数据块等待被同步至存储设备中,则第一节点可以直接从自身的缓存中读取目标数据块。
当然,若目标数据块具有同步标识,并且该同步标识表征了目标数据块已经同步至第二节点的缓存中,则,第一节点可以基于现有的I/O请求的处理方式,由第一节点与第二节点共同处理该I/O请求;若目标数据块具有存储标识,并给该存储标识表征了目标数据块已经备份至存储设备中,则第一节点可以利用自身缓存的中的目标数据块以及存储设备中的目标数据块来处理该I/O请求。
本实施例中,第一节点通过将这部分数据块直接同步到第二节点的缓存中,使得这部分数据块无需再被存储至硬盘中,从而减少了第一节点缓存中的数据持久化存储至硬盘所需耗费的时长,进而使得第二节点在故障恢复后可以在较短的时间内实现与第一节点实现数据同步。具体的,第一节点在确定第二节点恢复正常运行的情况下,可以确定第一节点缓存中的第一目标数据块和第二目标数据块,其中,该第一目标数据中的各个数据块对应于存储设备中的存储地址不连续,该第二目标数据为第一节点的缓存中除第一目标数据以外的数据;对于第一目标数据,第一节点可以直接将其同步至第二节点的缓存中,而无需持久化存储至存储设备中,而对于第二目标数据,第一节点可以将其持久化存储至存储设备中,然后再将该存储设备中的第二目标数据同步至第二节点的缓存中。在此过程中,对于第一节点缓存中的第一目标数据,由于其所包含的各个数据块对应于存储设备中的存储地址不连续,也即,第一目标数据中的各个数据块所对应的存储地址之间随机性较大,因此,通过将第一目标数据直接同步至第二节点的缓存中,就无需再将第一目标数据持久化存储至存储设备中,而存储设备可以只存储随机性较小的第二目标数据,从而可以减少了数据持久化存储至存储设备所需耗费的时间,进而在第二节点故障恢复后,第一、第二节点能够在较短时间内对缓存中的数据进行同步,使得该SAN存储双控系统的性能也能在短时间内恢复正常。
此外,本申请实施例还提供了一种数据同步装置。参见图3,图3示出了本申请实施例中一种数据同步装置的结构示意图,该装置300包括:
第一确定模块301,用于在确定第二节点恢复正常运行的情况下,确定所述第一节点的缓存中的第一目标数据和第二目标数据,所述第一目标数据中的各个数据块对应于存储设备中的存储地址不连续,所述第二目标数据为所述第一节点的缓存中除所述第一目标数据以外的数据;
第一同步模块302,用于将所述第一目标数据中的各个数据块同步至所述第二节点的缓存中;
存储模块303,用于将所述第二目标数据中的各个数据块持久化存储至所述存储设备中;
第二同步模块304,用于将所述存储设备中的第二目标数据同步至所述第二节点的缓存中。
在一种可能的实现方式中,所述第一确定模块301,包括:
获取单元,用于获取所述第一节点的缓存中的各个数据块对应于存储设备中的存储地址;
确定单元,用于将存储地址不连续的数据块确定为所述第一目标数据。
在一种可能的实现方式中,所述第一目标数据中的每个数据块具有同步标识,所述同步标识表征所述数据块等待被同步至所述第二节点的缓存中,所述装置300还包括:
第一更新模块,用于针对于所述第一目标数据中的每个数据块,在将所述数据块同步至所述第二节点的缓存中后,更新所述数据块的同步标识,使得更新后的同步标识表征所述数据块已经被同步至所述第二节点的缓存中。
在一种可能的实现方式中,所述第二目标数据中的每个数据块具有存储标识,所述存储标识表征所述数据块等待被存储至所述存储设备中,所述装置300还包括:
第二更新模块,用于针对于所述第一目标数据中的每个数据块,在将所述数据块存储至所述存储设备中后,更新所述数据块的同步标识,使得更新后的同步标识表征所述数据块已经被存储至所述存储设备中。
在一种可能的实现方式中,所述装置300还包括:
第二确定模块,用于响应于主机发送的数据读取请求,确定所述数据读取请求所对应的待同步数据中的目标数据块;
读取模块,用于若所述目标数据块所具有的同步标识表征所述目标数据块等待被同步至所述第二节点的缓存中,或所述目标数据块所具有的存储标识表征所述目标数据块等待被存储至所述存储设备中,则从所述第一节点的缓存中读取所述目标数据块。
本实施例中,第一节点在确定第二节点恢复正常运行的情况下,可以确定第一节点缓存中的第一目标数据块和第二目标数据块,其中,该第一目标数据中的各个数据块对应于存储设备中的存储地址不连续,该第二目标数据为第一节点的缓存中除第一目标数据以外的数据;对于第一目标数据,第一节点可以直接将其同步至第二节点的缓存中,而无需持久化存储至存储设备中,而对于第二目标数据,第一节点可以将其持久化存储至存储设备中,然后再将该存储设备中的第二目标数据同步至第二节点的缓存中。在此过程中,对于第一节点缓存中的第一目标数据,由于其所包含的各个数据块对应于存储设备中的存储地址不连续,也即,第一目标数据中的各个数据块所对应的存储地址之间随机性较大,因此,通过将第一目标数据直接同步至第二节点的缓存中,就无需再将第一目标数据持久化存储至存储设备中,而存储设备可以只存储随机性较小的第二目标数据,从而可以减少了数据持久化存储至存储设备所需耗费的时间,进而在第二节点故障恢复后,第一、第二节点能够在较短时间内对缓存中的数据进行同步,使得该SAN存储双控系统的性能也能在短时间内恢复正常。
本申请实施例中提到的“第一节点”、“第一同步模块”、“第一确定模块”、“第一更新模块”等名称中的“第一”只是用来做名字标识,并不代表顺序上的第一。该规则同样适用于“第二”等。
通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到上述实施例方法中的全部或部分步骤可借助软件加通用硬件平台的方式来实现。基于这样的理解,本申请的技术方案可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如只读存储器(英文:read-only memory,ROM)/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者诸如路由器等网络通信设备)执行本申请各个实施例或者实施例的某些部分所述的方法。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
以上所述仅是本申请示例性的实施方式,并非用于限定本申请的保护范围。
Claims (10)
1.一种数据同步方法,其特征在于,所述方法应用于第一节点,所述方法包括:
在确定第二节点恢复正常运行的情况下,确定所述第一节点的缓存中的第一目标数据和第二目标数据,所述第一目标数据中的各个数据块对应于存储设备中的存储地址不连续,所述第二目标数据为所述第一节点的缓存中除所述第一目标数据以外的数据;
将所述第一目标数据中的各个数据块同步至所述第二节点的缓存中;
将所述第二目标数据中的各个数据块持久化存储至所述存储设备中;
将所述存储设备中的第二目标数据同步至所述第二节点的缓存中。
2.根据权利要求1所述的方法,其特征在于,所述确定待同步数据中的第一目标数据,包括:
获取所述第一节点的缓存中的各个数据块对应于存储设备中的存储地址;
将存储地址不连续的数据块确定为所述第一目标数据。
3.根据权利要求1所述的方法,其特征在于,所述第一目标数据中的每个数据块具有同步标识,所述同步标识表征所述数据块等待被同步至所述第二节点的缓存中,所述方法还包括:
针对于所述第一目标数据中的每个数据块,在将所述数据块同步至所述第二节点的缓存中后,更新所述数据块的同步标识,使得更新后的同步标识表征所述数据块已经被同步至所述第二节点的缓存中。
4.根据权利要求3所述的方法,其特征在于,所述第二目标数据中的每个数据块具有存储标识,所述存储标识表征所述数据块等待被存储至所述存储设备中,所述方法还包括:
针对于所述第一目标数据中的每个数据块,在将所述数据块存储至所述存储设备中后,更新所述数据块的同步标识,使得更新后的同步标识表征所述数据块已经被存储至所述存储设备中。
5.根据权利要求4所述的方法,其特征在于,所述方法还包括:
响应于主机发送的数据读取请求,确定所述数据读取请求所对应的待同步数据中的目标数据块;
若所述目标数据块所具有的同步标识表征所述目标数据块等待被同步至所述第二节点的缓存中,或所述目标数据块所具有的存储标识表征所述目标数据块等待被存储至所述存储设备中,则从所述第一节点的缓存中读取所述目标数据块。
6.一种数据同步装置,其特征在于,所述装置应用于第一节点,所述装置包括:
第一确定模块,用于在确定第二节点恢复正常运行的情况下,确定所述第一节点的缓存中的第一目标数据和第二目标数据,所述第一目标数据中的各个数据块对应于存储设备中的存储地址不连续,所述第二目标数据为所述第一节点的缓存中除所述第一目标数据以外的数据;
第一同步模块,用于将所述第一目标数据中的各个数据块同步至所述第二节点的缓存中;
存储模块,用于将所述第二目标数据中的各个数据块持久化存储至所述存储设备中;
第二同步模块,用于将所述存储设备中的第二目标数据同步至所述第二节点的缓存中。
7.根据权利要求6所述的装置,其特征在于,所述第一确定模块,包括:
获取单元,用于获取所述第一节点的缓存中的各个数据块对应于存储设备中的存储地址;
确定单元,用于将存储地址不连续的数据块确定为所述第一目标数据。
8.根据权利要求6所述的装置,其特征在于,所述第一目标数据中的每个数据块具有同步标识,所述同步标识表征所述数据块等待被同步至所述第二节点的缓存中,所述装置还包括:
第一更新模块,用于针对于所述第一目标数据中的每个数据块,在将所述数据块同步至所述第二节点的缓存中后,更新所述数据块的同步标识,使得更新后的同步标识表征所述数据块已经被同步至所述第二节点的缓存中。
9.根据权利要求8所述的装置,其特征在于,所述第二目标数据中的每个数据块具有存储标识,所述存储标识表征所述数据块等待被存储至所述存储设备中,所述装置还包括:
第二更新模块,用于针对于所述第一目标数据中的每个数据块,在将所述数据块存储至所述存储设备中后,更新所述数据块的同步标识,使得更新后的同步标识表征所述数据块已经被存储至所述存储设备中。
10.根据权利要求9所述的装置,其特征在于,所述装置还包括:
第二确定模块,用于响应于主机发送的数据读取请求,确定所述数据读取请求所对应的待同步数据中的目标数据块;
读取模块,用于若所述目标数据块所具有的同步标识表征所述目标数据块等待被同步至所述第二节点的缓存中,或所述目标数据块所具有的存储标识表征所述目标数据块等待被存储至所述存储设备中,则从所述第一节点的缓存中读取所述目标数据块。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811376497.1A CN109271457A (zh) | 2018-11-19 | 2018-11-19 | 一种数据同步方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811376497.1A CN109271457A (zh) | 2018-11-19 | 2018-11-19 | 一种数据同步方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109271457A true CN109271457A (zh) | 2019-01-25 |
Family
ID=65189868
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811376497.1A Pending CN109271457A (zh) | 2018-11-19 | 2018-11-19 | 一种数据同步方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109271457A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112711630A (zh) * | 2019-10-24 | 2021-04-27 | 阿里巴巴集团控股有限公司 | 数据同步方法、分布式缓存节点及系统、可读存储介质 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101452371A (zh) * | 2007-12-03 | 2009-06-10 | 联发科技股份有限公司 | 管理由主机至光盘的数据的方法与其光学存储系统 |
CN101876945A (zh) * | 2009-11-24 | 2010-11-03 | 西安奇维测控科技有限公司 | 针对逻辑地址不同数据自动配置虚拟块的方法 |
CN102664923A (zh) * | 2012-03-30 | 2012-09-12 | 浪潮电子信息产业股份有限公司 | 一种利用Linux全局文件系统实现共享存储池的方法 |
CN102750602A (zh) * | 2012-04-20 | 2012-10-24 | 广东电网公司信息中心 | 一种云平台异构一体化资源管理系统 |
CN103207843A (zh) * | 2013-04-15 | 2013-07-17 | 山东大学 | 一种数据行宽度可动态配置的cache结构设计方法 |
CN106168883A (zh) * | 2016-05-05 | 2016-11-30 | 诸葛晴凤 | 一种高效的数据组织与访问方法 |
CN107145450A (zh) * | 2017-03-24 | 2017-09-08 | 深圳市江波龙电子有限公司 | 视频监控数据存储方法和装置 |
CN107870744A (zh) * | 2017-10-27 | 2018-04-03 | 上海新储集成电路有限公司 | 一种非同步镜像的混合硬盘阵列存储系统及方法 |
-
2018
- 2018-11-19 CN CN201811376497.1A patent/CN109271457A/zh active Pending
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101452371A (zh) * | 2007-12-03 | 2009-06-10 | 联发科技股份有限公司 | 管理由主机至光盘的数据的方法与其光学存储系统 |
CN101876945A (zh) * | 2009-11-24 | 2010-11-03 | 西安奇维测控科技有限公司 | 针对逻辑地址不同数据自动配置虚拟块的方法 |
CN102664923A (zh) * | 2012-03-30 | 2012-09-12 | 浪潮电子信息产业股份有限公司 | 一种利用Linux全局文件系统实现共享存储池的方法 |
CN102750602A (zh) * | 2012-04-20 | 2012-10-24 | 广东电网公司信息中心 | 一种云平台异构一体化资源管理系统 |
CN103207843A (zh) * | 2013-04-15 | 2013-07-17 | 山东大学 | 一种数据行宽度可动态配置的cache结构设计方法 |
CN106168883A (zh) * | 2016-05-05 | 2016-11-30 | 诸葛晴凤 | 一种高效的数据组织与访问方法 |
CN107145450A (zh) * | 2017-03-24 | 2017-09-08 | 深圳市江波龙电子有限公司 | 视频监控数据存储方法和装置 |
CN107870744A (zh) * | 2017-10-27 | 2018-04-03 | 上海新储集成电路有限公司 | 一种非同步镜像的混合硬盘阵列存储系统及方法 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112711630A (zh) * | 2019-10-24 | 2021-04-27 | 阿里巴巴集团控股有限公司 | 数据同步方法、分布式缓存节点及系统、可读存储介质 |
CN112711630B (zh) * | 2019-10-24 | 2024-05-17 | 阿里巴巴集团控股有限公司 | 数据同步方法、分布式缓存节点及系统、可读存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11397648B2 (en) | Virtual machine recovery method and virtual machine management device | |
CN109842651B (zh) | 一种业务不间断的负载均衡方法和系统 | |
CN106843749B (zh) | 写入请求处理方法、装置及设备 | |
JP5094460B2 (ja) | 計算機システム、データ一致化方法およびデータ一致化処理プログラム | |
US9535617B2 (en) | Marking a flashcopy backup for collapse without breaking a flashcopy chain | |
CN110071821A (zh) | 备用节点的指定 | |
CN104935654A (zh) | 一种服务器集群系统中的缓存方法、写入点客户端和读客户端 | |
CN106528327A (zh) | 一种数据处理方法以及备份服务器 | |
US9817719B2 (en) | Efficient Flashcopy backup and mount, clone, or restore collision avoidance using dynamic volume allocation with reuse and from a shared resource pool | |
CN104994168A (zh) | 分布式存储方法及分布式存储系统 | |
CN102710438B (zh) | 一种节点管理方法、装置及系统 | |
WO2020134199A1 (zh) | 实现数据一致性的方法和装置、服务器和终端 | |
CN109271376A (zh) | 数据库升级方法、装置、设备及存储介质 | |
CN105808374B (zh) | 一种快照处理方法及相关设备 | |
CN112052230A (zh) | 多机房数据同步方法、计算设备及存储介质 | |
US20150286429A1 (en) | Efficient flashcopy backup and mount, clone, or restore collision avoidance using dynamic volume allocation with reuse | |
CN115686932A (zh) | 备份集文件恢复方法、装置和计算机设备 | |
WO2018157605A1 (zh) | 一种集群文件系统中消息传输的方法及装置 | |
JP7192388B2 (ja) | 並列処理装置、並列演算実行プログラムおよびバックアップ方法 | |
CN107943615B (zh) | 基于分布式集群的数据处理方法与系统 | |
EP3896571A1 (en) | Data backup method, apparatus and system | |
US20150286423A1 (en) | Creating a stable flashcopy map (fcmaps) for ingest | |
CN109271457A (zh) | 一种数据同步方法及装置 | |
CN105205160A (zh) | 一种数据写入方法及装置 | |
CN112965783A (zh) | 一种使用存储快照备份虚拟机的系统及方法 |
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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20190125 |
|
RJ01 | Rejection of invention patent application after publication |