CN111684407B - 多个数据存储系统中的同步安全数据提交扫描 - Google Patents
多个数据存储系统中的同步安全数据提交扫描 Download PDFInfo
- Publication number
- CN111684407B CN111684407B CN201980011912.XA CN201980011912A CN111684407B CN 111684407 B CN111684407 B CN 111684407B CN 201980011912 A CN201980011912 A CN 201980011912A CN 111684407 B CN111684407 B CN 111684407B
- Authority
- CN
- China
- Prior art keywords
- data storage
- storage system
- secure data
- commit scan
- secure
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/20—Error 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/2053—Error 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/2056—Error 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/2058—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant by mirroring using more than 2 mirrored copies
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/065—Replication mechanisms
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/20—Error 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/2053—Error 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/2056—Error 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/2066—Optimisation of the communication load
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
- G06F3/0619—Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0653—Monitoring storage devices or systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/067—Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/20—Error 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/2097—Error 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/835—Timestamp
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)
- Computer Security & Cryptography (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Hardware Redundancy (AREA)
Abstract
在本说明书的一个方面,可以对分布式数据存储系统的各个数据存储系统的安全数据提交扫描操作进行同步,以减少输入/输出(I/O)响应时间减少的发生。在一个实施例中,对分布式数据存储系统的各个数据存储系统的一组安全数据提交扫描操作进行同步定时,以在单个同步安全数据提交扫描设置间隔内在时间上基本重叠,以减少或消除在同步安全数据提交扫描设置间隔之外的输入/输出响应时间减少的发生。根据特定应用,可以实现其它特征和方面。
Description
技术领域
本发明涉及用于多个数据存储系统中的同步安全数据提交扫描的计算机程序产品、系统和方法。
背景技术
数据存储系统,特别是在企业级的数据存储系统,通常被设计为提供高级别的冗余,以在数据存储系统的组件发生故障的情况下降低数据丢失的风险。因此,数据的多个副本频繁地存储在分布式数据存储系统的多个系统上,其中,各个数据存储系统可以在地理上分散。因此,来自主机的要存储在分布式数据存储系统中的数据通常被引导到本地站点处的第一级数据存储系统的第一级设备,然后被复制到第二级数据存储系统的一个或多个第二级设备,第二级数据存储系统可以是地理上远离第一级数据存储系统的系统。第一级设备可以具有多个第二级关系,其中被定向到第一级设备的数据被复制到多个第二级设备。
复制过程,即,将数据复制或镜像到第二级数据存储设备的过程可以在第一级数据存储设备和第二级数据存储设备之间以同步或异步关系建立。在同步关系中,在第一级数据存储设备向主机报告数据存储输入/输出(I/O)操作已经成功完成之前,对第一级数据存储设备的任何更新通常与第二级数据存储设备同步,即,成功地复制到第二级数据存储设备。在异步关系中,对第一级数据存储设备的成功更新通常作为成功的存储输入/输出操作被报告给主机,而不等待更新被复制到第二级数据存储设备。
存储控制器可以控制多个存储设备,所述存储设备可以包括硬盘、磁带、固态驱动器等。高速缓存也可由存储控制器维护,其中高速缓存可包括与某些其它存储设备,如硬盘、磁带等相比可更快访问的高速存储装置。然而,与由存储控制器控制的某些其它存储设备(例如硬盘等)的存储容量相比,高速缓存的存储容量的总量可能相对较小。高速缓存可以包括随机存取存储器(RAM)、非易失性存储设备(NVS)、读高速缓存、写高速缓存等中的一个或多个,它们可以以不同的方式彼此互操作。NVS可以包括电池备份随机存取存储器,并且可以允许高速执行写操作。存储控制器可以管理从联网主机到多个存储设备的输入/输出(I/O)请求。
由存储控制器实现的高速缓存技术有助于隐藏输入/输出(I/O)延迟。高速缓存用于对从外部存储装置分级的数据的快速访问,以服务于读取数据访问请求,并且提供对修改的数据的缓冲。写请求被写入高速缓存,然后被写入(即,降级)到外部存储设备。
为了保证写入的持续低延迟,NVS中的数据可能必须被排空,即降级,以便确保总是存在用于传入的写入的一些空闲空间;否则,后续写入可能变得有效同步,这可能不利地影响主机写入的响应时间。存储控制器经常采用安全数据提交过程,其扫描高速缓存目录以使修改(通常称为"脏")数据被降级到存储””装置。可以使用定时器来启动高速缓存目录的这种扫描,以便周期性地(例如,以小时为单位)启动扫描。在预期到其它事件时,例如,诸如将数据高速缓存在特定高速缓存中的处理器的编程加载,或第一级和第二级数据存储系统的第一级和第二级角色的交换,也可以启动安全数据提交过程以完全清空高速缓存。
在完成安全数据提交扫描操作时,通常将扫描开始的时间记录为"时间戳",其允许操作员确保在安全数据提交扫描开始时间之前写入数据存储系统的高速缓存的任何东西已经成功地降级并安全地存储在数据存储系统的存储装置上。然而,这种安全数据提交扫描操作会消耗大量的系统资源,导致并发输入/输出操作的响应时间显著减慢。每次分布式数据存储系统的个体数据存储系统进行安全数据提交扫描操作时,可以重复这种响应时间的减慢。结果,当由分布式数据存储系统的各个个体数据存储系统执行安全数据提交扫描操作时,分布式数据存储系统的操作员可能经历多次这样的输入/输出操作响应时间的减慢。
发明内容
在多个数据存储系统中采用同步的安全数据提交扫描的计算环境的一个一般方面包括对多个数据存储系统中的第一组安全数据提交扫描操作进行同步,每个安全数据提交扫描操作将在数据存储系统的高速缓存中所缓存的数据降级到数据存储系统的数据存储单元。在一个方面,对第一组安全数据提交扫描操作进行同步包括在第一数据存储系统中启动第一组安全数据提交扫描操作中的第一安全数据提交扫描操作,并将从第一数据存储系统向第二数据存储系统发送第一开始安全数据提交扫描操作消息。响应于第一开始安全提交扫描操作消息,在第二数据存储系统中启动第一组安全数据提交扫描操作中的第二安全数据提交扫描操作。
根据一个方面,提供了一种用于与多个数据存储系统一起使用的计算机程序产品,多个数据存储系统各自具有存储控制器和由存储控制器控制并且被配置为存储数据的数据存储单元,其中每个数据存储系统的存储控制器具有处理器和高速缓存,并且其中计算机程序产品包括具有随其体现的程序指令的计算机可读存储介质,程序指令可由存储控制器的处理器执行以引起处理器操作,处理器操作包括:对多个数据存储系统中的第一组安全数据提交扫描操作进行同步,每个安全数据提交扫描操作将数据存储系统的高速缓存中所缓存的数据降级到数据存储系统的数据存储单元,其中对所述第一组安全数据提交扫描操作进行同步包括:在第一数据存储系统中启动所述第一组安全数据提交扫描操作中的第一安全数据提交扫描操作;从所述第一数据存储系统向第二数据存储系统发送第一开始安全数据提交扫描操作消息;以及响应于第一开始安全提交扫描操作消息,在第二数据存储系统中启动第一组安全数据提交扫描操作中的第二安全数据提交扫描操作。
根据一个方面,提供了一种系统,包括:多个数据存储系统,每个数据存储系统具有存储控制器和由存储控制器控制并被配置为存储数据的数据存储单元,其中每个数据存储系统的存储控制器具有处理器和高速缓存,其中所述多个数据存储系统包括被配置为第一级数据存储系统的第一数据存储系统和被配置为第二级数据存储系统的第二数据存储系统;以及一种计算机程序产品,包括具有随其体现的程序指令的计算机可读存储介质,所述程序指令可由存储控制器的处理器执行以引起处理器操作,所述处理器操作包括:对多个数据存储系统中的第一组安全数据提交扫描操作进行同步,每个安全数据提交扫描操作将数据存储系统的高速缓存中所缓存的数据降级到数据存储系统的数据存储单元,其中对所述第一组安全数据提交扫描操作进行同步包括:在第一数据存储系统中启动所述第一组安全数据提交扫描操作中的第一安全数据提交扫描操作;从所述第一数据存储系统向第二数据存储系统发送第一开始安全数据提交扫描操作消息;以及响应于第一开始安全提交扫描操作消息,在第二数据存储系统中启动第一组安全数据提交扫描操作中的第二安全数据提交扫描操作。
在一个实施例中,特定数据存储系统的每个安全数据提交扫描操作由开始消息或同步定时器间隔的到期启动,但不是由两者都启动。
所描述的技术的实现可以包括硬件、方法或过程、或计算机可访问介质上的计算机软件。根据特定应用,可以实现其它特征和方面。
附图说明
现在将参考附图仅通过示例的方式描述本发明的实施例,在附图中:
图1示出了根据本说明书的一个实施例的在多个数据存储系统中采用同步的安全数据提交扫描的计算环境的实施例。
图2示出了根据本说明书的一个实施例的图1的计算环境中的数据存储系统的示例,其中该数据存储系统具有采用同步的安全数据提交扫描的存储管理器。
图3示出了图1的计算环境中的主机的示例。
图4示出了根据本说明书的一个实施例的采用同步安全数据提交扫描的分布式数据存储系统的第一级数据存储系统的操作的示例。
图5A、5B和5B'描绘了根据本说明书的一个实施例的采用同步安全数据提交扫描的分布式数据存储系统的第一级、第二级和第三级数据存储系统的操作的时间线的示例。
图6示出了根据本说明书的一个实施例的采用同步的安全数据提交扫描的分布式数据存储系统的第二级数据存储系统的操作的示例。
图7示出了根据本说明书的一个实施例的采用同步安全数据提交扫描的分布式数据存储系统的第三级数据存储系统的操作的示例。
图8示出根据本说明书的一个实施例的采用同步的安全数据提交扫描的分布式数据存储系统的主数据存储系统和辅助数据存储系统的操作的时间线的示例。
图9示出了根据本说明书的一个实施例的采用同步安全数据提交扫描的计算机实施例。
具体实施方式
如上所述,当由分布式数据存储系统的各个数据存储系统执行安全数据提交扫描操作时,现有分布式数据存储系统的操作员可能经历输入/输出操作的响应时间的多次减慢。在本文中可以理解,在许多这种现有的分布式数据存储系统中,由分布式数据存储系统的每个个体数据存储系统采用的用于启动安全数据提交扫描操作的定时器在各种个体数据存储系统中通常彼此独立。例如,在具有三个个体数据存储系统的现有分布式数据存储系统中,例如第一级、第二级和第三级数据存储系统,由于在每个数据存储系统中在三个不同和不同的时间独立进行三个独立的安全数据提交扫描,分布式数据存储系统的操作员经历I/O响应时间的减慢可能存在多达三个不同和不同的时间。
在本说明书的一个实施例中,可以对分布式数据存储系统的个体数据存储系统的安全数据提交扫描操作进行同步,以减少I/O响应时间减少的发生。在一个实施例中,分布式数据存储系统中的个体数据存储系统的一组安全数据提交扫描操作被同步定时,以在单个同步安全数据提交扫描设置间隔内在时间上基本重叠,以减少或消除在同步安全数据提交扫描设置间隔之外的输入/输出响应时间减少的发生。
例如,在一个实施例中,当在诸如第一级数据存储系统的数据存储系统中启动安全数据提交扫描操作时,第一级数据存储系统可以向诸如第二级数据存储系统的另一数据存储系统发送开始安全数据提交扫描操作消息。响应于开始安全提交扫描操作消息,第二级数据存储系统启动其自己的安全数据提交扫描操作。该过程可以由第二级数据存储系统重复,向诸如第三级数据存储系统的另一数据存储系统发送开始安全数据提交扫描操作消息,作为响应,第三级数据存储系统启动其自己的安全数据提交扫描操作。以这种方式,可以同步分布式数据存储系统的各个个体存储系统的一组安全数据提交扫描操作,以减少分布式数据存储系统的I/O操作的响应时间的减慢的发生,提供计算机技术的改进。
在本说明书的另一实施例中,在第一级数据存储系统中完成安全数据提交扫描操作时,第一级数据存储系统可以开始全局定时器,该全局定时器对另一组同步的安全数据提交扫描操作的全局同步定时器间隔进行定时。响应于第一级数据存储系统中的全局同步定时器间隔的到期,第一级数据存储系统可以通过向第二级数据存储系统发送另一开始安全数据提交扫描操作消息,该第二级数据存储系统进而向第三级数据存储系统发送另一开始安全数据提交扫描操作消息,来发来发起另一组同步的安全数据提交扫描操作。以这种方式,可以同步分布式数据存储系统的各个个体存储系统的另一组安全数据提交扫描操作,以减少分布式数据存储系统的I/O操作的响应时间中减慢的发生。
在本说明书的又一实施例中,诸如第二级和第三级数据存储系统的数据存储系统还可以在完成其各自的数据存储系统中的安全数据提交扫描操作时,各自开始局部定时器,该局部定时器对下一组同步安全数据提交扫描操作的同步局部定时器间隔进行定时。因此,在到局部同步定时器间隔到期时没有及时接收到开始安全数据提交扫描操作消息的情况下,仍然可以响应于局部同步定时器间隔的到期而启动另一安全数据提交扫描操作。
在本说明书的又一实施例中,在接收到开始安全数据提交扫描操作消息时,重置局部同步定时器间隔,使得安全数据提交扫描操作仅由接收到的开始消息启动,而不是响应于局部同同步定时器间隔的后续到期而再次启动。以这种方式,特定数据存储系统的每个安全数据提交扫描操作由开始消息或局部同步定时器间隔的到期而不是两者启动。
因此,可以由个体数据存储系统响应于开始安全数据提交扫描消息的接收,或者响应于如果没有及时接收到开始安全数据提交扫描消息则同步定时器间隔的到期,来对分布式数据存储系统的各个个体存储系统的一组安全数据提交扫描操作进行同步。结果,通过同步分布式数据存储系统的各个个体存储系统的每组安全数据提交扫描操作,可以减少或最小化分布式数据存储系统的I/O操作的响应时间的减慢的发生,提供计算机技术的改进。取决于特定的应用,可以实现其它实施例和优点。
一个或多个计算机的系统可被配置成根据本说明书进行同步安全数据提交扫描,这是由于具有安装在系统上的软件、固件、硬件或其组合,其在操作中使得或促使系统执行根据本说明书的同步安全数据提交扫描操作。例如,一个或多个计算机程序可以被配置为通过借助于包括指令来执行同步的安全数据提交扫描,所述指令在由数据处理装置执行时使得所述装置执行所述动作。
本文描述的操作由逻辑来执行,该逻辑被配置为自动地或基本上自动地执行操作,而几乎没有或没有系统操作员的干预,除非被指示为手动执行。因此,如本文所使用的,术语"自动"包括全自动,即由一个或多个硬件或软件控制的机器执行的操作,而没有诸如对图形用户选择界面的用户输入的人工干预。如本文所使用的,术语"自动"还主要包括自动的,即,大多数操作(例如,大于50%)由一个或多个硬件或软件控制的机器在没有诸如对图形用户选择界面的用户输入的人工干预的情况下执行,并且操作中的剩余操作(例如,小于50%)手动执行,即,手动操作由一个或多个硬件或软件控制的机器在诸如对图形用户选择界面的用户输入的人工干预的情况下执行,以引导操作的执行。
本说明书中描述的许多功能元件已经被标记为"逻辑",以便更具体地强调它们的实现独立性。例如,逻辑元件可以被实现为包括定制VLSI电路或门阵列的硬件电路、诸如逻辑芯片、晶体管或其他分立组件的现成半导体。逻辑元件也可以在可编程硬件设备中实现,例如现场可编程门阵列、可编程阵列逻辑、可编程逻辑设备等。
逻辑元件也可以以由各种类型的处理器执行的软件来实现。包括可执行代码的逻辑元件例如可以包括计算机指令的一个或多个物理或逻辑块,其例如可以被组织为对象、过程或函数。然而,标识的逻辑元件的可执行代码不需要物理地位于一起,而是可以包括存储在不同位置中的不同指令,当这些指令在逻辑上被结合在一起时,包括逻辑元件并实现逻辑元件的规定目的。
实际上,用于逻辑元件的可执行代码可以是单个指令,或者许多指令,并且甚至可以分布在若干不同的代码段上、在不同的程序之间、在不同的处理器之间、以及跨越若干存储器设备。类似地,在本文中操作数据可以在逻辑元件内被标识和示出,并且可以以任何合适的形式被体现并且被组织在任何合适类型的数据结构内。操作数据可以被收集为单个数据集,或者可以分布在不同位置上,包括分布在不同存储设备上。
所描述的技术的实现可以包括硬件、方法或过程、或计算机可访问介质上的计算机软件。图1、2示出了根据本说明书的采用同步的安全数据提交扫描的计算环境的实施例。多个主机a,1b…1n可通过网络6向一个或多个数据存储设备或系统2a,2b,2c,2(图2)提交输入/输出(I/O)请求以读取或写入数据。主机1a、1b...1n可以是分离的物理设备,或者可以是例如使用服务器的分区的分配资源实现的虚拟设备。以类似的方式,一个或多个数据存储系统2(图2)、2a、2b、2c可以是单独的物理设备,或者可以是使用例如一个或多个服务器的分区的分配资源实现的虚拟设备。
在所示的实施例中,数据存储系统2a至少最初被标识为第一级数据存储系统,数据存储系统2b至少最初被标识为第二级数据存储系统,其中由主机存储在第一级数据存储系统2a上的数据被镜像到第二级数据存储系统2b。尽管图1中描述的实施例描述了单个第二级数据存储系统2b,但是可以理解,第一级数据存储系统2a可以具有多于一个的第二级数据存储系统。第三数据存储系统2c至少最初被标识为第三级数据存储系统,其中被镜像到第二级数据存储系统2b的数据又被镜像到第三级数据存储系统2c。
每个数据存储系统2(图2)、2a、2b、2c分别包括存储控制器或控制单元4(图2)、4a、4b、4c,其分别访问存储在存储装置10、10a、10b、10c的多个数据存储单元中的数据。存储装置10、10a、10b、10c的每个数据存储单元可以包括能够存储数据的任何适当的设备,例如本领域已知的物理硬盘、固态驱动器等。因此,在一个实施例中,存储装置10、10a、10b、10c可以包括一个或多个顺序存取存储设备,例如硬盘驱动器和磁带,或者可以包括非顺序存取存储设备,例如固态驱动器(SSD)。存储装置10(图2)、10a、10b、10c的每个设备可以包括用于数据存储的单个顺序或非顺序存取设备,或者可以包括用于数据存储的设备阵列,例如简单磁盘捆绑(JBOD)、直接存取存储设备(DASD)、独立磁盘冗余阵列(RAID)、虚拟化设备、磁带存储、闪存等。
在某些实施例中,例如,存储单元可以是被配置为独立磁盘冗余阵列(RAID)存储列或阵列11a(图2),...11-11n的磁盘,其中一个或多个RAID存储列是RAID配置中的硬盘阵列,以便于在硬盘丢失的情况下进行数据恢复。存储装置10、10a、10b的存储单元还可以包括其他类型的存储装置,诸如RAID配置中的固态驱动器,以便于在固态驱动器丢失的情况下的数据恢复。存储装置10(图2)、10a、10b、10c的存储单元可以被配置为将数据存储在数据存储装置的子单元中,例如卷、轨道等。
每个存储控制器4(图2)、4a、4b、4c,包括CPU复合体12(图2),其包括由一个或多个处理器或中央处理单元提供的处理器资源,每个处理器或中央处理单元具有单个或多个处理器核。在该实施例中,处理器核包含执行指令所涉及的CPU的组件,例如算术逻辑单元(ALU)、浮点单元(FPU)和/或各级高速缓存(例如L1和L2高速缓存)。应当理解,除了或代替本文提到的那些,处理器核可以具有其它逻辑元件。
每个存储控制器4(图2)、4a、4b、4c还具有存储器20,其包括用于管理存储操作的存储管理器24,所述存储操作包括响应于来自主机的I/O数据请求或来自另一数据存储系统的镜像数据,将数据写入到相关联的存储装置10(图2)、10a、10b、10c或从其读取数据。存储器20的高速缓存28可以包括一个或多个不同类型的存储器,诸如RAM、写高速缓存、读高速缓存、NVS等。包括高速缓存的不同类型的存储器可以彼此互操作。每个存储控制器4(图2)、4a、4b、4c的CPU复合体12可以具有多个处理器集群,每个集群具有其自己分配的存储器20、存储管理器24、高速缓存28等。根据特定应用,分配给每个集群的处理和存储器资源可以是物理的、虚拟的、共享的、可转移的或专用的。
来自主机1a...1n的写入可以初始地被写入第一级存储控制器4a的高速缓存28,然后稍后降级到第一级存储系统2a的存储设备10a。如果对应的信息在第一级存储控制器4a的高速缓存28中可用,则可以从该高速缓存28满足来自主机1a...1n的读取请求,否则将该信息从存储装置10a升级到高速缓存28,然后将其提供给发出请求的主机1a...1n。
来自最初写入到第一级存储控制器4a的高速缓存28和存储装置10a的主机1a...1n的写入可以由第一级存储控制器4a的存储管理器24镜像到第二级存储控制器4b。镜像数据可以初始地被写入到第二级存储控制器4b的高速缓存28,然后稍后被降级到由第二级存储系统2b的第二级存储控制器4b控制的存储装置10b。被镜像到第二级存储控制器4b的高速缓存28和存储装置10b的数据可以由第二级存储控制器4b的存储管理器24镜像到第三级存储控制器4c。镜像数据可以初始地被写入第三级存储控制器4c的高速缓存28,然后稍后被降级到由第三级数据存储系统2c的第三级存储控制器4c控制的存储装置10c。
存储控制器4(图2)、4a、4b、4c的存储器20包括高速缓存目录30,其标识具有存储在高速缓存28中的数据的轨道,作为将存储在存储装置10(图2)、10a、10b、10c中的道的数据传送到高速缓存28的预升级级或升级操作的结果,或者作为将数据写入高速缓存28以便随后降级到存储装置10(图2)、10a、10b、10c的对应一个或多个轨道的主机或镜像写入操作的结果。在所示实施例中,高速缓存目录30以已知数据结构的形式实现,该数据结构是高速缓存28中所有轨道的散列表。每个轨道被散列到高速缓存目录30的槽中,其包括轨道标识(ID)和关于该轨道的数据是否是"脏的"的指示,即,还没有被安全地降级到存储装置10(图2)、10a、10b、10c的相应轨道。散列到槽中的多个轨道被链接在一起。可以理解,可以使用其它类型的数据结构来实现合适的高速缓存目录。
在所示实施例中,包括存储管理器24的I/O操作的操作,包括高速缓存写入、升级、预升级和降级操作,例如利用存储器20的任务控制块(TCB)32。每个TCB是操作系统内核中的数据结构,包含管理特定进程所需的信息。存储控制器可通过使用TCB来管理数据的移动,来将信息从调整缓存移至存储装置和从存储装置移至高速缓存。当从主机向存储控制器发出写请求或者数据从第一级数据存储系统镜像到第二级数据存储系统时,可以从操作系统代码分配TCB。TCB用于在要写入的数据从源通过高速缓存传递到存储装置时从头到尾维护关于写入过程的信息。如果高速缓存已满,则TCB可以排队,直到高速缓存中的现有数据可以被降级(即,写入存储器),以便释放空间。
在本说明书的一个实施例中,存储管理器24包括同步逻辑34,其被配置为自动同步在多个数据存储系统中执行的多个安全数据提交扫描操作,所述多个数据存储系统包括被配置为第一级数据存储系统的第一数据存储系统2a、被配置为第二级数据存储系统的第二数据存储系统2b和被配置为第三级数据存储系统的第三数据存储系统2c。每个数据存储系统2a、2b、2c的存储管理器24包括安全数据提交逻辑40,其周期性地扫描相关联的数据存储系统的高速缓存目录30,以用于要分别降级到相关联的存储器10a、10b、10c的脏数据(图1)。安全数据提交过程允许操作员确保在安全数据提交扫描开始时间之前写入到关联数据存储系统的高速缓存28的任何东西已经被成功地降级并安全地存储在关联数据存储系统的存储装置10a、10b、10c上。
存储管理器24还包括存储管理器24的数据复制逻辑44(图2),其被配置为同步地生成第一级数据存储系统2a的第一级卷1(图1)的副本,作为由第二级数据存储系统2b表示的第二级数据存储系统的第二级卷2(图1)。卷的第一级-第二级对,卷1、卷2处于同步复制或镜像关系48,以便将对第一级卷1的更新同步镜像到每个第二级卷2。可以理解,卷1、卷2的第一级-第二级对可以替换地处于异步复制或镜像关系48中,使得对第一级卷1的更新被异步镜像到每个第二级卷2。
在图1所示的配置中,存储控制器4a和数据存储驱动器10a已经分别被配置为第一级数据存储系统2a的第一级存储控制单元和第一级存储装置。类似地,存储控制器4b及其数据存储驱动器10b已经分别被配置为第二级数据存储系统2b的第二级存储控制单元和第二级存储装置。因此,在图1所示的配置中,存储控制器4a将被称为第一级存储控制器或控制单元4a,并且数据存储驱动器10a将被称为第一级存储驱动器10a。类似地,存储控制器或控制单元4b将被称为第二级存储控制器或控制单元4b,并且数据存储驱动器10b将被称为第二级数据存储驱动器10b。在该实施例中,可以存在多个第二级数据存储装置,使得复制关系可以是一对多的关系,这也被称为多目标关系。
在特定的复制关系中,源单元通常被称为第一级,而目标单元通常被称为第二级。在第一级数据存储驱动器10a和第二级数据存储驱动器10b的存储单元之间定义复制关系。尽管将数据存储驱动器10a称为"第一级"而将数据存储驱动器10b称为"第二级",但是数据存储装置10a、10b的特定存储单元可以根据特定的复制关系而同时起到第一级(或源确色)和第二级(或目标角色)的作用。
第一级存储控制器4a位于第一站点,而第二级存储控制器4b位于第二站点,该第二站点可以在地理上或功能上远离第一站点。因此,在该示例中,第一站点可以在本地站点,而第二站点可以在与本地站点以及彼此相隔短或长的地理距离的地理上远离的站点。备选地,本地和远程站点可以相对靠近,例如在网络6的相同一般地理位置中的不同建筑物中、在相同建筑物的不同房间中、在相同房间中的不同机器中、或在相同机器的不同部分或分区中。
以类似的方式,第发给级数据存储系统2b的存储管理器24具有数据复制逻辑44(图2),其被配置为同步地生成第二级数据存储系统2b的第一级卷2(图1)的副本,作为由第三级数据存储系统2c表示的第三级数据存储系统的第三级卷3(图1)。卷的第一级-第二级对,卷2、卷3处于同步复制或镜像关系48,以便将对卷2的更新同步镜像到第三级卷3。可以理解,根据本说明书的同步的安全数据提交扫描也可以用于异步数据存储系统。
每个数据存储系统2a、2b、2c的存储管理器24还包括第一级-第二级角色交换逻辑52,其被配置为交换第一级数据存储系统(例如第一级数据存储系统2a)和第一级数据存储系统(例如第一级数据存储系统2b)的第一级-第二级角色。因此,在成功完成第一级-第二级角色交换时,将最初配置为第二级数据存储系统的数据存储系统2b重新配置为第一级数据存储系统。相反,最初被配置为第一级数据存储系统的数据存储系统2a被重新配置为相对于新的第一级数据存储系统的第二级数据存储系统,即,在第一级-第二级角色交换之后的数据存储系统2b。
在一个实施例中,存储设备10、10a、10b、10c可以包括一个或多个顺序存取存储设备,例如硬盘驱动器和磁带,或者可以包括非顺序存取存储设备,例如固态驱动器(SSD)。每个存储设备10、10a、10b、10c可以包括单个顺序或非顺序存取存储设备,或者可以包括存储设备阵列,例如简单磁盘捆绑(JBOD)、直接存取存储设备(DASD)、独立磁盘冗余阵列(RAID)、虚拟化设备、磁带存储器、闪存等。
在所示实施例中,包括同步逻辑34、安全数据提交扫描逻辑40和第一级-第二级角色交换逻辑52的存储管理器24被描绘为存储在存储器20中并由CPU复合体12执行的软件,然而,应当理解,存储管理器24的逻辑功能可以根据特定应用而被实现为硬件、软件、固件或其一种或多种的组合。
在一个实施例中,存储管理器24(图2)可以将数据存储在高速缓存28中,并在高速缓存28和存储装置10(图2)、10a、10b、10c(图1)之间以轨道传送数据。在将轨道写入高速缓存时,TCB分配高速缓存存储的一个或多个段以写入轨道。类似地,在一个实施例中,存储管理器24(图2)可以以轨道将数据从第一级存储驱动器10a(图a)传送到第二级存储驱动器10b,或者以轨道将数据从第二级存储驱动器10b传送到第三级存储驱动器10c。
如本文所使用的,术语轨道可以指盘存储单元、固态存储单元或其他类型的存储单元的数据或存储的子单元。除了轨道之外,存储单元可以具有其他存储或数据子单元,例如位、字节、字、段、页、块(例如逻辑块地址(LBA))、柱面、段、范围、卷、逻辑设备等或其任何部分,或者适于传送或存储的其他子单元。因此,如本文所使用的,段是轨道的子单元。因此,根据本说明书的高速缓存写和安全数据提交过程中处理的数据子单元的大小可以根据特定应用而变化。因此,如本文所使用的,术语"轨道"或术语"段"是指数据存储或传送的任何合适的子单元。
系统组件1a(图1)、1b...1n、4(图2)、4a(图1)、4b、4c连接到网络6,该网络使得能够在这些组件之间进行通信。因此,网络包括一种结构,该结构可以包括存储区域网络(SAN)、局域网(LAN)、内联网、因特网、广域网(WAN)、对等网络、无线网络、仲裁环路网络等。从存储子系统到主机1a、1b、...1n的通信路径可以基于特定的主机连接协议,例如光纤连接(FICON)。该结构的其它通信路径可以包括例如光纤通道仲裁环路配置、串行环路架构或总线接口,例如外围部件互连(PCI)接口,例如PCI-Express接口。该结构的通信路径也可以是以太网的一部分,例如,使得每个节点具有单独的网络(因特网协议)地址。根据特定应用,可以使用其它类型的通信路径,例如调制解调器电话路径、无线网络等。
与通信路径相关联的通信软件包括指令和其他软件,其控制通信协议和根据通信协议的通信硬件的操作,如果有的话。应当理解,根据特定应用,可以利用其它通信路径协议。
如由图3的主机1a表示的典型主机包括CPU复合体202和具有操作系统206和应用208的存储器204,它们协作以经由存储控制器4、4a、4b、4c从存储装置10(图2)、10a、10b、10c读取数据和向其写入数据更新。合适的操作系统的一个例子是z/OS操作系统。可以理解,取决于特定应用,可以采用其它类型的操作系统。
图4示出了第一级数据存储系统的同步逻辑34(图2)的自动操作的一个示例,该自动操作用于同步多个数据存储系统中的每一个中的安全数据提交扫描逻辑40的一组安全数据提交扫描操作,使得该组安全数据提交扫描操作基本上同时发生,并且基本上在单个同步的设置间隔中发生,以便提高数据存储系统的整体性能。例如,因为该组安全数据提交扫描操作基本上同时发生,并且基本上在单个同步的设置间隔中发生,所以由于该组安全数据提交扫描操作导致的I/O响应时间的任何结果减少也基本上在相同的时间间隔中发生,从而减少或消除了该组安全数据提交扫描操作在该间隔之外的影响。图4中描述的第一级数据存储系统2a的操作分别与图6和7中描述的第二级和第三级数据存储系统2b和2c的操作并发和同步,并且与之并行操作。
图5A描述了分别由第一级数据存储系统2a(图1)、第二级数据存储系统2b和第三级数据存储系统2c中的每一个中的安全数据提交扫描逻辑40进行的第一组安全数据提交扫描操作、第一级安全数据提交扫描1、第一级安全数据提交扫描2和第三级安全数据提交扫描3的示例。每个安全数据提交扫描操作,扫描1(图5A)、扫描2、扫描3,将高速缓存在关联数据存储系统2a(图1)、2b、2c的高速缓存28(图2)中的数据分别降级到关联数据存储系统2a、2b、2c的数据存储单元10a、10b、10c。
图5A、5B分别示出了每个数据存储系统2a、2b、2c中的同步逻辑34和安全数据提交扫描逻辑40在三个水平时间线中的自动操作,所述三个水平时间线是平行于水平时间轴"时间"定向的第一级时间线1、第二级时间线2、第三级时间线3。如图5A所示,第一组安全数据提交扫描操作,扫描1、扫描2、扫描3被同步定时,以在单个同步安全数据提交扫描设置间隔_SET1内的时间线中基本上重叠,以减少或消除由数据存储系统2a、2b、2c中的安全数据提交扫描操作引起的、在同步安全数据提交扫描设置间隔_SET1之外的输入/输出响应时间减少的发生。通过与现有数据存储系统的比较,第一级、第二级和第三级数据存储系统中的每一个通常利用非同步、独立的定时器独立地启动安全数据提交扫描。结果,数据复制操作的响应时间的下降可能在多个非重叠间隔处独立地发生,该多个非重叠间隔与分布式数据存储系统的各个数据存储系统的每个非同步、非重叠安全数据提交扫描操作有关。因此,由于多个非同步安全数据提交扫描操作,先前系统的操作员可能经历响应时间的多个不同尖峰。
在图5A的示例中,第一级数据存储系统2a的同步逻辑34被配置为启动(图4的块410)第一级数据存储系统中的同步定时器间隔。例如,图5A描述了在第一级数据存储系统2a(图1)的第一级时间线1中的时间T0处启动的第一级同步定时器间隔_0。在一个实施例中,例如,可以将定时器间隔_0(这里也称为全局同步定时器间隔)设置为一小时。应当理解,根据特定的应用,可以选择其它的持续时间。如下面更详细描述的,第一级数据存储系统的同步定时器间隔在此被称为"全局",因为它们可以影响每组安全数据提交扫描操作的所有安全数据提交扫描操作的定时。
在全局同步定时器间隔_0(图5A)到期(图4的块414)时,第一级数据存储系统2a的同步逻辑34被配置为在第一级数据存储系统中启动(图5A的418)第一级时间线1中的安全数据提交扫描(SDCS)操作。在图5A的示例中,第一组SDCS操作的安全数据提交扫描操作扫描1在第一级数据存储系统2a(图1)中在时间S1启动,这标记了第一组SDCS操作的同步安全数据提交扫描设置间隔_SET1的开始。响应于由第一级数据存储系统2a的同步逻辑34提供的启动(图4的框418),由第一级数据存储系统的安全数据提交扫描逻辑40执行安全数据提交扫描(SDCS)操作,扫描1。
在第一级数据存储系统2a的同步逻辑34在第一级数据存储系统2a中启动(418,图5A)安全数据提交扫描(SDCS)操作的同时或大约同时S1,第一级数据存储系统2a的同步逻辑34还被配置成向第二级数据存储系统发送(框422,图4)开始安全数据提交扫描(SDCS)消息。在图5A的示例中,在时间S1处将"开始SDCS消息1"发送到第二级数据存储系统2b(图1)。
如以下结合图6更详细地解释的,第二级数据存储系统2b使用来自第一级数据存储系统的开始SDCS消息1,来与第一级数据存储系统2a中的并发和并行安全数据提交扫描操作(第一级安全数据提交扫描1)同步地启动第二级数据存储系统2b中的安全数据提交扫描操作。结果,对于第一组安全数据提交扫描操作,安全数据提交扫描操作,扫描1和扫描2,都发生在单个同步安全数据提交扫描设置间隔_SET1中。以类似的方式,如下面结合图7更详细地解释的,第二级数据存储系统2b还向第三级数据存储系统发送开始SDCS消息,开始SDCS消息2,该第三级数据存储系统使用来自第二级数据存储系统的开始SDCS消息2,以分别与第一级数据存储系统2a和第二级数据存储系统2b中的并发和并行安全数据提交扫描操作(第一级安全数据提交扫描1和第二级安全数据提交扫描2)同步地启动第三级数据存储系统2c中的安全数据提交扫描操作。结果,第一组SDCS操作中的所有三个同步安全数据提交扫描操作(扫描1、扫描2和扫描3)在第一组安全数据提交扫描操作的单个同步安全数据提交扫描设置间隔_SET1内发生。
在转到图6中所示的第二级数据存储系统2b的同步逻辑34的自动操作和图7中所示的第三级数据存储系统2c的同步逻辑34的自动操作之前,应注意,第一级数据存储系统2a的同步逻辑34被配置为确定(图4的框426)安全数据提交扫描操作(在该示例中为扫描1)是否已经完成。如果是,则在该示例中,安全数据提交扫描操作扫描1的启动时间S1(图5A)被记录(图4的框430)在日志操作日志1(图5A)中作为合适的安全数据提交扫描日志中的时间戳。在该示例中,安全数据提交扫描操作扫描1的完成和安全数据提交扫描开始时间戳S1的记录允许操作员确保在安全数据提交扫描开始时间S1之前写入到第一级数据存储系统2a的高速缓存28的任何东西已经成功地降级并安全地存储在第一级数据存储系统2a的存储装置10a上。
第一级数据存储系统2a的同步逻辑34还被配置为在完成安全数据提交扫描操作时,在该示例中为扫描1,在时间I1启动(图4的块410)另一全局同步定时器间隔,第一级数据存储系统2a中的第一级全局定时器间隔1(图5A、5B)。在一个实施例中,全局定时器间隔1可以被设置为与初始全局同步定时器间隔_0相同的持续时间,例如一小时。应当理解,根据特定的应用,可以选择其它的持续时间。如下面更详细地解释的,在下一个全局同步定时器间隔1到期时,对于另一组SDCS操作,在第一级数据存储系统2a中重复上述过程。
现在转到分别与图4和7中所示的第一级和第三级数据存储系统2a和2c的操作同步和并发的第二级数据存储系统2b的操作,图6示出了在多个数据存储系统中的一组安全数据提交扫描操作的同步中第二级数据存储系统的同步逻辑34的自动操作的示例。在多个数据存储系统中的每组安全数据提交扫描操作的同步中,第二级数据存储系统的同步逻辑34的操作与第一级数据存储系统和第三级数据存储系统中的每一个的同步逻辑34的操作同步且并行地操作。
第二级数据存储系统2b的同步逻辑34被配置为接收(图6的块450)由第一级数据存储系统发送(图4的块422)到第二级数据存储系统的开始安全数据提交扫描(SDCS)消息。在图5A的示例中,取决于从第一级数据存储系统2a到第二级数据存储系统2b的传输延迟量,在或大约在时间S1(第一级安全数据提交扫描1的开始)由第一级数据存储系统2a发送"开始SDCS消息1",并且在或大约在时间S2(其与S1相同或大约相同)由第二级数据存储系统2b(图1)接收。可以理解,从第一级数据存储系统2a到第二级数据存储系统2b的传输延迟量可以从可忽略的变化到例如几秒的量级,例如这取决于第一级数据存储系统2a和第二级数据存储系统2b之间存在的地理距离和其他信号传输因素。取决于特定应用和环境,可能遇到更长或更短的延迟。
响应于在第二级数据存储系统2b处接收的"开始SDCS消息1",第二级数据存储系统2b的同步逻辑34还被配置为在该示例中在第二级数据存储系统中的第二级时间线2中的时间S2发起(图6的框454)安全数据提交扫描(SDCS)操作。在图5A的示例中,在第二级数据存储系统中启动的SDCS操作是第二级安全数据提交扫描操作,即第二级数据存储系统2b(图1)中的扫描2。结果,第一级数据存储系统2a和第二级数据存储系统2b的安全数据提交扫描操作,扫描1和扫描2,分别发生在用于第一组安全数据提交扫描操作的单个同步安全数据提交扫描设置间隔_SET1内。响应于由第二级数据存储系统2b的同步逻辑34提供的启动(图6的框454),由第二级数据存储系统的安全数据提交扫描逻辑40执行安全数据提交扫描(SDCS)操作,扫描2。
在与第二级数据存储系统2b的同步逻辑34启动(454,图5A)第二级数据存储系统2b中的安全数据提交扫描(SDCS)操作扫描2的时间相同或大约相同的时间S2,第二级数据存储系统2b的同步逻辑34还被配置为向第三级数据存储系统发送(图6的框458)开始安全数据提交扫描(SDCS)消息。在图5A的示例中,"开始SDCS消息2"由第二级数据存储系统2b发送到第三级数据存储系统2c(图1)。
如以下结合图7更详细地解释的,第三级数据存储系统2c使用来自第二级数据存储系统的开始SDCS消息2,以和第二级数据存储系统2b中的并发且并行的安全数据提交扫描操作(第二级安全数据提交扫描2)同步地启动第三级数据存储系统2c中的安全数据提交扫描操作。如上所述,第二级数据存储系统2b中的安全数据提交扫描2也与第一级数据存储系统2a中的并发且并行的安全数据提交扫描操作(第一级安全数据提交扫描1)同步。结果,数据存储系统2a、2b、2c的安全数据提交扫描操作(扫描1、扫描2和扫描3)分别被同步以基本上同时且并行地运行。因此,第一组SDCS操作的所有三个同步安全数据提交扫描操作(扫描1、扫描2和扫描3)在第一组安全数据提交扫描操作的单个同步安全数据提交扫描设置间隔_SET1内发生。结果,由于第一组安全数据提交扫描操作而减少响应时间的任何间隔也基本上是并发的,并且基本上限于同步的安全数据提交扫描设置间隔_SET1。
第二级数据存储系统2b的同步逻辑34被配置为确定(图6的框462)第二级数据存储系统2b的安全数据提交扫描操作(在该示例中为扫描2)是否已经完成。如果是,则在该示例中,安全数据提交扫描操作扫描2的启动时间S2(图5A)被记录(图6的框466)在日志操作日志2(图5A)中,作为适当的安全数据提交扫描日志中的时间戳。在该示例中,安全数据提交扫描操作扫描2的完成和安全数据提交扫描开始时间戳S2的日志记录允许操作员确保在扫描2的安全数据提交扫描开始时间S2之前写入到第二级数据存储系统2b的高速缓存28的任何东西已经成功地降级并安全地存储在第二级数据存储系统2b的存储装置10b上。
第二级数据存储系统2B的同步逻辑34还被配置为,在完成第二级数据存储系统2b中的第二级安全数据提交扫描2时,启动(图6的框466)第二级数据存储系统2b中的另一同步定时器间隔,即第二级局部定时器间隔2(图5A、5B)。第二级数据存储系统2b和第三级数据存储系统2c的同步定时器间隔在本文被称为"局部"而不是"全局",因为这些同步定时器间隔对同步定时的影响可能比第一级数据存储系统的全局定时器间隔更局部。
在第二级数据存储系统2b(图1)的第二级时间线2中的时间I2处启动第二级局部定时器间隔2。如下面更详细地解释的,下一个局部同步定时器间隔2的到期可以允许上述过程在第二级数据存储系统2b中重复,以用于另一组SDCS操作,尽管及时接收开始SDCS消息失败。
在本说明书的一个实施例中,在第二级数据存储系统2b处从第一级数据存储系统2a接收的"开始SDCS消息1"包括同步的计时器间隔持续时间参数数据。在一个实施例中,来自第一级数据存储系统2a的开始SDCS消息1中封装的同步的定时器间隔持续时间数据定义了第一级数据存储系统2a的同步第一级全局定时器间隔1的间隔。第二级数据存储系统2b的同步逻辑34还被配置为根据在来自第一级数据存储系统2a的开始SDCS消息1中从第一级数据存储系统2a接收的同步定时器间隔持续时间数据,设置第二级数据存储系统2B中的第二级局部定时器间隔2(图5A、5B)的持续时间。因此,在一个实施例中,可以将第二级数据存储系统2b中的第二级局部定时器间隔2(图5A、5B)的持续时间设置为比第一级数据存储系统2a中的第一级全局同步定时器间隔1(图5A、5B)的持续时间大一小百分比(例如10-20%)或小量时间(例如5-10分钟)。因此,在一个实施例中,例如,可以将定时器间隔2设置成大于一小时的小百分比或小量的时间。应当理解,根据特定的应用,可以选择其它的持续时间。
应当理解,将第二级同步定时器间隔2的持续时间设置为近似于第一级同步定时器间隔1的持续时间,这有助于同步第一组同步SDCS操作的SDCS操作,扫描1和扫描2,以保持在相对受限的安全数据提交扫描设置间隔中。同时,应当理解,将第二级同步定时器间隔2的持续时间设置为稍微大于第一级同步定时器间隔1的持续时间,有助于基于开始SDCS消息而不是如下面更详细描述的第二级和第三级数据存储系统中的同步间隔的到期来同步第二级和第三级数据存储系统的SDCS操作。
现在转到第三级数据存储系统2c的操作,其分别与图4和6中所示的第一级和第二级数据存储系统2a和2b的操作同步和并发,图7示出了在多个数据存储系统中同步每组安全数据提交扫描操作时第三级数据存储系统的同步逻辑34的自动操作的示例。在多个数据存储系统中的每组安全数据提交扫描操作的同步中,第三级数据存储系统的同步逻辑34的操作与第一级和第二级数据存储系统中的每一个的同步逻辑34的操作同步且并行地操作。
以与上面结合第二级数据存储系统2b描述的方式类似的方式,第三级数据存储系统2c的同步逻辑34被配置为接收(图7的框504)由第二级数据存储系统发送(图6的框458)到第三级数据存储系统的开始安全数据提交扫描(SDCS)消息。在图5A的示例中,取决于从第二级数据存储系统2b到第三级数据存储系统2c的传输延迟量,在或大约在时间S2处由第二级数据存储系统2b发送"开始SDCS消息2",并且在或大约在与时间S2相同或大约相同的时间S3处由第三级数据存储系统2c(图1)接收。应当理解,从第二级数据存储系统2b到第三级数据存储系统2c的传输延迟量可以从可忽略的变化到例如几秒的量级,例如,这取决于第二级数据存储系统2b与第三级数据存储系统2c之间和地理距离和存在的其它信号传输因素。取决于特定应用和环境,可能遇到更长或更短的延迟。
响应于在第三级数据存储系统2c处接收的"开始SDCS消息2",第三级数据存储系统2c的同步逻辑34还被配置为在该示例中在第三级数据存储系统中的第三级时间线3中的时间S3启动(图7的框508)安全数据提交扫描(SDCS)操作。在图5A的示例中,在第三级数据存储系统中启动的SDCS操作是第三级安全数据提交扫描操作,即第三级数据存储系统2c(图1)中的扫描3。结果,第一级数据存储系统2a、第二级数据存储系统2b和第三级数据存储系统2c的所有三个同步安全数据提交扫描操作,即扫描1、扫描2和扫描3分别发生在用于第一同步安全数据提交扫描操作集合的单个同步安全数据提交扫描设置间隔_SET1内。响应于由第三级数据存储系统2c的同步逻辑34提供的启动(图7的框508),由第三级数据存储系统的安全数据提交扫描逻辑40执行安全数据提交扫描(SDCS)操作,扫描3。
第三级数据存储系统2c的同步逻辑34被配置为确定(图7的框512)第三级数据存储系统2c的安全数据提交扫描操作(在该示例中为扫描3)是否已经完成。如果是,则在该示例中,安全数据提交扫描操作扫描3的启动时间S3(图5A)被记录(图7的框516)在日志操作日志3(图5A)中作为合适的安全数据提交扫描日志中的时间戳。在该示例中,安全数据提交扫描操作扫描3的完成和安全数据提交扫描开始时间戳S3的日志记录允许操作员确保在扫描3的安全数据提交扫描开始时间S3之前写入第三级数据存储系统2c的高速缓存28的任何东西已经成功地降级并安全地存储在第三级数据存储系统2c的存储装置10c上。
第一组安全数据提交扫描操作的最后安全数据提交扫描操作的完成标记了第一组安全数据提交扫描操作的同步安全数据提交扫描设置间隔_SET1的结束。在图5A的示例中,第三级数据存储系统2c的第三级安全数据提交扫描操作扫描3的完成,标记了第一组安全数据提交扫描操作的同步安全数据提交扫描设置间隔_SET1的结束。可以理解,最后完成的一组同步的安全数据提交扫描操作中的特定安全数据提交扫描操作可以根据启动的精确时间和在每个安全数据提交扫描操作中降级的数据量以及各数据存储系统的其它操作条件而变化。然而,通过根据本说明书的同步操作,可以充分地增加或最大化该组操作的安全数据提交操作在时间上的重叠量。因此,在该示例中,第一同步SDCS操作集合的所有三个同步安全数据提交扫描操作(扫描1、扫描2和扫描3)基本重叠并且在时间上基本同时,以便在用于第一同步安全数据提交扫描操作集合的单个同步安全数据提交扫描设置间隔_SET1内发生。结果,由于安全数据提交扫描操作而减少响应时间的任何间隔也基本上同时发生,并且基本上限于同步的安全数据提交扫描设置间隔_SET1,以提高系统性能。
第三级数据存储系统2c的同步逻辑34还被配置为在第三级数据存储系统2c中的第三级安全数据提交扫描3完成时,启动(图7的框516)第三级数据存储系统2c中的另一同步定时器间隔,即第三级局部定时器间隔3(图5A、5B)。第三级局部计时器间隔3在第三级数据存储系统2c(图1)的第三级时间线3中的时间I3处启动。如下面更详细地解释的,下一个局部同步定时器间隔3的到期可允许上述过程在第三级数据存储系统2c中重复,以用于另一组同步的SDCS操作,尽管及时接收开始SDCS消息失败。
图5B示出了分别由第一级数据存储系统2a(图1)、第一级数据存储系统2B和第三级数据存储系统2c中的每一个中的安全数据提交扫描逻辑40进行的第二组同步的安全数据提交扫描操作(第一级安全数据提交扫描4、第二级安全数据提交扫描5和第三级安全数据提交扫描6)的示例。这里,每个安全数据提交扫描操作,扫描4(图5B)、扫描5、扫描6,将关联数据存储系统2a(图1)、2b、2c的高速缓存28(图2)中缓存的数据分别降级到关联数据存储系统2a、2b、2c的数据存储单元10a、10b、10c。
图5B示出了每个数据存储系统2a、2B、2c中的同步逻辑34和安全数据提交扫描逻辑40分别在三个水平时间线(第一级时间线1、第二级时间线2、第三级时间线3)中的与同步另一组安全数据提交扫描操作有关的进一步操作。如图5B所示,与结合图5A描述的第一组同步安全数据提交扫描操作相同,第二组同步安全数据提交扫描操作,扫描4、扫描5、扫描6被同步定时,以在单个同步安全数据提交扫描设置间隔_SET2内的时间线中基本重叠,以减少或消除由数据存储系统2a、2b、2c中的安全数据提交扫描操作引起的、在同步安全数据提交扫描设置间隔_SET2之外的输入/输出响应时间减少的发生。
返回图4和第一级数据存储系统2a的同步逻辑34的自动操作,如上所述,在完成第一级数据存储系统2a的安全数据提交扫描操作扫描1时,第一级数据存储系统2a的同步逻辑34在时间I1(图5A)启动(块410,图4)第一级数据存储系统2a中的另一同步定时器间隔,第一级全局定时器间隔1(图5A、5B),以同步数据存储系统2A、2B、2c的另一组安全数据提交扫描操作。在定时器间隔1(图5B)到期(图4的框414)时,第一级数据存储系统2a的同步逻辑34启动(图5A的418)下一组同步安全数据提交扫描(SDCS)操作的第一级安全数据提交扫描操作。在图5B的示例中,下一组同步的SDCS操作包括第一级数据存储系统中的第一级时间线1中的第一级安全数据提交扫描(SDCS)操作扫描4。如图5B所示,在第一级数据存储系统2a(图1)中,在时间S4启动安全数据提交扫描操作,扫描4,其标记了用于第二组同步SDCS操作的同步安全数据提交扫描设置间隔_SET2的开始。
此外,在第一级数据存储系统2a的同步逻辑34在第一级数据存储系统2a中启动(418,图5B)另一安全数据提交扫描(SDCS)操作的同时或大约同时S4,第一级数据存储系统2a的同步逻辑34向第二级数据存储系统发送(框422,图4)另一开始安全数据提交扫描(SDCS)消息。在图5B的示例中,在或大约在时间S4时,将"开始SDCS消息3"发送到第二级数据存储系统2b(图1)。如以下结合图6更详细地解释的,第二级数据存储系统2b使用来自第一级数据存储系统2a的开始SDCS消息3,来在第二级数据存储系统2b中使下一组同步的SDCS操作的安全数据提交扫描操作与第一级数据存储系统2a中下一组同步的SDCS操作的并发和并行第一级安全数据提交扫描操作扫描5同步。
返回图6和第二级数据存储系统2b的同步逻辑34的自动操作,在完成第二级数据存储系统2b中的第二级安全数据提交扫描2(图5A)时,第二级数据存储系统2b的同步逻辑34在第二级数据存储系统2b(图1)的第二级时间线2中的时间I2(图5A)在第二级数据存储系统中启动(图6的块466)同步定时器间隔,第二级局部定时器间隔2(图5A、5B)。第二级数据存储系统2b的同步逻辑34被配置为确定(图6的框480)是否已经接收到由第一级数据存储系统发送(图4的框422)到第二级数据存储系统2b的下一个开始安全数据提交扫描(SDCS)消息,开始SDCS消息3。在图5B的示例中,在同步第二级局部定时器间隔2到期之前,"开始SDCS消息3"由第一级数据存储系统2a发送,并且由第二级数据存储系统2b接收。如前所述,在一个实施例中,可以将第二级数据存储系统2b中的第二级局部定时器间隔2(图5A、5B)的持续时间设置为稍微长于第一级数据存储系统的同步第一级全局定时器间隔1的持续时间。结果,在一组典型的同步SDCS操作中,在第二级数据存储系统的同步第二级局部定时器间隔到期之前,从第一级数据存储系统接收开始SDCS消息。
响应于在第二级数据存储系统2b的时间S5处接收到的"开始SDCS消息3",第二级数据存储系统2b的同步逻辑34重置(框482)局部定时器间隔2(由局部定时器间隔2的终端散列标记部分表示),并在该示例中在第二级数据存储系统中的第二级时间线2的时间S5处中启动(框454,图6)另一安全数据提交扫描(SDCS)操作,扫描5。结果,第一级数据存储系统2a和第二级数据存储系统2b的安全数据提交扫描操作,扫描4和扫描5,分别发生在用于第二组同步安全数据提交扫描操作的单个同步安全数据提交扫描设置间隔_SET2内。
此外,因为在接收到开始安全数据提交扫描消息3时重置局部定时器间隔2(框482),所以仅通过接收到的开始消息3启动安全数据提交扫描操作(框454),而不是响应于局部同步定时器间隔2的随后到期而再次启动。这样,特定数据存储系统的每个安全数据提交扫描操作由开始消息或由局部同步定时器间隔的到期启动,但不是在任何一个安全数据提交扫描设置间隔中都发起,例如安全数据提交扫描设置间隔_SET2。
另外,第二级数据存储系统2b的同步逻辑34以与上述结合图5A的开始SDCS消息2描述的方式类似的方式,向第三级存储系统发送(图6的框458)另一开始安全数据提交扫描消息,开始SDCS消息4(图5B)。响应于在第三级数据存储系统2c处接收(框524,图7)的"开始SDCS消息4"(图5B),第三级数据存储系统2c的同步逻辑34重置(框526)局部计时器间隔3,并在该示例中在第三级数据存储系统的第三级时间线3中的时间S6启动(框508,图7)另一安全数据提交扫描(SDCS)操作,扫描6。结果,第一级数据存储系统2a、第二级数据存储系统2b和第三级数据存储系统2c的所有三个同步安全数据提交扫描操作,即扫描4、扫描5和扫描6,分别发生在用于第二组同步安全数据提交扫描操作的单个同步安全数据提交扫描设置间隔_SET2内。
以与上面结合第二级数据存储系统2b解释的方式类似的方式,在时间S6重置局部定时器间隔3(框526),使得仅通过接收的开始消息4启动安全数据提交扫描操作,而不是响应于局部同步定时器间隔3的随后到期而再次启动安全数据提交扫描操作。这样,例如,在任何一个安全数据提交扫描设置间隔,如安全数据提交扫描设置间隔_SET2中,通过开始消息或通过局部同步定时器间隔的到期,而不是通过在任何一个数据存储系统中的两者,启动每个安全数据提交扫描操作。
图5B'示出了其中在时间S5'处同步第二级局部定时器间隔2到期之后,由第一级数据存储系统2a发送或由第二级数据存储系统2b接收的开始SDCS消息3'的示例。在全局定时器间隔1到期之后,由第一级数据存储系统2a发送开始SDCS消息3',并以与上述图5B的扫描4和开始SDCS消息3类似的方式,结合启动第一级安全数据提交扫描4。
由于包括网络拥塞和第一级数据存储系统2a处的操作问题的各种因素,开始SDCS消息3'在到达第二级数据存储系统2b时可能被延迟。然而,因为在一个实施例中可以将第二级数据存储系统2b中的第二级局部定时器间隔2(图5A、5B)的持续时间设置为稍微长于第一级数据存储系统的同步第一级全局定时器间隔1的持续时间,所以在该示例中在第二级数据存储系统中的第二级时间线2中的时间S5'处启动(框454,图6)另一安全数据提交扫描(SDCS)操作(扫描5')的延迟受到限制。
因此,如果第二级数据存储系统2b的同步逻辑34确定(图6的框480)还没有接收到下一个开始安全数据提交扫描(SDCS)消息,则第二级数据存储系统2b的同步逻辑34确定(图6的框484)同步定时器间隔2是否已经到期。响应于第二级同步定时器间隔2到期(框484,图6)并且没有先前接收到(框480)开始安全数据提交扫描消息3,在该示例中在图5B'的第二级数据存储系统中的第二级时间线2中的时间S5'处数据存储系统2b的同步逻辑34启动(框454,图6)另一安全数据提交扫描(SDCS)操作,扫描5'(图5B')。另外,第二级数据存储系统2b的同步逻辑34以与上文结合图5A的开始SDCS消息2所述类似的方式,向第三级存储系统发送(图6的框458)另一开始安全数据提交扫描消息,开始SDCS消息4'(图5B)。
因此,一旦同步第二级局部定时器间隔2到期而没有先前从第一级数据存储系统接收到开始SDCS消息3',则可以启动第二级SDCS操作扫描5',而无需进一步等待开始SDCS消息3'。结果,尽管在发送或接收开始SDCS消息3'时存在延迟,但是可以在安全数据提交扫描设置间隔_SET2内启动和完成第二级SDCS操作扫描5'以用于第二组SDCS操作。
如果响应于局部定时间隔(例如图5B'的局部定时间隔2)的到期而启动安全数据提交扫描操作(例如扫描5'),则随后接收到的晚开始安全数据提交扫描消息(例如消息3'(图5B))被有效地忽略,并且不用来启动另一安全数据提交扫描操作。相反,如上结合图5B所述,如果在局部定时器间隔2到期之前,响应于接收到及时开始的安全数据提交扫描消息3(图5B)而启动安全数据提交扫描操作,则如上所述地重置局部定时器间隔2,并且其不用于启动另一安全数据提交扫描操作。以这种方式,第二级数据存储系统2b的每个安全数据提交扫描操作由开始SDCS消息或者由局部同步定时器间隔的到期启动,但是不是都在相同的安全数据提交扫描设置间隔中。
在替代实施例中,响应于同步第二级局部定时器间隔2到期并且在同步第二级局部定时器间隔2到期时没有从第一级数据存储系统接收到第二开始安全提交扫描操作消息3',第二级数据存储系统2b的同步逻辑34可以被配置为联系第一级数据存储系统2a,以确定第二组同步的安全数据提交扫描操作的第一级安全数据提交扫描操作扫描4的状态。可以由第二级数据存储系统2b的同步逻辑34根据第一级数据存储系统中的第二组同步安全数据提交扫描操作的安全数据提交扫描操作的状态,来确定是重置第二数据存储系统中的同步定时器时间间隔的定时,还是启动第二数据存储系统中的第二组同步安全数据提交扫描操作的安全数据提交扫描操作。
例如,来自第一级数据存储系统的状态信息可以指示第一级数据存储系统和第二级数据存储系统之间的复制关系是否仍然在适当的位置或者是否已经由于各种原因而终止。如果关系已经终止,则通过这种终止可以避免对安全数据提交扫描操作的需要。因此,可以重置第二级数据存储系统中的同步定时器间隔。相反,如果来自第一级数据存储系统的状态信息指示安全数据提交扫描正在第一级数据存储系统中进行,则可以在第二级数据存储系统中启动并发且并行的安全数据提交扫描操作,而不用经受第二级数据存储系统未接收到开始安全数据提交扫描消息。
返回图7和第三级数据存储系统2c的同步逻辑34的操作,第三级数据存储系统2c的同步逻辑34在第三级数据存储系统2c中的第三级安全数据提交扫描3完成(图7的块512)时,在第三级数据存储系统2c(图1)的第三级时间线3中的时间I3(图5A)处启动(图7的框516)第三级数据存储系统中的同步定时器间隔,第三级局部定时器间隔3(图5A、5B)。第三级数据存储系统2c的同步逻辑34被配置为确定(图7的框524)是否已经接收到由第二级数据存储系统2b发送(图6的框458)到第三级数据存储系统2c的下一个开始安全数据提交扫描(SDCS)消息,开始SDCS消息4'。在图5B'的示例中,在同步第三级局部定时器间隔3到期之后,第二数据存储系统2B发送或第三级数据存储系统2c接收开始SDCS消息4'。通过比较图5B的示例,在同步第三级局部定时器间隔3到期之前,第二数据存储系统2B发送开始SDCS消息4,并且第三级数据存储系统2c接收该消息。
在本说明书的一个实施例中,以与上述开始SDCS消息1类似的方式,在第三级数据存储系统2c从第二级数据存储系统2b接收的开始SDCS消息2包括同步的定时器间隔持续时间参数数据。在一个实施例中,来自第二级数据存储系统2a的开始SDCS消息2中封装的同步的定时器间隔持续时间参数数据定义了同步定时器间隔的间隔,例如第一级全局定时器间隔1或第二级局部定时器间隔2。第三级数据存储系统2c的同步逻辑34还被配置为根据在来自第二级数据存储系统2b的开始SDCS消息2中从第二级数据存储系统2B接收的同步定时器间隔持续时间参数数据,设置第三级数据存储系统2c中的第三级局部定时器间隔3(图5A、5B)的持续时间。
因此,在一个实施例中,第三级数据存储系统2c中的第三级局部定时器间隔3(图5A、5B)的持续时间可以被设置为比第一级同步定时器间隔1(图5A、5B)或第二级同步定时器间隔2的持续时间大小百分比(例如10-20%)或小时间量(例如5-10分钟)。因此,在一个实施例中,例如,可以将定时器间隔3设置成大于一小时的小百分比或小量的时间。应当理解,根据特定的应用,可以选择其它的持续时间。
还应当理解,将第三级同步定时器间隔3的持续时间设置为接近第一级同步定时器间隔或第二级同步定时器间隔的持续时间,这有助于同步第二组同步SDCS操作的SDCS操作,扫描3、扫描4和扫描5,以保持在相对受限的安全数据提交扫描设置间隔_SET2中。同时,应当理解,将第二级同步定时器间隔2的持续时间设置为稍微大于第一级或第二级同步定时器间隔的持续时间,有助于基于开始SDCS消息而不是同步间隔的到期(无论哪个首先发生)来同步第一级、第二级和第三级数据存储系统的SDCS操作,如在下面更详细描述的数据存储系统中。
如前所述,在一个实施例中,可以将第三级数据存储系统2c中的第三级局部计时器间隔3(图5A、5B)的持续时间设置为稍微长于第二级数据存储系统的同步第二级局部计时器间隔2的持续时间。结果,在诸如图5B中所描绘的一组典型的同步SDCS操作中,在第三级数据存储系统的同步第三级局部定时器间隔到期之前,从第二级数据存储系统接收开始SDCS消息。因此,在一组典型的同步SDCS操作中,响应于从第二级数据存储系统接收的开始SDCS消息而不是第三级数据存储系统的同步第三级局部定时器间隔的到期,将启动SDCS操作。然而,如果来自第二级数据存储系统的开始SDCS消息延迟了太长的时间,则如下所述,响应于第三级数据存储系统的同步第三级局部定时器间隔的到期,将启动SDCS操作。
因此,如果第三级数据存储系统2c的同步逻辑34确定(图7的框524)还没有接收到下一个开始安全数据提交扫描(SDCS)消息,则第三级数据存储系统2c的同步逻辑34确定(图7的框530)同步定时器间隔3是否已经到期。例如,图5B'描绘了其中开始SDCS消息4'已被延迟超过同步第三级局部定时器间隔3的到期的示例。因此,响应于第三级同步定时器间隔3的到期(图7的框530),第三级数据存储系统2c的同步逻辑34在该示例中在第三级数据存储系统的第三级时间线3中的时间S6'启动(图7的框508)另一安全数据提交扫描(SDCS)操作,扫描6'(图5B')。
由于包括网络拥塞和二级数据存储系统2b处的操作问题的各种因素,开始SDCS消息4'在到达第三级数据存储系统2c时可能被延迟。然而,因为在一个实施例中,第三级数据存储系统2c中的第三级局部定时器间隔3(图5A、5B)的持续时间可以被设置为稍微长于第二级数据存储系统的同步第二级局部定时器间隔2的持续时间,所以在该示例中在第三级数据存储系统中的第三级时间线2中的时间S6'处,启动另一安全数据提交扫描(SDCS)操作(扫描6')时的后续延迟(图7的框508)是有限的。因此,如果同步第三级局部定时器间隔3到期并且还没有从第二级数据存储系统接收到开始SDCS消息,则可以启动第三级SDCS操作扫描6',而不进一步等待开始SDCS消息4'。结果,尽管在发送或接收开始SDCS消息4'时存在延迟,但是对于第二组SDCS操作,可以在安全数据提交扫描设置间隔_SET2内启动和完成第三级SDCS操作扫描6'。
以与以上结合SDCS操作(扫描1、扫描2和扫描3)所述的方式类似的方式,在完成图5B的SDCS操作,扫描4、扫描5和扫描6时,分别将指示SDCS操作(扫描4、扫描5和扫描6)启动时间的时间戳记录在数据存储系统2a、2b、2c的日志操作日志4、日志5和日志6中,如图5B所示。另外,如图5B所示,对于下一组同步的SDCS操作,分别在数据存储系统2a、2B、2c中启动同步定时器间隔,间隔4、间隔5和间隔6。
在图5B'的示例中,在完成图5B'的SDCS操作(扫描4、扫描5'和扫描6')时,如图5B'所示,分别将指示SDCS操作(扫描4、扫描5'和扫描6')的启动时间的时间戳记录在数据存储系统2a、2b、2c的日志操作,日志4、日志5'和日志6'中。此外,如图5B'所示,分别在数据存储系统2a、2b、2c中启动同步定时器间隔,间隔4、间隔5'和间隔6',以用于下一组同步SDCS操作。
可以理解,根据本说明书的同步安全数据提交扫描操作可用于具有除上述第一级、第二级、第三级层级结构之外的各种不同层级结构的数据存储系统中。例如,数据存储系统可以具有第三级以外的层级,诸如第四级、第五级等。此外,数据存储系统可以允许一对多的复制关系,使得第一级数据存储系统可以具有多个第二级数据存储系统,第二级数据存储系统可以具有多个第三级数据存储系统等。
图8示出了分级数据存储系统中的同步安全数据提交扫描操作的另一个示例,其中在分布式数据存储系统中,一个数据存储系统已被选为主数据存储系统,而多个数据存储系统已被选为主数据存储系统的辅助数据存储系统。例如,数据存储系统2a、2b和2c(图1)在该示例中可以分别被配置为主数据存储系统、第一辅助数据存储系统和第二辅助数据存储系统。主数据存储系统2a和辅助数据存储系统2b、2c还可以以与上述类似的方式被配置为镜像复制关系的第一级、第二级和/或第三级数据存储系统。因此,主数据存储系统2a例如也可以是镜像复制关系的第一级数据存储系统。然而,应当理解,在其他实施例中,主数据存储系统可以是第二级或第三级数据存储系统。
在主数据存储系统的时间线_M1(图8)中,在初始同步主定时器间隔_M0到期时,在MS1指示的时间启动安全数据提交扫描操作Scan_M1。在或大约在启动主安全数据提交扫描操作scan_M1的MS1时,主数据存储系统直接向两个辅助数据存储系统发出并发或近似并发的开始SDCS消息,即消息_S2和消息_S3。并发和并行开始SDCS消息,消息_S2和消息_S3,可以被实现为由两个辅助数据存储系统直接接收的单个广播消息,或者被实现为例如从主数据存储系统直接到每个辅助数据存储系统的并行或串行地分别发出的不同消息。通过比较,在图5A-5B'的实施例中,开始安全数据提交扫描消息从第二级数据存储系统传播或中继到第三级数据存储系统。
响应于直接从主数据存储系统接收的开始SDCS消息,在针对一个辅助数据存储系统的时间线_S2中的SS2所指示的时间,启动安全数据提交扫描操作,扫描_S2。类似地,响应于直接从主数据存储系统接收的开始SDCS消息,在针对图8的示例中的其它辅助数据存储系统的时间线_S3中的SS3所指示的时间,发起安全数据提交扫描操作,扫描_S3。
因此,辅助数据存储系统使用直接从主数据存储系统接收的一个或多个开始SDCS消息,以使辅助数据存储系统中的安全数据提交扫描操作与主数据存储系统中的并发和并行安全数据提交扫描操作同步。结果,主和两个辅数据存储系统2a、2b、2c各自的安全数据提交扫描操作,扫描_M1、扫描_S2和扫描_S3被同步,以基本上并发和并行地运行。因此,图8的第一组SDCS操作的所有三个同步安全数据提交扫描操作,扫描_M1、扫描_S2和扫描_S3在用于第一同步安全数据提交扫描操作组的单个同步安全数据提交扫描设置间隔_SET_M1内发生。结果,由于安全数据提交扫描操作而减少响应时间的任何间隔也基本上同时发生,并且基本上限于同步的安全数据提交扫描设置间隔_SET_M1。
以与上述结合SDCS操作(扫描1(图5A)、扫描2和扫描3)所述的方式类似的方式,在完成第一组SDCS操作(图8的扫描_M1、扫描_S2和扫描_S3)时,分别在图8所示的数据存储系统2a、2b、2c的日志操作,日志_M1、日志_S2和日志_S3中记录指示SDCS操作(扫描_M1、扫描_S2和扫描_S3)的启动时间的时间戳。另外,分别在数据存储系统2a、2b、2c的时间MI1、SI2、SI3处启动同步定时器间隔、主定时器间隔_M1、辅助定时器间隔_S2和辅助定时器间隔_S3,以用于下一组同步的SDCS操作,如图8所示。
在一个实施例中,同步辅助定时器间隔的持续时间,间隔_S2和间隔_S3,可以被设置为比主数据存储系统的同步主定时器间隔_M1的持续时间稍长。结果,在一组典型的同步SDCS操作中,在辅助数据存储系统的同步辅助定时器间隔到期之前,从主数据存储系统接收开始SDCS消息。因此,在一组典型的同步SDCS操作中,响应于以与上面结合图5B所述的方式类似的方式从主数据存储系统接收的开始SDCS消息,而不是响应于以与上面结合图5B'所述的方式类似的方式的辅助数据存储系统的同步辅助定时器间隔的到期,将启动SDCS操作。然而,如果在特定辅助数据存储系统中来自主数据存储系统的开始SDCS消息延迟太长的时间,则以与上面结合图5B'所述的方式类似的方式,响应于相关数据存储系统的同步辅助定时器间隔的到期,启动该辅助数据存储系统中的SDCS操作。
结果,主数据存储系统和辅助数据存储系统的每组同步的SDCS操作的所有同步的安全数据提交扫描操作将在单个同步的安全数据提交扫描集合间隔,例如安全数据提交扫描集合间隔_SET_M1内发生,而不管SDCS操作是由来自主数据存储系统的开始SDCS消息触发的,还是由局部同步辅助定时器间隔的到期触发的。因此,辅助数据存储系统中的每个安全数据提交扫描操作由开始消息或由局部同步定时器间隔的到期来启动,但不是在任何一个数据存储系统和安全数据提交扫描设置间隔两者中都启动,该安全数据提交扫描设置间隔诸如用于特定的一组同步安全数据提交扫描操作的安全数据提交扫描设置间隔。
从上文可以看出,分布式数据存储系统的各个数据存储系统的一组同步安全数据提交扫描操作被同步地定时,以在单个同步的安全数据提交扫描设置间隔内在时间上基本重叠,以减少或消除在同步安全数据扫描提交间隔之外的输入/输出响应时间的减少的发生。根据特定的应用,可以实现其它实施例和优点。
附图的计算组件可各自在一个或多个计算机系统中实现,诸如图9所示的计算机系统1002。计算机系统/服务器1002可在诸如程序模块等由计算机系统执行的计算机系统可执行指令的一般上下文中描述。通常,程序模块可以包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、逻辑、数据结构等。计算机系统/服务器1002可以在分布式云计算环境中实践,其中任务由通过通信网络链接的远程处理设备执行。在分布式云计算环境中,程序模块可以位于包括存储器存储设备的局部和远程计算机系统存储介质中。
如图9所示,计算机系统/服务器1002以通用计算设备的形式示出。计算机系统/服务器1002的组件可以包括但不限于一个或多个处理器或处理单元1004、系统存储器1006、以及将包括系统存储器1006在内的各种系统组件耦合至处理器1004的总线1008。总线1008表示若干类型的总线结构中的任何一种总线结构中的一个或多个,包括存储器总线或存储器控制器、外围总线、加速图形端口、以及使用各种总线体系结构中的任何一种的处理器或局部总线。作为示例而非限制,这些体系结构包括工业标准体系结构(ISA)总线、微通道体系结构(MCA)总线、增强型ISA(EISA)总线、视频电子技术标准协会(VESA)局部总线和外围部件互连(PCI)总线。
计算机系统/服务器1002通常包括各种计算机系统可读介质。这样的介质可以是可由计算机系统/服务器1002访问的任何可用介质,并且它包括易失性和非易失性介质、可移除和不可移除介质。
系统存储器1006可以包括易失性存储器形式的计算机系统可读介质,例如随机存取存储器(RAM)1010和/或高速缓存存储器1012。计算机系统/服务器1002还可以包括其他可移除/不可移除、易失性/非易失性计算机系统存储介质。仅作为示例,存储系统1013可被提供用于从不可移除、非易失性磁介质(未示出,并且通常被称为"硬盘驱动器")读取和向其写入。尽管未示出,但是可以提供用于从可移除、非易失性磁盘(例如,"软盘")读取和向其写入的磁盘驱动器,以及用于从诸如CD-ROM、DVD-ROM或其它光学介质等可移除、非易失性光盘读取或向其写入的光盘驱动器。在这种情况下,每个都可以通过一个或多个数据介质接口连接到总线1008。如下面将进一步描绘和描述的,存储器1006可以包括至少一个程序产品,该程序产品具有一组(例如,至少一个)程序模块,该程序模块被配置成执行本发明的实施例的功能。
具有一组(至少一个)程序模块1016的程序/实用程序1014,以及操作系统、一个或多个应用程序、其它程序模块和程序数据,可作为示例而非限制存储在存储器1006中。操作系统、一个或多个应用程序、其它程序模块和程序数据或其某种组合中的每一个可包括联网环境的实现。计算机系统1002的组件可以实现为程序模块1016,其通常执行如本文描述的本发明的实施例的功能和/或方法。图1的系统可以在一个或多个计算机系统1002中实现,其中如果它们在多个计算机系统1002中实现,则计算机系统可以通过网络通信。
计算机系统/服务器1002还可以与一个或多个外部设备1018通信,诸如键盘、定点设备、显示器1020等;一个或多个设备,其使得用户能够与计算机系统/服务器1002交互;和/或使计算机系统/服务器1002能够与一个或多个其它计算设备通信的任何设备(例如,网卡、调制解调器等)。这种通信可以经由输入/输出(I/O)接口1022发生。此外,计算机系统/服务器1002可以经由网络适配器1024与一个或多个网络通信,所述网络诸如局域网(LAN)、通用广域网(WAN)和/或公共网络(例如,因特网)。如图所示,网络适配器1024经由总线1008与计算机系统/服务器1002的其它组件通信。应当理解,尽管未示出,但是可以结合计算机系统/服务器1002使用其他硬件和/或软件组件。实例包括但不限于:微码、设备驱动程序、冗余处理单元、外部磁盘驱动器阵列、RAID系统、磁带驱动器和数据档案存储系统等。
本文所使用的参考符号,例如i、j和n,用于表示元件的可变数量的实例,其可以表示相同或不同的值,并且当在不同的所述实例中与不同或相同的元件一起使用时,可以表示相同或不同的值。
本发明可以是系统、方法和/或计算机程序产品。计算机程序产品可以包括其上具有计算机可读程序指令的计算机可读存储介质(或多个介质),所述计算机可读程序指令用于使处理器执行根据本发明的方面的处理器操作。
计算机可读存储介质可以是能够保留和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质可以是例如但不限于电子存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或前述的任何合适的组合。计算机可读存储介质的更具体示例的非穷举列表包括以下:便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或闪存)、静态随机存取存储器(SRAM)、便携式光盘只读存储器(CD-ROM)、数字多功能盘(DVD)、记忆棒、软盘、诸如上面记录有指令的打孔卡或凹槽中的凸起结构的机械编码装置,以及上述的任何适当组合。如本文所使用的计算机可读存储介质不应被解释为暂时性信号本身,诸如无线电波或其他自由传播的电磁波、通过波导或其他传输介质传播的电磁波(例如,通过光纤线缆的光脉冲)、或通过导线传输的电信号。
本文描述的计算机可读程序指令可以从计算机可读存储介质下载到相应的计算/处理设备,或者经由网络,例如因特网、局域网、广域网和/或无线网络,下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光传输光纤、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或网络接口从网络接收计算机可读程序指令,并转发计算机可读程序指令以存储在相应计算/处理设备内的计算机可读存储介质中。
用于执行本发明的操作的计算机可读程序指令可以是汇编指令、指令集架构(ISA)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据,或者以一种或多种编程语言的任意组合编写的源代码或目标代码,所述编程语言包括面向对象的编程语言,例如Java、Smalltalk、C++等,以及常规的过程式编程语言,例如"C"编程语言或类似的编程语言。计算机可读程序指令可以完全在用户的计算机上执行,部分在用户的计算机上执行,作为独立的软件包执行,部分在用户的计算机上并且部分在远程计算机上执行,或者完全在远程计算机或服务器上执行。在后一种情况下,远程计算机可以通过任何类型的网络连接到用户的计算机,包括局域网(LAN)或广域网(WAN),或者可以连接到外部计算机(例如,使用因特网服务提供商通过因特网)。在一些实施例中,为了执行本发明的各方面,包括例如可编程逻辑电路、现场可编程门阵列(FPGA)或可编程逻辑阵列(PLA)的电子电路可以通过利用计算机可读程序指令的状态信息来执行计算机可读程序指令以使电子电路个性化。
本文参考根据本发明实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述本发明的各方面。将理解,流程图和/或框图的每个框以及流程图和/或框图中的框的组合可以由计算机可读程序指令来实现。
这些计算机可读程序指令可以被提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器以产生机器,使得经由计算机或其他可编程数据处理装置的处理器执行的指令创建用于实现流程图和/或框图的一个或多个框中指定的功能/动作的装置。这些计算机可读程序指令还可以存储在计算机可读存储介质中,其可以引导计算机、可编程数据处理装置和/或其他设备以特定方式工作,使得其中存储有指令的计算机可读存储介质包括制品,该制品包括实现流程图和/或框图的一个或多个框中指定的功能/动作的各方面的指令。
计算机可读程序指令还可以被加载到计算机、其他可编程数据处理装置或其他设备上,以使得在计算机、其他可编程装置或其他设备上执行一系列操作步骤,以产生计算机实现的过程,使得在计算机、其他可编程装置或其他设备上执行的指令实现流程图和/或框图的一个或多个框中指定的功能/动作。
附图中的流程图和框图示出了根据本发明的各种实施例的系统、方法和计算机程序产品的可能实现的架构、功能和操作。在这点上,流程图或框图中的每个框可以表示指令的模块、段或部分,其包括用于实现指定的逻辑功能的一个或多个可执行指令。在一些替代实施方案中,框中所提及的功能可不按图中所提及的次序发生。例如,连续示出的两个框实际上可以基本上同时执行,或者这些框有时可以以相反的顺序执行,这取决于所涉及的功能。还将注意,框图和/或流程图图示的每个框以及框图和/或流程图图示中的框的组合可以由执行指定功能或动作或执行专用硬件和计算机指令的组合的专用的基于硬件的系统来实现。
术语"一个实施例"、“实施例”、"多个实施例"、"该实施例"、"这些实施例"、"一个或多个实施例"、"一些实施例"和"该一个实施例"表示"本发明的一个或多个(但不是全部)实施例",除非另有明确说明。
术语"包括"、"包含"、"具有"及其变体表示"包括但不限于",除非另有明确说明。
除非另外明确规定,否则列举的项目列表并不意味着任何或所有项目是互斥的。
术语"一"、"一个"和"该"表示"一个或多个",除非另有明确说明。
除非另外明确指出,否则彼此通信的设备不需要彼此连续通信。另外,彼此通信的设备可以直接通信或通过一个或多个中间物间接通信。
具有彼此通信的若干组件的实施例的描述并不暗示需要所有此类组件。相反,描述了各种可选组件以说明本发明的各种可能的实施例。
当在此描述单个设备或产品时,很明显,可以使用多于一个的设备/产品(无论它们是否协作)来代替单个设备/产品。类似地,本文描述了多于一个设备或产品(无论它们是否协作)的情况下,将容易明白的是,可以使用单个设备/产品来代替多于一个设备或产品,或者可以使用不同数量的设备/产品来代替所示数量的设备或程序。设备的功能和/或特征可以替代地由一个或多个未明确描述为具有这样的功能/特征的其他设备来体现。因此,本发明的其它实施例不需要包括该设备本身。
为了说明和描述的目的,已经呈现了本发明的各种实施例的上述描述。其不是穷举的,也不是要将本发明限制为所公开的精确形式。根据上述教导,许多修改和变化是可能的。本发明的范围不是由该详细描述来限定,而是由所附权利要求来限定。上述说明、示例和数据提供了对本发明的组成的制造和使用的完整描述。由于在不脱离本发明的精神和范围的情况下可以做出本发明的许多实施例,因此本发明在于所附权利要求书。
Claims (24)
1.一种方法,包括:
对多个数据存储系统中的第一组安全数据提交扫描操作进行同步,每个安全数据提交扫描操作将在数据存储系统的高速缓存中所缓存的数据降级到数据存储系统的数据存储单元,其中对所述第一组安全数据提交扫描操作进行同步包括:
在第一数据存储系统中启动所述第一组安全数据提交扫描操作中的第一安全数据提交扫描操作;
从所述第一数据存储系统向第二数据存储系统发送第一开始安全数据提交扫描操作消息;
响应于所述第一开始安全数据提交扫描操作消息,在所述第二数据存储系统中启动所述第一组安全数据提交扫描操作中的第二安全数据提交扫描操作;
对所述多个数据存储系统中的第二组安全数据提交扫描操作进行同步,其中对所述第二组安全数据提交扫描操作进行同步包括:
在第一数据存储系统中的所述第一组安全数据提交扫描操作中的所述第一安全数据提交扫描操作完成时,对所述第一数据存储系统中的时间间隔进行定时;
在所述第二数据存储系统中的所述第一组安全数据提交扫描操作中的所述第二安全数据提交扫描操作完成时,对所述第二数据存储系统中的时间间隔进行定时;
响应于所述第一数据存储系统中的所述时间间隔的所述定时到期,在所述第一数据存储系统中启动所述第二组安全数据提交扫描操作中的第一安全数据提交扫描操作;以及
从所述第一数据存储系统向所述第二数据存储系统发送第二开始安全数据提交扫描操作消息。
2.根据权利要求1所述的方法,其中,从所述第一数据存储系统到所述第二数据存储系统的所述第一开始安全数据提交扫描操作消息包括定义所述第一数据存储系统中的所述时间间隔的所述定时的持续时间的定时器间隔持续时间参数,并且其中,所述第二数据存储系统中的所述时间间隔的所述定时的持续时间是来自所述第一数据存储系统的所述第一开始安全数据提交扫描操作消息的所述定时器间隔持续时间参数的函数。
3.根据权利要求2所述的方法,其中所述第二数据存储系统中的所述时间间隔的所述持续时间被设置为比所述第一数据存储系统中的所述时间间隔的所述定时的持续时间长。
4.根据权利要求1所述的方法,其中对所述第二组安全数据提交扫描操作进行同步还包括:
响应于所述第二开始安全数据提交扫描操作消息,如果所述第二数据存储系统中的所述时间间隔的所述定时尚未到期,则在所述第二数据存储系统中启动所述第二组安全数据提交扫描操作中的第二安全数据提交扫描操作;以及
响应于所述第二数据存储系统中的所述时间间隔的所述定时到期,如果第二开始安全数据提交扫描操作消息尚未从所述第一数据存储系统接收到,则在所述第二数据存储系统中启动所述第二组安全数据提交扫描操作的第二安全数据提交扫描操作。
5.根据权利要求4所述的方法,还包括:
对所述多个数据存储系统中的第三组安全数据提交扫描操作进行同步,其中对所述第三组安全数据提交扫描操作进行同步包括:
在所述第一数据存储系统中的所述第二组安全数据提交扫描操作中的所述第一安全数据提交扫描操作完成时,对所述第一数据存储系统中的另一时间间隔进行定时;以及
在所述第二数据存储系统中的所述第二组安全数据提交扫描操作中的所述第二安全数据提交扫描操作完成时,对所述第二数据存储系统中的另一时间间隔进行定时。
6.根据权利要求1所述的方法,其中对所述第二组安全数据提交扫描操作进行同步还包括:
响应于所述第二数据存储系统中的所述时间间隔的所述定时到期并且没有从所述第一数据存储系统接收到所述第二开始安全数据提交扫描操作消息,联系所述第一数据存储系统以确定所述第一数据存储系统中的所述第二组安全数据提交扫描操作中的第一安全数据提交扫描操作的状态,并且根据所述第一数据存储系统中的所述第二组安全数据提交扫描操作中的第一安全数据提交扫描操作的所述状态,确定是重置所述第二数据存储系统中的所述时间间隔的所述定时还是启动所述第二数据存储系统中的所述第二组安全数据提交扫描操作中的第二安全数据提交扫描操作。
7.根据权利要求1所述的方法,其中所述第一数据存储系统是主数据存储系统,所述第二数据存储系统是辅助数据存储系统,并且对所述第一组安全数据提交扫描操作进行同步还包括:
从所述主数据存储系统向另一辅助数据存储系统发送第二开始安全数据提交扫描操作消息;以及
响应于所述第二开始安全数据提交扫描操作消息,在另一辅助数据存储系统中启动所述第一组安全数据提交扫描操作的第三安全数据提交扫描操作。
8.根据权利要求1所述的方法,其中所述第一数据存储系统是第一级数据存储系统,所述第二数据存储系统是第二级数据存储系统,并且对所述第一组安全数据提交扫描操作进行同步还包括:
响应于所述第一开始安全数据提交扫描操作消息,从所述第二级数据存储系统向第三级数据存储系统发送第二开始安全数据提交扫描操作消息;以及
响应于所述第二开始安全数据提交扫描操作消息,在所述第三级数据存储系统中启动所述第一组安全数据提交扫描操作中的第三安全数据提交扫描操作。
9.一种用于与多个数据存储系统一起使用的计算机可读存储介质,所述多个数据存储系统中各自具有存储控制器和由存储控制器控制并且被配置为存储数据的数据存储单元,其中每个数据存储系统的所述存储控制器具有处理器和高速缓存,并且其中,所述计算机可读存储介质具有随其体现的程序指令,所述程序指令由存储控制器的处理器可执行以引起处理器操作,所述处理器操作包括:
对多个数据存储系统中的第一组安全数据提交扫描操作进行同步,每个安全数据提交扫描操作将在数据存储系统的高速缓存中所缓存的数据降级到数据存储系统的数据存储单元,其中对所述第一组安全数据提交扫描操作进行同步包括:
在第一数据存储系统中启动所述第一组安全数据提交扫描操作中的第一安全数据提交扫描操作;
从所述第一数据存储系统向第二数据存储系统发送第一开始安全数据提交扫描操作消息;
响应于所述第一开始安全数据提交扫描操作消息,在所述第二数据存储系统中启动所述第一组安全数据提交扫描操作中的第二安全数据提交扫描操作;
对所述多个数据存储系统中的第二组安全数据提交扫描操作进行同步,其中对所述第二组安全数据提交扫描操作进行同步包括:
在第一数据存储系统中的所述第一组安全数据提交扫描操作中的所述第一安全数据提交扫描操作完成时,对所述第一数据存储系统中的时间间隔进行定时;
在所述第二数据存储系统中的所述第一组安全数据提交扫描操作中的所述第二安全数据提交扫描操作完成时,对所述第二数据存储系统中的时间间隔进行定时;
响应于所述第一数据存储系统中的所述时间间隔的所述定时到期,在所述第一数据存储系统中启动所述第二组安全数据提交扫描操作中的第一安全数据提交扫描操作;以及
从所述第一数据存储系统向所述第二数据存储系统发送第二开始安全数据提交扫描操作消息。
10.根据权利要求9所述的计算机可读存储介质,其中,从所述第一数据存储系统到所述第二数据存储系统的所述第一开始安全数据提交扫描操作消息包括定义所述第一数据存储系统中的所述时间间隔的所述定时的持续时间的定时器间隔持续时间参数,并且其中,所述第二数据存储系统中的所述时间间隔的所述定时的持续时间是来自所述第一数据存储系统的所述第一开始安全数据提交扫描操作消息的所述定时器间隔持续时间参数的函数。
11.根据权利要求10所述的计算机可读存储介质,其中所述第二数据存储系统中的所述时间间隔的所述持续时间被设置为比所述第一数据存储系统中的所述时间间隔的所述定时的持续时间长。
12.根据权利要求9所述的计算机可读存储介质,其中对所述第二组安全数据提交扫描操作进行同步还包括:
响应于所述第二开始安全数据提交扫描操作消息,如果所述第二数据存储系统中的所述时间间隔的所述定时尚未到期,则在所述第二数据存储系统中启动所述第二组安全数据提交扫描操作中的第二安全数据提交扫描操作;以及
响应于所述第二数据存储系统中的所述时间间隔的所述定时到期,如果第二开始安全数据提交扫描操作消息尚未从所述第一数据存储系统接收到,则在所述第二数据存储系统中启动所述第二组安全数据提交扫描操作的第二安全数据提交扫描操作。
13.根据权利要求12所述的计算机可读存储介质,其中所述处理器操作学包括:
对所述多个数据存储系统中的第三组安全数据提交扫描操作进行同步,其中对所述第三组安全数据提交扫描操作进行同步包括:
在所述第一数据存储系统中的所述第二组安全数据提交扫描操作中的所述第一安全数据提交扫描操作完成时,对所述第一数据存储系统中的另一时间间隔进行定时;以及
在所述第二数据存储系统中的所述第二组安全数据提交扫描操作中的所述第二安全数据提交扫描操作完成时,对所述第二数据存储系统中的另一时间间隔进行定时。
14.根据权利要求9所述的计算机可读存储介质,其中对所述第二组安全数据提交扫描操作进行同步还包括:
响应于所述第二数据存储系统中的所述时间间隔的所述定时到期并且没有从所述第一数据存储系统接收到所述第二开始安全数据提交扫描操作消息,联系所述第一数据存储系统以确定所述第一数据存储系统中的所述第二组安全数据提交扫描操作中的第一安全数据提交扫描操作的状态,并且根据所述第一数据存储系统中的所述第二组安全数据提交扫描操作中的第一安全数据提交扫描操作的状态,确定是重置所述第二数据存储系统中的所述时间间隔的所述定时还是启动所述第二数据存储系统中的所述第二组安全数据提交扫描操作中的第二安全数据提交扫描操作。
15.根据权利要求9所述的计算机可读存储介质,其中,所述第一数据存储系统是主数据存储系统,所述第二数据存储系统是辅助数据存储系统,并且对所述第一组安全数据提交扫描操作进行同步还包括:
从主数据存储系统向另一辅助数据存储系统发送第二开始安全数据提交扫描操作消息;以及
响应于所述第二开始安全数据提交扫描操作消息,在另一辅助数据存储系统中启动所述第一组安全数据提交扫描操作的第三安全数据提交扫描操作。
16.根据权利要求9所述的计算机可读存储介质,其中所述第一数据存储系统是第一级数据存储系统,并且所述第二数据存储系统是第二级数据存储系统,并且对所述第一组安全数据提交扫描操作进行同步还包括:
响应于所述第一开始安全数据提交扫描操作消息,从所述第二级数据存储系统向第三级数据存储系统发送第二开始安全数据提交扫描操作消息;以及
响应于所述第二开始安全数据提交扫描操作消息,在所述第三级数据存储系统中启动所述第一组安全数据提交扫描操作中的第三安全数据提交扫描操作。
17.一种系统,包括:
多个数据存储系统,每个数据存储系统具有存储控制器和由存储控制器控制并被配置为存储数据的数据存储单元,其中每个数据存储系统的所述存储控制器具有处理器和高速缓存,其中所述多个数据存储系统包括被配置为第一级数据存储系统的第一数据存储系统和被配置为第二级数据存储系统的第二数据存储系统;以及
一种计算机程序产品,包括计算机可读存储介质,所述计算机可读存储介质具有随其体现的程序指令,所述程序指令由存储控制器的处理器可执行以引起处理器操作,所述处理器操作包括:
对多个数据存储系统中的第一组安全数据提交扫描操作进行同步,每个安全数据提交扫描操作将在数据存储系统的高速缓存中所缓存的数据降级到数据存储系统的数据存储单元,其中对所述第一组安全数据提交扫描操作进行同步包括:
在第一数据存储系统中启动所述第一组安全数据提交扫描操作中的第一安全数据提交扫描操作;
从所述第一数据存储系统向第二数据存储系统发送第一开始安全数据提交扫描操作消息;
响应于所述第一开始安全数据提交扫描操作消息,在所述第二数据存储系统中启动所述第一组安全数据提交扫描操作中的第二安全数据提交扫描操作;
对所述多个数据存储系统中的第二组安全数据提交扫描操作进行同步,其中对所述第二组安全数据提交扫描操作进行同步包括:
在第一数据存储系统中的所述第一组安全数据提交扫描操作中的所述第一安全数据提交扫描操作完成时,对所述第一数据存储系统中的时间间隔进行定时;
在所述第二数据存储系统中的所述第一组安全数据提交扫描操作中的所述第二安全数据提交扫描操作完成时,对所述第二数据存储系统中的时间间隔进行定时;
响应于所述第一数据存储系统中的所述时间间隔的所述定时到期,在所述第一数据存储系统中启动所述第二组安全数据提交扫描操作中的第一安全数据提交扫描操作;以及
从所述第一数据存储系统向所述第二数据存储系统发送第二开始安全数据提交扫描操作消息。
18.根据权利要求17所述的系统,其中,从所述第一数据存储系统到所述第二数据存储系统的所述第一开始安全数据提交扫描操作消息包括定义所述第一数据存储系统中的所述时间间隔的所述定时的持续时间的定时器间隔持续时间参数,并且其中,所述第二数据存储系统中的所述时间间隔的所述定时的持续时间是来自所述第一数据存储系统的所述第一开始安全数据提交扫描操作消息的所述定时器间隔持续时间参数的函数。
19.根据权利要求18所述的系统,其中所述第二数据存储系统中的所述时间间隔的所述持续时间被设置为比所述第一数据存储系统中的所述时间间隔的所述定时的持续时间长。
20.根据权利要求17所述的系统,其中对所述第二组安全数据提交扫描操作进行同步还包括:
响应于所述第二开始安全数据提交扫描操作消息,如果所述第二数据存储系统中的所述时间间隔的所述定时尚未到期,则在所述第二数据存储系统中启动所述第二组安全数据提交扫描操作中的第二安全数据提交扫描操作;以及
响应于所述第二数据存储系统中的所述时间间隔的所述定时到期,如果第二开始安全数据提交扫描操作消息尚未从所述第一数据存储系统接收到,则在所述第二数据存储系统中启动所述第二组安全数据提交扫描操作的第二安全数据提交扫描操作。
21.根据权利要求20所述的系统,其中所述处理器操作还包括:
对所述多个数据存储系统中的第三组安全数据提交扫描操作进行同步,其中对所述第三组安全数据提交扫描操作进行同步包括:
在所述第一数据存储系统中的所述第二组安全数据提交扫描操作中的所述第一安全数据提交扫描操作完成时,对所述第一数据存储系统中的另一时间间隔进行定时;以及
在所述第二数据存储系统中的所述第二组安全数据提交扫描操作中的所述第二安全数据提交扫描操作完成时,对所述第二数据存储系统中的另一时间间隔进行定时。
22.根据权利要求17所述的系统,其中对所述第二组安全数据提交扫描操作进行同步还包括:
响应于所述第二数据存储系统中的所述时间间隔的所述定时到期并且没有从所述第一数据存储系统接收到所述第二开始安全数据提交扫描操作消息,联系所述第一数据存储系统以确定所述第一数据存储系统中的所述第二组安全数据提交扫描操作中的第一安全数据提交扫描操作的状态,并且根据所述第一数据存储系统中的所述第二组安全数据提交扫描操作中的第一安全数据提交扫描操作的所述状态,确定是重置所述第二数据存储系统中的所述时间间隔的所述定时还是启动所述第二数据存储系统中的所述第二组安全数据提交扫描操作中的第二安全数据提交扫描操作。
23.根据权利要求17所述的系统,其中所述第一数据存储系统是主数据存储系统,并且所述第二数据存储系统是辅助数据存储系统,并且对所述第一组安全数据提交扫描操作进行同步还包括:
从所述主数据存储系统向另一辅助数据存储系统发送第二开始安全数据提交扫描操作消息;以及
响应于所述第二开始安全数据提交扫描操作消息,在另一辅助数据存储系统中启动所述第一组安全数据提交扫描操作中的第三安全数据提交扫描操作。
24.根据权利要求17所述的系统,其中,所述第一数据存储系统是第一级数据存储系统,并且所述第二数据存储系统是第二级数据存储系统,并且对所述第一组安全数据提交扫描操作进行同步还包括:
响应于所述第一开始安全数据提交扫描操作消息,从所述第二级数据存储系统向第三级数据存储系统发送第二开始安全数据提交扫描操作消息;以及
响应于所述第二开始安全数据提交扫描操作消息,在所述第三级数据存储系统中启动所述第一组安全数据提交扫描操作中的第三安全数据提交扫描操作。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/913,735 US10809938B2 (en) | 2018-03-06 | 2018-03-06 | Synchronized safe data commit scans in multiple data storage systems |
US15/913,735 | 2018-03-06 | ||
PCT/IB2019/051576 WO2019171212A1 (en) | 2018-03-06 | 2019-02-27 | Synchronized safe data commit scans in multiple data storage systems |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111684407A CN111684407A (zh) | 2020-09-18 |
CN111684407B true CN111684407B (zh) | 2023-09-19 |
Family
ID=67842642
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201980011912.XA Active CN111684407B (zh) | 2018-03-06 | 2019-02-27 | 多个数据存储系统中的同步安全数据提交扫描 |
Country Status (6)
Country | Link |
---|---|
US (1) | US10809938B2 (zh) |
JP (1) | JP7184909B2 (zh) |
CN (1) | CN111684407B (zh) |
DE (1) | DE112019000568T5 (zh) |
GB (1) | GB2586398B (zh) |
WO (1) | WO2019171212A1 (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11144358B1 (en) * | 2018-12-06 | 2021-10-12 | Pure Storage, Inc. | Asynchronous arbitration of shared resources |
CN114116746B (zh) * | 2021-11-24 | 2024-07-16 | 北京字节跳动网络技术有限公司 | 多系统数据存储方法、装置、介质及电子设备 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7370163B2 (en) * | 2004-05-03 | 2008-05-06 | Gemini Storage | Adaptive cache engine for storage area network including systems and methods related thereto |
CN101446972A (zh) * | 2008-12-12 | 2009-06-03 | 中兴通讯股份有限公司 | 一种动态数据同步的方法和系统 |
CN102436354A (zh) * | 2010-09-29 | 2012-05-02 | 国际商业机器公司 | 使用跨步对象管理写入高速缓存的方法和系统 |
Family Cites Families (31)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6292905B1 (en) | 1997-05-13 | 2001-09-18 | Micron Technology, Inc. | Method for providing a fault tolerant network using distributed server processes to remap clustered network resources to other servers during server failure |
US6185608B1 (en) | 1998-06-12 | 2001-02-06 | International Business Machines Corporation | Caching dynamic web pages |
DE60039033D1 (de) | 2000-05-25 | 2008-07-10 | Hitachi Ltd | Speichersystem zur Bestätigung der Datensynchronisierung während des asynchronen Fernkopierens |
US7127512B2 (en) | 2002-02-19 | 2006-10-24 | Qualcomm Inc. | Method and apparatus for two-phase commit in data distribution to a web farm |
US6728898B2 (en) * | 2002-03-06 | 2004-04-27 | Marathon Technologies Corporation | Producing a mirrored copy using incremental-divergence |
GB0308264D0 (en) | 2003-04-10 | 2003-05-14 | Ibm | Recovery from failures within data processing systems |
JP2005079912A (ja) | 2003-08-29 | 2005-03-24 | Matsushita Electric Ind Co Ltd | セキュアデータ管理装置 |
US7752173B1 (en) * | 2005-12-16 | 2010-07-06 | Network Appliance, Inc. | Method and apparatus for improving data processing system performance by reducing wasted disk writes |
US7651593B2 (en) | 2005-12-19 | 2010-01-26 | Commvault Systems, Inc. | Systems and methods for performing data replication |
US7506011B2 (en) * | 2006-07-26 | 2009-03-17 | International Business Machines Corporation | System and apparatus for optimally trading off the replication overhead and consistency level in distributed applications |
US20090313428A1 (en) | 2006-09-25 | 2009-12-17 | Intellimagic | Optimising Remote Mirroring Resynchronisation |
JP5057366B2 (ja) * | 2006-10-30 | 2012-10-24 | 株式会社日立製作所 | 情報システム及び情報システムのデータ転送方法 |
US7613738B2 (en) | 2007-01-16 | 2009-11-03 | Microsoft Corporation | FAT directory structure for use in transaction safe file system |
US8046548B1 (en) | 2007-01-30 | 2011-10-25 | American Megatrends, Inc. | Maintaining data consistency in mirrored cluster storage systems using bitmap write-intent logging |
US8650155B2 (en) | 2008-02-26 | 2014-02-11 | Oracle International Corporation | Apparatus and method for log based replication of distributed transactions using globally acknowledged commits |
US7921328B1 (en) | 2008-04-18 | 2011-04-05 | Network Appliance, Inc. | Checkpoint consolidation for multiple data streams |
JP5147570B2 (ja) | 2008-07-02 | 2013-02-20 | 株式会社日立製作所 | ストレージシステム及びリモートコピー復旧方法 |
US9165012B2 (en) | 2009-10-02 | 2015-10-20 | Symantec Corporation | Periodic file system checkpoint manager |
US8924354B2 (en) | 2011-02-01 | 2014-12-30 | Ca, Inc. | Block level data replication |
US8538926B2 (en) | 2011-03-08 | 2013-09-17 | Rackspace Us, Inc. | Massively scalable object storage system for storing object replicas |
WO2014002136A1 (en) | 2012-06-26 | 2014-01-03 | Hitachi, Ltd. | Storage system and method of controlling the same |
US8909985B2 (en) | 2012-07-12 | 2014-12-09 | International Business Machines Corporation | Multiple hyperswap replication sessions |
US20140258635A1 (en) | 2013-03-08 | 2014-09-11 | Oracle International Corporation | Invalidating entries in a non-coherent cache |
US9785518B2 (en) | 2013-09-04 | 2017-10-10 | Hytrust, Inc. | Multi-threaded transaction log for primary and restore/intelligence |
US9390281B2 (en) | 2013-12-30 | 2016-07-12 | Open Invention Network, Llc | Protecting data in insecure cloud storage |
CN103745353A (zh) | 2014-01-23 | 2014-04-23 | 福建联迪商用设备有限公司 | 一种电子支付终端验证方法及系统 |
US9904688B2 (en) | 2014-09-30 | 2018-02-27 | International Business Machines Corporation | Buffering and replicating data written to a distributed storage system |
US10275320B2 (en) | 2015-06-26 | 2019-04-30 | Commvault Systems, Inc. | Incrementally accumulating in-process performance data and hierarchical reporting thereof for a data stream in a secondary copy operation |
US10630802B2 (en) | 2015-12-07 | 2020-04-21 | International Business Machines Corporation | Read caching in PPRC environments |
US10318429B2 (en) | 2016-11-10 | 2019-06-11 | International Business Machines Corporation | Adjustment of the number of tasks for a cache storage scan and destage application based on the type of elements to be destaged from the cache storage |
CN107124317A (zh) | 2017-05-31 | 2017-09-01 | 郑州云海信息技术有限公司 | 一种容灾系统 |
-
2018
- 2018-03-06 US US15/913,735 patent/US10809938B2/en active Active
-
2019
- 2019-02-27 GB GB2015329.2A patent/GB2586398B/en active Active
- 2019-02-27 WO PCT/IB2019/051576 patent/WO2019171212A1/en active Application Filing
- 2019-02-27 DE DE112019000568.5T patent/DE112019000568T5/de active Pending
- 2019-02-27 JP JP2020543167A patent/JP7184909B2/ja active Active
- 2019-02-27 CN CN201980011912.XA patent/CN111684407B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7370163B2 (en) * | 2004-05-03 | 2008-05-06 | Gemini Storage | Adaptive cache engine for storage area network including systems and methods related thereto |
CN101446972A (zh) * | 2008-12-12 | 2009-06-03 | 中兴通讯股份有限公司 | 一种动态数据同步的方法和系统 |
CN102436354A (zh) * | 2010-09-29 | 2012-05-02 | 国际商业机器公司 | 使用跨步对象管理写入高速缓存的方法和系统 |
Also Published As
Publication number | Publication date |
---|---|
US20190278481A1 (en) | 2019-09-12 |
WO2019171212A1 (en) | 2019-09-12 |
GB2586398A (en) | 2021-02-17 |
GB2586398B (en) | 2022-06-08 |
US10809938B2 (en) | 2020-10-20 |
GB202015329D0 (en) | 2020-11-11 |
JP2021515926A (ja) | 2021-06-24 |
JP7184909B2 (ja) | 2022-12-06 |
DE112019000568T5 (de) | 2020-10-15 |
CN111684407A (zh) | 2020-09-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP7210537B2 (ja) | 整合性グループにおける整合したポイント・イン・タイム・スナップコピーの非同期ローカル及びリモート生成 | |
US10936447B2 (en) | Resynchronizing to a first storage system after a failover to a second storage system mirroring the first storage system | |
US10572357B2 (en) | Switching over from using a first primary storage to using a second primary storage when the first primary storage is in a mirror relationship | |
US10162563B2 (en) | Asynchronous local and remote generation of consistent point-in-time snap copies | |
US10824364B2 (en) | Point-in-time snap copy on asynchronous consistency group management | |
US11347604B2 (en) | Point-in-time snap copy withdrawal management | |
US9727243B2 (en) | Using inactive copy relationships to resynchronize data between storages | |
CN111448554B (zh) | 数据存储系统中的拷贝源至目标管理 | |
US7890715B2 (en) | Suspension of an asynchronous remote copy pair system having a primary controller and a remote controller | |
CN111684407B (zh) | 多个数据存储系统中的同步安全数据提交扫描 | |
US10754730B2 (en) | Copying point-in-time data in a storage to a point-in-time copy data location in advance of destaging data to the storage | |
US10437730B2 (en) | Read cache synchronization in data replication environments | |
US11221955B2 (en) | Metadata track selection switching in a data storage system | |
US10740007B2 (en) | Synchronized primary-secondary role swaps with synchronized safe data commit scans | |
US10210060B2 (en) | Online NVM format upgrade in a data storage system operating with active and standby memory controllers |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |