CN108496153A - 同步复制关系的非破坏性基线和再同步 - Google Patents

同步复制关系的非破坏性基线和再同步 Download PDF

Info

Publication number
CN108496153A
CN108496153A CN201680079806.1A CN201680079806A CN108496153A CN 108496153 A CN108496153 A CN 108496153A CN 201680079806 A CN201680079806 A CN 201680079806A CN 108496153 A CN108496153 A CN 108496153A
Authority
CN
China
Prior art keywords
master file
write request
dirty
secondary volume
client write
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
CN201680079806.1A
Other languages
English (en)
Other versions
CN108496153B (zh
Inventor
R·K·谢蒂
A·E·邓恩
杨艺
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.)
NetApp Inc
Original Assignee
NetApp Inc
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 NetApp Inc filed Critical NetApp Inc
Publication of CN108496153A publication Critical patent/CN108496153A/zh
Application granted granted Critical
Publication of CN108496153B publication Critical patent/CN108496153B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • G06F16/275Synchronous replication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1448Management of the data involved in backup or backup restore
    • G06F11/1451Management of the data involved in backup or backup restore by selection of backup contents
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/21Design, administration or maintenance of databases
    • G06F16/214Database migration support
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • G06F16/273Asynchronous replication or reconciliation
    • 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/0617Improving the reliability of storage systems in relation to availability
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/065Replication mechanisms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
    • 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
    • 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

Abstract

提供一种或多种技术和/或计算设备用于非破坏性地建立主卷和辅助卷之间的同步复制关系和/或用于再同步主卷和辅助卷。例如,主卷的基线快照和一个或多个增量快照用于使用来自主卷的数据构造和增量更新辅助卷。脏区域日志用于跟踪对主卷的修改。分割器对象用于将客户端写入请求分割到主卷和辅助卷。发起同步传送引擎会话以使用脏区域日志处理传入客户端写入请求。转换扫描器用于将脏数据从主卷传送到辅助卷。这样,在主卷和辅助卷之间建立同步复制关系。

Description

同步复制关系的非破坏性基线和再同步
相关申请
本申请要求于2015年11月27日提交的题为“同步复制关系的非破坏性基线和再同步”的美国非临时专利申请号14/953,070的优先权,其通过引用并入本文。
背景技术
许多存储网络可以实现数据复制和/或其他冗余数据访问技术,用于数据丢失保护和非破坏性客户端访问。例如,第一存储集群可以包括第一存储控制器,其被配置为向客户端提供对存储在第一存储设备和/或其他存储设备内的数据的主要访问。第二存储集群可以包括第二存储控制器,其被配置为向客户端提供对存储在第二存储设备和/或其他存储设备内的数据的主访问。可以根据灾难恢复关系来配置第一存储控制器和第二存储控制器,使得第二存储控制器可以提供对从第一存储设备复制到辅助存储设备的复制数据的故障转移访问,该辅助存储设备由第一存储设备拥有,但是可由第二存储控制器访问(例如,可以执行切换操作,其中第二存储控制器取得先前由第一存储控制器拥有的辅助存储设备和/或其他存储设备的所有权,使得第二存储控制器可以向客户端提供对这些存储设备内的复制数据的故障转移访问)。
在示例中,第二存储集群可以位于到第一存储集群的远程站点处(例如,存储集群可以位于不同的建筑物、城市、彼此相距数千公里等)。因此,如果在存储集群的站点处发生灾难,则幸存的存储集群可以保持不受灾难的影响(例如,托管第一存储集群的建筑物的停电可能不会影响不同城市中的托管第二存储集群的第二建筑物)。
在示例中,可以根据高可用性配置来配置存储集群内的两个存储控制器,诸如在两个存储控制器在本地彼此连接和/或连接到相同的存储设备的情况下。这样,当存储控制器发生故障时,由于本地连接,高可用性伙伴存储控制器可以快速接管故障存储控制器。因此,高可用性伙伴存储控制器可以向客户端提供对先前可通过故障存储控制器访问的数据的访问。
各种复制和同步技术可以用于复制数据(例如,客户端数据)、配置数据(例如,卷的大小、卷的名称等)和/或写入存储控制器和/或存储设备之间的高速缓存数据(例如,高速缓存写入操作)。在示例中,(例如,第一存储设备内的)主卷的快照可以用于将主卷复制到(例如,辅助存储设备内的)辅助卷。例如,主卷的基本快照可用于最初创建辅助卷。主卷的当前增量快照可以用于复制自基本快照以来或自上次增量快照以来对主卷所做的改变。遗憾的是,同步和/或再同步主卷和辅助卷可能会破坏对主卷的客户端访问。例如,在同步的转换阶段期间可能拒绝对主卷的客户端写入请求,因此增加了延迟和客户端数据访问破坏。
附图说明
图1是图示了根据本文中所阐述的一个或多个规定的示例集群网络的组件框图。
图2是图示了根据本文中所阐述的一个或多个规定的示例数据存储系统的组件框图。
图3是图示了非破坏性地建立同步复制关系的示例性方法的流程图。
图4A是图示了用于非破坏性地建立同步复制关系的示例性计算设备的组件框图,其中执行基线传送。
图4B是图示了用于非破坏性地建立同步复制关系的示例性计算设备的组件框图,其中执行一个或多个增量传送。
图4C是图示了用于非破坏性地建立同步复制关系的示例性计算设备的组件框图,其中建立脏区域日志和分割器对象。
图4D是图示了用于非破坏性地建立同步复制关系的示例性计算设备的组件框图,其中处理客户端写入请求。
图4E是图示了用于非破坏性地建立同步复制关系的示例性计算设备的组件框图,其中处理传入客户端写入请求。
图4F是图示了用于非破坏性地建立同步复制关系的示例性计算设备的组件框图,其中处理传入客户端写入请求。
图4G是图示了用于非破坏性地建立同步复制关系的示例性计算设备的组件框图,其中转换扫描器执行脏区域传送。
图4H是图示了用于非破坏性地建立同步复制关系的示例性计算设备的组件框图,其中建立同步复制关系。
图5是根据本文中所阐述的一个或多个规定的计算机可读介质的示例。
具体实施方式
现在参考附图对所要求保护的主题的一些示例进行描述,其中相同的附图标记通常用于始终是指相同的元件。在以下描述中,出于解释的目的,阐述了许多具体细节,以便提供对所要求保护的主题的理解。然而,显而易见的是,可以在没有这些具体细节的情况下实践所要求保护的主题。该具体实施方式中的任何内容均不被认为是现有技术。
本文中提供了用于非破坏性地建立主卷和辅助卷之间的同步复制关系和/或用于再同步主卷和辅助卷的一种或多种技术和/或计算设备。例如,可以初始地在主卷(例如,用于主动存储客户端数据以供访问)和辅助卷(例如,用作备份以存储来自主卷的复制客户端数据)之间以非破坏性的方式建立同步复制关系,而对主卷几乎没有客户端数据访问破坏。如果主卷和辅助卷随时间变得不同步(例如,由于网络问题、存储控制器故障等),则可以以非破坏性的方式再同步主卷和辅助卷。
为了提供用于非破坏性地建立和/或再同步同步复制关系的上下文,图1图示了集群网络环境100或网络存储环境的实施例。然而,可以理解,本文中所描述的技术等可以在集群网络环境100、非集群网络环境和/或多种其他计算环境(诸如桌面计算环境)内实现。也就是说,包括所附权利要求的范围的本公开内容并不意指限于本文中所提供的示例。可以理解,相同或相似的组件、元件、特征、项、模块等在后面的附图中进行了图示,但是先前关于先前附图进行了讨论,当描述后续附图时,可以省略对相同组件、元件、特征、项、模块等的相似(例如,冗余)讨论(例如,为了简便和易于理解)。
图1是图示了可以实现本文中所描述的技术和/或系统的至少一些实施例的集群网络环境100的框图。集群网络环境100包括通过集群结构106耦合的数据存储系统102和104,诸如被体现为私有无线带宽、光纤通道(FC)或以太网网络的计算网络,其支持数据存储系统102和104(以及其中的一个或多个模块、组件等,诸如例如,节点116和118)之间的通信。可以理解,虽然图1中图示了两个数据存储系统102和104以及两个节点116和118,但是可以设想任何合适数目的这种组件。在示例中,节点116,118包括存储控制器(例如,节点116可以包括主存储控制器或本地存储控制器,节点118可以包括辅助存储控制器或远程存储控制器),其向客户端设备(诸如主机设备108,110)提供对数据存储设备128,130中存储的数据的访问。相似地,除非本文中另外特别提供,否则对于本文中所引用和/或在附图中所图示的其他模块、元件、特征、项等也是如此。也就是说,本文中所公开的特定数目的组件、模块、元件、特征、项等不意指以限制方式进行解释。
可以进一步理解,集群网络不限于任何特定地理区域,并且可以本地和/或远程集群。因此,在一个实施例中,集群网络可以分布在位于多个地理位置中的多个存储系统和/或节点上;而在另一实施例中,集群网络可以包括驻留在相同地理位置中(例如,数据存储设备的单个现场机架中)的数据存储系统(例如,102,104)。
在所图示的示例中,一个或多个主机设备108,110通过存储网络连接112,114耦合到相应的数据存储系统102,104,一个或多个主机设备108,110可以包括例如客户端设备、个人计算机(PC)、用于存储的计算设备(例如,存储服务器)、以及其他计算机或外围设备(例如,打印机)。网络连接可以包括局域网(LAN)或广域网(WAN),其例如利用网络附加存储(NAS)协议(诸如通用因特网文件系统(CIFS)协议或网络文件系统(NFS)协议)来交换数据分组。说明性地,主机设备108,110可以是运行应用的通用计算机,并且可以使用客户端/服务器模型与数据存储系统102,104交互以交换信息。也就是说,主机设备可以从数据存储系统请求数据(例如,由被配置为处理由主机设备针对存储设备发出的I/O命令的网络存储控件所管理的存储设备上的数据),并且数据存储系统可以经由一个或多个存储网络连接112,114将请求的结果返回给主机设备。
例如,集群数据存储系统102,104上的节点116,118可以包括互连为集群以诸如向具有远程位置、云存储装置(例如,存储端点可以存储在数据云内)等的企业提供数据存储和管理服务的网络或主机节点。例如,集群网络环境100中的这种节点可以是附接到网络作为连接点、再分配点或通信端点的设备。节点能够通过网络通信信道发送、接收和/或转发信息,并且可以包括满足任何或所有这些准则的任何设备。节点的一个示例可以是附接到网络的数据存储和管理服务器,其中服务器可以包括通用计算机或计算设备,其被特别配置为作为数据存储和管理系统中的服务器操作。
在示例中,诸如节点116,118的第一节点集群(例如,第一组存储控制器,其被配置为提供对包括一个或多个存储设备的第一逻辑分组的第一存储集合的访问)可以位于第一存储站点上。未图示的第二节点集群(例如,第二组存储控制器,其被配置为提供对包括一个或多个存储设备的第二逻辑分组的第二存储集合的访问)可以位于第二存储站点处。可以根据灾难恢复配置来配置第一节点集群和第二节点集群,其中在包括灾难节点集群的灾难存储站点处发生灾难的情况下,幸存的节点集群提供对该灾难节点集群的存储设备的切换访问(例如,在第二存储站点处发生灾难的情况下,第一节点集群向客户端设备提供对第二存储集合的存储设备的切换数据访问)。
如集群网络环境100中所图示的,节点116,118可以包括协调以为集群提供分布式存储体系架构的各种功能组件。例如,节点可以包括网络模块120,122和数据模块124,126。网络模块120,122可以被配置为允许节点116,118(例如,网络存储控制器)通过存储网络连接112,114与主机设备108,110连接,例如,允许主机设备108,110访问存储在分布式存储系统中的数据。进一步地,网络模块120,122可以通过集群结构106提供与一个或多个其他组件的连接。例如,在图1中,节点116的网络模块120可以通过第二节点118的数据模块126通过发送请求来访问第二数据存储设备130。
数据模块124,126可以被配置为将一个或多个数据存储设备128,130(诸如磁盘或磁盘阵列、闪存或一些其他形式的数据存储装置)连接到节点116,118。节点116,118可以由集群结构106互连,例如,允许集群中的相应节点访问连接到集群中的不同节点的数据存储设备128,130上的数据。例如,通常,数据模块124,126根据存储区域网络(SAN)协议(诸如小型计算机系统接口(SCSI)或光纤通道协议(FCP))与数据存储设备128,130通信。因此,如从节点116,118上的操作系统所看到的,数据存储设备128,130可以表现为本地附接到操作系统。以这种方式,不同的节点116,118等可以通过操作系统访问数据块,而不是明确地请求抽象文件。
可以理解,虽然集群网络环境100图示了相同数目的网络和数据模块,但是其他实施例可以包括不同数目的这些模块。例如,可能存在在集群中互连的多个网络和数据模块,其在网络和数据模块之间不具有一对一的对应关系。也就是说,不同的节点可以具有不同数目的网络和数据模块,并且相同节点可以具有数目与数据模块不同的网络模块。
进一步地,主机设备108,110可以通过存储网络连接112,114与集群中的节点116,118联网。作为示例,联网到集群的相应主机设备108,110可以请求集群中的节点116,118的服务(例如,交换数据分组形式的信息),并且节点116,118可以将所请求的服务的结果返回到主机设备108,110。在一个实施例中,主机设备108,110可以与驻留在数据存储系统102,104中的节点116,118(例如,网络主机)中的网络模块120,122交换信息。
在一个实施例中,例如,数据存储设备128,130包括卷132,其是将信息存储到磁盘驱动器或磁盘阵列或作为数据的文件系统的其他存储装置(例如,闪存)上的实现方式。例如,卷可以跨越磁盘的一部分、磁盘的集合、或磁盘的各部分,并且通常定义存储系统中的磁盘空间上的文件存储的整体逻辑布置。在一个实施例中,卷可以包括存储的数据作为驻留在卷内的分层目录结构中的一个或多个文件。
通常以可以与特定存储系统相关联的格式来配置卷,并且相应的卷格式通常包括向卷提供功能(诸如提供卷形成集群的能力)的特征。例如,在第一存储系统可以将第一格式用于其卷的情况下,第二存储系统可以将第二格式用于其卷。
在集群网络环境100中,主机设备108,110可以利用数据存储系统102,104来存储和取回来自卷132的数据。在该实施例中,例如,主机设备108可以向数据存储系统102内的节点116中的网络模块120发送数据分组。节点116可以使用数据模块124将数据转发到数据存储设备128,其中数据存储设备128包括卷132A。这样,在该示例中,主机设备可以使用由网络连接112连接的数据存储系统102来访问卷132A,以存储和/或取回数据。进一步地,在该实施例中,主机设备110可以与数据存储系统104(例如,其可以远离数据存储系统102)内的主机118中的网络模块122交换数据。主机118可以使用数据模块126将数据转发到数据存储设备130,从而访问与数据存储设备130相关联的卷132B。
可以理解,可以在集群网络环境100内实现非破坏性地建立和/或再同步同步复制关系。在示例中,关于对卷132A和/或卷132B的客户端数据访问,可以在节点116(例如,第一存储控制器)的卷132A和节点118(例如,第二存储控制器)的卷132B之间以非破坏的方式建立同步复制关系。如果卷132A和卷132B变得不同步,则可以以非破坏的方式再同步卷132A和卷132B。可以理解,非破坏性地建立和/或再同步同步复制关系可以针对和/或在任何类型的计算环境之间实现,并且可以在物理设备(例如,节点116、节点118等)和/或云计算环境(例如,在集群网络环境100远程)之间转移。
图2是数据存储系统200(例如,图1中的102,104)的说明性示例,其提供了可以实现本文中所描述的技术和/或系统中的一个或多个的组件的实施例的进一步细节。数据存储系统200包括节点202(例如,图1中的主机节点116,118)和数据存储设备234(例如,图1中的数据存储设备128,130)。节点202可以是例如通用计算机,或者特别配置为作为存储服务器操作的一些其他计算设备。主机设备205(例如,图1中的108,110)可以通过网络216连接到节点202,例如,以提供对存储在数据存储设备234上的文件和/或其他数据的访问。在示例中,节点202包括存储控制器,其向客户端设备(诸如主机设备205)提供对存储在数据存储设备234内的数据的访问。
数据存储设备234可以包括大容量存储设备,诸如磁盘阵列218,220,222的磁盘224,226,228。可以理解,本文中所描述的技术和系统不受示例实施例的限制。例如,磁盘224,226,228可以包括任何类型的大容量存储设备,其包括但不限于磁盘驱动器、闪存、以及适于存储信息的任何其他相似介质,其包括例如数据(D)和/或奇偶性(P)信息。
节点202包括由系统总线242互连的一个或多个处理器204、存储器206、网络适配器210、集群访问适配器212和存储适配器214。数据存储系统200还包括安装在节点202的存储器206中的操作系统208,其可以例如实现独立(或廉价)磁盘冗余阵列(RAID)优化技术,以优化阵列中故障磁盘的数据的重建过程。
操作系统208还可以管理用于数据存储系统的通信,以及可以在诸如附接到集群结构215(例如,图1中的106)的集群网络中的其他数据存储系统之间的通信。因此,节点202(诸如网络存储控制器)可以响应主机设备请求以根据这些主机设备请求管理数据存储设备234(例如,或附加集群设备)上的数据。操作系统208通常可以在数据存储系统200上建立一个或多个文件系统,其中文件系统可以包括例如实现文件和目录的持久分层命名空间的软件代码和数据结构。作为示例,当新数据存储设备(未示出)被添加到集群网络系统时,操作系统208被通知在现有目录树中的何处要存储与新数据存储设备相关联的新文件。这通常被称为“挂载”文件系统。
在示例数据存储系统200中,存储器206可以包括可由处理器204和网络适配器210,212,214寻址的存储位置,用于存储相关的软件应用代码和数据结构。处理器204和网络适配器210,212,214可以例如包括处理元件和/或逻辑电路,其被配置为执行软件代码并操纵数据结构。操作系统208(其部分通常驻留在存储器206中并由处理元件执行)通过尤其是调用支持由存储系统实现的文件服务的存储操作来在功能上组织存储系统。对于本领域技术人员而言,显而易见的是,包括各种计算机可读介质的其他处理和存储器机制可以用于存储和/或执行与本文中所描述的技术有关的应用指令。例如,操作系统还可以利用一个或多个控制文件(未示出)来帮助提供虚拟机。
网络适配器210包括通过网络216将数据存储系统200连接到主机设备205所需的机械、电气和信令电路,其可以包括尤其是点对点连接或者共享介质,诸如局域网。主机设备205(例如,图1的108,110)可以是被配置为执行应用的通用计算机。如上文所描述的,主机设备205可以根据信息传递的客户端/主机模型与数据存储系统200交互。
存储适配器214与在节点202上执行的操作系统208协作以访问主机设备205请求的信息(例如,访问由网络存储控制器管理的存储设备上的数据)。该信息可以存储在任何类型的附接可写介质阵列(诸如磁盘驱动器、闪存和/或适于存储信息的任何其他相似介质)上。在示例数据存储系统200中,信息可以存储在磁盘224,226,228上的数据块中。存储适配器214可以包括输入/输出(I/O)接口电路,其通过I/O互连布置(诸如存储区域网络(SAN)协议(例如,小型计算机系统接口(SCSI)、iSCSI、hyperSCSI、光纤通道协议(FCP)))耦合到磁盘。该信息由存储适配器214取回,并且如果必要的话,在通过系统总线242转发到网络适配器210(和/或如果发送到集群中的另一节点,则为集群访问适配器214)之前由一个或多个处理器204(或存储适配器212本身)处理,其中信息被格式化为数据分组并通过网络216返回到主机设备205(和/或通过集群结构215返回到附接到集群的另一节点)。
在一个实施例中,磁盘阵列218,220,222上的信息的存储可以被实现为一个或多个存储卷230,232,其包括定义磁盘空间的整体逻辑布置的磁盘集群224,226,228。包括一个或多个卷的磁盘224,226,228通常被组织为一个或多个RAID分组。作为示例,卷230包括磁盘阵列218和220的集合,其包括磁盘集群224和226。
在一个实施例中,为了支持访问磁盘224,226,228,操作系统208可以实现文件系统(例如,随处写入文件系统),该文件系统在逻辑上将信息组织为磁盘上的目录和文件的分层结构。在该实施例中,相应文件可以被实现为被配置为存储信息的一组磁盘块,而目录可以被实现为其中存储关于其他文件和目录的信息的特殊格式的文件。
无论该数据存储系统200内的基础物理配置如何,数据都可以作为文件存储在物理和/或虚拟卷中,其可以与相应的卷标识符相关联,诸如文件系统标识符(FSID),其长度在一个示例中可以为32位。
物理卷与其地址、可寻址空间、位置等不改变的物理存储设备的至少一部分相对应,诸如一个或多个数据存储设备234中的至少一些(例如,独立(或廉价)磁盘冗余阵列(RAID系统))。通常,物理卷的位置不会改变,因为用于访问它的(多个)地址(范围)通常保持恒定。
相反,虚拟卷存储在不同物理存储设备的相异部分的集合上。虚拟卷可以是不同物理存储设备位置的不同可用部分的集合,诸如来自磁盘224,226和/或228中的每个磁盘的一些可用空间。可以理解,由于虚拟卷没有“捆绑”到任何一个特定存储设备,所以可以说虚拟卷包括抽象或虚拟化层,其允许在某些方面调整其大小和/或是灵活的。
进一步地,虚拟卷可以包括一个或多个逻辑单元号(LUN)238、目录236、Qtree 235和文件240。除此之外,这些特征,但更具体地说LUN,允许例如标识相异存储器位置并且将其分组为数据存储单元,在这些相异存储器位置内存储数据。如此,LUN 238可以被表征为构成集合内的虚拟磁盘或驱动器,虚拟卷内的数据存储在该虚拟磁盘或驱动器上。例如,LUN通常被称为虚拟驱动器,使得它们模仿来自通用计算机的硬盘驱动器,而它们实际上包括存储在卷的各个部分中的数据块。
在一个实施例中,一个或多个数据存储设备234可以具有一个或多个物理端口,其中每个物理端口可以被指派目标地址(例如,SCSI目标地址)。为了表示存储在数据存储设备上的相应卷,数据存储设备上的目标地址可以用于标识一个或多个LUN 238。因此,例如,当节点202通过存储适配器214连接到卷230,232时,创建节点202与该卷下面的一个或多个LUN 238之间的连接。
在一个实施例中,相应目标地址可以标识多个LUN,使得目标地址可以表示多个卷。例如,I/O接口(其可以被实现为存储适配器214中的电路和/或软件,或者实现为驻留在存储器206中并由处理器204执行的可执行代码)可以通过使用标识一个或多个LUN 238的一个或多个地址连接到卷230。
可以理解,可以为数据存储系统200实现非破坏性地建立和/或再同步同步复制关系。在示例中,关于对卷230的客户端数据访问,可以在节点202(例如,第一存储控制器)的卷230和第二节点(例如,第二存储控制器)的第二卷之间以非破坏的方式建立同步复制关系。如果卷230和第二卷变得不同步,则可以以无破坏的方式再同步卷230和第二卷。可以理解,可以针对任何类型的计算环境和/或在任何类型的计算环境之间实现非破坏性地建立和/或再同步同步复制关系,并且可以在物理设备(例如,节点202、主机设备205等)和/或云计算环境(例如,在节点202和/或主机设备205远程)之间转移。
通过图3的示例性方法300图示了非破坏性地建立和/或再同步同步复制关系的一个实施例。在示例中,可以在托管主卷的第一存储控制器和第二存储控制器之间建立同步复制关系。可以理解,可以针对主卷内的文件、主卷内的LUN、一个或多个文件或LUN的一致性分组、跨越任意数目的主卷的一致性分组、主卷内的子目录、和/或任何其他数据分组建立同步复制关系,并且本文中所描述的技术不是仅限于单个主卷和辅助卷,而是可以应用于任意数目的文件、LUN、卷和/或一致性分组。可以以非破坏的方式建立同步复制关系,使得可以在建立同步复制关系期间支持对主卷的客户端访问。因而,可以创建主卷的基本快照。基本快照可以包括主卷内的数据的时间点表示,诸如文件和/或存储对象的一致性分组内的数据。在302处,可以使用基本快照来执行数据从主卷到第二存储控制器的基线传送,以创建第二存储控制器可访问的辅助卷。
在304处,可以在主卷和辅助卷之间执行一个或多个增量传送,直到满足同步准则(例如,和/或其中针对跨越多个主卷的一致性分组存在同步复制关系的其他主卷和/或辅助卷)。例如,同步准则可以与阈值数目的增量传送相对应,或者最终增量传送传送低于阈值的数据量的情况下(例如,大约10mb或指示主卷和辅助卷具有相对少量分歧的任何其他值)。在示例中,可以创建主卷的增量快照。增量快照可以与在创建基本快照之后的时间处的主快照内的数据的时间点表示相对应。主卷的增量快照与先前快照(例如,用于执行基线传送或最终增量传送的快照)之间的差异可以用于执行数据的增量传送(例如,创建先前快照时和创建增量快照时的主卷内的数据的差异)。例如,可以执行先前快照和增量快照之间不同的数据块的块级增量传送。响应于增量传送完成,可以从辅助卷创建公共快照。例如,公共快照可以用于将辅助卷回滚到辅助卷镜像主卷时的状态,诸如用于在主卷和辅助卷之间执行再同步。
在306处,可以(例如,在存储器中)初始化脏区域日志以跟踪主卷内的文件或LUN的修改(例如,和/或其中针对跨越多个主卷的一致性分组存在同步复制关系的其他主卷)(例如,跟踪已经写入主卷但尚未复制到辅助卷的脏数据)。例如,针对文件或LUN的脏区域日志可以包括可以位,其可以被设置为指示文件的区域是否已经被尚未复制到辅助卷的客户端写入请求修改。例如,可以接收目标为文件或LUN的区域的客户端写入请求。可以在该区域上实现客户端写入请求(例如,将客户端数据写入该区域中)。响应于客户端写入请求的成功实现,脏区域日志内的位可以被设置为指示该区域是包括脏数据的脏区域。一旦客户端写入请求和/或脏数据已经成功复制到辅助卷,就可以重置该位。
在308处,针对端点的分割器对象(诸如文件或LUN)可以被配置为随后将客户端写入请求(例如,在312处)分割到主卷(例如,和/或其中对于跨越多个主卷的一致性分组存在同步复制关系的其他主卷和/或辅助卷)和辅助卷(例如,创建分割器对象并将其与针对文件或LUN的脏区域日志相关联)。例如,分割器对象可以随后用来拦截客户端写入请求并且将其分割为复制客户端写入请求(例如,在文件系统接收客户端写入请求之前),使得客户端写入请求可以通过第一存储控制器在主卷上本地实现并且复制客户端写入请求可以通过第二存储控制器在辅助卷上远程实现。此时,分割器对象开始使用脏区域日志跟踪脏区域。
在310处,响应于脏区域日志跟踪对主卷的修改(例如,将由客户端写入请求修改的区域标记为脏区域),可以执行从主卷到辅助卷的异步传送(例如,最终增量传送)。
在312处,可以在主卷和辅助卷(例如,和/或其中针对跨越多个主卷的一致性分组存在同步复制关系的其他主卷和/或辅助卷)之间发起同步传送引擎会话,使得传送引擎基于脏区域日志内的数据将传入客户端写入请求复制到辅助卷。例如,响应于目标为主卷内的文件或LUN的脏区域的传入客户端写入请求(例如,脏区域日志内的位可以指示脏区域已经被修改并且修改尚未被复制到辅助卷),传入客户端写入请求可以被提交给主卷而不被分割以复制到辅助卷,因为脏区域随后将被转换扫描器复制到辅助卷。响应于与非脏区域相对应的传入客户端写入请求,传入客户端写入请求可以本地提交给主卷的非脏区域,并且从传入客户端写入请求中分割的复制客户端写入请求可以远程提交给辅助卷。响应于与脏块和非脏块之间的重叠相关联的部分脏区域相对应的传入客户端写入请求,传入客户端写入请求可以本地提交给主卷的部分脏区域(例如,提交给脏块和非脏块),并且整个复制客户端写入请求可以远程提交给辅助卷。
在314处,可以发起转换扫描器以扫描脏区域日志,用于将脏区域的脏数据从主卷传送到辅助卷(例如,和/或其中针对跨越多个主卷的一致性分组存在同步复制关系的其他主卷和/或辅助卷)。例如,转换扫描器可以使用脏区域日志标识主卷的当前脏区域。可以为当前脏区域设置锁定以阻止对当前脏区域的传入客户端写入请求。在示例中,在设置锁定的同时,可以对目标为当前脏区域的新传入客户端写入请求进行排队。当前脏区域的脏数据可以被传送到第二存储控制器以存储到辅助卷中。脏区域日志中的位可以被重置以指示当前脏区域现在是干净区域,其中干净数据被复制到辅助卷。响应于将脏数据成功存储到辅助卷和/或位被重置,可以解锁当前脏区域。响应于当前脏区域(例如,清洁区域)被解锁,可以处理新传入客户端写入请求(例如,可以在清洁区域上实现新传入客户端写入请求时,锁定干净区域,并且然后可以解锁清洁区域)。
响应于转换扫描器完成,可以将主卷和辅助卷指定为处于同步复制关系。在处于同步复制关系的同时,可以接收对主卷的当前客户端写入请求。当前客户端写入请求可以被分割为当前复制客户端写入请求。当前客户端写入请求可以本地提交给主存储装置。当前复制写请求可以被发送到第二存储控制器,用于远程提交给辅助卷。响应于当前客户端写入请求被当前提交以及当前复制客户端写入请求被远程提交,可以将完成通知发送到提交当前客户端写入请求的客户端。
在示例中,主卷和辅助卷可能由于诸如网络问题、存储控制器故障等的各种原因而变得不同步。因而,主卷和辅助卷之间的公共快照可以用于将辅助卷回滚到辅助卷镜像主卷的状态。可以以非破坏的方式重新建立同步复制关系(例如,在再同步期间,主卷可以保持对客户端可访问)。例如,脏区域日志、分割器对象、同步传送引擎会话和/或转换扫描器可以用于重新建立同步复制关系(例如,可以执行动作302,304,306,308,310,312和/或314中的至少一些动作,以便以非破坏的方式重新建立同步复制关系。
在示例中,脏区域日志、分割器对象、同步传送引擎会话和/或转换扫描器可以用于执行主卷的卷迁移操作。例如,可以以非破坏的方式迁移主卷,其中实现相对较小的破坏间隔。这样,可以在卷迁移操作期间支持对主卷的客户端访问。
在示例中,可以响应于从第一存储控制器到第二存储控制器的切换操作来执行翻转再同步(例如,第一存储控制器可能出现故障,因此第二存储控制器可以获得先前由第一存储控制器拥有的存储设备(诸如托管辅助卷的存储设备)的所有权,使得第二存储控制器可以向客户端提供对从存储设备(诸如到辅助卷)的复制数据的故障转移访问)。因而,可以实现关于方法300所描述的技术以执行翻转再同步以将数据从辅助卷(例如,现在主动用作第二存储控制器的主卷以向客户端提供对数据的故障转移访问)同步到主卷(例如,在切换操作期间现在用作辅助备份卷)。
图4A至图4H图示了用于非破坏性地建立和/或再同步同步复制关系的系统的示例。图4A图示了第一存储控制器402和第二存储控制器404,其具有通过网络406的连接(例如,存储控制器可以驻留在相同或不同的集群中)。源存储控制器402可以包括主卷408,对于该主卷408,要建立与第二存储控制器404的同步复制关系。因而,可以创建主卷408的基本快照410或其一部分(例如,诸如文件或存储对象的分组的一致性分组的快照)。可以执行使用基本快照410的基线传送412以将数据从主卷408传送到第二存储控制器404以用于创建辅助卷414,使得辅助卷414填充有镜像如基本快照410所表示的主卷408的数据。
图4B图示了从第一存储控制器402到第二存储控制器404执行的一个或多个增量传送。例如,可以创建主卷408的增量快照420。增量快照420可以包括主卷408或其部分在从创建基本快照410时的后续时间时的时间点表示。可以比较增量快照420和基本快照410(例如,或者用于执行最近增量传送的最终增量快照)以标识从创建增量快照420时和从创建最终快照(诸如基本快照410)并将其传送/复制到辅助卷414(例如,可以在主卷408内创建、删除和/或移动文件、目录和/或硬链接,从而导致主卷408和辅助卷414之间的分歧)时主卷408的差异。在示例中,可以使用增量传送422来传送数据差异。在另一示例中,与差异相对应的存储操作(例如,创建新文件操作、删除文件操作、移动文件操作、创建新目录操作、删除目录操作、移动目录操作和/或可以由第二存储控制器404用来修改辅助卷414以镜像由增量快照420表示的主卷408的其他操作)可以使用增量传送422被传送到第二存储控制器404以在辅助卷414上实现。这样,辅助卷414内的文件、目录、硬链接和/或数据可以镜像如增量快照420所表示的主卷408。可以执行使用增量快照的增量传送,直到满足同步准则(例如,阈值数目的增量传送、传送低于阈值的数据量的最终传送等)。
图4C图示了被初始化用于跟踪主卷408内的文件或LUN的修改的脏区域日志430。例如,脏区域日志可以包括位,其可以被设置为指示文件或LUN的区域是否已经被尚未被复制到辅助卷414的客户端写入请求修改,因此是脏区域,或者区域是否与主卷408和辅助卷414之间的相同数据同步,因此是干净区域。用于诸如第二存储控制器404或其他存储控制器的端点的分割器对象431可以被配置为将客户端写入请求分割到主卷408和辅助卷414。响应于脏区域日志430跟踪修改,可以执行数据从主卷408到辅助卷414的异步传送433(例如,最终增量传送)。
图4D图示了用于跟踪对主卷408的客户端写入请求的修改的脏区域日志430。例如,第一存储控制器402可以接收目标为文件ABC内的第二区域的客户端写入请求434。客户端写入请求434可以在主卷408上本地实现436。因而,可以设置与文件ABC的第二区域相对应的位以指示第二区域是脏区域,因为客户端写入请求434的修改尚未被复制到辅助卷414。
图4E图示了执行客户端写入请求分割的分割器对象431。在示例中,可以发起同步传送引擎会话以使用脏区域日志430和/或分割器对象431来处理传入客户端写入请求。例如,传入客户端写入请求442可以由第一存储控制器402接收。可以评估脏区域日志430以确定传入客户端写入请求442的目标为主卷408内的非脏区域。因而,传入客户端写入请求442可以在主卷408上本地实现444。传入客户端写入请求442可以由分割器对象431分割为复制客户端写入请求446,其被发送到第二存储控制器404以用于在辅助卷414上远程实现。在另一示例中,第一存储控制器402可以接收第二传入客户端写入请求(未示出)。第二传入客户端写入请求可以对应于与主卷408的一个或多个脏块和一个或多个非脏块之间的重叠相关联的部分脏区域。因而,第一存储控制器402可以将整个第二传入客户端写入请求本地提交给主卷408,并且整个第二传入客户端写入请求可以被复制到辅助卷414。
图4F图示了执行客户端写入请求分割的分割器对象431。例如,传入客户端写入请求450可以由第一存储控制器402接收。可以评估脏区域日志430以确定传入客户端写入请求450的目标为主卷408内的脏区域。因而,传入客户端写入请求450可以在主卷408上本地实现452,但是没有被复制到辅助卷414,因为转换扫描器可以随后将脏区域内的脏数据复制到辅助卷414。
图4G图示了转换扫描器460被发起以扫描脏区域日志430,用于将脏区域的脏数据从主卷408传送到辅助卷412。例如,转换扫描器460可以扫描脏区域日志430以确定文件ABC的第二区域是脏区域。因而,脏区域内的脏数据使用脏区域传送462复制到辅助卷412,并且修改脏区域日志430以指示第二区域现在是干净的。这样,转换扫描器460将脏数据复制到辅助卷414,使得辅助卷414镜像主卷408(例如,以减少或消除主卷408和辅助卷414之间的数据分歧,以便使主卷408和辅助卷414同步)。附加地,分割器对象431将传入客户端写入请求分割并复制到主卷408和辅助卷414,其也可以减少或消除数据分歧,以便使主卷408和辅助卷414同步。因此,一旦转换扫描器460完成,主卷408和辅助卷414就被指定为处于同步复制关系470,其中如图4H所示,在主卷408和辅助卷414之间维持数据一致性(例如,客户端写入请求在客户端请求对客户端的回应是完成之前,提交给主卷408和辅助卷414)。
在示例中,主卷408和辅助卷414可能由于诸如网络问题、存储控制器故障等的各种原因而变得不同步。因而,主卷408和辅助卷414之间的公共快照可以用于将辅助卷414回滚到辅助卷414镜像主卷408的状态。一旦辅助卷414已经回滚,就可以使用上文所描述的用于初始地建立同步复制关系470的技术(例如,图3和/或图4A至图4G的方法300)重新建立同步复制关系470。例如,脏区域日志430、分割器对象431、同步传送引擎会话、和/或转换扫描器460可以用于重新建立同步复制关系470。
在示例中,脏区域日志430、分割器对象431、同步传送引擎会话、和/或转换扫描器460可以用于执行主卷408的卷迁移操作。例如,可以以非破坏的方式迁移主卷408,其中实现相对较小的破坏间隔。这样,可以在卷迁移操作期间支持对主卷408的客户端访问。
又一实施例涉及一种计算机可读介质,其包括处理器可执行指令,这些处理器可执行指令被配置为实现本文中所呈现的技术中的一种或多种技术。以这些方式设计的计算机可读介质或计算机可读设备的示例实施例在图5中图示,其中实现方式500包括计算机可读介质508,诸如CD-R、DVD-R、闪存驱动器、硬盘驱动器的盘片等,该计算机可读介质508上编码有计算机可读数据506。该计算机可读数据506(诸如包括零或一中的至少一个的二进制数据)又包括处理器可执行计算机指令504,其被配置为根据本文中所阐述的原理中的一个或多个原理进行操作。在一些实施例中,例如,处理器可执行计算机指令504被配置为执行方法502,诸如图3的示例性方法300中的至少一些。在一些实施例中,例如,处理器可执行计算机指令504被配置为实现系统,诸如图4A至图4H的示例性系统400中的至少一些。设想许多这样的计算机可读介质以本文中所呈现的技术进行操作。
可以理解,本文中所描述的过程、体系架构和/或程序可以以硬件、固件和/或软件实现。还可以理解,本文中所阐述的规定可以适用于任何类型的专用计算机(例如,文件主机、存储服务器和/或存储服务设施)和/或通用计算机,其包括被体现为或包括存储系统的独立计算机或其部分。此外,本文中的教导可以被配置为多种存储系统体系架构,其包括但不限于直接附接到客户端或主机计算机的网络附接存储环境和/或存储区域网络和磁盘组件。因此,除了被配置为执行存储功能并与其他设备或系统相关联的任何子系统之外,存储系统应该被广泛地认为包括这些布置。
在一些实施例中,本公开中所描述和/或说明的方法可以全部或部分地在计算机可读介质上实现。计算机可读介质可以包括被配置为实现本文中所呈现的方法中的一个或多个方法的处理器可执行指令,并且可以包括用于存储此后可以由计算机系统读取的数据的任何机制。计算机可读介质的示例包括(硬)驱动器(例如,可经由网络附加存储(NAS)访问)、存储区域网络(SAN)、易失性和非易失性存储器(诸如只读存储器(ROM)、随机访问存储器(RAM)、EEPROM和/或闪存)、CD-ROM、CD-R、CD-RW、DVD、盒式磁带、磁带、磁盘存储装置、光学或非光学数据存储设备、和/或可以用于存储数据的任何其他介质。
尽管用结构特征或方法动作专用的语言描述了本主题,但是应当理解,所附权利要求书中定义的主题不必限于上文所描述的具体特征或动作。相反,上文所描述的具体特征和动作作为实现权利要求中的至少一些权利要求的示例形式而得以公开。
本文中提供了实施例的各种操作。描述操作中的一些或所有操作的次序不应当被解释为暗示这些操作必须按该次序。考虑到本说明书的益处,将理解备选排序。进一步地,应当理解,并非所有操作都必须存在于本文中所提供的每个实施例中。而且,应当理解,在一些实施例中并非所有操作都是必需的。
更进一步地,所要求保护的主题被实现为一种方法、装置或制品,其使用标准应用或工程技术产生软件、固件、硬件或其任何组合,以控制计算机实现所公开的主题。如本文中所使用的术语“制品”旨在涵盖可从任何计算机可读设备、载体或介质访问的计算机应用。当然,在不背离所要求保护的主题的范围或精神的情况下,可以对该配置进行许多修改。
如在本申请中所使用的,术语“组件”、“模块”、“系统”、“接口”等通常旨在是指计算机相关实体,该计算机相关实体是硬件、硬件和软件的组合、软件或执行中的软件。例如,组件包括在处理器上运行的进程、处理器、对象、可执行程序、执行线程、应用或计算机。通过说明,在控制器上运行的应用和该控制器两者可以均是组件。驻留在进程或执行线程中的一个或多个组件和组件可以位于一台计算机上或分布在两台或更多台计算机之间。
此外,“示例性”在本文中用于意指用作示例、实例、说明等,并且不一定是有利的。如在本申请中所使用的,“或”旨在意指包含性的“或”而非排他性的“或”。另外,如在本申请中使用的“一”和“一个”通常被解释为意指“一个或多个”,除非另有说明或从上下文清楚地指向单数形式。而且,A和B中的至少一个等通常表示A或B和/或A和B两者。更进一步地,就使用“包括(includes)”,“具有(having)”、“具有(has)”、“带有(with)”或其变体而言,这些术语旨在以与术语“包括(comprising)”相似的方式旨在是包含性的。
在不背离所要求保护的主题的范围或精神的情况下,可以对本公开做出许多修改。除非另有说明,否则“第一”、“第二”等不旨在暗示时间方面、空间方面、排序等。相反,这些术语仅用作用于特征、元件、项等的标识符、名称等。例如,第一组信息和第二组信息通常对应于信息组A和信息组B或两个不同或两个相同的信息组或相同信息组。
而且,尽管已经相对于一个或多个实现方式对本公开进行了示出和描述,但是本领域技术人员基于对本说明书和附图的阅读和理解将想到等同变更和修改。本公开包括所有这些修改和变更,并且仅受所附权利要求的范围限制。特别地,关于由上文所描述的组件(例如,元件、资源等)执行的各种功能,除非另有说明,否则用于描述这些组件的术语旨在与执行所描述的组件的指定功能的任何组件(例如,在功能上等同)相对应,尽管在结构上不等同于所公开的结构。另外,虽然可能仅关于几个实现方式中的一个实现方式公开了本公开的特定特征,但是这样的特征可以如对任何给定或特定应用所需且有利地与其他实现方式的一个或多个其他特征组合。

Claims (22)

1.一种方法,包括:
建立同步复制关系,其包括:
通过存储服务器创建由第一存储控制器托管的主卷的基本快照;
使用所述基本快照执行数据从所述主卷到第二存储控制器的基线传送以创建辅助卷;
直到同步准则被满足:
创建所述主卷的增量快照;以及
基于所述增量快照和所述主卷的先前快照来执行增量传送;
初始化脏区域日志,并且使用所述脏区域日志跟踪所述主卷内的文件或逻辑单元号(LUN)的修改,所述脏区域日志包括位,所述位被设置为指示所述文件或LUN的区域是否已被客户端写入请求修改;
为端点配置分割器对象以将客户端写入请求分割到所述主卷和所述辅助卷;
响应于所述脏区域日志跟踪修改,执行从所述主卷到所述辅助卷的异步传送;
通过以下操作,使用所述脏区域日志发起所述主卷和所述辅助卷之间的同步传送引擎会话以处理传入客户端写入请求:
响应于与脏区域相对应的传入客户端写入请求,将所述传入客户端写入请求提交给所述主卷;以及
响应于与非脏区域相对应的所述传入客户端写入请求,将所述传入客户端写入请求提交给所述主卷,并且将从所述传入客户端写入请求分割的复制客户端写入请求提交给所述辅助卷;
发起转换扫描器以扫描所述脏区域日志,以用于将脏区域的数据从所述主卷传送到所述辅助卷;以及
响应于所述转换扫描器完成,将所述主卷和所述辅助卷指定为处于所述同步复制关系。
2.根据权利要求1所述的方法,包括:
基于阈值数目的增量传送完成来确定所述同步准则被满足。
3.根据权利要求1所述的方法,包括:
基于最终增量传送传送低于阈值的数据量来确定所述同步准则被满足。
4.根据任一前述权利要求所述的方法,其中所述执行增量传送包括:
执行所述先前快照和所述增量快照之间不同的数据块的块级增量传送。
5.根据任一前述权利要求所述的方法,其中所述执行增量传送包括:
响应于所述增量传送完成,从所述辅助卷创建公共快照。
6.根据任一前述权利要求所述的方法,其中所述初始化包括:
初始化存储器中的所述脏区域日志。
7.根据任一前述权利要求所述的方法,其中所述基本快照和所述增量快照与一致性分组相对应。
8.根据任一前述权利要求所述的方法,其中所述发起转换扫描器包括:
标识所述主卷的当前脏区域;
为所述当前脏区域设置锁定以阻止对所述当前脏区域的传入客户端写入请求;
将所述当前脏区域的数据传送到所述第二存储控制器,以用于存储到所述辅助卷中;以及
响应于成功将所述数据存储到所述辅助卷中,解锁所述当前脏区域。
9.根据权利要求8所述的方法,包括:
在所述锁定被设置的同时,对新传入客户端写入请求进行排队,所述新传入客户端写入请求的目标为所述当前脏区域;以及
响应于解锁所述当前脏区域,处理所述新传入客户端写入请求。
10.根据权利要求9所述的方法,其中所述处理所述新传入客户端写入请求包括:
在处理所述新传入客户端写入请求的同时,锁定所述当前脏区域;以及
响应于成功完成所述新传入客户端写入请求,解锁所述当前脏区域。
11.根据任一前述权利要求所述的方法,包括:
响应于所述传入客户端写入请求对应于与脏块和非脏块之间的重叠相关联的部分脏区域,将所述传入客户端写入请求提交给所述主卷,并且将所述复制客户端写入请求提交给所述辅助卷。
12.根据任一前述权利要求所述的方法,包括:
响应于确定所述主卷和所述辅助卷不同步:
将所述辅助卷回滚到所述主卷和所述辅助卷之间的公共快照;以及
重新建立所述同步复制关系。
13.根据任一前述权利要求所述的方法,包括:
在所述同步复制关系被建立的同时:
接收对所述主卷的当前客户端写入请求;
将所述当前客户端写入请求分割为当前复制客户端写入请求;
将所述当前客户端写入请求本地提交给所述主存储装置;
向所述第二存储控制器发送所述当前复制写入请求以远程提交给所述辅助卷;以及
响应于所述当前客户端写入请求被本地提交以及所述当前复制客户端写入请求被远程提交,向递交所述当前客户端写入请求的客户端发送完成通知。
14.根据任一前述权利要求所述的方法,其中所述初始化脏区域日志包括:
接收针对所述文件或LUN的区域的客户端写入请求;
在所述区域上实现所述客户端写入请求;以及
在所述脏区域日志内设置位以指示所述区域是脏区域。
15.根据任一前述权利要求所述的方法,包括:
在所述同步复制关系的所述建立期间,支持对所述主卷的客户端访问。
16.根据任一前述权利要求所述的方法,包括:
利用所述脏区域日志、所述分割器对象和所述同步传送引擎会话来执行所述主卷的卷迁移操作。
17.根据权利要求16所述的方法,包括:
在所述卷迁移操作期间支持对所述主卷的客户端访问。
18.一种非暂态机器可读介质,其上存储有包括机器可执行代码的、用于执行方法的指令,所述机器可执行代码当由至少一个机器执行时,使得所述机器执行任一前述权利要求所述的方法。
19.一种非暂态机器可读介质,其上存储有包括机器可执行代码的、用于执行方法的指令,所述机器可执行代码当由至少一个机器执行时,使得所述机器:
响应于确定由第一存储控制器托管的主卷和由第二存储控制器托管的辅助卷不同步,将所述辅助卷回滚到所述主卷和所述辅助卷之间的公共快照;
直到同步准则被满足:
创建所述主卷的增量快照;以及
基于所述增量快照和所述主卷的先前快照来执行增量传送;
初始化脏区域日志并且使用所述脏区域日志跟踪所述主卷内的文件或逻辑单元号(LUN)的修改,所述脏区域日志包括位,所述位被设置为指示所述文件或LUN的区域是否已被客户端写入请求修改;
为端点配置分割器对象,以将客户端写入请求分割到所述主卷和所述辅助卷;
响应于所述脏区域日志跟踪修改,执行从所述主卷到所述辅助卷的异步传送;
通过以下操作,发起所述主卷和所述辅助卷之间的同步传送引擎会话,以使用所述脏区域日志处理传入客户端写入请求:
响应于与脏区域相对应的传入客户端写入请求,将所述传入客户端写入请求提交给所述主卷;以及
响应于与非脏区域相对应的所述传入客户端写入请求,将所述传入客户端写入请求提交给所述主卷,并且将从所述传入客户端写入请求分割的复制客户端写入请求提交给所述辅助卷;
发起转换扫描器以扫描所述脏区域日志,以用于将脏区域的数据从所述主卷传送到所述辅助卷;以及
响应于所述转换扫描器完成,将所述主卷和所述辅助卷指定为处于同步复制关系。
20.一种计算设备,包括:
存储器,其包含机器可读介质,所述机器可读介质包括机器可执行代码,所述机器可执行代码上存储有用于执行根据权利要求1至17中的任一项所述的建立同步复制关系的方法的指令。
21.一种计算设备,包括:
存储器,其包含机器可读介质,所述机器可读介质包括机器可执行代码,所述机器可执行代码上存储有用于执行建立同步复制关系的方法的指令;以及
处理器,其耦合到所述存储器,所述处理器被配置为执行所述机器可执行代码,以使得所述处理器:
执行主卷到辅助卷的基线传送;
执行从所述主卷到所述辅助卷的一个或多个增量传送,直到同步准则被满足;
初始化脏区域日志并且使用脏区域日志跟踪所述主卷内的文件或逻辑单元号(LUN)的修改;
为端点配置分割器对象,以将客户端写入请求分割到所述主卷和所述辅助卷;
发起所述主卷和所述辅助卷之间的同步传送引擎会话,以使用所述脏区域日志处理传入客户端写入请求;
发起转换扫描器以扫描所述脏区域日志,用于将脏区域的数据从所述主卷传送到所述辅助卷;以及
响应于所述转换扫描器完成,将所述主卷和所述辅助卷指定为处于同步复制关系。
22.根据权利要求21所述的计算设备,其中所述机器可执行代码使得所述处理器:
响应于所述脏区域日志跟踪修改并且所述分割器对象执行客户端写入请求分割,执行从所述主卷到所述辅助卷的异步传送。
CN201680079806.1A 2015-11-27 2016-11-23 同步复制关系的非破坏性基线和再同步 Active CN108496153B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/953,070 US10019502B2 (en) 2015-11-27 2015-11-27 Non-disruptive baseline and resynchronization of a synchronous replication relationship
US14/953,070 2015-11-27
PCT/US2016/063456 WO2017091641A1 (en) 2015-11-27 2016-11-23 Non-disruptive baseline and resynchronization of a synchronous replication relationship

Publications (2)

Publication Number Publication Date
CN108496153A true CN108496153A (zh) 2018-09-04
CN108496153B CN108496153B (zh) 2021-03-23

Family

ID=57544544

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201680079806.1A Active CN108496153B (zh) 2015-11-27 2016-11-23 同步复制关系的非破坏性基线和再同步

Country Status (4)

Country Link
US (4) US10019502B2 (zh)
EP (1) EP3380924B1 (zh)
CN (1) CN108496153B (zh)
WO (1) WO2017091641A1 (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108604163A (zh) * 2015-11-23 2018-09-28 Netapp股份有限公司 针对文件访问协议存储的同步复制
CN111125001A (zh) * 2018-10-31 2020-05-08 伊姆西Ip控股有限责任公司 快照复制方法、电子设备和计算机程序产品
CN113010259A (zh) * 2019-12-20 2021-06-22 上海云轴信息科技有限公司 两节点超融合一体机的存储方法及设备

Families Citing this family (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103986792B (zh) * 2014-06-11 2015-05-27 腾讯科技(深圳)有限公司 一种群成员信息的同步方法、服务器,及系统
US10684994B2 (en) * 2015-09-25 2020-06-16 Netapp Inc. Data synchronization
US10019502B2 (en) 2015-11-27 2018-07-10 Netapp Inc. Non-disruptive baseline and resynchronization of a synchronous replication relationship
US9727262B2 (en) * 2015-12-28 2017-08-08 Netapp, Inc. Low overhead resynchronization snapshot creation and utilization
US10353605B2 (en) 2017-01-30 2019-07-16 International Business Machines Corporation Optimizing off-loaded input/output (I/O) requests
JP7032631B2 (ja) * 2017-07-04 2022-03-09 富士通株式会社 送受信システム、送受信システムの制御方法、及び送信装置
US10620843B2 (en) * 2017-07-26 2020-04-14 Netapp, Inc. Methods for managing distributed snapshot for low latency storage and devices thereof
CN110019510A (zh) * 2017-09-29 2019-07-16 阿里巴巴集团控股有限公司 一种进行增量同步的方法及装置
US10684788B1 (en) 2017-12-15 2020-06-16 Veritas Technologies, LLC Data consistency during reverse replication
US10983880B2 (en) * 2018-07-31 2021-04-20 Hewlett Packard Enterprise Development Lp Role designation in a high availability node
US11468014B2 (en) * 2018-08-09 2022-10-11 Netapp Inc. Resynchronization to a filesystem synchronous replication relationship endpoint
US11237750B2 (en) * 2018-08-30 2022-02-01 Portworx, Inc. Dynamic volume replication factor adjustment
US10891308B2 (en) * 2018-09-24 2021-01-12 Salesforce.Com, Inc. Automated self-scaling database system for automatically scaling out write operations and method for implementing the same in a multi-tenant, cloud-based computing environment
US10860243B2 (en) 2018-11-30 2020-12-08 Micron Technology, Inc. Per cursor logical unit number sequencing
US11120048B2 (en) * 2019-03-06 2021-09-14 Netapp Inc. Non-disruptive transition to synchronous replication state
US10824513B1 (en) * 2019-04-30 2020-11-03 EMC IP Holding Company LLC Processing input/output operations while snapshot and extent copy operations are in progress for a logical storage volume
US11349921B2 (en) * 2019-09-11 2022-05-31 EMC IP Holding Company LLC Cloud based storage migration
US11226758B2 (en) * 2020-03-13 2022-01-18 EMC IP Holding Company LLC Volume migration using cross-appliance asymmetric namespace access group
CN113011507B (zh) * 2021-03-24 2022-05-06 支付宝(杭州)信息技术有限公司 建立同步时间预测模型的方法、数据同步方法及对应装置
CN113419676B (zh) * 2021-06-11 2022-11-29 济南浪潮数据技术有限公司 一种数据远程复制方法、系统、存储介质及设备
US11816129B2 (en) 2021-06-22 2023-11-14 Pure Storage, Inc. Generating datasets using approximate baselines
US11461031B1 (en) 2021-06-22 2022-10-04 International Business Machines Corporation Non-disruptive storage volume migration between storage controllers
US11880580B1 (en) 2022-07-15 2024-01-23 Dell Products L.P. Non-disruptive migration of NVMe-of attached virtual volumes using log-based signaling and confirmation for cutover

Citations (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040267836A1 (en) * 2003-06-25 2004-12-30 Philippe Armangau Replication of snapshot using a file system copy differential
US20060218346A1 (en) * 2005-03-22 2006-09-28 Nec Corporation Data duplication system, data duplication method and program
US20100153338A1 (en) * 2005-12-19 2010-06-17 David Ngo Systems and Methods for Resynchronizing Information
CN101815986A (zh) * 2007-08-16 2010-08-25 国际商业机器公司 在存储控制器和复制引擎之间分离写入
CN101933014A (zh) * 2007-09-28 2010-12-29 阿珀蒂奥有限公司 用于复制和同步的系统和方法
CN103124961A (zh) * 2010-09-29 2013-05-29 惠普发展公司,有限责任合伙企业 用于异步复制的基于主机的写入排序
CN103617096A (zh) * 2013-11-04 2014-03-05 华为技术有限公司 一种存储数据的复制方法、设备及系统
US8718299B2 (en) * 2009-01-08 2014-05-06 Fujitsu Limited Audio control device and audio output device
CN103858110A (zh) * 2011-10-07 2014-06-11 株式会社日立制作所 存储系统
US20140297979A1 (en) * 2013-03-28 2014-10-02 Red Hat Israel, Ltd. Live migration of virtual disks
US20140324774A1 (en) * 2013-04-28 2014-10-30 International Business Machines Corporation Techniques for managing a data replication mode
US20150066858A1 (en) * 2013-09-04 2015-03-05 Oracle International Corporation Systems and methods for resumable replication

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6993539B2 (en) 2002-03-19 2006-01-31 Network Appliance, Inc. System and method for determining changes in two snapshots and for transmitting changes to destination snapshot
US10019502B2 (en) 2015-11-27 2018-07-10 Netapp Inc. Non-disruptive baseline and resynchronization of a synchronous replication relationship

Patent Citations (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040267836A1 (en) * 2003-06-25 2004-12-30 Philippe Armangau Replication of snapshot using a file system copy differential
US20060218346A1 (en) * 2005-03-22 2006-09-28 Nec Corporation Data duplication system, data duplication method and program
US20100153338A1 (en) * 2005-12-19 2010-06-17 David Ngo Systems and Methods for Resynchronizing Information
CN101815986A (zh) * 2007-08-16 2010-08-25 国际商业机器公司 在存储控制器和复制引擎之间分离写入
CN101933014A (zh) * 2007-09-28 2010-12-29 阿珀蒂奥有限公司 用于复制和同步的系统和方法
US8718299B2 (en) * 2009-01-08 2014-05-06 Fujitsu Limited Audio control device and audio output device
CN103124961A (zh) * 2010-09-29 2013-05-29 惠普发展公司,有限责任合伙企业 用于异步复制的基于主机的写入排序
CN103858110A (zh) * 2011-10-07 2014-06-11 株式会社日立制作所 存储系统
US20140297979A1 (en) * 2013-03-28 2014-10-02 Red Hat Israel, Ltd. Live migration of virtual disks
US20140324774A1 (en) * 2013-04-28 2014-10-30 International Business Machines Corporation Techniques for managing a data replication mode
US20150066858A1 (en) * 2013-09-04 2015-03-05 Oracle International Corporation Systems and methods for resumable replication
CN103617096A (zh) * 2013-11-04 2014-03-05 华为技术有限公司 一种存储数据的复制方法、设备及系统

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
王彦龙 等: "面向容灾的软同步复制算法研究", 《高技术通讯》 *

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108604163A (zh) * 2015-11-23 2018-09-28 Netapp股份有限公司 针对文件访问协议存储的同步复制
CN108604163B (zh) * 2015-11-23 2021-07-16 Netapp股份有限公司 针对文件访问协议存储的同步复制
CN111125001A (zh) * 2018-10-31 2020-05-08 伊姆西Ip控股有限责任公司 快照复制方法、电子设备和计算机程序产品
CN113010259A (zh) * 2019-12-20 2021-06-22 上海云轴信息科技有限公司 两节点超融合一体机的存储方法及设备

Also Published As

Publication number Publication date
WO2017091641A1 (en) 2017-06-01
US11860898B2 (en) 2024-01-02
US20190332609A1 (en) 2019-10-31
US20170154093A1 (en) 2017-06-01
US10353921B2 (en) 2019-07-16
US10019502B2 (en) 2018-07-10
US20180314748A1 (en) 2018-11-01
US11392618B2 (en) 2022-07-19
US20220350817A1 (en) 2022-11-03
EP3380924A1 (en) 2018-10-03
CN108496153B (zh) 2021-03-23
EP3380924B1 (en) 2020-01-08

Similar Documents

Publication Publication Date Title
CN108496153A (zh) 同步复制关系的非破坏性基线和再同步
US11567674B2 (en) Low overhead resynchronization snapshot creation and utilization
US10176064B2 (en) Granular consistency group replication
CN109074297A (zh) 在同步复制的数据集中启用数据完整性检查和更快的应用恢复
US11797406B2 (en) Moving a consistency group having a replication relationship
TWI307035B (en) Method and system for backing up remote mirror data on internet
CN107924354A (zh) 动态镜像
US20240104061A1 (en) Gransets for managing consistency groups of dispersed storage items
US20170149886A1 (en) Directory level incremental replication
CN109313595A (zh) 跨平台复制
CN108604163A (zh) 针对文件访问协议存储的同步复制
US10031682B1 (en) Methods for improved data store migrations and devices thereof
US11768624B2 (en) Resilient implementation of client file operations and replication
US9582384B2 (en) Method and system for data replication

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