CN112805949B - 处理快照创建请求的方法以及存储设备 - Google Patents

处理快照创建请求的方法以及存储设备 Download PDF

Info

Publication number
CN112805949B
CN112805949B CN201980065309.XA CN201980065309A CN112805949B CN 112805949 B CN112805949 B CN 112805949B CN 201980065309 A CN201980065309 A CN 201980065309A CN 112805949 B CN112805949 B CN 112805949B
Authority
CN
China
Prior art keywords
storage device
transaction
file system
future
snapshot
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201980065309.XA
Other languages
English (en)
Other versions
CN112805949A (zh
Inventor
曼达尔·戈文德·纳瓦德卡尔
威普瑞·拉玛苏布拉玛尼亚姆
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Publication of CN112805949A publication Critical patent/CN112805949A/zh
Application granted granted Critical
Publication of CN112805949B publication Critical patent/CN112805949B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1097Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1448Management of the data involved in backup or backup restore
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1458Management of the backup or restore process
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/11File system administration, e.g. details of archiving or snapshots
    • G06F16/128Details of file system snapshots on the file-level, e.g. snapshot creation, administration, deletion
    • 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
    • G06F3/0613Improving I/O performance in relation to throughput
    • 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/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • 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]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1095Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/568Storing data temporarily at an intermediate stage, e.g. caching
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/84Using snapshots, i.e. a logical point-in-time copy of the data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/26Using a specific storage system architecture
    • G06F2212/261Storage comprising a plurality of storage devices
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Human Computer Interaction (AREA)
  • Quality & Reliability (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

公开了一种在通信网络中处理具有同步关系的源文件系统和目标文件系统中快照创建请求的方法和设备。所述方法包括:确定所述源文件系统和所述目标文件系统确认的成功输入/输出(input/output,简称I/O)事务的吞吐量,并基于所述确定的吞吐量确定未来I/O事务标记。未来I/O事务标记指示未来I/O事务的序号。在第一存储设备的主缓存中成功缓存所述未来I/O事务时,创建与所述源文件系统中未定的快照创建请求相关联的快照。

Description

处理快照创建请求的方法以及存储设备
技术领域
本文所描述的本主题一般涉及存储技术领域以及存储系统中的数据复制方法。更具体地,本主题涉及应用于采用数据复制方法的存储技术中的快照处理方法。
背景技术
为了保护数据安全并提供业务连续性的解决方案,存储厂商建立远程容灾中心进行远程数据备份,以确保发生灾难(例如火灾和地震)后原始数据不会丢失或损坏,并确保关键业务在允许的时间范围内,例如在5至10秒内恢复,从而尽可能减少灾难造成的损失。目前的容灾系统可以包括2中心容灾系统,通过建立两个通过专用网络互连的数据中心来实现容灾。其中,主动数据中心用于承载用户业务,被动数据中心用于在主动数据中心发生灾难时,在不发生数据丢失或业务中断的情况下接管主动数据中心的业务等。一般地,主动和被动数据中心可以位于各自的站点A和站点B,距离可达200公里。
为了在2中心容灾系统中存储和保护数据,可以采用同步复制环境,将各自站点处的两个数据中心的数据卷相互镜像。因此,在正常操作下,站点A的主动数据中心的文件系统将读写文件系统导出到客户端。如果站点A的主动数据中心发生故障,则站点B的被动数据中心的镜像文件系统将被制作为读写文件系统,并开始为客户端操作服务。文件系统架构基于对象。每个文件作为对象,每个文件系统是对象的集合。
对于同步复制环境中的数据存储和处理方法,两个数据中心的存储设备同时处理客户端服务。其中,站点A和站点B的存储设备总是保持同步状态。从客户端设备的主机文件系统接收的输入/输出(input/output,简称I/O)操作在站点A的存储设备处接收,并且在站点B的存储设备处实时克隆相同的I/O操作。应理解,在所述的容灾系统中,主机文件系统基本上是安装在客户端设备上的源文件系统。因此,只有在站点A和站点B的两个存储设备成功处理I/O操作后,才能成功地向客户端确认I/O操作。其中,处理至少包括在站点A和站点B的两个存储设备的非易失性缓存中的写入操作。在同步复制环境中运行的数据中心支持创建快照。
快照可以理解为数据集合的副本,该副本包括特定时间点(复制的起始时间点)对应数据的图像,或者该快照可以理解为一个时间点的数据集合的副本。在同步复制环境的数据存储系统中,快照创建操作同时提供给站点A和站点B的镜像数据卷。快照中的数据完全相同,从而镜像数据卷可以回退到时间点的状态(例如,镜像数据卷的快照回退指两个位置的数据需要回退到同一状态)。由于两个位置的镜像数据卷的数据是并发的,且数据在任意时间都会发生改变,因此在没有良好的协作机制的情况下,最终在两个位置所取的快照可以是不一致的。这样,所有作为站点A的快照的一部分的I/O事务都是站点B对应快照的一部分。
在现有技术的解决方案中,当在站点A和站点B的数据中心触发快照创建时,来自客户端的输入/输出(input/output,简称I/O)事务被阻止。在此阶段,所有I/O事务被刷新到站点A和站点B的存储设备的各自的非易失性存储器中。考虑到站点A和站点B至少可以间隔200公里,对于在站点A处处理的I/O事务相对于站点B,可能会经历2至5毫秒的典型延迟。此外,完成快照需要较长的延迟。因此,针对同步复制环境,当要创建快照时,将来自客户端的I/O事务阻止多达5毫秒可能会显著降低数据中心的文件系统性能。
因此,现有的数据存储解决方案需要在处理快照创建请求的同时提高存储系统的性能。
发明内容
本发明用于介绍与在同步复制环境中处理快照创建请求的方法和系统以及系统中的专用通信网络中的相关存储设备相关的概念。
相应地,本发明一方面提供了一种处理第一存储设备的源文件系统中快照创建请求的方法。第一存储设备与第二存储设备在通信网络中通信。在通信网络中,第一存储设备的源文件系统与第二存储设备的目标文件系统具有同步关系。这里的同步关系意味着源文件系统和目标文件系统在同步复制环境中实时处于同步状态。在所述同步复制环境中,在第一存储设备的源文件系统中接收到的任何客户端输入/输出(input/output,简称I/O)事务也实时克隆到目标文件系统。所述方法包括:确定所述源文件系统和所述目标文件系统确认的成功输入/输出(input/output,简称IO)事务的吞吐量,并基于所述确定的吞吐量确定未来I/O事务标记。所述未来I/O事务标记指示未来I/O事务的序号。在所述第一存储设备的主缓存中成功缓存所述未来I/O事务时,创建与所述源文件系统中未定的快照创建请求相关联的快照。进一步地,所述方法包括:在所述主缓存中成功缓存所述未来I/O事务时,创建与所述源文件系统中未定的快照创建请求相关联的快照,其中,在所述快照创建期间,在所述未来I/O事务之后接收的I/O事务被缓存在所述第一存储设备的辅助缓存中。
相应地,本发明另一方面提供了一种处理第二存储设备的目标文件系统中快照创建请求的方法。第二存储设备与第一存储设备在通信网络中通信。在通信网络中,第二存储设备的目标文件系统与第一存储设备的源文件系统具有同步关系。所述方法包括:从所述第一存储设备中接收未来输入/输出(input/output,简称I/O)事务标记,其中,所述未来I/O事务在所述第一存储设备中基于所述源文件系统和所述目标文件系统确认的成功I/O事务的吞吐量确定。所述未来I/O事务标记指示未来I/O事务的序号。在所述第二存储设备的主缓存中成功缓存所述未来I/O事务时,创建与所述目标文件系统中未定的快照创建请求相关联的快照。进一步地,所述方法包括:在所述第二存储设备的所述主缓存中成功缓存所述未来I/O事务时,创建与所述目标文件系统中未定的快照创建请求相关联的快照,其中,在所述快照创建期间,在所述未来I/O事务之后接收的I/O事务被缓存在所述第二存储设备的辅助缓存中。
相应地,本发明另一方面提供了一种第一存储设备,其存储有与第二存储设备的目标文件系统具有同步复制关系的源文件系统,所述第一存储设备和所述第二存储设备在通信网络中相互通信。所述第一存储设备包括存储有与第二存储设备的目标文件系统具有同步复制关系的源文件系统的第一存储设备,所述第一存储设备和所述第二存储设备在通信网络中相互通信。所述第一存储设备包括第一存储控制器、主缓存和辅助缓存。所述第一存储控制器用于确定所述源文件系统和所述目标文件系统确认的成功输入/输出(input/output,简称IO)事务的吞吐量,并基于所述确定的吞吐量确定未来I/O事务标记,其中,所述未来I/O事务标记指示未来I/O事务的序号。在所述第一存储设备的所述主缓存中成功缓存所述未来I/O事务时,创建与所述源文件系统中未定的快照创建请求相关联的快照。进一步地,所述第一存储控制器用于在所述主缓存中成功缓存所述未来I/O事务时,创建与所述源文件系统中未定的快照创建请求相关联的快照,其中,在所述快照创建期间,在所述未来I/O事务之后接收的I/O事务被缓存在所述第一存储设备的辅助缓存中。
相应地,本发明又一方面提供了一种第二存储设备,其存储有与第一存储设备的源文件系统具有同步复制关系的目标文件系统,所述第一存储设备和所述第二存储设备在通信网络中相互通信。所述第二存储设备包括第二存储控制器、主缓存和辅助缓存。所述第二存储控制器用于从所述第一存储设备中接收未来输入/输出(input/output,简称I/O)事务标记,其中,所述未来I/O事务在所述第一存储设备中基于所述源文件系统和所述目标文件系统确认的成功I/O事务的吞吐量确定。所述未来I/O事务标记指示未来I/O事务的序号。在所述第二存储设备的所述主缓存中成功缓存所述未来I/O事务时,创建与所述目标文件系统中未定的快照创建请求相关联的快照。进一步地,所述第二存储控制器用于在所述主缓存中成功缓存所述未来I/O事务时,创建与所述目标文件系统中未定的快照创建请求相关联的快照,其中,在所述快照创建期间,在所述未来I/O事务之后接收的I/O事务被缓存在所述第二存储设备的辅助缓存中。
本发明的其它方面和特征将在本领域普通技术人员结合附图回顾本发明的具体实施例的以下描述后变得显而易见。
附图说明
该详细描述是参考附图描述的。显然,以下描述中的附图仅仅示出了本发明的部分实施例。
图1A为本发明实施例提供的一种应用场景示意图;
图1B为本发明实施例提供的一种文件系统的示意图;
图2示出了本发明实施例提供的一种存储设备的示意结构;
图3A示出了相关技术实施例提供的与快照创建请求一起由存储设备的文件系统处理的客户端I/O事务的顺序的示意性表示;
图3B示出了本发明实施例提供的与快照创建请求一起由同步复制环境中的两个存储设备的各自文件系统处理的客户端I/O事务的顺序的示意性表示;
图4示出了本发明实施例提供的一种存储设备的示意结构;
图5示出了本发明实施例提供的一种存储设备的示意结构;
图6示出了本发明实施例提供的处理第一存储设备的源文件系统中快照创建请求的方法;
图7示出了本发明实施例提供的处理第二存储设备的目标文件系统中快照创建请求的方法。
应理解,附图是为了说明本发明的概念,并且可能不是按比例绘制。
具体实施方式
本发明可以有多种方式实现,包括实现为过程、装置、系统、计算机可读介质例如计算机可读存储介质,或者其中程序指令经由光学或电子通信链路发送的计算机网络。在本说明书中,这些实施方式或者本发明可以采取的任何其它形式可以称为技术。一般情况下,所公开过程的步骤顺序可以在本发明的范围内进行更改。
下面提供了本发明的一个或多个实施例的详细描述以及说明本发明原理的附图。本发明是结合这些实施例进行描述,但是本发明不限于任何实施例。本发明的范围仅由权利要求书限制,并且本发明包括许多替代方案、修改和等同物。为了提供对本发明的透彻理解,下文描述中阐述了许多具体细节。提供这些细节用于举例,本发明可以根据权利要求书实现,不需要部分或者所有这些具体细节。为了清楚描述,没有对与本发明相关技术领域中已知的技术材料进行详细描述,从而避免对本发明造成不必要地模糊。
下文描述中陈述许多具体细节,以对本发明各实施例进行通彻理解。然而,本领域的技术人员将明白可以在没有这些具体细节的情况下实践本发明。在其它实例中没有详细描述众所周知的方法、流程、部件,以免对本发明造成模糊。
尽管本发明实施例对此不作限制,但是利用“处理”、“计算”、“确定”、“建立”、“分析”以及“检查”等术语进行的讨论可以指计算机、计算平台、计算系统或其它电子计算设备的操作和/或处理,其将表示为计算机寄存器和/或存储器中的物理(例如,电子)量的数据操作和/或转换为类似地表示为计算机寄存器和/或存储器中的物理量的其它数据或可以存储执行操作和/或处理指令的非瞬时性存储介质中的其它信息。
尽管本发明实施例对此不作限制,但本文使用的术语“多个”可以包括“两个或更多个”。术语“多个”可以在整个说明书中使用来描述两个或更多个组件、设备、元件、单元、参数等。除非明确说明,否则此处描述的方法实施例不限于特定的顺序。此外,所描述的方法实施例或其元素中的某些可以同时或并发发生或执行。
本发明公开了一种在同步复制环境中处理快照创建请求的系统和方法及其存储设备。
虽然描述了2中心容灾系统的系统和方法的方面,但是本发明可以应用于具有多个数据中心的容灾系统中,该容灾系统可以包括两个或更多个数据中心。本发明的各种实施例结合以下示例性系统和方法进行描述。
此后,借助示例性图和一个或多个示例来解释本发明实施例。然而,提供这些示例性图和示例仅为了更好地理解本发明,不应理解为对本发明的范围的限制。
图1A为本发明实施例提供的2中心容灾系统的典型应用场景的示意图。图1A所示的2数据中心(data center,简称DC)容灾系统包括至少一个主机100和站点10和站点12分别包括的两个数据中心。两个数据中心可以在专用通信网络中相互连接。专用通信网络可以包括星型组网方式中的光纤或网线等。两个数据中心可以通过互联网协议(InternetProtocol,简称IP)或光纤通道(fiber channel)协议相互进行数据传输。进一步地,主机100可以基于小型计算机系统接口(Small Computer System Interface,简称SCSI)协议或基于互联网小型计算机系统接口(Internet Small Computer System Interface,简称iSCSI)协议与站点10和/或站点12进行通信,此处对协议不作限制。进一步地,主机100可以使用网络文件系统协议(Network File System Protocol,简称NFS)或通用互联网文件系统协议(Common Internet File System Protocol,简称CIFS)从站点10和站点12的数据中心访问数据,但不限于此。
主机100可以包括客户端的任何计算设备,也可以称为“客户端设备100”。此类客户端设备100可以包括服务器、台式计算机或应用服务器,或者现有技术中已知的任何其它类似设备。可以在客户端设备100中安装操作系统和其它应用程序。根据本发明实施例,客户端设备100包括文件系统14,以下称为“主机文件系统14”,如图1B所示。根据容灾解决方案的原理以及相关技术中已知的业务连续性解决方案,主机文件系统100存储/备份在站点10和站点12的两个数据中心的存储阵列中。客户端设备100中源自主机文件系统14的输入/输出(input/output,简称I/O)事务也可以称为客户端I/O事务,可以包括与主机文件系统14对应的多个操作,例如但不限于读/写操作、更新操作、创建操作、删除操作等。每个客户端I/O事务可以具有相同或不同大小。每个客户端I/O事务都具有与其相关联的时间点(time point,简称TP)值。当要将各自I/O事务写入站点10和站点12的存储阵列的对应文件系统中时,各自I/O事务的TP值可以由主机文件系统100维护,并与客户端I/O事务一起发送。TP值与快照相关联,用于对快照进行区分。当主机文件系统14向站点10和站点12的存储阵列的对应文件系统发出快照命令(也称为快照创建请求)时,TP值增加。因此,TP值是客户端设备100的主机文件系统14发出的快照创建请求顺序的直接指示符。例如,针对顺序为I/O=1、I/O=2、I/O=3、I/O=4、I/O=5、I/O=6、I/O=7、I/O=8和I/O=9的I/O事务,若在I/O=6之后且I/O=7之前发出第一个快照创建请求,则I/O=6之前的I/O事务,即对于I/O=1、I/O=2、I/O=3、I/O=4和I/O=5,的TP值应等于0。相应地,I/O=6之后I/O事务的,即对于I/O=7、I/O=8和I/O=9,的TP值应等于1。基于各自I/O事务或一组I/O事务的TP值,可以识别各自I/O事务所属的快照或该组I/O事务所属的快照。根据本发明实施例,2DC在存储和处理快照创建请求期间与I/O事务相关联的TP值的使用将在上述公开中变得显而易见。
根据本发明实施例,主机100将来自主机文件系统的数据写入站点10和站点12的2DC。站点10和站点12的2DC可以使用同步复制技术保持站点10和站点12中存储的数据实时同步。例如,当主机文件系统14向站点10写入数据,即客户端I/O事务时,站点10的数据中心可以同时备份数据到站点12的数据中心。在另一示例中,主机文件系统14可以对数据执行双写,即双写客户端I/O事务,其中,在同步复制环境中,客户端I/O同时发送到站点10和站点12的数据中心。站点10和站点12的数据中心处理从客户端设备100的主机文件系统14接收的客户端I/O事务。当在站点12的数据中心成功处理I/O事务时,向站点10的数据中心对其进行确认。仅当从站点12的数据中心接收到确认后,站点10的数据中心才向客户端设备100发送确认。例如,当主机文件系统14向站点10和站点12的数据中心的相应文件系统执行写入数据时,主机文件系统14仅在站点10和站点12均成功缓存写入的数据时,才从站点10的数据中心接收写入成功响应。
站点10的数据中心可以包括第一存储设备102,站点12的数据中心可以包括第二存储设备104。第一存储设备102和第二存储设备104可以是现有技术中已知的存储阵列或服务器等存储设备。例如,第一存储设备102和第二存储设备104可以包括存储区域网络(storage area network,简称SAN)阵列,或者可以包括网络连接存储(network attachedstorage,简称NAS)阵列。本发明实施例对每个数据中心中的存储设备的具体形式不作限定。应注意,本发明实施例中的所有方法都可以由站点10和站点12中的存储设备执行。在图1所示的应用场景中,第一存储设备102和第二存储设备104之间的距离可以达到200公里。第一存储设备102和第二存储设备可以位于同一城市或不同城市,只要能够实现第一存储设备102和第二存储设备104之间的数据同步复制即可。
第一存储设备102和第二存储设备104在站点10和站点12形成各自的存储空间,用于存储客户端设备100的主机文件系统14。由此形成的存储空间可以包括客户端设备100的主机文件系统14对应的各自文件系统。图1B示出了第一存储设备102中的源文件系统16和第二存储设备104中的目标文件系统18,其中,源文件系统16和目标文件系统18形成与客户端设备100的主机文件系统14对应的复制数据的存储空间。根据本发明实施例,当源文件系统16和目标文件系统18实时同步时,它们被称为具有同步复制关系。尽管已经结合构成主机100的存储空间的文件系统描述了本发明,但是存储设备中的存储空间应理解为包括多个数据卷。数据卷可以是通过映射物理存储空间形成的文件系统或逻辑存储空间。例如,数据卷可以是逻辑单元号(logical unit number,简称LUN)或者文件系统,数据卷可以有多个。
在所述的同步复制环境的实施例中,采用的2DC支持创建快照。由于第一存储设备102的源文件系统16与第二存储设备104的目标文件系统18之间的同步复制关系的性质,从客户端设备100的主机文件系统14接收的快照创建请求同时应用于源文件系统16和目标文件系统18。本文使用的“快照”应理解为与本发明中描述的文件系统的复制不同。数据复制可以通过快照视图执行。但是,在本发明的上下文中,第二存储设备104中的数据复制可以通过其它已知操作执行。可以从主机100接收快照创建请求,以在第一存储设备102和第二存储设备104中创建文件系统的副本。快照是指定数据集合完全可用的副本,其中,副本包括时间点(副本开始的时间点)对应的数据的图像。快照可以是该快照表示的数据的副本。当发起快照创建时,可以在创建时刻为数据卷创建状态视图,只有数据卷创建时刻的数据能够通过视图查看,在该时间点后对数据卷的修改(写入新数据)不反映在快照视图中。
根据本发明实施例,即使当创建快照时,第一存储设备102和第二存储设备104也继续接收写入操作,即主机100发送的传入I/O事务。这对同步复制环境中的存储系统构成某些挑战。应理解,快照创建可以在任何时间进行。快照创建请求和I/O事务无关。现有技术的存储解决方案阻止了传入I/O事务,在创建快照之后,解除对传入I/O事务的阻止,但本发明中的存储设备不会阻止I/O事务。但是,一些I/O事务在当前快照之前,一些I/O事务在下一个快照之后。快照创建命令仅从主机100发送至源文件系统16。对应的快照创建命令也必须从站点10的源文件系统16发送至站点12的目标文件系统18。站点12的目标文件系统18需要解释快照创建命令,并且仅在将属于之前的快照的所有I/O事务写入其缓存后创建快照且不允许在创建之前的快照之前写入属于下一个快照的I/O事务。因此,确保构成第一存储设备102的源文件系统16中快照的一部分的I/O事务也构成第二存储设备104的目标文件系统18中相同快照的一部分是很重要的。因此,根据所公开的同步复制环境的实施例,构成第一存储设备102中快照创建请求的一部分的I/O事务也始终构成发送至第二存储设备104的快照创建请求的一部分,以便不影响在第二存储设备104快照创建期间的文件系统性能,并确保快照创建是即时的。为此,本发明实施的解决方案确保在站点10和12创建快照之前,在第一存储设备102的源文件系统16和第二存储设备104的目标文件系统18中写入精确的I/O事务,以避免任何不一致。如果在构成快照创建请求对应的快照的一部分的I/O事务之前在站点12中接收到该快照创建请求,这些I/O事务将无法处理。为了理解在创建快照时可能出现在站点10和站点12中的不一致性,现在参见图3A。
图3A示出了当接收到快照创建请求时,作为站点10处接收到的快照创建请求对应的快照的一部分的传入I/O事务处于带外的示例性情况。此处的“带外”是指由于快照创建请求而使时间点(time point,简称TP)增加的那些I/O事务。如图3A所示,在具有TP=0的快照创建请求之前接收到6个I/O事务1、2、3、4、5和6,即,在站点A接收到这6个I/O事务时未请求快照。在第六个I/O事务之后,请求快照创建,其中,TP增加,即TP=1。快照创建请求之后的I/O事务7、8和9相应地具有TP=1。因此,6个I/O事务是站点10的第一个快照(例如,快照1)的一部分。根据同步复制环境,6个I/O事务也必须是站点12的快照1的一部分。在站点10和站点12接收的I/O事务被提交到存储设备102和104各自的缓存中。现在,当与TP=0相关联的I/O事务进行到站点12时,如果出现延迟且在快照创建请求之后到达站点12,则该I/O事务将无法提交到第二存储设备104的缓存,因为该I/O事务将在带外增加。在图3A所示的示例中,如果相对于站点12的快照创建请求,与TP=0相关联的编号为4、5和6的I/O事务出现延迟,则它们将被第二存储设备104的缓存拒绝,因为它们将在带外增加。这可能导致站点10和站点12之间的不一致,并且可能影响符合同步复制环境的文件系统性能。即使通过新的TP值重新尝试失败的I/O事务,例如,参见图3A中的I/O事务4'、5'和6',这些I/O事务仍然不会构成快照1的一部分,而是仅构成下一个快照的一部分。本发明解决了现有场景中的这些问题,并确保了构成站点10和12中对应快照的一部分的I/O事务的一致性。本发明提供的解决方案在上述描述中将变得显而易见。
图2为本发明实施例提供的存储设备20(例如,存储设备102和存储设备104)的结构示意图。图2所示的存储设备20为存储阵列。如图2所示,存储设备20可以包括存储控制器200和磁盘阵列214,其中,这里的磁盘阵列214用于提供存储空间,可以包括廉价冗余磁盘阵列(redundant array of independent disk,简称RAID)或包括多个磁盘的磁盘柜。磁盘阵列214可以有多个,磁盘阵列214包括多个磁盘216。磁盘216用于存储数据。磁盘阵列214通过SCSI协议等通信协议与控制器200通信。协议在此不作限定。
可以理解的是,磁盘阵列214仅仅是存储系统中的存储器的一个示例。在本发明实施例中,数据也可以通过磁带库等存储器存储。应注意,磁盘216也仅仅是构建磁盘阵列214的存储器的一个示例。在实际应用中,例如,为了在包含多个磁盘的机柜之间构建磁盘阵列,还可以有一种实现方式。因此,在本发明实施例中,磁盘阵列214还可以包括存储器,包括非易失性存储介质,例如固态硬盘(solid state disk,简称SSD)、包含多个磁盘的机柜、或服务器,在此不作限定。
存储控制器200是存储设备20的“大脑”,主要包括处理器202、缓存204、存储器206、通信总线(简称总线)210和通信接口212。处理器202、缓存204、存储器206和通信接口212通过通信总线210相互通信。应注意,本发明实施例中,存储设备20中可以有一个或多个控制器200。可以理解的是,当存储设备20包括至少两个控制器200时,可以提高存储设备20的稳定性。
通信接口212用于与主机100、磁盘216或其它存储设备进行通信。
存储器206用于存储程序208。存储器206可以包括高速随机存取存储器(randomaccess memory,简称RAM),或者还可以包括非易失性存储器,例如至少一个磁盘存储器。可以理解的是,存储器206可以是各种可以存储程序代码的非瞬时性机器可读介质,例如RAM、磁盘、硬盘驱动器、光盘、SSD或非易失性存储器。
程序208可以包括程序代码,程序代码包括计算机操作指令。
缓存204是控制器和硬盘驱动器之间的存储器,其容量小于硬盘驱动器,但速度快于硬盘驱动器。缓存204用于临时存储数据,例如从主机100或其它存储设备接收的I/O事务,并临时存储从磁盘216读取的数据,以提高阵列的性能和可靠性。缓存204可以是各种可以存储数据的非瞬时性机器可读介质,例如RAM、ROM、闪存或SSD,此处不作限定。根据本发明实施例,缓存204
处理器202可以是中央处理器(central processing unit,简称CPU)或专用集成电路(application-specific integrated circuit,简称ASIC),或者被配置为实现本发明实施例的一个或多个集成电路。处理器202中安装有操作系统和其它软件程序,不同的软件程序可以被视为不同的处理模块,具有不同的功能,例如处理磁盘216的输入/输出(input/output,简称I/O)请求、对磁盘216中的数据进行其它处理,或者修改存储设备20中保存的元数据。存储控制器200可以实现I/O操作、快照、镜像、复制等各种数据管理功能。在本发明实施例中,处理器202用于执行程序208,具体可以执行以下方法实施例中的相关步骤。
可以理解的是,在本发明实施例中,第一存储设备102和第二存储设备104的硬件结构可以是类似的。下面将对本发明实施例中的存储设备具体如何实现处理快照创建请求的方法进行详细描述。
参见图4,示出了第一存储设备400,其中,第一存储设备400用于实现本发明实施例提供的处理快照创建请求的方法。应理解,第一存储设备400包括第一存储设备102(图1所示)和存储设备20(图2所示),并且是包括其它存储设备(例如存储设备104)的同步复制环境的一部分,其中,两个存储设备中的文件系统具有同步复制关系。如图所示,第一存储设备400包括第一存储控制器402(例如存储控制器200)、主缓存404、辅助缓存406、发送单元408和接收单元410。
第一存储控制器402根据本发明的教导,实现对来自主机100的传入I/O事务的处理,并创建文件系统的快照。如上所述,源文件系统16存储在站点10处的第一存储设备400中。创建的快照是源文件系统16的时间点副本。第一存储控制器402识别在源文件系统16中从主机100,即,主机文件系统14,接收的每个I/O事务的序号。为此,第一存储控制器402可以采用序号生成器403,该序号生成器403可以生成序号并分配给在源文件系统16中接收的每个I/O事务。在一实施例中,序号生成器403只有在需创建快照时或在源文件系统16接收到快照创建请求时,才可以生成并分配序号。尽管在图4所示的实施例中,序号生成器403示为第一存储控制器402的一部分,但不应将其理解为对本发明的限制,可以进行其它修改。
在识别所接收的源文件系统16中I/O事务的序号时,第一存储控制器402确定第一存储设备400的源文件系统16和第二存储设备的目标文件系统确认的成功I/O事务的吞吐量,其中,源文件系统16和目标文件系统(例如,第二存储设备104的目标文件系统18)具有同步复制关系。第一存储设备400必须考虑I/O事务在第一存储设备400向主机100发送确认之前,I/O事务被提交到第一存储设备400和第二存储设备(例如第二存储设备104)各自的缓存中。第一存储控制器402确定的成功I/O事务的吞吐量反映了每秒成功I/O事务的总数。该数量也可以称为每秒写I/O数(IO operations per second,简称IOPS)。例如,IOPS40000指示在源文件系统16和目标文件系统18中每秒对各自的缓存执行40000个写操作。对于不同的存储解决方案、导出的文件系统的数量、当前的写工作负荷、存储器缓存(8k或16k)的大小、主机100和站点10和12之间的通信路径所导致的延迟,成功的I/O事务的吞吐量可能不同。
基于确定的成功I/O事务的吞吐量,第一存储控制器402确定未来I/O事务标记。未来I/O事务标记指示未来I/O事务的序号。未来I/O事务在其提交到第一存储设备400的缓存时,使得第一存储控制器402创建与在较早的时间点从主机100接收到的未定的快照创建请求相关联的快照。例如,如果在源文件系统16中接收到快照操作请求时,序号为X的I/O事务在发送中或在第一存储设备400处处理,且确定未来的I/O事务标记为X+200,则仅在将第X+200个I/O事务之前的所有I/O事务和第X+200个I/O事务提交至其缓存之后,第一存储控制器402才会发起快照创建。根据本实施例,第X+200个I/O事务之前的所有I/O事务构成第一快照的一部分,而第X+200个I/O事务以及之后的所有I/O事务构成第二快照的一部分。
在本发明一实施例中,如果在第一存储设备400的源文件系统16从主机100接收的I/O事务的数量减少到低于阈值,则第一存储控制器402可以确定与源文件系统16中未定的快照创建请求相关联的等待时间,且在等待时间过去后,第一存储控制器402发起创建与未定的请求相关联的快照。本实施例可应用于来自主机100的传入I/O事务突然减少的情况。因此,无法接收未来I/O事务,从而可能永远不会创建快照。但是,由于快照创建请求的处理已经在源文件系统16中发起,因此必须创建快照。此时,确定等待时间或可以设置预先确定的基于时间的边界。在该时间过后,快照在接收未来I/O事务之前创建。
在另一实施例中,第一存储控制器402可以在源文件系统16中来自主机100的传入I/O事务的数量减少到低于阈值的情况下,重新确定源文件系统16和目标文件系统18确认的成功I/O事务的吞吐量。基于重新确定的成功I/O事务的吞吐量,可以确定未来I/O事务标记。
在又一实施例中,第一存储控制器402在来自主机100的传入I/O事务的数量多到构成第一快照的一部分的I/O事务到达第二存储设备的目标文件系统18比来自第一存储设备400的源文件系统16的快照创建请求要晚时,重新确定成功I/O事务的吞吐量。
主缓存404和辅助缓存406分别与提交构成第一快照和第二快照的一部分的I/O事务相关联。在一种实现方式中,主缓存404和辅助缓存406形成第一存储设备400的缓存(例如,图2所示的缓存204)的单独分区。在另一种实现方式中,主缓存404和辅助缓存406形成两个单独的缓存。主缓存用于在与未来I/O事务标记相关联的I/O事务之前提交从主机100接收的I/O事务,辅助缓存用于在与未来I/O事务标记相关联的I/O事务之后提交从主机100接收的I/O事务,直到创建快照。在上面的示例中,第X+200个I/O事务及其之前的所有I/O事务存储在主缓存404中,在第X+200个I/O事务之后接收的所有I/O事务存储在辅助缓存406中。
第一存储控制器400在为主缓存404中缓存的I/O事务创建快照之后处理缓存在辅助缓存406中的I/O事务。在本实施例中,为存储在辅助缓存406中的I/O事务分配增加的TP值,该增加的TP值在创建与存在于主缓存404中的I/O事务相关的快照之后有效。一旦创建快照,则刷新存储在辅助缓存406中的I/O事务而不出现任何性能延迟。这意味着当与主缓存中的I/O事务相关的快照已经创建时为辅助缓存406的I/O事务分配了下一有效TP值。因此,由于具有下一有效TP值的I/O事务已存在于缓存中等待处理,故不存在性能延迟。
再次参见图4,第一存储设备400可以包括发送单元408,用于将未来I/O事务标记传送至与第二存储设备(例如第二存储设备104)。在一种实现方式中,可以通过在第一存储设备的源文件系统发送给第二存储设备的目标文件系统的复制I/O事务中补充指示未来I/O事务标记的信息,将未来I/O事务标记传送至第二存储设备。复制I/O事务可以是在源文件系统16的快照创建请求之后从主机100接收的后续I/O事务。例如,如果在序号为8的I/O事务之后接收到快照创建请求,则未来I/O事务标记可以是序号为9的I/O。相应地,当将序号为9的复制I/O事务写入第二存储设备的目标文件系统18时,未来I/O事务标记对应的指示符与复制I/O事务相补充。图3B所示的示例中也示出了相同的情况,该示例将在后文描述。
在另一种实现方式中,通过发送第一存储设备400的表格至第二存储设备(例如存储设备104),将未来I/O事务标记传送至第二存储设备。该表格包括未来I/O事务标记和与快照创建请求对应的时间戳,即TP值,其中,该表格在第一存储设备400的源文件系统16接收到多个快照创建请求时发送。该表格可以包括多个未来I/O事务标记和对应的时间戳,每个未来I/O事务标记和对应的时间戳与在源文件系统16接收的多个快照创建请求中的一个相关联。下面的表1示出了本实施例中此类示例。
Figure GDA0003530494260000091
Figure GDA0003530494260000101
在表1的上述示例中,在第一行中,时间戳值,即TP=0表示第一快照的I/O事务尚未创建,且关联的未来I/O事务标记在I/O=1344556。进一步地,在第二行中,时间戳值,即TP=1表示第二快照的I/O事务尚未创建,且关联的未来I/O事务标记为I/O=1566778。对于第三行、第四行和第五行,快照创建请求在源文件系统16处接收到,但未来I/O事务标记尚未确定。在一种实现方式中,表格与每个复制I/O事务一起从源文件系统16发送到目标文件系统18。在另一种实现方式中,仅当存在未定的快照创建请求时,表格才与每个复制I/O事务一起从源文件系统16发送到目标文件系统18。在一示例中,当快照创建请求出现在源文件系统16中时,将该表格与复制I/O事务和后续复制I/O事务一起发送至目标文件系统18。一旦从目标文件系统18接收到关于接收该表格的确认,则该表格不需要由发送单元408再次发送。进一步地,在表1所示的示例中,可以不发送最后三行,因为它们是尚未确定未来I/O事务标记的未来快照创建请求的占位符。在另一个实施例中,当在源文件系统16和目标文件系统18中均创建快照时,且在第一存储设备400接收到关于在目标文件系统18创建快照的确认时,可以从表格中移除对应的行。根据本发明实施例,源文件系统16和目标文件系统18都可以维护该表格的副本。
发送单元408还可以用于在重新确定成功I/O事务的吞吐量的情况下,传送修订或确定的未来I/O事务标记。发送单元408还可以用于在源文件系统16中来自主机100的传入I/O事务的数量减少到低于某个阈值的情况下,传送第一存储控制器402确定的等待时间或设置的预定的基于时间的边界。
进一步地,第一存储设备400可以包括接收单元410,用于在成功缓存第二存储设备(例如第二存储设备104)的传入I/O事务时,从第二存储设备接收确认。如上所述,在第二存储设备处接收的I/O事务也称为复制I/O事务。一旦成功写入第二存储设备的缓存中,复制I/O事务就被确认给第一存储设备,由接收单元410接收。
进一步地,接收单元410用于从第二存储设备(例如第二存储设备104)接收递送延迟消息。递送延迟消息与在第二存储设备中接收关于一个或多个中间I/O事务的未来I/O事务标记的延迟相关联。此处使用的“一个或多个中间I/O事务”指的是构成第一存储设备的源文件系统16中未定的任何后续快照创建请求的一部分的I/O事务。本实施例涉及的情况是,来自主机100的传入I/O事务突然增加且由第一存储控制器402确定的未来I/O事务标记仍在发送至第二存储控制器的目标文件系统18的过程中。同时,在未来接收到的中间I/O事务构成下一个快照创建请求的一部分,在目标文件系统18的未来I/O事务标记之前接收到。此时,来自目标文件系统18的确认在源文件系统16处延迟。在该场景中,可以在第一存储设备400的接收单元410中从第二存储设备接收递送延迟消息。此时,第一存储控制器402可以重新确定未来I/O事务标记。
参见图5,示出了第二存储设备500,其中,第二存储设备500用于实现本发明实施例提供的处理快照创建请求的方法。第二存储设备500与第一存储设备400在通信网络中通信,第二存储设备500存储有与第一存储设备400的源文件系统16具有同步复制关系的目标文件系统18。应理解,第二存储设备500包括第二存储设备104(图1所示)和存储设备20(图2所示)。如图所示,第二存储设备500包括第二存储控制器502(例如存储控制器200)、主缓存504、辅助缓存506、发送单元508和接收单元510。
第二存储控制器502根据本发明的教导,实现对从主机100或源文件系统16接收的传入复制I/O事务的处理,并创建快照。由此创建的快照是目标文件系统18的时间点副本。第二存储控制器502识别在目标文件系统18中接收的每个复制I/O事务的序号。为此,第二存储控制器502可以依赖于在第一存储设备400中识别的I/O事务的序号,在第一存储设备400中可以使用序号生成器403确定I/O事务的序号。相应地,在一实施例中,I/O事务的序号可以通过第一存储设备400的发送单元408发送至第二存储设备500,随后可以由第二存储设备的接收单元510接收。在可替代实施例中,第二存储控制器可以采用序号生成器503(以虚线所示),该序号生成器503可以用于生成序号并分配给在目标文件系统18接收的每个I/O事务。在一实施例中,序号生成器503只有在要创建快照时或在目标文件系统18接收到快照创建请求时,才能生成和分配序号。尽管在图5所示的实施例中,通过虚线将序号生成器503示为第二存储控制器502的一部分,但不应将其理解为对本发明的限制,可以进行其它修改。
进一步地,第二存储控制器502从第一存储控制器400接收未来I/O事务标记,该第一存储控制器400基于第一存储设备400的源文件系统16和第二存储设备500的目标文件系统18确认的成功I/O事务的吞吐量,确定未来I/O事务标记。在该方面,第二存储控制器502可以通过接收单元510接收未来I/O事务标记,该接收单元510可以从第一存储设备400的发送单元408接收未来I/O事务标记。如上所述,接收单元510可以以复制I/O事务上指示符的形式和/或以表格的形式接收未来I/O事务标记,并将其传送至第二存储控制器502。未来I/O事务标记指示未来I/O事务的序号。当未来I/O事务被提交至第二存储设备500的缓存时,使得第二存储控制器502创建与在目标文件系统18中未定的快照创建请求相关联的快照。在上述示例中,如果确定未来I/O事务标记为X+200,则应仅在将第X+200个I/O事务之前的所有I/O事务和第X+200个I/O事务提交至其缓存之后,由第二存储控制器502发起快照创建。根据本实施例,第X+200个I/O事务之前的所有I/O事务构成第一快照的一部分,而第X+200个I/O事务以及之后的所有I/O事务构成第二快照的一部分。因此,构成站点10中快照的一部分的I/O事务和构成站点12中对应快照的一部分的复制I/O事务是精确且相同的。根据本实施例,站点10即第一存储设备400的源文件系统16的快照创建和站点12即第二存储设备500的目标文件系统18的快照创建彼此异步。这意味着第一存储设备400中站点10的快照创建和第二存储设备500的站点12的快照创建不会在同一时间点发生。因此,一旦与未来I/O事务标记相关联的未来I/O事务被提交至源文件系统16的缓存,源文件系统16可以创建自己的快照,当相同的未来I/O事务被提交至目标文件系统18的缓存,目标文件系统18将创建自己的快照,但时间不同,这是由于站点10的第一存储设备400和站点12的第二存储设备500之间存在延迟。
在本发明一实施例中,如果在第一存储设备400的源文件系统16中从主机100接收的I/O事务的数量减少到低于阈值,则第二存储控制器502从第一存储设备400接收与目标文件系统18中未定的快照创建请求相关联的等待时间。等待时间由第一存储控制器402确定,并通过其发送单元408传送至第二存储设备500的接收单元510。在等待时间过去后,第二存储控制器502发起创建与未定的请求相关联的快照。类似地,预定的基于时间的边界可以由第一存储控制器402设置,并可以通过各自的发送单元408和各自的接收单元510传送至第二存储控制器502。在预定的基于时间的边界过去后,在接收未来I/O事务之前创建快照。如上所述,当来自主机100的传入I/O事务突然减少时,传送等待时间和预定的基于时间的边界。
进一步地,在第一存储控制器402重新确定成功I/O事务的吞吐量并重新确定未来I/O事务标记的情况下,通过第二存储设备500的接收单元510接收到相同的I/O事务标记。第二存储控制器502相应地使用相同的I/O事务标记标识未来I/O事务。当缓存未来I/O事务时,执行第二存储设备500的目标文件系统18中未定的快照创建请求。
主缓存504和辅助缓存506分别与提交构成第一快照和第二快照的一部分的I/O事务相关联。在一种实现方式中,主缓存504和辅助缓存506形成第二存储设备500的缓存(例如,图2所示的缓存204)的单独分区。在另一种实现方式中,主缓存504和辅助缓存506形成两个单独的缓存。主缓存504用于在与未来I/O事务标记相关联的未来I/O事务之前提交从目标文件系统18接收的复制I/O事务,辅助缓存506用于在与未来I/O事务标记相关联的未来I/O事务之后提交从目标文件系统18接收的I/O事务,直到创建快照。在上面的示例中,第X+200个I/O事务及其之前的所有I/O事务存储在主缓存504中,在第X+200个I/O事务之后接收的所有事务存储在辅助缓存506中。
图3B示出了基于从第一存储设备400接收的未来I/O事务标记处理第二存储设备500中快照创建请求的示例。图3B所示的示例包括本发明实施例提供的在同步复制环境中与快照创建请求一起由两个存储设备的相应文件系统处理的客户端I/O事务的顺序的示意性表示。如图3B所示,站点A(例如,可以包括第一存储设备400所在的站点10)和站点B(例如,可以包括第二存储设备500所在的第二存储设备500)这两个站点为2DC存储系统的两个站点。站点A和站点B接收(如图所示,来自主机(例如主机100))的依次编号为1至17的I/O事务。进一步地,如图所示,在序号为8的I/O事务之后接收快照创建请求。在图3B所示的示例中,未来I/O事务标记为14,即将序号为14的I/O事务提交至缓存(例如,可以包括主缓存404)后,将在站点A为序号为14的I/O事务以及之前的所有I/O事务创建快照。相应地,序号为14的I/O事务以及之前的所有I/O事务均通过TP=0指示,即均位于第一快照中。在序号为14的I/O事务之后的序号为15至17的I/O事务位于可在接收到任何后续I/O事务时创建的任何后续快照中,并因此通过TP=1指示。将此类I/O事务提交至缓存的第二块中,表示为“存储在缓存中的未来I/O”。例如,缓存的第二块可以包括辅助缓存406。在处理了TP=0的缓存中的所有事务之后,在创建位于缓存的第二块的I/O事务所处的快照创建时,将提交这些I/O事务。
上述应用于站点A的快照处理方法也应用于站点B。应注意,通过在序号为9的后续的复制I/O事务中发送分存,将未来I/O事务标记从站点A传送至站点B,该I/O事务在快照创建请求之后立即发生。第二个块中表示为“存储在缓存中的未来I/O”的I/O事务由于在未来I/O事务标记之后发生而实际并未提交至缓存中。创建快照之后,可将这些I/O事务立即提交至缓存中,具有增加的TP。因此,即使当它们实际并未被提交至缓存中时,这些未来I/O事务也会向主机返回确认,因为在某个时间点它们将被提交至缓存中且不会丢失。
第二存储控制器502在为主缓存504中缓存的I/O事务创建快照之后,处理缓存在辅助缓存506中的I/O事务。一旦创建快照,则刷新存储在辅助缓存506中的I/O事务而不出现任何性能延迟。在处理辅助缓存506中的I/O事务时,第二存储设备500的发送单元508向第一存储设备400发送确认。
进一步地,发送单元508还用于:当接收未来I/O事务标记相对于第二存储设备400中的一个或多个中间I/O事务出现延迟时,向第一存储设备400发送递送延迟消息。
本发明的存储系统400和500可以执行所公开的同步复制环境实施例中所述的处理快照创建请求的方法。存储系统400和500的实施例仅结合在各自站点10和站点12处处理快照创建请求的方法进行了解释。并未对本领域技术人员显而易见的这些单元的其它功能进行详细描述。可以理解的是,图4和图5所示的实施例仅为示例。例如,单元划分仅仅是逻辑功能划分且在实际实现中可以是其它划分。例如,可将多个单元或部件合并或集成到另一系统中,或可忽略或不执行部分特征。另外,可通过一些接口实现所显示或论述的互相耦合或直接耦合或通信连接。设备或单元之间的直接耦合或通信连接可通过电子、机械或其它形式实现。
图6示出了本发明实施例提供的处理第一存储设备400的源文件系统16接收的快照创建请求的方法600。
在步骤602中,识别在第一存储设备400的源文件系统16中从主机100接收的每个I/O事务的序号。在一实施例中,在第一存储设备400的源文件系统16中从主机100接收快照创建请求后,生成I/O事务的序号并将其分配给各自的I/O事务。
在步骤604中,确定源文件系统16和目标文件系统18确认的成功I/O事务的吞吐量。
在步骤606中,基于吞吐量确定未来I/O事务标记。未来I/O事务标记指示未来I/O事务的序号。在第一存储设备400的主缓存404中成功缓存未来I/O事务时,创建与源文件系统16中未定的快照创建请求相关联的快照。在一实施例中,如果在第一存储设备400的源文件系统16中接收的I/O事务的数量减少到低于阈值,方法600包括:确定与源文件系统16中未定的快照创建请求相关联的等待时间。在等待时间过去后,方法还包括:在接收到未来I/O事务之前发起创建与快照创建请求相关联的快照。在另一实施例中,如果在第一存储系统400的源文件系统16中接收的I/O事务的数量减少到低于阈值,方法600包括:重新确定源文件系统16和目标文件系统18确认的成功I/O事务的吞吐量。基于重新确定的成功I/O事务的吞吐量,重新确定未来I/O事务。
在步骤608中,在主缓存中成功缓存未来I/O事务时,创建与源文件系统16中未定的快照创建请求相关联的快照。在快照创建期间,在未来I/O事务之后接收的I/O事务被缓存在第一存储设备400的辅助缓存406中。
方法600还包括:将确定的未来I/O事务标记传送至第二存储设备500。
在又一实施例中,方法600还可以包括:从第二存储设备500接收递送延迟消息。方法600包括:基于递送延迟消息,重新确定未来I/O事务标记。
方法600还包括:当创建快照时,处理在第一存储设备的辅助缓存406中缓存的I/O事务。处理辅助缓存406中的I/O事务可以包括:将具有增加的TP值的相同的I/O事务提交至主缓存404。方法600还可以包括:在将这些I/O事务成功提交至主缓存404时,向主机100发送确认。在一实施例中,方法600可以包括:在向主机100发送确认之前,接收在第二存储设备500处处理相同I/O事务的确认。进一步地,在第一存储设备400处处理I/O事务可以包括:从第二存储设备500接收关于处理相同I/O事务的确认。
根据本发明实施例,方法600还可以包括:将与I/O事务标记相关联的未来I/O事务之后接收的I/O事务对应的所有事务日志详细信息存储在第一存储设备400的指定存储区域中。在包括站点10的第一存储设备400的数据中心发生任何节点故障,而I/O事务仍在进行中的情况下,存储的I/O事务的事务日志详细信息可用于理解故障发生时的状态。基于该状态能够执行节点的恢复机制。
图7示出了本发明实施例提供的处理第二存储设备500的源文件系统16接收的快照创建请求的方法700。
在步骤702中,识别第二存储设备500的目标文件系统18中接收的每个I/O事务的序号。在一实施例中,I/O事务的序号是从第一存储设备400接收的。在另一实施例中,I/O事务可以在第二存储设备500处生成。此外,如果生成了I/O事务,则仅在第二存储设备500的目标文件系统18中接收到快照创建请求后,才将I/O事务分配给各自的I/O事务。
在步骤704中,从第一存储设备400接收未来I/O事务标记,未来I/O事务标记在第一存储设备中基于源文件系统16和目标文件系统18确认的成功I/O事务的吞吐量确定。未来I/O事务标记指示未来I/O事务的序号。当在第二存储设备500的主缓存504中成功缓存未来I/O事务时,创建与目标文件系统18中未定的快照创建请求相关联的快照。
在步骤706中,当在辅助缓存506中成功缓存未来I/O事务时,创建与目标文件系统18中未定的快照创建请求相关联的快照。在快照创建期间,在未来I/O事务之后接收的I/O事务被缓存在第二存储设备500的辅助缓存506中。
在一实施例中,如果在第一存储设备400的源文件系统16中接收的I/O事务的数量减少到低于阈值,方法700包括:接收第一存储设备400中确定的与源文件系统16中未定的快照创建请求相关联的等待时间。在等待时间过去后,方法700还包括:在接收到未来I/O事务之前发起创建与快照创建请求相关联的快照。在另一实施例中,如果在第一存储系统400的源文件系统16中接收的I/O事务的数量减少到低于阈值,方法700包括:基于第一存储设备400中重新确定的成功I/O事务的吞吐量,接收未来I/O事务标记。
在又一实施例中,方法700还可以包括:向第一存储设备400发送递送延迟消息。
方法700还包括:当创建快照时,处理缓存在第二存储设备500的辅助缓存506中的I/O事务。处理辅助缓存506中的I/O事务可以包括:将具有增加的TP值的相同的I/O事务提交至主缓存504。方法600还可以包括:在将这些I/O事务成功提交至主缓存504时,向第一存储设备400发送确认。
根据本发明实施例,方法700还可以包括:将与I/O事务标记相关联的未来I/O事务之后接收的I/O事务对应的所有事务日志详细信息存储在第二存储设备500的指定存储区域中。在包括站点12的第一存储设备500的数据中心发生任何节点故障,而I/O事务仍在进行中的情况下,存储的I/O事务的事务日志详细信息可用于理解故障发生时的状态。基于该状态能够执行节点的恢复机制。
本领域技术人员可以理解用于实现本发明的任何已知的或新的算法。然而,应注意,无论使用任何已知的或新的算法,本发明提供了能够实现上述益处和技术改进的方法。
本领域普通技术人员能够认识到,结合本说明书所公开的实施例中所描述的示例,可通过电子硬件或计算机软件与电子硬件的组合来实施单元和算法步骤。功能是由硬件还是由软件执行取决于技术方案的特定发明和设计约束条件。本领域技术人员可使用不同方法实现每个特定发明的所描述功能,但是不应认为该实现超出本发明的范围。
在本应用中提供若干实施例中,应理解,所公开的系统和方法可通过其它方式实现。例如,所描述的装置实施例仅仅是示例性的。例如,单元划分仅仅是逻辑功能划分且在实际实现中可以是其它划分。例如,可将多个单元或部件合并或集成到另一系统中,或可忽略或不执行部分特征。另外,可通过一些接口实现所显示或论述的互相耦合或直接耦合或通信连接。装置或单元之间的直接耦合或通信连接可通过电子、机械或其它形式实现。
当这些功能以软件功能单元的形式实现以及作为单独产品销售或使用时它们可存储在计算机可读存储介质中。基于这种理解本发明的技术方案基本上或构成现有技术的部分或技术方案的部分可通过软件产品的形式实现。计算机软件产品存储在存储介质中并包括若干指令,用于指示计算机设备(其可为个人计算机、服务器或网络设备)执行本发明实施例中所描述的方法的所有或部分步骤。可以存储程序代码的任何媒体,例如USB盘、可移动硬盘、只读存储器(Read-Only Memory,简称ROM)、随机存取存储器(Random AccessMemory,简称RAM)、磁盘或光学光盘。
除非另有明确规定,否则互相通信的设备不需要连续通信。此外,互相通信的设备可以直接通信或间接地通过一个或多个中介进行通信。
虽然本文描述了单个设备或制品,但显然可以使用不止一个设备/制品(不论它们是否协作)来代替单个设备/制品。类似地,虽然本文描述了不止一个设备或制品(不论它们是否协作),但显然可以使用单个设备/制品来代替不止一个设备或制品,或者可以使用不同数量的设备/制品,而不是所示数量的设备或程序。设备的功能和/或特征可替代性地由没有明确地描述为具有这种功能/特征的一个或多个其它设备来实施。因此,本发明的其它实施例不需要包括设备本身。
尽管已经以特定于结构特征和/或方法的语言描述了用于在同步复制环境中处理存储解决方案中创建快照请求的系统和方法的实现方式,但应理解,所附权利要求不一定限于所描述的特定特征或方法。特定特征或方法是作为采用用于存储数据的复制方法的存储系统中创建快照请求系统的处理方法的实现示例公开的。

Claims (46)

1.一种在通信网络中处理第一存储设备的源文件系统中快照创建请求的方法,其特征在于,在所述通信网络中,所述源文件系统与第二存储设备的目标文件系统具有同步复制关系,所述方法包括:
确定所述源文件系统和所述目标文件系统确认的成功输入/输出(input/output,简称IO)事务的吞吐量;
基于所述确定的吞吐量确定未来I/O事务标记,其中,所述未来I/O事务标记指示未来I/O事务的序号;以及
在所述第一存储设备的主缓存中成功缓存所述未来I/O事务时,创建与所述源文件系统中未定的快照创建请求相关联的快照,其中:
在所述快照创建期间,在所述未来I/O事务之后接收的I/O事务被缓存在所述第一存储设备的辅助缓存中。
2.根据权利要求1所述的方法,其特征在于,包括:识别在所述第一存储设备的源文件系统中从客户端设备的主机文件系统接收的每个I/O事务的序号。
3.根据权利要求2所述的方法,其特征在于,每个I/O事务的序号是在所述第一存储设备的所述源文件系统中从所述客户端设备的主机文件系统接收快照创建请求后生成并分配给各自的I/O事务的。
4.根据权利要求1所述的方法,其特征在于,如果在所述第一存储设备的所述源文件系统中接收的I/O事务的数量减少到低于阈值,所述方法包括:
确定与所述源文件系统中未定的快照创建请求相关联的等待时间;以及
在所述等待时间过去后,在接收到所述未来I/O事务之前发起创建与所述快照创建请求相关联的快照。
5.根据权利要求1所述的方法,其特征在于,包括:将所述确定的未来I/O事务标记传送至所述第二存储设备,以使所述第二存储设备的所述目标文件系统创建与在所述第二存储设备的所述目标文件系统接收的快照创建请求相关联的快照。
6.根据权利要求5所述的方法,其特征在于,通过发送所述第一存储设备的表格至所述第二存储设备,将所述未来I/O事务标记传送至所述第二存储设备,其中,所述表格至少包括所述未来I/O事务标记和所述快照创建请求对应的时间戳,所述表格在所述第一存储设备的所述源文件系统中接收到多个快照创建请求时发送。
7.根据权利要求6所述的方法,其特征在于,所述表格包括多个未来I/O事务标记和对应的时间戳,所述多个未来I/O事务标记中的每个未来I/O事务标记和对应的时间戳与在所述第一存储设备的所述源文件系统中接收的多个快照创建请求中的一个相关联。
8.根据权利要求5所述的方法,其特征在于,与在所述第二存储设备的所述目标文件系统中接收的所述快照创建请求相关联的快照的创建与在所述第一存储设备的所述源文件系统中的快照的创建异步。
9.根据权利要求5所述的方法,其特征在于,还包括:在从所述第二存储设备接收递送延迟消息时,重新确定未来I/O事务标记,其中,所述递送延迟消息与在所述第二存储设备中接收所述未来I/O事务标记的延迟相关联。
10.根据权利要求1所述的方法,其特征在于,在所述主缓存中缓存的一个或多个I/O事务构成创建的快照的一部分,在所述辅助缓存中缓存的一个或多个I/O事务构成在所述源文件系统中接收对应的后续快照创建请求时创建的任何后续快照的一部分。
11.根据权利要求1所述的方法,其特征在于,在创建与所述快照创建请求相关联的快照时,所述方法包括:处理在所述辅助缓存中缓存的I/O事务。
12.根据权利要求11所述的方法,其特征在于,所述处理在所述辅助缓存中缓存的I/O事务包括:在所述第二存储设备中成功创建快照时,从所述第二存储设备中接收处理复制I/O事务的确认。
13.一种在通信网络中处理第二存储设备的目标文件系统中快照创建请求的方法,其特征在于,在所述通信网络中,所述目标文件系统与第一存储设备的源文件系统具有同步复制关系,所述方法包括:
从所述第一存储设备中接收未来输入/输出(input/output,简称I/O)事务标记,其中,所述未来I/O事务在所述第一存储设备中基于所述源文件系统和所述目标文件系统确认的成功I/O事务的吞吐量确定,其中:
所述未来I/O事务标记指示未来I/O事务的序号;以及
在所述第二存储设备的主缓存中成功缓存所述未来I/O事务时,创建与所述目标文件系统中未定的快照创建请求相关联的快照,其中:
在所述快照创建期间,在所述未来I/O事务之后接收的I/O事务被缓存在所述第二存储设备的辅助缓存中。
14.根据权利要求13所述的方法,其特征在于,包括:当在所述第一存储设备的所述源文件系统中接收的I/O事务的数量减少到低于阈值时,从所述第一存储设备中接收与所述目标文件系统中未定的快照创建请求相关联的等待时间,所述方法还包括:在所述等待时间过去后,在接收到所述未来I/O事务之前发起创建快照。
15.根据权利要求13所述的方法,其特征在于,通过在所述第二存储设备的所述目标文件系统中从所述第一存储设备的所述源文件系统接收的复制I/O事务中补充的指示所述未来I/O事务标记的信息的形式,从所述第一存储设备中接收所述未来I/O事务标记。
16.根据权利要求15所述的方法,其特征在于,所述复制I/O事务对应在所述第一存储设备的源文件系统中快照创建请求后接收的后续I/O事务。
17.根据权利要求13所述的方法,其特征在于,所述方法包括:在所述第二存储设备中接收从所述第一存储设备发送的表格,其中,所述表格至少包括所述未来I/O事务标记和所述快照创建请求对应的时间戳,所述表格在所述第一存储设备的所述源文件系统接收到多个快照创建请求时发送。
18.根据权利要求17所述的方法,其特征在于,所述表格包括多个未来I/O事务标记和对应的时间戳,所述多个未来I/O事务标记中的每个未来I/O事务标记和对应的时间戳与在所述第一存储设备的所述源文件系统中接收的多个快照创建请求中的一个相关联。
19.根据权利要求13所述的方法,其特征在于,与在所述第二存储设备的所述目标文件系统中接收的所述快照创建请求相关联的快照的创建与在所述第一存储设备的所述源文件系统中快照创建请求相关联的快照的创建异步。
20.根据权利要求13所述的方法,其特征在于,包括:将递送延迟消息传送至所述第一存储设备,其中,所述递送延迟消息与在所述第二存储设备中接收所述未来I/O事务标记的延迟相关联。
21.根据权利要求13所述的方法,其特征在于,在所述主缓存中缓存的一个或多个I/O事务构成创建的快照的一部分,在所述辅助缓存中缓存的一个或多个I/O事务构成在所述目标文件系统中接收对应的后续快照创建请求时创建的任何后续快照的一部分。
22.根据权利要求13所述的方法,其特征在于,在创建与所述快照创建请求相关联的快照时,所述方法包括:处理在所述辅助缓存中缓存的I/O事务。
23.根据权利要求22所述的方法,其特征在于,包括:在所述目标文件系统中成功创建快照时,将处理所述辅助缓存中缓存的I/O事务的确认传送至所述第一存储设备。
24.一种第一存储设备,其存储有与第二存储设备的目标文件系统具有同步复制关系的源文件系统,所述第一存储设备和所述第二存储设备在通信网络中相互通信,所述第一存储设备包括:
第一存储控制器;以及
主缓存和辅助缓存;
所述第一存储控制器用于:
确定所述源文件系统和所述目标文件系统确认的成功输入/输出(input/output,简称IO)事务的吞吐量;
基于所述确定的吞吐量确定未来I/O事务标记,其中,所述未来I/O事务标记指示未来I/O事务的序号;以及
在所述主缓存中成功缓存所述未来I/O事务时,创建与所述源文件系统中未定的快照创建请求相关联的快照,其中:
在所述快照创建期间,在所述未来I/O事务之后接收的I/O事务被缓存在所述第一存储设备的辅助缓存中。
25.根据权利要求24所述的第一存储设备,其特征在于,所述第一存储控制器用于识别在所述第一存储设备的源文件系统中从客户端设备的主机文件系统接收的每个I/O事务的序号。
26.根据权利要求25所述的第一存储设备,其特征在于,所述第一存储控制器用于:在所述第一存储设备的所述源文件系统中从所述客户端设备的主机文件系统接收快照创建请求后,生成每个I/O事务的序号并分配给各自的I/O事务。
27.根据权利要求24所述的第一存储设备,其特征在于,如果在所述第一存储设备的所述源文件系统中接收的I/O事务的数量减少到低于阈值,所述第一存储控制器用于:
确定与所述源文件系统中未定的快照创建请求相关联的等待时间;以及
在所述等待时间过去后,在接收到所述未来I/O事务之前发起创建与所述快照创建请求相关联的快照。
28.根据权利要求24所述的第一存储设备,其特征在于,包括:
发送单元,用于将所述确定的未来I/O事务标记传送至所述第二存储设备,以使所述第二存储设备的所述目标文件系统创建与在所述第二存储设备的所述目标文件系统接收的快照创建请求相关联的快照。
29.根据权利要求28所述的第一存储设备,其特征在于,所述发送单元用于通过在所述第二存储设备的所述目标文件系统中接收所述第一存储设备的所述源文件系统发送的复制I/O事务中补充指示所述未来I/O事务标记的信息,将所述未来I/O事务传送至所述第二存储设备。
30.根据权利要求29所述的第一存储设备,其特征在于,所述复制I/O事务对应在所述第一存储设备的源文件系统中快照创建请求后接收的后续I/O事务。
31.根据权利要求28所述的第一存储设备,其特征在于,所述发送单元用于通过发送所述第一存储设备的表格至所述第二存储设备,将所述确定的未来I/O事务标记传送至所述第二存储设备,其中,所述表格至少包括所述未来I/O事务标记和所述快照创建请求对应的时间戳,所述表格在所述第一存储设备的所述源文件系统中接收到多个快照创建请求时发送。
32.根据权利要求31所述的第一存储设备,其特征在于,所述表格包括多个未来I/O事务标记和对应的时间戳,所述多个未来I/O事务标记中的每个未来I/O事务标记和对应的时间戳与在所述第一存储设备的所述源文件系统中接收的多个快照创建请求中的一个相关联。
33.根据权利要求28所述的第一存储设备,其特征在于,与在所述第二存储设备的所述目标文件系统中从所述第一存储设备的所述源文件系统接收的所述快照创建请求相关联的快照的创建与在所述第一存储设备的所述源文件系统中的快照的创建异步。
34.根据权利要求33所述的第一存储设备,其特征在于,包括:
接收单元,用于从所述第二存储设备接收递送延迟消息,其中,所述递送延迟消息与在所述第二存储设备中接收所述未来I/O事务标记的延迟相关联,其中:
所述第一存储控制器用于在从所述第二存储设备接收递送延迟消息时,重新确定未来I/O事务标记。
35.根据权利要求24所述的第一存储设备,其特征在于,在所述主缓存中缓存的一个或多个I/O事务构成创建的快照的一部分,在所述辅助缓存中缓存的一个或多个I/O事务构成在所述源文件系统中接收对应的后续快照创建请求时创建的任何后续快照的一部分。
36.根据权利要求24所述的第一存储设备,其特征在于,所述第一存储控制器用于在创建快照时处理所述辅助缓存中缓存的I/O事务。
37.一种第二存储设备,其存储有与第一存储设备的源文件系统具有同步复制关系的目标文件系统,所述第一存储设备和所述第二存储设备在通信网络中相互通信,所述第二存储设备包括:
第二存储控制器;
主缓存和辅助缓存;
所述第二存储控制器用于:
从所述第一存储设备中接收未来输入/输出(input/output,简称I/O)事务标记,其中,所述未来I/O事务在所述第一存储设备中基于所述源文件系统和所述目标文件系统确认的成功I/O事务的吞吐量确定,其中:
所述未来I/O事务标记指示未来I/O事务的序号;以及
在所述主缓存中成功缓存所述未来I/O事务时,创建与所述目标文件系统中未定的快照创建请求相关联的快照,其中:
在所述快照创建期间,在所述未来I/O事务之后接收的I/O事务被缓存在所述第二存储设备的辅助缓存中。
38.根据权利要求37所述的第二存储设备,其特征在于,所述第二存储控制器用于:在所述第一存储设备的所述源文件系统中接收的I/O事务的数量减少到低于阈值时,从所述第一存储设备接收与所述目标文件系统中未定的快照创建请求相关联的等待时间,所述第二存储控制器还用于在所述等待时间过去后,在接收到所述未来I/O事务之前发起创建快照。
39.根据权利要求37所述的第二存储设备,其特征在于,包括:
接收单元,用于从所述第一存储设备的所述源文件系统接收复制I/O事务,其中:
所述复制I/O事务对应在所述第一存储设备的源文件系统中快照创建请求后接收的后续I/O事务;
所述接收单元还用于从所述第一存储设备接收所述未来I/O事务标记,其中:
所述未来I/O事务标记以在所述复制I/O事务中补充指示所述未来I/O事务标记的信息的形式接收。
40.根据权利要求39所述的第二存储设备,其特征在于,所述接收单元用于在所述第二存储设备中接收从所述第一存储设备发送的表格,其中,所述表格至少包括所述未来I/O事务标记和所述快照创建请求对应的时间戳,所述表格在所述第一存储设备的所述源文件系统接收到多个快照创建请求时发送。
41.根据权利要求40所述的第二存储设备,其特征在于,所述表格包括多个未来I/O事务标记和对应的时间戳,所述多个未来I/O事务标记中的每个未来I/O事务标记和对应的时间戳与在所述第一存储设备的所述源文件系统中接收的多个快照创建请求中的一个相关联。
42.根据权利要求37所述的第二存储设备,其特征在于,与在所述第二存储设备的所述目标文件系统中从所述第一存储设备的所述源文件系统接收的所述快照创建请求相关联的快照的创建与在所述第一存储设备的所述源文件系统中的快照的创建异步。
43.根据权利要求37所述的第二存储设备,其特征在于,包括:
发送单元,用于将递送延迟消息传送至所述第一存储设备,其中,所述递送延迟消息与在所述第二存储设备中接收所述未来I/O事务标记的延迟相关联。
44.根据权利要求37所述的第二存储设备,其特征在于,在所述主缓存中缓存的一个或多个I/O事务构成创建的快照的一部分,在所述辅助缓存中缓存的一个或多个I/O事务构成在所述目标文件系统中接收对应的后续快照创建请求时创建的任何后续快照的一部分。
45.根据权利要求37所述的第二存储设备,其特征在于,所述第二存储控制器用于在创建快照时处理所述辅助缓存中缓存的I/O事务。
46.根据权利要求45所述的第二存储设备,其特征在于,包括发送单元,用于在所述目标文件系统中成功创建快照时,将处理所述辅助缓存中缓存的I/O事务的确认传送至所述第一存储设备。
CN201980065309.XA 2018-10-01 2019-09-25 处理快照创建请求的方法以及存储设备 Active CN112805949B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
IN201831037119 2018-10-01
IN201831037119 2018-10-01
PCT/CN2019/107808 WO2020069654A1 (en) 2018-10-01 2019-09-25 Method of handling snapshot creation request and storage device thereof

Publications (2)

Publication Number Publication Date
CN112805949A CN112805949A (zh) 2021-05-14
CN112805949B true CN112805949B (zh) 2022-08-09

Family

ID=70054942

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201980065309.XA Active CN112805949B (zh) 2018-10-01 2019-09-25 处理快照创建请求的方法以及存储设备

Country Status (2)

Country Link
CN (1) CN112805949B (zh)
WO (1) WO2020069654A1 (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113868027B (zh) * 2021-12-01 2022-12-23 云和恩墨(北京)信息技术有限公司 数据快照方法及装置

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107046811A (zh) * 2015-12-03 2017-08-15 华为技术有限公司 一种源存储设备发送源文件和源文件的克隆文件至备份存储设备的方法、源存储设备以及备份存储设备
US10042719B1 (en) * 2015-09-22 2018-08-07 EMC IP Holding Company LLC Optimizing application data backup in SMB

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7206911B2 (en) * 2004-02-25 2007-04-17 International Business Machines Corporation Method, system, and program for a system architecture for an arbitrary number of backup components
US7165131B2 (en) * 2004-04-27 2007-01-16 Intel Corporation Separating transactions into different virtual channels
US20070300013A1 (en) * 2006-06-21 2007-12-27 Manabu Kitamura Storage system having transaction monitoring capability
WO2011043769A1 (en) * 2009-10-07 2011-04-14 Hewlett-Packard Development Company, L.P. Notification protocol based endpoint caching of host memory
US20110252208A1 (en) * 2010-04-12 2011-10-13 Microsoft Corporation Express-full backup of a cluster shared virtual machine
US10430298B2 (en) * 2010-10-28 2019-10-01 Microsoft Technology Licensing, Llc Versatile in-memory database recovery using logical log records
CN102073462B (zh) * 2010-11-29 2013-04-17 华为技术有限公司 虚拟存储迁移方法、系统和虚拟机监控器
CN104216806B (zh) * 2014-07-24 2016-04-06 上海英方软件股份有限公司 一种文件系统序列化操作日志的捕获与传输方法及其装置
US9912748B2 (en) * 2015-01-12 2018-03-06 Strato Scale Ltd. Synchronization of snapshots in a distributed storage system
US9928003B2 (en) * 2015-05-01 2018-03-27 Hewlett Packard Enterprise Development Lp Management of writable snapshots in a network storage device
CN104866245B (zh) * 2015-06-03 2018-09-14 马鞍山创久科技股份有限公司 缓存设备和存储系统之间同步快照的方法和装置
US10001933B1 (en) * 2015-06-23 2018-06-19 Amazon Technologies, Inc. Offload pipeline for data copying
US9740566B2 (en) * 2015-07-31 2017-08-22 Netapp, Inc. Snapshot creation workflow
US20170068469A1 (en) * 2015-09-03 2017-03-09 Microsoft Technology Licensing, Llc Remote Shared Virtual Disk Snapshot Creation

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10042719B1 (en) * 2015-09-22 2018-08-07 EMC IP Holding Company LLC Optimizing application data backup in SMB
CN107046811A (zh) * 2015-12-03 2017-08-15 华为技术有限公司 一种源存储设备发送源文件和源文件的克隆文件至备份存储设备的方法、源存储设备以及备份存储设备

Also Published As

Publication number Publication date
CN112805949A (zh) 2021-05-14
WO2020069654A1 (en) 2020-04-09

Similar Documents

Publication Publication Date Title
EP3830681B1 (en) Synchronous replication based cutover engine
US10437509B1 (en) Creating consistent snapshots on synchronously replicated storage resources
US11461280B2 (en) Handling metadata operations and timestamp changes during resynchronization
US11068350B2 (en) Reconciliation in sync replication
US10496296B2 (en) Low overhead resynchronization snapshot creation and utilization
US11138061B2 (en) Method and apparatus to neutralize replication error and retain primary and secondary synchronization during synchronous replication
US8738813B1 (en) Method and apparatus for round trip synchronous replication using SCSI reads
US8788768B2 (en) Maintaining mirror and storage system copies of volumes at multiple remote sites
US10761768B1 (en) Method to address misaligned holes and writes to end of files while performing quick reconcile operation during synchronous filesystem replication
US9081842B1 (en) Synchronous and asymmetric asynchronous active-active-active data access
US9244997B1 (en) Asymmetric active-active access of asynchronously-protected data storage
US10223007B1 (en) Predicting IO
US10621058B2 (en) Moving a consistency group having a replication relationship
US11157177B2 (en) Hiccup-less failback and journal recovery in an active-active storage system
US9639295B1 (en) Method and apparatus for reducing splitter latency using parallel splitting
US10917469B2 (en) Read performance enhancement by enabling read from secondary in highly available cluster setup
US12105983B2 (en) Resilient implementation of client file operations and replication
CN112805949B (zh) 处理快照创建请求的方法以及存储设备
CN112955873B (zh) 用于同步镜像文件系统的方法及其存储设备
CN116339609A (zh) 一种数据处理方法以及存储设备
US12105982B1 (en) Techniques for optimized data resynchronization between replication sites
US20240264908A1 (en) Storage resource resynchronization using pending io requests

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