CN105988901B - 数据复制方法及存储系统 - Google Patents

数据复制方法及存储系统 Download PDF

Info

Publication number
CN105988901B
CN105988901B CN201610234950.XA CN201610234950A CN105988901B CN 105988901 B CN105988901 B CN 105988901B CN 201610234950 A CN201610234950 A CN 201610234950A CN 105988901 B CN105988901 B CN 105988901B
Authority
CN
China
Prior art keywords
storage
data
storage equipment
information
storage system
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
Application number
CN201610234950.XA
Other languages
English (en)
Other versions
CN105988901A (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.)
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
Priority to CN201610234950.XA priority Critical patent/CN105988901B/zh
Priority claimed from CN201380002271.4A external-priority patent/CN103814360B/zh
Publication of CN105988901A publication Critical patent/CN105988901A/zh
Application granted granted Critical
Publication of CN105988901B publication Critical patent/CN105988901B/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
    • G06F11/1451Management of the data involved in backup or backup restore by selection of backup contents
    • 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/2094Redundant storage or storage space
    • 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/2097Error 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 maintaining the standby controller/processing unit updated
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
    • G06F12/0871Allocation or management of cache space
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/065Replication mechanisms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]

Landscapes

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

Abstract

本发明实施例提供了一种数据复制方法及存储系统。该方法应用于至少包括第一存储设备以及第二存储设备的存储系统中。该方法包括:第一存储系统确定复制信息,该复制信息用于指示所述第一存储系统在当前复制任务中需要复制到第二存储系统的数据;第一存储系统根据该复制信息确定第一复制子信息及第二复制子信息;所述第一存储设备根据所述第一复制子信息将需要由第一存储设备复制到第二存储系统的数据复制到第二存储系统;第二存储设备根据第二复制子信息将需要由第二存储设备复制到第二存储系统的数据复制到第二存储系统。该数据复制方法能够提高第一存储系统与第二存储系统之间的复制效率。

Description

数据复制方法及存储系统
技术领域
本发明涉及存储技术领域,尤其涉及一种数据复制方法及存储系统。
背景技术
为了保护数据的安全,出于灾备(Disaster Recovery)的目的,各存储厂商会通过建立异地容灾中心来实现数据的远程备份,以便能够在灾难(例如火灾、地震等)发生之后确保原有的数据不会丢失或者遭到破坏,并保证关键业务在允许的时间范围内恢复运行,尽可能减少灾难带来的损失。
当前主要的容灾系统主要包括:两中心容灾系统和三中心(3Data Center,3DC)容灾系统。两中心容灾系统通过建立两个数据中心来实现容灾,其中,主数据中心用于承担用户的业务,备份数据中心用于备份主数据中心的数据、配置、业务等。当主数据中心发生灾难时,备份数据中心可以接管主数据中心的业务。3DC容灾系统是通过部署在三个数据中心的存储系统来实现容灾。通常,在3DC容灾系统中,三个数据中心可以分别称为生产站点、一级站点和二级站点,。通常,一级站点和二级站点属于灾备站点,生产站点与一级站点可以处于同一个城市的两个不同位置,而二级站点则与生产站点位于不同的城市。现有的3DC容灾系统通常是在三个数据中心之间通过同步远程复制技术以及异步远程复制技术来实现容灾。由于3DC容灾系统的可靠性和可扩展性比较好,因此,3DC容灾系统的适用范围也越来越广。
然而,现有的3DC容灾系统中,当需要将数据复制到二级站点时,通常是由生产站点或一级站点将数据复制到二级站点,数据复制效率不高。
发明内容
本发明实施例中提供的一种数据复制方法以及存储系统,能够提高复制效率。
第一方面,本发明实施例提供一种数据复制方法,该方法至少包括第一存储设备以及第二存储设备的存储系统中,该方法包括:
第一存储系统确定复制信息,所述复制信息用于指示所述第一存储系统在当前复制任务中需要复制到第二存储系统的数据,其中,所述第一存储系统中的第一存储设备与所述第二存储设备存储有相同的数据,所述第一存储系统与所述第二存储系统通过异步复制技术实现数据备份;
所述第一存储系统根据所述复制信息确定第一复制子信息及第二复制子信息,其中,所述第一复制子信息用于指示在所述当前复制任务中需要由所述第一存储设备复制到所述第二存储系统的数据,所述第二复制子信息用于指示在所述当前复制任务中需要由所述第二存储设备复制到所述第二存储系统的数据,且所述第一复制子信息指示的数据与所述第二复制子信息指示的数据不同;
所述第一存储设备根据所述第一复制子信息将所述需要由所述第一存储设备复制到所述第二存储系统的数据复制到所述第二存储系统;
所述第二存储设备根据所述第二复制子信息将所述需要由所述第二存储设备复制到所述第二存储系统的数据复制到所述第二存储系统。
在第一方面的第一种可能的实现方式中,所述第一存储设备根据所述第一复制子信息将所述需要由所述第一存储设备复制到所述第二存储系统的数据复制到所述第二存储系统包括:
所述第一存储设备根据所述第一复制子信息将第一源数据卷中存储的所述需要由所述第一存储设备复制到所述第二存储系统的数据复制到所述第二存储系统的目标数据卷中;
所述第二存储设备根据所述第二复制子信息将第二源数据卷中存储的所述需要由所述第二存储设备复制到所述第二存储系统的数据复制到所述第二存储系统的所述目标数据卷中;
其中,所述第一源数据卷中存储的数据与所述第二源数据卷中存储的数据相同。
结合第一方面的第一种可能的实施方式,在第一方面的第二种可能的实施方式中,所述第一存储系统确定复制信息包括:
所述第一存储设备向所述第二存储设备发送复制任务启动消息,所述复制任务启动消息中携带有所述第一源数据卷的标识和所述目标数据卷的标识;
所述第二存储设备根据所述第一源数据卷的标识、所述目标数据卷的标识以及预设的复制关系确定所述第二存储设备中的所述第二源数据卷,其中,所述复制关系中包含有所述第一源数据卷、所述第二源数据卷与所述目标数据卷的对应关系;
所述第二存储设备根据确定的所述第二源数据卷中存储的数据确定所述复制信息;
所述第一存储设备根据所述第一源数据卷中存储的数据确定所述复制信息。
结合第一方面的第一种可能的实现的方式,在第三种可能实现的方式中,所述第一存储系统确定复制信息包括:
所述第一存储系统中的所述第一存储设备根据所述第一源数据卷中存储的数据确定所述复制信息;
所述第一存储设备向所述第二存储设备发送复制任务启动消息,所述复制任务启动消息中携带有所述第一源数据卷的标识、目标数据卷的标识以及所述复制信息;
所述第二存储设备根据所述第一源数据卷的标识、目标数据卷的标识以及预设的复制关系确定与所述复制信息对应的第二源数据卷,其中,所述复制关系中包含有所述第一源数据卷、所述目标数据卷与所述第二源数据卷的对应关系。
结合第一方面或第一方面的第一种至第三种任意一种可能的实现方式,在第四种可能的实现方式中,系统根据所述复制信息确定第一复制子信息及第二复制子信息包括:所述第一存储设备根据所述复制信息以及预设的复制策略确定所述第一复制子信息;所述第二存储设备根据所述复制信息以及所述复制策略确定所述第二复制子信息。
结合第一方面或第一方面的第一种至第四种任意一种可能的实现方式,在第五种可能的实现方式中,所述第一存储系统根据所述复制信息确定第一复制子信息及第二复制子信息包括:所述第一存第一存储设备接收所述第二存储设备的复制协商请求,所述复制协商请求中至少包含有所述第二存储设备与所述第二存储系统的链路带宽信息;所述第一存储设备根据所述链路带宽信息确定所述第一复制子信息以及所述第二复制子信息;所述第一存储设备向所述第二存储设备发送所述第二复制子信息。
结合第一方面或第一方面的第一种至第五种中任意一种可能的实现方式,在第六种可能的实现方式中,所述复制信息由所述第一复制子信息以及所述第二复制子信息组成,所述方法还包括:在所述当前复制任务的执行过程中,所述第一存储设备根据已复制完成的数据生成第一复制进度信息;所述第一存储设备将所述第一复制进度信息发送给所述第二存储设备;当所述第一存储设备故障时,所述第二存储设备根据所述第一复制进度信息、第二复制子信息以及所述复制信息确定所述第一存储设备尚未复制完成的数据;所述第二存储设备将所述第一存储设备尚未复制完成的数据复制到所述第二存储系统。
第二方面,本发明实施例提供一种数据复制方法,该方法应用于存储系统中,包括:
第二存储系统接收第一存储系统发送的复制信息,所述复制信息用于指示所述第一存储系统在当前复制任务中需要复制到所述第二存储系统的数据,其中,所述第一存储系统中至少包括第一存储设备以及第二存储设备,所述第一存储设备与所述第二存储设备中存储有相同的数据,所述第一存储系统与所述第二存储系统通过异步复制技术实现数据备份;
所述第二存储系统根据所述复制信息向所述第一存储设备发送第一获取请求,所述第一获取请求中包含有所述第二存储系统在所述当前复制任务中需要向所述第一存储设备获取的数据的信息;
所述第二存储系统根据所述复制信息向所述第二存储设备发送第二获取请求,所述第二获取请求中包含有所述第二存储系统在所述当前复制任务中需要向所述第二存储设备获取的数据的信息,其中,所述第一获取请求要获取的数据与所述第二获取请求要获取的数据不同;
所述第二存储系统接收所述第一存储设备根据所述第一获取请求发送的数据;
所述第二存储系统接收所述第二存储设备根据所述第二获取请求发送的数据。
在第二方面的第一种实现方式中,所述第一获取请求中包含的要获取的数据的信息至少包括所述第一存储设备中的第一源数据卷的标识以及所述第一获取请求要获取的数据地址;
所述第二获取请求中包含的要获取的数据的信息至少包括第二存储设备中的第二源数据卷的标识以及所述第二获取请求要获取的数据地址;
其中,所述第一源数据卷与所述第二源数据卷中均存储有所述第一存储系统在当前复制任务中需要复制到所述第二存储系统的数据,且所述第一源数据卷与所述第二源数据卷中存储的数据相同。
结合第二方面的第一种可能的实施方式,在第二方面的第二种可能的实施方式中,所述第二存储系统接收第一存储系统发送的复制信息包括:
所述第二存储系统接收所述第一存储系统发送的复制任务启动消息,所述复制任务启动消息中携带有所述第一源数据卷的标识以及根据所述第一源数据卷存储的数据确定的所述复制信息;
所述方法还包括:所述第二存储系统根据所述第一源数据卷的标识以及预设的复制关系确定所述第二存储设备中的第二源数据卷及所述第二存储系统中的目标数据卷;其中,所述复制关系中包含有所述第一源数据卷、所述第二源数据卷与所述目标数据卷的对应关系,所述目标数据卷用于存储所述第二存储系统在所述当前复制任务中接收的数据。
结合第二方面、第二方面的第一种或第二种可能的实现方式,在第三种可能的实现方式中,所述第二存储系统根据所述复制信息向所述第一存储设备发送第一获取请求包括:
所述第二存储系统根据所述复制信息以及所述第二存储系统与所述第一存储设备之间的链路带宽确定需要向所述第一存储设备获取的数据;
所述第二存储系统根据确定的所述需要向所述第一存储设备获取的数据向所述第一存储设备发送所述第一获取请求;
所述第二存储系统根据所述复制信息向所述第二存储设备发送第二获取请求包括:
所述第二存储系统根据所述复制信息以及所述第二存储系统与所述第二存储设备之间的链路带宽确定需要向所述第二存储设备获取的数据;
所述第二存储系统根据确定的所述需要向所述第二存储设备获取的数据向所述第二存储设备发送所述第二获取请求。
第三方面,本发明实施例提供一种存储系统,该存储系统至少包括第一存储设备以及第二存储设备,所述第一存储设备与所述第二存储设备存储有相同的数据,其中:
所述存储系统,用于确定复制信息,所述复制信息用于指示所述存储系统在当前复制任务中需要复制到其他存储系统的数据,所述存储系统与所述其他存储系统通过异步复制技术实现数据备份;
所述存储系统,还用于根据所述复制信息确定第一复制子信息以及所述第二复制子信息,其中,所述第一复制子信息用于指示在所述当前复制任务中需要由所述第一存储设备复制到所述其他存储系统的数据,所述第二复制子信息用于指示在所述当前复制任务中需要由所述第二存储设备复制到所述其他存储系统的数据,且所述第一复制子信息指示的数据与所述第二复制子信息指示的数据不同;
所述第一存储设备,用于根据所述第一复制子信息将所述需要由所述第一存储设备复制到所述其他存储系统的数据复制到所述其他存储系统;
所述第二存储设备,用于根据所述第二复制子信息将所述需要由所述第二存储设备复制到所述其他存储系统的数据复制到所述其他存储系统。
在第三方面的第一种可能的实现方式中,所述第一存储设备,用于根据所述第一复制子信息将第一源数据卷中存储的所述需要由所述第一存储设备复制到所述其他存储系统的数据复制到所述其他存储系统的目标数据卷中;
所述第一存储设备,用于根据所述第二复制子信息将第二源数据卷中存储的所述需要由所述第二存储设备复制到所述其他存储系统的数据复制到所述其他存储系统的所述目标数据卷中;
其中,所述第一源数据卷中存储的数据与所述第二源数据卷中存储的数据相同。
结合第三方面的第一种可能的实现方式,在第三方面的第二种可能的实现方式中,所述第一存储设备,还用于向所述第二存储设备发送复制任务启动消息,所述复制任务启动消息中携带有所述第一源数据卷的标识和所述目标数据卷的标识;
所述第二存储设备,还用于根据所述第一源数据卷的标识、所述目标数据卷的标识以及预设的复制关系确定所述第二存储设备中的所述第二源数据卷,并根据确定的所述第二源数据卷中存储的数据确定所述复制信息,其中,所述复制关系中包含有所述第一源数据卷、所述目标数据卷与所述第二源数据卷的对应关系;
所述第一存储设备,还用于根据所述第一源数据卷中存储的数据确定所述复制信息。
结合第三方面的第一种可能的实现方式,在第三方面的第三种可能的实现方式中,所述第一存储设备,还用于根据所述第一源数据卷中存储的数据确定所述复制信息,并向所述第二存储设备发送复制任务启动消息,所述复制任务启动消息中携带有所述第一源数据卷的标识、目标数据卷的标识以及所述复制信息;
所述第二存储设备,还用于据所述第一源数据卷的标识、目标数据卷的标识以及预设的复制关系确定与所述复制信息对应的第二源数据卷,其中,所述复制关系中包含有所述第一源数据卷、所述目标数据卷与所述第二源数据卷的对应关系。
结合第三方面、第三方面的第一种至第三种中任意一种可能的实现方式,在第三方面的第四种可能的实现方式中,所述第一存储设备还用于根据复制信息以及预设的复制策略确定所述第一复制子信息;所述第二存储设备还用于根据所述复制信息以及所述复制策略确定所述第二复制子信息。
结合第三方面、第三方面的第一种至第三种中任意一种可能的实现方式,在第三方面的第五种可能的实现方式中,所述第一存储设备,还用于接收所述第二存储设备的复制协商请求,所述复制协商请求中至少包含有所述第二存储设备与所述其他存储系统的链路带宽信息,根据所述链路带宽信息确定所述第一复制子信息以及所述第二复制子信息,并向所述第二存储设备发送所述第二复制子信息。
结合第三方面、第三方面的第一种至第五种中任意一种可能的实现方式,在第三方面的第六种可能的实现方式中,所述复制信息由所述第一复制子信息以及所述第二复制子信息组成,所述第一存储设备,还用于在所述当前复制任务的执行过程中,根据已复制完成的数据生成第一复制进度信息,并将所述第一复制进度信息发送给所述第二存储设备;
所述第二存储设备,还用于当所述第一存储设备故障时,根据所述第一复制进度信息、第二复制子信息以及所述复制信息确定所述第一存储设备尚未复制完成的数据,并将所述第一存储设备尚未复制完成的数据复制到所述其他存储系统。
第四方面,本发明实施例提供一种存储系统,包括:
接收模块,用于接收其他存储系统发送的复制信息,所述复制信息用于指示所述其他存储系统在当前复制任务中需要复制到所述存储系统的数据,其中,所述其他存储系统中至少包括所述第一存储设备以及第二存储设备,所述第一存储设备与所述第二存储设备中存储有相同的数据,所述存储系统与所述其他存储系统通过异步复制技术实现数据备份;
发送模块,用于根据所述复制信息向所述第一存储设备发送第一获取请求,所述第一获取请求中包含有所述存储系统在所述当前复制任务中需要向所述第一存储设备获取的数据的信息;
所述发送模块,还用于根据所述复制信息向所述第二存储设备发送第二获取请求,所述第二获取请求中包含有所述存储系统在所述当前复制任务中需要向所述第二存储设备获取的数据的信息,其中,所述第一获取请求要获取的数据与所述第二获取请求要获取的数据不同;
所述接收模块,还用于接收所述第一存储设备根据所述第一获取请求发送的数据,以及接收所述第二存储设备根据所述第二获取请求发送的数据。
在第四方面的第一种可能的实现方式中,所述第一获取请求中包含的要获取的数据的信息至少包括所述第一存储设备中的第一源数据卷的标识以及所述第一获取请求要获取的数据地址;
所述第二获取请求中包含的要获取的数据的信息至少包括第二存储设备中的第二源数据卷的标识以及所述第二获取请求要获取的数据地址;
其中,所述第一源数据卷与所述第二源数据卷中均存储有所述其他存储系统在当前复制任务中需要复制到所述存储系统的数据,且所述第一源数据卷与所述第二源数据卷中存储的数据相同。
结合第四方面的第一种可能的实现方式,在第四方面的第二种可能的实现方式中,所述接收模块,还用于接收所述其他存储系统发送的复制任务启动消息,所述复制任务启动消息中携带有所述第一源数据卷的标识以及根据所述第一源数据卷存储的数据确定的所述复制信息;
所述存储系统还包括:消息处理模块,用于根据所述第一源数据卷的标识以及预设的复制关系确定所述第二存储设备中的第二源数据卷及所述第二存储系统中的目标数据卷;
其中,所述复制关系中包含有所述第一源数据卷、所述第二源数据卷与所述目标数据卷的对应关系,所述目标数据卷用于存储所述存储系统在所述当前复制任务中接收的数据。
结合第四方面或第四方面的第一种至第二种中任意一种可能的实现方式,在第四方面的第三种可能的实现方式中,该存储系统还包括:
确定模块,用于根据所述复制信息以及所述存储系统与所述第一存储设备之间的链路带宽确定需要向所述第一存储设备获取的数据,并根据所述复制信息以及所述存储系统与所述第二存储设备之间的链路带宽确定需要向所述第二存储设备获取的数据;
所述发送模块,具体用于根据所述确定模块确定的所述需要向所述第一存储设备获取的数据向所述第一存储设备发送所述第一获取请求,并且根据所述确定模块确定的所述需要向所述第二存储设备获取的数据向所述第二存储设备发送所述第二获取请求。
第五方面,本发明实施例提供了又一种存储系统,包括控制器和存储器,其中,所述存储器用于存储其他存储系统发送的数据;所述控制器包括:
通信接口,用于与所述其他存储系统进行通信;
内存,用于存储计算机执行指令;
处理器,用于运行所述计算机执行指令,执行前述第二方面中所述的方法。
第六方面,本发明实施例提供了一种计算机程序产品,包括存储了程序代码的计算机可读存储介质,所述程序代码包括的指令用于执行前述第一方面中所述的方法。
第七方面,本发明实施例提供了一种计算机程序产品,包括存储了程序代码的计算机可读存储介质,所述程序代码包括的指令用于执行前述第二方面中所述的方法。
在本发明实施例中提供的数据复制方法中,由于第一存储系统中的第一存储设备和第二存储设备中存储有相同的数据,因此,在第一存储系统到第二存储系统的复制过程中,第一存储系统可以根据当前复制任务中的复制信息确定第一复制子信息以及第二复制子信息,并由第一存储设备根据第一复制子信息将数据复制到第二存储系统,由第二存储设备根据第二复制子信息将数据复制到第二存储系统。根据本发明实施例的方法,能够将第一存储系统的同一个复制任务由第一存储设备和第二存储设备进行分担,从而能够在不增加生产成本的情况下提升第一存储系统与第二存储系统之间的复制效率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例。
图1为本发明实施例提供的一种应用场景示意图;
图2为本发明实施例提供的一种存储设备的结构示意图;
图3为本发明实施例提供的一种数据复制方法的流程图;
图3a为本发明实施例提供的一种复制位图的示意图;
图3b为本发明实施例提供的一种复制信息确定方法的流程图;
图3c为本发明实施例提供的又一种复制信息确定方法的流程图;
图4为本发明实施例提供的又一种数据复制方法的信令图;
图5为本发明实施例提供的又一种数据复制方法的流程图;
图6为本发明实施例提供的又一种数据复制方法的信令图;
图7为本发明实施例提供的又一种存储设备的结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。
本发明实施例提供的数据备份方法主要应用于多数据中心的容灾系统中,本发明实施例所指的多数据中心的容灾系统是指包括不少于3个数据中心的容灾系统。为了描述方便,本发明实施例以三数据中心(3Data Center,3DC)容灾系统为例进行描述。如图1所示,图1为本发明实施例的一种应用场景示意图。图1所示的一种3DC容灾系统包括至少一个主机100以及三个数据中心。这三个数据中心包括至少一个生产站点以及两个灾备站点。为了描述方便,在本发明实施例中,将图1所示的三个数据中心分别称为生产站点11、一级站点12以及二级站点13,其中一级站点12以及二级站点13通常属于灾备站点。这三个数据中心之间可以采用星形组网方式通过光纤或网线进行连接。这三个数据中心之间可以通过IP(Internet Protocol)或者FC(Fiber Chanel)进行数据传输。在本发明实施例中,主机100与生产站点11或一级站点12之间可以基于小型计算机系统接口(SCSI,Small ComputerSystem Interface)协议,或者基于互联网小型计算机系统接口(iSCSI,Internet SmallComputer System Interface)协议进行通信。在此不做限定。
生产站点11中包括第一存储设备110,一级站点12中包括第二存储设备120,并且在二级站点13中包括第三存储设备130。其中,第一存储设备110、第二存储设备120以及第三存储设备130可以是存储阵列、服务器等当前技术已知的存储设备。例如,第一存储设备110、第二存储设备120以及第三存储设备130可以包括存储区域网络(Storage AreaNetwork,SAN)阵列,也可以包括网络附加存储(network attach storage,NAS)阵列。本发明实施例中不对各数据中心中的存储设备的具体形式进行限定。需要说明的是,在本发明实施例中的方法均是由这些站点中的存储设备来执行的。为了描述方便,在本发明实施例中,如无特别说明,生产站点11指的是生产站点11中的第一存储设备110,一级站点12指的是一级站点12中的第二存储设备120,二级站点13指的是二级站点13中的第三存储设备130。
在图1所示的应用场景中,生产站点11和一级站点12的距离比较近。通常,生产站点11和一级站点12的距离可以在100km以内。例如,生产站点11和一级站点12可以位于同一个城市的两个不同位置。二级站点13与生产站点11或一级站点12的距离较远。通常,二级站点13与生产站点11的距离可以在1000km以上。例如,二级站点13可以位于与生产站点11位于不同的城市。当然,在本发明实施例中,并不限定生产站点11和一级站点12必须在同一个城市,只要在生产站点11和一级站点12之间能够实现数据的同步复制即可。
主机100可以包括当前技术已知的任何计算设备,如服务器、台式计算机、应用服务器等等,在主机100中安装有操作系统以及其他应用程序,主机100可以有多个。
在图1所示的应用场景中,二级站点13主要作为灾备站点,用于备份数据。主机100不会对二级站点13进行访问。生产站点11和一级站点12均可以接收主机100的访问。在一种情形下,主机100可以将数据只写入生产站点11。例如,可以是一个或多个主机100对生产站点11进行数据写入操作。在又一种情形下,一个主机100也可以将不同的数据分别写入生产站点11和一级站点12。在又一种情形下,不同的主机100可以分别对生产站点11和一级站点12进行数据写入操作。例如主机A对生产站点11进行数据写入操作,同时主机B也在对一级站点12进行数据写入操作。可以理解的是,在后两种情形下,由于生产站点11和一级站点12可以同时承担主机100的业务,因此能够提高数据的读写效率。在本发明实施例中,不对生产站点11和一级站点12是否同时承担主机100的业务进行限制,只要能在生产站点11和一级站点12之间能够实现同步复制,保证生产站点11和一级站点12中的数据实时同步即可。需要说明的是,由于在图1所示的容灾系统中,生产站点11和一级站点12均可以接收主机100的访问,并且生产站点11和一级站点12通过同步复制方式保持存储的数据的一致性,所以生产站点11和一级站点12的角色可以互换。
在本发明实施例中,生产站点11和一级站点12可以通过同步复制技术使生产站点11和一级站点12中存储的数据实时保持同步。例如,在主机100将数据写入生产站点11时,生产站点11可以同时将该数据备份到一级站点12。当数据均写入生产站点11和一级站点12后,生产站点11再向主机100返回写入成功的响应,以保持生产站点11和一级站点12中的数据同步。由于二级站点13与生产站点11的距离较远,因此,生产站点11或一级站点12可以采用异步复制技术将数据存储到二级站点13。例如,当主机100将数据写入生产站点11时,生产站点11可以直接向主机100返回一个写入成功的响应。在间隔一段时间后,生产站点11再将主机100写入的数据发送到二级站点13进行存储,以实现数据的进一步备份。需要说明的是,在本发明实施例中,将数据写入生产站点11可以是将数据写入生产站点11的缓存,也可以是指将数据写入生产站点11的存储器中,在此不做限定。
需要说明的是,生产站点11的存储器构成的存储空间可以包括多个数据卷。其中,本发明实施例所述的数据卷是由物理存储空间映射而成的一段逻辑存储空间。例如,数据卷可以是逻辑单元号(Logic Unit Number,LUN)标识的逻辑单元,也可以是文件系统。可以理解的是,一级站点12以及二级站点13的存储空间也可以包括多个数据卷。
实际应用中,在3DC容灾系统中,通常会在生产站点11和一级站点120之间采用同步复制技术保持数据的同步,在生产站点11和二级站点13之间建立异步复制或者在一级站点12与二级站点13之间建立异步复制。例如,在异步复制的过程中,采用生产站点11和二级站点13之间的链路进行异步复制,而将一级站点12与二级站点13之间的链路作为备份链路。为了描述方便,在本发明实施例中,将生产站点11和二级站点13之间的链路称为第一链路,将一级站点12与二级站点13之间的链路称为第二链路。当生产站点11和二级站点13之间的复制进程出现异常时,可以从一级站点12将数据重新复制到二级站点13。其中,复制进程出现异常包括因生产站点11发生故障导致复制进程出现异常,或者由于第一链路出现故障导致复制进程出现异常。可以理解的是,在异步复制的过程中,也可以采用一级站点12和二级站点13之间的链路进行异步复制,而将生产站点11与二级站点13之间的链路作为备份链路。
然而,由于生产站点11中的数据变化量很大,在异步复制的过程中,如果仅采用第一链路进行异步复制,可能导致第一链路的带宽成为数据备份的过程的瓶颈。并且在实际应用中,如果采用带宽更大的第一链路进行备份,又会增加用户的成本。为了在不增加成本的情况下提高数据备份的带宽,在本发明实施例中,当需要进行异步复制时,由生产站点11和一级站点12同时向二级站点13进行异步复制。根据这种方式,在异步复制的过程中,第一链路以及第二链路均处于活动(Active)状态。
由于本发明实施例主要涉及如何将数据从生成站点11以及一级站点12复制到二级站点13,因此为了描述方便,在下述的实施例中,将复制过程中发送数据的第一存储设备110和第二存储设备130组成的存储系统称为第一存储系统33,将接收数据的第三存储设备130所属的存储系统称为第二存储系统44。可以理解的是,第一存储系统33还可以包括其他存储设备,第二存储系统44也还可以包括其他存储设备。
图1中所示的第一存储设备110、第二存储设备120和第三存储设备130的结构可以如图2所示。图2为本发明实施例提供的一种存储设备20的结构示意图,图2所示的存储设备20为一种存储阵列。如图2所示,存储设备20可以包括控制器200以及磁盘阵列214,其中,其中,这里的磁盘阵列214用于提供存储空间,可以包括独立磁盘冗余阵列(RedundantArrays of Independent Disks,RAID)或者由多个磁盘构成的磁盘柜。磁盘阵列214可以有多个,磁盘阵列214由多个磁盘216构成。磁盘216用于存储数据。磁盘阵列216与控制器200之间可以通过小型计算机系统接口(Small Computer System Interface,SCSI)协议等通信协议进行通信连接,在此不进行限定。
可以理解的是,磁盘阵列214仅仅是存储系统中的存储器的一种示例,在本发明实施例中,还可以通过磁带库等存储器来存储数据。需要说明的是,磁盘216也仅仅是构建磁盘阵列214的存储器的一种示例,实际应用中,还可以在包含多个磁盘的机柜之间构建磁盘阵列等实施方式。因此,在本发明实施例中,磁盘阵列214还可以由固态硬盘(Solid StateDrives,SSD)、多个磁盘构成的机柜或服务器等由非易失性存储介质构成的存储器组成,在此不做限定。
控制器200是存储设备20的“大脑”,主要包括处理器(processor)202、缓存(cache)204、内存(memory)206、通信总线(简称总线)210以及通信接口(CommunicationInterface)212。处理器202、缓存204、内存206以及通信接口212通过通信总线210完成相互间的通信。需要说明的是,在本发明实施例中,存储设备20中的控制器200可以是一个,也可以是多个。可以理解的是,当存储设备20中包括至少两个控制器200时,可以提高存储设备20的稳定性。
通信接口212,用于与主机100、磁盘216或其他存储设备通信。
内存206,用于存放程序208。内存206可能包含高速RAM存储器,也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。可以理解的是,内存206可以为随机存储器(Random-Access Memory,RAM)、磁碟、硬盘、光盘、固态硬盘(Solid StateDisk,SSD)或者非易失性存储器等各种可以存储程序代码的非短暂性的(non-transitory)机器可读介质。
程序208可以包括程序代码,所述程序代码包括计算机操作指令。
缓存(Cache)204是存在于控制器与硬盘之间的存储器,容量较硬盘小但速度比硬盘快。缓存204用于缓存从主机100或其他存储设备接收的数据以及缓存从磁盘216读取的数据,以提高阵列的性能和可靠性。缓存204可以是RAM、ROM、闪存(Flash memory)或固态硬盘(Solid State Disk,SSD)等各种可以存储数据的非短暂性的(non-transitory)机器可读介质,在此不做限定。
处理器202可以是一个中央处理器CPU,或者是特定集成电路ASIC(ApplicationSpecific Integrated Circuit),或者是被配置成实施本发明实施例的一个或多个集成电路。在处理器202中安装有操作系统和其他软件程序,不同的软件程序可以视作一个处理模块,具有不同的功能。例如,处理对磁盘216的输入/输出(Input/output,I/O)请求,对磁盘216中的数据进行其他处理,或者修改存储设备20中保存的元数据等等。从而使控制器200可以实现IO操作、快照、镜像、复制等各种的数据管理功能。在本发明实施例中,处理器202用于执行程序208,具体可以执行下述方法实施例中的相关步骤。
可以理解的是,在本发明实施例中,第一存储设备110、第二存储设备120以及第三存储设备130的硬件结构可能相似,但是由于在数据复制过程中第一存储设备110、第二存储设备120以及第三存储设备130承担的职能不同,因此第一存储设备110、第二存储设备120以及第三存储设备130中的处理器202执行的程序208会有所不同。下面将对本发明实施例中各个存储设备具体如何实现数据复制的方法进行详细介绍。
图3是本发明实施例提供的一种数据复制方法的流程图。该方法可以应用于图1所示的应用场景中。图3所示的方法将从发送数据的第一存储系统33侧进行描述。其中,第一存储系统33可以包括图1中所示的生产站点11中的第一存储设备110以及一级站点12中的第二存储设备120。其中,第一存储设备110和第二存储设备120中存储的数据相同。接收复制数据的第二存储系统44可以包括第三存储设备130。并且在本发明实施例中的第一存储设备110、第二存储设备120的硬件结构均可以如图2所示。具体的,图3所述的方法可以由第一存储设备110、第二存储设备120中的处理器202共同执行。下面将结合图1和图2,对图3中所示的数据复制方法进行描述。如图3所示,该方法可以包括下述步骤。
在步骤300中,第一存储系统33根据存储的数据确定复制信息,所述复制信息用于指示第一存储系统33在当前复制任务中需要复制到第二存储系统44的数据。其中,复制任务(也可以被称为异步远程复制任务)是指第一存储系统33将一段时间内一个数据卷接收到的写数据命令携带的数据复制到第二存储系统44的一个数据卷中。实际应用中,第一存储系统33可以将这段时间内一个数据卷中的所有的数据都发送给第二存储系统44,也可以将这段时间内接收到相对于上一次复制任务的差异数据(也称增量数据)发送给第二存储系统44,在此不做限定。
需要说明的是,在一种情形下,由于第一存储设备110或第二存储设备120中可以存在多个数据卷,因此,可能同时存在多个复制任务。在本发明实施例中,可以采用复制任务标识来将不同的复制任务进行区分,其中,复制任务标识可以根据在当前复制过程中源数据卷的标识和目标数据卷的标识来确定。例如,复制任务标识可以为:A LUN001BLUN002,用于表示该复制任务是将数据从存储设备A中标识为001的LUN复制到存储设备B中标识为002的LUN中。此外,复制任务标识还可以采用其他标识来表示,在此不做限定。只要能让各存储设备识别出当前复制任务的源数据卷和目标数据卷即可。
可以理解的是,在本发明实施例中,虽然第一存储设备110与第二存储设备120通过同步复制的方式保持存储的数据的一致性,但第一存储设备110与第二存储设备120中存储相同数据的数据卷的标识并不一定相同。例如,在第一存储设备110中存储数据A的LUNID可以为LUN 1#,在第二存储设备120中存储数据A的LUN的ID可以为LUN 2#。在实际应用中,可以预先配置第一存储设备110、第二存储设备120以及第三存储设备130中各个数据卷之间的复制关系,使得第一存储设备110、第二存储设备120和第三存储设备130在当前复制任务中均可以根据该复制关系确定相应的源数据卷和目标数据卷。换一种表达方式,在具有相同复制关系的各数据卷之间可以实现数据备份。
在设置的复制关系中,可以包括复制关系标识,也可以包括第一存储设备110、第二存储设备120以及第三存储设备130的LUN的标识。例如,复制关系标识可以为:A LUN001BLUN002C LUN003,用于表示存储设备A中标识为001的LUN、存储设备B中标识为002的LUN以及存储设备C中标识为003的LUN之间存在复制关系。当然,复制关系标识也可以用其他的标识来表示,在此不做限定,只要能让各存储设备识别出当前复制任务中涉及的复制关系即可。在实际应用中,可以预先在第一存储设备110、第二存储设备120以及第三存储设备130中均保存有这个复制关系。
在本发明实施例中,复制任务是根据预设的复制关系启动的不同存储设备中的LUN之间的复制任务,并且在某一时刻,具有相同复制关系的数据卷之间只可能存在一个复制任务。本发明实施例主要涉及在一个复制任务中各个设备之间的交互过程,因此在本发明实施例中,可以用复制关系标识来表示一个复制任务。换一种表达方式,在本发明实施例中,复制任务标识可以与复制关系标识相同。当然,实际应用中,若为了区分具有相同复制关系的数据卷之间在不同时间段存在的多个复制任务,复制任务标识也可以与复制关系标识不同,例如,复制任务标识可以在复制关系标识的基础上再增加时间标识,用于表示该复制任务是在具有相同复制关系的数据卷之间在不同时刻启动的复制任务。
可以理解的是,在一种情形下,若第一存储设备110、第二存储设备120及第三存储设备130的存储空间中均只存有一个数据卷时,当前复制任务就是针对各存储设备中唯一的一个数据卷在当前时刻启动的复制任务,因此,也可以不用预设各存储设备中各LUN之间的复制关系。
在本发明实施例中,复制信息可以根据第一存储设备110或第二存储设备120接收的差异数据信息来确定。差异数据信息是指存储设备在当前复制任务的前一个复制任务开始之后、并且在当前复制任务开始之前写入存储设备的数据的信息。实际应用中,差异数据信息可以用差异位图的方式来记录。以第一存储设备100为例,第一存储设备110可以为每一个数据卷(例如LUN)创建一个差异位图,用于记录该数据卷中的写入的数据的信息。图3a为本发明实施例提供的一种差异位图的示例。如图3a所示,差异位图中的每一个格子对应LUN中的一段地址。在本发明实施例中,以标识位“1”来表示有数据写入。由于主机100发送的写数据命令中会携带要写入的数据以及所述数据的地址,因此,当第一存储设备100接收到主机100发送的写数据命令后,可以根据该写数据命令中携带的数据的地址将差异位图中对应的格子中的标识位置为“1”。通过这种差异位图的记录方式,能够记录写入该LUN中的被改变的数据的信息。可以理解的是,在同一个复制周期中,如果同一个地址的数据被连续改变,则在记录时,可以将该数据地址对应的格子中的标识位保持为“1”。可以理解的是,在另一种情形下,还可以以标识位“0”来表示有数据写入。在又一种情形下,还可以“1”表示有数据写入,以“0”表示没有数据写入。此外,还可以用其他标识位表示是否有数据写入,在此不对标识位的具体形式做限定。在本发明实施例中,差异位图可以保存在第一存储设备110或第二存储设备120的缓存中,也可以保存在第一存储设备110或第二存储设备120的存储器中。
可以理解的是,差异数据信息除了可以以差异位图的形式来记录之外,还可以以“树”形结构来记录。例如可以采用差异二叉树、差异B+树以及其他树来记录差异数据信息。在采用“树”形结构来记录差异数据信息时,可以使每一个叶子节点对应LUN中的一段地址。当有数据写入时,将该叶子节点的标识位置为相应的标识,用于表示该叶子节点对应的地址有数据写入。在又一种情形下,差异数据信息还可以以链表或表项的结构来记录,在采用链表形式来表示时,该表中每一个表项对应LUN中的一段地址。此外,差异数据信息还可以以日志等形式来记录,在此不做限定。与差异位图类似,上述以树形结构、链表结构或日志等形式记录的差异数据信息可以保存在第一存储设备110或第二存储设备120的缓存中,也可以保存在第一存储设备110或第二存储设备120的存储器中。
可以理解的是,当差异数据信息以差异位图的形式来记录时,复制信息也以复制位图的形式来表示。当差异数据信息以差异树的形式来记录时,复制信息也可以以复制树得形式来表示。以此类推,在此不再赘述。
在本发明实施例中,为了描述方便,下面以差异位图为例进行描述,并且以标识位为“1”来表示有数据写入。当启动复制任务时,一种情形下,第一存储设备110可以将启动复制任务时的差异位图转换为复制位图以确定复制信息,并重新生成空的差异位图来记录该LUN中在当前复制任务启动之后在第一存储设备110中写入的数据。其中,复制位图用于表示在当前复制任务中需要复制到第三存储设备130中的数据。根据这种方式,在复制时,可以将复制位图中为“1”的格子对应的地址的数据复制到第三存储设备130中。在又一种情形下,可以在第一存储设备110中设置一个差异位图和一个复制位图,用差异位图来记录第一存储设备在当前复制任务的前一个复制任务开始之后、并且在当前复制任务开始之前写入的数据的信息。当启动当前复制任务时,可以将该差异位图转换为当前复制任务中的复制位图,并将前一个复制任务中使用完的复制位图转换为新的差异位图,用以记录当前复制任务开始之后写入的数据的信息。需要说明的是,当使用前一个复制任务中使用完的复制位图转换为新的差异位图时,需要清空前一个复制任务中的复制位图中的标识位后再作为新的差异位图。换一种表达方式,在这种情形下,可以将差异位图和复制位图更替使用,分别用以记录差异数据信息以及待复制到第三存储设备130的数据的信息。在此不对如何具体根据差异数据信息确定复制信息的形式做限定。
如前所述,在图1所示的3DC容灾系统中,由于第一存储系统33中的第一存储设备110和第二存储设备120通过同步复制技术保持存储的数据的一致性。当确定需要启动第一存储系统33到第二存储系统44的复制任务,换一种表达方式,当确定需要启动到第三存储设备130的异步复制时,第一存储系统33需要确定复制信息,用于指示在当前复制任务中第一存储系统33需要复制到第二存储系统44的数据。在一种情形下,第一存储系统33需要确定复制信息具体可以由第一存储设备110与第二存储设备120可以分别根据存储的数据确定复制信息。由于第一存储设备110与第二存储设备120中存储的数据相同,因此第一存储设备110根据存储的数据确定的复制信息与第二存储设备120根据存储的数据确定的复制信息相同。具体的,在本发明实施例中,以当前复制任务是在第一存储设备110中的第一源数据卷、第二存储设备120中的第二源数据卷以及第三存储设备130中的目标数据卷之间启动的复制任务为例进行描述。其中,第一源数据卷与第二源数据卷中存储的数据相同。图3b为本发明实施例提供的一种复制信息确定方法的流程图。如图3b所示,该方法可以包括下述步骤。
在步骤310中,第一存储设备110向第二存储设备120发送复制任务启动消息。其中,所述复制任务启动消息中携带有第一存储设备110中的第一源数据卷的标识和第三存储设备130中的目标数据卷的标识。该复制任务启动消息用于通知第二存储设备120当前复制任务为第一存储设备110中的第一源数据卷与第三存储设备130中的目标数据卷之间的复制任务。
其中复制任务启动消息可以采用预定义的消息格式进行。例如,在复制任务启动消息的头部可以包含消息类型(例如opCode)字段、源设备ID(例如,srcAppId)字段以及目标设备ID(例如,dstAppId)字段。其中,消息类型字段用于表示该消息的类型为复制任务启动信息。源设备ID字段用于标识该复制进度消息的发起者,目标设备ID字段用于标识该复制任务启动消息的接收者。源设备ID以及目标设备ID字段均可以用IP地址来标识。复制任务启动消息的内容部分(例如,复制任务启动消息中的data字段)的格式可以如下所示:
其中:LUN ID:可以位于第0-4个字节,用于表示当前复制任务中源数据卷的标识,该LUN标识为唯一标识;
ReplicationObject LUN id:可以位于第4-8个字节,用于表示当前复制任务中接收数据的目标设备中目标数据卷的标识,例如可以是目标设备的LUN ID。换一种表达方式,该字段用于表示当前复制任务指向的目标存储设备中的目标数据卷。
例如,在本步骤中,第一存储设备110发送给第三存储设备130的复制任务启动消息中,“LUN ID”字段可以为第一存储设备110中存储有待复制数据的第一源数据卷的ID,例如LUN001。“ReplicationObject LUN id”字段可以为第三存储设备130中的目标数据卷的ID,例如LUN003。用于说明当前复制任务是第一存储设备110中标识为001的LUN与第三存储设备130中标识为003的LUN之间的复制任务。在又一种情形下,“LUN ID”字段也可以为第二存储设备120中的第二源数据卷的ID,在这种情况下,可以由第一存储设备110预先根据预设的复制关系以及第一源数据卷的标识和目标数据卷的标识确定第二源数据卷的标识。
在步骤312中,第二存储设备120根据所述第一源数据卷的标识、所述目标数据卷的标识以及预设的复制关系确定所述第二存储设备中的所述第二源数据卷。其中,所述复制关系中包含有所述第一源数据卷、所述第二源数据卷与所述目标数据卷的对应关系。如前所述,在本发明实施例中,在第一存储设备110、第二存储设备120以及第三存储设备130中均预设有各数据卷之间的复制关系。在第二存储设备120接收到第一存储设备110的复制任务启动消息后,第二存储设备120可以根据预设的复制关系以及复制任务启动消息中携带的第一源数据卷的标识、目标数据卷的标识确定第二存储设备120中的第二源数据卷。
在步骤314中,第二存储设备120根据确定的所述第二源数据卷中存储的数据确定所述复制信息。在步骤316中,第一存储设备110根据确定的所述第一源数据卷中存储的数据确定所述复制信息。例如,第二存储设备120可以根据第二源数据卷的差异位图生成复制位图,第一存储设备110可以根据第一源数据卷的差异位图生成复核位图。第一存储设备110和第二存储设备120具体如何根据数据卷中存储的数据确定复制信息可以参见前面的描述,在此不再赘述。由于第二源数据卷与第一源数据卷中存储的数据相同,因此,第二存储设备120根据第二源数据卷确定的复制信息与第一源数据卷确定的复制信息相同,且该复制信息即为第一存储系统33在当前复制任务中的复制信息,用于指示第一存储系统33在当前复制任务中需要复制到第二存储系统44的数据。
在另一种情形下,第一存储系统33确定复制信息也可以具体由第一存储系统33中的第一存储设备110根据第一存储设备110中存储的数据确定复制信息,再将确定后的复制信息发送给第二存储设备120。通过这种方式也能够使第一存储设备110和第二存储设备120均具有相同的复制信息。具体的,可以如图3c所示,图3b为本发明实施例提供的又一种复制信息确定方法的流程图。图3c所示的复制信息的确定方法仍然以当前复制任务是在第一存储设备110中的第一源数据卷、第二存储设备120中的第二源数据卷以及第三存储设备130中的目标数据卷之间启动的复制任务为例进行描述。其中,第一源数据卷与第二源数据卷中存储的数据相同。该方法可以包括下述步骤。
在步骤320中,第一存储设备110根据第一源数据卷中存储的数据确定复制信息。具体的,第一存储设备110在需要启动复制任务时,可以根据第一源数据卷的差异位图确定复制信息,该复制信息用于指示当前复制任务中需要复制到第二存储系统44的数据。第一存储设备110确定复制信息的具体方式可以参见前面的描述,在此不再赘述。
在步骤322中,第一存储设备110向所述第二存储设备120发送复制任务启动消息。其中,该复制任务启动消息中可以携带所述第一源数据卷的标识、目标数据卷的标识以及所述复制信息。该复制任务启动消息用于通知第二存储设备120当前复制任务为第一存储设备110中的第一源数据卷与第三存储设备130中的目标数据卷之间的复制任务。由于在步骤320中,第一存储设备110已经根据第一源数据卷确定了当前复制任务的复制信息,因此,第一存储设备110可以在通知第二存储设备120启动复制任务时,将该复制信息同时发送给第二存储设备120,从而第二存储设备120可以不用自己确定复制信息。可以理解的是,在第二存储设备120没有记录差异数据的情形下,也可以由第一存储设备110将当前复制任务的复制信息发送给第二存储设备120。可以理解的是,实际应用中,复制任务启动消息中除了携带复制信息外,还可以携带第一源数据卷的标识以及目标数据卷的标识,用于指示当前复制任务为第一源数据卷与目标数据卷之间的复制。关于复制任务启动消息的具体描述可以参见前面的描述的类似,具体还可以在前述复制任务启动消息的数据部分的其他字段携带复制信息。例如,可以在第8个字节之后的字段中携带复制信息(例如,待复制的数据的地址信息),在此不再赘述。
在步骤324中,第二存储设备120根据所述第一源数据卷的标识、目标数据卷的标识以及预设的复制关系确定与所述复制信息对应的第二源数据卷。其中,所述复制关系中包含有所述第一源数据卷、所述目标数据卷与所述第二源数据卷的对应关系。具体的,第二存储设备120接收到第一存储设备110的复制任务启动消息之后,可以根据预设的复制关系以及复制任务启动消息中携带的第一源数据卷的标识、目标数据卷的标识确定在第二存储设备120中与第一源数据卷存储有相同数据的第二源数据卷,从而能够确定与该复制信息对应的第二源数据卷。
图3b和图3c是本发明实施例提供的第一存储系统33确定复制信息的两种实现方式,实际应用中,还可以根据具体网络的部署采用其他的方式来确定第一存储系统33在当前复制任务中的复制信息,在此不对第一存储系统33确定复制信息的具体方式进行限定。需要说明的是,本发明实施例中,由于复制任务是在数据卷之间执行的复制任务,因此,本发明实施例中的复制信息均是指存储设备中某个数据卷的复制信息。通常,在一个复制任务中一个数据卷对应一个复制信息。
在步骤302中,第一存储系统33根据所述复制信息确定第一复制子信息及第二复制子信息。其中,所述第一复制子信息用以指示需要由第一存储设备110复制到第三存储设备130的数据,所述第二复制子信息用于指示需要由第二存储设备120复制到第三存储设备130的数据。需要说明的是,在确定第一复制子信息和第二复制子信息时,需要确定第一复制子信息和第二复制子信息指示的数据范围,以避免第一存储设备110和第二存储设备120复制的数据重复。
实际应用中,在一种情形下,第一复制子信息和第二复制子信息可以分别由第一存储系统33中的第一存储设备110和第二存储设备120分别进行确定。具体的,第一存储设备110可以根据在步骤300中确定的复制信息以及预设的复制策略确定第一复制子信息,第二存储设备120根据在步骤300中确定的复制信息以及预设的复制策略确定第二复制信息。实际应用中,可以在第一存储设备110中预先设定复制策略,其中,复制策略可以包括复制比例以及复制范围等。例如,在一种情形下,设定的策略可以为:第一存储设备110从复制位图的头部开始向尾部方向复制,第二存储设备120从复制位图的尾部开始向头部方向复制,当复制位置有交叉时结束复制。在又一种情形下,设定的策略可以为:第一存储设备110从复制位图的头部开始向尾部方向复制60%的差异数据,第二存储设备从复制位图的尾部开始向头部方向复制40%的差异数据。在又一种情形下,设定的策略还可以为:第一存储设备110以及第二存储设备120从复制位图的中部开始,分别向两头复制差异数据。此外设定的策略还可以包括第一存储设备110需要复制的数据的地址范围以及第二存储设备120需要复制的数据的地址范围等等。实际应用中可以根据具体情况设定复制策略,在此不对具体的复制策略进行限定。
需要说明的是,由于本发明实施例中,启动异步复制时,需要将当前复制任务由第一存储设备110与第二存储设备120进行分担,因此需要在第一存储设备110与第二存储设备120中设置相同的复制策略,以避免第一存储设备110和第二存储设备120将相同的数据复制给第三存储设备130。
在又一种情形下,为了使第一存储设备110与第二存储设备120在复制过程中实现负载均衡,第一存储设备110可以根据所述复制信息与第二存储设备120协商确定第一复制子信息和第二复制子信息。具体的,如图1所示,在协商过程,第一存储设备110可以接收第二存储设备120的协商请求,该协商请求中至少包含第二链路的带宽信息。第一存储设备110可以根据第二链路的带宽信息确定第一复制子信息以及第二复制子信息。例如,若第二链路的带宽大于第一链路的带宽,第一存储设备110可以确定第一复制子信息指示的数据量小于第二复制子信息指示的数据量,例如第一复制子信息指示的数据为需要复制的总数据量30%,第二复制子信息指示的数据为需要复制的总数据量70%。在第一存储设备110确定第一复制子信息和第二复制子信息后,第一存储设备110可以将确定后的第二复制子信息发送给第二存储设备120。第二复制子信息可以以协商响应消息的形式发送给第二存储设备120,在协商响应消息中需要携带第二复制子信息所指示的数据的地址范围。
需要说明的是,本发明实施例中,第一复制子信息和第二复制子信息均属于复制信息的一部分。或者,换一种表达方式,第一复制子信息指示的数据和第二复制子信息指示的数据均是复制信息指示的数据一部分。可以理解的是,在第一存储系统33只包括两个存储设备的情况下,复制信息可以由第一复制子信息和第二复制子信息组成。在本发明实施例中,当复制信息以复制位图的方式表示时,第一复制子信息或第二复制子信息并不需要另外以单独的复制位图来表示,可以在复制位图的基础上标识出第一复制子信息或第二复制子信息的范围即可。在本发明实施例中,并不对第一复制子信息和第二复制子信息的具体形式进行限定,只要第一复制子信息和第二复制子信息能够标识需要复制的数据的范围即可。
可以理解的是,本发明实施例只是以第一存储系统33中包括两个存储设备进行描述。在实际应用中,若第一存储系统33中包含N个存储设备,则在启动异步复制时,可以将当前复制任务的复制信息分为N个部分。换一种表达方式,可以根据当前复制任务的复制信息确定N个复制子信息,分别由N个设备分别根据N个复制子信息同时向第三设备进行复制。其中,N为大于2的自然数。当复制信息以复制位图的方式表示时,第一复制子信息和第二复制子信息也可以以复制位图的方式来表示。
在步骤304中,第一存储设备110根据所述第一复制子信息将所述需要由所述第一存储设备110复制到第三存储设备130的数据复制到第三存储设备130。例如,当复制信息以复制位图方式表示时,第一存储设备110可以根据第一复制子信息将复制位图标识位为“1”的位置对应的第一源数据卷中的数据复制到第三存储设备130的目标数据卷中。具体的,第一存储设备110可以通过写数据命令或复制命令将需要由第一存储设备110中的第一源数据卷中的复制到第三存储设备130的数据发送到第三存储设备130的目标数据卷中。
如图1所示,由于第一存储设备110和第三存储设备130之间是采用异步复制技术实现数据备份,因此第三存储设备130中存储的数据会比第三存储设备110中存储的数据有一定时间的延迟。通常情况下,第一存储设备110在一段时间内会接收主机100的多个写数据命令,并且第一存储设备110在向第三存储设备130进行异步远程复制时,主机100仍然可能发送写数据命令给第一存储设备110。因此在执行当前复制任务时,有必要将第一存储设备110在当前复制任务中发送给第三存储设备130的数据与其接收的新数据区分开。
在本发明实施例中,可以利用快照技术将复制过程中第一存储设备110发送给第三存储设备130的数据与在复制过程中第一存储设备110接收的新数据进行区分。快照是关于指定数据集合的一个完全可用拷贝,该拷贝包括相应数据在某个时间点(拷贝开始的时间点)的映像。快照可以是其所表示的数据的一个副本,也可以是数据的一个复制品。在本发明实施例中,在启动复制时,可以通过对数据卷创建一个在创建时刻的状态视图,通过这个视图只可以看到数据卷在创建时刻的数据,在此时间点之后数据卷的修改(有新的数据写入),不会反映在快照视图中。利用这个快照视图,就可以做数据的复制。对于第一存储设备110而言,由于快照数据是“静止的”,因此第一存储设备110可以在将各个时间点的数据创建快照之后,再将快照数据复制到第三存储设备130。通过这种方式既可以完成远程数据复制,也不会影响第一存储设备110在复制期间继续接收主机100发送的写数据命令。因此,第一存储设备110可以在启动复制的时刻对第一源数据卷中的数据进行快照处理,以形成该时刻的第一源数据卷的数据副本,将所述数据副本发送给第三存储设备130的目标数据卷。需要说明的是,所述数据副本即为在当前复制任务中待复制给第三存储设备130的数据。
可选的,本发明实施例还可以利用给第一存储设备110接收到的每个写数据命令增加时间片编号的方式来解决上述问题。例如,第一存储设备110中可以包含一个当前时间片编号管理器,所述当前时间片编号管理器中保存有当前时间片编号。当前时间片编号可以用数值表示,例如0、1、2。当前时间片编号也可以用字母表示,例如a、b、c。在此不做限定。当第一存储设备110接收到写数据命令时,在写数据命令携带的数据和数据的地址中增加由当前时间片编号赋值的第一编号。当一个异步远程复制任务触发时,将第一编号对应的数据作为在当前复制任务中的待复制给第三存储设备130的数据,并且将第一编号对应的数据和数据的地址发送给第三存储设备130。同时修改所述当前时间片编号,以标识后续的写数据命令。此外,在本发明实施例中,还可以采用其他方式将第一存储设备110在当前复制任务中需要发送给第三存储设备130的数据与其接收的新数据进行区分。在此不做限定。
在本发明实施例中,以第一存储设备110的存储空间中包含的数据卷为LUN为例。在启动复制任务时,例如,在确定复制信息时,第一存储设备110可以通过快照的方式创建在当前时刻的第一源LUN的副本。则在步骤306中,第一存储设备110可以将创建的第一源LUN的副本中与第一复制子信息中标识位为“1”的格子对应的地址的数据复制到第三存储设备130的目的LUN中。本领域人员可以理解,通过这种创建LUN副本的方式,即使在当前复制任务中,第一存储设备110在第一源LUN的相同地址又写入了新的数据,也不会影响当前复制任务中要复制的数据。
在本步骤中,以第一存储设备110通过写数据命令将数据复制到第三存储设备130为例。当第一存储设备110根据创建的第一源LUN的副本以及所述第一复制子信息将数据复制到第三存储设备130的目标LUN中时,在第一存储设备110发送给第三存储设备130的写数据命令中,需要包含当前复制任务的目标LUN的标识、待写入的数据以及待写入的数据的地址。其中,目标LUN的标识可以是LUN ID。待写入的数据的地址可以是数据的LBA地址,用于表示所述数据的目的地址。第三存储设备130可以根据所述目标LUN的标识以及待写入的数据的LBA地址将写数据命令中携带的数据写入第三存储设备130的目标LUN中。可以理解的是,在第一存储设备110发送给第三存储设备130的写数据命令中,还可以携带所述待写入数据的第一源LUN的ID,用于标识该数据是从第一存储设备110的第一源LUN中发送的数据。
在步骤306中,第二存储设备120根据所述第二复制子信息将所述需要由所述第二存储设备120复制到第三存储设备130的数据复制到第三存储设备130。由于步骤306与步骤304类似,因此可以参见步骤304的相关描述。需要说明的是,在本发明实施例中,上述步骤304和步骤306没有先后顺序之分,第一存储设备110的复制过程和第二存储设备120的复制过程可以同时进行。
在本发明实施例中,由于第一存储设备110和第二存储设备120通过同步复制方式保持存储的数据的一致性,并且,当前复制任务的复制信息是根据一个数据卷中写入的差异数据信息来确定的。例如,当前复制任务的复制信息是根据第一存储设备110中的第一源数据卷中写入的差异数据信息来确定的。由于第一存储设备110中的第一源数据卷中存储的数据与第二存储设备120中的第二源数据卷存储的数据相同,第一复制子信息和第二复制子信息又是根据同一个复制信息确定的,因此,在第一源数据卷中也存储有与第二复制子信息指示的数据相同的数据,在第二源数据卷中也存储有与第一复制子信息指示的数据相同的数据。
在图3所示的方法中,由于第一存储系统33中的第一存储设备110和第二存储设备120中存储的数据相同,因此,第一存储设备110和第二存储设备120可以有相同的复制信息。在启动异步复制过程中,第一存储系统33通过复制信息确定第一复制子信息和第二复制子信息,并由第一存储设备110根据第一复制子信息将数据复制到第三存储设备130,由第二存储设备120根据第二复制子信息将数据复制到第三存储设备130。根据本发明实施例的方法,能够将第一存储系统33的同一个复制任务由第一存储系统33中的第一存储设备110和第二存储设备120进行分担。与现有技术中只使用一条链路进行复制相比,图3所示的方法能够在不增加生产成本的情况下提升第一存储系统33与第二存储系统44之间的复制链路的带宽,提高了复制效率。例如,若图1所示的第一链路和第二链路的带宽均为10M,则采用本发明实施例的方法,在将第一存储系统33中的一个LUN中的数据复制到第三存储设备130时,复制链路带宽可以达到20M。而采用现有技术中只使用一条链路进行复制的方法,复制链路的带宽只有10M。
此外,与现有技术中只使用第一存储系统33中的一个存储设备进行复制相比,采用图3所示的实施例的方法,在启动远程异步复制时是由第一存储系统33中的多个存储设备同时进行,从而可以减少对第一存储系统33中单个存储设备资源的消耗。
图4为本发明实施例提供的一种数据复制方法的信令图。图4所示方法将从第一存储系统33以及第二存储系统44的角度对图3所示的方法进一步进行详细描述。可以理解的是,图4所示方法中的第一存储设备110、第二存储设备120以及第三存储设备130的具体结构仍然可以如图2所示。具体的,图4所示的方法可以分别由第一存储设备110、第二存储设备120以及第三存储设备130中的处理器来执行。为了描述方便,本发明实施例中将复制信息以复制位图来表示、差异数据信息以差异位图来表示。在本发明实施例中,还是以当前复制任务为第一存储设备110中的第一源数据卷、第二存储设备120中的第二源数据卷以及第三存储设备130中的目标数据卷之间的复制任务为例进行描述。下面将结合图1和图3对图4所示的方法进行描述。具体如图4所示,该方法包括:
在步骤402中,第一存储设备110确定启动异步复制任务。实际应用中,在第一存储设备110中可以根据设定的定时器来确定是否启动异步复制任务,当定时器到达设定的异步复制时间时,确定启动异步复制任务。可以理解的是,第一存储设备110通过设定定时器来启动异步复制只是一种实现方式.实际应用中,第一存储设备110还可以根据接收的数据量来确定是否启动异步复制任务,当第一存储设备110接收的数据量较少时,第一存储设备110可以确定启动异步复制任务。
在步骤404中,第一存储设备110停止接收主机100的写数据命令,并处理已经接收的写数据命令。实际应用中,主机100向第一存储设备110写入数据或者主机100从第一存储设备110读取数据是通过向第一存储设备110发送输入输出(Input/output,I/O)命令来实现的。在本发明实施例中,当第一存储设备110确定启动向第三存储设备的异步复制流程时,第一存储设备可以停止接收主机的写数据命令,以便第一存储设备110可以根据停止接收主机100的写数据命令之前已接收的数据确定当前复制任务中需要从第一源数据卷复制的数据。
在本步骤中,在第一存储设备110和第二存储设备120通过同步复制保持数据一致性的情况下,处理已经接收的写数据命令包括根据接收的写数据命令将数据写入第一存储设备110以及第二存储设备120。具体的,当第一存储设备110接收到主机100发送的写数据命令后,可以先缓存该写数据命令中携带的数据,再根据设定的写入策略将缓存中的数据写入数据卷中。与此同时,第一存储设备110中的数据同步引擎获知了这个变化后,可以立即将变化的数据块从缓存中直接通过SAN交换机发送到第二存储设备120的缓存中。第二存储设备120接收到该数据块后,会向第一存储设备110发送一个写入成功的响应。第一存储设备110在收到第二存储设备120的响应后,会向主机100返回一个写入成功的响应,以告知主机100该写数据命令中的数据被处理完成。通过这种方式,可以使主机100写入第一存储设备110的第一源数据卷的数据被同步写入第二存储设备120的第二源数据卷中。同样的,主机100写入第二存储设备120的第二源数据卷中的数据也会采用类似的方式被同步写入第一存储设备110的第一源数据卷中。第一存储设备110以及第二存储设备120通过上述同步复制方式保持存储的数据的一致性。
在步骤406中,第一存储设备110通知第二存储设备120启动异步复制。在本发明实施例中,第一存储设备110与第二存储设备120通过同步复制方式使第一存储设备110中存储的数据与第二存储设备120中存储的数据相同。为了充分利用第一存储设备110以及第二存储设备120到第三存储设备130之间的链路带宽,提高复制效率,在本发明实施例所述的复制过程中,可以由第一存储设备110和第二存储设备120一起完成同一个复制任务。因此,当第一存储设备110确定启动异步复制时,需要通知第二存储设备120启动异步复制流程。
在本步骤中,第一存储设备110可以向第二存储设备120发送复制任务启动消息,具体的,在第一种情形下,第一存储设备110可以将当前复制任务中涉及的复制关系通知第二存储设备120,以使第二存储设备120能够根据预设的复制关系确定当前复制任务所涉及的第二存储设备120中的数据卷的标识。例如,第一存储设备110可以在复制任务启动消息中将复制关系标识通知第二存储设备120。在第二种情形下,第一存储设备110可以在复制任务启动消息中携带第一源数据卷的标识以及目标数据卷的标识,以使第二存储设备120可以根据预设的复制关系以及第一源数据卷的标识、目标数据卷的标识确定当前复制任务所涉及的第二存储设备120中的第二源数据卷。在第三种情形下,第一存储设备110在确定复制任务后,可以根据第一存储设备110中预设的复制关系以及第一源数据卷的标识和目标数据卷的标识确定第二源数据卷的标识,并在发送给第二存储设备120的复制任务启动消息中携带第二源数据卷的标识,使得第二存储设备120能够根据接收的复制任务启动消息直接确定第二存储设备120中的第二源数据卷。在第四种情况下,第一存储设备110可以在复制任务启动消息中携带第一源数据卷的标识,以使第二存储设备120可以根据第一源数据卷的标识及预设的复制关系确定当前复制任务所涉及的第二存储设备120中的第二源数据卷。在第五种情况下,第一存储设备110还可以在复制任务启动消息中携带目标数据卷的标识,以使第二存储设备120可以根据目标数据卷的标识及预设的复制关系确定当前复制任务所涉及的第二存储设备120中的第二源数据卷。在本发明实施例中不对第二存储设备120具体如何通过复制任务启动消息确定第二源数据卷的具体方式进行限定,只要能够让第二存储设备120确定与第一源数据卷存储有相同数据的第二源数据卷即可。关于复制任务启动消息的具体描述可以参见图3所示实施例的相关描述。在此不再赘述。
在步骤408中,第二存储设备120停止接收主机100的写数据命令,并处理已经接收的写数据命令。具体的,当第二存储设备120接收到第一存储设备110关于启动异步复制的通知后,可以停止接收主机100的写数据命令。由于步骤408与步骤404类似,具体描述可以参见步骤404。
在步骤410中,第二存储设备120创建当前时刻的第二源数据卷的副本。实际应用中,第二存储设备120可以通过快照的方式创建在当前时刻的第二源数据卷的副本。通过这种方式,可以确定第二存储设备120在当前复制任务中需要复制的数据,并可以通过第二源数据卷的副本将当前复制任务中需要复制的数据与第二存储设备120在当前复制任务中新接收的数据进行区分。具体如何创建通过快照技术创建第二源数据卷的副本可以参见前面的描述,在此不再赘述。
在步骤412中,第二存储设备120根据第二源数据卷的差异位图生成第二复制位图。在本发明实施例中,第二存储设备120在接收到主机100发送的向第二源数据卷写数据的写数据命令后,会根据该写数据命令中携带的数据的地址更新第二源数据卷的差异位图。例如,第二存储设备120可以将差异位图中与该数据地址对应的格子中的标识位置为“1”,用于标识该格子对应的地址有数据写入。第二存储设备120的差异位图用于记录所述第二存储设备120的第二源数据卷在当前复制任务的前一个复制任务开始之后、并且在当前复制任务开始之前写入的数据的信息。由于本步骤与步骤301类似,因此,具体如何根据第二存储设备120中第二源数据卷的差异位图生成第二复制位图可以参见步骤301的描述。
在步骤414中,第二存储设备120通知第一存储设备110已准备好异步复制。实际应用中,为了使开始复制时第一存储设备110与第二存储设备120均已做好异步复制的准备,例如第一存储设备110与第二存储设备120均已经准备好复制位图以及数据卷的副本,则在第二存储设备120生成第二复制位图并创建当前复制任务所需的第二源数据卷的副本后,第二存储设备120可以通知第一存储设备110已经做好异步复制的准备。
在步骤416中,第一存储设备110创建当前时刻的第一源数据卷的副本。在第一存储设备110确认第二存储设备120已经做好异步复制的准备后,第一存储设备110开始创建当前时刻的第一源数据卷的副本。该步骤与步骤410类似,具体可以参见步骤410的描述。在此不再赘述。
在步骤418中,第一存储设备110根据第一源数据卷的差异位图生成第一复制位图。由于步骤418与步骤412类似,具体可以参见步骤412的描述。需要说明的是,由于在本发明实施例中,第一存储设备110与第二存储设备120通过同步复制技术保持存储的数据的一致性,第一源数据卷中存储的数据与第二源数据卷中存储的数据相同,因此,第一存储设备110的第一复制位图与第二存储设备120的第二复制位图相同。
在步骤420中,第一存储设备110通知第二存储设备120开始接收主机100的写数据命令。为了使第一存储设备110与第二存储设备120保持同步,当第一存储设备110在确认第一存储设备110和第二存储设备120已经做好当前复制任务的复制准备后,可以通知第二存储设备120开始接收主机100的写数据命令,因为在做好复制准备后接收的主机100的写数据命令,不会影响当前复制任务的执行。
在步骤422中,第一存储设备110开始接收主机100的写数据命令。在步骤424中,第二存储设备120开始接收主机100的写数据命令。可以理解的是,在当前复制任务启动之后写入第一存储设备110和第二存储设备120的数据将再下一个复制任务中被复制到第三存储设备130。
需要说明的是,实际应用中,步骤404、408、410、416以及420-424是可选的。例如,如前所述,如果采用增加时间片编号的方式来确定存储设备在当前复制任务中需要复制的数据,则启动异步复制时,第一存储设备110以及第二存储设备120可以不停止接收主机100的写数据命令,并且也可以不需要创建LUN的副本。
在步骤426中,第一存储设备110根据第一复制位图和复制策略确定第一复制子信息。在步骤428中,第二存储设备120根据第二复制位图和复制策略确定第一复制子信息。在本发明实施例中,由于第一复制位图和第二复制位图相同,并且预设的复制策略也相同,因此第一存储设备110和第二存储设备120可以分别确定复制子位图。这里的复制子位图具体可以包括第一存储设备110确定的第一复制子位图和第二存储设备120确定的第二复制子位图。其中,第一复制子位图用于标识需要由第一存储设备110复制到第三存储设备130的数据的信息,第二复制子位图用于标识需要由第二存储设备110复制到第三存储设备130的数据的信息。可以理解的是,在复制策略中会指定第一存储设备110与第二存储设备120的具体复制范围,因此第一复制子位图指示的数据与第二复制子位图指示的数据不会重复。步骤426和步骤428与步骤302类似,具体可以参见步骤302的相关描述。
在步骤430中,第一存储设备110根据第一复制子位图复制部分差异数据到第三存储设备130。具体复制时,第一存储设备110在当前复制任务的一次复制过程中可以根据第一存储设备110的复制规则复制一部分差异数据,例如复制规则可以设定一次复制的数据块的LBA的数量。
在步骤432中,第三存储设备130向第一存储设备110返回单次复制成功的响应,以通知第一存储设备110该次复制的数据已被成功写入第三存储设备130中。
在步骤434中,第一存储设备110根据第三存储设备130返回的复制成功响应更新第一复制子位图。具体的,在更新第一复制子位图时,可以将与已经复制完成的数据的地址对应的第一复制子位图中的格子打上复制完成的标识,也可以将第一复制子位图中与已复制完成的数据的地址对应的格子中的标识位删除。例如,可以将第一复制子位图中与已复制完成的数据的地址对应的格子中的标识位“1”删除。可以理解的是,由于第一复制子位图是第一复制位图的一部分,因此更新了第一复制子位图也就更新了第一复制位图。
在步骤436中,第一存储设备110发送第一存储设备110的复制进度信息给第二存储设备120。在本发明实施例中,第一存储设备110每复制完一次差异数据,就需要将第一存储设备110的复制进度信息发送给第二存储设备120,以便第二存储设备120可以了解第一存储设备110的复制进度,若第一存储设备110在复制过程中出现故障,则第二存储设备120可以根据第一存储设备110的复制进度信息对第一存储设备110的复制任务进行接管。为了将第一存储设备110的复制进度信息与第二存储设备120的复制进度信息进行区分,在本发明实施例中将第一存储设备110的复制进度信息称为第一复制进度信息,将第二存储设备120的复制进度信息称为第二复制进度信息。
实际应用中,第一存储设备110可以通过复制进度消息的形式将第一复制进度信息发送给第二存储设备120。其中,复制进度消息的格式可以与前述的复制任务启动消息的格式类似。在复制进度消息的头部也可以包含消息类型(例如opCode)字段、源设备ID(例如,srcAppId)字段以及目标设备ID(例如,dstAppId)字段。其中,消息类型字段用于表示该消息的类型为复制进度信息。在复制进度消息的内容部分(例如,复制进度消息中的data字段)除了需要携带当前复制任务的源数据卷以及目标数据卷以外,还需要携带当前的复制进度信息,例如复制进度消息的内容部分的格式可以如下所示:
其中:关于“LUN ID”和“ReplicationObject LUN id”字段的描述可以参见前述关于复制任务启动消息中的描述。在此不再赘述。
Address:该字段可以位于第8个字节之后,用于携带当前的复制进度信息。其中,复制进度信息可以是一个或多个逻辑单元地址(Logical Block Address,LBA)地址,也可以是更新后的复制位图。例如可以是更新后的第一复制子位图。当复制进度信息为一个LBA时,可以用于表示已经复制的最后一个数据的LBA。当复制进度信息为多个LBA时,可以用于表示当前已复制完成的所有数据的地址。在此不对复制进度信息的具体形式进行限定,只要能够表示复制进度即可。
例如,在第一存储设备110发送给第二存储设备120的第一复制进度消息中,在第一复制进度消息的头部,“源设备ID”字段可以为第一存储设备110的IP地址,“目的设备ID”字段可以为第二存储设备120的IP地址。在第一复制进度消息的内容部分,“LUN ID”字段可以为待复制的数据在第一存储设备110的第一源数据卷的ID;“ReplicationObject LUNid”字段可以为第三存储设备130中的目标数据卷的ID;“Address”字段可以为已经复制的最后一个数据的LBA。需要说明的是,在本发明实施例中,由于预先在第一存储设备110中第一源数据卷、第二存储设备120中的第二源数据卷以及第三存储设备130中的目标数据卷之间建立有复制关系。从而,第二存储设备120可以根据第一复制进度消息中的LUN id字段以及预设的复制关系确定当前复制任务对应的第二存储设备120中的第二源数据卷。并且第一存储设备110和第二存储设备120对应的LUN的ID可以相同也可以不同,只要能够根据所述复制关系确定存储有相同数据的数据卷即可。
在步骤438中,第二存储设备120根据第二复制子位图复制部分差异数据到第三存储设备130。在步骤440中,第三存储设备130向第二存储设备120返回单次复制完毕的响应,以通知第二存储设备120该次复制的数据已被成功写入第三存储设备130中。在步骤442中,第二存储设备120根据第三存储设备130返回的单次复制成功响应更新第二复制子位图。在步骤444中,第二存储设备120发送第二存储设备120的复制进度信息给第一存储设备110。
需要说明的是,步骤438至步骤444描述的是第二存储设备120在当前复制任务中的一次复制过程,该过程与步骤430至步骤436描述的第一存储设备110在当前复制任务中的一次复制过程类似,因此关于步骤438至步骤444描述的可以分别参见步骤430至步骤436的相关描述。
在步骤446中,第一存储设备110确定根据第一复制子位图复制完成,结束当前复制任务。在复制过程中,第一存储设备110将循环执行步骤430至步骤436的动作,直到第一存储设备110确定根据第一复制子位图将需要由第一存储设备110复制的数据复制完成为止,则第一存储设备110可以结束本次复制任务。可以理解的是,若第一复制子位图是根据预设的复制策略来确定,且预设的复制策略是设定第一存储设备110从复制位图指示的数据的起始地址开始向终止地址的方向复制,第一存储设备110从复制位图指示的数据的终止地址开始向起始地址的方向复制。则当第一存储设备110根据第二存储设备120的复制进度信息确定第一存储设备110要复制的数据与第二存储设备120已复制完成的数据有重复时,确定结束当前复制任务。需要说明的是,当结束当前复制任务后,需要删除第一存储设备110在步骤416中创建的第一存储设备110中的第一源数据卷的副本。
在步骤448中,第二存储设备120确定根据第二复制子位图复制完成,结束当前复制任务。在复制过程中,第二存储设备120将循环执行步骤438至步骤444的动作,直到第二存储设备120确定根据第二复制子位图将需要由第二存储设备120复制的数据复制完成为止,第二存储设备120可以结束当前复制任务。需要说明的是,当结束当前复制任务后,需要删除第二存储设备120在步骤410中创建的第二存储设备120中的第二源数据卷的副本。
需要说明的是,在复制过程中,第一存储设备110和第二存储设备120可以分别执行复制任务。在本发明实施例中,并不对第一存储设备110执行步骤430至步骤436以及第二存储设备120执行步骤438至步骤444的先后顺序进行限制。
在又一种情形下,若在复制过程中,第一存储设备110出现故障,则在第二存储设备120确定第一存储设备110出现故障后,第二存储设备120可以根据在第一存储设备110出现故障前最后一次接收的第一存储设备110的复制进度信息以及所述第二复制位图确定所述第一存储设备110尚未复制完成的数据,并从第二源数据卷中将第一存储设备110尚未复制完成的数据复制到第三存储设备130的目标数据卷中。
实际应用中,第二存储设备120可以根据第二存储设备120与第一存储设备110之间的心跳来检测第一存储设备110是否出现故障,例如当第二存储设备120在设定的时间内未收到第一存储设备110的心跳信号时,则可以判断第一存储设备110出现故障。进一步的,为了提高检测的准确性,第二存储设备120在通过心跳判断第一存储设备110出现故障后,可以向第三存储设备130发送查询请求,该查询请求用于查询第一存储设备110与第三存储设备130的通信情况,若第二存储设备120的第三存储设备130返回的查询响应显示第一存储设备110与第三存储设备130的通信也已经中断,则第二存储设备120可以确定第一存储设备110出现故障。第二存储设备120可以对第一存储设备110的复制任务进行接管,将第一存储设备110尚未复制到第三存储设备130的数据复制到第三存储设备130。
在本发明实施例中,由于第二存储设备120也可以将自己的复制进度信息通知第一存储设备110,因此,若在复制过程中,第二存储设备120出现故障,则第一存储设备110也可以根据第二存储设备120的复制进度信息以及第一复制位图对第二存储设备120的复制任务进行接管,将第二存储设备120尚未复制到第三存储设备130的数据复制到第三存储设备130。该过程与前述的第二存储设备120接管第一存储设备110的复制任务的过程类似,具体可以参见前面的描述,在此不做赘述。
图4所示的方法,在图3所示的方法的基础上,通过在复制进程中,第一存储设备110和第二存储设备120相互通知复制进度,从而在复制过程中,若第一存储设备110或第二存储设备120出现故障,第一存储系统33中未出现故障的一个存储设备能够继续完成出现故障的存储设备的复制任务。使第一存储系统33的复制任务不会因为其中一个存储设备出现故障而中断,在提高复制效率的同时,进一步的增强了系统的稳定性。
图5为本发明实施例提供的又一种数据复制方法的流程图。图5所示的方法仍然以包含有三个存储设备的3DC容灾系统为例。图5所示的方法是从接收数据的第二存储系统44侧进行描述,其中,第一存储系统33中包括第一存储设备110和第二存储设备120,第二存储系统44中可以包含图1所示的二级站点13中的第三存储设备130。在本发明实施例中,还是以当前复制任务为第一存储设备110中的第一源数据卷、第二存储设备120中的第二源数据卷以及第三存储设备130中的目标数据卷之间的复制任务为例进行描述。下面将结合图1对图5所示的方法进行描述。如图5所示:
在步骤500中,第三存储设备130接收第一存储系统33发送的复制信息,所述复制信息用于指示所述第一存储系统33需要复制到所述第三存储设备130中的数据。实际应用中,当启动第一存储系统33和第二存储系统44之间的异步复制任务时,可以由第一存储系统33中的第一存储设备110或第二存储设备120向第二存储系统44中的第三存储设备130发送复制信息。下面以第一存储设备110向第三存储设备130发送复制信息为例。具体的,第一存储系统33中的第一存储设备110可以根据第一源数据卷中存储的数据确定复制信息。其中,复制信息可以根据第一存储设备110在当前复制任务开始时第一源数据卷的差异数据信息获得。在确定当前复制任务的复制信息后,第一存储设备110可以将确定的复制信息发送给第三存储设备130。其中,复制信息可以以复制位图的形式来体现,也可以以“树”型结构等其他结构形式来体现,在此不做限定。关于复制信息、差异数据信息的相关描述可以参见图3中步骤300的描述,在此不再赘述。
实际应用中,第一存储设备110可以通过向第三存储设备130发送复制任务启动消息将复制信息发送给第三存储设备130。所述复制任务启动消息中携带有所述第一源数据卷的标识以及根据所述第一源数据卷存储的数据确定的所述复制信息。复制任务启动消息的具体描述可以参见图3或图4所示的实施例中相关描述。
在步骤502中,第三存储设备130根据所述复制信息向第一存储设备110发送第一获取请求。其中,第一获取请求中包含有第三存储设备130需要向所述第一存储设备110获取的数据的信息。第一获取请求中包含的数据的信息至少包括需要获取的数据所属的数据卷的标识以及数据的地址信息。例如,第一获取请求中包含的数据的信息至少包括第一源数据卷的标识以及第一获取请求要获取的数据的地址。其中,需要获取的数据所属的数据卷的标识可以为LUN的标识,数据的地址可以是一段LBA地址。
实际应用中,第一获取请求可以是读取命令或复制命令等命令格式,在此不做限定。第三存储设备130也可以根据接收的复制信息准备好存储空间后再向第一存储设备110发送第一获取请求,以便能够及时接收并存储第一存储设备110根据第一获取请求发送的数据。
需要说明的是,在本步骤中,所述第一获取请求的命令格式可以参照步骤436中复制进度消息的格式,在第一获取请求中的消息类型需要指明该消息为获取请求。在第一获取请求中需要携带的要获取的数据的信息可以包括:当前复制任务中需要获取的数据在第一存储设备中的第一源数据卷的标识以及数据地址。
在步骤504中,第三存储设备130根据所述复制信息向所述第一存储系统33中的第二存储设备120发送第二获取请求。其中,第二获取请求中包含有第三存储设备130需要向所述第二存储设备120获取的数据的信息。具体的,在第三存储设备130接收到第一存储设备110发送的复制任务启动消息之后,可以根据预设的所述第一源数据卷的标识以及预设的复制关系确定所述第二存储设备120中的第二源数据卷以及在第三存储设备130中的目标数据卷。其中,第二源数据卷中存储的数据与第一源数据卷中存储的数据相同,目标数据卷用于存储第三存储设备130在所述当前复制任务中接收的数据。第三存储设备130在确定第二源数据卷之后,可以向第二存储设备120发送第二获取请求,在第二获取请求中含的要获取的数据的信息至少包括第二存储设备中的第二源数据卷的标识以及所述第二获取请求要获取的数据地址。具体关于复制关系的描述可以参见图3所示实施例的描述。
可以理解的是,为了防止第一存储设备110和第二存储设备120复制的数据重复,所述第二获取请求中的数据地址与所述第一获取请求中的数据地址不同。根据这种方式,所述第二获取请求要获取的数据与所述第一获取请求要获取的数据不同。由于步骤504与步骤502类似,因此,关于第二获取请求的相关描述可以参见步骤502的描述。
需要说明的是,在本发明实施例中,步骤502和步骤504没有先后顺序之分,第三存储设备130可以分别同时向第一存储设备110和第二存储设备120的发送请求,以分别向第一存储设备110和第二存储设备120获取数据。
优选的,为了使第一存储设备110和第二存储设备120在复制过程中的负载均衡,在步骤502中,第三存储设备130向第一存储设备110发送第一获取请求时,第三存储130可以根据第三存储130与第一存储设备110之间的链路带宽来确定向第一存储设备110获取的数据量。具体的,第三存储设备130可以根据接收的复制信息以及第三存储设备130与第一存储设备110之间的链路带宽确定需要向第一存储设备110获取的数据后,再根据确定的需要向第一存储设备110获取的数据向第一存储设备110发送所述第一获取请求。同样的,在步骤504中,第三存储设备130向第二存储设备120发送第二获取请求时,第三存储130也可以根据第三存储130与第二存储设备120之间的链路带宽来确定向第二存储设备120获取的数据量。具体的,第三存储设备130可以根据接收的复制信息以及第三存储设备130与第二存储设备120之间的链路带宽确定需要向第二存储设备120获取的数据后,再根据确定的需要向第二存储设备120获取的数据向第二存储设备120发送所述第二获取请求。
在步骤506中,第三存储设备130接收第一存储设备110根据所述第一获取请求发送的数据。具体的,第一存储设备110可以根据第一获取请求中携带的要获取的数据的地址将第一源数据卷中存储的相应的数据发送给第三存储设备130,以将数据复制到第三存储设备130的目标数据卷中。
在步骤508中,第三存储设备130接收第二存储设备120根据所述第二获取请求发送的数据。第二存储设备120也可以根据第二获取请求中携带的要获取的数据的地址将第二源数据卷中存储的相应的数据发送给第三存储设备130,以将数据复制到第三存储设备130的目标数据卷中。
在图5所示的方法中,由于第三存储设备130会接收第一存储设备110发送的当前复制任务的复制信息,因此第三存储设备130可以同时向第一存储设备110和第二存储设备120获取数据,提高了复制链路带宽以及复制效率。并且第三存储设备130可以在准备好存储空间后再自主选择向第一存储设备110和第二存储设备120获取的数据的范围,使得第三存储设备130的自主性更强,操作更加灵活。此外,在第三存储设备130向第一存储设备110和第二存储设备120获取数据时,可以根据链路带宽确定向第一存储设备110或第二存储设备120获取的数据量,能够使第一存储设备110和第二存储设备120在当前复制任务中达到负载均衡。
图6为本发明实施例提供的又一种数据复制方法的信令图。该方法也以图1中所示的包含有三个存储设备的3DC容灾系统为例对如何将第一存储系统33中的数据复制到第二存储系统44进行描述。为了描述方便,本发明实施例中仍然将复制信息以复制位图来表示、差异数据信息以差异位图来表示进行描述。下面将结合图1对图6进行描述。具体如图6所示,该方法可以包括下述步骤。
在步骤602中,第一存储设备110确定启动异步复制任务。在步骤604中,第一存储设备110停止接收主机100的写数据命令,并处理已经接收的写数据命令。在步骤606中,第一存储设备110通知第二存储设备120启动异步复制。在步骤608中,第二存储设备120停止接收主机的写数据命令,并处理已经接收的写数据命令。在步骤610中,第二存储设备120创建当前时刻的LUN的副本。在步骤612中,第二存储设备120通知第一存储设备110已准备好异步复制。在步骤614中,第一存储设备110创建当前时刻的LUN的副本。在步骤616中,第一存储设备110根据差异位图生成复制位图。
上述步骤与图4所示实施例中的步骤402至步骤410、步骤414至步骤418类似,具体可以分别参见图4相关步骤的描述。
在步骤618中,第一存储设备110将复制位图发送给第三存储设备130。具体在发送复制位图时,第一存储设备110仍然可以在复制任务启动消息中的内容部分携带复制位图的形式将复制位图发送给第三存储设备130,其中,。关于复制任务启动消息的具体描述,可以参见图3、图4或图5所示的实施例中相关描述。
在步骤620中,第三存储设备130向第一存储设备110返回收到复制位图的响应。在步骤622中,第一存储设备110删除本地复制位图。具体的,当第一存储设备110将复制位图成功发送给第三存储设备130后,为了节省资源,第一存储设备110可以删除本地复制位图。需要说明的是,在图6所示的实施例中,还可以由第二存储设备120生成复制位图后发给第三存储设备130,在此不进行限定。在图6所示的实施例中,只需要由第一存储设备110或第二存储设备120生成一份复制位图即可,而不需要第一存储设备110和第二存储设备120均生成复制位图。
在步骤624中,第一存储设备110通知第二存储设备120开始接收主机的写数据命令。在步骤626中,第一存储设备110开始接收主机100的写数据命令。在步骤628中,第二存储设备120开始接收主机100的写数据命令。步骤624至步骤628分别与图4中的步骤420至步骤424类似,具体可以参见图4中步骤420至步骤424的相关描述。
在步骤630中,第三存储设备130根据所述复制位图向第一存储设备110发送第一获取请求。其中,第一获取请求中包含有第三存储设备130需要向所述第一存储设备110获取的数据的地址信息。步骤630与图5中步骤503类似,具体可以参见图5所示实施例中步骤503的相关描述。
在步骤632中,第三存储设备130接收第一存储设备110根据所述第一获取请求发送的数据。步骤632与图5中步骤506类似,具体可以参见图5所示实施例中步骤506的相关描述。
在步骤634中,第三存储设备130根据接收的数据更新所述复制位图。具体的,第三存储设备130可以根据接收的数据的地址信息更新所述复制位图。具体的,在更新复制位图时,可以将与已经复制完成的数据的地址对应的复制位图中的格子打上复制完成的标识,也可以将复制位图中与已复制完成的数据的地址对应的格子中的标识位删除。例如,可以将复制位图中与已复制完成的数据的地址对应的格子中的标识位“1”删除。实际应用中,第三存储设备130可以每接收一次数据就更新一次复制位图,在此不做限定。
在步骤636中,第三存储设备130根据所述复制位图向第二存储设备120发送第二获取请求。其中,第二获取请求中包含有第三存储设备130需要向所述第二存储设备120获取的数据的地址信息。需要说明的是,为了防止第一存储设备110和第二存储设备120复制的数据重复,所述第二获取请求要获取的数据与所述第一获取请求要获取的数据不同。该步骤与步骤504类似,具体可以参见步骤504的相关描述。
在步骤638中,第三存储设备130接收第二存储设备120根据第二获取请求返回的数据。在步骤640中,第三存储设备130根据接收的第二存储设备120发送的数据更新所述复制位图。步骤638至步骤640分别与步骤632至步骤634类似,具体可以参见步骤632至步骤634的相关描述。
需要说明的是,在本发明实施例中,步骤630至步骤634与步骤636至步骤640没有先后执行顺序之分,第三存储设备130可以分别同时向第一存储设备110和第二存储设备120的发送请求,以分别向第一存储设备110和第二存储设备120获取数据。
在步骤642中,第三存储设备130根据更新后的复制位图确定当前复制任务完成,则结束当前复制任务。在实际应用中,步骤630至步骤640可以循环执行,第三存储设备130每获取一次数据就可以向第一存储设备110或第二存储设备120发送一次获取请求,并根据接收的数据更新复制位图。当第三存储设备130根据更新后的复制位图确定需要复制的数据已经全部复制完成时,可以结束当前复制任务,不再向第一存储设备110或第二存储设备120发送获取请求。可以理解的是,当前复制任务完成后,第三存储设备130可以删除该复制位图。
在又一种情形下,若在复制的过程中,第三存储设备130确定第一存储设备110和第二存储设备120中任意一个存储设备出现了故障,则第三存储设备130可以向未出现故障的一个存储设备发送获取请求,请求第一存储设备110和第二存储设备120中未出现故障的一个存储设备将尚未复制的数据发送给第三存储设备130。可以理解的是,第三存储设备130确定第一存储设备110或第二存储设备120是否故障,可以通过设定时间内是否收到第一存储设备110或第二存储设备120的心跳信号来确定,也可以通过在设定时间内是否收到第一存储设备110或第二存储设备120发送的数据来确定,在此不对第三存储设备130如何确定第一存储设备110或第二存储设备120是否故障的方法进行限定。
由于在图6所示的实施例中,第三存储设备130可以同时向第一存储系统33中的第一存储设备110和第二存储设备120获取待复制的数据,因此,提高了链路复制带宽。并且,当第一存储系统33中的一个存储设备出现故障时,第三存储设备130可以继续向未出现故障的存储设备获取数据,使第一存储系统33的复制任务不会因为其中一个存储设备出现故障而中断,在提高复制效率的同时,进一步的增强了系统的稳定性。
需要说明的是,在上述实施例中,均是以第一存储设备110和第二存储设备120通过同步复制技术保持数据的一致性为例进行描述,实际应用中,第一存储设备110和第二存储设备120也可以通过异步复制保持存储的数据的一致性,只要在启动第一存储系统33对第二存储系统44的复制任务时,保证第一存储系统33中的第一存储设备110和第二存储设备120中存储有相同的数据即可。在此不做限定。
图7为本发明实施例提供的又一种存储系统的结构示意图,图7中所示的存储系统可以为图1所示的二级站点13中的第三存储设备130,下面仍然结合图1对图7中所示的存储系统进行描述。如图7所示,该存储系统70可以包括:
接收模块702,用于接收第一存储系统33中发送的复制信息,所述复制信息用于指示第一存储系统33在当前复制任务中需要复制到第三存储设备130的数据,其中,所述第一存储系统33中至少包括所述第一存储设备110以及第二存储设备120,第一存储设备110与第二存储设备120中存储有相同的数据。
发送模块704,用于根据所述复制信息向第一存储设备110发送第一获取请求,所述第一获取请求中包含有存储系统70在所述当前复制任务中需要向第一存储设备110获取的数据的信息。需要说明的是,在第一存储设备110包含有多个数据卷的情况下,所述第一获取请求中包含的要获取的数据的信息至少包括所述第一存储设备中的第一源数据卷的标识以及所述第一获取请求要获取的数据地址。其中,所述第一源数据卷存储有第一存储系统33在当前复制任务中需要复制到第三存储设备130的数据,
发送模块704,还用于根据所述复制信息向第二存储设备120发送第二获取请求,所述第二获取请求中包含有存储系统70在所述当前复制任务中需要向第二存储设备120获取的数据的信息,其中,所述第一获取请求要获取的数据与所述第二获取请求要获取的数据不同。需要说明的是,在第二存储设备120包含有多个数据卷的情况下,所述第二获取请求中包含的要获取的数据的信息至少包括所述第二存储设备中的第二源数据卷的标识以及所述第一获取请求要获取的数据地址。其中,所述第二源数据卷中存储有第一存储系统33在当前复制任务中需要复制到第三存储设备130的数据。所述第一源数据卷与所述第二源数据卷中存储的数据相同。
接收模块702,还用于接收所述第一存储设备根据所述第一获取请求发送的数据,以及接收所述第二存储设备根据所述第二获取请求发送的数据。
可以理解的是,复制信息可以是复制位图,复制位图可以根据第一存储系统33在所述当前复制任务开始时的差异位图获得,所述差异位图用于记录所述第一存储系统33在所述当前复制任务的前一个复制任务开始之后、并且在所述当前复制任务开始之前写入的数据的信息。
在又一种情形下,当所述第一存储设备110与所述第二存储设备120中均包含有多个数据卷时,接收模块70,还用于接收第一存储系统33发送的复制任务启动消息,所述复制任务启动消息中携带有所述第一源数据卷的标识以及根据所述第一源数据卷存储的数据确定的所述复制信息。存储系统70还可以包括:
消息处理模块708,用于根据所述第一源数据卷的标识以及预设的复制关系确定所述第二存储设备120中的第二源数据卷及所述第三存储设备130中的目标数据卷。其中,所述复制关系中包含有所述第一源数据卷、所述第二源数据卷与所述目标数据卷的对应关系,所述目标数据卷用于存储所述存储系统在所述当前复制任务中接收的数据。
在又一种情形下,存储系统70还可以包括:
确定模块706,用于根据所述复制信息以及存储系统70与第一存储设备110之间的链路带宽确定需要向第一存储设备110获取的数据,并根据所述复制信息以及存储系统70与第二存储设备120之间的链路带宽确定需要向第二存储设备120获取的数据。
发送模块704,具体可以用于根据确定模块706确定的所述需要向所述第一存储设备获取的数据向所述第一存储设备发送所述第一获取请求,并且根据确定模块706确定的所述需要向所述第二存储设备获取的数据向所述第二存储设备发送所述第二获取请求。
在又一种情形下,存储系统70还可以包括:
更新模块710,用于在所述当前复制任务的执行过程中,根据接收到的数据更新所述复制信息。
本发明实施例所提供的存储系统70可以执行图5-图6所述实施例所描述的数据复制方法,各个单元功能的详细描述可参见方法实施例中的描述,在此不再赘述。
可以理解的是,图7所示的实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个模块或组件可以结合或者可以集成到另一个设备中,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,模块的间接耦合或通信连接,可以是电性,机械或其它的形式。
作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部,模块来实现本实施例方案的目的。
本发明实施例还提供一种数据处理的计算机程序产品,包括存储了程序代码的计算机可读存储介质,所述程序代码包括的指令用于执行前述任意一个方法实施例所述的方法流程。本领域普通技术人员可以理解,前述的存储介质包括:U盘、移动硬盘、磁碟、光盘、随机存储器(Random-Access Memory,RAM)、固态硬盘(Solid State Disk,SSD)或者非易失性存储器(non-volatile memory)等各种可以存储程序代码的非短暂性的(non-transitory)机器可读介质。
需要说明的是,本申请所提供的实施例仅仅是示意性的。所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。在本发明实施例、权利要求以及附图中揭示的特征可以独立存在也可以组合存在。在本发明实施例中以硬件形式描述的特征可以通过软件来执行,反之亦然。在此不做限定。

Claims (39)

1.一种数据复制方法,所述方法应用于至少包括第一存储设备以及第二存储设备的存储系统中,其特征在于,包括:
第一存储系统确定复制信息,所述复制信息用于指示所述第一存储系统在当前复制任务中需要复制到第二存储系统的数据,其中,所述第一存储系统中的第一存储设备与第二存储设备存储有相同的数据;
所述第一存储系统根据所述复制信息确定第一复制子信息及第二复制子信息,其中,所述第一复制子信息用于指示在所述当前复制任务中需要由所述第一存储设备复制到所述第二存储系统的数据,所述第二复制子信息用于指示在所述当前复制任务中需要由所述第二存储设备复制到所述第二存储系统的数据,且所述第一复制子信息指示的数据与所述第二复制子信息指示的数据至少部分不同;
所述第一存储设备根据所述第一复制子信息将所述需要由所述第一存储设备复制到所述第二存储系统的数据复制到所述第二存储系统;
当所述第一存储设备根据所述第一复制子信息将所述需要由所述第一存储设备复制到所述第二存储系统的数据复制到所述第二存储系统时,所述第二存储设备根据所述第二复制子信息将所述需要由所述第二存储设备复制到所述第二存储系统的数据复制到所述第二存储系统。
2.根据权利要求1所述的数据复制方法,其特征在于,
所述第一存储设备根据所述第一复制子信息将所述需要由所述第一存储设备复制到所述第二存储系统的数据复制到所述第二存储系统包括:
所述第一存储设备根据所述第一复制子信息将第一源数据卷中存储的所述需要由所述第一存储设备复制到所述第二存储系统的数据复制到所述第二存储系统的目标数据卷中;
所述第二存储设备根据所述第二复制子信息将所述需要由所述第二存储设备复制到所述第二存储系统的数据复制到所述第二存储系统包括:
所述第二存储设备根据所述第二复制子信息将第二源数据卷中存储的所述需要由所述第二存储设备复制到所述第二存储系统的数据复制到所述第二存储系统的所述目标数据卷中;
其中,所述第一源数据卷中存储的数据与所述第二源数据卷中存储的数据相同。
3.根据权利要求2所述的数据复制方法,其特征在于,所述第一存储系统确定复制信息包括:
所述第一存储设备向所述第二存储设备发送复制任务启动消息,所述复制任务启动消息中携带有所述第一源数据卷的标识和所述目标数据卷的标识;
所述第二存储设备根据所述第一源数据卷的标识、所述目标数据卷的标识以及预设的复制关系确定所述第二存储设备中的所述第二源数据卷,其中,所述复制关系中包含有所述第一源数据卷、所述第二源数据卷与所述目标数据卷的对应关系;
所述第二存储设备根据确定的所述第二源数据卷中存储的数据确定所述复制信息;
所述第一存储设备根据所述第一源数据卷中存储的数据确定所述复制信息。
4.根据权利要求2所述的数据复制方法,其特征在于,所述第一存储系统确定复制信息包括:
所述第一存储系统中的所述第一存储设备根据所述第一源数据卷中存储的数据确定所述复制信息;
所述第一存储设备向所述第二存储设备发送复制任务启动消息,所述复制任务启动消息中携带有所述第一源数据卷的标识、目标数据卷的标识以及所述复制信息;
所述第二存储设备根据所述第一源数据卷的标识、目标数据卷的标识以及预设的复制关系确定与所述复制信息对应的第二源数据卷,其中,所述复制关系中包含有所述第一源数据卷、所述目标数据卷与所述第二源数据卷的对应关系。
5.根据权利要求1-4任意一项所述的数据复制方法,其特征在于,
所述第一存储系统根据所述复制信息确定第一复制子信息及第二复制子信息包括:所述第一存储设备根据所述复制信息以及预设的复制策略确定所述第一复制子信息;
所述第二存储设备根据所述复制信息以及所述复制策略确定所述第二复制子信息。
6.根据权利要求1-4任意一项所述的数据复制方法,其特征在于,所述第一存储系统根据所述复制信息确定第一复制子信息及第二复制子信息包括:
所述第一存储设备接收所述第二存储设备的复制协商请求,所述复制协商请求中至少包含有所述第二存储设备与所述第二存储系统的链路带宽信息;
所述第一存储设备根据所述链路带宽信息确定所述第一复制子信息以及所述第二复制子信息;
所述第一存储设备向所述第二存储设备发送所述第二复制子信息。
7.根据权利要求1-4任意一项所述的数据复制方法,其特征在于,所述复制信息由所述第一复制子信息以及所述第二复制子信息组成,所述方法还包括:
在所述当前复制任务的执行过程中,所述第一存储设备根据已复制完成的数据生成第一复制进度信息;
所述第一存储设备将所述第一复制进度信息发送给所述第二存储设备;
当所述第一存储设备故障时,所述第二存储设备根据所述第一复制进度信息、第二复制子信息以及所述复制信息确定所述第一存储设备尚未复制完成的数据;
所述第二存储设备将所述第一存储设备尚未复制完成的数据复制到所述第二存储系统。
8.根据权利要求1-4任意一项所述的数据复制方法,其特征在于,还包括:
在所述当前复制任务的执行过程中,所述第一存储设备根据已复制完成的数据更新所述第一复制子信息;
所述第二存储设备根据已复制完成的数据更新所述第二复制子信息。
9.一种数据复制方法,所述方法应用于存储系统中,其特征在于,包括:
第二存储系统接收第一存储系统发送的复制信息,所述复制信息用于指示所述第一存储系统在当前复制任务中需要复制到所述第二存储系统的数据,其中,所述第一存储系统中至少包括第一存储设备以及第二存储设备,所述第一存储设备与所述第二存储设备中存储有相同的数据;
所述第二存储系统根据所述复制信息向所述第一存储设备发送第一获取请求,所述第一获取请求中包含有所述第二存储系统在所述当前复制任务中需要向所述第一存储设备获取的数据的信息;
所述第二存储系统根据所述复制信息向所述第二存储设备发送第二获取请求,所述第二获取请求中包含有所述第二存储系统在所述当前复制任务中需要向所述第二存储设备获取的数据的信息,其中,所述第一获取请求要获取的数据与所述第二获取请求要获取的数据不同;
所述第二存储系统接收所述第一存储设备根据所述第一获取请求发送的数据;
当所述第二存储系统接收所述第一存储设备根据所述第一获取请求发送的数据时,所述第二存储系统接收所述第二存储设备根据所述第二获取请求发送的数据。
10.根据权利要求9所述的方法,其特征在于:
所述第一获取请求中包含的要获取的数据的信息至少包括所述第一存储设备中的第一源数据卷的标识以及所述第一获取请求要获取的数据地址;
所述第二获取请求中包含的要获取的数据的信息至少包括第二存储设备中的第二源数据卷的标识以及所述第二获取请求要获取的数据地址;
其中,所述第一源数据卷与所述第二源数据卷中均存储有所述第一存储系统在当前复制任务中需要复制到所述第二存储系统的数据,且所述第一源数据卷与所述第二源数据卷中存储的数据相同。
11.根据权利要求10所述的方法,其特征在于,
所述第二存储系统接收第一存储系统发送的复制信息包括:
所述第二存储系统接收所述第一存储系统发送的复制任务启动消息,所述复制任务启动消息中携带有所述第一源数据卷的标识以及根据所述第一源数据卷存储的数据确定的所述复制信息;
所述方法还包括:
所述第二存储系统根据所述第一源数据卷的标识以及预设的复制关系确定所述第二存储设备中的第二源数据卷及所述第二存储系统中的目标数据卷;
其中,所述复制关系中包含有所述第一源数据卷、所述第二源数据卷与所述目标数据卷的对应关系,所述目标数据卷用于存储所述第二存储系统在所述当前复制任务中接收的数据。
12.根据权利要求9-11任意一项所述的方法,其特征在于:
所述第二存储系统根据所述复制信息向所述第一存储设备发送第一获取请求包括:
所述第二存储系统根据所述复制信息以及所述第二存储系统与所述第一存储设备之间的链路带宽确定需要向所述第一存储设备获取的数据;
所述第二存储系统根据确定的所述需要向所述第一存储设备获取的数据向所述第一存储设备发送所述第一获取请求;
所述第二存储系统根据所述复制信息向所述第二存储设备发送第二获取请求包括:
所述第二存储系统根据所述复制信息以及所述第二存储系统与所述第二存储设备之间的链路带宽确定需要向所述第二存储设备获取的数据;
所述第二存储系统根据确定的所述需要向所述第二存储设备获取的数据向所述第二存储设备发送所述第二获取请求。
13.根据权利要求9-11任意一项所述的方法,其特征在于,还包括:
在所述当前复制任务的执行过程中,所述第二存储系统根据接收的数据更新所述复制信息。
14.一种存储系统,其特征在于,所述存储系统至少包括第一存储设备以及第二存储设备,所述第一存储设备与所述第二存储设备存储有相同的数据,其中:
所述存储系统,用于确定复制信息,所述复制信息用于指示所述存储系统在当前复制任务中需要复制到其他存储系统的数据;
所述存储系统,还用于根据所述复制信息确定第一复制子信息以及第二复制子信息,其中,所述第一复制子信息用于指示在所述当前复制任务中需要由所述第一存储设备复制到所述其他存储系统的数据,所述第二复制子信息用于指示在所述当前复制任务中需要由所述第二存储设备复制到所述其他存储系统的数据,且所述第一复制子信息指示的数据与所述第二复制子信息指示的数据至少部分不同;
所述第一存储设备,用于根据所述第一复制子信息将所述需要由所述第一存储设备复制到所述其他存储系统的数据复制到所述其他存储系统;
所述第二存储设备,用于当所述第一存储设备根据所述第一复制子信息将所述需要由所述第一存储设备复制到所述其他存储系统的数据复制到所述其他存储系统时,根据所述第二复制子信息将所述需要由所述第二存储设备复制到所述其他存储系统的数据复制到所述其他存储系统。
15.根据权利要求14所述的存储系统,其特征在于,
所述第一存储设备,用于根据所述第一复制子信息将第一源数据卷中存储的所述需要由所述第一存储设备复制到所述其他存储系统的数据复制到所述其他存储系统的目标数据卷中;
所述第二存储设备,用于根据所述第二复制子信息将第二源数据卷中存储的所述需要由所述第二存储设备复制到所述其他存储系统的数据复制到所述其他存储系统的所述目标数据卷中;
其中,所述第一源数据卷中存储的数据与所述第二源数据卷中存储的数据相同。
16.根据权利要求15所述的存储系统,其特征在于:
所述第一存储设备,还用于向所述第二存储设备发送复制任务启动消息,所述复制任务启动消息中携带有所述第一源数据卷的标识和所述目标数据卷的标识;
所述第二存储设备,还用于根据所述第一源数据卷的标识、所述目标数据卷的标识以及预设的复制关系确定所述第二存储设备中的所述第二源数据卷,并根据确定的所述第二源数据卷中存储的数据确定所述复制信息,其中,所述复制关系中包含有所述第一源数据卷、所述目标数据卷与所述第二源数据卷的对应关系;
所述第一存储设备,还用于根据所述第一源数据卷中存储的数据确定所述复制信息。
17.根据权利要求15所述的存储系统,其特征在于:
所述第一存储设备,还用于根据所述第一源数据卷中存储的数据确定所述复制信息,并向所述第二存储设备发送复制任务启动消息,所述复制任务启动消息中携带有所述第一源数据卷的标识、目标数据卷的标识以及所述复制信息;
所述第二存储设备,还用于据所述第一源数据卷的标识、目标数据卷的标识以及预设的复制关系确定与所述复制信息对应的第二源数据卷,其中,所述复制关系中包含有所述第一源数据卷、所述目标数据卷与所述第二源数据卷的对应关系。
18.根据权利要求14-17任意一项所述的存储系统,其特征在于:
所述第一存储设备,还用于根据复制信息以及预设的复制策略确定所述第一复制子信息;
所述第二存储设备,还用于根据所述复制信息以及所述复制策略确定所述第二复制子信息。
19.根据权利要求14-17任意一项所述的存储系统,其特征在于:
所述第一存储设备,还用于接收所述第二存储设备的复制协商请求,所述复制协商请求中至少包含有所述第二存储设备与所述其他存储系统的链路带宽信息,根据所述链路带宽信息确定所述第一复制子信息以及所述第二复制子信息,并向所述第二存储设备发送所述第二复制子信息。
20.根据权利要求14-17任意一项所述的存储系统,其特征在于,所述复制信息由所述第一复制子信息以及所述第二复制子信息组成,
所述第一存储设备,还用于在所述当前复制任务的执行过程中,根据已复制完成的数据生成第一复制进度信息,并将所述第一复制进度信息发送给所述第二存储设备;
所述第二存储设备,还用于当所述第一存储设备故障时,根据所述第一复制进度信息、第二复制子信息以及所述复制信息确定所述第一存储设备尚未复制完成的数据,并将所述第一存储设备尚未复制完成的数据复制到所述其他存储系统。
21.根据权利要求14-17任意一项所述的存储系统,其特征在于:
所述第一存储设备,还用于根据已复制完成的数据更新所述第一复制子信息;
所述第二存储设备,还用于根据已复制完成的数据更新所述第二复制子信息。
22.一种存储系统,其特征在于,包括:
接收模块,用于接收其他存储系统发送的复制信息,所述复制信息用于指示所述其他存储系统在当前复制任务中需要复制到所述存储系统的数据,其中,所述其他存储系统中至少包括第一存储设备以及第二存储设备,所述第一存储设备与所述第二存储设备中存储有相同的数据;
发送模块,用于根据所述复制信息向所述第一存储设备发送第一获取请求,所述第一获取请求中包含有所述存储系统在所述当前复制任务中需要向所述第一存储设备获取的数据的信息;
所述发送模块,还用于根据所述复制信息向所述第二存储设备发送第二获取请求,所述第二获取请求中包含有所述存储系统在所述当前复制任务中需要向所述第二存储设备获取的数据的信息,其中,所述第一获取请求要获取的数据与所述第二获取请求要获取的数据不同;
所述接收模块,还用于接收所述第一存储设备根据所述第一获取请求发送的数据,以及当接收所述第一存储设备根据所述第一获取请求发送的数据时,接收所述第二存储设备根据所述第二获取请求发送的数据。
23.根据权利要求22所述的存储系统,其特征在于:
所述第一获取请求中包含的要获取的数据的信息至少包括所述第一存储设备中的第一源数据卷的标识以及所述第一获取请求要获取的数据地址;
所述第二获取请求中包含的要获取的数据的信息至少包括第二存储设备中的第二源数据卷的标识以及所述第二获取请求要获取的数据地址;
其中,所述第一源数据卷与所述第二源数据卷中均存储有所述其他存储系统在当前复制任务中需要复制到所述存储系统的数据,且所述第一源数据卷与所述第二源数据卷中存储的数据相同。
24.根据权利要求23所述的存储系统,其特征在于:
所述接收模块,还用于接收所述其他存储系统发送的复制任务启动消息,所述复制任务启动消息中携带有所述第一源数据卷的标识以及根据所述第一源数据卷存储的数据确定的所述复制信息;
所述存储系统还包括:
消息处理模块,用于根据所述第一源数据卷的标识以及预设的复制关系确定所述第二存储设备中的第二源数据卷及所述存储系统中的目标数据卷;
其中,所述复制关系中包含有所述第一源数据卷、所述第二源数据卷与所述目标数据卷的对应关系,所述目标数据卷用于存储所述存储系统在所述当前复制任务中接收的数据。
25.根据权利要求22-24任意一项所述的存储系统,其特征在于,还包括:
确定模块,用于根据所述复制信息以及所述存储系统与所述第一存储设备之间的链路带宽确定需要向所述第一存储设备获取的数据,并根据所述复制信息以及所述存储系统与所述第二存储设备之间的链路带宽确定需要向所述第二存储设备获取的数据;
所述发送模块,具体用于根据所述确定模块确定的所述需要向所述第一存储设备获取的数据向所述第一存储设备发送所述第一获取请求,并且根据所述确定模块确定的所述需要向所述第二存储设备获取的数据向所述第二存储设备发送所述第二获取请求。
26.根据权利要求22-24任意一项所述的存储系统,其特征在于,还包括:
更新模块,用于在所述当前复制任务的执行过程中,根据接收到的数据更新所述复制信息。
27.一种存储系统,其特征在于,包括控制器和存储器,其中:
所述存储器,用于存储其他存储系统发送的数据;
所述控制器包括:
通信接口,用于与所述其他存储系统进行通信;
内存,用于存储计算机执行指令;
处理器,用于运行所述计算机执行指令,执行如权利要求9-13任意一项所述的方法。
28.一种数据复制方法,所述方法应用于第一存储系统中,所述第一存储系统至少包括第一存储设备以及第二存储设备,所述第一存储设备与所述第二存储设备中存储有相同的数据,其特征在于,所述方法包括:
所述第一存储系统确定第一复制子信息及第二复制子信息,其中,所述第一复制子信息用于指示在当前复制任务中需要由所述第一存储设备复制到第二存储系统的数据,所述第二复制子信息用于指示在所述当前复制任务中需要由所述第二存储设备复制到所述第二存储系统的数据,且所述第一复制子信息指示的数据与所述第二复制子信息指示的数据至少部分不同;
所述第一存储设备根据所述第一复制子信息将所述需要由所述第一存储设备复制到所述第二存储系统的数据复制到所述第二存储系统;
当所述第一存储设备根据所述第一复制子信息将所述需要由所述第一存储设备复制到所述第二存储系统的数据复制到所述第二存储系统时,所述第二存储设备根据所述第二复制子信息将所述需要由所述第二存储设备复制到所述第二存储系统的数据复制到所述第二存储系统。
29.根据权利要求28所述的数据复制方法,其特征在于,
所述第一存储设备根据所述第一复制子信息将所述需要由所述第一存储设备复制到所述第二存储系统的数据复制到所述第二存储系统包括:
所述第一存储设备根据所述第一复制子信息将第一源数据卷中存储的所述需要由所述第一存储设备复制到所述第二存储系统的数据复制到所述第二存储系统的目标数据卷中;
所述第二存储设备根据所述第二复制子信息将所述需要由所述第二存储设备复制到所述第二存储系统的数据复制到所述第二存储系统包括:
所述第二存储设备根据所述第二复制子信息将第二源数据卷中存储的所述需要由所述第二存储设备复制到所述第二存储系统的数据复制到所述第二存储系统的所述目标数据卷中;
其中,所述第一源数据卷中存储的数据与所述第二源数据卷中存储的数据相同。
30.根据权利要求28或29所述的数据复制方法,其特征在于,所述第一存储系统确定第一复制子信息及第二复制子信息包括:
所述第一存储设备根据所述第一存储系统在当前复制任务中需要复制到所述第二存储系统的数据以及预设的复制策略确定所述第一复制子信息;
所述第二存储设备根据所述第一存储系统在当前复制任务中需要复制到所述第二存储系统的数据以及所述复制策略确定所述第二复制子信息。
31.根据权利要求28或29所述的数据复制方法,其特征在于,所述第一存储系统确定第一复制子信息及第二复制子信息包括:
所述第一存储设备接收所述第二存储设备的复制协商请求,所述复制协商请求中至少包含有所述第二存储设备与所述第二存储系统的链路带宽信息;
所述第一存储设备根据所述链路带宽信息确定所述第一复制子信息以及所述第二复制子信息;
所述第一存储设备向所述第二存储设备发送所述第二复制子信息。
32.根据权利要求28或29所述的数据复制方法,其特征在于,所述当前复制任务的复制信息由所述第一复制子信息和所述第二复制子信息组成,所述复制信息用于指示所述第一存储系统在当前复制任务中需要复制到第二存储系统的数据,所述方法还包括:
在所述当前复制任务的执行过程中,所述第一存储设备根据已复制完成的数据生成第一复制进度信息;
所述第一存储设备将所述第一复制进度信息发送给所述第二存储设备;
当所述第一存储设备故障时,所述第二存储设备根据所述第一复制进度信息、第二复制子信息以及所述复制信息确定所述第一存储设备尚未复制完成的数据;
所述第二存储设备将所述第一存储设备尚未复制完成的数据复制到所述第二存储系统。
33.根据权利要求28或29所述的数据复制方法,其特征在于,还包括:
在所述当前复制任务的执行过程中,所述第一存储设备根据已复制完成的数据更新所述第一复制子信息;
所述第二存储设备根据已复制完成的数据更新所述第二复制子信息。
34.一种存储系统,其特征在于,所述存储系统至少包括第一存储设备以及第二存储设备,所述第一存储设备与所述第二存储设备存储有相同的数据,其中:
所述存储系统,用于确定第一复制子信息及第二复制子信息,其中,所述第一复制子信息用于指示在当前复制任务中需要由所述第一存储设备复制到第二存储系统的数据,所述第二复制子信息用于指示在所述当前复制任务中需要由所述第二存储设备复制到所述第二存储系统的数据,且所述第一复制子信息指示的数据与所述第二复制子信息指示的数据至少部分不同;
所述第一存储设备,用于根据所述第一复制子信息将所述需要由所述第一存储设备复制到所述第二存储系统的数据复制到所述第二存储系统;
所述第二存储设备,用于当所述第一存储设备根据所述第一复制子信息将所述需要由所述第一存储设备复制到所述第二存储系统的数据复制到所述第二存储系统时,根据所述第二复制子信息将所述需要由所述第二存储设备复制到所述第二存储系统的数据复制到所述第二存储系统。
35.根据权利要求34所述的存储系统,其特征在于:
所述第一存储设备,用于根据所述第一复制子信息将第一源数据卷中存储的所述需要由所述第一存储设备复制到所述第二存储系统的数据复制到所述第二存储系统的目标数据卷中;
所述第二存储设备,用于根据所述第二复制子信息将第二源数据卷中存储的所述需要由所述第二存储设备复制到所述第二存储系统的数据复制到所述第二存储系统的所述目标数据卷中;
其中,所述第一源数据卷中存储的数据与所述第二源数据卷中存储的数据相同。
36.根据权利要求34或35所述的存储系统,其特征在于:
所述第一存储设备,用于根据所述第一存储系统在当前复制任务中需要复制到所述第二存储系统的数据以及预设的复制策略确定所述第一复制子信息;
所述第二存储设备,用于根据所述第一存储系统在当前复制任务中需要复制到所述第二存储系统的数据以及所述复制策略确定所述第二复制子信息。
37.根据权利要求34或35所述的存储系统,其特征在于,所述第一存储设备用于:
接收所述第二存储设备的复制协商请求,所述复制协商请求中至少包含有所述第二存储设备与所述第二存储系统的链路带宽信息;
根据所述链路带宽信息确定所述第一复制子信息以及所述第二复制子信息;
向所述第二存储设备发送所述第二复制子信息。
38.根据权利要求34或35所述的存储系统,其特征在于,所述当前复制任务的复制信息由所述第一复制子信息和所述第二复制子信息组成,所述复制信息用于指示所述第一存储系统在当前复制任务中需要复制到第二存储系统的数据,
所述第一存储设备还用于:
在所述当前复制任务的执行过程中,根据已复制完成的数据生成第一复制进度信息;
将所述第一复制进度信息发送给所述第二存储设备;
所述第二存储设备还用于:
当所述第一存储设备故障时,根据所述第一复制进度信息、第二复制子信息以及所述复制信息确定所述第一存储设备尚未复制完成的数据;
将所述第一存储设备尚未复制完成的数据复制到所述第二存储系统。
39.根据权利要求34或35所述的存储系统,其特征在于:
所述第一存储设备,还用于在所述当前复制任务的执行过程中,根据已复制完成的数据更新所述第一复制子信息;
所述第二存储设备,还用于在所述当前复制任务的执行过程中,根据已复制完成的数据更新所述第二复制子信息。
CN201610234950.XA 2013-12-12 2013-12-12 数据复制方法及存储系统 Active CN105988901B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610234950.XA CN105988901B (zh) 2013-12-12 2013-12-12 数据复制方法及存储系统

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN201610234950.XA CN105988901B (zh) 2013-12-12 2013-12-12 数据复制方法及存储系统
CN201380002271.4A CN103814360B (zh) 2013-12-12 2013-12-12 数据复制方法及存储系统

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
CN201380002271.4A Division CN103814360B (zh) 2013-12-12 2013-12-12 数据复制方法及存储系统

Publications (2)

Publication Number Publication Date
CN105988901A CN105988901A (zh) 2016-10-05
CN105988901B true CN105988901B (zh) 2019-06-18

Family

ID=57046860

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610234950.XA Active CN105988901B (zh) 2013-12-12 2013-12-12 数据复制方法及存储系统

Country Status (1)

Country Link
CN (1) CN105988901B (zh)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112068992A (zh) * 2016-10-28 2020-12-11 华为技术有限公司 一种远程数据复制方法、存储设备及存储系统
CN109962797B (zh) * 2017-12-23 2022-01-11 华为技术有限公司 一种存储系统和推送业务视图的方法
CN108363551A (zh) * 2018-01-16 2018-08-03 长沙开雅电子科技有限公司 一种存储系统复制链路流量控制实现方法
CN109062735B (zh) * 2018-08-02 2022-04-26 郑州云海信息技术有限公司 一种存储系统的容灾方法、存储系统和相关装置
CN110119329B (zh) * 2019-02-27 2024-02-23 咪咕音乐有限公司 数据复制容灾方法及容灾系统
CN110764928A (zh) * 2019-10-15 2020-02-07 维沃移动通信有限公司 一种粘贴方法及电子设备

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101038565A (zh) * 2006-03-17 2007-09-19 国际商业机器公司 用于管理存储系统之间的数据拷贝的系统和方法
CN101067796A (zh) * 2007-06-07 2007-11-07 华为技术有限公司 镜像恢复方法、存储设备及网络系统
CN102236588A (zh) * 2010-04-23 2011-11-09 阿里巴巴集团控股有限公司 数据远程备份方法、设备及系统
CN102567145A (zh) * 2011-12-28 2012-07-11 云海创想信息技术(无锡)有限公司 一种远程拷贝方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101038565A (zh) * 2006-03-17 2007-09-19 国际商业机器公司 用于管理存储系统之间的数据拷贝的系统和方法
CN101067796A (zh) * 2007-06-07 2007-11-07 华为技术有限公司 镜像恢复方法、存储设备及网络系统
CN102236588A (zh) * 2010-04-23 2011-11-09 阿里巴巴集团控股有限公司 数据远程备份方法、设备及系统
CN102567145A (zh) * 2011-12-28 2012-07-11 云海创想信息技术(无锡)有限公司 一种远程拷贝方法

Also Published As

Publication number Publication date
CN105988901A (zh) 2016-10-05

Similar Documents

Publication Publication Date Title
US11734306B2 (en) Data replication method and storage system
CN105988901B (zh) 数据复制方法及存储系统
US8738813B1 (en) Method and apparatus for round trip synchronous replication using SCSI reads
US9256605B1 (en) Reading and writing to an unexposed device
US9740572B1 (en) Replication of xcopy command
JP6344798B2 (ja) データ送信方法、データ受信方法、及びストレージデバイス
US9471579B1 (en) Replicating selected snapshots from one storage array to another, with minimal data transmission
US9189341B1 (en) Method and apparatus for multi-copy replication using a multi-splitter
US10042579B1 (en) Crash consistent snapshot
US8924668B1 (en) Method and apparatus for an application- and object-level I/O splitter
CN103793271B (zh) 用于在镜像卷之间进行切换的方法和系统
CN109074297A (zh) 在同步复制的数据集中启用数据完整性检查和更快的应用恢复
US20050071393A1 (en) Data storage subsystem
CN105339929A (zh) 选择用于取消重复数据的存储
JP2006209775A (ja) データ追跡を有するストレージ複製システム
JP2007183930A (ja) 異なるコピー技術を用いてデータをミラーリングするときの整合性の維持
JP2016513306A (ja) データ格納方法、データストレージ装置、及びストレージデバイス
CN108351821A (zh) 数据恢复方法及存储设备
US10725967B1 (en) Continuous data protection snapshots
KR20040110977A (ko) 싸이트간 데이타 미러링을 위한 방법, 시스템, 및 기록 매체
JP2011505033A (ja) ストレージ・コピー・サービス・システムを管理する装置および方法
EP3896571B1 (en) Data backup method, apparatus and system
US9015433B2 (en) Resiliency with a destination volume in a replication environment
US11194500B2 (en) Resilient implementation of client file operations and replication
EP2372552B1 (en) Automated relocation of in-use multi-site protected data storage

Legal Events

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