CN110543460B - 一种数据同步方法和装置 - Google Patents
一种数据同步方法和装置 Download PDFInfo
- Publication number
- CN110543460B CN110543460B CN201910668543.3A CN201910668543A CN110543460B CN 110543460 B CN110543460 B CN 110543460B CN 201910668543 A CN201910668543 A CN 201910668543A CN 110543460 B CN110543460 B CN 110543460B
- Authority
- CN
- China
- Prior art keywords
- data
- source volume
- volume
- source
- offset
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 29
- 238000012795 verification Methods 0.000 claims description 31
- 230000003247 decreasing effect Effects 0.000 claims description 4
- 230000008859 change Effects 0.000 abstract description 8
- 238000004422 calculation algorithm Methods 0.000 description 11
- 238000004364 calculation method Methods 0.000 description 10
- 230000006870 function Effects 0.000 description 5
- 238000005192 partition Methods 0.000 description 5
- 230000010076 replication Effects 0.000 description 5
- 238000010586 diagram Methods 0.000 description 4
- 238000012545 processing Methods 0.000 description 4
- 230000001360 synchronised effect Effects 0.000 description 4
- 238000013459 approach Methods 0.000 description 3
- 238000004590 computer program Methods 0.000 description 3
- 238000013500 data storage Methods 0.000 description 3
- 238000013508 migration Methods 0.000 description 3
- 230000005012 migration Effects 0.000 description 3
- 230000008569 process Effects 0.000 description 3
- 230000002159 abnormal effect Effects 0.000 description 2
- 125000004122 cyclic group Chemical group 0.000 description 2
- 238000007726 management method Methods 0.000 description 2
- 238000013507 mapping Methods 0.000 description 2
- 238000012544 monitoring process Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000002085 persistent effect Effects 0.000 description 2
- 238000011084 recovery Methods 0.000 description 2
- 238000012549 training Methods 0.000 description 2
- 230000005856 abnormality Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000006835 compression Effects 0.000 description 1
- 238000007906 compression Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000000737 periodic effect Effects 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/17—Details of further file system functions
- G06F16/178—Techniques for file synchronisation in file systems
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
一种数据同步方法和装置。在源卷被卸载之前,源主机从所述源卷的第一位置获取第一关键数据,所述第一关键数据用于指示用户数据的变化。在所述源卷被卸载后又重新挂载并且尚且没有接收写数据请求时,从同样的位置获取所述源卷的第二关键数据。然后,验证所述第一关键数据与所述第二关键数据是否相同,若不相同,则说明源卷中的数据发生过异常改变,此时需要将所述源卷的全部数据拷贝到目标卷。
Description
技术领域
本申请涉及存储技术领域,特别是一种数据同步方法和装置。
背景技术
在存储容灾系统中,源卷的数据会被全部拷贝到目标卷中,正常情况下,源卷会通过IO分离器监测到已存储的数据中修改的数据,并将修改的数据发送给目标卷保存,以保持源卷和目标卷的数据同步。然而,源卷所在的磁盘驱动器被卸载(或挂载)会引起文件系统对该源卷的卸载(或挂载)。因此,在某些异常的场景下,源卷被卸载又重新挂载后,数据改变发生在IO分离器的监测之外,容灾系统无法检测到异常。在这种异常情况下,源卷的修改数据不会从源卷发往目标卷,源卷和目标卷就失去了同步,导致副本数据腐化。
发明内容
本申请提供了一种数据同步方法及装置,可以检测出源卷在卸载和重新挂载期间数据是否发生改变,如果发生改变则进行源卷到目标卷的全量复制,以实现数据同步,防止副本数据腐化。
第一方面提供了一种数据同步方法。在源卷被卸载之前,源主机从所述源卷的第一位置获取第一关键数据,所述第一关键数据用于指示用户数据的变化。在所述源卷被卸载后又重新挂载并且尚且没有接收写数据请求时,从同样的位置获取所述源卷的第二关键数据。然后,验证所述第一关键数据与所述第二关键数据是否相同,若不相同,则说明源卷中的数据发生过异常改变,此时需要将所述源卷的全部数据拷贝到目标卷。
关键数据可以记录在硬盘的元数据中,或者文件系统的元数据中、或者逻辑卷的元数据中。关键数据例如是时间戳、挂载标记、事务日志、主根记录(master boot record,MBR)、磁蝶分割表(GUID Partition Table,GPT)、逻辑卷管理器(Logical VolumeManager,LVM)、逻辑磁盘管理器(Logical Disk Manager,LDM)、应用元数据等。卷中存储的数据如果发生改变,其对应的关键数据也会发生变化。
本申请通过监测关键数据是否发生改变,从而获知源卷中的数据是否改变,若改变则将源卷中的数据全部拷贝到目标卷,以实现源卷和目标卷中的数据同步。
在第一方面的一种实现中,提供了一种具体的验证方式,例如源主机计算所述第一关键数据的第一校验值;以及计算所述第二关键数据的第二校验值,所述验证所述第二关键数据与所述第一关键数据是否相同具体包括判断所述第二校验值是否等于所述第一校验值。这里用于计算第一校验值以及第二校验值采用相同的校验算法,例如循环冗余校验(Cyclic redundancy check,CRC)算法或其他算法,本申请不对校验算法进行任何限定。
在第一方面的一种实现中,在所述源卷被卸载之前,记录写入所述源卷的第一数据块的第一偏移量,所述第一数据块来自接收的第一写数据请求,所述第一偏移量用于指示所述第一关键数据所位于所述源卷中的位置。所述第一位置既可以是这里的第一偏移量,也可以是对所述第一偏移量进行扩展后的位置。这是因为,在所述第一偏移量的周围也有可能存储有关键数据。
在第一方面的一种实现中,述第一偏移量包括第一起始地址和第一末尾地址,所述对第一偏移量进行扩展是指对所述第一起始地址减少第一设定长度,并且对所述第一末尾地址增加第二设定长度。所述第一设定长度和所述第二设定长度可以不相同,也可以为了管理方便设置为相同。
在第一方面的一种实现中,所述第一数据块是最早写入所述源卷的数据块,或者是所述源卷被卸载之前最晚写入所述源卷的数据块,或者所述第一数据块是一个数据块集合,既包含最早写入所述源卷的数据块,也包含所述源卷被卸载之前最晚写入所述源卷的数据块。
本申请第二方面提供了一种数据同步方法,在该方法中,源主机在源卷被卸载之前,从源卷的第一位置集合中获取多个第一数据。这里的第一位置集合包含多个第一位置,其中,每个第一位置中可能存储有最早写入所述源卷的多个数据块的其中之一,也可能存储有所述源卷被卸载之前最晚写入所述源卷的多个数据块的其中之一。换而言之,这些第一位置中存储的数据都有可能是关键数据。然后,在所述源卷被卸载后又重新挂载并且尚且没有接收写数据请求时,所述源主机再从所述多个第一位置中获取多个第二数据。对于每个从同样位置获取的第一数据和第二数据,所述源主机进行验证,如果任意一个从同样位置获取的第一数据和第二数据不一致,则说明所述源卷中的数据发生过改变,需要进行全量复制。
在第二方面的一种实现中,对于每个第一位置,既可以是第一方面提供的第一偏移量,也可以是对所述第一偏移量进行扩展后的位置。这是因为,在所述第一偏移量的周围也有可能存储有关键数据。
在第二方面的一种实现中,所述第一偏移量包括第一起始地址和第一末尾地址,所述对第一偏移量进行扩展是指对所述第一起始地址减少第一设定长度,并且对所述第一末尾地址增加第二设定长度。所述第一设定长度和所述第二设定长度可以不相同,也可以为了管理方便设置为相同。
本申请第三方面提供一种数据同步装置,用于执行以上各方面提供的方法。
本申请第四方面提供一种源主机,该源主机包括处理器和存储器,存储器中保存有程序,所述处理器调用所述程序以执行以上各方面提供的方法。
本申请第五方面提供一种计算机程序产品,当其在计算机上运行时,使得计算机执行上述各方面所述的方法。
本申请第六方面提供一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述各方面所述的方法。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍。
图1是本实施例提供的应用场景图;
图2是本实施例提供的数据同步方法的流程示意图;
图3是本实施例提供的数据同步装置的结构示意图;
图4是本实施例提供的源主机的实体结构示意图。
具体实施方式
本发明实施例提出了一种存储系统和数据同步方法,可以检测到源卷在卸载和重新挂载期间数据是否发生改变,以将源卷中的数据全部拷贝到目标卷,从而保持源卷和目标卷的数据一致。
图1描绘了本发明实施例提供的存储系统的组成图,图1所示的存储系统包括源数据中心100和目标数据中心200。在一种应用场景中,源数据中心100是生产中心,为用户提供数据访问服务。目标数据中心200是灾备中心,当生产中心发生灾难时,目标数据中心200中的数据副本可以继续为用户提供服务。
源数据中心100包括应用程序20、IO分离器30、源卷40。应用程序20、IO分离器30、源卷40位于同一个物理主机中,本实施例将这个物理主机称为源主机10。用户通过应用程序20触发IO请求,所述IO请求经由IO分离器30到达源卷40进行数据存储或访问。源卷40挂载在源主机10中供用户存储数据之用,源卷40的实际存储空间可以来自源主机10本身的存储介质,也可以来自于源主机10外接的存储设备(图1中未示出)。IO分离器30用于截获IO请求,并将截获的IO请求发送给源卷40。此外,IO分离器30还用于解析所述IO请求,以获得该请求中携带的待存储数据或数据的偏移量等信息。在IO分离器30将IO请求发送给源卷40之外,IO分离器30还可以将截获的IO请求发送给源设备60。
源设备60用于收集IO分离器30截获的IO请求中的数据,并将这些数据通过广域网发送给目标数据中心200,在发送之前,源设备60可以对数据进行一些处理,如压缩等。源设备60可以是一个与源主机相互独立的设备,也可以是一个虚拟机,使用一个独立的设备对数据进行处理可以减轻源主机10的计算负担。在本实施例中,源设备60是可选设备,在不具有源设备60的情况下,数据也可以由源主机10通过局域网直接发送给目标数据中心200。
目标数据中心200主要包括目标卷50,目标卷50用于和源卷40之间保持数据同步,当源卷40发生灾难时,目标卷50中的数据副本可以继续为用户提供服务。目标卷50位于目标主机70中,其实际的物理空间可以来自目标主机70本身的存储介质,也可以来自目标主机70外接的存储设备(图1中未示出)。另外,与源设备60对应,目标数据中心200还可以包括目标设备80,用于从源设备60接收数据,并将接收到的数据存储在目标卷50中。在存储接收到的数据之前,目标设备80也可以对数据进行一些处理。与源设备60类似,目标设备80也是一个可选设备。
存储系统通常采用全量复制和增量复制来保证源卷40和目标卷50的数据一致性。首先,在系统启动拷贝时,源卷40中的数据会被全部拷贝到目标卷50中,该过程被称为全量复制。其次,全量复制之后,源卷40仍然会继续接收应用程序20发送的数据,因此需要定期将源卷40的修改数据发送给目标卷50,该过程被称为增量复制。
源卷40中数据的改变可以通过IO分离器30记录。在源主机10运行时,IO分离器30截获每个IO请求。IO请求包括写数据请求和读数据请求。在源主机10关机时,IO分离器30在确定所有IO请求都成功截获之后将截获的数据进行持久化存储。在源主机10重新开启后接收新的IO请求之前,IO分离器30将自己注册在操作系统中,然后读取出关机时持久化存储的数据。接收到新的IO请求之后,IO分离器30将之前持久化存储的数据与新接收的IO请求中的数据合并作为当前待处理的数据。可见,整个过程中,从第一个IO请求到最后一个IO请求之间所有的IO请求都在IO分离器30的监控之中,由此保证源数据中心100能够将所有的数据同步到目标数据中心200。
然而,在某些特殊的场景下,用户可能正常地关闭了源卷40所在的设备(源卷关闭之后,IO分离器30不能截获IO请求),又使用了某些手段使得源卷40中的数据发生改变,例如将源卷40从源主机10中卸载后又挂载到其他设备上写入了新的数据,又例如用户将虚拟机回滚到之前某一时间点的快照,在回滚的过程中源卷40会从源主机10上卸载,快照对应的新卷会被挂载到源主机10。在这些特殊的场景中,源卷40和目标卷50的数据同步通道被切断,这样一来,源卷40中修改的数据不能被IO分离器30截获并同步到目标卷50中,一旦源卷40发生灾难,目标卷50也不能接替源卷40继续接收业务。
为了方便理解,本实施例首先对以下术语进行解释。
卷:本实施例中的卷应作广义上的理解,既可以是物理上的硬盘(例如磁盘、记忆棒、固态硬盘或者其他非易失性存储介质),或者硬盘中的一个分区,也可以是由硬盘提供的物理空间虚拟化而成的一段逻辑空间,例如逻辑卷(logical volume)。本实施例中的源卷40和目标卷50都是卷的示例。
关键数据:用于标记卷中存储的数据是否发生改变的数据,关键数据可以记录在硬盘的元数据中,或者文件系统的元数据中、或者逻辑卷的元数据中。关键数据例如是时间戳、挂载标记、事务日志、主根记录(master boot record,MBR)、磁蝶分割表(GUIDPartition Table,GPT)、逻辑卷管理器(Logical Volume Manager,LVM)、逻辑磁盘管理器(Logical Disk Manager,LDM)、应用元数据等。卷中存储的数据如果发生改变,其对应的关键数据也会发生变化。
本发明实施例提供了一种数据同步方法,可以对源卷40中的数据进行验证,从而判断出源卷40中的数据是否发生过异常的改变(例如源卷40中发生的数据未被同步到目标卷中50,是源卷40中的数据发生过异常),如有异常的改变发生则对源卷40中的数据进行一次全量复制,从而实现源卷40和目标卷50之间的数据同步。本实施例利用关键数据对源卷40进行验证。关键数据用于管理源卷40中的数据,如果源卷40中的数据发生过修改,那么所述关键数据也会发生改变。本实施例中的关键数据包括但不限于:时间戳、挂载标记、事务日志、LVM/LDM数据库等管理信息。下面结合图2对本实施例提供的数据同步方法进行介绍。该方法可以应用在图1所示的存储系统中,由源主机10执行以下步骤。
S201,在源卷40卸载之前,从源卷40中获取关键数据。
在一种场景下,源卷40预先划分出一段区域用于存储关键数据,为了描述方便,将这段区域的位置称为固定位置,源主机10在源卷40卸载之前可以直接从所述固定位置获取关键数据。具体的,源主机10通过多次训练获知存储关键数据的位置,将该位置作为存储关键数据的固定位置。
在另一种场景下,关键数据存储在源卷40中的位置是不固定的,然而根据经验,关键数据通常在源卷40刚挂载时写入或临卸载前写入。因此,可以从最早写入源卷40的一个或多个数据块中寻找关键数据,或者从源卷40卸载前最晚写入源卷40的一个或多个数据块中寻找关键数据。
需要说明的是,本步骤中获取的数据中可以仅包含关键数据,也可以在除了包含关键数据之外还包含非关键数据。
以从多个数据块中获取关键数据为例,假设数据块的数量为N,N是大于1的整数,这些数据块可以是最早写入源卷40的N个数据块。所述N个数据块分别来自IO分离器30接收的N个写数据请求,每个写数据请求包括待写入源卷40的数据块,以及所述数据块的偏移量。可选的,IO分离器30中可以设置一个计数器,计数器的初始值为0,每收到一个写数据请求,对计数器的值加1。因此,对于每个截获的写数据请求,可以根据计数器中的记录的数值创建该写数据请求与该数值之间的映射关系。在这种情况下,最早写入源卷40的N个数据块可以根据这些数据块所在的写数据请求与数值之间的映射关系获得,数值位于[1,N]之间的数据块便是最早写入源卷40的N个数据块。可以理解的是,本实施例也可以通过其他方式获得最早写入源卷40的N个数据块,例如,根据接收这些数据块时的时间戳等信息,对这些数据块进行排序,由此获得时间戳最小的N个数据块。另外,若数据块的数量为1,也可以按照同样的方法获得最早写入源卷40的一个数据块。下面介绍如何从N个数据块中获取关键数据。
首先,源主机10获取N个数据块的偏移量,所述偏移量用于指示该数据块位于源卷40中的位置,它包括起始地址和末尾地址,或者起始地址和长度。由于数据块的数量为N,因此数据块的偏移量的数量也是N。
然后,源主机10从N个偏移量中获取N个数据。需要说明的是,所述N个数据并非都是关键数据,在实际应用中,关键数据可能只存在于所述N个数据块中的部分数据块中,但由于源主机10并不知道关键数据存储的具体位置,所以需要对每个偏移量中的数据进行验证。
关于从偏移量中获取数据,本实施例提供了不同的实施方式。在一种方式中,获取的数据完全来自该偏移量中存储的数据。例如,偏移量为起始地址为64KB,末尾地址为68KB的区域,那么获取的数据来自[64KB,68KB]这段地址区间。在另一种方式中,考虑到除了偏移量之外,偏移量的周围也可能存储有关键数据,因此本实施例对偏移量进行了扩展。扩展具体包括对起始地址减少设定长度,或者对末尾地址增加设定长度,或者,既对起始地址减少设定长度也对末尾地址增加设定长度。继续以偏移量为起始地址为64KB,末尾地址为68KB的区域为例,可以对64KB减少4KB(假设减少的设定长度为4KB),那么扩展后的地址区间为[60KB,68KB],或者,对68KB增加4KB(假设增加的设定长度为4KB),那么扩展后的地址区间为[64KB,72KB],或者,既对64KB减少4KB又对68KB增加4KB,那么扩展后的地址区间为[60KB,72KB]。在这种方式中,获取的数据则来自对偏移量进行扩展后的地址区间。在上面的例子中,减少的设定长度与增加的设定长度相等,在其他示例中减少的设定长度与增加的设定长度也可以不相等。
S202,对获取的数据计算校验值,并进行持久化存储。
当S201中是从一个数据块获取数据时,则只需要对该数据进行校验值的计算。如果源主机10是从N个数据块中获取数据,则需要对N个数据分别进行校验值的计算,从而获得N个校验值。计算校验值可以采用CRC算法或者其他校验算法,本实施例不对校验算法进行限定。S202可以是在源卷40正常运行时进行,也可以在收到卸载指令时进行。
S203,源卷40被卸载时,源主机10从源卷40中获取关键数据。由于关键数据也有可能存在于最晚写入源卷40的M个数据块中,因此在源卷40被卸载时本实施例可以通过LRU算法或者其他方式获得最晚写入源卷40的数据块。M是大于或等于1的整数。与S201类似,首先源主机10获取M个数据块的偏移量,由于数据块的数量为M,因此数据块的偏移量的数量也是M。然后,源主机10从M个偏移量中获取M个数据。需要说明的是,所述M个数据并非都是关键数据,在实际应用中,关键数据可能只存在于所述M个数据块中的部分数据块中,但由于源主机10并不知道关键数据存储的具体位置,所以需要对每个偏移量中的数据进行验证。
同样地,关于从偏移量中获取数据,本实施例提供了不同的实施方式。在一种方式中,获取的数据完全来自该偏移量中存储的数据。在另一种方式中,考虑到除了偏移量之外,偏移量的周围也可能存储有关键数据,因此本实施例对偏移量进行了扩展。该部分内容与S201类似。
S204,对获取的数据计算校验值,并进行持久化存储。当S203中是从一个数据块获取数据时,则只需要对该数据进行校验值的计算。如果源主机10是从M个数据块中获取数据,则需要对M个数据分别进行校验值的计算,从而获得M个校验值。计算校验值可以采用CRC算法或者其他校验算法,本实施例不对校验算法进行限定。
需要说明的是,源主机10可以只执行S201-S202之后,不执行S203-S204,此时系统默认关键数据只存在于最早写入源卷40的N个数据块中,那么只需要从获取最早写入源卷40的N个数据中获取数据并进行验证。或者,源主机10可以只执行S203-S204之后,不执行S201-S202,此时系统默认关键数据只存在于最晚写入源卷40的M个数据块中,那么只需要从获取最晚写入源卷40的M个数据中获取数据并进行验证。或者,源主机10既需要执行S201-S202,也需要执行S203-S204,此时系统默认关键数据既可能存储在最早写入源卷40的N个数据块中,也可能存储在最晚写入源卷40的M个数据块中,那么最早写入的N个数据和最晚写入的M个数据都需要进行验证。
S205,源卷40被重新挂载。如前面的描述,在S204与S205之间源卷40中的数据可能会发生改变,并且这些改变是IO分离器30无法截获的。
S206,在源卷40被重新挂载之后,接收第一个写数据请求之前,从同样的位置获取关键数据。
如果有新的数据写入源卷40,那么关键数据必定会改变,就无法通过验证关键数据了。因此,在源卷40被重新挂载之后,接收第一个写数据请求之前,源主机10需要读取关键数据。若S201中的关键数据是从固定位置获得的,那么此时也从所述固定位置获取。如果关键数据存储在源卷40中的位置是不固定的,那么需要从卸载前的同样的位置获取关键数据。具体的获取方式可以按照S201的方式。例如,可以从最早写入源卷40的数据块中获得关键数据,或者按照S203的方式从源卷40卸载前最晚写入源卷40的块中获得关键数据。
S207,对获取的数据计算校验值。该步骤与S202以及S204类似,如果是从一个数据块获取关键数据,则只需要对该数据进行校验值的计算。如果源主机10是从多个数据块中获取数据,则需要对多个数据块分别进行校验值的计算,从而获得多个校验值。校验算法与S202中使用的校验算法一致。
S208,判断S207计算获得的校验值与存储的校验值是否一致。
当S207计算获得的校验值的数量为1时,则只需要就校验值是否相同进行一次判断。当S207计算获得的校验值的数量为多个时,需要就每个相同位置获得的数据的校验值进行判断。例如,将位置1获得的数据的校验值与存储的位置1的数据的校验值进行验证,将位置2获得的数据的校验值与存储的位置2的数据的校验值进行验证……将位置N获得的数据的校验值与存储的位置N的数据的校验值进行验证。若有任意一个验证结果为不一致,则说明在重新挂载之前源卷40被修改过,而校验值不一致的数据为关键数据。
S209,若S207计算获得的校验值与存储的校验值一致,则说明源卷40在被重新挂载之前没有被修改。在这种情况下,在源卷40重新挂载并开始接收IO请求之后,IO分离器30可以继续捕获IO请求,获得修改的数据并定期发送给目标卷50,实现数据同步。
S210,若S207计算获得的校验值与存储的校验值不一致,则确认源卷40在被重新挂载之前被修改了。根据S208的描述,只要有任意一个校验值的验证结果为不一致,都说明源卷40在被重新挂载之前被修改了。此时,源卷40和目标卷50的数据已经出现了不一致,如果继续进行增量复制会导致数据进一步腐化,因此在本实施例中源卷40中的数据会全部拷贝给目标卷50,以实现两端的数据再次同步。
在本申请中,图1所示存储系统还可以应用在云备份领域,目标数据中心200为云数据中心,目标卷50是一个或多个云盘。在这种场景中,往往在离线时将生产中心100的全量数据迁移至云,再利用在线迁移完成增量数据的更新。由于迁移至云后的数据可能被用户意外更改,因此需要对数据进行验证,若验证的结果为发生过改变则需要再次进行全量复制。具体来说,首先,通过训练获取关键数据的存储位置。在离线迁移触发后,从该位置获取关键数据,并将关键数据及用户数据一起发送至云盘进行存储。当确定进行在线增量迁移时,从线下同样的位置获取关键数据,并将其与云盘中的关键数据进行验证,若不一致则说明用户数据在云上发生了改变,需要再次进行全量复制。验证的方式可以参考图2的示例,通过计算关键数据的校验值,再比较线下获取的关键数据的校验值与云盘中的关键数据的校验值,此外,也可以直接对线下获取的关键数据与云盘中的关键数据进行验证。
本实施例还提供了一种数据同步装置,该装置位于源主机10中,包括获取模块301,验证模块302和同步模块303。
其中,获取模块301,用于在源卷被卸载之前,从所述源卷的第一位置获取第一关键数据,所述第一关键数据用于指示用户数据的变化;在所述源卷被卸载后又重新挂载并且尚且没有接收写数据请求时,从所述第一位置获取所述源卷的第二关键数据。验证模块302,用于验证所述第二关键数据与所述第一关键数据是否相同。同步模块303,用于当验证的结果为所述第二关键数据与所述第一关键数据不相同时,将所述源卷中的全部数据拷贝到目标卷。
此外,验证模块302还用于计算所述第一关键数据的第一校验值;以及计算所述第二关键数据的第二校验值,并且通过所述第一校验值和所述第二校验值是否相同判断所述第二关键数据与所述第一关键数据是否相同。获取模块301还用于在所述源卷被卸载之前,记录写入所述源卷的第一数据块的第一偏移量,所述第一数据块来自接收的第一写数据请求,所述第一偏移量用于指示所述第一关键数据所位于所述源卷中的位置;对所述第一偏移量进行扩展,获得所述第一位置。
可选的,所述第一偏移量包括第一起始地址和第一末尾地址。获取模块301对所述第一偏移量进行扩展具体包括对所述第一起始地址减少第一设定长度,并且对所述第一末尾地址增加第二设定长度后,获得所述第一位置。
可选的,所述第一设定长度和所述第二设定长度相同。所述第一数据块是最早写入所述源卷的数据块,或者,所述第一数据块是所述源卷被卸载之前最晚写入所述源卷的数据块。
具体的,获取模块301的功能可参考图2所示的S201、S203以及S206的描述。具体的,验证模块302的功能可参考图2所示的S202、S204、S207以及S208的描述。具体的,同步模块303的功能可参考图2所示的S210的描述。以上各模块的功能均由源主机10内部的处理器调用存储器中程序指令执行。
本实施例还提供了一种源主机10,参考图4的结构示意图。源主机10包括了处理器401和存储器402。所述存储器402中存储有程序403。处理器401、存储器402和接口404之间通过系统总线405连接并完成相互间的通信。
处理器401是单核或多核中央处理单元,或者为特定集成电路,或者为被配置成实施本发明实施例的一个或多个集成电路。存储器402可以为随机存取存储器(RandomAccess Memory,RAM),也可以为非易失性存储器(non-volatile memory),例如至少一个硬盘存储器。存储器402用于存储计算机执行指令。具体的,计算机执行指令中可以包括程序403。当源主机10运行时,处理器401运行所述程序403以执行图2所示的S201-S210的方法流程。
本领域普通技术人员将会理解,本发明的各个方面、或各个方面的可能实现方式可以被具体实施为系统、方法或者计算机程序产品。因此,本发明的各方面、或各个方面的可能实现方式可以采用完全硬件实施例、完全软件实施例(包括固件、驻留软件等等),或者组合软件和硬件方面的实施例的形式,在这里都统称为“电路”、“模擦除块”或者“系统”。此外,本发明的各方面、或各个方面的可能实现方式可以采用计算机程序产品的形式,计算机程序产品是指存储在计算机可读介质中的计算机可读程序代码。
计算机可读介质包含但不限于电子、磁性、光学、电磁、红外或半导体系统、设备或者装置,或者前述的任意适当组合,如随机访问存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM)、光盘。
计算机中的处理器读取存储在计算机可读介质中的计算机可读程序代码,使得处理器能够执行在流程图中每个步骤、或各步骤的组合中规定的功能动作。
计算机可读程序代码可以完全在用户的计算机上执行、部分在用户的计算机上执行、作为单独的软件包、部分在用户的计算机上并且部分在远程计算机上,或者完全在远程计算机或者服务器上执行。也应该注意,在某些替代实施方案中,在流程图中各步骤、或框图中各擦除块所注明的功能可能不按图中注明的顺序发生。例如,依赖于所涉及的功能,接连示出的两个步骤、或两个擦除块实际上可能被大致同时执行,或者这些擦除块有时候可能被以相反顺序执行。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。本领域普通技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,本领域普通技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。
Claims (12)
1.一种数据同步方法,其特征在于,包括:
在源卷被卸载之前,从所述源卷的第一位置获取第一关键数据,所述第一关键数据是用于标记所述源卷中存储的数据是否发生改变的数据;
在所述源卷被卸载后又重新挂载并且尚且没有接收写数据请求时,从所述第一位置获取所述源卷的第二关键数据;
验证所述第二关键数据与所述第一关键数据是否相同;
当验证的结果为所述第二关键数据与所述第一关键数据不相同时,将所述源卷中的全部数据拷贝到目标卷。
2.根据权利要求1所述的方法,其特征在于,还包括:
计算所述第一关键数据的第一校验值;以及计算所述第二关键数据的第二校验值;
所述验证所述第二关键数据与所述第一关键数据是否相同具体包括:
判断所述第二校验值是否等于所述第一校验值。
3.根据权利要求1所述的方法,其特征在于,还包括:
在所述源卷被卸载之前,记录写入所述源卷的第一数据块的第一偏移量,所述第一数据块来自接收的第一写数据请求,所述第一偏移量用于指示所述第一关键数据所位于所述源卷中的位置;
对所述第一偏移量进行扩展,获得所述第一位置。
4.根据权利要求3所述的方法,其特征在于,所述第一偏移量包括第一起始地址和第一末尾地址;
所述对所述第一偏移量进行扩展,获得所述第一位置包括:
对所述第一起始地址减少第一设定长度,并且对所述第一末尾地址增加第二设定长度后,获得所述第一位置。
5.根据权利要求4所述的方法,其特征在于,所述第一设定长度和所述第二设定长度相同。
6.根据权利要求3所述的方法,其特征在于,所述第一数据块是最早写入所述源卷的数据块,或者,
所述第一数据块是所述源卷被卸载之前最晚写入所述源卷的数据块。
7.一种数据同步装置,其特征在于,包括:
获取模块,用于在源卷被卸载之前,从所述源卷的第一位置获取第一关键数据,所述第一关键数据是用于标记所述源卷中存储的数据是否发生改变的数据;在所述源卷被卸载后又重新挂载并且尚且没有接收写数据请求时,从所述第一位置获取所述源卷的第二关键数据;
验证模块,用于验证所述第二关键数据与所述第一关键数据是否相同;
同步模块,用于当验证的结果为所述第二关键数据与所述第一关键数据不相同时,将所述源卷中的全部数据拷贝到目标卷。
8.根据权利要求7所述的装置,其特征在于,
所述验证模块,还用于计算所述第一关键数据的第一校验值;以及计算所述第二关键数据的第二校验值;
所述验证模块用于验证所述第二关键数据与所述第一关键数据是否相同具体包括:所述验证模块判断所述第二校验值是否等于所述第一校验值。
9.根据权利要求7所述的装置,其特征在于,
所述获取模块,还用于在所述源卷被卸载之前,记录写入所述源卷的第一数据块的第一偏移量,所述第一数据块来自接收的第一写数据请求,所述第一偏移量用于指示所述第一关键数据所位于所述源卷中的位置;对所述第一偏移量进行扩展,获得所述第一位置。
10.根据权利要求9所述的装置,其特征在于,所述第一偏移量包括第一起始地址和第一末尾地址;
所述获取模块对所述第一偏移量进行扩展具体包括对所述第一起始地址减少第一设定长度,并且对所述第一末尾地址增加第二设定长度后,获得所述第一位置。
11.根据权利要求10所述的装置,其特征在于,所述第一设定长度和所述第二设定长度相同。
12.根据权利要求9所述的装置,其特征在于,所述第一数据块是最早写入所述源卷的数据块,或者,
所述第一数据块是所述源卷被卸载之前最晚写入所述源卷的数据块。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910668543.3A CN110543460B (zh) | 2019-07-23 | 2019-07-23 | 一种数据同步方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910668543.3A CN110543460B (zh) | 2019-07-23 | 2019-07-23 | 一种数据同步方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110543460A CN110543460A (zh) | 2019-12-06 |
CN110543460B true CN110543460B (zh) | 2024-03-26 |
Family
ID=68709801
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910668543.3A Active CN110543460B (zh) | 2019-07-23 | 2019-07-23 | 一种数据同步方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110543460B (zh) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103425539A (zh) * | 2012-05-14 | 2013-12-04 | 联想(北京)有限公司 | 信息处理方法及装置 |
CN106021494A (zh) * | 2016-05-19 | 2016-10-12 | 中国银联股份有限公司 | 一种主数据同步方法及装置 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI451243B (zh) * | 2009-01-23 | 2014-09-01 | Infortrend Technology Inc | 單一架構下進行資料卷複製的方法及其裝置 |
CN104572353B (zh) * | 2015-01-21 | 2018-01-09 | 浪潮(北京)电子信息产业有限公司 | 一种灾备融合管理方法及系统 |
CN104965771A (zh) * | 2015-07-29 | 2015-10-07 | 浪潮(北京)电子信息产业有限公司 | 一种验证异地容灾数据一致性的方法和系统 |
CN109032507B (zh) * | 2018-06-28 | 2021-11-19 | 郑州云海信息技术有限公司 | 一种生成源卷存储快照的方法、系统及相关组件 |
-
2019
- 2019-07-23 CN CN201910668543.3A patent/CN110543460B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103425539A (zh) * | 2012-05-14 | 2013-12-04 | 联想(北京)有限公司 | 信息处理方法及装置 |
CN106021494A (zh) * | 2016-05-19 | 2016-10-12 | 中国银联股份有限公司 | 一种主数据同步方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN110543460A (zh) | 2019-12-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3125120B1 (en) | System and method for consistency verification of replicated data in a recovery system | |
US9959061B1 (en) | Data synchronization | |
US10120925B1 (en) | Data synchronization | |
US10002048B2 (en) | Point-in-time snap copy management in a deduplication environment | |
US8046547B1 (en) | Storage system snapshots for continuous file protection | |
US9372743B1 (en) | System and method for storage management | |
US7761732B2 (en) | Data protection in storage systems | |
CN108509156B (zh) | 数据读取方法、装置、设备及系统 | |
US10884871B2 (en) | Systems and methods for copying an operating source volume | |
US9361301B1 (en) | Detecting modifications to a storage that occur in an alternate operating environment | |
US9053073B1 (en) | Use of timestamp logic in synchronous replication | |
US10484179B1 (en) | Data consistency in an encrypted replication environment | |
CN107479823B (zh) | 随机读写文件测试中的数据校验方法和装置 | |
US11386070B2 (en) | Method and system for secure data replication data integrity verification | |
US12099415B2 (en) | Devices and methods for fast backup | |
US20240045772A1 (en) | Continuous data protection unit, recovery unit for data protection and method thereof | |
CN108595287B (zh) | 基于纠删码的数据截断方法及装置 | |
US10346260B1 (en) | Replication based security | |
JP2015049633A (ja) | 情報処理装置、データ修復プログラム、及びデータ修復方法 | |
US10078558B2 (en) | Database system control method and database system | |
US8473773B2 (en) | Method and system to provide a compliance clock service suitable for cloud deployment | |
US11436073B2 (en) | Fault indications for storage system commands | |
CN111104248A (zh) | 用于验证缓存文件的方法、设备和计算机程序产品 | |
CN110543460B (zh) | 一种数据同步方法和装置 | |
JP2021114164A (ja) | ストレージ装置及びストレージ制御方法 |
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 |