CN111448554A - 数据存储系统中的拷贝源至目标管理 - Google Patents

数据存储系统中的拷贝源至目标管理 Download PDF

Info

Publication number
CN111448554A
CN111448554A CN201880079857.3A CN201880079857A CN111448554A CN 111448554 A CN111448554 A CN 111448554A CN 201880079857 A CN201880079857 A CN 201880079857A CN 111448554 A CN111448554 A CN 111448554A
Authority
CN
China
Prior art keywords
point
target
cache
copy source
data
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.)
Granted
Application number
CN201880079857.3A
Other languages
English (en)
Other versions
CN111448554B (zh
Inventor
L·古普塔
K·J·阿什
C·哈迪
K·A·尼尔森
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.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of CN111448554A publication Critical patent/CN111448554A/zh
Application granted granted Critical
Publication of CN111448554B publication Critical patent/CN111448554B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
    • G06F12/0868Data transfer between cache memory and other subsystems, e.g. storage devices or host systems
    • 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/0888Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using selective caching, e.g. bypass
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/065Replication mechanisms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0662Virtualisation aspects
    • G06F3/0665Virtualisation aspects at area level, e.g. provisioning of virtual or logical volumes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0689Disk arrays, e.g. RAID, JBOD
    • 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/1016Performance improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/15Use in a specific computing environment
    • G06F2212/154Networked environment
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/26Using a specific storage system architecture
    • G06F2212/263Network storage, e.g. SAN or NAS
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/28Using a specific disk cache architecture
    • G06F2212/285Redundant cache memory
    • G06F2212/286Mirrored cache memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/31Providing disk cache in a specific location of a storage system
    • G06F2212/312In storage controller
    • 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/462Track or segment
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/60Details of cache memory
    • G06F2212/6042Allocation of cache space to multiple users or processors
    • G06F2212/6046Using a specific cache allocation policy other than replacement policy

Abstract

可以在源送出操作之前选择性地和抢先采取拷贝源至目标操作。在另一方面,逻辑检测包括对时间点拷贝源的大块写入的顺序写入。作为响应,开始相关联的时间点拷贝目标上的送出任务,其在一个实施例中包括步幅对准的拷贝源至目标操作,该操作与目标的步幅对准地将未修改的数据从时间点拷贝源拷贝到时间点拷贝目标。结果,当写入操作的写入数据被送出到时间点拷贝源时,这样的源送出不需要等待拷贝源至目标操作,因为它们已经被执行。另外,拷贝源至目标操作可以相对于时间点拷贝目标的步幅边界步幅对准。取决于特定应用,可实现其他特征和方面。

Description

数据存储系统中的拷贝源至目标管理
技术领域
本发明涉及用于在数据存储系统中的拷贝源至目标管理的计算机程序产品、系统和方法。
背景技术
数据存储系统(特别是企业级的)通常被设计成用于提供高级别冗余以便降低在数据存储系统的组件发生故障的情况下数据丢失的风险。因此,数据的多个副本经常存储在地理上分散的多个系统上。因此,来自主机的有待存储在数据存储系统中的数据通常被定向到本地站点处的主数据存储系统的主设备,并且然后被复制到辅助数据存储系统的一个或多个辅助设备,这些辅助数据存储系统可以是地理上远离主数据存储系统的系统。一个主设备可以具有多个辅助关系,其中定向到主设备的数据被复制到多个辅助设备。
存储控制器可以控制可以包括硬盘、磁带等的多个存储设备。高速缓存也可由存储控制器维护,其中高速缓存可包括与某些其他存储设备(诸如硬盘、磁带等)相比更快地可访问的高速存储。然而,相比于由存储控制器控制的某些其他存储设备(诸如硬盘等)的存储容量,高速缓存的存储容量的总量可能相对较小。高速缓存可以包括可以以不同方式彼此互操作的随机存取存储器(RAM)、非易失性存储设备(NVS)、读取高速缓存、写入高速缓存等中的一个或多个。NVS可包括电池备份随机存取存储器,并且可允许高速执行写入操作。存储控制器可以管理从联网主机到多个存储设备的输入/输出(I/O)请求。
由存储控制器实现的高速缓存技术通过减少从较低速存储器或存储设备读取数据或向其写入数据所需的有效时间来辅助隐藏输入/输出(I/O)等待时间。因此,高速缓存用于对从外部存储装置送入(stage)的数据进行快速访问,以便服务读取数据访问请求,并且提供对已修改的数据的缓冲。写入请求被写入到高速缓存,然后被写入(即,送出(destage))到外部存储设备。为了保证写入的持续低等待时间,NVS中的数据可能必须被排出,即被送出,以便确保总是存在一些空闲空间用于将要到来的写入。
任务控制块(Task Control Block,TCB)是包含管理特定进程所需的信息的操作系统内核中的任务控制数据结构。存储控制器可以通过使用TCB管理数据的移动,来将信息移动到存储设备和从存储设备移动信息,以及移动到高速缓存(包括NVS)和从高速缓存(包括NVS)移动信息。当写入请求从主机计算机发出到存储控制器时,可从操作系统代码分配TCB。在将要写入的数据从主机计算机通过高速缓存传递到存储设备时,TCB用于维持关于从开始到结束的写入过程的信息。如果高速缓存是满的,则TCB可以排队直到高速缓存中的现有数据可以被送出(即,写入到存储设备),以便释放空间。送出操作可以涉及将信息从高速缓存移动到诸如独立磁盘冗余阵列(RAID)存储装置之类的存储装置,并且可以分配送出TCB来执行送出操作。
TCB可以基于由特定TCB控制的任务来分类。例如,“后台”TCB是控制与主机输入/输出操作不直接相关的操作的TCB。由此,后台TCB的一个示例是将送出操作控制为不需要作为特定主机I/O操作的一部分的后台操作的TCB。后台TCB的另一示例是控制从存储装置到高速缓存的轨道的预送入(prestage)的TCB,其中预送入操作作为后台操作而被执行,不需要作为特定主机I/O操作的一部分。
另一种类型的TCB是控制通常与主机输入/输出操作直接相关的操作的“前台”TCB。例如,可以分配前台TCB以代表主机I/O操作执行送出或送入操作。因此,主机读取上的高速缓存未命中通常导致由前台TCB控制的送入操作,以将一个或多个轨道从存储装置送入到高速缓存以满足主机读取操作。
存储控制器频繁地采用安全数据提交(commit)过程,该过程针对有待送出到辅助存储装置的已修改的(通常被称为“脏”)数据扫描高速缓存目录。高速缓存目录的这种扫描可定期启动,例如按小时启动。
在数据复制系统中,数据通常维护在卷对中,包括主存储设备中的主卷和辅助存储设备中的对应辅助卷,所述辅助存储设备包括在主卷中维护的数据的相同副本。主卷和辅助卷由拷贝关系识别,其中主卷(也称为源卷)的数据被拷贝到辅助卷(也称为目标卷)。主和辅助存储控制器可用于控制对主和辅助存储设备的访问。
例如,可以使用诸如
Figure BDA0002533082750000031
FlashCopy功能的时间点(point-in-time)快照拷贝功能生成一组轨道的近瞬时副本,该功能建立存储控制器中的一组源轨道和一组目标轨道之间的时间点拷贝关系。拷贝关系的轨道组可以包括例如完整卷或一卷的逻辑单元(LUN)或部分。由此,例如,如果该组轨道是完整卷,则时间点快照拷贝功能创建源卷内容到目标卷中的特定时间时的“快照”,该目标卷可以被称为时间点快照拷贝卷或简称为时间点拷贝卷。时间点快照拷贝功能的一个版本在后台拷贝操作中将时间点拷贝源卷的内容传送到时间点拷贝目标卷。
对针对尚未接收到源卷对应轨道的内容的时间点拷贝目标卷的轨道的任何读取操作进行重定向,以从源卷获得该轨道的内容。因而,在任何轨道实际上被传输到目标卷之前,时间点拷贝目标卷的内容立即可用,尽管是间接可用。相反,如果主机在将源卷的轨道的内容传送到时间点拷贝目标卷之前将更新定向到源卷的轨道,则在允许更新以覆写源卷的轨道的内容之前,将源卷的轨道的内容传送到时间点拷贝目标卷。
时间点快照拷贝功能的另一版本省略后台拷贝操作。由此,源卷的内容不在后台复制操作中被传送到时间点拷贝卷。因而,定向到时间点拷贝目标卷的轨道的任何读取操作通常被重定向以从源卷获得该轨道的内容。然而,如果主机将更新定向到源卷的轨道,则在允许更新以覆写源卷的该轨道的原始、未修改的内容之前,源卷的该轨道的未修改的内容被传送到时间点拷贝目标卷。在写入时进行这种拷贝操作被称为“写入时拷贝”。
数据还可以在建立时间点拷贝关系之后针对写入高速缓存的数据存在到源的送出时从源拷贝到目标,并且通常被称为“送出时拷贝”。已知的送出时拷贝操作会消耗大量系统资源。更具体地,送出时拷贝操作首先从时间点拷贝关系的源向高速缓存送入旧的、未修改的数据,然后从高速缓存将该旧的、未修改的数据送出到时间点拷贝关系的目标。然后,允许从高速缓存到源的新的、修改的数据的送出覆写源上的旧的、未修改的数据。应了解,此类已知的针对时间点拷贝关系的送出时拷贝操作可以显著地减慢对源的送出操作。
对于定向到时间点拷贝关系的源的顺序写入,“送出时拷贝”操作通常从源读取轨道的完整步幅(stride)中的旧的未修改数据,将数据步幅送入到高速缓存,然后将那些轨道的数据送出到时间点拷贝关系的目标。步幅是具有明确定义的开始和结束边界的一组轨道,通常是顺序轨道。奇偶校验数据例如RAID(独立磁盘冗余阵列)奇偶校验数据基于要存储在那些边界内的轨道上的数据来计算,并且用于轨道步幅的奇偶校验数据也存储在步幅边界内。所以,与一个或多个步幅的边界对准的读取和写入操作有利于效率,因为可逐步幅地针对步幅奇偶校验数据完成读取(解码)和写入(编码)操作。
因此,如果源和目标步幅对准,则促进送出操作上的拷贝。然而,如果源和目标步幅未对准,则尽管来自源的读取操作可与源的步幅边界步幅对准,但目标上的送出通常将不与目标的步幅边界步幅对准。在不同系统中,难以创建源步幅和目标步幅对准的配置。因此,当在由存储控制器控制的存储中存在时间点拷贝关系时,顺序I/O性能可能受到不利影响。
发明内容
采用根据本说明的拷贝源至目标管理的计算环境的一个一般方面涉及检测顺序写入操作以修改时间点拷贝源中的数据集的顺序写入检测逻辑,以及响应于该检测发起步幅对准的拷贝源至目标操作的拷贝源至目标逻辑。在一个实施例中,步幅对准的拷贝源至目标操作包括将步幅对准的读取操作定向到时间点拷贝源的时间点拷贝目标,以迫使到时间点拷贝源的重定向的操作,以获得包括数据集的读取数据,并且将步幅对准的数据写入到包括读取的数据集的时间点拷贝目标。
在另一方面,任务控制块生成逻辑生成用于控制拷贝源至目标操作的任务控制块数据结构,任务控制块具有包括起始轨道值和轨道数目值的至少两个输入值。由任务控制块数据结构控制的步幅对准的读取操作针对轨道的一个或多个步幅,其包括由起始轨道值识别的轨道,其后跟随由轨道数量值识别的多个轨道。
在另一方面,其中时间点拷贝源与多个时间点拷贝目标处于一对多拷贝关系,拷贝源至目标逻辑发起拷贝源至目标操作的序列,包括对拷贝关系的每个时间点拷贝目标的序列的拷贝源至目标操作。任务控制块生成逻辑生成任务控制块数据结构,每个任务控制块数据结构每次一个地控制拷贝源至目标操作的序列中的拷贝源至目标操作。
又一方面涉及顺序写入检测逻辑,其通过检查写入操作的每第N个轨道且确定写入操作是否为顺序写入操作来检测顺序写入操作。在另一实施例中,顺序写入检测逻辑通过确定发起写入操作的主机是否已将写入操作指定为顺序写入操作来检测顺序写入操作。在写入操作包括将数据轨道写入高速缓存中的又一实施例中,顺序写入检测逻辑通过检查高速缓存中的先前写入的轨道来检测顺序写入操作以确定写入操作的轨道是否按顺序。在又一实施例中,顺序写入检测逻辑通过确定对高速缓存的写入操作何时完成并且检查高速缓存中的写入轨道来检测顺序写入操作,以确定写入到高速缓存的轨道是否按顺序。
在本说明的另一方面,安全数据提交逻辑发起对高速缓存的安全数据提交扫描,以识别要送出到存储装置的已修改数据的轨道,并绕过顺序写入操作的高速缓存中的已修改数据的轨道的送出。任务控制块生成逻辑生成用于控制拷贝源至目标操作的任务控制块数据结构,使得拷贝源至目标操作的步幅对准的读取操作包括与高速缓存中的被绕过的轨道对应的时间点拷贝目标的轨道。
采用根据本说明的拷贝源至目标管理的计算环境的另一个一般方面涉及:抢先条件监视逻辑,该抢先条件监视逻辑确定是否存在针对高速缓存中的已修改的数据的抢先拷贝源至目标操作的条件;以及拷贝源至目标逻辑,该拷贝源至目标逻辑响应于确定存在抢先拷贝源至目标操作的条件而抢先地和选择性地发起拷贝源至目标操作。在一个实施例中,拷贝源至目标操作包括读取时间点拷贝源以获得包括未修改的数据集的读取数据,并且将未修改的数据集写入到时间点拷贝目标。安全数据提交逻辑发起对高速缓存的扫描,以识别高速缓存中要送出到存储装置的已修改数据的轨道。
在一个实施例中,抢先条件监视逻辑确定抢先拷贝源至目标操作的条件是否在发起高速缓存的安全数据提交扫描以识别高速缓存中要送出到存储装置的已修改数据的轨道之前的一段时间间隔存在。在另一个实施例中,抢先条件监视逻辑根据从时间点拷贝源到时间点拷贝目标的时间点拷贝关系是持久的还是拷贝关系的时间点已经被递增,来确定是否存在用于抢先拷贝源至目标操作的条件。在一个实施例中,如果从所述时间点拷贝源到所述时间点拷贝目标的所述时间点拷贝关系是持久的,则抢先条件监视逻辑确定存在用于抢先拷贝源至目标操作的条件。
在又一实施例中,其中在高速缓存中写入已修改的数据集包括在轨道中写入已修改的数据,抢先条件监视逻辑根据对应于时间点拷贝源的高速缓存中的已修改的数据的轨道的数目是否超过阈值来确定是否存在用于抢先拷贝源至目标操作的条件。在一个实施例中,如果对应于时间点拷贝源的高速缓存中的已修改的数据的轨道的数量超过阈值,则抢先条件监视逻辑确定存在抢先拷贝源至目标操作的条件。
又一个实施例针对抢先扫描逻辑,该抢先扫描逻辑响应于确定存在用于抢先拷贝源至目标操作的条件,发起对高速缓存中的已修改的数据的轨道的扫描以识别已修改的数据的轨道,其中该已修改的数据的轨道a)对应于时间点拷贝源,并且b)尚未被拷贝到时间点源的对应时间点拷贝目标。抢先扫描逻辑选择性地且抢先式地使得拷贝源至目标逻辑发起拷贝源至目标操作以用于高速缓存中满足这些条件的所识别的轨道。
又一实施例涉及顺序写入检测逻辑,该顺序写入检测逻辑检测高速缓存中所识别的轨道是否是顺序的。拷贝源至目标逻辑,响应于检测到所识别的顺序轨道,将步幅对准的读取操作抢先地和选择性地定向到时间点拷贝源的时间点拷贝目标。到时间点拷贝目标的步幅对准的读取操作迫使到时间点拷贝源的重定向读取操作,以获得对应于高速缓存中的已修改数据的已识别顺序轨道的未修改数据。拷贝源至目标逻辑将步幅对准的顺序数据的轨道写入到时间点拷贝目标,包括所获得的在高速缓存中对应于所识别的已修改数据的顺序轨道的未修改数据。又一实施例涉及绕过对与步幅对准的读取操作对应的剩余轨道的扫描的抢先扫描逻辑。
根据本说明的拷贝源至目标管理的另一个方面涉及在系统中采用,该系统具有被配置成用于发起输入/输出操作的主机、具有处理器和高速缓存的存储控制器、以及由所述存储控制器控制的存储装置,所述存储装置包括时间点拷贝源和时间点拷贝目标。
所描述技术的实施例可包含硬件、方法或过程,或计算机可访问介质上的计算机软件。取决于特定应用,可实现其他特征和方面。
附图说明
图1示出了根据本说明的一个方面的在数据存储系统中采用拷贝源至目标管理的计算环境的实施例。
图2示出在图1的计算环境中的采用拷贝源至目标管理的数据存储系统的示例。
图3A和3B描绘了根据本说明的一个方面的可以在数据存储系统中采用拷贝源至目标管理的计算环境中利用的拷贝源至目标操作的两个示例。
图4示出了图1的计算环境中的主机的示例。
图5展示了根据本说明的一个方面的顺序写入拷贝源至目标操作的示例。
图6示出了图2的存储系统中的目标送出逻辑的示例。
图7示出根据本说明的一个实施例的用于控制拷贝源至目标操作的任务控制块数据结构的示例。
图8示出了根据本说明的一个方面的安全数据提交扫描操作的示例。
图9示出了根据本说明的一个方面的用于拷贝源至目标操作的抢先(preemptive)条件的确定的示例。
图10描绘了根据本说明的一个方面的抢先拷贝源到目标扫描的示例。
图11示出了根据本说明的在数据存储系统中采用拷贝源至目标管理的计算机实施例。
具体实施方式
在缺少根据本说明的拷贝源至目标(copy source to target,CST)管理的情况下,已知的“送出时拷贝”操作可能引起系统性能的显著降级。例如,如上面所解释的,已知的送出时拷贝操作可能消耗大量系统资源。更具体地,送出时拷贝操作首先从时间点拷贝关系的源向高速缓存送入旧的、未修改的数据,然后从高速缓存将该旧的、未修改的数据送出到时间点拷贝关系的目标。然后,允许源上的新的、已修改的数据的送出覆写源上的旧的、未修改的数据。应了解,此类送出时拷贝操作可显著减慢对源的送出操作。所以,当高速缓存包含属于时间点拷贝关系的轨道的已修改的数据时,系统性能可能降级。
如下面更详细解释的,在根据本说明的拷贝源至目标(CST)管理的一个方面中,可以在源送出操作之前抢先地进行拷贝源至目标操作。因此,在发起源送出操作时,已经完成了旧的、未修改的数据从源到目标的拷贝。结果,源送出操作不需要通过等待完成旧的、未修改的数据从源到目标的拷贝而被延迟。
在根据本说明的拷贝源至目标(CST)管理的另一个方面中,可以在源送出操作之前选择性地进行抢先拷贝源至目标操作。例如,当确定存在用于抢先拷贝源至目标操作的条件时,这样的抢先拷贝源至目标操作可以被选择性地进行,使得抢先拷贝源至目标操作可以在数据被源送出操作覆写之前保留所需的数据。相反地,当确定用于抢先拷贝源至目标操作的条件不存在时,这样的抢先拷贝源至目标操作可以被绕过,使得在数据被源送出操作覆写之前不需要抢先拷贝源至目标操作来保存数据。结果,当需要时抢先拷贝源至目标操作可以改善系统性能,但是当不需要这样的抢先拷贝源至目标操作时不降级系统性能。
如前所述,对于顺序写入到拷贝源的送出,已知的“送出时拷贝”操作从拷贝源读取步幅,然后将那些轨道送出到拷贝目标。如果源和目标步幅对准,则促进效率。然而,如果源和目标步幅不对准,则在已知的送出时拷贝操作中目标上的送出经常不是完整步幅,这可能显著不利地影响性能。例如,为了生成写入目标的新步幅,可能需要来自源或目标的附加数据来完成目标的步幅。
在本说明的另一方面,逻辑配置成检测顺序写入,其包括定向到时间点拷贝源的大块写入,并且作为响应,开始相关联的时间点拷贝目标上的送出任务。如下面更详细解释的,在一个实施例中,送出任务包括步幅对准的拷贝源至目标操作,该操作在后续拷贝源送出操作中覆写时间点拷贝源中的未修改数据之前将未修改数据从时间点拷贝源拷贝到时间点拷贝目标。结果,当顺序写入操作的顺序写数据被送出到时间点拷贝源时,这样的源送出不需要等待拷贝源至目标操作,因为它们已经被执行。另外,拷贝源至目标操作相对于时间点拷贝目标的步幅边界步幅对准。结果,在源送出操作中对时间点拷贝源的顺序写入操作和在目标送出操作中对时间点拷贝目标的顺序写入操作都相对于源和目标卷的相应步幅边界步幅对准。因此,在存储控制器中存在时间点拷贝时顺序I/O性能的降级可以被减少或消除。根据具体应用,可以实现其他方面和优点。
一个或多个计算机的系统可以被配置用于根据本说明的在数据存储系统中的拷贝源至目标管理,借助于将软件、固件、硬件或其组合安装在系统上,在操作中使系统执行根据本说明的拷贝源至目标管理。例如,一个或多个计算机程序可被配置来通过包括在由数据处理装置执行时使该装置执行动作的指令在数据存储系统中执行拷贝源至目标管理。
在此描述的这些操作是由逻辑执行的,该逻辑被配置成用于自动地或基本上自动地执行这些操作,除了被指示为手动执行的情况,没有或几乎没有系统操作者干预。因此,如在此所使用的,术语“自动”包括全自动,即,在没有人类干预、如对图形用户界面的用户输入的情况下由一个或多个硬件或软件控制的机器执行的操作。如本文中所使用的,术语“自动”进一步包括主要是自动的,即,大部分操作(例如,大于50%)由没有人为干预、例如到图形用户选择界面的用户输入的一个或多个硬件或软件控制的机器执行,并且其余操作(例如,小于50%)手动执行,即,手动操作由具有人为干预、例如到图形用户选择界面的用户输入的一个或多个硬件或软件控制的机器执行以指导操作的执行。
在本说明中所描述的许多功能元件已经被标记为“逻辑”,以便更具体地强调其实现独立性。例如,逻辑元件可被实现为包括定制VLSI电路或门阵列、现成(off-the-shelf)的半导体(诸如逻辑芯片、晶体管或其他分立组件)的硬件电路。逻辑元件还可实施于可编程硬件装置中,例如现场可编程门阵列、可编程阵列逻辑、可编程逻辑装置等。
逻辑元件还可在软件中实施以供不同类型的处理器执行。包括可执行代码的逻辑元件可例如包括计算机指令的一个或多个物理或逻辑块,其可例如被组织为对象、过程或函数。然而,所识别的逻辑元件的可执行文件不需要在物理上位于一起,而是可包括存储在不同位置中的不同指令,这些指令在逻辑上结合在一起时组成逻辑元件并实现逻辑元件的所述目的。
实际上,逻辑元件的可执行代码可以是单个指令或许多指令,并且甚至可以分布在若干不同代码段上、不同程序之间、不同处理器之间以及跨若干存储器设备。类似地,操作数据可以在本文中在逻辑元件内被识别和示出,并且可以以任何合适的形式体现和被组织在任何合适类型的数据结构内。操作数据可以被集合为单个数据集,或者可以分布在不同位置上,包括在不同的存储设备上。
所描述的技术的实现可包括硬件、方法或过程、或计算机可访问介质上的计算机软件。图1、2示出根据本说明的在数据存储系统中采用拷贝源至目标管理的计算环境的实施例。多个主机1a、1b……1n可以通过网络6将输入/输出(I/O)请求提交至一个或多个数据存储设备或系统2a、2b、2(图2)以读取或写入数据。主机1a、1b……1n例如可以是单独的物理设备或者可以是使用服务器的分区的指派资源实现的虚拟设备。以类似的方式,数据存储系统2(图2)、2a、2b例如可以是单独的物理设备或可以是使用一个或多个服务器的分区的指派资源实现的虚拟设备。
在示出的实施例中,数据存储系统2a是主数据存储系统并且数据存储系统2b是辅助数据存储系统,其中,由主机存储在主数据存储系统2a上的数据被镜像到辅助数据存储系统2b。尽管图1中所描绘的实施例描绘了单个辅助数据存储系统2b,但是应当理解,主数据存储系统2a可以具有多于一个的辅助数据存储系统。
每个数据存储系统2(图2)、2a、2b分别包括存储控制器或控制单元4(图2)、4a、4b,该存储控制器或控制单元分别访问存储在存储装置10、10a、10b的多个数据存储单元中的数据。存储装置10、10a、10b的每个数据存储单元可以包括能够存储数据的任何合适的设备,诸如本领域已知的物理硬盘、固态驱动器等。因此,在一个实施例中,存储装置10、10a、10b可以由一个或多个顺序存取存储设备(诸如硬盘驱动器和磁带)组成,或者可以包括例如非顺序存取存储设备(诸如固态驱动器(SSD))。存储装置10(图2)、10a、10b的每个设备可以包括用于数据存储的单个顺序或非顺序存取设备,或可以包括用于数据存储的设备阵列,例如磁盘簇(Just a Bunch of Disks,JBOD)、直接存取存储设备(DASD)、独立磁盘冗余阵列(RAID)阵列、虚拟化设备、磁带存储装置、闪存等。
在某些实施例中,例如,存储单元可以是被配置为独立磁盘冗余阵列(RAID)存储列组(rank)11a(图2),…11n的磁盘,其中一个或多个RAID存储列组是RAID配置的硬盘阵列,以便在硬盘丢失的情况下有助于数据恢复。存储装置10、10a、10b的存储单元还可以是其他类型的存储装置,诸如RAID配置的固态驱动器,以便在固态驱动器丢失的情况下有助于数据恢复。存储装置10(图2)、10a、10b的存储单元可以被配置成用于将数据存储在数据存储装置的子单元(如卷、盘区、步幅、轨道等)中。
每个存储控制器4(图2)、4a、4b包括CPU复合体(complex)12(图2),其包括由一个或多个处理器或中央处理单元提供的处理器资源,每个处理器或中央处理单元具有单个或多个处理器核。在此实施例中,处理器核含有执行指令中涉及的CPU的组件,例如算术逻辑单元(ALU)、浮点单元(FPU)和/或不同级别的高速缓存(例如L1和L2高速缓存)。应了解,处理器核可具有除本文提及的逻辑元件之外或替代本文提及的逻辑元件的其他逻辑元件。
每个存储控制器4(图2)、4a、4b进一步具有包括存储管理器24的存储器20,所述存储管理器24用于管理存储操作,所述存储操作包括响应于来自主机的I/O数据请求或来自另一数据存储系统的镜像数据向相关联的存储装置10(图2)、10a、10b写入数据或从其读取数据。存储器20的高速缓存28可以包括一个或多个不同类型的存储器,例如RAM、写高速缓存、读高速缓存、NVS等。包括高速缓存的不同类型的存储器可以彼此互操作。每个存储控制器4(图2)、4a、4b的CPU复合体12可以具有多个处理器集群,每个集群具有其自己的分配的存储器20、存储管理器24、高速缓存28等。根据特定的应用,分配给每个集群的处理和存储器资源可以是物理的、虚拟的、共享的、可转移的或专用的。
来自主机1a...1n的写入最初可以被写入主存储控制器4a的高速缓存28,并且随后被送出到主存储系统2a的存储装置10a。如果相应的信息在主存储控制器4a的高速缓存28中可用,则可以从主存储控制器4a的高速缓存28满足来自主机1a...1n的读取请求,否则该信息从存储装置10a被送出到高速缓存28,然后被提供给请求主机1a...1n。
来自最初写入到高速缓存28和主存储控制器4a的存储装置10a的主机1a...1n的写入可由主存储器控制器4a的存储管理器24镜像到辅助存储控制器4b。经镜像的数据最初可被写入到辅助存储控制器4b的高速缓存28,并且随后被送出到由辅助存储系统2b的辅助存储控制器4b控制的存储装置10b。
存储控制器4(图2)、4a、4b的存储器20包括高速缓存目录30,作为将存储在存储装置10(图2)、10a、10b中的轨道的数据传送到高速缓存28的预送入或送入操作的结果,或者作为将数据写入到高速缓存28以用于随后送出到存储装置10(图2)、10a、10b的一个或多个对应轨道的主机写入操作的结果,高速缓存目录30识别具有存储在高速缓存28中的数据的轨道。在所示实施例中,高速缓存目录30以已知数据结构的形式实现,该已知数据结构是高速缓存28中的所有轨道的散列表。每个轨道被散列到高速缓存目录30的槽(slot)中,该槽包括轨道识别(ID)和关于轨道的数据是否是“脏的”(即,尚未被安全地送出到存储装置10(图2)、10a、10b的相应轨道)的指示。被散列到槽中的多个轨道被链接在一起。应当认识到,可以使用其他类型的数据结构来实现合适的缓存目录。
包括存储管理器24的I/O操作的操作(包括例如高速缓存写入、送入、预送入和送出操作)利用存储器20的任务控制块(Task Control Block,TCB)32。每个TCB是包含管理特定进程所需的信息的操作系统内核中的数据结构。存储控制器可以通过使用TCB管理数据的移动来向和从存储装置、以及向和从高速缓存移动信息。当写入请求从主机发出到存储控制器或数据从主数据存储系统镜像到辅助数据存储系统时,可从操作系统代码分配TCB。TCB用于在将要写入的数据从源通过高速缓存传递到存储装置时维持关于从开始到结束的写入过程的信息。如果高速缓存是满的,则TCB可被排队直到高速缓存中的现有数据可被送出(即,被写到存储装置),以便释放空间。
在本说明的一个方面,存储管理器24包括目标送出逻辑33,其被配置为检测包括对时间点拷贝源卷的大块写入的顺序写入,并且作为响应,开始在相关联的时间点拷贝目标上的送出任务。如下面更详细解释的,在一个实施例中,送出任务包括步幅对准的拷贝源至目标操作,该操作在后续拷贝源送出操作中覆写时间点拷贝源中的未修改数据之前将未修改数据从时间点拷贝源拷贝到时间点拷贝目标。
在本说明的另一方面,目标送出逻辑33还被配置成根据指示这样的拷贝源至目标操作是适当的还是已经被其他事件排除的条件来选择性地且抢先地执行拷贝源至目标操作。例如,其中拷贝源至目标操作保持适合于在由于定向到时间点拷贝源的写操作而覆写未修改的数据之前将未修改的数据从时间点拷贝源拷贝到时间点拷贝目标的这些条件包括其中安全数据提交扫描已经被发起或即将发生的情况。抢先拷贝源至目标操作的条件的其他示例包括在高速缓存中存在属于持久时间点拷贝关系的轨道,这与已经递增的拷贝关系形成对比,以使得在送出操作中覆写到关系的时间点拷贝源之前不再需要保留先前的未拷贝数据。
可以存在抢先拷贝源至目标操作的条件的另一示例包括其中属于时间点拷贝关系的高速缓存中的已修改的数据的轨道的数量超过已经设置的阈值的实例。当这些或其他条件中的一个或多个条件被满足时,抢先拷贝源至目标操作对于在数据在送出操作中被覆写到拷贝源之前通过将未修改的数据从时间点拷贝源拷贝到时间点拷贝目标来抢先地保留未修改的数据来改进系统性能可能是特别有用的。所以,后续源送出操作不需要等待拷贝源至目标操作以在未修改数据被源送出覆写之前保留未修改数据,因为未修改数据的保留已经抢先完成。相反,如果确定不存在抢先拷贝源至目标操作的条件,则可以绕过抢先拷贝源至目标操作。
存储管理器24进一步包括数据复制逻辑35(图2),其被配置为根据时间点拷贝源和时间点拷贝目标之间的时间点拷贝关系37生成时间点拷贝。图3A示出了在诸如存储装置10(图2)的源50的时间点拷贝源的一组源轨道与诸如目标54的时间点拷贝目标的对应组目标轨道之间建立的时间点拷贝关系的示例,该目标54也可以在由诸如控制器4(图2)的存储控制器控制的存储装置10中。时间点拷贝关系的跟踪可包括例如完整卷或逻辑单元(LUN)、卷的部分或存储装置的其他单元或子单元。
在典型的时间点拷贝关系中,在建立关系时,通常不将数据从源50拷贝到目标54。相反,可以使用后台拷贝进程或者结合在建立时间点拷贝关系之后写入到高速缓存的数据的源50上的送出将数据从源50拷贝到目标54。结合将对源执行的送出操作将数据从源拷贝到时间点拷贝关系的目标的一种已知拷贝操作通常被称为“送出时拷贝”。根据本说明,在没有拷贝源至目标管理的情况下,已知的“送出时拷贝”操作可能在不同条件下引发系统性能的显著降级。如下面更详细解释的,在根据本说明的拷贝源至目标管理的一个方面中,目标送出逻辑33(图2)在源送出操作之前选择性地且抢先地采取拷贝源至目标操作。因此,在发起源送出操作时,已经完成从源向目标拷贝旧的未修改的数据。结果,源送出操作不需要通过等待完成旧的、未修改的数据从源到目标的拷贝而被延迟。
根据本说明的拷贝源至目标管理的另一个示例针对旨在用于时间点拷贝源的顺序写入。结合顺序写入操作执行的已知的送出时复制操作通常从源读取旧的未修改数据的轨道的步幅,然后将那些轨道送出到目标。如果源步幅和目标步幅对准,则促进了这样的操作中的效率。然而,如果源和目标步幅未对准,则目标上的旧的、未已修改的数据的送出将典型地不在完整步幅中,由此不利地影响系统性能。注意,在许多系统中,可能难以将系统配置成使得源步幅和目标步幅两者对准。因此,当影响时间点拷贝关系时,当修改的数据被写入到高速缓存中的轨道时,系统性能可能降低。
在本说明的一个方面,目标送出逻辑33(图2)检测包括对时间点拷贝源卷的大块写入的顺序写入,并且作为响应,开始在相关联的时间点拷贝目标上的送出任务。在一个实施例中,送出任务包括步幅对准的拷贝源至目标操作,其在随后的拷贝源送出操作中覆写时间点拷贝源中的未修改数据之前,将未修改数据从时间点拷贝源拷贝到时间点拷贝目标。
存储管理器24的数据复制逻辑35(图2)还被配置为同步(或在一些实施例中异步地)生成主数据存储系统2a的主卷1(图1)的副本作为由辅助数据存储系统2b表示的辅助数据存储系统的辅助卷2(图1)。主-辅助卷对(卷1、卷2)处于同步拷贝或镜像关系37,使得对主卷1的更新被同步镜像到每个辅助卷2。在一些实施例中,还可异步地执行此类镜像。
在图1所示的配置中,存储控制器4a和数据存储驱动器10a分别被配置为主数据存储系统2a的主存储控制单元和主存储装置。类似地,存储控制器4b及其数据存储驱动器10b分别被配置为辅助数据存储系统2b的辅助存储控制单元和辅助存储装置。所以,在图1所示的配置中,存储控制器4a将被称为主存储器控制器或控制单元4a,并且数据存储驱动器10a将被称为主存储驱动器10a。类似地,存储控制器或控制单元4b将被称为辅助存储控制器或控制单元4b,并且数据存储驱动器10b将被称为辅助数据存储驱动器10b。在该实施例中,可存在多个辅助数据存储装置,使得拷贝关系可处于一对多关系,这也被称为多目标关系。
在特定拷贝关系中,源单元通常被称为主单元,而目标单元通常被称为辅助单元。在主数据存储驱动器10a和辅助数据存储驱动器10b的存储单元之间定义复制关系。尽管将数据存储驱动器10a称为“主”并且将数据存储装置10b称为“辅助”,但是数据存储装置10a、10b的特定存储单元既可以起主作用(或源作用)也可以起辅助作用(或目标作用),这取决于特定拷贝关系。
在一个实施例中,存储设备10、10a、10b可以由一个或多个顺序存取存储设备(如硬盘驱动器和磁带)组成,或者可以包括例如非顺序存取存储设备(如固态驱动器(SSD))。每个存储设备10、10a、10b可以包括单个顺序或非顺序存取存储设备或者可以包括存储设备阵列,例如磁盘簇(JBOD)、直接存取存储设备(DASD)、独立磁盘冗余阵列(RAID)阵列、虚拟化设备、磁带存储、闪存等。
存储管理器24进一步包括安全数据提交逻辑60,该安全数据提交逻辑针对有待送出至存储装置10(图2)、10a、10b(图1)的脏数据周期性地扫描高速缓存目录30。安全数据提交过程允许操作者确保在安全数据提交扫描开始时间之前写入到高速缓存28的任何数据已经被成功地送出并且安全地存储在存储装置10(图2)、10a、10b(图1)上。
在所示实施例中,包括目标送出逻辑33的存储管理器24被描绘为存储在存储器20中并由CPU复合体12执行的软件。然而,应了解,存储管理器24的逻辑功能可取决于特定应用而实施为硬件、软件、固件或其中的一者或一者以上的组合。
在一个实施例中,存储管理器24(图2)可以将数据存储在高速缓存28中,并且按轨道在高速缓存28与存储装置10(图2)、10a、10b(图1)之间传送数据。在向高速缓存写入轨道时,TCB分配高速缓存存储装置的一个或多个段以写入轨道。类似地,在一个实施例中,存储管理器24(图2)可以按轨道将数据从主存储驱动器10a(图2)传送到辅助存储驱动器10b。如本文中所使用,术语轨道可指代磁盘存储单元、固态存储单元或其他类型的存储单元的数据或存储的子单元。除了轨道之外,存储单元可以具有存储或数据的其他子单元,如位、字节、字、段、页、块(如逻辑块地址(LBA))、柱面、段、盘区、卷、步幅、逻辑设备等,或其任何部分,或适于传送或储存的其他子单元。相应地,根据本说明的在高速缓存写入和安全数据提交过程中处理的数据子单元的大小可以取决于具体应用而变化。因此,如在此使用的,术语“轨道”是指数据存储或传送的任何适合的子单元。
系统组件1a(图1)、1b…….1n、4(图2)、6连接至网络6,该网络实现这些组件之间的通信。由此,网络包括可包括存储区域网(SAN)、局域网(LAN)、内联网、互联网、广域网(WAN)、对等网络、无线网络、仲裁环网等的结构。从存储子系统到主机1a、1b、…1n的通信路径可基于特定的主机连接协议,例如光纤连接(FICON)。该结构的其他通信路径可以包括例如光纤通道仲裁环路配置、串行环路架构或总线接口,如外围组件互连(PCI)接口,如PCI快速接口。结构的通信路径还可以是例如以太网网络的一部分,从而使得每个节点具有单独的网络(互联网协议)地址。根据特定的应用,可以使用其他类型的通信路径,例如调制解调器电话路径、无线网络等。
与通信路径相关联的通信软件包括指令和其他软件,这些指令和其他软件控制通信协议以及根据通信协议(如果有的话)对通信硬件的操作。应了解,取决于特定应用,可利用其他通信路径协议。
由图4的主机1a表示的典型主机包括CPU复合体202和存储器204,存储器204具有操作系统206和应用程序208,操作系统206和应用程序208协作以经由存储控制器4、4a、4b从存储装置10(图2)、10a、10b读取数据和向存储装置10(图2)、10a、10b写入数据更新。合适的操作系统的示例是z/OS操作系统。应了解,取决于特定应用,可采用其他类型的操作系统。
图5描绘了与用于将顺序数据写入到时间点拷贝源的顺序写操作相关的目标送出逻辑33的拷贝源至目标逻辑214(图6)的操作的一个示例。在该实施例中,拷贝源至目标逻辑214被配置成执行拷贝源至目标操作,其中在源50的原始未修改数据被随后的源送出操作覆写之前从时间点拷贝源50(图3B)读取原始未修改顺序数据,所述随后的源送出操作将写操作的顺序写数据从高速缓存28(图2)送出到时间点拷贝源50(图3B)。从时间点拷贝源50读取的原始的、未修改的数据与目标54的步幅对准地送出到时间点拷贝目标54。随后的源送出操作再次与源50的步幅对准,将写入操作的顺序写入数据从高速缓存28(图2)送出到时间点拷贝源50。在本实施例中,拷贝源至目标操作由任务控制块数据结构控制,其示例是图7的拷贝源至目标TCB218。
如下面更详细解释的,在该实施例中,存在诸如图3B所示的步幅对准的拷贝源至目标操作可具有适用性的不同条件。这些条件包括检测写入操作以及确定写入操作是否是最终写入到时间点拷贝源的顺序轨道的顺序写入操作。
在所示实施例中,拷贝源至目标逻辑214被配置成检测(框224,图5)对高速缓存28(图2)的写入操作。对于检测到的写入操作,拷贝源至目标逻辑214进一步被配置成确定(框230,图5)检测到的写入操作是否定向到时间点拷贝源(如图3B的源50)。对于定向到时间点拷贝源的写入操作,拷贝源至目标逻辑214还包括顺序写入检测逻辑234(图6),其被配置为检测(框240,图5)检测到的写入操作是否是顺序写入操作。
如果确定(图5的框230)检测到的写入操作不是定向到时间点拷贝源或检测到(框240,图5)不是顺序写入操作,那么随后可完成所检测的写入操作(框244,图5),而不执行类似于图3B所描绘的步幅对准的拷贝源至目标操作。例如,写入操作的写入数据可被写到高速缓存并随后被送出到存储装置,而不执行与图3B中描绘的操作类似的步幅对准的拷贝源至目标操作。然而,如下文结合图9和10以及本说明的另一个方面所述,如果满足不同条件,则仍然可以抢先地执行非顺序拷贝源至目标操作。
应了解,存在用于确定写入操作是否为写入操作序列中的顺序写入操作的多种已知技术,其中所述写入操作序列将数据写入到顺序轨道。另外,可根据本说明适当地修改用于确定写入操作是否为顺序写入操作的技术。
在一个实施例中,顺序写入检测逻辑234(图6)被配置成用于周期性地检查写入操作是否是顺序写入操作。例如,顺序写入检测逻辑234(图6)可以被配置成检查被写入的每第N个磁道并且确定写入操作是否是顺序写入操作。第N个轨道可以被选择为例如与写入操作最终定向到的时间点拷贝源的步幅的最后轨道一致。
作为另一个示例,顺序写入检测逻辑234(图6)可以被配置成确定发起写入操作的主机(诸如例如主机1a(图4))是否已经将写入操作指定为顺序写入操作。作为另一个示例,顺序写入检测逻辑234(图6)可以被配置成检查高速缓存中的先前写入的轨道以确定写入操作的轨道是否是顺序的。以此方式,顺序写入检测逻辑234可检测将大块的已修改数据写入高速缓存中的顺序写入操作。在又一示例中,顺序写入检测逻辑234(图6)可以被配置成确定对高速缓存的写入何时完成以用于写入操作并且检查高速缓存中的写入轨道以确定写入到高速缓存的轨道是否按顺序。
如果检测到的写入操作被确定(框230,图5)定向到时间点拷贝源并且被检测到(框240,图5)为顺序写入操作,则在完成(框244,图5)检测到的写入操作之前可以执行类似于图3B所描绘的跨步对准的拷贝源至目标操作。在所示实施例中,步幅对准的拷贝源至目标操作可由例如诸如图7的TCB 218的任务控制块数据结构控制。因此,拷贝源至目标逻辑214的任务控制块生成逻辑250(图6)配置成生成用于控制图3B的步幅对准的拷贝源至目标操作的任务控制块数据结构。在所示实施例中,任务控制块218具有多个字段254、258,字段254、258被配置为存储包括起始轨道值S(字段254)和多个轨道值N(字段258)的至少两个输入值,以识别步幅对准的拷贝源至目标操作的轨道序列。
将拷贝源至目标逻辑214(图6)配置成使用任务控制块218(图7)发起步幅对准的拷贝源至目标操作(图3B),其中步幅对准的拷贝源至目标操作包括将步幅对准的读取操作264(图3B)定向到(框260,图5)时间点拷贝源50(图3B)的时间点拷贝目标54(图3B)。因此,读取操作264与时间点拷贝目标54的步幅的步幅边界对准。然而,读取操作的数据尚未被拷贝到时间点拷贝目标54。因此,到目标54的步幅对准的读取操作264迫使到时间点拷贝源50的重定向的读取操作268(图3B)以获得未修改的读取数据,所述未修改的读取数据包括由来自时间点拷贝源50(图3B)的原始、未修改的数据的轨道序列的起始轨道值S(字段254,图7)和轨道数量值N(字段258,图7)识别的数据集。包含未修改数据的源50的轨道序列对应于通过顺序写入操作写入到高速缓存的已修改数据的轨道。然而,因为读取操作264与时间点拷贝目标54的步幅步幅对准,由重定向的读取操作268读取的数据不仅包括由TCB218(图7)识别的读取数据,其中TCB218识别要读取的原始、未修改的数据的轨道序列的起始轨道值S(字段254,图7)和轨道数量值N(字段258,图7),由重定向的读取操作268读取的数据还可以包括在由TCB 218识别的轨道之前或之后的步幅的任何附加轨道,以确保当读取的数据随后送出到目标54时,重定向的读取操作268的轨道可以容易地与时间点拷贝目标54的轨道步幅对准。
根据重定向的读取操作268从源50读取的未修改数据由拷贝源至目标逻辑214送入高速缓存28,如由送入操作270(图3B)所表示的。拷贝源至目标逻辑214还被配置为将从源50读取的未修改数据从高速缓存28写入(框274,图5)到目标54,如由送出操作280(图3B)所表示的。从源50读取并且送出到目标54的数据将相对于目标54的步幅被步幅对准,因为重定向的读取操作268是与时间点拷贝目标54的轨道步幅对准的。
在一些实施例中,时间点拷贝源可以与多个时间点拷贝目标处于一对多时间点拷贝关系。因此,在一个实施例中,拷贝源至目标逻辑214(图6)还可以被配置成确定(框284,图5)源是否与多个时间点拷贝目标处于一对多时间点拷贝关系。如果是,则拷贝源至目标逻辑214(图6)可进一步配置成确定(框288,图5)是否已经针对一对多时间点拷贝关系的每个目标完成步幅对准的拷贝源至目标操作。如果不是,则拷贝源至目标逻辑214(图6)进一步配置成针对该关系的每个这样的目标发起并重复步幅对准的拷贝源至目标操作(框260、274)。
以这种方式,执行步幅对准的拷贝源至目标操作的序列,包括针对拷贝关系的每个时间点拷贝目标的该序列的拷贝源至目标操作。因此,任务控制块生成逻辑250(图6)可被配置成生成与TCB 218(图7)类似的任务控制块数据结构序列,该序列的每个任务控制块数据结构一次一个地控制拷贝源至目标操作序列的步幅对准的拷贝源至目标操作。
一旦确定(框284,图5)所检测的写入操作未定向到多个目标拷贝关系中的源,或确定(框288)已将数据拷贝到一对多拷贝关系的所有目标,可在完成步幅对准的拷贝源到目标操作或针对时间点拷贝关系的一个或多个目标的操作之后完成所检测的写入操作(框244,图5)。例如,已写入到高速缓存的写入操作的写入数据可在以与图3B中描绘的方式类似的方式完成步幅对准的拷贝源至目标操作之后被送出到拷贝源。
如下面结合图8更详细解释的,可结合由安全数据提交逻辑60(图2)进行的安全数据提交扫描(其中针对要被送出到存储装置的已修改数据的轨道来扫描高速缓存)来做出是否执行与图3B中描绘的操作类似的步幅对准的拷贝源至目标操作的确定。因此,安全数据提交逻辑60(图2)被配置为发起(框314,图8)高速缓存的安全数据提交扫描,以识别要送出到存储装置的已修改数据的轨道。
根据本说明的一个方面,可结合用于顺序写入操作的所识别轨道的安全数据提交扫描来绕过高速缓存中的已修改数据的轨道的送出,所述已识别轨道是用于如以上结合图3B所描述的步幅对准的拷贝源至目标操作的候选者。由此,取代根据安全数据提交扫描立即送出,可生成任务控制块以控制对于这样的顺序写入操作的步幅对准的拷贝源至目标操作。在完成步幅对准的拷贝源至目标操作之后,用于顺序写操作的高速缓存中的已修改轨道可以类似于上文结合图5的写入完成操作(框244)描述的方式送出到时间点拷贝源,以完成安全数据提交操作。
参考图2和8,安全数据提交逻辑60(图2)被配置为发起(框314,图8)高速缓存的安全数据提交扫描,以识别(框318)要送出到存储装置的已修改数据的轨道。响应于对高速缓存中的已修改数据的轨道的识别(框318,图8),拷贝源至目标逻辑214(图6)被配置为确定(框322,图8)高速缓存中所识别的已修改的轨道是否涉及时间点拷贝关系,从而使得该轨道对应于时间点拷贝源(诸如图3B的源50)的轨道。例如,如果已修改的轨道在被送出到存储装置时被送出到时间点源,则高速缓存中的已修改的轨道被定向到或对应于时间点拷贝源。对于高速缓存中对应于时间点拷贝源的已修改轨道,顺序写入检测逻辑234(图6)被配置为检测(框324,图5)已修改轨道是否结合顺序写入操作被写入,使得已修改轨道是高速缓存中的顺序已修改轨道的序列的一部分。应了解,取决于特定应用,可使用多种技术来作出此确定,如上文结合图5的框240所论述。
如果确定(框322,图8)高速缓存中所识别的已修改轨道不对应于时间点拷贝源,或者如果确定(框334)所识别的轨道不是顺序的已修改轨道的序列的一部分,则可以随后将已修改轨道送出(框326)到存储装置,并且做出关于是否已经扫描了安全数据提交扫描的所有轨道的确定(框330)。如果是,则安全数据提交扫描完成(框332)。相反,如果确定(框330)尚未扫描安全数据提交扫描的所有轨道,则识别高速缓存中的另一已修改轨道(框318,图8)。
如果确定(框322,图8)高速缓存中所识别的已修改轨道确实对应于时间点拷贝源,以及如果确定(框334)所识别的轨道是写入高速缓存的顺序的已修改轨道的序列的一部分,任务控制块生成逻辑250(图6)被配置成用于生成(框338)类似于TCB 218(图7)的任务控制块数据结构,控制针对定向到时间点拷贝源的已修改轨道序列的步幅对准的拷贝源至目标操作。在已经生成用于针对定向到时间点拷贝源的已修改轨道序列的步幅对准的拷贝源至目标操作的任务控制块的情况下,安全数据提交逻辑60可以被配置为跳过(框342)或绕过定向到时间点拷贝源的已修改轨道序列,而不是立即将这些轨道送出到存储装置。对于安全数据提交扫描的被绕过轨道,所生成的步幅对准的TCB 218可被分派来以类似于图3B中所描绘的方式和结合图5的框260、274、284和288所描述的方式执行步幅对准的拷贝源至目标操作。在完成针对被绕过(框342)的顺序轨道的步幅对准的拷贝源至目标操作之后,顺序轨道可以以类似于上文结合图5的框244描述的方式送出到时间点源,以完成顺序写入操作和针对那些写入操作的安全数据提交。
一旦确定(框330)已经扫描了安全数据提交扫描的所有轨道,则安全数据提交扫描完成(框332)。相反,如果不是安全数据提交扫描操作的所有已修改轨道都已被扫描,则识别高速缓存中的另一已修改轨道(框314),直到高速缓存中的所有已修改轨道都已被扫描。取决于特定应用,可以相对于高速缓存中的所有轨道,或者逐个列组地,或者相对于高速缓存的其他细分,进行高速缓存中的安全数据提交扫描。
图9涉及根据本说明的一个方面的用于确定抢先拷贝源至目标操作是否存在条件的操作的示例。如前所述,在本说明的一个方面,目标送出逻辑33(图2)可被配置成根据指示这样的拷贝源至目标操作是否保持适当或已被其他事件排除的条件来选择性地且抢先地执行这样的拷贝源至目标操作。
在一个实施例中,可以在从发起旨在用于时间点源的写入操作时到将写入操作的轨道送出到源而覆写源的对应未修改数据之前的时间的任何点处抢先地执行拷贝源至目标操作。在另一实施例中,可抢先但更选择性地执行拷贝源至目标操作,以便通过在源送出之前执行拷贝源至目标操作,使得源送出不被拷贝源至目标操作延迟,来进一步提高系统性能。相反,通过在指示拷贝源至目标操作可能是不适当的条件下不执行抢先拷贝源至目标操作,可以减少或消除由不需要的抢先操作引起的系统性能的降级。
参考图2、6和9,目标送出逻辑33的抢先条件监视逻辑410(图6)被配置成确定是否存在用于抢先拷贝源至目标操作的条件,包括确定(框414,图9)是否将要发起安全数据提交扫描。由安全数据提交逻辑60(图2)进行的安全数据提交扫描识别高速缓存中的已修改数据的轨道,以便将所识别的已修改轨道送出到存储装置。由于高速缓存中的所有已修改轨道将被送出到存储装置,其将覆写存储装置中的时间点拷贝源中的未修改数据,因此确定(框418)存在抢先拷贝源至目标操作的条件。在一个实施例中,抢先条件监视逻辑410还被配置为,确定抢先拷贝源至目标操作的条件在发起高速缓存的安全数据提交扫描之前一段时间间隔(由值“ΔX”表示)存在,以识别高速缓存中要送出到存储装置的已修改数据的轨道。
响应于确定(框418)抢先拷贝源至目标操作的条件存在,目标送出逻辑33的抢先扫描逻辑420(图6)可以发起对高速缓存中的已修改轨道的扫描以确定抢先拷贝源至目标操作对于高速缓存中的每个已修改轨道是否合适。图10描绘了根据本说明的一个方面的用于高速缓存的抢先拷贝源至目标扫描的示例。在一个实施例中,可以在安全数据提交扫描开始之前的至少某个时间间隔(ΔX)发起对高速缓存中的已修改轨道的抢先拷贝源至目标扫描,以便为抢先拷贝源至目标扫描以及任何作为结果的抢先拷贝源至目标操作提供足够的时间,其中抢先拷贝源至目标操作要在作为后续安全数据提交扫描的一部分将已修改轨道送出到源的开始之前完成。
抢先条件监视逻辑410(图6)还被配置为根据是否在时间点拷贝源和时间点拷贝目标之间存在时间点拷贝关系来确定用于抢先拷贝源至目标操作的条件是否存在(框422,图9),该时间点拷贝目标在高速缓存中具有已修改的数据,并且如果存在,则确定该时间点拷贝关系是否是持久的。如之前所提到的,持久的时间点拷贝关系是其中拷贝关系的时间点尚未改变的拷贝关系。非持久时间点拷贝关系的示例是其中在对高速缓存的写入操作之后拷贝关系的时间点已经递增的拷贝关系。应当理解的是,如果时间点拷贝关系不是持久的,即,关系的时间点已经被递增,则在关系被递增之前针对拷贝关系被写入高速缓存的任何已修改的轨道属于递增的关系并且替代源中的任何相应的未修改的数据。由此,可以通过在抢先拷贝源至目标操作中允许送出到源的对应轨道而不保留轨道的未修改数据来丢弃源中的对应未修改数据。因此,不需要抢先拷贝源至目标操作,并且可以确定对于该递增的拷贝关系不存在抢先拷贝源至目标操作的条件。
相反,如果时间点拷贝关系是持久的,则处于时间点拷贝关系中的高速缓存中的任何已修改的轨道不属于递增的拷贝关系,并且不替换源中的相应的未修改数据。由此,在对源的未修改数据被送出操作覆写之前,源中的对应的未修改数据将由抢先拷贝源到存储操作保存。因此,抢先拷贝源至目标操作是适当的并且可以确定(框418,图9)存在抢先拷贝源至目标操作的条件。
如上所述,在一个实施例中,可以在从发起旨在用于时间点源的写入操作的时间到写入操作的轨道从高速缓存送出到源、覆写源的对应未修改数据之前的时间的间隔中的任何点处抢先地执行拷贝源至目标操作。因此,如果因为确定(框422,图9)高速缓存中的已修改轨道属于持久时间点拷贝关系而确定(框418,图9)存在抢先拷贝源至目标操作的条件,则目标送出逻辑33的抢先扫描逻辑420(图6)可以随后在任何时间发起对高速缓存中的已修改轨道的扫描,以确定抢先拷贝源至目标操作是否适合于高速缓存中的每个已修改轨道。然而,在一个实施例中,这样的扫描可以在随后的安全数据提交扫描开始之前的至少某个时间间隔(ΔX)被发起,以提供足够的时间用于抢先拷贝源至目标扫描和然后作为结果的抢先副本源到目标操作,其中抢先副本源到目标操作要在作为安全数据提交扫描的一部分将已修改的轨道送出到源的开始之前完成。
抢先条件监视逻辑410(图6)进一步被配置成用于根据(框426)属于时间点拷贝关系(即,对应于时间点拷贝源)的高速缓存中的已修改的数据的轨道的数量是否超过阈值来确定是否存在抢先拷贝源至目标操作的条件。应当理解,如果对应于时间点拷贝源的高速缓存中的已修改的数据的轨道的数量超过阈值,则例如结合送出时拷贝操作执行的非抢先拷贝源至目标操作可能由于其相对高的数量而对系统性能强加重大损失。可以通过在送出操作之前抢先执行拷贝源至目标操作,使得送出操作在最终被执行时不需要在源送出操作可被完成之前等待拷贝源至目标操作的完成,来改善系统性能的这种降级。所以,在图9的实施例中,确定(框418,图9)如果属于时间点拷贝关系的高速缓存中的已修改的数据的轨道的数量超过(框426)阈值,则存在抢先拷贝源至目标操作的条件。
取决于具体应用,可以使用各种技术来选择合适的阈值。例如,如果逐个列组地执行扫描,则可根据作为整体的高速缓存或每个列组的总容量的百分比来表示合适的阈值。适当阈值的示例可以是在高速缓存或用于列组的高速缓存的总容量的70%或70%至100%的范围内(视情况而定)。
此处也是,如果因为确定属于时间点拷贝关系的高速缓存中的已修改的数据的轨道的数目超过(框426)阈值,而确定(框418,图9)存在抢先拷贝源至目标操作的条件,则目标送出逻辑33的抢先扫描逻辑420(图6)可以随后在任何时间发起对高速缓存中的已修改轨道的扫描,以确定抢先拷贝源至目标操作是否适合于高速缓存中的每个已修改轨道,但是优选地,是在如上所讨论的随后的安全数据提交扫描开始之前的至少某个时间间隔(ΔX)。
相反,如果确定(框414,图9)将不会发起安全数据提交扫描,并且确定(框422)由高速缓存中的已修改的轨道表示的时间点拷贝关系不是持久的,并且确定(框426)对应于时间点拷贝源的高速缓存中的已修改的数据的轨道的数量不超过阈值,则在一个实施例中确定(框430,图9)不存在抢先拷贝源至目标操作的条件。因而,可以绕过对高速缓存中的已修改的轨道的扫描以确定抢先拷贝源至目标操作是否适合于高速缓存中的每个已修改的轨道。然而,应当认识到,在其他实施例中,可以在关于是否存在抢先拷贝源至目标操作的条件的确定中添加、替换或移除不同测试。
图10描绘了对高速缓存中的已修改的轨道的扫描以确定抢先拷贝源至目标操作是否适合于高速缓存中的每个已修改的轨道的一个示例。因此,抢先条件监视逻辑410(图6)确定(框450,图10)用于抢先拷贝源至目标操作的条件是否存在,如以上结合图9所描述的。抢先扫描逻辑452(图6)被配置为响应于确定存在抢先拷贝源至目标操作的条件,发起(框454,图10)对高速缓存中的已修改的数据的轨道的扫描,以识别和选择高速缓存中的已修改的数据的轨道以用于抢先拷贝源至目标操作。
在一个实施例中,抢先扫描逻辑452(图6)被配置成用于识别高速缓存中已修改的数据的轨道并且确定(框458,图10)高速缓存中已修改的数据的轨道是否对应于时间点拷贝源,即,是否属于时间点拷贝关系。抢先扫描逻辑452(图6)进一步被配置成用于如果确定高速缓存中所识别的已修改的数据轨道属于时间点拷贝关系,则还确定(框458,图10)是否已经将时间点拷贝源的对应轨道中的未修改的数据从时间点拷贝源拷贝到该关系的对应时间点拷贝目标。如果不是,则可以发起抢先拷贝源至目标操作,以便在随后的源送出操作之前将未修改的数据从时间点拷贝源中的相应轨道抢先拷贝到时间点拷贝目标。
如以上结合图5和7所描述的,可针对顺序写入操作的顺序轨道执行步幅对准的拷贝源至目标操作。因此,抢先扫描逻辑452(图6)还被配置为确定(框470)所识别的轨道是否是已修改数据的顺序轨道的序列的一部分。如果是,则抢先扫描逻辑452(图6)还被配置成使得(框474,图10)拷贝源至目标逻辑214(图6)针对时间点拷贝目标的对应顺序轨道执行抢先步幅对准的拷贝源至目标操作。因此,识别顺序轨道的序列的任务控制块218(图7)可以以类似于上面结合图8的框338描述的方式生成。
在为针对定向到时间点拷贝源的已修改轨道序列的步幅对准的拷贝源至目标操作生成任务控制块以之后,抢先扫描逻辑452(图6)可以被配置成以类似于以上结合图8的框342描述的方式在高速缓存中跳过(框478)或绕过为其生成顺序任务控制块的已修改轨道序列的剩余顺序轨道。在随后分派所生成的顺序任务控制块218时,可按与上文结合图5的框260-288和244所描述的方式类似的方式,针对由顺序任务控制块所识别的对应顺序轨道,抢先地执行步幅对准的拷贝源至目标操作。
相反,如果抢先扫描逻辑452(图6)确定(框470)所识别的轨道不是已修改数据的顺序轨道的序列的一部分,则抢先扫描逻辑452(图6)被进一步配置成使得(框482,图10)拷贝源至目标逻辑214(图6)抢先地执行针对时间点拷贝关系的对应非顺序轨道的非顺序拷贝源至目标操作。因此,例如,可以为少至单个轨道生成非顺序任务控制块218(图7)。如果抢先拷贝源至目标操作是针对单个轨道的,则非顺序任务控制块218(图7)的起始轨道值S(字段254)可以识别单个轨道,并且轨道的数量值N(字段258)可以被设置为1以用于单个轨道非顺序抢先拷贝源至目标操作。应了解,根据本说明,多种格式可用于非顺序和顺序任务控制块。例如,多个非顺序轨道可以由用于抢先拷贝源至目标操作的非顺序任务控制块的合适字段来识别。
当非顺序轨道任务控制块的后续分派时,可以抢先地执行非顺序的抢先拷贝源至目标操作。在一个实施例中,非顺序的抢先拷贝源至目标操作不需要被步幅对准,因为少至一个轨道可以是抢先拷贝源至目标操作的主题。图3A描绘了根据如上所述被配置用于单个轨道的任务控制块的用于单个轨道的非顺序拷贝源至目标的示例。然而,应当理解,非顺序拷贝源至目标操作可以使用被配置用于如上所述的多个非顺序轨道的一个或多个任务控制块来指向多个非顺序拷贝源至目标操作。
相应地,拷贝源至目标逻辑214(图6)被配置成用于使用针对非顺序轨道配置的任务控制块218(图7)发起非顺序拷贝源至目标操作(图3A),其中,非顺序拷贝源至目标操作包括将读取操作484(图3A)定向到时间点拷贝源50(图3A),因为读取操作的数据尚未被拷贝到时间点拷贝目标54。因而,读取操作484从源50的轨道获得未修改的读取数据,该轨道对应于高速缓存中的包含要被最终送出以覆写源50中的对应轨道的已修改数据的已识别轨道。
根据读取操作484从源50读取的未修改数据由拷贝源至目标逻辑214(图6)在送入操作486送入高速缓存28。拷贝源至目标逻辑214进一步被配置成用于在送出操作488(图3A)中将从源50读取的未修改数据从高速缓存28写入到目标54的对应轨道。
一旦确定(框490,图10)高速缓存的所有已修改的轨道已经被扫描,抢先扫描完成(框494)。可替代地,高速缓存中的另一已修改的轨道被识别(框458)并检查抢先拷贝源至目标操作的适合性,如上所述,直到高速缓存中的所有已修改的轨道已经被扫描。高速缓存中的抢先扫描可以相对于高速缓存中的所有轨道、或者基于逐个列组、或者相对于高速缓存的其他细分来进行。
在完成顺序(步幅对准)和非顺序(例如,单个轨道)抢先拷贝源至目标操作之后,高速缓存的安全数据提交扫描可以由安全数据提交逻辑60(图2)发起,以将已修改数据的轨道从高速缓存送出到存储装置。然而,因为对于属于时间点拷贝关系的已修改轨道,已经选择性地且抢先地完成了拷贝源至目标操作,所以可以继续进行将已修改轨道送出到时间点拷贝源,而无需等待完成拷贝源至目标操作以在由送出到源操作覆写之前保存源中的对应轨道的未修改数据。此外,因为当已经确定存在用于抢先拷贝源至目标操作的有利条件时有选择地执行抢先拷贝源至目标操作,所以可以减少或消除由于这样的抢先操作而导致的系统性能的任何降级。根据具体应用,可以实现其他方面和优点。
这些图的计算部件各自可以在一个或多个计算机系统(如图11中所示的计算机系统1002)中实现。计算机系统/服务器1002可以在由计算机系统执行的计算机系统可执行指令(诸如程序模块)的一般上下文中描述。一般而言,程序模块可包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、逻辑、数据结构等。计算机系统/服务器1002可以在分布式云计算环境中实践,其中任务由通过通信网络链接的远程处理设备来执行。在分布式云计算环境中,程序模块可位于包括存储器存储设备的本地和远程计算机系统存储介质两者中。
如图11所示,计算机系统/服务器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,该程序模块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))可以通过利用计算机可读程序指令的状态信息来执行计算机可读程序指令以使电子电路个性化,以便执行本发明的方面。
这里参照根据本发明实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述了本发明的各个方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机可读程序指令实现。
这些计算机可读程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,使得这些指令在通过计算机或其它可编程数据处理装置的处理器执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指令使得计算机、可编程数据处理装置和/或其他设备以特定方式工作,从而,存储有指令的计算机可读介质则包括一个制造品,其包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的各个方面的指令。
也可以把计算机可读程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机、其它可编程数据处理装置、或其它设备上执行的指令实现流程图和/或框图中的一个或多个方框中规定的功能/动作。
附图中的流程图和框图显示了根据本发明的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或指令的一部分,所述模块、程序段或指令的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
术语“一实施例”、“实施例”、“多个实施例”、“该实施例”、“这些实施例”、“一个或多个实施例”、“一些实施例”、和“一个实施例”意指“一个或多个(但不是所有)本发明的实施例”,除非另有明确规定。
术语“包括(including)”、“包含(comprising)”、“具有(having)”及其变体意指“包括但不限于”,除非另有明确规定。
项目的枚举列表并不暗示任何或所有项目是相互排斥的,除非另有明确规定。
术语“一个/一种(a/an)”和“该(the)”意指“一个或多个”,除非另有明确规定。
彼此通信的装置不需要彼此连续通信,除非另有明确规定。此外,彼此通信的设备可通过一个或多个中介直接或间接通信。
具有彼此通信的若干部件的实施例的描述不暗示需要所有这样的部件。相反,描述各种可选部件以说明本发明的各种可能实施例。
当在此描述单个设备或物品时,将显而易见的是,可以使用多于一个设备/物品(无论它们是否协作)来代替单个设备/物品。类似地,在本文描述多于一个设备或物品(无论它们是否协作)的情况下,将容易明白,可以使用单个设备/物品代替多于一个设备或物品,或者可以使用不同数量的设备/物品代替所示数量的设备或程序。设备的功能和/或特征可以可替代地由未明确描述为具有这样的功能/特征的一个或多个其他设备来体现。由此,本发明的其他实施例不需要包括设备本身。
出于展示和描述的目的,已经呈现了本发明的不同实施例的前述描述。它不旨在是详尽的或将本发明限制在所披露的精确形式。鉴于以上教导,许多修改和变化是可能的。本发明的范围旨在不受该详细描述的限制,而是受所附权利要求的限制。以上说明、示例以及数据提供了本发明的组合的制造和用途的完整说明。因为在不脱离本发明的范围的情况下可以做出本发明的许多实施例,所以本发明在于以下所附的权利要求书中。

Claims (21)

1.一种方法,包括:
将时间点拷贝源的已修改的数据集写入到高速缓存,其中所述已修改的数据集相对于所述时间点拷贝源中的未修改的数据集被修改;
确定是否存在针对高速缓存中的已修改的数据的抢先拷贝源至目标操作的条件;并且
响应于确定存在抢先拷贝源至目标操作的条件,抢先地和选择性地发起拷贝源至目标操作,其包括:
读取所述时间点拷贝源以获得包括所述未修改的数据集的读取数据;并且
将所述未修改的数据集写入到时间点拷贝目标;并且
发起对高速缓存的扫描以识别高速缓存中要送出到存储装置的已修改的数据的轨道。
2.根据权利要求1所述的方法,其中确定是否存在针对高速缓存中的已修改的数据的抢先拷贝源至目标操作的条件包括,确定针对抢先拷贝源至目标操作的条件在发起高速缓存的安全数据提交扫描以识别高速缓存中要送出到存储装置的已修改的数据的轨道之前的一段时间间隔存在。
3.根据权利要求2所述的方法,其中,确定是否存在针对高速缓存中的已修改的数据的抢先拷贝源至目标操作的条件包括,根据从所述时间点拷贝源到所述时间点拷贝目标的时间点拷贝关系是持久的还是所述拷贝关系的所述时间点已经递增,确定是否存在针对高速缓存中的已修改的数据的抢先拷贝源至目标操作的条件,其中,如果从所述时间点拷贝源到所述时间点拷贝目标的所述时间点拷贝关系是持久的,则确定存在抢先拷贝源至目标操作的条件。
4.根据权利要求2所述的方法,其中确定是否存在针对高速缓存中的已修改的数据的抢先拷贝源至目标操作的条件包括,根据对应于时间点拷贝源的高速缓存中的已修改的数据的轨道的数目是否超过阈值,确定是否存在针对高速缓存中的已修改的数据的抢先拷贝源至目标操作的条件,其中,如果对应于时间点拷贝源的高速缓存中的已修改的数据的轨道的数目超过阈值,则确定存在抢先拷贝源至目标操作的条件。
5.根据权利要求2所述的方法,还包括:响应于确定存在抢先拷贝源至目标操作的条件,发起对高速缓存中的已修改的数据的轨道的扫描以识别已修改的数据的轨道,所述已修改的数据的轨道a)对应于时间点拷贝源,并且b)尚未被拷贝到所述时间点源的对应时间点拷贝目标,以及选择性地且抢先地发起对高速缓存中所识别的轨道的拷贝源至目标操作。
6.根据权利要求5所述的方法,其中以步幅将数据写入到所述时间点拷贝源,并且以步幅将数据写入到所述时间点拷贝目标,并且其中发起对高速缓存中所识别的轨道的拷贝源至目标操作包括:
检测高速缓存中所识别的轨道是否是顺序的,并且响应于检测到所识别的顺序轨道,抢先地和选择性地:
将步幅对准的读取操作定向到所述时间点拷贝源的时间点拷贝目标,以迫使到所述时间点拷贝源的重定向的读取操作,从而获得对应于高速缓存中的已修改的数据的所识别的顺序轨道的未修改数据;并且
将顺序数据的步幅对准的轨道写入到时间点拷贝目标,所述时间点拷贝目标包括所获得的对应于高速缓存中的已修改的数据的所识别的顺序轨道的未修改数据。
7.根据权利要求6所述的方法,其中对高速缓存中的已修改的数据的轨道的扫描包括绕过对与所述步幅对准的读取操作对应的剩余轨道的扫描。
8.一种系统,包括:
主机,被配置为发起输入/输出操作;
存储控制器,具有处理器和高速缓存;并且
由所述存储控制器控制的存储装置,所述存储装置包括时间点拷贝源和时间点拷贝目标;
其中,所述存储控制器包括:
存储管理器逻辑,被配置为将时间点拷贝源的已修改的数据集写入到高速缓存,其中所述已修改的数据集相对于所述时间点拷贝源中的未修改的数据集被修改,所述存储管理器逻辑还包括:
抢先条件监视逻辑,所述抢先条件监视逻辑被配置成确定是否存在针对高速缓存中的已修改的数据的抢先拷贝源至目标操作的条件;
拷贝源至目标逻辑,被配置为响应于确定存在抢先拷贝源至目标操作的条件,抢先地和选择性地发起拷贝源至目标操作,其包括:
读取所述时间点拷贝源以获得包括所述未修改的数据集的读取数据;并且
将所述未修改的数据集写入到所述时间点拷贝目标;并且
安全数据提交逻辑,所述安全数据提交逻辑被配置为发起对高速缓存的扫描以识别高速缓存中要送出到存储装置的已修改的数据的轨道。
9.根据权利要求8所述的系统,其中,所述抢先条件监视逻辑进一步被配置为:确定针对抢先拷贝源至目标操作的条件在发起高速缓存的安全数据提交扫描以识别高速缓存中要送出到存储装置的已修改的数据的轨道之前的一段时间间隔存在。
10.根据权利要求8所述的系统,其中,所述抢先条件监视逻辑进一步被配置为:根据从所述时间点拷贝源到所述时间点拷贝目标的时间点拷贝关系是持久的还是所述拷贝关系的所述时间点已经递增,确定是否存在抢先拷贝源至目标操作的条件,其中,如果从所述时间点拷贝源到所述时间点拷贝目标的所述时间点拷贝关系是持久的,则确定存在抢先拷贝源至目标操作的条件。
11.根据权利要求8所述的系统,其中,在高速缓存中写入已修改的数据集包括在轨道中写入已修改的数据,并且其中,所述抢先条件监视逻辑还被配置为:根据对应于时间点拷贝源的高速缓存中的已修改的数据的轨道的数目是否超过阈值,确定是否存在抢先拷贝源至目标操作的条件,其中,如果对应于时间点拷贝源的高速缓存中的已修改的数据的轨道的数目超过阈值,则确定存在抢先拷贝源至目标操作的条件。
12.根据权利要求8所述的系统,其中,在高速缓存中写入已修改的数据集包括在轨道中写入已修改的数据,所述存储管理器逻辑进一步包括抢先扫描逻辑,其被配置为,响应于确定存在抢先拷贝源至目标操作的条件,发起对高速缓存中的已修改的数据的轨道的扫描以识别已修改的数据的轨道,所述已修改的数据的轨道a)对应于时间点拷贝源,并且b)尚未被拷贝到所述时间点源的对应时间点拷贝目标,以及选择性地且抢先地发起对高速缓存中所识别的轨道的拷贝源至目标操作。
13.根据权利要求12所述的系统,其中,以步幅将数据写入所述时间点拷贝源,并且以步幅将数据写入所述时间点拷贝目标,所述存储管理器逻辑进一步包括顺序写入检测逻辑,被配置为检测高速缓存中所识别的轨道是否是顺序的,其中,所述拷贝源至目标逻辑进一步被配置为,响应于检测到所识别的顺序轨道,抢先且选择性地将步幅对准的读取操作定向到所述时间点拷贝源的时间点拷贝目标,以迫使到所述时间点拷贝源的重定向的读取操作,从而获得对应于高速缓存中的已修改的数据的所识别的顺序轨道的未修改数据,以及将顺序数据的步幅对准的轨道写入到时间点拷贝目标,所述时间点拷贝目标包括所获得的对应于高速缓存中的已修改的数据的所识别的顺序轨道的未修改数据。
14.根据权利要求13所述的系统,其中所述抢先扫描逻辑进一步被配置为绕过对与所述步幅对准的读取操作对应的剩余轨道的扫描。
15.一种用于与主机和数据存储系统一起使用的计算机程序产品,所述主机和数据存储系统具有存储控制器以及由所述存储控制器控制的存储装置,所述存储控制器具有处理器和高速缓存,所述存储装置包括时间点拷贝源和时间点拷贝目标,其中,所述计算机程序产品包括计算机可读存储介质,所述计算机可读存储介质具有随其体现的程序指令,所述程序指令可由所述存储控制器的处理器执行以引起处理器操作,所述处理器操作包括:
将时间点拷贝源的已修改的数据集写入到高速缓存,其中所述已修改的数据集相对于所述时间点拷贝源中的未修改的数据集被修改;
确定是否存在针对高速缓存中的已修改的数据的抢先拷贝源至目标操作的条件;并且
响应于确定存在抢先拷贝源至目标操作的条件,抢先地和选择性地发起拷贝源至目标操作,其包括:
读取所述时间点拷贝源以获得包括所述未修改的数据集的读取数据;并且
将所述未修改的数据集写入到所述时间点拷贝目标;并且
发起对高速缓存的扫描以识别高速缓存中要送出到存储装置的已修改的数据的轨道。
16.根据权利要求15所述的计算机程序产品,其中确定是否存在针对高速缓存中的已修改的数据的抢先拷贝源至目标操作的条件包括,确定针对抢先拷贝源至目标操作的条件在发起高速缓存的安全数据提交扫描以识别高速缓存中要送出到存储装置的已修改的数据的轨道之前的一段时间间隔存在。
17.根据权利要求16所述的计算机程序产品,其中,确定是否存在针对高速缓存中的已修改的数据的抢先拷贝源至目标操作的条件包括,根据从所述时间点拷贝源到所述时间点拷贝目标的时间点拷贝关系是持久的还是所述拷贝关系的所述时间点已经递增,确定是否存在针对高速缓存中的已修改的数据的抢先拷贝源至目标操作的条件,其中,如果从所述时间点拷贝源到所述时间点拷贝目标的所述时间点拷贝关系是持久的,则确定存在抢先拷贝源至目标操作的条件。
18.根据权利要求16所述的计算机程序产品,其中确定是否存在针对高速缓存中的已修改的数据的抢先拷贝源至目标操作的条件包括,根据对应于时间点拷贝源的高速缓存中的已修改的数据的轨道的数目是否超过阈值,确定是否存在针对高速缓存中的已修改的数据的抢先拷贝源至目标操作的条件,其中,如果对应于时间点拷贝源的高速缓存中的已修改的数据的轨道的数目超过阈值,则确定存在抢先拷贝源至目标操作的条件。
19.根据权利要求16所述的计算机程序产品,还包括:响应于确定存在抢先拷贝源至目标操作的条件,发起对高速缓存中的已修改的数据的轨道的扫描以识别已修改的数据的轨道,所述已修改的数据的轨道a)对应于时间点拷贝源,并且b)尚未被拷贝到所述时间点源的对应时间点拷贝目标,以及选择性地且抢先地发起对高速缓存中所识别的轨道的拷贝源至目标操作。
20.根据权利要求19所述的计算机程序产品,其中,以步幅将数据写入到所述时间点拷贝源,并且以步幅将数据写入到所述时间点拷贝目标,并且其中,发起对高速缓存中所识别的轨道的拷贝源至目标操作包括:
检测高速缓存中所识别的轨道是否是顺序的,并且响应于检测到所识别的顺序轨道,抢先地和选择性地:
将步幅对准的读取操作定向到所述时间点拷贝源的时间点拷贝目标,以迫使到所述时间点拷贝源的重定向的读取操作,从而获得对应于高速缓存中的已修改的数据的所识别的顺序轨道的未修改数据;并且
将顺序数据的步幅对准的轨道写入到时间点拷贝目标,所述时间点拷贝目标包括所获得的对应于高速缓存中的已修改的数据的所识别的顺序轨道的未修改数据。
21.根据权利要求20所述的计算机程序产品,其中对高速缓存中的已修改的数据的轨道的扫描包括绕过对与所述步幅对准的读取操作对应的剩余轨道的扫描。
CN201880079857.3A 2017-12-14 2018-11-29 数据存储系统中的拷贝源至目标管理 Active CN111448554B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15/842,856 2017-12-14
US15/842,856 US10521139B2 (en) 2017-12-14 2017-12-14 Copy source to target management in a data storage system
PCT/IB2018/059451 WO2019116136A1 (en) 2017-12-14 2018-11-29 Copy source to target management in a data storage system

Publications (2)

Publication Number Publication Date
CN111448554A true CN111448554A (zh) 2020-07-24
CN111448554B CN111448554B (zh) 2023-09-12

Family

ID=66813886

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201880079857.3A Active CN111448554B (zh) 2017-12-14 2018-11-29 数据存储系统中的拷贝源至目标管理

Country Status (6)

Country Link
US (2) US10521139B2 (zh)
JP (1) JP7058020B2 (zh)
CN (1) CN111448554B (zh)
DE (1) DE112018005768B4 (zh)
GB (1) GB2581463B (zh)
WO (1) WO2019116136A1 (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11054994B2 (en) 2017-12-14 2021-07-06 International Business Machines Corporation Copy source to target management in a data storage system
US10521139B2 (en) * 2017-12-14 2019-12-31 International Business Machines Corporation Copy source to target management in a data storage system
US10891227B2 (en) * 2018-11-29 2021-01-12 International Business Machines Corporation Determining modified tracks to destage during a cache scan
CN111796766A (zh) * 2020-05-29 2020-10-20 苏宁云计算有限公司 一种数据的存储方法、装置及计算机系统

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1679000A (zh) * 2002-06-24 2005-10-05 网络装置公司 在raid数据重建和转移中使用文件系统信息
CN1702627A (zh) * 2004-05-27 2005-11-30 国际商业机器公司 执行拷贝操作的方法和系统
CN101025703A (zh) * 2006-02-17 2007-08-29 国际商业机器公司 按时间点拷贝关系切换卷地址关联的设备、系统和方法
CN104756066A (zh) * 2012-10-16 2015-07-01 国际商业机器公司 在源逻辑地址和目标逻辑地址之间建立时间点拷贝关系
GB201704529D0 (en) * 2016-04-07 2017-05-03 Imagination Tech Ltd Read discards in a processor system with write-back caches
US20170351619A1 (en) * 2016-06-01 2017-12-07 International Business Machines Corporation Demote scan processing to demote tracks from cache

Family Cites Families (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6338114B1 (en) 1999-08-18 2002-01-08 International Business Machines Corporation Method, system, and program for using a table to determine an erase operation to perform
JP3866466B2 (ja) 1999-12-13 2007-01-10 株式会社東芝 データ構造管理装置、データ構造管理システム、データ構造管理方法およびデータ構造管理プログラムを格納する記録媒体
US7171610B2 (en) 2002-06-12 2007-01-30 International Business Machines Corporation Method, system, and article of manufacture for preventing data loss
AU2002951907A0 (en) * 2002-10-08 2002-10-24 Bhp Steel Limited Hot dip coating apparatus
US7328226B1 (en) 2003-06-30 2008-02-05 Symantec Operating Corporation Coordinated distributed log-based snapshots in a multi-host environment
US7133989B2 (en) 2004-05-05 2006-11-07 International Business Machines Corporation Point in time copy between data storage systems
US20070124345A1 (en) * 2005-11-30 2007-05-31 Heinz Kathy K Library backup
US20080049254A1 (en) * 2006-08-24 2008-02-28 Thomas Phan Method and means for co-scheduling job assignments and data replication in wide-area distributed systems
CN104899286B (zh) * 2009-09-21 2018-09-11 高通股份有限公司 分布式内容存储和取回
US8433870B2 (en) * 2010-10-12 2013-04-30 International Business Machines Corporation Multiple incremental virtual copies
US8854751B2 (en) 2011-01-06 2014-10-07 Seagate Technology Llc Reducing errors resulting from width variability of storage media write tracks
US8751762B2 (en) 2011-03-30 2014-06-10 International Business Machines Corporation Prevention of overlay of production data by point in time copy operations in a host based asynchronous mirroring environment
US20120254547A1 (en) * 2011-03-31 2012-10-04 International Business Machines Corporation Managing metadata for data in a copy relationship
US8793436B2 (en) 2011-05-23 2014-07-29 International Business Machines Corporation Cache management of tracks in a first cache and a second cache for a storage
US8566530B2 (en) * 2011-07-22 2013-10-22 International Business Machines Corporation Prefetching source tracks for destaging updated tracks in a copy relationship
US9063883B2 (en) 2011-09-26 2015-06-23 International Business Machines Corporation Management of point-in-time copy relationship for extent space efficient volumes
WO2013046258A1 (en) 2011-09-28 2013-04-04 Hitachi, Ltd. Method for calculating tier relocation cost and storage system using the same
US9336150B2 (en) 2012-06-08 2016-05-10 International Business Machines Corporation Performing asynchronous discard scans with staging and destaging operations
US9779016B1 (en) * 2012-07-25 2017-10-03 Smart Modular Technologies, Inc. Computing system with backup and recovery mechanism and method of operation thereof
US9195403B2 (en) 2012-09-12 2015-11-24 International Business Machines Corporation Replicating tracks from a first storage site to a second and third storage sites
US11030125B2 (en) 2013-02-05 2021-06-08 International Business Machines Corporation Point in time copy operations from source volumes to space efficient target volumes in two stages via a non-volatile storage
US9582213B2 (en) 2013-02-21 2017-02-28 Netapp, Inc. Object store architecture for distributed data processing system
US9891860B1 (en) 2013-06-28 2018-02-13 EMC IP Holding Company, LLC. Managing copying of data in storage systems
US9563565B2 (en) 2013-08-14 2017-02-07 Micron Technology, Inc. Apparatuses and methods for providing data from a buffer
US9632945B2 (en) 2013-11-12 2017-04-25 International Business Machines Corporation Destage grouping for sequential fast write tracks
US9354994B2 (en) 2014-02-18 2016-05-31 International Business Machines Corporation Preemptive relocation of failing data
US9395925B2 (en) 2014-03-11 2016-07-19 International Business Machines Corporation Grouping of tracks for copy source to target destage on global mirror secondary
CN106980625B (zh) 2016-01-18 2020-08-04 阿里巴巴集团控股有限公司 一种数据同步方法、装置及系统
US20180157697A1 (en) * 2016-12-07 2018-06-07 International Business Machines Corporation Updating change information for current copy relationships when establishing a new copy relationship having overlapping data with the current copy relationships
US10521139B2 (en) * 2017-12-14 2019-12-31 International Business Machines Corporation Copy source to target management in a data storage system

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1679000A (zh) * 2002-06-24 2005-10-05 网络装置公司 在raid数据重建和转移中使用文件系统信息
CN1702627A (zh) * 2004-05-27 2005-11-30 国际商业机器公司 执行拷贝操作的方法和系统
CN101025703A (zh) * 2006-02-17 2007-08-29 国际商业机器公司 按时间点拷贝关系切换卷地址关联的设备、系统和方法
CN104756066A (zh) * 2012-10-16 2015-07-01 国际商业机器公司 在源逻辑地址和目标逻辑地址之间建立时间点拷贝关系
GB201704529D0 (en) * 2016-04-07 2017-05-03 Imagination Tech Ltd Read discards in a processor system with write-back caches
US20170351619A1 (en) * 2016-06-01 2017-12-07 International Business Machines Corporation Demote scan processing to demote tracks from cache

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
王小峰;时向泉;苏金树;: "一种TCP/IP卸载的数据零拷贝传输方法", 计算机工程与科学, no. 02 *

Also Published As

Publication number Publication date
WO2019116136A1 (en) 2019-06-20
DE112018005768B4 (de) 2021-12-23
CN111448554B (zh) 2023-09-12
DE112018005768T5 (de) 2020-07-23
GB2581463B (en) 2021-01-06
US10976940B2 (en) 2021-04-13
US10521139B2 (en) 2019-12-31
JP7058020B2 (ja) 2022-04-21
GB202009753D0 (en) 2020-08-12
US20200042206A1 (en) 2020-02-06
US20190187921A1 (en) 2019-06-20
GB2581463A (en) 2020-08-19
JP2021507377A (ja) 2021-02-22

Similar Documents

Publication Publication Date Title
US8930947B1 (en) System and method for live migration of a virtual machine with dedicated cache
US9235524B1 (en) System and method for improving cache performance
US8627012B1 (en) System and method for improving cache performance
US9104529B1 (en) System and method for copying a cache system
US9098452B2 (en) Selecting files to backup in a block level backup
US10289684B2 (en) Live migration of virtual machine persistent data using mirrored input-output operations
US10976940B2 (en) Copy source to target management in a data storage system
US8433870B2 (en) Multiple incremental virtual copies
US10783049B2 (en) Virtual storage drive management in a data storage system
US11144462B2 (en) Wait classified cache writes in a data storage system
US11054994B2 (en) Copy source to target management in a data storage system
US11221955B2 (en) Metadata track selection switching in a data storage system
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
US9053033B1 (en) System and method for cache content sharing
US9009416B1 (en) System and method for managing cache system content directories
US10885061B2 (en) Bandwidth management in a data storage system
US11163698B2 (en) Cache hit ratios for selected volumes using synchronous I/O
US10783047B2 (en) Forming a consistency group comprised of volumes maintained by one or more storage controllers
US10949354B2 (en) Distributed safe data commit in a data storage system
US20200334091A1 (en) Minimally disruptive data capture for segmented applications
US10891227B2 (en) Determining modified tracks to destage during a cache scan
US8578373B1 (en) Techniques for improving performance of a shared storage by identifying transferrable memory structure and reducing the need for performing storage input/output calls

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