CN104363977A - 数据复制方法、数据复制装置和存储设备 - Google Patents

数据复制方法、数据复制装置和存储设备 Download PDF

Info

Publication number
CN104363977A
CN104363977A CN201380002386.3A CN201380002386A CN104363977A CN 104363977 A CN104363977 A CN 104363977A CN 201380002386 A CN201380002386 A CN 201380002386A CN 104363977 A CN104363977 A CN 104363977A
Authority
CN
China
Prior art keywords
memory device
data
copied
copy
message
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
Application number
CN201380002386.3A
Other languages
English (en)
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.)
Huawei Technologies Co Ltd
Original Assignee
Huawei 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 Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Publication of CN104363977A publication Critical patent/CN104363977A/zh
Pending legal-status Critical Current

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/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2053Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant
    • G06F11/2056Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant by mirroring
    • G06F11/2082Data synchronisation
    • 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/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2053Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant
    • G06F11/2056Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant by mirroring
    • G06F11/2058Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant by mirroring using more than 2 mirrored copies
    • 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/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2053Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant
    • G06F11/2056Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant by mirroring
    • G06F11/2071Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant by mirroring using a plurality of controllers
    • G06F11/2074Asynchronous techniques
    • 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/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2053Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant
    • G06F11/2056Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant by mirroring
    • G06F11/2071Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant by mirroring using a plurality of controllers
    • G06F11/2076Synchronous techniques

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明实施例提供了一种数据复制方法、数据复制装置和存储设备。其中,方法包括:第二存储设备接收第一存储设备发送的复制进度信息,所述复制进度信息用于指示所述第一存储设备已复制到第三存储设备的数据;当第一存储设备发生故障时,根据所述复制进度信息和所述第二存储设备保存的待复制数据确定所述待复制数据中尚未复制的数据,所述待复制数据是所述第一存储设备待复制到所述第三存储设备的数据;将所述尚未复制的数据发送给所述第三存储设备。可以提高数据复制的效率。

Description

数据复制方法、数据复制装置和存储设备
技术领域
本发明涉及存储技术,尤其涉及一种数据复制方法、数据复制装置和存储设备。
背景技术
传统的两地三中心的数据容灾,由部署在两个地方的三个数据中心组成。例如,三个数据中心分别是数据中心A、数据中心B和数据中心C。其中,数据中心A和数据中心B位于同一个城市的两个不同位置,其距离往往在100km以内。而数据中心C则位于较远距离(如1000km)之外的另一个城市。
数据中心A和数据中心B之间由于距离较近,可采用同步远程复制的方式进行数据容灾,因此数据中心A和数据中心B中保存的数据是一致的。数据中心A和数据中心C之间由于距离较远,通常采用异步远程复制的方式进行数据容灾。
然而,若数据中心A发生灾难,那么数据中心A和数据中心C之间的复制链路中断,数据中心B可以以异步远程复制的方式重新复制所有数据给数据中心C。
发明内容
本发明实施例提供了一种数据复制方法、数据复制装置和存储设备,以提高数据复制的效率。
本发明实施例第一方面提供了一种数据复制方法,所述方法应用于存储系统中,所述存储系统包括至少三个存储设备,其中第一存储设备和第二存储设备中保存相同的数据,所述方法包括:
所述第二存储设备接收所述第一存储设备发送的复制进度信息,所述复制进度信息用于指示所述第一存储设备已复制到第三存储设备的数据;
当所述第一存储设备发生故障时,根据所述复制进度信息和所述第二存储设备保存的待复制数据确定所述待复制数据中尚未复制的数据,所述待复制数据是所述第一存储设备待复制到所述第三存储设备的数据;
将所述尚未复制的数据发送给所述第三存储设备。
在第一方面的第一种实施方式中,所述第二存储设备接收第一存储设备发送的复制进度信息包括:
所述第二存储设备接收所述第一存储设备发送的包含进度地址字段的消息,所述进度地址字段用于表示所述复制进度信息。
结合第一方面或第一方面的第一种实施方式,在第一方面的第二种实施方式中,所述第二存储设备中保存有复制数据信息,所述复制数据信息用于获得所述待复制数据。
结合第一方面的第二种实施方式,在第一方面的第三种实施方式中,还包括:当接收到所述第一存储设备发送的复制启动信息时,根据所述复制启动信息生成所述复制数据信息。
结合第一方面的第二种实施方式,在第一方面的第四种实施方式中,还包括:接收所述第一存储设备发送的所述复制数据信息。
结合第一方面的以上任一种实施方式,在第一方面的第五种实施方式中,当所述第一存储设备发生故障时,还包括:接收所述第三存储设备发送的检测信息,所述检测信息用于指示所述第一存储设备发生故障。
本发明实施例第二方面提供了一种数据复制方法,所述方法应用于存储系统中,所述存储系统包括至少三个存储设备,其中第一存储设备和第二存储设备中保存相同的数据,所述方法包括:
所述第二存储设备接收所述第一存储设备发送的复制进度信息,所述复制进度信息用于指示所述第一存储设备已复制到第三存储设备的数据;
根据所述复制进度信息将第一复制数据信息修改为第二复制数据信息;
当所述第一存储设备发生故障时,根据所述第二复制数据信息和所述第二存储设备保存的待复制数据确定所述待复制数据中尚未复制的数据,所述待复制数据是所述第一存储设备待复制到所述第三存储设备的数据;
将所述尚未复制的数据发送给所述第三存储设备。
在第二方面的第一种实施方式中,所述第二存储设备接收第一存储设备发送的复制进度信息包括:
所述第二存储设备接收所述第一存储设备发送的包含进度地址字段的消息,所述进度地址字段用于表示所述复制进度信息。
结合第二方面的第一种实施方式,在第二方面的第二种实施方式中,所述第一复制数据信息用于获得接收所述复制进度信息之前,最近一次尚未复制到所述第三存储设备的数据。
结合第二方面的第二种实施方式,在第二方面的第三种实施方式中,还包括:当接收到所述第一存储设备发送的复制启动信息时,根据所述复制启动信息生成第一复制数据信息。
在第二方面的第四种实施方式中,还包括:接收所述第一存储设备发送的所述复制数据信息。
结合第二方面的以上任一种实施方式,在第二方面的第五种实施方式中,当所述第一存储设备发生故障时,还包括:接收所述第三存储设备发送的检测信息,所述检测信息用于指示所述第一存储设备发生故障。
本发明实施例第三方面提供了一种数据复制装置,所述数据复制装置位于第二存储设备中,包括:
接收模块,用于接收第一存储设备发送的复制进度信息,所述复制进度信息用于指示所述第一存储设备已复制到第三存储设备的数据;
确定模块,用于当所述第一存储设备发生故障时,根据所述复制进度信息和所述第二存储设备保存的待复制数据确定所述待复制数据中尚未复制的数据,所述待复制数据是所述第一存储设备待复制到所述第三存储设备的数据;
发送模块,用于将所述尚未复制的数据发送给所述第三存储设备。
在第三方面的第一种实施方式中,所述接收模块,用于接收所述第一存储设备发送的包含进度地址字段的消息,所述进度地址字段用于表示所述复制进度信息。
结合第三方面或者第三方面的第一种实施方式,在第三方面的第二种实施方式中,所述第二存储设备中保存有复制数据信息,所述复制数据信息用于获得所述待复制的数据。
结合第三方面的第二种实施方式,在第三方面的第三种实施方式中,还包括:生成模块,用于当接收到所述第一存储设备发送的复制启动信息时,根据所述复制启动信息生成所述复制数据信息。
结合第三方面的第二种实施方式,在第三方面的第四种实施方式中,所述接收模块,还用于接收所述第一存储设备发送的所述复制数据信息。
结合第三方面的以上任一种实施方式,在第三方面的第五种实施方式中,所述接收模块,还用于当所述第一存储设备发生故障时,接收所述第三存储设备发送的检测信息,所述检测信息用于指示所述第一存储设备发生故障。
本发明实施例第四方面提供了一种数据复制装置,所述数据复制装置位于第二存储设备中,包括:
接收模块,用于接收第一存储设备发送的复制进度信息,所述复制进度信息用于指示所述第一存储设备已复制到第三存储设备的数据;
修改模块,用于根据所述复制进度信息将第一复制数据信息修改为第二复制数据信息;
确定模块,用于当所述第一存储设备发生故障时,根据所述第二复制数据信息和所述第二存储设备保存的待复制数据确定所述待复制数据中尚未复制的数据,所述待复制数据是所述第一存储设备待复制到所述第三存储设备的数据;
发送模块,用于将所述尚未复制的数据发送给所述第三存储设备。
在第四方面的第一种实施方式中,所述接收模块,用于接收所述第一存储设备发送的包含进度地址字段的消息,所述进度地址字段用于表示所述复制进度信息。
在第四方面的第二种实施方式中,所述第一复制数据信息用于获得接收所述复制进度信息之前,最近一次尚未复制到所述第三存储设备的数据。
结合第四方面的第二种实施方式,在第四方面的第三种实施方式中,还包括:生成模块,用于当接收到所述第一存储设备发送的复制启动信息时,根据所述复制启动信息生成第一复制数据信息。
在第四方面的第四种实施方式中,所述接收模块,还用于接收所述第一存储设备发送的所述第一复制数据信息。
结合第四方面的以上任一种实施方式,在第四方面的第五种实施方式中,所述接收模块,还用于当所述第一存储设备发生故障时,接收所述第三存储设备发送的检测信息,所述检测信息用于指示所述第一存储设备发生故障。
本发明实施例第五方面,提供了一种存储设备,包括:处理器、存储器和通信总线;
其中,所述处理器和所述存储器通过所述通信总线进行通信;
所述存储器用于保存程序;
所述处理器用于执行所述程序,以实现本发明实施例第一方面所述的数据复制方法。
本发明实施例第六方面,提供了一种存储设备,包括:处理器、存储器和通信总线;
其中,所述处理器和所述存储器通过所述通信总线进行通信;
所述存储器用于保存程序;
所述处理器用于执行所述程序,以实现本发明实施例第二方面所述的数据复制方法。
在本发明实施例中,第二存储设备接收第一存储设备发送的复制进度信息,所述复制进度信息用于指示所述第一存储设备已复制到第三存储设备的数据;当第一存储设备发生故障时,第二存储设备可以根据所述复制进度信息和所述第二存储设备保存的待复制数据确定所述待复制数据中尚未复制的数据,并将所述尚未复制的数据发送给所述第三存储设备。由于第二存储设备可以确定出尚未复制的数据,避免了重新发送所有的待复制数据,提高了复制效率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种数据复制方法的应用网络架构示意图;
图2为本发明实施例提供的一种数据复制方法的流程示意图;
图3为本发明实施例提供的差异位图的示意图;
图4为本发明实施例提供的另一种数据复制方法的流程示意图
图5为本发明实施例提供的再一种数据复制方法的信令交互图;
图6为本发明实施例提供的一种数据复制装置的结构示意图;
图7为本发明实施例提供的另一种数据复制装置的结构示意图;
图8为本发明实施例提供的一种存储设备的结构示意图;
图9为本发明实施例提供的另一种存储设备的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例的系统架构
本发明实施例提供的数据复制方法可以在存储系统中实现。图1为本发明实施例提供的存储系统的架构示意图,如图1所示,所述存储系统包括至少一个应用服务器11(又称主机)、至少一个生产中心和至少两个灾备中心。
所述应用服务器11可以包括当前技术已知的任何计算设备,如服务器、台式计算机等等。
生产中心包括生产阵列22。灾备中心包括一级站点和二级站点。生产中心与一级站点、二级站点之间可以采用星形组网方式或者其他组网方式进行组网,在此不作限定。其中,一级站点包括灾备阵列33,二级站点包括灾备阵列44。
生产中心可以接收主机11发送的写数据请求,将所述写数据请求中携带的数据保存在生产阵列22中。当生产中心在接收到主机发送的写数据请求后,需要将写数据请求携带的数据同步到一级站点。另外,在本发明实施例中,一级站点也可以接收主机(图中未示出)发送的写数据请求,将所述写数据请求中携带的数据保存在灾备阵列33中。同样的,当一级站点接收到主机发送的写数据请求后,也需要将写数据请求携带的数据同步到生产阵列。
生产阵列22可以是当前技术已知的存储设备,如独立磁盘冗余阵列(Redundant Arrays of Inexpensive Disks,RAID)、磁盘簇(Just a Bunch OfDisks,JBOD)、直接存取存储器(Direct Access Storage Device,DASD)的一个或多个互连的磁盘驱动器,诸如磁带库、一个或多个存储单元的磁带存储设备。举例来说,生产阵列22可以包含控制器和存储器(图中未示出),其中控制器包含处理器和缓存。处理器,用于执行输入输出IO命令以及其他数据业务;缓存是存在于控制器与硬盘之间的存储器,容量较硬盘小但速度比硬盘高得多;存储介质是生产阵列22主要的存储器,用于提供存储空间,通常情况下是指非易失性存储介质,例如,磁盘灾备阵列33和灾备阵列44都与生产阵列22的系统架构类似。
生产阵列22的存储空间可以包括多个数据卷,数据卷是由物理存储空间映射而成的一段逻辑存储空间,例如,数据卷可以是逻辑单元(Logic UnitNumber,LUN),也可以是文件系统。此外,灾备阵列33和灾备阵列44的存储空间均可以包括多个数据卷。
举例来说,在本发明实施例中,生产中心和一级站点可以部署在同一个城市的两个不同位置,其距离可以在100km以内。生产中心与一级站点之间可以通过IP(Internet Protocol)或者FC(Fiber Chanel)进行数据传输。生产阵列22和灾备阵列33之间可以采用同步远程复制的方式实现数据容灾。例如,当生产阵列22接收到主机11发送的写数据请求时,可以将所述写数据请求携带的数据写入生产阵列22中,再将所述写数据请求携带的数据发送灾备阵列33,用于灾备阵列33存储所述数据。待所述数据成功写入灾备阵列33之后,生产阵列22再向主机11返回所述写数据请求的写完成响应(又称,所述写数据请求的响应消息)。
因此,可以理解的是,在本发明实施例中,由于生产中心和一级站点都可以接收主机的数据,并且,生产中心和一级站点中存储的数据是一致的,所以生产中心和一级站点的角色可以互换。
二级站点可以部署在较远距离(如1000km)之外的另一个城市。生产中心与二级站点之间可以通过IP(Internet Protocol)或者FC(Fiber Chanel)进行数据传输。生产阵列22和灾备阵列44之间可以采用异步远程复制的方式实现数据容灾。例如,当生产阵列22接收到主机11发送的写数据请求时,
可以将所述写数据请求携带的数据写入生产阵列22中,然后向主机11返回所述写数据请求的写完成响应。间隔一段时间之后,生产阵列22再将所述写数据请求携带的数据发送给灾备阵列44,用于灾备阵列44存储所述数据。由此可见,灾备阵列44中存储的数据会比生产阵列22中存储的数据有一定时间的延迟。通常情况下,生产阵列22在一段时间内会接收多个写数据请求,并且生产阵列22在向灾备阵列44进行异步远程复制时,主机11仍然可能发送写数据请求给生产阵列22。因此有必要将生产阵列22发送给灾备阵列44的数据与其接收的尚未复制到灾备阵列33的数据区分开。
在本发明实施例中,可以利用快照技术解决这个问题。快照是数据在某个时间点的映像。快照的目的是为数据卷创建一个在特定时间点的状态视图,通过这个视图只可以看到数据卷在创建时刻的数据,在此时间点之后数据卷的修改(有新的数据写入),不会反映在快照视图中。利用这个快照视图,就可以做数据的复制。对于生产阵列22而言,由于快照数据是“静止的”,因此生产阵列22可以在将各个时间点的数据增加快照之后,再将快照数据复制到灾备阵列44,既可以完成远程数据复制,也不会影响在生产阵列22继续接收主机11发送的写数据请求。因此,生产阵列22可以每隔一段时间(例如,一个小时)对一个数据卷中的数据进行快照处理,以形成该时刻的数据卷的数据副本,将所述数据副本发送给灾备阵列44。需要说明的是,所述数据副本即当前复制任务对应的待复制给灾备阵列44的数据。
可选的,本发明实施例还可以利用给生产阵列22接收到的每个写数据请求增加时间片编号的方式来解决上述问题。例如,生产阵列22中可以包含一个当前时间片编号管理器,所述当前时间片编号管理器中保存有当前时间片编号,当前时间片编号可以用数值表示,例如0、1、2,也可以用字母表示,例如a、b、c,在此不做限定。当生产阵列22接收到写数据请求时,在写数据请求携带的数据和数据的地址中增加第一编号,所述第一编号是由当前时间片编号赋值给它的。当一个异步远程复制任务触发时,修改所述当前时间片编号,以标识后续的写数据请求,并且将第一编号对应的数据和数据的地址发送给灾备阵列44。需要说明的是,所述第一编号对应的数据即当前复制任务对应的待复制给灾备阵列44的数据。此外,在本发明实施例中,还可以采用其他方式获得当前复制任务对应的待复制给灾备阵列44的数据,在此不做限定。
另外,一级站点和二级站点之间也可以通过IP(Internet Protocol)或者FC(Fiber Chanel)进行数据传输。因此,灾备阵列33和灾备阵列44之间也可以采用异步远程复制的方式实现数据容灾,其具体的实现方式与生产阵列22和灾备阵列44之间的数据容灾方式类似,这里不再赘述。然而,在生产阵列22工作正常的情况下,灾备阵列33可以不启动异步远程复制,仅由生产阵列22将存储的数据复制给灾备阵列44。当生产阵列22发生故障时,灾备阵列33可以接替生产阵列22继续完成异步远程复制任务。
数据复制方法
下面介绍本发明实施例提供的数据复制方法,如图2所示,为本发明实施例提供的数据复制方法的流程图,为了描述方便,将上述的生产阵列22称为第一存储设备,灾备阵列33称为第二存储设备,灾备阵列44称为第三存储设备。每个存储设备均可以包含控制器和存储器,其中控制器可以包含处理器和缓存,执行下述步骤的可以是第二存储设备中的处理器。所述方法应用于存储系统中,所述存储系统包括至少三个存储设备,其中第一存储设备和第二存储设备中保存相同的数据,所述方法包括:
步骤21:第二存储设备接收第一存储设备发送的复制进度信息,所述复制进度信息用于指示所述第一存储设备已复制到第三存储设备的数据。
对于第一存储设备来说,当复制任务触发时,需要将本次复制任务(除非特别指明,本发明实施例的本次复制任务都是指当前复制任务)的待复制到第三存储设备的数据发送给所述第三存储设备。复制任务(也叫异步远程复制任务)是指第一存储设备将一段时间内一个数据卷接收到的写数据请求携带的数据发送给第三存储设备。具体而言,第一存储设备可以将这段时间内一个数据卷接收到的所有的数据都发送给第三存储设备,也可以将这段时间内接收到相对于上一次复制任务的差异数据(也称增量数据)发送给第三存储设备,在此不做限定。
举例来说,第一存储设备在复制任务触发之前,接收到主机发送的多个写数据请求,其中,每个写数据请求均携带有数据和所述数据的地址。第一存储设备可以根据所述多个写数据请求更新预先设置的差异数据信息(例如,差异位图)。在本发明实施例中,差异数据信息用于记录所述当前复制任务触发之前、最近一次已完成的复制任务触发之后写入所述第一存储设备的数据。
如图3所示,差异位图的每个格子对应一段地址,并且,每个格子中保存一个标志位,可以是1,也可以是0。“1”代表这段时间内在该段地址中有数据写入;“0”代表这段时间内在该段地址中没有数据写入。因此,当接收到的写数据请求携带的地址属于某个格子的地址范围时,将该格子的标志位置为1。此外,一种可选的实施方式是,差异位图的每个格子对应一个地址,当接收到写数据请求携带的地址与某个格子的地址相同时,将该格子的标志位置为1。在本发明实施例中,差异位图可以保存在第一存储设备的缓存中,也可以保存在第一存储设备的存储器中。可以理解的是,本发明实施例还可以采用其他标志位表示是否有数据写入,在此不做限定。
可选的,差异数据信息除了可以是差异位图之外,也可以是差异二叉树、差异B+树以及其他树,用以记录所述当前复制任务触发之前、最近一次已完成的复制任务触发之后写入所述第一存储设备的数据。其中,每个叶子节点对应一段地址,并且,每个叶子节点中保存一个标志位,可以是1,也可以是0。“1”代表这段时间内在该段地址中有数据写入;“0”代表这段时间内在该段地址中没有数据写入。因此,当接收到的写数据请求携带的地址属于某个叶子节点的地址范围时,将该叶子节点的标志位置为1。此外,一种可选的实施方式是,树的每个叶子节点对应一个地址,当接收到写数据请求携带的地址与某个叶子节点的地址相同时,将该叶子节点的标志位置为1。在本发明实施例中,树可以保存在第一存储设备的缓存中,也可以保存在第一存储设备的存储器中。可以理解的是,本发明实施例还可以采用其他标志位表示是否有数据写入,在此不做限定。
可选的,差异数据信息还可以是差异链表或者其他表,用以记录所述当前复制任务触发之前、最近一次已完成的复制任务触发之后写入所述第一存储设备的数据。其中,每个表项对应一段地址,并且,每个表项中保存一个标志位,可以是1,也可以是0。“1”代表这段时间内在该段地址中有数据写入;“0”代表这段时间内在该段地址中没有数据写入。因此,当接收到的写数据请求携带的地址属于某个表项的地址范围时,将该叶子节点的标志位置为1。此外,一种可选的实施方式是,表的每个表项对应一个地址,当接收到写数据请求携带的地址与某个表项的地址相同时,将该表项的标志位置为1。在本发明实施例中,表可以保存在第一存储设备的缓存中,也可以保存在第一存储设备的存储器中。可以理解的是,本发明实施例还可以采用其他标志位表示是否有数据写入,在此不做限定。
可选的,差异数据信息还可以是日志等形式,用以记录所述当前复制任务触发之前、最近一次已完成的复制任务触发之后写入所述第一存储设备的数据,在此不再赘述。
为了描述方便,下面的步骤以差异位图为例来进行说明。
当复制任务触发时,第一存储设备可以根据差异位图生成复制数据信息(下面步骤以复制位图为例),所述复制数据信息用于指示待复制到第三存储设备的数据的地址信息,因此可以利用复制数据信息可以获得当前复制任务对应的待复制到第三存储设备的数据。
一种生成复制位图的实施方式是,将复制任务触发时刻的差异位图复制一份作为复制位图,然后将差异位图清零继续记录之后接收的写数据请求携带的数据,或者将差异位图删除,并生成一份新的差异位图用以继续记录之后接收的写数据请求携带的数据;另一种生成复制位图的实施方式是,直接将复制任务触发时的差异位图作为复制位图,再将上一次复制任务对应的复制位图清零后作为差异位图,继续记录之后接收的写数据请求携带的数据,由此可见,对于这种实施方式而言,第一存储设备中可以至少包含一张差异位图和一张复制位图,随着每次复制任务的触发,差异位图和复制位图的角色可以进行互换。此外,本发明实施例也不限定其他一些根据差异位图生成复制位图的实施方式。
对于第二存储设备而言,由于它与第一存储设备之间是采用同步远程复制的方式进行数据容灾,所以其存储的数据与第一存储设备是一致的。当第一存储设备触发与第三存储设备之间的异步远程复制任务时,可以由第一存储设备发送给第二存储设备一个复制启动消息,所述复制启动消息中包含复制启动信息,用以通知第二存储设备当前复制任务触发。当第二存储设备接收所述复制启动信息时,可以根据本端的差异数据信息(例如,差异位图)生成复制数据信息(例如,复制位图)。其中,第二存储设备的差异位图的内容、用途以及生成方式均与第一存储设备的差异位图相同,并且,第二存储设备的复制位图的内容和用途均与第一存储设备的复制位图相同。然而,就第二存储设备的复制位图的生成方式而言,可以与第一存储设备的复制位图的生成方式相同,也可以由第一存储设备将第一存储设备的复制位图携带在所述复制启动消息中发送给第二存储设备。
根据上面的描述可知,第二存储设备也可以采用树、链表以及日志等形式记录差异数据信息,在此不做限定。
当第一存储设备开始复制时,举例来说,第一存储设备可以根据复制位图获得本次复制任务对应的待复制数据。具体而言,第一存储设备可以根据复制位图确定待复制数据所在的地址,再根据这些地址从存储器,或者直接从缓存中获取待复制数据,按照地址顺序,生成若干个写数据命令发送给第三存储设备。
可以理解的是,第一存储设备在将本次复制任务对应的待复制数据复制给第三存储设备时,可能并不是通过一个写数据命令就可以将所有的待复制数据都发送给第三存储设备,要完成一次复制任务往往向第三存储设备发送多个写数据命令。
在本发明实施例中,第一存储设备每次向第三存储设备发送一个写数据命令,都可以向第二存储设备发送一个复制进度信息,用于指示所述第一存储设备已复制到第三存储设备的数据。
然而,当第一存储设备尚未将本次复制任务对应的所有待复制数据全部发送给第三存储设备时,发生故障,就需要第二存储设备接替第一存储设备继续将尚未复制的数据复制到第三存储设备。
步骤22:当第一存储设备发生故障时,根据所述复制进度信息和所述第二存储设备保存的待复制数据确定所述待复制数据中尚未复制的数据,所述待复制数据是所述第一存储设备待复制到第三存储设备的数据。
第二存储设备和第一存储设备之间可以通过心跳进行通信,当第二存储设备检测不到第一存储设备的心跳信号时,可以获知第一存储设备发生故障;另一种可选的实施方式是,当第三存储设备发现与第一存储设备之间的复制中断时,可以向第二存储设备发送一个检测信息,用于指示第一存储设备发生故障。
复制进度信息可以是一个地址或者一段地址,用于表示第一存储设备已经复制完成的数据的地址。
可选的,复制进度信息也可以是一个复制位图。当第一存储设备每次向第三存储设备发送完成一部分数据时,可以根据这部分数据的地址修改复制位图。例如,删除复制位图中已复制的数据的地址所在的格子,或者将复制位图中已复制的数据的地址所在的格子的标志位置为0。然后,将修改后的复制位图发送给第二存储设备。
由于第二存储设备事先保存有所述待复制到第三存储设备的数据,所述待复制到第三存储设备的数据除去已复制的数据就是所述待复制数据中尚未复制的数据。需要说明的是,所述待复制数据是指本次复制任务需要复制到第三存储设备的所有数据,是第一存储设备已复制到第三存储存储的数据与所述尚未复制的数据的总和。
可选的,其确定方式可以是:第二存储设备根据所述复制进度信息,以及复制位图确定所述待复制数据中尚未复制的数据的地址。这里的复制位图是指第二存储设备中事先保存的复制位图,可以是第二存储设备在本次复制任务触发时根据差异位图生成的复制位图,也可以是第一存储设备发送给第二存储设备的复制位图,在此不做限定。
步骤23:将所述尚未复制的数据发送给所述第三存储设备。
在步骤22获得尚未复制的数据的地址之后,可以根据该地址从第二存储设备的存储器或者缓存中获得所述尚未复制的数据。
可选的,当第二存储设备采用快照技术获得所述数据卷的副本时,可以根据所述尚未复制的数据的地址从存储器的快照卷中获得所述尚未复制的数据。
可选的,当第二存储设备采用给每个写数据请求增加时间片编号的方式获得所述数据卷的副本时,可以根据所述尚未复制的数据的地址从缓存中获得所述尚未复制的数据。
在第二存储设备获得所述尚未复制的数据之后,可以按照地址顺序生成一个或多个写数据命令,发送给第三存储设备。需要说明的是,在本发明实施例中,所述已复制的数据和所述尚未复制的数据在发送给第三存储设备之后,是存储在第三存储设备的同一个数据卷中的。
在本发明实施例中,第二存储设备接收第一存储设备发送的复制进度信息,所述复制进度信息用于指示所述第一存储设备已复制到第三存储设备的数据;当第一存储设备发生故障时,第二存储设备可以根据所述复制进度信息和所述第二存储设备保存的待复制数据确定所述待复制数据中尚未复制的数据,并将所述尚未复制的数据发送给所述第三存储设备。由于第二存储设备可以确定出尚未复制的数据,避免了重新发送所有的待复制数据,提高了复制效率。
在上述实施例的步骤21中,所述第二存储设备接收第一存储设备发送的复制进度信息具体可以是:
第一存储设备向第二存储设备发送复制进度消息,所述复制进度消息携带进度地址字段,所述进度地址字段用于表示所述复制进度信息。举例来说,所述进度地址字段可以包含一个地址或者一段地址。当所述进度地址字段包含一个地址时,所述一个地址用于表示第一存储设备当前已复制完成的最后一个数据的地址;当所述进度地址字段包含一段地址时,所述一段地址用于表示第一存储设备当前已复制完成的所有数据的地址。需要说明的是,只要携带进度地址字段的消息都可以视作本发明实施例中的复制进度消息,本发明实施例并没有对该消息的名称做任何限定。
可选的,所述复制进度消息中还可以携带复制任务的标识字段,所述复制任务的标识字段包含复制任务的标识。根据前面的描述可知,复制任务是指第一存储设备将一段时间内一个数据卷接收到的写数据请求携带的数据发送给第三存储设备。当第一存储设备中包含多个数据卷时,就会产生多个复制任务,每个数据卷对应一个复制任务,并且每个复制任务都有一个唯一的标识(例如ID)。第二存储设备可以根据所述复制任务的标识确定本次复制任务,并获得本次复制任务对应的复制位图。具体的,在本发明实施例中,可以预先配置第一存储设备、第二存储设备以及第三存储设备中各个LUN之间的复制关系,一个复制关系可以包含多个复制任务,上面描述的当前复制任务(又称本次复制任务)是指所述复制关系中的其中一个复制任务。在设置的复制关系中,可以包括复制关系的标识,也可以包括第一存储设备、第二存储设备以及第三存储设备的LUN的标识。当然,复制关系的标识也可以用其他的标识来表示,在此不做限定,只要能让各存储设备识别出当前复制任务所属的复制关系即可。在实际应用中,可以在第一存储设备、第二存储设备以及第三存储设备均保存有这个复制关系。可以理解的是,复制任务是根据该复制关系启动的两个不同存储设备中的LUN之间的复制任务,并且在某一时刻,具有复制关系的两个数据卷之间只可能存在一个复制任务,本发明实施例主要涉及一个复制任务中各个设备之间的交互过程,因此在本发明实施例中,可以用复制关系的标识来表示一个复制任务。换一种表达方式,在本发明实施例中,复制任务的标识可以与复制关系的标识相同。当然,实际应用中,若为了区分具有复制关系的两个数据卷之间在不同时间段存在的多个复制任务,复制任务的标识也可以与复制关系的标识不同,例如,复制任务的标识可以在复制关系的标识的基础上再增加时间标识,用于表示该复制任务是在具有同一个复制关系的两个数据卷之间不同时刻启动的复制任务。
可选的,当第一存储设备、第二存储设备、第三存储设备各自包含多个数据卷时,所述复制进度消息中还可以携带在当前复制过程中第一存储设备的数据卷的标识、第二存储设备的数据卷的标识以及第三存储设备的数据卷的标识来确定。例如,A LUN001B LUN002CLUN003,用于表示该复制任务是将数据从存储设备A中标识为001的LUN,和/或存储设备B中标识为002的LUN复制到存储设备C中标识为003的LUN中。
可选的,所述复制进度消息中还可以携带操作码字段,所述操作码字段包含所述复制进度消息的操作码,用于指示所述消息是用于向第二存储设备发送复制进度信息的消息。
举例来说,实际应用中,在复制进度消息的头部可以包含操作码(例如opCode)字段、源设备ID(例如,srcAppId)字段以及目标设备ID(例如,dstAppId)字段。其中,操作码字段用于表示该消息的类型为复制进度消息。源设备ID字段用于标识该复制进度消息的发起者(在实施例中是指第一存储设备),目标设备ID字段用于标识该复制进度消息的接收者(在实施例中是指第二存储设备)。源设备ID以及目标设备ID字段均可以用IP地址来标识。复制进度消息的内容部分(例如,复制进度消息中的data字段)的格式可以如下所示:
其中:LUN ID:可以位于第0-4个字节,用于表示当前复制任务中发送数据的源设备的LUN标识,该LUN标识为唯一标识。
ReplicationObject LUN ID:可以位于第4-8个字节,用于表示当前复制任务中接收数据的第三存储设备的目标LUN的标识,例如可以是第三存储设备的LUN ID。换一种表达方式,该字段用于表示当前复制任务指向的目标存储设备中的目标LUN。
Address:也就是上面描述的进度地址字段,该字段可以位于第8个字节之后,用于携带当前的复制进度信息。其中,复制进度信息可以是一个或一段逻辑单元地址(Logical Block Address,LBA)地址,也可以是更新后的复制位图。例如可以是更新后的第一复制子位图。当复制进度信息为一个LBA时,可以用于表示已经复制的最后一个数据的LBA。当复制进度信息为一段LBA时,可以用于表示当前已复制完成的所有数据的地址。在此不对复制进度信息的具体形式进行限定,只要能够表示复制进度即可。
例如,在第一存储设备发送给第二存储设备的复制进度消息中,在复制进度消息的头部,“源设备ID”字段可以为第一存储设备的IP地址,“目标设备ID”字段可以为第二存储设备的IP地址。在复制进度消息的内容部分,“LUN ID”字段可以为待复制的数据在第一存储设备中所属的LUN的ID;“ReplicationObject LUN ID”字段可以为第三存储设备中的目标LUN的ID;“Address”字段可以为已经复制的最后一个数据的LBA。需要说明的是,在本发明实施例中,由于预先配置有第一存储设备、第二存储设备以及第三存储设备中各个LUN之间的复制关系。从而,第二存储设备也可以根据复制进度消息中的LUN ID字段确定当前复制任务对应的第二存储设备中的LUN。可以理解的是,第一存储设备和第二存储设备中均会存储有所述LUN对应关系。并且第一存储设备和第二存储设备对应的LUN的ID可以相同也可以不同,只要能够根据所述LUN对应关系确定存储有相同的数据的对应的LUN即可。
并且,在上述实施例中,所述复制启动消息可以携带复制启动信息字段,所述复制启动信息字段包含复制启动信息,用于通知第二存储设备当前复制任务触发。需要说明的是,只要携带复制启动信息字段的消息都可以视作本发明实施例中的复制启动消息,本发明实施例并没有对该消息的名称做任何限定。
可选的,所述复制启动消息还可以包含复制任务的标识字段,所述复制任务的标识字段包含复制任务的标识。第二存储设备可以根据所述复制任务的标识确定本次复制任务。
可选的,所述复制启动消息中还可以包含操作码字段,所述操作码字段包含所述复制启动消息的操作码,用于指示所述消息是用于通知第二存储设备本次复制任务触发的消息。
此外,所述复制启动消息中还可以包含其他字段,在此不做限定。
请参见图4,图4为本发明一种数据复制方法的另一个实施例的方法流程图,如图4所示,所述方法应用于存储系统中,所述存储系统包括至少三个存储设备,其中第一存储设备和第二存储设备中保存相同的数据,所述方法包括:
步骤31:第二存储设备接收第一存储设备发送的复制进度信息,所述复制进度信息用于指示所述第一存储设备已复制到第三存储设备的数据。
该步骤的具体实施方式可参考上述实施例中步骤21的描述,在此不再赘述。
步骤32:根据所述复制进度信息将第一复制数据信息修改为第二复制数据信息。
当本次复制任务触发时,第一存储设备可以向第二存储设备发送复制启动消息,所述复制启动消息中包含复制启动信息,用于通知第二存储设备复制任务触发,所述复制启动消息的定义以及包含的各个字段的描述请参考上述实施例的相关部分,这里不再赘述。需要说明的是,所述第一复制数据信息可以携带在所述复制启动消息中发送给所述第二存储设备。可选的,第二存储设备也可以在接收所述复制启动信息之后生成所述第一复制数据信息,由于所述复制启动消息还携带有复制任务的标识,因此第二存储设备可以根据所述复制任务的标识确定当前复制任务,并生成当前复制任务对应的第一复制数据信息。此时的第一复制数据信息用于指示所述待复制到第三存储设备的所有数据的地址信息。
在实际应用中,由于第一存储设备每次向第三存储设备复制完成一部分数据都会向第二存储设备发送复制进度信息,而第二存储设备在接收到复制进度信息之后需要根据所述复制进度信息修改复制数据信息,因此,所述第一复制数据信息也可以是指经过修改后的复制数据信息。具体而言,可以是第二存储设备接收上一次复制进度信息时,根据上一次复制进度信息修改后的复制数据信息,或者,所述第一复制数据信息用于接收本次复制进度信息之前,最近一次尚未复制到所述第三存储设备的数据。例如,假设第一存储设备向第二存储设备发送所述复制进度信息之前,还发送过两次复制进度信息,那么当前的复制进度信息是指第三次发送的复制进度信息,这里的第一复制数据信息是指第二存储设备根据第二复制进度信息修改后的复制位图,用于获得接收第三次复制进度信息之前,根据第二次复制进度信息修改后的复制位图对应的尚未复制的数据。
具体的,将第一复制数据信息修改为第二复制数据信息的方式可以参考上述实施例步骤22相关部分的描述,这里不再赘述。
步骤33:当第一存储设备发生故障时,根据所述第二复制数据信息和所述第二存储设备保存的待复制数据确定所述待复制数据中尚未复制的数据,所述待复制数据是所述第一存储设备待复制到第三存储设备的数据。
需要说明的是,所述待复制数据是指本次复制任务需要复制到第三存储设备的所有数据,是第一存储设备已复制到第三存储设备的数据与所述尚未复制的数据的总和。
所述第二复制数据信息用于指示所述尚未复制的数据的地址信息,因此可以根据所述第二复制数据信息以及所述第二存储设备保存的待复制数据获得所述尚未复制的数据。举例来说,可以根据第二复制数据信息确定所述尚未复制的数据的地址,根据所述地址从第二存储设备的缓存或者存储器中获取所述尚未复制的数据。
此外,该步骤的具体实施方式可参考上述实施例步骤22相关部分的描述,这里不再赘述。
步骤34:将所述待复制到第三存储设备的数据中尚未复制的数据发送给所述第三存储设备。
该步骤的具体实施方式可参考上述实施例步骤23的描述,这里不再赘述。需要说明的是,在本发明实施例中,所述已复制的数据和所述尚未复制的数据在发送给第三存储设备之后,是存储在第三存储设备的同一个数据卷中的。
在本发明实施例中,第二存储设备接收第一存储设备发送的复制进度信息,所述复制进度信息用于指示所述第一存储设备已复制的数据,根据复制进度信息修改复制数据信息;由于第二存储设备事先保存有第一存储设备待复制到第三存储设备的数据,因此当第一存储设备发生故障时,第二存储设备可以根据修改后的复制数据信息以及所述第一存储设备待复制到第三存储设备的数据确定尚未复制的数据,并将所述尚未复制的数据发送给所述第三存储设备。避免了第一存储设备发送故障后重新发送所有的待复制数据,提高了复制效率。
下面以图5所示的信令交互图为例,说明第一存储设备、第二存储设备和第三存储设备三者完成一次异步远程复制任务的详细过程。其中,第一存储设备是指图1中的生产阵列22,第二存储设备是指图1中灾备阵列33,第三存储设备是指图1中的灾备阵列44。请参考图5,所述方法包括:
步骤401:定时器触发异步远程复制任务。
可选的,异步远程复制任务(简称:复制任务)可以由人为触发,在此不做限定。
步骤402:第一存储设备阻止接收主机发送的写数据请求。
步骤403:第一存储设备处理阻止之前接收的写数据请求。
可选的,写数据请求可以是一个,也可以是多个。处理写数据请求是指,根据所述写数据请求携带的数据和所述数据的地址,将所述数据和所述数据的地址写入缓存,并在差异位图中记录所述数据;具体的实施方式可参考图3以及步骤21的描述。
步骤404:第一存储设备向第二存储设备发送复制启动消息,所述复制启动消息包含复制启动信息,用于通知第二存储设备本次复制任务触发。
需要说明的是步骤404和步骤403之间没有先后顺序之分。
步骤405:第二存储设备阻止接收写数据请求。
步骤406:第二存储设备处理阻止之前接收的写数据请求。
可选的,写数据请求可以是一个,也可以是多个。处理写数据请求是指,根据所述写数据请求携带的数据和所述数据的地址,将所述数据和所述数据的地址写入缓存,并在差异位图中记录所述数据;具体的实施方式可参考图3以及步骤21的描述。
步骤407:第二存储设备创建数据卷的副本。
复制任务是指将一段时间内一个数据卷接收到的数据发送给第三存储设备。因此,在复制任务触发时需创建所述数据卷的副本。所述数据卷的副本也是指本次复制任务中,待复制到第三存储设备的数据。创建所述数据卷的副本的方式可以是通过快照方式创建,也可以是在接收的写数据请求中增加时间片编号的方式创建。具体的实施方式可参考本发明实施例的系统架构部分的描述,在此不再赘述。
步骤408:第二存储设备根据差异位图生成复制位图。
具体的实施方式可参考步骤21相关部分的描述。
步骤409:第二存储设备向第一存储设备发送所述复制启动消息的响应消息。
步骤410:第一存储设备创建当前的数据卷的副本。
所述数据卷的副本也是指本次复制任务中,待复制到第三存储设备的数据。创建所述数据卷的副本的方式可以是通过快照方式创建,也可以是在接收的写数据请求中增加时间片编号的方式创建。具体的实施方式可参考本发明实施例的系统架构部分的描述,在此不再赘述。
步骤411:第一存储设备根据差异位图生成复制位图。
具体的实施方式可参考步骤21相关部分的描述。
需要说明的是,步骤410和步骤411可以在步骤407和步骤408之后执行,也可以在步骤407和步骤408之前执行。
步骤412:第一存储设备向第二存储设备发送解除阻止消息。
在第一存储设备创建完成数据卷的副本,并生成复制位图之后,可以向第二存储设备发送解除阻止消息。
步骤413:第一存储设备解除阻止接收主机发送的写数据请求。
第一存储设备解除阻止之后,可以继续接收并处理主机或第二存储设备发送的写数据请求,并修改差异位图。
步骤414a:第二存储设备解除阻止接收写数据请求。
第二存储设备解除阻止之后,可以继续接收并处理主机或第一存储设备发送的写数据请求,并修改差异位图。
步骤414b:第一存储设备根据复制位图获得待复制到第三存储设备的数据。
可选的,第一存储设备可以根据复制位图中的标志位获得待复制到第三存储设备的数据的地址,根据所述待复制到第三存储设备的数据的地址获得所述待复制到第三存储设备的数据。
步骤415:第一存储设备向第三存储设备发送写数据命令,其中所述写数据命令包含本次复制任务对应的待写入第三存储设备的数据的一部分。
步骤416:第三存储设备向第一存储设备发送写数据命令的响应消息。
步骤417:第一存储设备向第二存储设备发送复制进度消息,所述复制进度消息中包含复制进度信息,所述复制进度信息可以是一个地址或者一段地址,用于表示第一存储设备已经复制完成的数据的地址。
步骤418:第一存储设备修改其保存的复制位图。例如,删除复制位图中已复制的数据的地址所在的格子,或者将复制位图中已复制的数据的地址所在的格子的标志位置为0。
需要说明的是,在本发明实施例中,可以先执行步骤418,再执行步骤417,此时步骤417中发送的复制进度信息可以是一个地址或者一段地址,也可以是步骤418中修改后的复制位图。
步骤419:第二存储设备根据所述复制进度信息修改其保存的复制位图。例如,当所述复制进度信息是一个地址或者一段地址时,第二存储设备可以根据该地址,删除复制位图中已复制的数据的地址所在的格子,或者将复制位图中已复制的数据的地址所在的格子的标志位置为0。
步骤420:第三存储设备发现与第一存储设备的复制中断,向第二存储设备发送检测消息,所述检测信息用于指示所述第一存储设备发生故障。
步骤421:第二存储设备根据修改后的复制位图获得尚未复制到第三存储设备的数据。具体的实施方式可参考步骤22相关部分的描述,这里不再赘述。
步骤422:第二存储设备向第三存储设备发送写数据命令,所述写数据命令可以是一个或多个,用于发送所述尚未复制到所述第三存储设备的数据。
步骤423:第三存储设备向第二存储设备发送所述写数据命令的响应消息。
当第三存储设备接收到第二存储设备发送的写数据命令,可以向第二存储设备发送所述写数据命令的响应消息。第二存储设备可以根据所述响应消息确定本次复制任务已完成。
可选的,当第三存储设备接收完毕本次复制任务对应的所有数据时,可以再向第二存储设备发送一个指示消息,用以指示本次复制任务对应的所有数据已复制完成。
步骤424:第一存储设备故障恢复。
第二存储设备可以通过心跳信号,或者由第三存储设备告知等方式确定第一存储设备故障已恢复。
步骤425:第二存储设备发送复制进度信息给第一存储设备,以说明本次复制任务已完成。
所述复制进度信息与步骤417中的复制进度信息类似。当本次复制任务完成时,所述复制进度信息可以用于指示所述本次复制任务已完成。
可选的,在本次复制任务完成之后,第二存储设备也可以向第一存储设备再发送一条指示消息,用于指示所述本次复制任务已完成。
步骤426:第一存储设备删除本次复制任务对应的复制位图。
可选的,本次复制任务完成以后,第一存储设备可以删除本次复制任务对应的复制位图,以节省存储空间。
步骤427:第二存储设备删除本次复制任务对应的复制位图。
可选的,本次复制任务完成以后,第二存储设备可以删除本次复制任务对应的复制位图,以节省存储空间。
本发明实施例在第一存储设备发生故障时,第二存储设备可以接替第一存储设备将本次复制任务对应的尚未复制的数据发送给第三存储设备,避免了重新发送本次复制任务对应的所有数据,提高了复制效率。
本发明实施例的装置
请参考图6,图6是本发明实施例一种数据复制装置60的结构示意图,如图6所示,所述存储设备60包括:接收模块601、确定模块602和发送模块603。
其中,接收模块601,用于接收第一存储设备发送的复制进度信息,所述复制进度信息用于指示所述第一存储设备已复制到第三存储设备的数据;
确定模块602,用于当第一存储设备发生故障时,根据所述复制进度信息和所述第二存储设备保存的待复制数据确定所述待复制数据中尚未复制的数据,所述待复制数据是所述第一存储设备待复制到第三存储设备的数据;
发送模块603,用于将所述尚未复制的数据发送给所述第三存储设备。
可选的,所述接收模块601,具体用于接收所述第一存储设备发送的包含进度地址字段的消息,所述进度地址字段用于表示所述复制进度信息。
可选的,所述第二存储设备中保存有复制数据信息,所述复制数据信息用于获得所述待复制的数据。
可选的,所述数据复制装置60,还可以包括生成模块604,用于当接收到所述第一存储设备发送的复制启动信息时,根据所述复制启动信息生成所述复制数据信息。
可选的,所述接收模块601,还可以用于接收所述第一存储设备发送的所述复制数据信息。
可选的,所述接收模块601,还可以用于接收所述第三存储设备的检测信息,所述检测信息用于指示所述第一存储设备发生故障。
本发明实施例所提供的装置,可以设置于前面实施例所描述的第二存储设备的控制器中,用于执行前面实施例所描述的数据复制方法,各个模块功能的详细描述可参见方法实施例中的描述,在此不再赘述。
在本发明实施例中,第二存储设备接收第一存储设备发送的复制进度信息,所述复制进度信息用于指示所述第一存储设备已复制到第三存储设备的数据;当第一存储设备发生故障时,第二存储设备可以根据所述复制进度信息和所述第二存储设备保存的待复制数据确定所述待复制数据中尚未复制的数据,并将所述尚未复制的数据发送给所述第三存储设备。由于第二存储设备可以确定出尚未复制的数据,避免了重新发送所有的待复制数据,提高了复制效率。
请参考图7,图7是本发明实施例一种数据复制装置70的结构示意图,如图7所示,所述存储设备70包括:接收模块701、修改模块702、确定模块703和发送模块704。
其中,接收模块701,用于接收第一存储设备发送的复制进度信息,所述复制进度信息用于指示所述第一存储设备已复制到第三存储设备的数据;
修改模块702,用于根据所述复制进度信息将第一复制数据信息修改为第二复制数据信息;
确定模块703,用于当第一存储设备发生故障时,根据所述第二复制数据信息和所述第二存储设备保存的待复制数据确定所述待复制数据中尚未复制的数据,所述待复制数据是所述第一存储设备待复制到第三存储设备的数据;
发送模块704,用于将所述尚未复制的数据发送给所述第三存储设备。
可选的,接收模块701,具体用于接收所述第一存储设备发送的包含进度地址字段的消息,所述进度地址字段用于表示所述复制进度信息。
可选的,所述第一复制数据信息用于获得接收所述复制进度信息之前,最近一次尚未复制到所述第三存储设备的数据。
可选的,所述数据复制装置70,还可以包括生成模块705,用于当接收到所述第一存储设备发送的复制启动信息时,根据所述复制启动信息生成第一复制数据信息。
可选的,所述接收模块704,还可以用于接收所述第一存储设备发送的所述第一复制数据信息。
可选的,所述接收模块704,还可以用于接收所述第三存储设备的检测信息,所述检测信息用于指示所述第一存储设备发生故障。
本发明实施例所提供的装置,可以设置于前面实施例所描述的第二存储设备的控制器中,用于执行前面实施例所描述的数据复制方法,各个模块功能的详细描述可参见方法实施例中的描述,在此不再赘述。
在本发明实施例中,第二存储设备接收第一存储设备发送的复制进度信息,所述复制进度信息用于指示所述第一存储设备已复制的数据,根据复制进度信息修改复制数据信息;由于第二存储设备事先保存有第一存储设备待复制到第三存储设备的数据,因此当第一存储设备发生故障时,第二存储设备可以根据修改后的复制数据信息以及所述第一存储设备待复制到第三存储设备的数据确定尚未复制的数据,并将所述尚未复制的数据发送给所述第三存储设备。避免了第一存储设备发送故障后重新发送所有的待复制数据,提高了复制效率。
如图8,为本发明实施例提供的存储设备,包括:
处理器801、存储器802、系统总线(简称总线)805和通信接口803。处理器801、存储器802和通信接口803之间通过系统总线805连接并完成相互间的通信。
处理器801可能为单核或多核中央处理单元,或者为特定集成电路,或者为被配置成实施本发明实施例的一个或多个集成电路。
存储器802可以为高速RAM存储器,也可以为非易失性存储器(non-volatile memory),例如至少一个硬盘存储器。
通信接口803用于与存储设备通信。
存储器802用于存储计算机执行指令8021。具体的,计算机执行指令8021中可以包括程序代码。
当计算机运行时,处理器801运行计算机执行指令8021,可以执行图2所述的方法流程。
如图9,为本发明实施例提供的存储设备,包括:
处理器901、存储器902、系统总线(简称总线)905和通信接口903。处理器901、存储器902和通信接口903之间通过系统总线905连接并完成相互间的通信。
处理器901可能为单核或多核中央处理单元,或者为特定集成电路,或者为被配置成实施本发明实施例的一个或多个集成电路。
存储器902可以为高速RAM存储器,也可以为非易失性存储器(non-volatile memory),例如至少一个硬盘存储器。
通信接口903用于与存储设备通信。
存储器902用于存储计算机执行指令9021。具体的,计算机执行指令9021中可以包括程序代码。
当计算机运行时,处理器901运行计算机执行指令9021,可以执行图4所述的方法流程。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的设备和模块的具体工作过程,可以参考前述方法实施例中的对应过程描述,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的设备和方法,可以通过其它的方式实现。例如,以上所描述的设备实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个模块或组件可以结合或者可以集成到另一个设备中,
或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,设备或模块的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理子模块,即可以位于一个地方,或者也可以分布到多个网络子模块上。可以根据实际的需要选择其中的部分或者全部,模块来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能模块可以集成在一个处理模块中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个模块中。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。

Claims (26)

1.一种数据复制方法,其特征在于,所述方法应用于存储系统中,所述存储系统包括至少三个存储设备,其中第一存储设备和第二存储设备中保存相同的数据,所述方法包括:
所述第二存储设备接收所述第一存储设备发送的复制进度信息,所述复制进度信息用于指示所述第一存储设备已复制到第三存储设备的数据;
当所述第一存储设备发生故障时,根据所述复制进度信息和所述第二存储设备保存的待复制数据确定所述待复制数据中尚未复制的数据,所述待复制数据是所述第一存储设备待复制到所述第三存储设备的数据;
将所述尚未复制的数据发送给所述第三存储设备。
2.根据权利要求1所述的方法,其特征在于,所述第二存储设备接收第一存储设备发送的复制进度信息包括:
所述第二存储设备接收所述第一存储设备发送的包含进度地址字段的消息,所述进度地址字段用于表示所述复制进度信息。
3.根据权利要求1或2所述的方法,其特征在于,所述第二存储设备中保存有复制数据信息,所述复制数据信息用于获得所述待复制数据。
4.根据权利要求3所述的方法,其特征在于,还包括:
当接收到所述第一存储设备发送的复制启动信息时,根据所述复制启动信息生成所述复制数据信息。
5.根据权利要求3所述的方法,其特征在于,还包括:
接收所述第一存储设备发送的所述复制数据信息。
6.根据权利要求1-5任一权利要求所述的方法,其特征在于,当所述第一存储设备发生故障时,还包括:
接收所述第三存储设备发送的检测信息,所述检测信息用于指示所述第一存储设备发生故障。
7.一种数据复制方法,其特征在于,所述方法应用于存储系统中,所述存储系统包括至少三个存储设备,其中第一存储设备和第二存储设备中保存相同的数据,所述方法包括:
所述第二存储设备接收所述第一存储设备发送的复制进度信息,所述复制进度信息用于指示所述第一存储设备已复制到第三存储设备的数据;
根据所述复制进度信息将第一复制数据信息修改为第二复制数据信息;
当所述第一存储设备发生故障时,根据所述第二复制数据信息和所述第二存储设备保存的待复制数据确定所述待复制数据中尚未复制的数据,所述待复制数据是所述第一存储设备待复制到所述第三存储设备的数据;
将所述尚未复制的数据发送给所述第三存储设备。
8.根据权利要求7所述的方法,其特征在于,所述第二存储设备接收第一存储设备发送的复制进度信息包括:
所述第二存储设备接收所述第一存储设备发送的包含进度地址字段的消息,所述进度地址字段用于表示所述复制进度信息。
9.根据权利要求7所述的方法,其特征在于,所述第一复制数据信息用于获得接收所述复制进度信息之前,最近一次尚未复制到所述第三存储设备的数据。
10.根据权利要求9所述的方法,其特征在于,还包括:
当接收到所述第一存储设备发送的复制启动信息时,根据所述复制启动信息生成第一复制数据信息。
11.根据权利要求7所述的方法,其特征在于,还包括:
接收所述第一存储设备发送的所述第一复制数据信息。
12.根据权利要求7-11任一权利要求所述的方法,其特征在于,当所述第一存储设备发生故障时,还包括:
接收所述第三存储设备发送的检测信息,所述检测信息用于指示所述第一存储设备发生故障。
13.一种数据复制装置,其特征在于,所述数据复制装置位于第二存储设备中,包括:
接收模块,用于接收第一存储设备发送的复制进度信息,所述复制进度信息用于指示所述第一存储设备已复制到第三存储设备的数据;
确定模块,用于当所述第一存储设备发生故障时,根据所述复制进度信息和所述第二存储设备保存的待复制数据确定所述待复制数据中尚未复制的数据,所述待复制数据是所述第一存储设备待复制到所述第三存储设备的数据;
发送模块,用于将所述尚未复制的数据发送给所述第三存储设备。
14.根据权利要求13所述的装置,其特征在于,
所述接收模块,用于接收所述第一存储设备发送的包含进度地址字段的消息,所述进度地址字段用于表示所述复制进度信息。
15.根据权利要求13或14所述的装置,其特征在于,所述第二存储设备中保存有复制数据信息,所述复制数据信息用于获得所述待复制数据。
16.根据权利要求15所述的装置,其特征在于,还包括:
生成模块,用于当接收到所述第一存储设备发送的复制启动信息时,根据所述复制启动信息生成所述复制数据信息。
17.根据权利要求15所述的装置,其特征在于,
所述接收模块,还用于接收所述第一存储设备发送的所述复制数据信息。
18.根据权利要求13-17任一权利要求所述的装置,其特征在于,
所述接收模块,还用于当所述第一存储设备发生故障时,接收所述第三存储设备发送的检测信息,所述检测信息用于指示所述第一存储设备发生故障。
19.一种数据复制装置,其特征在于,所述数据复制装置位于第二存储设备中,包括:
接收模块,用于接收第一存储设备发送的复制进度信息,所述复制进度信息用于指示所述第一存储设备已复制到第三存储设备的数据;
修改模块,用于根据所述复制进度信息将所述第一复制数据信息修改为第二复制数据信息;
确定模块,用于当第一存储设备发生故障时,根据所述第二复制数据信息和所述第二存储设备保存的待复制数据确定所述待复制数据中尚未复制的数据,所述待复制数据是所述第一存储设备待复制到所述第三存储设备的数据;
发送模块,用于将所述尚未复制的数据发送给所述第三存储设备。
20.根据权利要求19所述的装置,其特征在于,
所述接收模块,用于接收所述第一存储设备发送的包含进度地址字段的消息,所述进度地址字段用于表示所述复制进度信息。
21.根据权利要求19所述的装置,其特征在于,所述第一复制数据信息用于获得接收所述复制进度信息之前,最近一次尚未复制到所述第三存储设备的数据。
22.根据权利要求21所述的装置,其特征在于,还包括:
生成模块,用于当接收到所述第一存储设备发送的复制启动信息时,根据所述复制启动信息生成第一复制数据信息。
23.根据权利要求19所述的装置,其特征在于,
所述接收模块,还用于接收所述第一存储设备发送的所述第一复制数据信息。
24.根据权利要求19-24任一权利要求所述的装置,其特征在于,
所述接收模块,还用于当所述第一存储设备发生故障时,接收所述第三存储设备发送的检测信息,所述检测信息用于指示所述第一存储设备发生故障。
25.一种存储设备,其特征在于,包括:处理器、存储器和通信总线;
其中,所述处理器和所述存储器通过所述通信总线进行通信;
所述存储器用于保存程序;
所述处理器用于执行所述程序,以实现:权利要求1-6任一所述的方法。
26.一种存储设备,其特征在于,包括:处理器、存储器和通信总线;
其中,所述处理器和所述存储器通过所述通信总线进行通信;
所述存储器用于保存程序;
所述处理器用于执行所述程序,以实现:权利要求7-12任一所述的方法。
CN201380002386.3A 2013-12-12 2013-12-12 数据复制方法、数据复制装置和存储设备 Pending CN104363977A (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2013/089173 WO2015085529A1 (zh) 2013-12-12 2013-12-12 数据复制方法、数据复制装置和存储设备

Publications (1)

Publication Number Publication Date
CN104363977A true CN104363977A (zh) 2015-02-18

Family

ID=52530953

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201380002386.3A Pending CN104363977A (zh) 2013-12-12 2013-12-12 数据复制方法、数据复制装置和存储设备

Country Status (2)

Country Link
CN (1) CN104363977A (zh)
WO (1) WO2015085529A1 (zh)

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105159794A (zh) * 2015-08-18 2015-12-16 浪潮(北京)电子信息产业有限公司 镜像实现系统和方法
WO2017096977A1 (zh) * 2015-12-08 2017-06-15 华为技术有限公司 一种数据备份方法、装置和系统
CN107196988A (zh) * 2016-03-09 2017-09-22 阿里巴巴集团控股有限公司 一种跨地域数据传输的方法和设备
CN108733513A (zh) * 2018-05-07 2018-11-02 杭州宏杉科技股份有限公司 一种数据更新方法及装置
CN108762984A (zh) * 2018-05-23 2018-11-06 杭州宏杉科技股份有限公司 一种连续性数据备份的方法及装置
CN109062735A (zh) * 2018-08-02 2018-12-21 郑州云海信息技术有限公司 一种存储系统的容灾方法、存储系统和相关装置
CN109725855A (zh) * 2018-12-29 2019-05-07 杭州宏杉科技股份有限公司 一种连跳复制的方法及装置
CN110019097A (zh) * 2017-12-29 2019-07-16 中国移动通信集团四川有限公司 虚拟逻辑副本管理方法、装置、设备及介质
CN111143115A (zh) * 2018-11-05 2020-05-12 中国移动通信集团云南有限公司 基于备份数据的远程容灾方法及装置

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110119329B (zh) * 2019-02-27 2024-02-23 咪咕音乐有限公司 数据复制容灾方法及容灾系统

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2007048319A1 (fr) * 2005-10-26 2007-05-03 Huawei Technologies Co., Ltd. Systeme et procede de recuperation sur sinistre de dispositif de commande de service dans un reseau intelligent
CN101414946A (zh) * 2008-11-21 2009-04-22 上海爱数软件有限公司 一种远程数据备份方法及介质服务器
CN101808137A (zh) * 2010-03-29 2010-08-18 成都市华为赛门铁克科技有限公司 数据传输方法、装置和系统

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1642030A (zh) * 2004-01-05 2005-07-20 华为技术有限公司 一种网管双机容灾备份的实现方法
CN101635638B (zh) * 2008-07-25 2012-10-17 中兴通讯股份有限公司 一种容灾系统及其容灾方法
CN102938778A (zh) * 2012-10-19 2013-02-20 浪潮电子信息产业股份有限公司 一种在云存储中实现多节点容灾的方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2007048319A1 (fr) * 2005-10-26 2007-05-03 Huawei Technologies Co., Ltd. Systeme et procede de recuperation sur sinistre de dispositif de commande de service dans un reseau intelligent
CN101414946A (zh) * 2008-11-21 2009-04-22 上海爱数软件有限公司 一种远程数据备份方法及介质服务器
CN101808137A (zh) * 2010-03-29 2010-08-18 成都市华为赛门铁克科技有限公司 数据传输方法、装置和系统

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105159794A (zh) * 2015-08-18 2015-12-16 浪潮(北京)电子信息产业有限公司 镜像实现系统和方法
WO2017096977A1 (zh) * 2015-12-08 2017-06-15 华为技术有限公司 一种数据备份方法、装置和系统
CN107196988A (zh) * 2016-03-09 2017-09-22 阿里巴巴集团控股有限公司 一种跨地域数据传输的方法和设备
CN107196988B (zh) * 2016-03-09 2020-10-27 阿里巴巴集团控股有限公司 一种跨地域数据传输的方法和设备
EP3427157B1 (en) * 2016-03-09 2023-10-11 Alibaba Group Holding Limited Cross-regional data transmission
CN110019097A (zh) * 2017-12-29 2019-07-16 中国移动通信集团四川有限公司 虚拟逻辑副本管理方法、装置、设备及介质
CN108733513A (zh) * 2018-05-07 2018-11-02 杭州宏杉科技股份有限公司 一种数据更新方法及装置
CN108762984A (zh) * 2018-05-23 2018-11-06 杭州宏杉科技股份有限公司 一种连续性数据备份的方法及装置
CN109062735A (zh) * 2018-08-02 2018-12-21 郑州云海信息技术有限公司 一种存储系统的容灾方法、存储系统和相关装置
CN109062735B (zh) * 2018-08-02 2022-04-26 郑州云海信息技术有限公司 一种存储系统的容灾方法、存储系统和相关装置
CN111143115A (zh) * 2018-11-05 2020-05-12 中国移动通信集团云南有限公司 基于备份数据的远程容灾方法及装置
CN109725855A (zh) * 2018-12-29 2019-05-07 杭州宏杉科技股份有限公司 一种连跳复制的方法及装置

Also Published As

Publication number Publication date
WO2015085529A1 (zh) 2015-06-18

Similar Documents

Publication Publication Date Title
US11734306B2 (en) Data replication method and storage system
CN104363977A (zh) 数据复制方法、数据复制装置和存储设备
AU2013385792B2 (en) Data sending method, data receiving method, and storage device
US20190163591A1 (en) Remote Data Replication Method and System
CN109313595B (zh) 跨平台复制
US10296428B2 (en) Continuous replication in a distributed computer system environment
CN107133132B (zh) 数据发送方法、数据接收方法和存储设备
US10613771B2 (en) Processing a write of records to maintain atomicity for writing a defined group of records to multiple tracks
CN105159790A (zh) 一种数据抢救方法及文件服务器
US11256716B2 (en) Verifying mirroring of source data units to target data units
US9633066B1 (en) Taking a consistent cut during replication for storage across multiple nodes without blocking input/output
US9519550B1 (en) Persistent client-to-replication system communications
US11481286B2 (en) Storage based file FTP
US10606719B2 (en) Mirroring writes of records to maintain atomicity for writing a defined group of records to multiple tracks

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C02 Deemed withdrawal of patent application after publication (patent law 2001)
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20150218