用于复制数据的方法、主设备以及从设备技术

技术编号:20044591 阅读:49 留言:0更新日期:2019-01-09 04:03
一种用于复制数据的方法、主设备以及从设备。该方法包括:主设备向从设备发送第一请求消息,指令从设备获得第二数据,并将第二数据覆盖从设备中已保存的第一数据,主设备和从设备分别位于不同的数据中心,第一数据和第二数据为同名数据的两个不同版本的数据,所述第二数据的版本晚于所述第一数据的版本;主设备接收从设备发送的第一应答消息,第一应答消息用于表明从设备成功复制第二数据。在本申请实施例中,通过第一请求消息从设备能够获取第一数据和第二数据的覆盖关系,不需要在数据的元数据中增加数据的历史操作信息,减小了元数据的大小,并且能够保证异步复制最终一致性,提高复制数据的性能。

【技术实现步骤摘要】
用于复制数据的方法、主设备以及从设备
本申请涉及存储领域,并且更具体地,涉及一种用于复制数据的方法、主设备以及从设备。
技术介绍
在数据复制技术的高速发展下,异步复制技术成为主流的数据复制技术。现有技术中,为了保证不同数据中心存储的同名数据,在经历主集群多线程多次覆盖以及跨地域的主集群和备集群之间的异步复制之后,能够在一定时间后,达到同名数据的最新版本数据的一致,在数据的元数据中增加元时钟(metaclock),基于元数据中的metaclock确定同名数据的不同版本的数据之间的覆盖关系,增加了元数据的数据量,进而增加了数据复制成本,影响数据复制的性能。因此,如何减小元数据的大小,提高复制数据的性能,成为亟待解决的问题。
技术实现思路
本申请提供一种复制数据的方法和装置,能够减小元数据的大小,提高复制数据的性能。第一方面,提供了一种用于复制数据的方法,包括:主设备向从设备发送第一请求消息,所述第一请求消息用于指令从设备获得第二数据,并将所述第二数据覆盖第一数据,所述主设备和所述从设备分别位于不同的数据中心,所述第一数据和所述第二数据为同名数据的两个不同版本的数据,所述第二数据的版本晚于所述第一数据的版本;当所述从设备中保存的所述同名数据的最新版本为所述第一数据时,所述第一请求消息能够用于指令所述从设备获得所述第二数据,并覆盖所述第一数据,所述主设备接收所述从设备发送的第一应答消息,所述第一应答消息用于表明所述从设备成功复制所述第二数据;或者,当所述从设备中保存的所述同名数据的最新版本不是所述第一数据,而是第三数据时,所述主设备接收所述从设备发送的第二请求消息,所述第二请求消息用于查询在所述主设备中,所述第二数据和所述第三数据的覆盖关系,其中,所述第三数据为所述同名数据的一个版本的数据;所述主设备向所述从设备发送第二指示信息,所述第二指示信息用于指示在所述主设备中,所述第二数据和所述第三数据的覆盖关系,所述主设备接收所述从设备发送的第一应答消息,所述第一应答消息用于表明所述从设备成功复制所述第二数据。上述复制数据可以理解为复制对象、复制文件或者复制块等。根据本申请实施例提供的用于复制数据的方法,通过主设备向从设备发送的第一请求消息,进行第二数据异步复制,并根据该第一请求消息覆盖从设备中已保存的第一数据。第一数据为同名数据中旧版本的数据,而第二数据为同名数据中新版本的数据。也就是说,在主设备和从设备中每次执行复制时,均复制新版本的数据,最后能够达到最终一致性。且第二数据的元数据中不需要增加元时钟记载操作历史,减小元数据的大小,提高复制数据的性能。当第一请求消息指令第二数据覆盖第一数据,而从设备中保存的同名数据的最新版本的数据不是第一数据,而保存的是第三数据时,从设备无法确定第二数据和第三数据的覆盖关系。此时,增加回源校验机制,即,主设备接收从设备发送的用于查询第三数据和第二数据覆盖关系的第二请求消息,且主设备根据第三数据和第二数据在自身中的覆盖关系,向从设备发送第二指示信息,重新指示第三数据和第二数据的覆盖关系。能够保证数据复制时,主设备和从设备之间的最终一致性。具体地,第二指示信息具体可以是第三数据第二数据的状态信息,或者,当机器时钟可信时,第二指示信息具体可以是第三数据和第二数据的下盘时刻。其中,时钟可信指的是主设备和从设备所在的系统设有原子时钟,对于主设备侧的时钟信息从设备侧是接受的。能够为第二指示信息的可能的指示形式提供灵活选择性。当第二数据在主设备中被第三数据覆盖的情况下,第二数据的状态为删除(被覆盖)状态,而第三数据为覆盖第二数据的数据,则,第三数据的状态为非删除(未被覆盖)状态;由于第二数据在主设备中被第三数据覆盖,则,第二数据在主设备中的下盘时刻早于第三数据的下盘时刻。结合第一方面,在第一方面的某些实现方式中,所述第一请求消息包括第一指示信息,所述第一指示信息用于指示所述第二数据的版本晚于所述第一数据的版本。根据本申请实施例提供的用于复制数据的方法,通过在上述第一请求消息中携带所述第二数据的版本晚于所述第一数据的版本的指示信息,使得从设备在接收到第一请求消息时,能够根据其中携带的第一指示信息判断第二数据和第一数据之间的覆盖关系。提高复制数据的准确性。具体地,上述第一请求消息还包括第二数据,或者,包括第二数据的第一标识。当第一请求消息包括第二数据时,从设备直接接收第二数据并保存第二数据。即,从设备获得第二数据的一种实现;当第一请求消息包括第二数据的第一标识时,从设备根据该第二数据的第一标识从主设备中获取第二数据,并复制该第二数据。即,从设备获得第二数据的另一种实现。具体地,第二数据的第一标识可以为第二数据的版本号,或者,其他能够指示第二数据的标识信息。可选地,在一些实施例中,第一请求消息中可以不包括上述的第一指示信息,包括以下两种可能的情况:情况一:上述主设备和从设备位于的不同的数据中心之间包括一个全局的调度器,该调度器能够为同名数据上传的每个版本的数据,分配一个全局唯一的第二标识,并且该第二标识为递增的序列,也就是说新版本的第二标识一定大于旧版本的第二标识。在此情况下,第一请求消息中可以仅仅包括第二数据的第二标识,或者,包括第二数据的第二标识和第二数据。具体地,第一请求消息中仅仅包括第二数据的第二标识时,从设备根据该第二数据的第二标识从主设备中获取第二数据,并复制第二数据。即,从设备获得第二数据的一种实现。或者,当第一请求消息中包括第二数据的第二标识和第二数据时,从设备直接接收第二数据并保存第二数据。即,从设备获得第二数据的另一种实现情况二:上述主设备和从设备位于的不同的数据中心之间包括一个全局的调度器,该调度器能够为同名数据上传的每个版本的数据,分配一个全局唯一的时钟(系统中存在原子钟),并且该时钟能够准确表示同名数据的每个版本的数据在主设备中的下盘时刻,也就是说新版本的时钟一定晚于旧版本的时钟。在此情况下,第一请求消息中可以仅仅包括第二数据的时钟信息,或者,包括第二数据的时钟信息和第二数据。具体地,第一请求消息中仅仅包括第二数据的时钟信息时,从设备根据该第二数据的时钟信息从主设备中获取第二数据,并复制第二数据。即,从设备获得第二数据的一种实现。或者,当第一请求消息中包括第二数据的时钟信息和第二数据时,从设备直接接收第二数据并保存第二数据。即,从设备获得第二数据的另一种实现。结合第一方面及其上述实现方式,在第一方面的另一种实现方式中,所述第一指示信息携带在所述第一请求消息的头域。根据本申请实施例提供的用于复制数据的方法,第一指示信息可以携带在第一请求消息的头域。使得从设备接收到第一请求消息时,能够快速获得所述第二数据的版本晚于所述第一数据的版本,进而得知第一数据和第二数据的覆盖关系。可选地,第一指示信息可以携带在第一请求消息的其他位置。结合第一方面及其上述实现方式,在第一方面的另一种实现方式中,所述第一指示信息为所述第一数据的版本号。根据本申请实施例提供的用于复制数据的方法,第一指示信息可以为第一数据的版本号。由于同名数据不同版本的数据的版本号能够唯一确定该版本号对应的数据,因此,第一指示信息为第一数据的版本号,能够提高从设备确定第一数据的准确性。结合第一方面及其上述实现方式,在本文档来自技高网...

【技术保护点】
1.一种用于复制数据的方法,其特征在于,包括:主设备向从设备发送第一请求消息,所述第一请求消息用于指令从设备获得第二数据,并将所述第二数据覆盖所述从设备中已保存的第一数据,所述主设备和所述从设备分别位于不同的数据中心,所述第一数据和所述第二数据为同名数据的两个不同版本的数据,所述第二数据的版本晚于所述第一数据的版本;所述主设备接收所述从设备发送的第一应答消息,所述第一应答消息用于表明所述从设备成功复制所述第二数据。

【技术特征摘要】
1.一种用于复制数据的方法,其特征在于,包括:主设备向从设备发送第一请求消息,所述第一请求消息用于指令从设备获得第二数据,并将所述第二数据覆盖所述从设备中已保存的第一数据,所述主设备和所述从设备分别位于不同的数据中心,所述第一数据和所述第二数据为同名数据的两个不同版本的数据,所述第二数据的版本晚于所述第一数据的版本;所述主设备接收所述从设备发送的第一应答消息,所述第一应答消息用于表明所述从设备成功复制所述第二数据。2.根据权利要求1所述的方法,其特征在于,所述第一请求消息中包括第一指示信息,所述第一指示信息用于指示所述第二数据的版本晚于所述第一数据的版本。3.根据权利要求2所述的方法,其特征在于,所述第一指示信息为所述第一数据的版本号。4.根据权利要求1-3中任一项所述的方法,其特征在于,在所述主设备向从设备发送第一请求消息之前,所述方法还包括:所述主设备确定所述第二数据的状态,所述第二数据的状态为未被覆盖的状态。5.一种用于复制数据的方法,其特征在于,包括:从设备接收主设备发送的第一请求消息,所述第一请求消息用于指令从设备获得第二数据,并将所述第二数据覆盖所述从设备中已保存的第一数据,所述主设备和所述从设备分别位于不同的数据中心,所述第一数据和所述第二数据为同名数据的两个不同版本的数据,所述第二数据的版本晚于所述第一数据的版本;所述从设备根据所述第一请求消息,获得所述第二数据,并将第二数据覆盖本地已保存的所述第一数据;所述从设备向所述主设备发送第一应答消息,所述第一应答消息用于表明所述从设备成功复制所述第二数据。6.根据权利要求5所述的方法,其特征在于,所述第一请求消息中包括第一指示信息,所述第一指示信息用于指示所述第二数据的版本晚于所述第一数据的版本。7.根据权利要求6所述的方法,其特征在于,所述第一指示信息为所述第一数据的版本号。8.一种主设备,其特征在于,包括:发送单元,用于向从设备发送第一请求消息,所述第一请求消息用于指令从设备获得第二数据,并将所述第二数据覆盖所述从设备中已保存的第一数据,所述主设备和所述从设备分别位于不同的数据中心,所述第一数据和所述第二数据为同名数据的两个不同版本的数据,所述第二数据的...

【专利技术属性】
技术研发人员:孙嘉岑钱海峰
申请(专利权)人:华为技术有限公司
类型:发明
国别省市:广东,44

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

1