在同步复制的数据集中启用数据完整性检查和更快的应用恢复的制作方法

文档序号:16366981发布日期:2018-12-22 08:29阅读:213来源:国知局
在同步复制的数据集中启用数据完整性检查和更快的应用恢复的制作方法

本申请要求于2016年2月22日提交的美国非临时专利申请号:15/049,410、名称为“enablingdataintegritycheckingandfasterapplicationrecoveryinsynchronousreplicateddatasets”的优先权,其通过引用并入本文。

背景技术

许多存储网络可以实现数据复制和/或其他冗余数据访问技术以用于数据丢失保护和非破坏(non-disruptive)客户端访问。例如,第一存储集群可以包括第一存储控制器,其被配置为向客户端提供对被存储在第一存储设备和/或其他存储设备内的数据的主要访问。第二存储集群可以包括第二存储控制器,其被配置为向客户端提供对被存储在第二存储设备和/或其他存储设备内的数据的主要访问。第一存储控制器和第二存储控制器可以根据灾难恢复关系而被配置,从而使得第二存储控制器可以提供对从第一存储设备被复制到次级存储设备的复制的数据的故障转移访问,次级存储设备由第一存储控制器拥有,但是可由第二存储控制器访问(例如,在第二存储控制器承担次级存储设备和/或先前由第一存储控制器拥有的其他存储设备的所有权时,切换操作可以被执行,从而使得第二存储控制器可以向客户端提供对这样的存储设备内的复制的数据的故障转移访问)。在逻辑复制方案的示例中,第二存储控制器具有复制的数据的所有权。第二存储控制器可以提供对复制的数据的只读访问。第二存储控制器可以在故障转移时将复制的数据转换为完全读写访问。在物理复制的示例中,包括复制的数据的存储设备由第一存储控制器拥有,直到向第二存储控制器的故障转移/切换发生。

在示例中,第二存储集群可以被定位在第一存储集群的远程站点(例如,存储集群可以被定位在不同的建筑物、城市中,彼此相距数千公里等)。因此,如果灾难在存储集群的站点处发生,则幸存的存储集群可以保持不受灾难的影响(例如,托管第一存储集群的建筑物的停电可能不会影响在不同城市中托管第二存储集群的第二建筑物)。

在示例中,存储集群内的两个存储控制器可以根据高可用性配置而被配置,诸如在两个存储控制器被彼此本地连接和/或被连接到相同的存储设备时。以这种方式,当存储控制器发生故障时,则由于本地连通性,高可用性伙伴存储控制器可以快速地接管发生故障的存储控制器。因此,高可用性伙伴存储控制器可以向客户端提供对先前可通过发生故障的存储控制器访问的数据的访问。

在高可用性配置的示例中,对数据的高可用性可以在不使用共享存储的情况下被提供。特别是,对数据的高可用性使用主存储对象的同步复制副本而被提供。对数据的高可用性可以使用同步复制、通过软件定义的架构而被提供,并且不限于仅两个存储控制器。

各种复制和同步技术可以被用来复制数据(例如,客户端数据),配置数据(例如,卷的大小、卷的名称、逻辑单元号(lun)配置数据等),和/或在存储控制器和/或存储设备之间写入高速缓存数据(例如,高速缓存的写入操作尚未被冲刷到存储设备,但被高速缓存在存储器(诸如非易失性随机存取存储器(nvram))中)。在对第一存储控制器的传入写入操作由第一存储控制器在第一存储对象(例如,文件、lun、跨越多个卷的lun、文件和/或lun的一致性组、目录、卷或任何其他类型的对象)上本地实现,并且在确认被提供回给发送传入写入操作的客户端之前由第二存储控制器在第二存储对象(例如,被保持为第一存储对象的完全同步的副本)上远程实现时,同步复制可以被使用。在另一示例中,通过捕获卷的快照,确定当前快照和被用来将数据复制到第二存储对象的最后快照之间的数据差异(例如,增量),并且使用增值传输将数据差异发送到第二存储控制器以用于在第二存储对象上实现,同步复制可以被实现。在针对写入请求的返回到客户端的确认基于在第一存储对象上的本地实现、但不依赖于在第二存储对象上的远程实现时,半同步复制可以被实现。

对应于数据是否以同步方式被正确复制同时保持写入顺序一致性(例如,如果写入操作a取决于写入操作b的完成,则复制的写入操作b应当在复制的写入操作a之前由第二存储控制器实现)和/或在灾难后的快速应用恢复(例如,在先前托管数据库应用的数据的第一个存储控制器发生故障或具有计划的关闭之后,在故障转移操作期间数据库应用可以在第二个存储控制器处多么快地被恢复)的数据完整性验证可以依赖于第一存储对象和第二存储对象的一致时间点表示,诸如快照。然而,同步的同步复制不会创建或依赖于崩溃一致快照以用于更新第二存储对象(例如,镜像的存储对象),并且作为替代依赖于写入拆分器来更新第二存储对象,并且因此对于具有同步复制关系的存储控制器,这样的一致时间点快照可能无法可用于数据完整性验证和快速应用恢复。

附图说明

图1是图示根据本文所阐述的规定中的一个或多个规定的示例集群化网络的部件框图。

图2是图示根据本文所阐述的规定中的一个或多个规定的示例数据存储系统的部件框图。

图3是图示利用快照以用于数据完整性验证和/或应用恢复的示例性方法的流程图。

图4a是图示用于利用快照以用于数据完整性验证的示例性计算设备的部件框图,其中快照复制策略规则被定义,并且快照创建策略被创建。

图4b是图示用于利用快照以用于数据完整性验证的示例性计算设备的部件框图,其中第一存储装置的快照和第二存储装置的复制快照被创建。

图4c是图示用于利用快照以用于数据完整性验证的示例性计算设备的部件框图。

图5a是图示用于利用快照以用于应用恢复的示例性计算设备的部件框图,其中快照复制策略规则被定义。

图5b是图示用于利用快照以用于应用恢复的示例性计算设备的部件框图,其中第一存储装置的快照和第二存储装置的复制快照被创建。

图5c是图示用于利用快照以用于应用恢复的示例性计算设备的部件框图。

图6是根据本文所阐述的规定中的一个或多个规定的计算机可读介质的示例。

具体实施方式

所要求保护的技术主题的一些示例现在参考附图而被描述,其中相同的附图标记通常被用来始终表示相同的元件。在下面的描述中,出于说明的目的,许多具体细节被阐述以便提供对所要求保护的技术主题的理解。然而,显而易见的是,所要求保护的技术主题可以在没有这些具体细节的情况下被实践。本具体实施方式中的任何内容均不被承认为是现有技术。

用于利用快照以用于数据完整性验证和/或应用恢复的一种或多种技术和/或计算设备在本文中被提供。例如,托管第一存储装置的第一存储控制器可以与托管第二存储装置的第二存储控制器具有同步复制关系,从而使得在操作被确认返回客户端之前,以第一存储装置为目标的操作可以被复制到第二存储装置。同步复制关系可以针对任何级别的数据粒度(诸如文件、逻辑单元号(lun)、文件和/或lun的一致性组、目录、卷和/或任何其他存储对象)而被指定。数据完整性验证和/或高效应用恢复可以利用第一存储装置和第二存储装置的一致时间点表示,诸如快照。然而,与创建和使用快照相反,同步复制将以第一存储装置为目标的操作拆分为复制操作从而以第二存储装置为目标。相应地,如本文所提供的,以第一存储装置为目标的快照创建请求被复制到第二存储控制器,以创建第二存储装置的复制快照作为一致时间点。这样的快照可以被比较以用于数据完整性验证,以查证同步复制是否准确地将数据复制到第二存储装置,同时保持写入顺序依赖性。同时,利用应用完整性而被创建的并且由此捕获应用一致时间点状态的快照可以被用来快速地恢复应用。以这种方式,崩溃一致快照可以通过在存储设备上被定义的快照创建策略而被周期性地创建以用于数据完整性检查。数据完整性检查可以利用任何普通快照,并且可以不依赖于应用集成。应用一致快照可以被创建(例如,由在应用一致时间的应用感知插件)以用于数据完整性检查和更快的应用恢复。

为了提供用于利用快照以用于数据完整性验证和/或应用恢复的环境,图1图示了集群化网络环境100或网络存储环境的实施例。然而,可以领会到的是,本文所描述的技术等可以在集群化网络环境100、非集群网络环境和/或各种其他计算环境(诸如台式计算环境)内被实现。也就是说,包括所附权利要求的范围的本公开内容并不意味着限于本文所提供的示例。将领会到的是,其中相同或相似的部件、元件、特征、项目、模块等在稍后的附图中被图示,但是先前关于先前的附图而被讨论,当描述随后的附图时,对相同内容的相似(例如,冗余)的讨论可以被省略(例如,出于简化和易于理解的目的)。

图1是图示可以实现本文所描述的技术和/或系统的至少一些实施例的集群化网络环境100的框图。集群化网络环境100包括通过集群结构106而被耦合的数据存储系统102和104,集群结构106诸如被体现为促进数据存储系统102和104(以及例如其中的一个或多个模块、部件等,诸如节点116和118)之间的通信的私有无限带宽、光纤通道(fc)或以太网网络的计算网络。应当领会到的是,虽然两个数据存储系统102和104以及两个节点116和118在图1中被图示,但是任何合适数量的这样的部件是预期的。在示例中,节点116、118包括存储控制器(例如,节点116可以包括主存储控制器或本地存储控制器,并且节点118可以包括次级存储控制器或远程存储控制器),其向客户端设备(诸如主机设备108、110)提供对被存储在数据存储设备128、130内的数据的访问。类似地,除非在本文中另有图集规定,否则对于本文所引用和/或在附图中所示的其他模块、元件、特征、项目等也是如此。也就是说,本文所公开的特定数目的部件、模块、元件、特征、项目等不意味着以限制方式而被解释。

还将领会到的是,集群化网络并不限于任何特定地理区域,并且可以在本地和/或远程地被集群。因此,在一个实施例中,集群化网络可以被分布在多个存储系统和/或被定位在多个地理位置中的节点上;而在另一实施例中,集群化网络可以包括驻留在相同地理位置中(例如,在数据存储设备单个现场机架中)的数据存储系统(例如,102、104)。

在所示示例中,可以包括例如客户端设备、个人计算机(pc)、被用于存储的计算设备(例如,存储服务器)以及其他计算机或外围设备(例如,打印机)的一个或多个主机设备108、110通过存储网络连接112、114被耦合到相应的数据存储系统102、104。网络连接可以包括局域网(lan)或广域网(wan),它们例如利用网络附接存储(nas)协议(诸如用来交换数据分组的通用因特网文件系统(cifs)协议或网络文件系统(nfs)协议)、存储区域网络(san)协议(诸如小型计算机系统接口(scsi)或光纤通道协议(fcp))、对象协议(诸如s3)等。说明性地,主机设备108、110可以是运行应用的通用计算机,并且可以使用客户机/服务器模型与数据存储系统102、104交互以用于信息的交换。也就是说,主机设备可以从数据存储系统请求数据(例如,由被配置为处理由主机设备针对存储设备发布的i/o命令的网络存储控件管理的存储设备上的数据),并且数据存储系统可以经由一个或多个存储网络连接112、114将请求的结果返回给主机设备。

集群化数据存储系统102、104上的节点116、118可以包括作为集群而被互连的网络或主机节点,以将数据存储和管理服务例如提供给诸如具有远程位置的企业,云存储(例如,存储端点可以被存储在数据云内)等。例如,集群化网络环境100中的这样的节点可以是被附接到网络作为连接点、再分配点或通信端点的设备。节点可以能够通过网络通信信道发送、接收和/或转发信息,并且可以包括满足这些标准中的任何或所有标准的任何设备。节点的一个示例可以是被附接到网络的数据存储和管理服务器,其中服务器可以包括通用计算机或被特别配置成作为数据存储和管理系统中的服务器操作的计算设备。

在示例中,诸如节点116、118的第一节点集群(例如,被配置为提供对包括一个或多个存储设备的第一逻辑分组的第一存储集合体(aggregate)的访问的第一存储控制器集合)可以被定位在第一存储站点上。未被示出的第二节点集群可以被定位在第二存储站点处(例如,被配置为提供对包括一个或多个存储设备的第二逻辑分组的第二存储集合体的访问的第二存储控制器集合)。第一节点集群和第二节点集群可以根据灾难恢复配置而被配置,其中在灾难发生在包括灾难节点集群的灾难存储站点处的情况中,幸存的节点集群提供对灾难节点集群的存储设备的故障转移访问(例如,在灾难发生在第二存储站点处的情况中,第一节点集群向客户端设备提供对第二存储集合体的存储设备的故障转移数据访问)。

如集群化网络环境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,卷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中被实现。在示例中,由节点116(例如,第一存储控制器)维护的卷132a的快照以及由节点118(例如,第二存储控制器)维护的卷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,操作系统208例如可以实现独立(或廉价)磁盘冗余阵列(raid)优化技术,以优化阵列中的发生故障的磁盘的数据的重建过程。

操作系统208还可以管理用于数据存储系统的通信,以及可以在集群化网络(诸如被附接到集群结构215(例如,图1中的106))中的其他数据存储系统之间的通信。因此,节点202(诸如网络存储控制器)可以根据这些主机设备请求来响应于主机设备请求以管理数据存储设备234(例如,或附加的集群化设备)上的数据。操作系统208通常可以在数据存储系统200上建立一个或多个文件系统,其中文件系统可以例如包括实现文件和目录的持久分层命名空间的软件代码和数据结构。作为示例,当新的数据存储设备(未被示出)被添加到集群化网络系统时,操作系统208被通知在现有目录树中与新数据存储设备相关联的新文件将被存储在哪里。这通常被称为“装配(mount)”文件系统。

在示例数据存储系统200中,存储器206可以包括可由处理器204和网络适配器210、212、214寻址的存储位置以用于存储相关的软件应用代码和数据结构。处理器204和网络适配器210、212、214可以例如包括被配置为执行软件代码并且操纵数据结构的处理元件和/或逻辑电路。操作系统208(其部分通常驻留在存储器206中并且由处理元件执行)通过调用存储操作以支持由存储系统实现的文件服务等来在功能上组织存储系统。对于本领域技术人员来说将显而易见的是,包括各种计算机可读介质的其他处理和存储器机制可以被用于存储和/或执行与本文所描述的技术有关的应用指令。例如,操作系统还可以利用一个或多个控制文件(未被示出)来帮助提供虚拟机。

网络适配器210包括通过网络216将数据存储系统200连接到主机设备205所需的机械、电气和信令电路,网络216可以包括点对点连接或共享介质(诸如局域网)等。主机设备205(例如,图1的108、110)可以是被配置为执行应用的通用计算机。如上所述,主机设备205可以根据信息递送的客户端/主机模型与数据存储系统200交互。

存储适配器214与在节点202上执行的操作系统208协作以访问由主机设备205请求的信息(例如,访问由网络存储控制器管理的存储设备上的数据)。信息可以被存储在任何类型的附接可写介质阵列(诸如磁盘驱动、闪存和/或适于存储信息的任何其他类似介质)上。在示例数据存储系统200中,信息可以被存储在磁盘224、226、228上的数据块中。存储适配器214可以包括输入/输出(i/o)接口电路,其通过i/o互连布置(诸如存储区域网络(san)协议(例如,小型计算机系统接口(scsi)、iscsi、超scsi、光纤通道协议(fcp))耦合到磁盘。该信息由存储适配器214取回,并且如果需要,则在通过系统总线242被转发给网络适配器210(和/或,如果发送给集群中的另一个节点,则被转发给集群访问适配器212)之前由一个或多个处理器204(或存储适配器214本身)处理,其中信息被格式化为数据分组并通过网络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、qtree235和文件240。除此之外,这些特征(更特别地是luns)例如允许数据被存储在其内的不相干存储器位置被标识,并且被分组为数据存储单元。这样,lun238可以被表征为构成虚拟磁盘或驱动,虚拟卷内的数据在虚拟磁盘或驱动器上被存储在集合体内。例如,lun通常被称为虚拟驱动,从而使得它们从通用计算机模拟硬盘驱动,而它们实际上包括被存储在卷的各个部分中的数据块。

在一个实施例中,一个或多个数据存储设备234可以具有一个或多个物理端口,其中每个物理端口可以被指派目标地址(例如,scsi目标地址)。为了表示被存储在数据存储设备上的相应的卷,数据存储设备上的目标地址可以被用来标识一个或多个lun238。因此,例如,当节点202通过存储适配器214连接到卷230、232时,节点202与该卷下面的一个或多个lun238之间的连接被创建。

在一个实施例中,相应的目标地址可以标识多个lun,从而使得目标地址可以表示多个卷。可以被实现为存储适配器214中的电路和/或软件,或者作为驻留在存储器206中并由处理器204执行的可执行代码的i/o接口例如可以通过使用标识一个或多个lun238的一个或多个地址来连接到卷230。

可以领会到的是,利用快照以用于数据完整性验证和/或应用恢复可以针对数据存储系统200而被实现。在示例中,由节点202(例如,第一存储控制器)维护的卷230的快照以及由第二节点(例如,第二存储控制器)维护的第二卷的复制快照可以被创建。快照可以被比较以用于数据完整性验证和/或应用恢复。可以领会到的是,利用快照以用于数据完整性验证和/或应用恢复可以针对任何类型的计算环境和/或在任何类型的计算环境之间被实现,并且可以在物理设备(例如,节点202、主机设备205、台式计算机、平板计算机、笔记本计算机、可穿戴设备、移动设备、存储设备、服务器等)和/或云计算环境(例如,原理节点202和/或主机设备205)之间可转移。

利用快照以用于数据完整性验证和/或应用恢复的一个实施例由图3的示例性方法300示出。第一存储控制器可以托管第一存储装置,客户端可以在第一存储装置内存储数据。第一存储控制器可以与第二存储控制器(例如,被托管在与第一存储控制器相同的存储站点内,或者被托管在远程存储站点(诸如与第一存储控制器不同的建筑物、城市或位置)内)具有同步复制关系,从而使得数据从第一存储装置被复制到第二存储控制器可访问的第二存储装置。例如,当同步复制关系是同步的时,传入操作(例如,修改第一存储装置的客户端写入操作)可以在第一存储装置上被本地实现,并且在传入操作被确认回客户端之前,传入操作可以被复制到第二存储控制器以用于在第二存储装置上的远程实现。同步复制关系可以针对文件、lun、文件和/或lun的一致性组、目录、卷和/或任何其他存储对象而被定义。第二存储控制器可以被配置为用于第一存储控制器的灾难恢复伙伴,从而使得如果第一存储控制器发生故障,则第二存储控制器可以向客户端提供对先前可通过发生故障的第一存储控制器访问的复制的数据(例如,从第一存储装置被复制到第二存储装置的数据,第二存储装置所有权可以由第二存储控制器接管)的故障转移访问。

在同步复制的示例中,以第一存储装置内的存储对象为目标的操作可以从客户端被接收(例如,客户端写入操作,用来修改文件、lun、一致性组、目录或由同步复制关系指定的任何其他存储对象)。响应于确定同步复制关系应用于存储对象,操作可以被拆分为复制操作。该操作可以在存储对象上被本地实现。复制操作可以被发送给第二存储控制器以用于在第二存储装置内的复制的存储对象上的远程实现。复制的存储对象对应于存储对象的镜像/副本。响应于操作和复制操作完成,确认可以被提供回给客户端。

在302处,快照复制策略规则可以针对同步复制关系而被定义。快照复制策略规则可以指定复制标签(例如,串,诸如“myvalidationsnapshots(我的验证快照)”,不常被用于快照)将被用于以第一存储装置为目标的快照创建请求,这些快照创建请求将被复制到第二存储装置。快照复制策略规则(例如,对应于用于同步复制数据路径的配置的快照复制策略内的规则)可以被附加到同步复制关系。

在304处,用来发布包括复制标签的快照创建请求的快照创建策略可以被创建。在示例中,快照创建策略可以被附加到第一存储装置(例如,被附加到卷)。例如,快照创建策略可以包括用于快照策略的调度参数,以利用复制标签来创建快照创建请求。

在示例中,复制机制(例如,应用一致快照(acs)复制机制)可以接收快照创建请求。复制机制可以评估快照创建请求以确定快照创建请求是否包括在快照复制策略规则中被指定的复制标签。响应于快照创建请求不包括复制标签,第一存储控制器处的第一存储装置的快照可以被创建,而不需要在第二存储控制器处创建第二存储装置的对应复制快照。

响应于快照创建请求包括复制标签,第一存储装置的快照可以在306处在第一存储控制器处被创建。在308处,快照创建请求可以基于包括复制标签的快照创建请求而被复制到第二存储控制器,从而使得第二存储装置的复制快照在第二存储控制器处被创建。以这种方式,快照和复制快照应当是第一存储装置和第二存储装置的一致时间点表示,并且因此可以被评估以确定同步复制是否被正确地执行。

在310处,快照和复制快照可以被比较以用于数据完整性验证(例如,被比较以确定复制快照是否包括与快照相同的数据,因此第一存储装置和第二存储装置包括相同的数据,这可以指示数据正从第一个存储装置被正确地复制到第二存储装置)。在示例中,响应于快照和复制快照包括不同数据,确定可以被做出:基于同步复制关系的第一存储控制器和第二存储控制器之间的同步复制未被正确地执行。在另一示例中,复制操作到第二存储装置的依赖写入顺序一致性可以基于快照和复制快照的比较而被查证(例如,如果写入操作a依赖于写入操作b的完成,则复制的写入操作b应当在复制的写入操作a之前由第二存储控制器实现)。

在示例中,快照可以是与利用第一存储装置(例如,数据库应用)的应用相关联的应用一致快照,并且复制快照可以是复制应用一致快照。例如,应用一致快照和复制应用一致快照可以响应于被集成在应用内存储系统复制模块发布存储操作系统api命令(诸如zapi命令,包括复制标签作为快照创建请求)而被创建。特别地,应用可以被查阅以确定用于该应用的一致时间点(例如,数据库可能从午夜到凌晨1:00几乎没有或没有客户端访问)。相应地,包括复制标签的快照创建请求可以基于一致时间点而被发送。

应用一致快照和/或复制应用一致快照可以被用来在先前使用第一存储装置快速地恢复应用,以在第一存储控制器发生故障或故障转移命令被接收到的情况中使用第二存储装置。响应于接收故障转移命令或标识故障,用于向客户端提供对第二存储装置内的复制的数据的故障转移访问的、从第一存储控制器到第二存储控制器的故障转移操作可以被执行。在示例中,故障转移操作可以在创建应用一致快照和/或复制应用一致快照的阈值时间内(例如,同时)被触发,这可以缓解在使用应用一致快照和/或复制应用一致快照以用于恢复应用时的数据丢失(例如,改进恢复时间目标(rto)以更快地恢复应用,这可以通过折衷具有一些数据丢失的恢复点目标(rpo)而被改进,并且这样的数据丢失可以通过减少创建应用一致快照和触发故障转移之间的时间而被缓解)。以这种方式,复制应用一致快照可以被用来恢复应用以利用第二存储装置代替第一存储装置。应用可以更快地恢复,因为复制应用一致快照被使用,并且因此向前滚动、向后滚动和/或其他恢复开销处理可能不需要。

图4a至图4c示出了用于利用快照以用于数据完整性验证的系统400的示例。图4a示出了托管第一存储装置408的第一存储控制器402,其具有与托管第二存储装置410的第二存储控制器404的同步复制关系412(例如,文件、lun、文件或lun的一致性组、目录和/或任何其他存储对象可以作为复制的数据从第一存储装置408被同步复制到第二存储装置410)。第一存储控制器402可以能够通过网络406与第二存储控制器404通信。第二存储控制器404可以被配置为用于第一存储控制器402的灾难恢复伙伴,从而使得在第一存储控制器402发生故障的情况中,第二存储控制器404可以向客户端提供对复制的数据(例如,从第一存储装置408被复制到第二存储装置410的数据)的故障转移访问。

快照复制策略规则414可以针对同步复制关系412而被定义。快照复制策略规则414可以指定复制标签(例如,诸如“validationsnapshot(验证快照)”的串)可以被用来标记要被复制到第二存储装置410的、以第一存储装置408为目标的快照创建请求。快照创建策略416可以被创建以发布具有复制标签的快照创建请求。在示例中,快照创建策略416可以与第一存储控制器402分离地被托管在未被示出的应用服务器上。

图4b示出了基于快照创建策略416、利用复制标签而被创建的快照创建请求420(例如,应用服务器可以创建快照创建请求420并向第一存储控制器402发布快照创建请求420)。快照复制策略规则414可以被用来评估快照创建请求420以确定快照创建请求420包括指示快照创建请求420将被复制到第二存储装置410的复制标签。相应地,快照创建请求420可以在第一存储装置408上被本地实现,以创建包括第一存储装置408内的数据的时间点表示的快照422。快照创建请求420可以被复制到第二存储控制器404以用于创建包括第二存储装置410内的数据的时间点表示的复制快照424。

图4c示出了快照422和复制快照424被比较430以用于数据完整性验证和/或依赖写入顺序一致性验证。在数据完整性验证的示例中,快照422和复制快照424可以被评估以确定在快照被创建时第一存储装置408和第二存储装置410的数据是相同(例如,同步复制正在正确地工作以将以第一存储装置408为目标的操作复制到第二存储装置410)还是不同(例如,同步复制没有正确地工作,并且因此故障排除可以被执行)。在依赖写入顺序一致性查证的示例中,快照422和复制快照424的内容可以被评估以确定在第二存储装置410上正被实现的复制的操作是否是保持操作之间的依赖性的正确顺序。

图5a至图5c示出了用于利用快照以用于应用恢复(例如,应用一致快照、公共快照等)的系统500的示例。图5a示出了托管第一存储装置508的第一存储控制器502,其具有与托管第二存储装置510的第二存储控制器504的同步复制关系512。第一存储控制器502可以能够通过网络506与第二存储控制器504通信。第二存储控制器504可以被配置为用于第一存储控制器502的灾难恢复伙伴,从而使得在第一存储控制器502发生故障的情况中,第二存储控制器504可以向客户端提供对复制的数据(例如,从第一存储装置508被复制到第二存储装置510的数据)的故障转移访问。第一存储控制器502可以托管利用第一存储装置508的应用507,诸如数据库应用。应用507可以与应用感知插件509相关联,应用感知插件509被配置为通过与应用507协调来决定应用一致快照(例如,在针对应用507的应用一致时间点处被创建的快照)何时被创建。

快照复制策略规则514可以针对同步复制关系512而被定义。快照复制策略规则514可以指定复制标签(例如,诸如“appconsistentsnapshot(应用一致快照)”的串)将被用来标记要被复制到第二存储装置510的、以第一存储装置508为目标的快照创建请求。

图5b示出了由应用感知插件509利用复制标签创建的快照创建请求520。例如,应用507可以被查阅以确定用于应用507的应用一致的时间点(例如,对数据库应用几乎没有或没有客户端访问的时间段)。快照创建请求520可以基于应用一致时间点而被发送,从而使得第一存储装置508和第二存储装置510的快照在用于应用507的应用一致时间点处被创建。快照创建请求520可以被发布给第一存储控制器502(例如,与应用507集成的存储系统复制模块可以发布存储操作系统api命令,诸如zapi命令,其包括复制标签作为快照创建请求520)。快照复制策略规则514可以被用来评估快照创建请求520以确定快照创建请求520包括指示快照创建请求520将被复制到第二存储装置510的复制标签。相应地,快照创建请求520可以在第一存储装置508上被本地实现,以创建包括第一存储装置508内的数据的时间点表示的应用一致快照522。快照创建请求520可以被复制到第二存储控制器504以用于创建包括第二存储装置510内的数据的时间点表示的复制应用一致快照524。

图5c示出了正被执行的、从第一存储控制器502向第二存储控制器504的故障转移操作552。在示例中,故障转移操作552可以响应于第一存储控制器502的故障550而被执行。在另一示例中,故障转移操作552可以是计划的故障转移操作,其中存储管理员正计划关闭或重启第一存储控制器502,并且因此,故障转移操作552可以在从应用一致快照522和/或复制应用一致快照524的创建起的阈值时间量内被执行,这可以缓解数据丢失(例如,并且改进恢复点目标(rpo)),数据丢失否则在快照被创建之后并且在故障转移操作552被执行之前被实现的操作中发生。以这种方式,第二存储控制器504可以接管第一存储控制器502(例如,获得对第二存储装置510的访问以用于向客户端提供对从第一存储装置508被复制到第二存储装置510的复制的数据的故障转移访问,以代替提供对第一存储装置508内的原始数据的主要访问的第一存储控制器502)。复制应用一致快照524可以被用来高效且快速地(例如,不执行回滚、向前滚动和/或其他时间和资源密集型任务)将应用507恢复556作为恢复的应用554,恢复的应用554将利用第二存储装置510代替先前使用第一存储装置508(例如,数据库应用现在可以使用第二存储装置510以用于维护数据库)。在示例中,在访问被提供给应用507之前,文件和/或lun可以被恢复回一致的快照。

又一实施例涉及一种包括处理器可执行指令的计算机可读介质,处理器可执行指令被配置为实现本文所呈现的技术中的一种或多种技术。以这些方式被设计的计算机可读介质或计算机可读设备的示例实施例在图6中被示出,其中实现方式600包括计算机可读介质608,诸如cd-r、dvd-r、闪存驱动、硬盘驱动的盘片等,其上是编码的计算机可读数据606。这一计算机可读数据606(诸如包括零或一中的至少一个的二进制数据)转而包括处理器可执行计算机指令604,处理器可执行计算机指令604被配置为根据本文所阐述的一个或多个原理操作。在一些实施例中,处理器可执行计算机指令604被配置为例如执行方法602,诸如图3的示例性方法300中的至少一些。在一些实施例中,处理器可执行计算机指令604被配置为例如实现系统,诸如图4a至图4c的示例性系统400中的至少一些和/或图5a至图5c的示例性系统500中的至少一些。许多这样的计算机可读介质被预期根据本文所呈现的技术操作。

将领会到的是,本文所描述的过程、架构和/或程序可以在硬件、固件和/或软件中被实现。还将领会到的是,本文所述的规定可以应用于任何类型的专用计算机(例如,文件主机、存储服务器和/或存储服务设备)和/或通用计算机,包括被体现为或包括存储系统的独立计算机或它的一部分。此外,本文的教导可以被配置为各种存储系统架构,包括但不限于网络附接存储环境和/或被直接附接到客户端或主机计算机的存储区域网络和磁盘组件。因此,除了被配置为执行存储功能并与其他装备或系统相关联的任何子系统之外,存储系统应当被广泛地采用以包括这样的布置。

在一些实施例中,本公开中所描述和/或说明的方法可以全部或部分地在计算机可读介质上被实现。计算机可读介质可以包括被配置为实现本文所呈现的方法中的一个或多个方法的处理器可执行指令,并且可以包括用于存储此后可以由计算机系统读取的这一数据的任何机制。计算机可读介质的示例包括(硬)驱动(例如,可经由网络附加存储(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或两组不同或两组相同的信息或同一组信息。

此外,尽管本公开内容已经关于一个或多个实现方式而被示出和描述,但是基于对本说明书和附图的阅读和理解,等同的改变和修改将被本领域技术人员想到。本公开内容包括所有这样的修改和变更,并且仅受所附权利要求的范围限制。特别是关于由上述部(例如,元件、资源等)件执行的各种功能,除非另有说明,否则被用来描述这些部件的术语旨在与执行所述部件的特定功能的任何部件(例如,功能上等同的)对应,即使在结构上不等同于所公开的结构。另外,虽然本公开内容的特定特征可能已经仅关于若干实施方式中的一个而被公开,但是这样的特征可以与其他实现方式的一个或多个其他特征组合,如对于任何给定或特定应用可能期望和有利的。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1