CN103649901A - 数据发送方法、数据接收方法和存储设备 - Google Patents

数据发送方法、数据接收方法和存储设备 Download PDF

Info

Publication number
CN103649901A
CN103649901A CN201380001270.8A CN201380001270A CN103649901A CN 103649901 A CN103649901 A CN 103649901A CN 201380001270 A CN201380001270 A CN 201380001270A CN 103649901 A CN103649901 A CN 103649901A
Authority
CN
China
Prior art keywords
numbering
written
data
address information
memory device
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
CN201380001270.8A
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 CN103649901A publication Critical patent/CN103649901A/zh
Pending legal-status Critical Current

Links

Images

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/2094Redundant storage or storage 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/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
    • 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/2064Error 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 while ensuring consistency
    • 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/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/1458Management of the backup or restore process
    • G06F11/1464Management of the backup or restore process for networked environments
    • 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/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
    • 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
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/82Solving problems relating to consistency
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/84Using snapshots, i.e. a logical point-in-time copy of the data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/885Monitoring specific for caches
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1032Reliability improvement, data loss prevention, degraded operation etc
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/46Caching storage objects of specific type in disk cache
    • G06F2212/466Metadata, control data

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Human Computer Interaction (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Computer Security & Cryptography (AREA)
  • Retry When Errors Occur (AREA)

Abstract

本发明实施例提供了一种数据发送方法、接收方法和存储设备,包括:第一存储设备接收主机发送的第一写数据请求,所述第一写数据请求携带待写入数据和地址信息;将所述待写入数据和地址信息增加第一编号,写入缓存,其中所述第一编号为当前时间片编号;从所述缓存中读取所述第一编号对应的所述待写入数据和地址信息;修改所述当前时间片编号以标识后续写数据请求携带的信息;将所述待写入数据和地址信息发送给第二存储设备。可以提高数据复制的效率。

Description

数据发送方法、数据接收方法和存储设备
技术领域
本发明涉及存储技术,尤其涉及一种数据发送方法、数据接收方法和存储设备。
背景技术
数据容灾,又称为远程数据复制技术,是指建立一个异地的数据系统,该系统是本地数据的一个可用复制。在本地数据及整个应用系统出现灾难时,系统至少在异地保存有一份可用的关键业务的数据。
典型的数据容灾系统包括生产中心和灾备中心。在生产中心,部署有主机、存储阵列,用于正常的业务运行;在灾备中心,部署有主机、存储阵列,用于在生产中心发生灾难后,接管其业务。其中,生产中心或灾备中心的存储阵列均包含多个数据卷,数据卷是物理存储空间映射而成的一段逻辑存储空间。生产中心的业务产生的数据写入生产阵列后,可以经容灾链路复制到灾备中心,写入灾备阵列。为了保证灾难发生后,灾备中心的数据能够支撑业务接管,复制到灾备阵列的数据必须保证一致性(consistency)。保证数据一致性本质上是指,有依赖关系的写数据请求,该依赖关系需要得到保证。应用程序、操作系统、数据库都内在地依靠这种写数据请求的依赖关系的逻辑来运行其业务,例如:先完成写数据请求1,再完成写数据请求2,顺序是固定的。也就是说,系统会确保写数据请求1完全返回成功后,才会下发写数据请求2。由此,才能实现当出现故障导致执行过程中断时,可以依靠固有的办法来恢复业务。否则,可能会出现这样的情况,例如:在读取数据时,可以读到写数据请求2存储的数据,却读不到写数据请求1存储的数据,这将导致业务无法恢复。
在现有技术中,可以利用快照技术解决这个问题。快照是数据在某个时间点(拷贝开始的时间点)的映像。快照的目的是为数据卷创建一个在特定时间点的状态视图,通过这个视图只可以看到数据卷在创建时刻的数据,在此时间点之后数据卷的修改(有新的数据写入),不会反映在快照视图中。利用这个快照视图,就可以做数据的复制。对于生产中心而言,由于快照数据是“静止的”,因此生产中心可以在将各个时间点的数据增加快照之后,再将快照数据复制到灾备中心,既可以完成远程数据复制,也不会影响在生产中心继续执行写数据请求。对于灾备中心而言,也可以满足数据一致性的要求。例如,写数据请求2的数据成功复制到灾备中心,写数据请求1的数据没有成功复制,可以利用写数据请求2之前的快照数据,将灾备中心的数据恢复到之前的状态。
由于生产中心在执行写数据请求的时候要进行快照处理,将生成的快照数据保存在专门用于存储快照数据的数据卷中,因此生产中心在将快照数据复制到灾备中心时,需要先将数据卷中存储的快照数据读到缓存,然后再发送给灾备中心。然而,用于生成快照数据的数据可能还存在缓存中,但这部分数据不能被合理利用,每次复制都需要先到数据卷中读取快照数据,导致数据复制的时间较长,效率较低。
发明内容
本发明实施例提供了一种数据发送方法,可以直接从第一存储设备的缓存中将写数据请求携带的信息发送给第二存储设备,提高了数据复制的效率。
本发明实施例第一方面提供了一种数据发送方法,包括:
第一存储设备接收主机发送的第一写数据请求,所述第一写数据请求携带待写入数据和地址信息;
将所述待写入数据和地址信息增加第一编号,写入缓存,其中所述第一编号为当前时间片编号;
从所述缓存中读取所述第一编号对应的所述待写入数据和地址信息;
修改所述当前时间片编号以标识后续写数据请求携带的信息;
将所述待写入数据和地址信息发送给第二存储设备。
在本发明实施例第一方面的第一种可能的实现方式中,所述第一编号用于标识当前的复制任务;所述方法还包括:
记录第二编号,所述第二编号是当前的复制任务之前,最近一次已完成的复制任务对应的编号。
结合本发明实施例第一方面的第一种实现方式,第一方面的第二种可能的实现方式还包括:
从所述缓存中读取所述第二编号之后,所述第一编号之前的编号对应的待写入数据和地址信息;
将所述第二编号之后,所述第一编号之前的编号对应的待写入数据和地址信息发送给所述第二存储设备。
本发明实施例第一方面的第三种可能的实现方式,还包括:记录当前时间片编号,所述当前时间片编号用于生成所述第一编号。
本发明实施例第二方面提供了一种数据接收方法,包括:
第二存储设备接收第一存储设备发送的地址信息;
当确定所述第一存储设备故障时,所述第二存储设备根据所述地址信息,获取第一编号对应的待写入数据,所述第一编号对应的地址信息与所述接收到的地址信息相同,所述第一编号为当前时间片编号之前的编号;
将所述第一编号对应的待写入数据和地址信息增加第二编号,写入缓存。
在本发明实施例第二方面的第一种可能的实现方式中,还包括:记录所述当前时间片编号,所述当前时间片编号用于生成所述第二编号。
在本发明实施例第二方面的第二种可能的实现方式中,还包括:
接收主机发送的读数据请求,所述读数据请求包含所述接收到的地址信息;
确定所述接收到的地址信息对应的最新的编号是所述第二编号;
将所述第二编号对应的待写入数据发送给所述主机。
本发明实施例第三方面提供了一种存储设备,包括:
接收模块,用于接收主机发送的第一写数据请求,所述第一写数据请求携带待写入数据和地址信息;
读写模块,用于将所述待写入数据和地址信息增加第一编号,写入缓存,其中所述第一编号为当前时间片编号;从所述缓存中读取所述第一编号对应的所述待写入数据和地址信息;
当前时间片编号管理器,用于修改所述当前时间片编号以标识后续写数据请求携带的信息;
发送模块,用于将所述待写入数据和地址信息发送给第二存储设备。
在本发明实施例第三方面的第一种可能的实现方式中,所述第一编号用于标识当前的复制任务;
所述当前时间片编号管理器,还用于记录第二编号,所述第二编号是当前的复制任务之前,最近一次已完成的复制任务对应的编号。
结合本发明实施例第三方面的第一种实现方式,在第三方面的第二种可能的实现方式中:所述读写模块,还用于从所述缓存中读取所述第二编号之后,所述第一编号之前的编号对应的待写入数据和地址信息;
所述发送模块,还用于将所述第二编号之后,所述第一编号之前的编号对应的待写入数据和地址信息发送给所述第二存储设备。
在本发明实施例第三方面的第三种可能的实现方式中,所述当前时间片编号管理器,还用于记录当前时间片编号,所述当前时间片编号用于生成所述第一编号。
本发明实施例第四方面提供了一种存储设备,包括:
接收模块,用于接收第一存储设备发送的地址信息;
查找模块,用于当确定所述第一存储设备故障时,所述第二存储设备根据所述地址信息,获取第一编号对应的待写入数据,所述第一编号对应的地址信息与所述接收到的地址信息相同,所述第一编号为当前时间片编号之前的编号;
写入模块,用于将所述第一编号对应的待写入数据和地址信息增加第二编号,写入缓存。
在本发明实施例第四方面的第一种可能的实现方式中,还包括:
当前时间片编号管理器,用于记录所述当前时间片编号,所述当前时间片编号用于生成所述第二编号。
在本发明实施例第四方面的第二种可能的实现方式中,所述接收模块,还用于接收主机发送的读数据请求,所述读数据请求包含所述接收到的地址信息;
所述查找模块,还用于确定所述接收到的地址信息对应的最新的编号是所述第二编号;
所述存储设备还包括发送模块,所述发送模块用于将所述第二编号对应的待写入数据发送给所述主机。
本发明实施例第五方面提供了一种存储设备,包括:处理器、存储器和通信总线;
其中,所述处理器和所述存储器通过所述通信总线进行通信;
所述存储器用于保存程序;
所述处理器用于执行所述程序,以实现:
接收主机发送的第一写数据请求,所述第一写数据请求携带待写入数据和地址信息;将所述待写入数据和地址信息增加第一编号,写入缓存,其中所述第一编号为当前时间片编号;从所述缓存中读取所述第一编号对应的所述待写入数据和地址信息;修改所述当前时间片编号以标识后续写数据请求携带的信息;将所述待写入数据和地址信息发送给第二存储设备。
在本发明实施例第五方面的第一种可能的实现方式中,所述第一编号用于标识当前的复制任务;所述处理器还用于:
记录第二编号,所述第二编号是当前的复制任务之前,最近一次已完成的复制任务对应的编号。
结合本发明实施例第五方面的第一种实现方式,在第五方面的第二种可能的实现方式中,所述处理器还用于:从所述缓存中读取所述第二编号之后,所述第一编号之前的编号对应的待写入数据和地址信息;将所述第二编号之后,所述第一编号之前的编号对应的待写入数据和地址信息发送给所述第二存储设备。
在本发明实施例第五方面的第三种可能的实现方式中,所述处理器还用于:记录当前时间片编号,所述当前时间片编号用于生成所述第一编号。
本发明实施例第六方面提供了一种存储设备,包括:处理器、存储器和通信总线;
其中,所述处理器和所述存储器通过所述通信总线进行通信;
所述存储器用于保存程序;
所述处理器用于执行所述程序,以实现:
接收第一存储设备发送的地址信息;
当确定所述第一存储设备故障时,所述第二存储设备根据所述地址信息,获取第一编号对应的待写入数据,所述第一编号对应的地址信息与所述接收到的地址信息相同,所述第一编号为当前时间片编号之前的编号;
将所述第一编号对应的待写入数据和地址信息增加第二编号,写入缓存。
在本发明实施例第六方面的第一种可能的实现方式中,所述处理器还用于记录所述当前时间片编号,所述当前时间片编号用于生成所述第二编号。
在本发明实施例第六方面的第二种可能的实现方式中,所述处理器还用于接收主机发送的读数据请求,所述读数据请求包含所述接收到的地址信息;确定所述接收到的地址信息对应的最新的编号是所述第二编号;将所述第二编号对应的待写入数据发送给所述主机。
本发明实施例中,第一存储设备在接收主机发送的写数据请求后,所述写数据请求携带的信息包括待写入数据和地址信息,在待写入数据和地址信息中增加第一编号,写入缓存,第一编号为当前时间片编号,在复制任务触发时,从缓存中读取第一编号对应的待写入数据和地址信息,发送给第二存储设备,另外,在复制任务触发时,修改当前时间片编号,使得第一存储设备在后续接收写数据请求时,在其携带的信息中增加与修改后的当前时间片编号相同的编号,由此在缓存中将需要发送给第二存储设备的写数据请求携带的信息,与第一存储设备正在接收的写数据请求携带的信息区分开来,实现了直接从缓存中将写数据请求携带的信息发送给第二存储设备,由于信息是直接从缓存中发送的,不需要从数据卷中读取数据,因此数据复制的时间较短,提高了数据复制的效率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种数据发送方法的应用网络架构示意图;
图2为本发明实施例提供的一种数据发送方法的流程图;
图3为本发明实施例提供的一种数据接收方法的流程图;
图4为本发明实施例提供的一种数据发送方法的信令图;
图5为本发明实施例提供的一种存储设备的结构示意图;
图6为本发明实施例提供的另一种存储设备的结构示意图;
图7为本发明实施例提供的再一种存储设备的结构示意图;
图8为本发明实施例提供的又一种存储设备的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例提供的数据发送方法可以在存储设备中实现。图1为本发明实施例提供的数据发送方法的系统架构示意图,如图1所示,生产中心包括生产主机、连接设备和生产阵列(对应下面实施例的第一存储设备);灾备中心的系统架构与生产中心类似,包括灾备主机、连接设备和灾备阵列(对应下面实施例的第二存储设备)。在本发明实施例中,灾备中心可以不止一个。其中,生产中心与灾备中心可以通过IP(Internet Protocol)或者FC(Fiber Chanel)进行数据传输。生产中心和灾备中心之间可以有一个控制中心,所述控制中心可以部署在生产中心侧,也可以部署在灾备中心侧,还可以部署在生产中心和灾备中心之间的第三方设备中。所述控制中心用于当生产阵列发生故障时,向灾备阵列发出信号让其接替生产阵列处理主机业务。
生产主机和灾备主机均可以是当前技术已知的任何计算设备,如服务器、台式计算机等等。在主机内部,安装有操作系统以及其他应用程序。
连接设备可以包括当前技术已知的存储设备和主机之间的任何接口,如光纤交换机,或者其他现有的交换机。
生产阵列和灾备阵列均可以是当前技术已知的存储设备,如独立磁盘冗余阵列(Redundant Arrays of Inexpensive Disks,RAID)、磁盘簇(Just a Bunch Of Disks,JBOD)、直接存取存储器(Direct Access Storage Device,DASD)的一个或多个互连的磁盘驱动器,诸如磁带库、一个或多个存储单元的磁带存储设备。
生产阵列的存储空间可以包括多个数据卷,数据卷是由物理存储空间映射而成的一段逻辑存储空间,例如,数据卷可以是逻辑单元(Logic Unit Number,LUN),也可以是文件系统。在本发明实施例中,灾备阵列的结构和生产阵列类似。
请参考图1,图1是本发明一种数据发送方法的实施例,本发明实施例应用在第一存储设备中,其中,第一存储设备包括控制器、高速缓冲存储器(以下简称缓存或cache)和存储介质。其中,控制器是第一存储设备的处理器,用于执行IO命令以及其他数据业务;缓存是存在于控制器与硬盘之间的存储器,容量较硬盘小但速度比硬盘高得多;存储介质是第一存储设备主要的存储器,通常情况下是指非易失性存储介质,例如,磁盘,在本发明实施例中将第一存储设备包含的物理存储空间都称为存储介质。具体执行下述步骤的可以是第一存储设备中的控制器。
步骤S101:第一存储设备接收主机发送的第一写数据请求,所述第一写数据请求携带待写入数据和地址信息。
其中,地址信息可以包括逻辑块地址(Logic Unit Address,LBA),当第一存储设备中包含多个数据卷时,地址信息还可以包括第一存储设备的数据卷的ID。
步骤S102:将所述待写入数据和地址信息增加第一编号,写入缓存,其中所述第一编号为当前时间片编号。
在第一存储设备中可以包含一个当前时间片编号管理器,所述当前时间片编号管理器中保存有当前时间片编号,当前时间片编号可以用数值表示,例如0、1、2,也可以用字母表示,例如a、b、c,在此不做限定。
当接收到第一写数据请求时,在第一写数据请求携带的待写入数据和地址信息中增加第一编号,所述第一编号是由当前时间片编号赋值给它的。
在第一写数据请求携带的信息中增加第一编号后,再将修改后的第一写数据请求携带的信息写入缓存,使得第一写数据请求携带的待写入数据、地址信息和第一编号都保存在缓存中。
另外,在一段时间内,还可以接收到其他写数据请求,同样需要在其携带的信息中增加第一编号,并写入缓存。需要说明的是在当前时间片编号改变之前,在写数据请求携带的信息中增加的都是第一编号。
步骤S103:从所述缓存中读取所述第一编号对应的所述待写入数据和地址信息。
当复制任务触发时,第一存储设备可以从缓存中将第一编号对应的待写入数据和地址信息读取出来,可以理解的是,第一编号对应的待写入数据和地址信息可以不止一条。
复制任务是指第一存储设备将一段时间内一个数据卷接收到的写数据请求携带的信息发送给第二存储设备,这些写数据请求携带的信息都被增加了与当前时间片编号相同的编号。复制任务触发可以是由定时器触发,也可以是人为触发,在此不做限定。复制的目的是将第一存储设备接收的写数据请求携带的待写入数据发送给第二存储设备存储,使得第一存储设备故障时,第二存储设备可以接替第一存储设备工作。可以理解的是,写数据请求携带的地址信息(例如LBA)也需要发送给第二存储设备,所述LBA用于指示第二存储设备存储待写入数据的地址。由于第二存储设备具有与第一存储设备相同的物理结构,因此适用于第一存储设备的LBA,也适用于第二存储设备。
在本发明实施例中,复制任务是针对第一存储设备的一个数据卷而言的,当第一存储设备包含多个数据卷时,每个数据卷对应的一个复制任务。
步骤S104:修改所述当前时间片编号以标识后续写数据请求携带的信息。
当复制任务触发时,当前时间片编号管理器需要修改当前时间片编号,当接收到后续写数据请求时,则后续的写数据请求携带的信息则需增加另一个编号,所述另一个编号是由修改后的当前时间片编号赋值给它的。由此,可以在缓存中将需要发送给第二存储设备的写数据请求携带的信息,与第一存储设备正在接收的写数据请求携带的信息区分开来。
需要说明的是,步骤S103和步骤S104之间没有先后顺序之分。
步骤S105:将所述待写入数据和地址信息发送给第二存储设备。
第一存储设备将从缓存中读取的第一编号对应的待写入数据和地址信息,发送给第二设备。
具体的,第一存储设备可以将读取到的所有的待写入数据和地址信息直接发送给第二存储设备;也可以在获得第二存储设备的数据卷的ID后,根据每一个写数据请求携带的待写入数据和地址信息,以及第二存储设备的数据卷的ID,分别生成新的写数据请求,再发送给第二存储设备。
本发明实施例中,第一存储设备在接收主机发送的写数据请求后,所述写数据请求携带的信息包括待写入数据和地址信息,在待写入数据和地址信息中增加第一编号,写入缓存,第一编号为当前时间片编号,在复制任务触发时,从缓存中读取第一编号对应的待写入数据和地址信息,发送给第二存储设备,另外,在复制任务触发时,修改当前时间片编号,使得第一存储设备在后续接收写数据请求时,在其携带的信息中增加与修改后的当前时间片编号相同的编号,由此在缓存中将需要发送给第二存储设备的写数据请求携带的信息,与第一存储设备正在接收的写数据请求携带的信息区分开来,实现了直接从缓存中将写数据请求携带的信息发送给第二存储设备,由于信息是直接从缓存中发送的,不需要从数据卷中读取数据,因此数据复制的时间较短,提高了数据复制的效率。
可以理解的是,在上述实施例中,第一存储设备在复制任务触发时,将当前时间片编号对应的待写入数据和地址信息,发送给第二存储设备,同时修改当前时间片编号以标识后续写数据请求携带的信息。在下一次复制任务触发时,将修改后的当前时间片编号对应的待写入数据和地址信息发送给第二存储设备,同时再次修改当前时间片编号。可以保证第一存储设备分批次地完整地将其接收到的写数据请求携带的信息,发送给第二存储设备。
然而,当存在多个灾备中心时,假设第二个灾备中心对应的存储设备是第三设备,第一存储设备还需要将其接收到的写数据请求携带的信息,发送给第三存储设备。对于第二存储设备而言,复制任务触发时,当前时间片编号管理器将修改当前时间片编号,此时,当前时间片编号赋值给第二存储设备和第三存储设备的编号都是修改后的编号。然而,当前时间片编号修改之前的编号对应的写数据请求携带信息还没有发送给第三存储设备。
因此,对于多个灾备中心的场景,上述实施例还可以包括以下步骤:
步骤S106:记录第二编号,所述第二编号是当前的复制任务之前,最近一次已完成的复制任务对应的编号。
在上述实施例中,第一编号与当前时间片编号相同,可以用于标识当前的复制任务,当前的复制任务是指第一存储设备将当前时间段内一个数据卷接收到的写数据请求携带的信息发送给第二存储设备,这些写数据请求携带的信息都被增加了与当前时间片编号相同的编号。
第二编号是当前的复制任务之前,最近一次已完成的复制任务对应的编号。
当存在多个灾备中心时,当前时间片编号可能在向其他灾备中心的存储设备发起复制任务时修改的,因此需要将上一次已完成的复制任务对应的编号记录下来。
如果在第二编号和第一编号之间还存在其他编号,那么该编号对应的写数据请求携带的信息是没有发送给第二存储设备的,需要执行步骤S107。
步骤S107:从所述缓存中读取所述第二编号之后,所述第一编号之前的编号对应的待写入数据和地址信息。
具体的读取过程,与步骤S103类似,这里不再赘述。
需要说明的是,步骤S107可以和步骤S103没有先后顺序之分,也可以同时执行。
步骤S108:将所述第二编号之后,所述第一编号之前的编号对应的待写入数据和地址信息发送给所述第二存储设备。
具体的发送过程,与步骤S105类似,这里不再赘述。
本发明实施例,除了将当前时间片编号对应的写数据请求携带的信息发送给第二存储设备以外,还可以将上一次已完成的复制任务对应的编号,与当前时间片编号之间的编号对应的写数据请求携带的信息发送给第二存储设备,适用于多个灾备中心的场景,保证了数据复制的完整性。
请参考图2,图2是本发明一种数据接收方法的实施例,本发明实施例用于灾备中心在接收到生产中心发送的写数据请求携带的信息的应用场景。所述方法可以包括:
步骤S201:第二存储设备接收第一存储设备发送的地址信息。
具体的,第二存储设备可以接收第一存储设备发送的待写入数据和地址信息;也可以接收第一存储设备发送的写数据请求,其中,所述写数据请求包括待写入数据和地址信息,所述地址信息可以是逻辑块地址(Logic Unit Address,LBA)。当第二存储设备包括多个数据卷时,所述地址信息还可以包括第二存储设备的数据卷的ID。可以理解的是,这里的地址信息可以不止一条。
第二存储设备在接收到待写入数据和地址信息后,在待写入数据和地址信息中增加与当前时间片编号相同的编号,写入缓存,使得在缓存中保存与当前时间片编号相同的编号、待写入数据和地址信息。
需要说明的是,第二存储设备中也包含有一个当前时间片编号管理器,所述当前时间片编号管理器中保存有当前时间片编号,当前时间片编号可以用数值表示,例如0、1、2,可以用字母表示,例如a、b、c,在此不做限定。这里的当前时间片编号可以和第一存储设备中的当前时间片编号没有联系。
步骤S202:当确定所述第一存储设备故障时,所述第二存储设备根据所述地址信息,获取第一编号对应的待写入数据,所述第一编号对应的地址信息与所述接收到的地址信息相同,所述第一编号为当前时间片编号之前的编号。
通常情况下,若第一存储设备和第二存储设备均运行正常,那么第一存储设备发送多少条写数据请求携带的信息,第二存储设备就可以接收多少条写数据请求携带的信息,并且将每个写数据请求携带的信息都加上与当前时间片编号相同的编号,保存在缓存中。然而,如果第一存储设备发生故障,那么第二存储设备可能只接收到了第一存储设备的当前时间片编号的对应的部分待写入数据,在这种情况下,第二存储设备保存的数据可能是不真实的数据,如果直接接替第一存储设备工作,数据一致性就不能得到保证。举例来说,若此时主机向第二存储设备发送一个读数据请求,要求读取所述地址信息上保存的数据,第二存储设备会查找与所述地址信息对应的最新的编号,然后将当前时间片编号对应的待写入发送给主机,然而该数据是不真实的。因此,此时需要将第二存储设备的缓存中的数据恢复成第二存储设备的当前时间片编号之前的编号对应的数据。
具体的,确定第一存储设备发生故障的方式可以是控制中心向第二存储设备发送一个信号,该信号用于指示第一存储设备故障,第二存储设备需接替第一存储设备处理主机业务。
通常情况下,当一个复制任务完成时,控制中心可以分别向第一存储设备和第二存储设备发送复制成功的指示。如果第二存储设备没有接收该指示,则说明当前复制任务没有完成。复制任务完成是指,第一存储设备将当前时间片编号对应的所有写数据请求携带的信息都发送给了第二存储设备,并且第二存储设备也接收完成。
当第二存储设备确定第一存储设备发生故障时,若当前的复制任务已完成,则第二存储设备可以直接接替第一存储设备工作,数据一致性可以得到保证。这种情况不在本发明实施例的讨论范围之内。
然而,若当前的复制任务没有完成,则需要将第二存储设备的缓存中的数据恢复成其当前时间片编号之前的编号对应的数据。
具体的恢复方式可以是,根据接收到的地址信息,在当前时间片编号的上一个编号对应的地址信息中查找是否有与所述地址信息相同的地址信息,如果没有,则继续在再上一个编号对应的地址信息中查找,直至找到所述地址信息,然后获得该编号对应的待写入数据。
步骤S203:将所述第一编号对应的待写入数据和地址信息增加第二编号,写入缓存。
其中,第二编号是对当前时间片编号进行修改后的编号,也是在本实施例中缓存中保存的最新的编号。当主机向第二存储设备发送一个读数据请求,要求读取所述地址信息上保存的数据时,第二存储设备经过查找得知与所述地址信息对应的最新的编号是第二编号,将第二编号对应的待写入数据发送给主机。由此,保证了数据的一致性。
本发明实施例中,第二存储设备接收第一存储设备发送的地址信息,在第一存储设备发生故障时,根据该地址信息获得当前时间片编号之前的编号对应的待写入数据,并且将当前时间片编号之前的编号对应的待写入数据和地址信息增加第二编号,保存在缓存中。由此,保证了数据一致性。
请参考图3,图3是本发明一种数据发送方法的实施例,在本发明实施例中,为了将生产阵列中的缓存与灾备阵列中的缓存相区别,在本发明实施例中,将生产阵列中的缓存称为第一缓存,灾备阵列中的缓存称为第二缓存。
如图3所示,所述方法包括:
步骤S301:生产阵列接收生产主机发送的写数据请求A。
所述写数据请求A包括卷ID、待写入地址A和待写入数据A,待写入地址A是指待写入数据A将要写入的生产阵列的逻辑地址,例如LBA,通常情况下,生产阵列在执行所述写数据请求A时需要将LBA转换为PBA(Physics BlockAddress)后,再根据PBA将待写入数据A写入存储介质中。卷ID是写数据请求A对应的数据卷的ID。本实施例以生产阵列包含一个卷(以下称为主卷)为例,那么写数据请求A携带的信息中包含主卷ID、待写入地址A和待写入数据A。
步骤S302:生产阵列将写数据请求A修改为写数据请求A’,写数据请求A’包含写数据请求A携带的信息以及第一编号。
在本发明实施例中,生产阵列的控制器中可以包含一个当前时间片编号(Current Time Period Number,CTPN)管理器,在CTPN管理器中记录有当前时间片编号,所述当前时间片编号用于生成第一编号,具体的,第一编号等于当前时间片编号。
在生产阵列接收到写数据请求A后,将写数据请求A修改为写数据请求A’。具体的,其修改方式可以是在所述写数据请求A携带的信息中增加第一编号,例如,当前时间片编号可以为1,那么第一编号也为1。
可选的,也可以在接收写数据请求A时,记录时间戳,将所述时间戳在预先保存的编号序列中进行匹配,从而确定所述时间戳对应的编号。具体的,所述编号序列可以是映射表或者其他形式,在此不做限定。所述编号序列包括多个编号,每个编号对应一段时间戳的区间。如表1所示:
编号 时间戳的区间
1 9:01-10:00
2 10:01-11:00
3 11:01-12:00
表1
以接收所述写数据请求A的时间戳是9:30为例,其对应的编号为1,则可以根据所述编号,将写数据请求A修改为写数据请求A’。
步骤S303:生产阵列将所述写数据请求A’写入第一缓存,使得在所述第一缓存中保存写数据请求A’携带的信息。其中,写数据请求A’携带的信息包括第一编号、主卷ID、待写入地址A和待写入数据A。
在本发明实施例中,第一编号对应的写数据请求可以有多个。在CTPN管理器中记录的当前时间片编号修改之前,接收到所有的写数据请求携带的信息都会加上第一编号。
可以理解的是,在接收写数据请求A之后,还可以接收写数据请求B,将写数据请求B修改为写数据请求B’,使得写数据请求B’中还包含所述第一编号;还可以接收写数据请求C,将写数据请求C修改为写数据请求C’,使得写数据请求C’中还包含所述第一编号。
举例来说,将写数据请求A’,写数据请求B’,写数据请求C’写入第一缓存后,第一缓存中的保存的信息可以如表2所示:
编号 卷ID 待写入地址 待写入数据
1 主卷ID 待写入地址A 待写入数据A
1 主卷ID 待写入地址B 待写入数据B
1 主卷ID 待写入地址C 待写入数据C
表2
需要说明的是,在本发明实施例中,以生产阵列包含一个数据卷(可以称为主卷)为例,所述写数据请求A’、写数据请求B’和写数据请求C’携带的数据卷的ID均是主卷ID。在本发明另一个实施例中,生产阵列可以包含多个数据卷,所以写数据请求A、写数据请求B和写数据请求C携带的数据卷的ID可以不同。另外,表2只是写数据请求携带的信息在第一缓存中保存形式的一个示例,还可以采用树的形式进行保存,在此不作限定。
以表2为例,编号、卷ID、待写入地址可以看作表2的索引,根据所述索引可以查到其对应的待写入数据,当索引相同时,其对应的待写入数据也应该相同。因此,当写入一个新的写数据请求时,需判断第一缓存中是否存储有与新的写数据请求的编号、卷ID以及待写入地址均相同的信息,如果有,则用新的写数据请求携带的信息覆盖原来的信息。可以理解的是,在将写数据请求A’、写数据请求B’、写数据请求C’写入第一缓存时,也需要判断其编号、卷ID、待写入地址是否与第一缓存中已保存的信息相同,因为不相同,所以可以将写数据请求A’、写数据请求B’、写数据请求C’都写入第一缓存。
举例来说,如果此时接收到写数据请求D,所述写数据请求D包含主卷ID、待写入地址B、待写入数据D,将写数据请求D修改为写数据请求D’,使得写数据请求D’中还包含所述第一编号。那么,将所述写数据请求D’写入第一缓存时,则需判断第一缓存中是否存储与写数据请求D’的编号、卷ID以及待写入地址均相同的信息,如果有,则用写数据请求D’携带的数据覆盖原来的信息。由于写数据请求D’中携带的编号、卷ID、待写入地址均与写数据请求B’中包含的编号、卷ID、待写入地址相同,因此在第一缓存中,写数据请求D’的信息将覆盖写数据请求B’的信息。
具体的,在将所述写数据请求D’写入第一缓存后,第一缓存中保存的信息可以如表3所示:
编号 卷ID 待写入地址 待写入数据
1 主卷ID 待写入地址A 待写入数据A
1 主卷ID 待写入地址B 待写入数据D
1 主卷ID 待写入地址C 待写入数据C
表3
步骤S304:当复制任务触发时,生产阵列修改CTPN管理器包含的当前时间片编号;举例来说,可以将当前时间片编号由1修改为2。
为了将生产阵列的当前时间片编号与灾备阵列的当前时间片编号区别开,在本发明实施例中,将生产阵列的当前时间片编号称为第一当前时间片编号,将灾备阵列的当前时间片编号称为第二当前时间片编号。
可以理解的是,当第一当前时间片编号由1修改为2之后,相应地,此后接收到的写数据请求携带的信息都会加上与编号2。例如,接收到写数据请求E,所述写数据请求E包含主卷ID、待写入地址A、待写入数据E,将写数据请求E修改为写数据请求E’,使得写数据请求E’中还包含编号2;接收到写数据请求F,所述写数据请求F包含主卷ID、待写入地址F、待写入数据F,将写数据请求F修改为写数据请求F’,使得写数据请求F’中还包含编号2。在将写数据请求E’和写数据请求F’写入第一缓存之后,第一缓存中保存的信息可以如表4所示:
编号 卷ID 待写入地址 待写入数据
1 主卷ID 待写入地址A 待写入数据A
1 主卷ID 待写入地址B 待写入数据D
1 主卷ID 待写入地址C 待写入数据C
2 主卷ID 待写入地址A 待写入数据E
2 主卷ID 待写入地址F 待写入数据F
表4
步骤S305:灾备阵列修改其CTPN管理器包含的第二当前时间片编号;举例来说,可以由11修改为12。
在本发明实施例中,灾备阵列中也可以包含自己的CTPN管理器。当生产阵列的复制任务触发时,生产阵列中的CTPN管理器修改第一当前时间片编号,此时,控制中心也可以给灾备阵列发送一个控制信号,让在灾备阵列也修改自己的CTPN管理器中包含的第二当前时间片编号。因此,步骤S305与步骤S304之间没有先后顺序之分。
步骤S306A:生产阵列从第一缓存中读取第一编号对应的写数据请求携带的信息。
具体的,由上面的描述可知,第一编号对应的写数据请求携带的信息如表3所示。
步骤S306B:生产阵列获得待写入灾备阵列的数据卷的ID;
步骤S306C:生产阵列根据所述数据卷的ID以及第一编号对应的写数据请求携带的信息,生成新的写数据请求;
具体的,可以根据数据卷的ID、待写入地址A、待写入数据A生成写数据请求A’’;可以根据数据卷的ID、待写入地址B、待写入数据D生成写数据请求D’’;可以根据数据卷的ID、待写入地址C、待写入数据C生成写数据请求C’’。
在本发明另一个实施例中,生产阵列和灾备阵列均可以包含多个数据卷,那么写数据请求A’’、写数据请求D’’、写数据请求C’’所包含的数据卷的ID可能是不相同的。然而,灾备阵列中每一个数据卷的ID是与生产阵列中每一个数据卷的ID一一对应的。
步骤S307:生产阵列向灾备阵列发送生成的新的写数据请求。
具体的,生产阵列向灾备阵列发送写数据请求A’’、写数据请求D’’、写数据请求C’’。
步骤S308:灾备阵列修改接收到的写数据请求。
例如,可以根据CTPN管理器中记录的第二当前时间片编号,将写数据请求A’’修改为写数据请求A’’’。具体的,其修改方式可以是在所述写数据请求A’’携带的信息中增加编号12。
同样的,可以在写数据请求B’’携带的信息中增加编号12,将写数据请求B’’修改为写数据请求B’’’;在写数据请求C’’携带的信息中增加编号12,将写数据请求C’’修改为写数据请求C’’’。
步骤S309:灾备阵列将修改后的写数据请求写入第二缓存。
具体的,保存在第二缓存中的信息可以如表5所示:
编号 卷ID 待写入地址 待写入数据
12 从卷ID 待写入地址A 待写入数据A
12 从卷ID 待写入地址B 待写入数据D
12 从卷ID 待写入地址C 待写入数据C
表5
步骤S310:灾备阵列根据写数据请求的待写入地址,将待写入数据写入待写入地址对应的存储介质中。
通常情况下,由于缓存空间是有限的,当其空间利用率达到一定阈值时,就需要将缓存中的数据写入硬盘。具体的,将待写入数据A写入待写入地址A对应的存储介质中,将待写入数据D写入待写入地址B对应的存储介质中,将待写入数据C写入待写入地址C对应的存储介质中。
步骤S311:生产阵列根据写数据请求的待写入地址,将待写入数据写入待写入地址对应的存储介质中。
同样的,生产阵列的缓存在其空间利用率达到一定阈值时,也需要将缓存中的数据写入硬盘。由上面的描述可知,此时第一缓存中保存有如下信息:
编号 卷ID 待写入地址 待写入数据
1 主卷ID 待写入地址A 待写入数据A
1 主卷ID 待写入地址B 待写入数据D
1 主卷ID 待写入地址C 待写入数据C
2 主卷ID 待写入地址A 待写入数据E
2 主卷ID 待写入地址F 待写入数据F
具体的,对于卷ID相同、待写入地址相同而编号不同的写数据请求,可以先写入编号较小的写数据请求携带的待写入数据,再写入编号较大的写数据请求携带的待写入数据,例如先写入待写入数据D,再写入待写入数据E;或者直接写入编号较大的写数据请求携带的待写入数据,而不写入编号较小的写数据请求携带的待写入数据,例如直接写入待写入数据E。
步骤S310和步骤S311之间没有先后顺序之分。
步骤S312:当复制任务触发时,生产阵列修改其CTPN管理器包含的第一当前时间片编号;举例来说,可以将当前时间片编号由2修改为3。
可以理解的是,当生产阵列的CTPN管理器中的第一当前时间片编号由2修改为3之后,相应地,此后生产阵列接收到的写数据请求携带的信息中都会加上编号3。
步骤S313:灾备阵列修改其CTPN管理器包含的第二当前时间片编号;举例来说,可以将第二当前时间片编号由12修改为13。
可以理解的是,当灾备阵列的CTPN管理器中的第二当前时间片编号由12修改为13之后,相应地,此后灾备阵列接收到的写数据请求携带的信息都会加上编号13。
步骤S314:生产阵列读取编号2对应的写数据请求携带的信息,生成相应的写数据请求发送给灾备阵列。
具体的,由上面的描述可知,编号2对应的写数据请求携带的信息包括写数据请求E携带的信息和写数据请求F携带的信息。同样的,生产阵列在获得灾备阵列的数据卷的ID后,可以根据数据卷的ID、待写入地址A、待写入数据E生成写数据请求E’’;可以根据数据卷的ID、待写入地址F、待写入数据F生成写数据请求F’’。所以,生产阵列向灾备阵列发送的写数据请求是写数据请求E’’和写数据请求F’’。
需要说明的是,在本发明实施例中,生产阵列在向灾备阵列发送写数据请求时并没有根据先后顺序之分,可以是随机发送的,具体而言,可以先发送写数据请求E’’,再发送写数据请求F’’;也可以先发送写数据请求F’’,再发送写数据请求E’’。
由上面的描述可知,此时,灾备阵列的CTPN管理器中的第二当前时间片编号是13,因此灾备阵列在接收到写数据请求E’’之后需要将写数据请求E’’修改为包含编号13的写数据请求E’’’;同样的,灾备阵列在接收到写数据请求F’’之后需要将写数据请求F’’修改为包含编号13的写数据请求F’’’。
步骤S315:灾备阵列收到指示接替生产阵列处理主机业务。
在本发明实施例中,如果生产阵列发生故障,灾备阵列就需要接替生产阵列处理主机业务,因此灾备阵列需要满足数据一致性的要求。
由步骤S314可知,在当前的复制任务中,灾备阵列需要接收的写数据请求包括写数据请求E’’和写数据请求F’’。当写数据请求E’’和写数据请求F’’,经修改后均已成功写入第二缓存中,灾备阵列才开始接替生产阵列处理主机业务时,说明当前的复制周期已经完成,具备数据一致性的要求。
若灾备阵列在将写数据请求E’’修改为写数据请求E’’’并成功写入第二缓存之后,写数据请求F’’’成功写入第二缓存之前,生产阵列发生故障,灾备阵列开始接替生产阵列处理主机业务,那么当前的复制任务没有完成,不满足数据一致性的要求。同样的,若灾备阵列在将写数据请求F’’修改为写数据请求F’’’并成功写入第二缓存之后,写数据请求E’’’成功写入第二缓存之前,生产阵列故障,灾备阵列开始接替生产阵列处理主机业务,那么当前的复制任务也没有完成,也不满足数据一致性的要求。
此时,需要将灾备阵列的缓存中的数据恢复成编号12对应的复制任务完成时的状态。下面以灾备阵列在将写数据请求E’’修改为写数据请求E’’’并成功写入第二缓存,而写数据请求F’’’没有成功写入第二缓存为例。
步骤S316:灾备阵列获取当前复制周期中已成功写入第二缓存的写数据请求携带的待写入地址。
由上面的描述可知,在编号13对应的复制任务中,写数据请求E’’’已成功写入第二缓存,其携带的待写入地址为待写入地址A。
步骤S317:灾备阵列根据所述待写入地址,在上一个编号对应的写数据请求携带的信息中进行匹配,查找到与所述待写入地址A相同的待写入地址。
当查找到与所述待写入地址相同的待写入地址时,执行步骤S318;若否,则继续在再上一个编号(例如编号11)对应的写数据请求携带的信息中进行匹配,直到查找到与写数据请求E’’’携带的待写入地址A相同的待写入地址为止。
由上面的描述可知,编号12对应的写数据请求携带的信息如表5所示。其中,写数据请求A’’携带待写入地址与写数据请求E’’’携带的待写入地址相同。
可以理解的是,当灾备阵列包含多个数据卷,每个写数据请求携带的信息中包含数据卷的ID时,则需要待写入地址和数据卷的ID两者均相同时才满足条件。
步骤S318:根据查找到的待写入地址所在的信息,生成新的写数据请求写入所述第二缓存,所述新的写数据请求包含修改后的编号。
举例来说,从第二缓存中读取的信息包括待写入地址A和待写入数据A(还可以包含从卷ID),根据读取到的信息,再加上修改后的编号(例如,将编号由13修改为14),可以生成一条新的写数据请求。将所述新的写数据请求写入第二缓存后,此时缓存中保存的对应关系如表6所示:
编号 卷ID 待写入地址 待写入数据
12 从卷ID 待写入地址A 待写入数据A
12 从卷ID 待写入地址B 待写入数据D
12 从卷ID 待写入地址C 待写入数据C
13 从卷ID 待写入地址A 待写入数据E
14 从卷ID 待写入地址A 待写入数据A
表6
当主机发送读数据请求给灾备阵列,要求读取数据卷的ID为从卷ID、待写入地址为待写入地址A时,灾备阵列会在第二缓存中查找数据卷的ID为从卷ID、待写入地址为待写入地址A且最新的编号对应的待写入数据发送给主机。在本发明实施例中,则是从第二缓存中将编号14对应的待写入数据A发送给主机。
本发明实施例生产阵列可以直接从缓存中将接收到的写数据请求携带的信息,发送给灾备阵列,不用到数据卷中读取相关信息,因此可以提高数据复制的效率,并且对于灾备阵列来说也保证了数据一致性。
在现有技术中,数据复制是通过快照数据来实现的,这就要求在生产阵列每次执行写数据请求时,需要先将写数据请求携带的数据放入缓存,根据写数据请求中携带的待写入地址,将该地址中保存的旧数据读取出来,存储在数据卷中,再将缓存中的数据写入所述待写入地址,这些操作完成以后才能返回写数据请求的响应消息,由于增加了快照处理的步骤,因此增加了写数据请求处理的时延。而在本发明实施例中不需要对数据进行快照处理,虽然会对写数据请求进行修改,但耗时较小。所以,和现有技术相比,本发明实施例减小了写数据请求处理的时延。
请参考图5,图5是本发明实施例一种存储设备50的结构示意图,如图5所示,所述存储设备50包括:接收模块501、读写模块502、当前时间片编号管理器503和发送模块504。
接收模块501,用于接收主机发送的第一写数据请求,所述第一写数据请求携带待写入数据和地址信息。
其中,地址信息可以包括逻辑块地址(Logic Unit Address,LBA),当存储设备50中包含多个数据卷时,地址信息还可以包括存储设备50的数据卷的ID。
读写模块502,用于将所述待写入数据和地址信息增加第一编号,写入缓存,其中所述第一编号为当前时间片编号;从所述缓存中读取所述第一编号对应的所述待写入数据和地址信息。
在存储设备50中可以包含一个当前时间片编号管理器503,所述当前时间片编号管理器503中保存有当前时间片编号,当前时间片编号可以用数值表示,例如0、1、2,可以用字母表示,例如a、b、c,在此不做限定。
当接收到第一写数据请求时,在第一写数据请求携带的待写入数据和地址信息中增加第一编号,所述第一编号是由当前时间片编号赋值给它的。
在第一写数据请求携带的信息中增加第一编号后,再将修改后的第一写数据请求携带的信息写入缓存,使得第一写数据请求携带的待写入数据、地址信息和第一编号都保存在缓存中。
另外,在一段时间内,还可以接收到其他写数据请求,同样需要在其携带的信息中增加第一编号,并写入缓存。需要说明的是在当前时间片编号改变之前,在写数据请求携带的信息增加的都是第一编号。
当复制任务触发时,存储设备50可以从缓存中将第一编号对应的待写入数据和地址信息读取出来,可以理解的是,第一编号对应的待写入数据和地址信息可以不止一条。
复制任务是指存储设备50将一段时间内一个数据卷接收到的写数据请求携带的信息发送给灾备中心的存储设备,这些写数据请求携带的信息都被增加了与当前时间片编号相同的编号。复制任务触发可以是由定时器触发,也可以是人为触发,在此不做限定。复制的目的是将存储设备50接收的写数据请求携带的待写入数据发送给灾备中心的存储设备存储,使得存储设备50故障时,灾备中心的存储设备可以接替存储设备50工作。可以理解的是,写数据请求携带的地址信息(例如LBA)也需要发送给灾备中心的存储设备,所述LBA用于指示灾备中心的存储设备存储待写入数据的地址。灾备中心的存储设备具有与存储设备50相同的物理结构,因此适用于存储设备50的LBA,也适用于灾备中心的存储设备。
在本发明实施例中,复制任务是针对存储设备50的一个数据卷而言的,当存储设备50包含多个数据卷时,每个数据卷对应的一个复制任务。
当前时间片编号管理器503,用于修改所述当前时间片编号以标识后续写数据请求携带的信息。
当复制任务触发时,当前时间片编号管理器503需要修改当前时间片编号,当接收到后续写数据请求时,则后续的写数据请求携带的信息则需增加另一个编号,所述另一个编号是由修改后的当前时间片编号赋值给它的。由此,可以在缓存中将需要发送给灾备中心的存储设备的写数据请求携带的信息,与存储设备50正在接收的写数据请求中携带的信息区分开来。
发送模块504,用于将所述待写入数据和地址信息发送给灾备中心的存储设备。
存储设备50将从缓存中读取的第一编号对应的待写入数据和地址信息,发送给灾备中心的存储设备。
具体的,存储设备50可以将读取到的所有的待写入数据和地址信息直接发送给灾备中心的存储设备;也可以在获得灾备中心的存储设备的数据卷的ID后,根据每一个写数据请求携带的待写入数据和地址信息,以及灾备中心的存储设备的数据卷的ID,分别生成新的写数据请求,再发送给灾备中心的存储设备。
本发明实施例中,存储设备50在接收主机发送的写数据请求后,所述写数据携带的信息包括待写入数据和地址信息,在待写入数据和地址信息中增加第一编号,写入缓存,第一编号为当前时间片编号,在复制任务触发时,从缓存中读取第一编号对应的待写入数据和地址信息,发送给灾备中心的存储设备,另外,在复制任务触发时,修改当前时间片编号,使得存储设备50在后续接收写数据请求时,在其携带的信息中增加与修改后的当前时间片编号相同的编号,由此在缓存中将需要发送给灾备中心的存储设备的写数据请求携带的信息,与存储设备50正在接收的写数据请求携带的信息区分开来,实现了直接从缓存中将写数据请求携带的信息发送给灾备中心的存储设备,由于信息是直接从缓存中发送的,不需要从数据卷中读取数据,因此数据复制的时间较短,提高了数据复制的效率。
请参考图6,图6是本发明实施例一种存储设备60的结构示意图,如图6所示,所述存储设备60包括:接收模块601、查找模块602和写入模块604。
接收模块601,用于接收存储设备50发送的地址信息。
具体的,存储设备60可以接收存储设备50发送的待写入数据和地址信息;也可以接收存储设备50发送的写数据请求,其中,所述写数据请求包括待写入数据和地址信息,所述地址信息可以是逻辑块地址(Logic Unit Address,LBA)。当存储设备60包括多个数据卷时,所述地址信息还可以包括存储设备60的数据卷的ID。可以理解的是,这里的地址信息可以不止一条。
存储设备60在接收到待写入数据和地址信息后,在待写入数据和地址信息中增加与当前时间片编号相同的编号,写入缓存,使得在缓存中保存与当前时间片编号相同的编号、待写入数据和地址信息。
需要说明的是,存储设备60中也可以包含有一个当前时间片编号管理器603,所述当前时间片编号管理器603中保存有当前时间片编号,当前时间片编号可以用数值表示,例如0、1、2,可以用字母表示,例如a、b、c,在此不做限定。这里的当前时间片编号可以和存储设备50中的当前时间片编号没有联系。
查找模块602,用于当确定所述存储设备50故障时,所述存储设备60根据所述地址信息,获取第一编号对应的待写入数据,所述第一编号对应的地址信息与所述接收到的地址信息相同,所述第一编号为当前时间片编号之前的编号。
通常情况下,若存储设备50和存储设备60均运行正常,那么存储设备50发送多少条写数据请求携带的信息,存储设备60就可以接收多少条写数据请求携带的信息,并且将每个写数据请求携带的信息都加上与当前时间片编号相同的编号,保存在缓存中。然而,如果存储设备50发生故障,那么存储设备60可能只接收到了存储设备50的当前时间片编号的对应的部分待写入数据,在这种情况下,存储设备60保存的数据可能是不真实的数据,如果直接接替存储设备50工作,数据一致性就不能得到保证。举例来说,若此时主机向存储设备60发送一个读数据请求,要求读取所述地址信息(例如,LBA)上保存的数据,存储设备60会查找与所述地址信息对应的最新的编号,然后将当前时间片编号对应的待写入发送给主机,然而该数据是不真实的。因此,此时需要将存储设备60的缓存中的数据恢复成存储设备60的当前时间片编号之前的编号对应的数据。
具体的,确定存储设备50发生故障的方式可以是控制中心向存储设备60发送一个信号,该信号用于指示存储设备50故障,存储设备60需接替存储设备50处理主机业务。
通常情况下,当一个复制任务完成时,控制中心可以分别向存储设备50和存储设备60发送复制成功的指示。如果存储设备60没有接收该指示,则说明当前复制任务没有完成。复制任务完成是指,存储设备50将当前时间片编号对应的所有写数据请求携带的信息都发送给了存储设备60,并且存储设备60也接收完成。
当存储设备60确定存储设备50发生故障时,若当前的复制任务已完成,则存储设备60可以直接接替存储设备50工作,数据一致性可以得到保证。这种情况不在本发明实施例的讨论范围之内。
然而,若当前的复制任务没有完成,则需要将存储设备60的缓存中的数据恢复成其当前时间片编号之前的编号对应的数据。
具体的恢复方式可以是,根据接收到的地址信息,在当前时间片编号的上一个编号对应的地址信息中查找是否有与所述地址信息相同的地址信息,如果没有,则继续在再上一个编号对应的地址信息中查找,直至找到所述地址信息,然后获得该编号对应的待写入数据。
写入模块604,用于将所述第一编号对应的待写入数据和地址信息增加第二编号,写入缓存。
其中,第二编号是对当前时间片编号进行修改后的编号,在本实施例中是缓存中保存的最新的编号。当主机向存储设备60发送一个读数据请求,要求读取所述地址信息(例如,LBA)上保存的数据时,存储设备60经过查找得知与所述地址信息对应的最新的编号是第二编号,将第二编号对应的待写入数据发送给主机。由此,保证了数据的一致性。
本发明实施例中,存储设备60接收存储设备50发送的地址信息,在存储设备50发生故障时,根据该地址信息获得当前时间片编号之前的编号对应的待写入数据,并且将当前时间片编号之前的编号对应的待写入数据和地址信息增加第二编号,保存在缓存中。由此,保证了数据一致性。
请参考图7,本发明实施例提供了一种存储设备700的示意图。存储设备700可以包括当前技术已知的存储设备,本发明具体实施例并不对存储设备700的具体实现做限定。存储设备700包括:
处理器(processor)710,通信接口(Communications Interface)720,存储器(memory)730,通信总线740。
处理器710,通信接口720,存储器730通过通信总线740完成相互间的通信。
通信接口720,用于与网元通信,比如与主机或者交换机等通信。
处理器710,用于执行程序732。
具体地,程序732可以包括程序代码,所述程序代码包括计算机操作指令。
处理器710可能是一个中央处理器CPU,或者是特定集成电路ASIC(Application Specific Integrated Circuit),或者是被配置成实施本发明实施例的一个或多个集成电路。
存储器730,用于存放程序732。存储器730可能包含高速RAM存储器,也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。
程序732具体可以包括:
接收模块501,用于接收主机发送的第一写数据请求,所述第一写数据请求携带待写入数据和地址信息。
读写模块502,用于将所述待写入数据和地址信息增加第一编号,写入缓存,其中所述第一编号为当前时间片编号;从所述缓存中读取所述第一编号对应的所述待写入数据和地址信息。
当前时间片编号管理器503,用于修改所述当前时间片编号以标识后续写数据请求携带的信息。
发送模块504,用于将所述待写入数据和地址信息发送给灾备中心的存储设备。
程序732中各模块的具体实现可以参见图5所示实施例中的相应模块,在此不赘述。
请参考图8,本发明实施例提供了一种存储设备800的示意图。存储设备800可以包括当前技术已知的存储设备,本发明具体实施例并不对存储设备800的具体实现做限定。存储设备800包括:
处理器(processor)810,通信接口(Communications Interface)720,存储器(memory)830,通信总线840。
处理器810,通信接口820,存储器830通过通信总线840完成相互间的通信。
通信接口820,用于与网元通信,比如与主机或者交换机等通信。
处理器810,用于执行程序832。
具体地,程序832可以包括程序代码,所述程序代码包括计算机操作指令。
处理器810可能是一个中央处理器CPU,或者是特定集成电路ASIC(Application Specific Integrated Circuit),或者是被配置成实施本发明实施例的一个或多个集成电路。
存储器830,用于存放程序832。存储器830可能包含高速RAM存储器,也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。
程序832具体可以包括:
接收模块601,用于接收存储设备50发送的地址信息。
查找模块602,用于当确定所述存储设备50故障时,所述存储设备60根据所述地址信息,获取第一编号对应的待写入数据,所述第一编号对应的地址信息与所述接收到的地址信息相同,所述第一编号为当前时间片编号之前的编号。
写入模块604,用于将所述第一编号对应的待写入数据和地址信息增加第二编号,写入缓存。
程序832中各模块的具体实现可以参见图6所示实施例中的相应模块,在此不赘述。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的设备和模块的具体工作过程,可以参考前述方法实施例中的对应过程描述,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的设备和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个模块或组件可以结合或者可以集成到另一个设备中,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或模块的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理子模块,即可以位于一个地方,或者也可以分布到多个网络子模块上。可以根据实际的需要选择其中的部分或者全部,模块来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能模块可以集成在一个处理模块中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个模块中。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。

Claims (26)

1.一种数据发送方法,其特征在于,包括:
第一存储设备接收主机发送的第一写数据请求,所述第一写数据请求携带待写入数据和地址信息;
将所述待写入数据和地址信息增加第一编号,写入缓存,其中所述第一编号为当前时间片编号;
从所述缓存中读取所述第一编号对应的所述待写入数据和地址信息;
修改所述当前时间片编号以标识后续写数据请求携带的信息;
将所述待写入数据和地址信息发送给第二存储设备。
2.根据权利要求1所述的方法,其特征在于,所述第一编号用于标识当前的复制任务;所述方法还包括:
记录第二编号,所述第二编号是当前的复制任务之前,最近一次已完成的复制任务对应的编号。
3.根据权利要求2所述的方法,其特征在于,还包括:
从所述缓存中读取所述第二编号之后,所述第一编号之前的编号对应的待写入数据和地址信息;
将所述第二编号之后,所述第一编号之前的编号对应的待写入数据和地址信息发送给所述第二存储设备。
4.根据权利要求1所述的方法,其特征在于,还包括:
记录当前时间片编号,所述当前时间片编号用于生成所述第一编号。
5.根据权利要求1所述的方法,其特征在于,所述将所述待写入数据和地址信息发送给所述第二存储设备包括:
根据所述待写入数据和地址信息生成第二写数据请求;
将所述第二写数据请求发送给所述第二存储设备。
6.根据权利要求5所述的方法,其特征在于,所述地址信息包括逻辑块地址LBA;
所述根据所述待写入数据和地址信息生成第二写数据请求包括:
获得所述第二存储设备的数据卷的ID;
生成所述第二写数据请求,所述第二写数据请求包括所述待写入数据、LBA以及所述数据卷的ID。
7.一种数据接收方法,其特征在于,包括:
第二存储设备接收第一存储设备发送的地址信息;
当确定所述第一存储设备故障时,所述第二存储设备根据所述地址信息,获取第一编号对应的待写入数据,所述第一编号对应的地址信息与所述接收到的地址信息相同,所述第一编号为当前时间片编号之前的编号;
将所述第一编号对应的待写入数据和地址信息增加第二编号,写入缓存。
8.根据权利要求7所述的方法,其特征在于,还包括:
记录所述当前时间片编号,所述当前时间片编号用于生成所述第二编号。
9.根据权利要求7所述的方法,其特征在于,还包括:
接收主机发送的读数据请求,所述读数据请求包含所述接收到的地址信息;确定所述接收到的地址信息对应的最新的编号是所述第二编号;
将所述第二编号对应的待写入数据发送给所述主机。
10.一种存储设备,其特征在于,包括:
接收模块,用于接收主机发送的第一写数据请求,所述第一写数据请求携带待写入数据和地址信息;
读写模块,用于将所述待写入数据和地址信息增加第一编号,写入缓存,其中所述第一编号为当前时间片编号;从所述缓存中读取所述第一编号对应的所述待写入数据和地址信息;
当前时间片编号管理器,用于修改所述当前时间片编号以标识后续写数据请求携带的信息;
发送模块,用于将所述待写入数据和地址信息发送给第二存储设备。
11.根据权利要求10所述的存储设备,其特征在于,所述第一编号用于标识当前的复制任务;
所述当前时间片编号管理器,还用于记录第二编号,所述第二编号是当前的复制任务之前,最近一次已完成的复制任务对应的编号。
12.根据权利要求11所述的存储设备,其特征在于,
所述读写模块,还用于从所述缓存中读取所述第二编号之后,所述第一编号之前的编号对应的待写入数据和地址信息;
所述发送模块,还用于将所述第二编号之后,所述第一编号之前的编号对应的待写入数据和地址信息发送给所述第二存储设备。
13.根据权利要求10所述的存储设备,其特征在于,
所述当前时间片编号管理器,还用于记录当前时间片编号,所述当前时间片编号用于生成所述第一编号。
14.根据权利要求10所述的存储设备,其特征在于,
所述发送模块,具体用于根据所述待写入数据和地址信息生成第二写数据请求;将所述第二写数据请求发送给所述第二存储设备。
15.一种存储设备,其特征在于,包括:
接收模块,用于接收第一存储设备发送的地址信息;
查找模块,用于当确定所述第一存储设备故障时,所述第二存储设备根据所述地址信息,获取第一编号对应的待写入数据,所述第一编号对应的地址信息与所述接收到的地址信息相同,所述第一编号为当前时间片编号之前的编号;
写入模块,用于将所述第一编号对应的待写入数据和地址信息增加第二编号,写入缓存。
16.根据权利要求15所述的存储设备,其特征在于,还包括:
当前时间片编号管理器,用于记录所述当前时间片编号,所述当前时间片编号用于生成所述第二编号。
17.根据权利要求15所述的存储设备,其特征在于,包括:
所述接收模块,还用于接收主机发送的读数据请求,所述读数据请求包含所述接收到的地址信息;
所述查找模块,还用于确定所述接收到的地址信息对应的最新的编号是所述第二编号;
所述存储设备还包括发送模块,所述发送模块用于将所述第二编号对应的待写入数据发送给所述主机。
18.一种存储设备,其特征在于,包括:处理器、存储器和通信总线;
其中,所述处理器和所述存储器通过所述通信总线进行通信;
所述存储器用于保存程序;
所述处理器用于执行所述程序,以实现:
接收主机发送的第一写数据请求,所述第一写数据请求携带待写入数据和地址信息;将所述待写入数据和地址信息增加第一编号,写入缓存,其中所述第一编号为当前时间片编号;从所述缓存中读取所述第一编号对应的所述待写入数据和地址信息;修改所述当前时间片编号以标识后续写数据请求携带的信息;将所述待写入数据和地址信息发送给第二存储设备。
19.根据权利要求18所述的存储设备,其特征在于,所述第一编号用于标识当前的复制任务;所述处理器还用于:
记录第二编号,所述第二编号是当前的复制任务之前,最近一次已完成的复制任务对应的编号。
20.根据权利要求19所述的存储设备,其特征在于,所述处理器还用于:从所述缓存中读取所述第二编号之后,所述第一编号之前的编号对应的待写入数据和地址信息;将所述第二编号之后,所述第一编号之前的编号对应的待写入数据和地址信息发送给所述第二存储设备。
21.根据权利要求18所述的存储设备,其特征在于,所述处理器还用于:记录当前时间片编号,所述当前时间片编号用于生成所述第一编号。
22.根据权利要求18所述的存储设备,其特征在于,所述处理器具体用于:根据所述待写入数据和地址信息生成第二写数据请求;将所述第二写数据请求发送给所述第二存储设备。
23.根据权利要求22所述的存储设备,其特征在于,所述地址信息包括逻辑块地址LBA;所述处理器具体用于:获得所述第二存储设备的数据卷的ID;生成所述第二写数据请求,所述第二写数据请求包括所述待写入数据、LBA以及所述数据卷的ID。
24.一种存储设备,其特征在于,包括:处理器、存储器和通信总线;
其中,所述处理器和所述存储器通过所述通信总线进行通信;
所述存储器用于保存程序;
所述处理器用于执行所述程序,以实现:
接收第一存储设备发送的地址信息;
当确定所述第一存储设备故障时,所述第二存储设备根据所述地址信息,获取第一编号对应的待写入数据,所述第一编号对应的地址信息与所述接收到的地址信息相同,所述第一编号为当前时间片编号之前的编号;
将所述第一编号对应的待写入数据和地址信息增加第二编号,写入缓存。
25.根据权利要求24所述的存储设备,其特征在于,所述处理器还用于记录所述当前时间片编号,所述当前时间片编号用于生成所述第二编号。
26.根据权利要求24所述的存储设备,其特征在于,所述处理器还用于接收主机发送的读数据请求,所述读数据请求包含所述接收到的地址信息;确定所述接收到的地址信息对应的最新的编号是所述第二编号;将所述第二编号对应的待写入数据发送给所述主机。
CN201380001270.8A 2013-07-26 2013-07-26 数据发送方法、数据接收方法和存储设备 Pending CN103649901A (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2013/080203 WO2015010327A1 (zh) 2013-07-26 2013-07-26 数据发送方法、数据接收方法和存储设备

Publications (1)

Publication Number Publication Date
CN103649901A true CN103649901A (zh) 2014-03-19

Family

ID=50253404

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201380001270.8A Pending CN103649901A (zh) 2013-07-26 2013-07-26 数据发送方法、数据接收方法和存储设备

Country Status (13)

Country Link
US (2) US9311191B2 (zh)
EP (2) EP2849048B1 (zh)
JP (2) JP6344798B2 (zh)
KR (1) KR101602312B1 (zh)
CN (1) CN103649901A (zh)
AU (2) AU2013385792B2 (zh)
CA (1) CA2868247C (zh)
DK (1) DK3179359T3 (zh)
ES (2) ES2666580T3 (zh)
HU (1) HUE037094T2 (zh)
NO (1) NO3179359T3 (zh)
RU (1) RU2596585C2 (zh)
WO (2) WO2015010327A1 (zh)

Cited By (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2015035814A1 (zh) * 2013-09-10 2015-03-19 华为技术有限公司 一种写数据方法及存储设备
WO2016094145A1 (en) * 2014-12-11 2016-06-16 Pure Storage, Inc. Cloud alert to replica
CN106598768A (zh) * 2016-11-28 2017-04-26 华为技术有限公司 一种处理写请求的方法、装置和数据中心
CN106776147A (zh) * 2016-12-29 2017-05-31 华为技术有限公司 一种差异数据备份方法和差异数据备份装置
CN106776369A (zh) * 2016-12-12 2017-05-31 郑州云海信息技术有限公司 一种缓存镜像的方法及装置
CN107122261A (zh) * 2017-04-18 2017-09-01 杭州宏杉科技股份有限公司 一种存储设备的数据读写方法及装置
CN107577421A (zh) * 2017-07-31 2018-01-12 深圳市牛鼎丰科技有限公司 智能设备扩容方法、装置、存储介质和计算机设备
WO2018040591A1 (zh) * 2016-09-05 2018-03-08 华为技术有限公司 一种远程数据复制方法及系统
WO2018086466A1 (zh) * 2016-11-11 2018-05-17 华为技术有限公司 数据处理方法和存储管理系统
CN108052294A (zh) * 2017-12-26 2018-05-18 郑州云海信息技术有限公司 一种分布式存储系统的修改写方法和修改写系统
CN108449277A (zh) * 2016-12-12 2018-08-24 华为技术有限公司 一种报文发送方法及装置
CN108475254A (zh) * 2016-12-16 2018-08-31 华为技术有限公司 对象复制方法、装置及对象存储设备
CN109032527A (zh) * 2018-07-27 2018-12-18 深圳华大北斗科技有限公司 数据处理方法、存储介质及计算机设备
CN109697035A (zh) * 2018-12-24 2019-04-30 深圳市明微电子股份有限公司 级联设备的地址数据的写入方法、写入设备及存储介质
CN112068992A (zh) * 2016-10-28 2020-12-11 华为技术有限公司 一种远程数据复制方法、存储设备及存储系统
CN114731282A (zh) * 2019-11-22 2022-07-08 华为技术有限公司 处理非缓存写数据请求的方法、缓存器和节点

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2015010327A1 (zh) * 2013-07-26 2015-01-29 华为技术有限公司 数据发送方法、数据接收方法和存储设备
US10545987B2 (en) * 2014-12-19 2020-01-28 Pure Storage, Inc. Replication to the cloud
CN107844259B (zh) * 2016-09-18 2020-06-16 华为技术有限公司 数据访问方法、路由装置和存储系统
KR102442431B1 (ko) * 2017-10-31 2022-09-08 아브 이니티오 테크놀로지 엘엘시 상태 업데이트의 일관성에 기초하는 컴퓨팅 클러스터 관리
US11216370B2 (en) * 2018-02-20 2022-01-04 Medtronic, Inc. Methods and devices that utilize hardware to move blocks of operating parameter data from memory to a register set
US10642521B2 (en) * 2018-05-11 2020-05-05 International Business Machines Corporation Scaling distributed queues in a distributed storage network
US10942725B2 (en) * 2018-07-30 2021-03-09 Ford Global Technologies, Llc Over the air Ecu update
US11038961B2 (en) 2018-10-26 2021-06-15 Western Digital Technologies, Inc. Ethernet in data storage device
US11714760B2 (en) * 2019-05-24 2023-08-01 Texas Instmments Incorporated Methods and apparatus to reduce bank pressure using aggressive write merging
US11119862B2 (en) * 2019-10-11 2021-09-14 Seagate Technology Llc Delta information volumes to enable chained replication of data by uploading snapshots of data to cloud
US11755230B2 (en) * 2021-04-22 2023-09-12 EMC IP Holding Company LLC Asynchronous remote replication of snapshots

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1704903A (zh) * 2004-06-03 2005-12-07 华为技术有限公司 一种快照备份的方法
CN101126998A (zh) * 2006-08-15 2008-02-20 英业达股份有限公司 群聚式计算机系统高速缓存数据备份处理方法及系统
EP2336901A2 (en) * 2009-12-16 2011-06-22 Sap Ag Online access to database snapshots
US8073922B2 (en) * 2007-07-27 2011-12-06 Twinstrata, Inc System and method for remote asynchronous data replication

Family Cites Families (54)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR0128271B1 (ko) 1994-02-22 1998-04-15 윌리암 티. 엘리스 재해회복을 위한 일관성 그룹 형성방법 및 레코드갱싱의 섀도잉 방법, 주시스템, 원격데이타 섀도잉 시스템과 비동기 원격데이타 복제 시스템
US5758359A (en) * 1996-10-24 1998-05-26 Digital Equipment Corporation Method and apparatus for performing retroactive backups in a computer system
US6081875A (en) 1997-05-19 2000-06-27 Emc Corporation Apparatus and method for backup of a disk storage system
JP2000137638A (ja) * 1998-10-29 2000-05-16 Hitachi Ltd 情報記憶システム
US6526418B1 (en) * 1999-12-16 2003-02-25 Livevault Corporation Systems and methods for backing up data files
US6675177B1 (en) * 2000-06-21 2004-01-06 Teradactyl, Llc Method and system for backing up digital data
US6988165B2 (en) * 2002-05-20 2006-01-17 Pervasive Software, Inc. System and method for intelligent write management of disk pages in cache checkpoint operations
JP2004013367A (ja) * 2002-06-05 2004-01-15 Hitachi Ltd データ記憶サブシステム
US7761421B2 (en) 2003-05-16 2010-07-20 Hewlett-Packard Development Company, L.P. Read, write, and recovery operations for replicated data
JP2005309550A (ja) * 2004-04-19 2005-11-04 Hitachi Ltd リモートコピー方法及びリモートコピーシステム
JP4267421B2 (ja) * 2003-10-24 2009-05-27 株式会社日立製作所 リモートサイト及び/又はローカルサイトのストレージシステム及びリモートサイトストレージシステムのファイル参照方法
US7054883B2 (en) * 2003-12-01 2006-05-30 Emc Corporation Virtual ordered writes for multiple storage devices
ATE466338T1 (de) * 2004-02-12 2010-05-15 Irdeto Access Bv Verfahren und system zur externen speicherung von daten
JP4455927B2 (ja) * 2004-04-22 2010-04-21 株式会社日立製作所 バックアップ処理方法及び実施装置並びに処理プログラム
JP4519563B2 (ja) * 2004-08-04 2010-08-04 株式会社日立製作所 記憶システム及びデータ処理システム
JP4377790B2 (ja) * 2004-09-30 2009-12-02 株式会社日立製作所 リモートコピーシステムおよびリモートコピー方法
US7519851B2 (en) * 2005-02-08 2009-04-14 Hitachi, Ltd. Apparatus for replicating volumes between heterogenous storage systems
US8127174B1 (en) * 2005-02-28 2012-02-28 Symantec Operating Corporation Method and apparatus for performing transparent in-memory checkpointing
US8005795B2 (en) * 2005-03-04 2011-08-23 Emc Corporation Techniques for recording file operations and consistency points for producing a consistent copy
US7310716B2 (en) * 2005-03-04 2007-12-18 Emc Corporation Techniques for producing a consistent copy of source data at a target location
JP2007066154A (ja) * 2005-09-01 2007-03-15 Hitachi Ltd データをコピーして複数の記憶装置に格納するストレージシステム
EP1974296B8 (en) * 2005-12-19 2016-09-21 Commvault Systems, Inc. Systems and methods for performing data replication
US7761663B2 (en) * 2006-02-16 2010-07-20 Hewlett-Packard Development Company, L.P. Operating a replicated cache that includes receiving confirmation that a flush operation was initiated
JP2007323507A (ja) * 2006-06-02 2007-12-13 Hitachi Ltd 記憶システム並びにこれを用いたデータの処理方法
US8150805B1 (en) * 2006-06-30 2012-04-03 Symantec Operating Corporation Consistency interval marker assisted in-band commands in distributed systems
US7885923B1 (en) * 2006-06-30 2011-02-08 Symantec Operating Corporation On demand consistency checkpoints for temporal volumes within consistency interval marker based replication
US8726242B2 (en) * 2006-07-27 2014-05-13 Commvault Systems, Inc. Systems and methods for continuous data replication
GB0616257D0 (en) * 2006-08-16 2006-09-27 Ibm Storage management system for preserving consistency of remote copy data
US8145865B1 (en) * 2006-09-29 2012-03-27 Emc Corporation Virtual ordered writes spillover mechanism
KR20080033763A (ko) 2006-10-13 2008-04-17 삼성전자주식회사 와이브로 네트워크에서의 상호인증을 통한 핸드오버 방법및 그 시스템
US8768890B2 (en) * 2007-03-14 2014-07-01 Microsoft Corporation Delaying database writes for database consistency
JP4964714B2 (ja) * 2007-09-05 2012-07-04 株式会社日立製作所 ストレージ装置及びデータの管理方法
US8140772B1 (en) * 2007-11-06 2012-03-20 Board Of Governors For Higher Education, State Of Rhode Island And Providence Plantations System and method for maintaining redundant storages coherent using sliding windows of eager execution transactions
CN101634968B (zh) * 2008-01-17 2011-12-14 四川格瑞特科技有限公司 一种用于备份系统的海量数据高速缓存器的构造方法
ES2575155T3 (es) 2008-08-08 2016-06-24 Amazon Technologies, Inc. Suministro de programas de ejecución con acceso fiable al almacenamiento de datos a nivel de bloque no local
US8250031B2 (en) 2008-08-26 2012-08-21 Hitachi, Ltd. Low traffic failback remote copy
US8767934B2 (en) 2008-09-03 2014-07-01 Avaya Inc. Associating a topic with a telecommunications address
US8762642B2 (en) * 2009-01-30 2014-06-24 Twinstrata Inc System and method for secure and reliable multi-cloud data replication
CN101751230B (zh) * 2009-12-29 2011-11-09 成都市华为赛门铁克科技有限公司 标定i/o数据的时间戳的设备及方法
US9389892B2 (en) * 2010-03-17 2016-07-12 Zerto Ltd. Multiple points in time disk images for disaster recovery
JP5170169B2 (ja) * 2010-06-18 2013-03-27 Necシステムテクノロジー株式会社 ディスクアレイ装置間のリモートコピー処理システム、処理方法、及び処理用プログラム
CN101901173A (zh) * 2010-07-22 2010-12-01 上海骊畅信息科技有限公司 一种灾备系统及灾备方法
US8443149B2 (en) * 2010-09-01 2013-05-14 International Business Machines Corporation Evicting data from a cache via a batch file
US8255637B2 (en) * 2010-09-27 2012-08-28 Infinidat Ltd. Mass storage system and method of operating using consistency checkpoints and destaging
US8667236B2 (en) * 2010-09-29 2014-03-04 Hewlett-Packard Development Company, L.P. Host based write ordering for asynchronous replication
US9792941B2 (en) * 2011-03-23 2017-10-17 Stormagic Limited Method and system for data replication
CN102306115B (zh) * 2011-05-20 2014-01-08 华为数字技术(成都)有限公司 异步远程复制方法、系统及设备
CN103092526B (zh) 2011-10-31 2016-03-30 国际商业机器公司 在存储设备间进行数据迁移的方法和装置
US8806281B1 (en) * 2012-01-23 2014-08-12 Symantec Corporation Systems and methods for displaying backup-status information for computing resources
JP6183876B2 (ja) * 2012-03-30 2017-08-23 日本電気株式会社 レプリケーション装置、レプリケーション方法及びプログラム
US20130339569A1 (en) * 2012-06-14 2013-12-19 Infinidat Ltd. Storage System and Method for Operating Thereof
US10318495B2 (en) * 2012-09-24 2019-06-11 Sandisk Technologies Llc Snapshots for a non-volatile device
US9311014B2 (en) * 2012-11-29 2016-04-12 Infinidat Ltd. Storage system and methods of mapping addresses of snapshot families
WO2015010327A1 (zh) * 2013-07-26 2015-01-29 华为技术有限公司 数据发送方法、数据接收方法和存储设备

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1704903A (zh) * 2004-06-03 2005-12-07 华为技术有限公司 一种快照备份的方法
CN101126998A (zh) * 2006-08-15 2008-02-20 英业达股份有限公司 群聚式计算机系统高速缓存数据备份处理方法及系统
US8073922B2 (en) * 2007-07-27 2011-12-06 Twinstrata, Inc System and method for remote asynchronous data replication
EP2336901A2 (en) * 2009-12-16 2011-06-22 Sap Ag Online access to database snapshots

Cited By (32)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2015035814A1 (zh) * 2013-09-10 2015-03-19 华为技术有限公司 一种写数据方法及存储设备
WO2016094145A1 (en) * 2014-12-11 2016-06-16 Pure Storage, Inc. Cloud alert to replica
US9552248B2 (en) 2014-12-11 2017-01-24 Pure Storage, Inc. Cloud alert to replica
US10235065B1 (en) 2014-12-11 2019-03-19 Pure Storage, Inc. Datasheet replication in a cloud computing environment
WO2018040591A1 (zh) * 2016-09-05 2018-03-08 华为技术有限公司 一种远程数据复制方法及系统
US10795788B2 (en) 2016-09-05 2020-10-06 Huawei Technologies Co., Ltd. Remote data replication method and system
US11550675B2 (en) 2016-09-05 2023-01-10 Huawei Technologies Co., Ltd. Remote data replication method and system
US11461202B2 (en) 2016-09-05 2022-10-04 Huawei Technologies Co., Ltd. Remote data replication method and system
CN112068992A (zh) * 2016-10-28 2020-12-11 华为技术有限公司 一种远程数据复制方法、存储设备及存储系统
WO2018086466A1 (zh) * 2016-11-11 2018-05-17 华为技术有限公司 数据处理方法和存储管理系统
WO2018094961A1 (zh) * 2016-11-28 2018-05-31 华为技术有限公司 一种处理写请求的方法、装置和数据中心
CN106598768A (zh) * 2016-11-28 2017-04-26 华为技术有限公司 一种处理写请求的方法、装置和数据中心
CN106598768B (zh) * 2016-11-28 2020-02-14 华为技术有限公司 一种处理写请求的方法、装置和数据中心
CN108449277A (zh) * 2016-12-12 2018-08-24 华为技术有限公司 一种报文发送方法及装置
CN108449277B (zh) * 2016-12-12 2020-07-24 华为技术有限公司 一种报文发送方法及装置
CN106776369A (zh) * 2016-12-12 2017-05-31 郑州云海信息技术有限公司 一种缓存镜像的方法及装置
CN108475254A (zh) * 2016-12-16 2018-08-31 华为技术有限公司 对象复制方法、装置及对象存储设备
CN106776147A (zh) * 2016-12-29 2017-05-31 华为技术有限公司 一种差异数据备份方法和差异数据备份装置
WO2018120844A1 (zh) * 2016-12-29 2018-07-05 华为技术有限公司 一种差异数据备份方法和差异数据备份装置
CN106776147B (zh) * 2016-12-29 2020-10-09 华为技术有限公司 一种差异数据备份方法和差异数据备份装置
CN107122261A (zh) * 2017-04-18 2017-09-01 杭州宏杉科技股份有限公司 一种存储设备的数据读写方法及装置
CN107122261B (zh) * 2017-04-18 2020-04-07 杭州宏杉科技股份有限公司 一种存储设备的数据读写方法及装置
CN107577421A (zh) * 2017-07-31 2018-01-12 深圳市牛鼎丰科技有限公司 智能设备扩容方法、装置、存储介质和计算机设备
CN108052294A (zh) * 2017-12-26 2018-05-18 郑州云海信息技术有限公司 一种分布式存储系统的修改写方法和修改写系统
CN108052294B (zh) * 2017-12-26 2021-05-28 郑州云海信息技术有限公司 一种分布式存储系统的修改写方法和修改写系统
CN109032527B (zh) * 2018-07-27 2021-07-27 深圳华大北斗科技有限公司 数据处理方法、存储介质及计算机设备
CN109032527A (zh) * 2018-07-27 2018-12-18 深圳华大北斗科技有限公司 数据处理方法、存储介质及计算机设备
CN109697035B (zh) * 2018-12-24 2022-03-29 深圳市明微电子股份有限公司 级联设备的地址数据的写入方法、写入设备及存储介质
CN109697035A (zh) * 2018-12-24 2019-04-30 深圳市明微电子股份有限公司 级联设备的地址数据的写入方法、写入设备及存储介质
CN114731282A (zh) * 2019-11-22 2022-07-08 华为技术有限公司 处理非缓存写数据请求的方法、缓存器和节点
CN114731282B (zh) * 2019-11-22 2023-06-02 华为技术有限公司 处理非缓存写数据请求的方法、缓存器和节点
US11789866B2 (en) 2019-11-22 2023-10-17 Huawei Technologies Co., Ltd. Method for processing non-cache data write request, cache, and node

Also Published As

Publication number Publication date
US20150113317A1 (en) 2015-04-23
JP2015527670A (ja) 2015-09-17
AU2016203273A1 (en) 2016-06-09
EP3179359A1 (en) 2017-06-14
HUE037094T2 (hu) 2018-08-28
RU2596585C2 (ru) 2016-09-10
JP6344798B2 (ja) 2018-06-20
EP2849048A1 (en) 2015-03-18
ES2610784T3 (es) 2017-05-03
KR101602312B1 (ko) 2016-03-21
ES2666580T3 (es) 2018-05-07
EP2849048B1 (en) 2016-10-19
DK3179359T3 (en) 2018-06-14
NO3179359T3 (zh) 2018-08-04
AU2013385792A1 (en) 2015-02-12
JP2018041506A (ja) 2018-03-15
US20160188240A1 (en) 2016-06-30
RU2014145359A (ru) 2016-05-27
CA2868247A1 (en) 2015-01-26
CA2868247C (en) 2017-04-04
WO2015010394A1 (zh) 2015-01-29
WO2015010327A1 (zh) 2015-01-29
US10108367B2 (en) 2018-10-23
AU2013385792B2 (en) 2016-04-14
EP3179359B1 (en) 2018-03-07
KR20150035507A (ko) 2015-04-06
US9311191B2 (en) 2016-04-12
EP2849048A4 (en) 2015-05-27

Similar Documents

Publication Publication Date Title
CN103649901A (zh) 数据发送方法、数据接收方法和存储设备
US10795788B2 (en) Remote data replication method and system
US11734306B2 (en) Data replication method and storage system
US7669032B2 (en) Host-based virtualization optimizations in storage environments employing off-host storage virtualization
US7689803B2 (en) System and method for communication using emulated LUN blocks in storage virtualization environments
CN107133132B (zh) 数据发送方法、数据接收方法和存储设备
CN103534688B (zh) 数据恢复方法、存储设备和存储系统
US20190317872A1 (en) Database cluster architecture based on dual port solid state disk
CN103942112A (zh) 磁盘容错方法、装置及系统
CN104363977A (zh) 数据复制方法、数据复制装置和存储设备
CN103221925A (zh) 数据处理方法和存储设备
CN103608784A (zh) 网络卷创建方法、数据存储方法、存储设备和存储系统
US20210124510A1 (en) Using telemetry data from different storage systems to predict response time
CN110058963B (zh) 用于管理存储系统的方法、设备和计算机程序产品

Legal Events

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

Application publication date: 20140319