CN113448493B - 用于备份数据的方法、电子设备和计算机可读介质 - Google Patents

用于备份数据的方法、电子设备和计算机可读介质 Download PDF

Info

Publication number
CN113448493B
CN113448493B CN202010229730.4A CN202010229730A CN113448493B CN 113448493 B CN113448493 B CN 113448493B CN 202010229730 A CN202010229730 A CN 202010229730A CN 113448493 B CN113448493 B CN 113448493B
Authority
CN
China
Prior art keywords
workflow
copy
data source
workflows
parent
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
CN202010229730.4A
Other languages
English (en)
Other versions
CN113448493A (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.)
EMC Corp
Original Assignee
EMC IP Holding Co LLC
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 EMC IP Holding Co LLC filed Critical EMC IP Holding Co LLC
Priority to CN202010229730.4A priority Critical patent/CN113448493B/zh
Priority to US15/931,207 priority patent/US11321120B2/en
Publication of CN113448493A publication Critical patent/CN113448493A/zh
Application granted granted Critical
Publication of CN113448493B publication Critical patent/CN113448493B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/43Checking; Contextual analysis
    • G06F8/433Dependency analysis; Data or control flow analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • 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
    • 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]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44505Configuring for program initiating, e.g. using registry, configuration files
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/5038Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Databases & Information Systems (AREA)
  • Computing Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Computer Security & Cryptography (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本公开的实施例提供了一种用于备份数据的方法、电子设备和计算机程序产品。在此提出的方法包括创建与数据源有关的工作流,工作流用于生成数据源的副本或用于将数据源的副本复制到远程设备。该方法还包括标识工作流的依赖性,依赖性指示工作流是否依赖于与数据源有关的至少一个另外的工作流。该方法进一步包括至少基于标识的依赖性,调度工作流。根据本公开的实施例,利用基于依赖性的调度机制,可以提高存储系统的性能,节省对存储和内存等资源的消耗。

Description

用于备份数据的方法、电子设备和计算机可读介质
技术领域
本公开的实施例涉及数据存储领域,并且更具体地,涉及用于备份数据的方法、电子设备和计算机程序产品。
背景技术
各种存储系统和设备正在越来越多地被使用。为了更好地保护数据,一些存储系统(诸如,Data Domain,DD)支持将数据源的副本进一步复制到其他目的地,例如其他的存储系统或公有云等。用户可以配置是否将副本进一步复制到其他目的地以及复制到哪些目的地。在这样的存储系统中,将存在至少两大类的工作流,即,生成数据源的副本和将副本进一步复制到其他目的地。这两大类工作流的共存给存储系统的操作带来一些问题。
发明内容
本公开的实施例提供了一种用于备份数据的方案。
在本公开的第一方面中,提供了一种备份数据的方法。该方法包括创建与数据源有关的工作流,工作流用于生成数据源的副本或用于将数据源的副本复制到远程设备。该方法还包括标识工作流的依赖性,依赖性指示工作流是否依赖于与数据源有关的至少一个另外的工作流。该方法还包括至少基于标识的依赖性,调度工作流。
在本公开的第二方面中,提供了一种电子设备。该电子设备包括处理器以及与处理器耦合的存储器,存储器具有存储于其中的指令,指令在被处理器执行时使设备执行动作。动作包括创建与数据源有关的工作流,工作流用于生成数据源的副本或用于将数据源的副本复制到远程设备。动作还包括标识工作流的依赖性,依赖性指示工作流是否依赖于与数据源有关的至少一个另外的工作流。动作还包括至少基于标识的依赖性,调度工作流。
在本公开的第三方面中,提供了一种计算机程序产品,计算机程序产品被有形地存储在计算机可读介质上并且包括机器可执行指令,机器可执行指令在被执行时使机器执行根据第一方面的方法。
提供发明内容部分是为了简化的形式来介绍对概念的选择,它们在下文的具体实施方式中将被进一步描述。发明内容部分无意标识本公开的关键特征或主要特征,也无意限制本公开的范围。
附图说明
通过结合附图对本公开示例性实施例进行更详细的描述,本公开的上述以及其它目的、特征和优势将变得更加明显,其中,在本公开示例性实施例中,相同的参考标号通常代表相同部件。在附图中:
图1示出了本公开的实施例可以在其中被实现的示例环境的示意图;
图2示出了主副本向其他目的地的复制过程的流程图;
图3示出了根据本公开的一些实施例的备份数据的过程的流程图;
图4示出了根据本公开的一些实施例的配置文件的示意图;
图5示出了根据本公开的一些实施例的所创建的工作流的示意图;
图6示出了根据本公开的一些实施例的数据源、配置文件和工作流间的关系的示意图;
图7示出了根据本公开的一些实施例的工作流的调度的示意图;
图8示出了根据本公开的一些实施例的对工作流的跟踪的示意图;以及
图9示出了可以用来实施本公开的实施例的示例设备的框图。
具体实施方式
下面将参考附图中示出的若干示例实施例来描述本公开的原理。虽然附图中显示了本公开的优选实施例,但应当理解,描述这些实施例仅是为了使本领域技术人员能够更好地理解进而实现本公开,而并非以任何方式限制本公开的范围。
在本文中使用的术语“包括”及其变形表示开放性包括,即“包括但不限于”。除非特别申明,术语“或”表示“和/或”。术语“基于”表示“至少部分地基于”。术语“一个示例实施例”和“一个实施例”表示“至少一个示例实施例”。术语“另一实施例”表示“至少一个另外的实施例”。术语“第一”、“第二”等等可以指代不同的或相同的对象。下文还可能包括其他明确的和隐含的定义。
图1示出了本公开的实施例可以在其中被实现的示例环境100的示意图。在示例环境100中,被保护的数据源110的相关数据被复制至存储系统或存储设备120,从而在存储设备120处生成副本125。这样的副本125又可以称为主副本或主保护副本。尽管在图1中仅示出了一个副本125,但是应当理解,存储设备120处可以存在针对数据源110的多个副本,并且这样的副本可以是全副本或增量副本。
数据源110可以是虚拟机、数据库、文件系统等,也可以与虚拟机、数据库、文件系统等相关联。尽管仅示出一个数据源110,但是应当理解,存储设备120可以为一个或多个数据源提供数据保护服务。在一个示例中,存储设备120可以位于主数据中心。
为了更好地保护数据源110的数据,可以进一步将副本125复制到其他目的地,例如图1中所示的另一存储设备130和云140中的一个或多个。换言之,执行针对数据源110的次级备份或存储。存储设备130可以是远程于存储设备120的相同或不同类型的存储设备。在一个示例中,存储设备130可以位于不同于主数据中心的其他数据中心。云140可以是任何合适的私有云或公有云。在本文中,“云”指的是一种实现云计算模式的集成计算平台,其允许方便地以按需和易扩展的方式访问和使用计算资源的共享池。云有时也称为云平台或基于云的系统。
在示例环境100中,存在与副本125相关联的三大类的操作或功能。在存储设备120处对副本125的生成或修改可以称为主备份,副本125向远程的存储设备130的复制或发送可以称为副本复制或简称为复制,而副本125向云140的复制可以称为云层叠(cloudtier)。针对副本125的主备份、副本复制和云层叠并不是互相独立的。例如,副本复制和云层叠的执行依赖于主备份是否完成以及主备份是否成功生成了副本125。
在本文中,如果工作流A依赖于工作流B,则工作流A可以称为工作流B的子(child)工作流,而工作流B可以称为工作流A的父(parent)工作流。应当理解,子工作流和父工作流是相对的。在这种情况下,针对副本125的主备份工作流可以被认为是针对副本125的副本复制和云层叠工作流的父工作流。
在常规的存储系统或存储设备中,诸如以上描述的主备份、复制和云层叠操作分别具有其自身的策略配置并且在不同的工作流中被调度。换言之,在常规的存储系统或存储设备中,没有协调这些操作的实现。
这种常规实现会引起若干问题。首先,如果主备份工作流尚未完成(即,主副本尚未生成或正在被操作),而相关的复制或云层叠工作流被启动,则复制或云层叠工作流将由于缺少主副本而失败。另一个问题是,在复制或云层叠工作流开始得过晚的情况下,如果主副本的存储系统发生灾难性失效,则一些最新的主副本将丢失。受保护的系统将无法恢复到最新状态。此外,为了实现主副本的复制或云层叠,需要引入复杂的算法来跟踪和检查哪些主副本已被复制到次级存储系统。这将导致额外的存储空间和内存消耗以及性能下降。
下面以副本复制为例来说明常规方案中如何减轻以上问题。为了解决开始时间的问题,需要用户有意地将副本复制的开始时间设置为晚于主备份的结束时间。如果用户未能这样做,则将提示用户没有主副本能够被复制。
另外,针对副本复制操作,需要引入额外的标志来标记主副本是否被复制。针对每个复制调度,所有主副本将被扫描和检查以确定需要被复制的那些主副本。参考图2,其示出了主副本向目的地(例如,远程的存储设备)的复制过程200的流程图。
在框210,获得所有主副本的列表。这里的所有主副本针对同一数据源。在框220,确定该列表是否为空。如果列表为空,则过程200进行到框260,并且在框260结束。如果列表不为空,则过程200进行到框230。在框230,获得列表中的一个主副本。
在框240,基于例如所设置的标志,确定该主副本是否被复制到目的地。如果该主副本尚未被复制到目的地,则过程200进行到框250。在框260,该主副本被处理和复制,并且被标记为已复制到目的地。此后过程200返回到框220。如果在框240处,确定该副本已经被复制到目的地,则过程200返回到框220,以对列表中的其他副本执行相同过程。
本申请发明人认识到上述常规解决方案存在若干缺点。首先,这种解决方案对用户并不友好。用户需要指定针对复制活动窗口的值,例如开始和结束时间。如果不存在已经生成的主副本,那么由用户所指定的窗口将是空操作。
其次,这种解决方案造成了资源浪费。主副本可能要被复制到多个存储目的地。对于这些目的地中的每一个以及对于所有主副本,需要添加额外的属性来指示该主副本是否已经被复制到某个目的地,这造成了存储空间的浪费。另外,大量的主副本需要被缓存在存储器中以搜索那些要被复制的主副本(例如,过程200),这造成了存储器资源的浪费。
此外,即使大部分的主副本已经被复制,每次也需要对整个主副本列表进行搜索。这大大降低了存储系统的性能。
根据本公开的实施例,提供了一种用于备份数据的方案,以至少消除以上缺陷中的一个或多个。在本公开的实施例中,存储系统或存储设备创建与数据源相关的工作流。所创建的工作流可以用于生成数据源的副本或者将副本复制到其他设备,例如,另一存储设备或云。在创建工作流时或之后,存储设备可以标识该工作流的依赖性。依赖性指示工作流是否依赖于与数据源有关的至少一个其他工作流。例如,存储设备可以创建与数据源相关的多个工作流,例如主备份工作流、副本复制工作流、云层叠工作流,并且标识这些工作流间的依赖性。存储设备然后基于所标识的依赖性来调度工作流。
因此,根据本公开的实施例提出了一种基于依赖性的调度机制。利用此机制,依赖于父工作流的子工作流可以在父工作流终止后才能被调度,并且可以在父工作流终止后直接被调度。以此方式,可以仅按需来调用诸如副本复制或云层叠的工作流,并避免了扫描已经复制的副本。存储系统可以提高在副本复制和云层叠方面的性能,节省对存储和内存等资源的消耗,并且无需用户指定子工作流的调度时间,可以提高用户体验。
图3示出了根据本公开的实施例的备份数据的过程300的流程图。过程300可以在例如存储设备120处实现。为了便于讨论,结合图1来描述过程300。
在框310,存储设备120创建与数据源110有关的工作流。所创建的工作流可以用于在存储设备120处生成数据源110的副本,例如副本125。备选地或附加地,所创建的工作流可以用于将数据源110的副本125复制到远程设备,例如复制到存储设备130或云140中的至少一项。换言之,所创建的工作流可以是上文所描述的主备份工作流、副本复制工作流和云层叠工作流中的一项或多项。
在一些实施例中,在框310,存储设备120可以创建与数据源110有关的多个工作流。例如,存储设备120可以创建用于生成副本125的主备份工作流、用于将副本125复制到存储设备130的副本复制工作流、以及用于将副本125复制到云140的云层叠工作流。
在框320,存储设备120标识该工作流的依赖性。本文中所称的依赖性可以指示该工作流是否依赖于与数据源110有关的至少一个另外的工作流。该至少一个另外的工作流可以是已经被创建和调度(例如,正在执行)的工作流,也可以是被创建但尚未被调度的工作流。
作为一个示例,如果在框310创建了与数据源110有关的副本复制工作流,则可以标识该副本复制工作流依赖于与数据源110有关的主备份工作流。在一些实施例中,该主备份工作流可以是与该副本复制工作流一起在框310创建的。
在一些实施例中,如果存储设备120在框310创建多个工作流,则在框320,存储设备120标识该多个工作流之间的依赖性。例如,存储设备120可以将与数据源110有关的主备份工作流标识为不依赖于任何工作流,将与数据源110有关的副本复制工作流和云层叠工作流标识为依赖于与数据源110有关的主备份工作流。换言之,该主备份工作流是副本复制工作流和云层叠工作流的父工作流。
在一些实施例中,可以为所创建的工作流添加属性(例如,名为“依赖性”的属性)来标识该工作流的依赖性。该属性的值可以为空(NULL)以指示该工作流不依赖于任何其他工作流。该属性的值可以为所依赖的一个或多个父工作流的标识符ID,诸如通用唯一识别码UUID。
在一些实施例中,存储设备120可以基于配置文件来创建工作流和标识依赖性。这样的配置文件也可以称为策略设置文件。配置文件可以指示与数据源110有关的不同工作流之间的关联。例如,配置文件可以定义与数据源110的保护有关的多个阶段(stage),每个阶段对应于不同类型的工作流。配置文件可以进一步定义不同阶段之间的关联。存储设备120可以创建与配置文件定义的多个阶段相对应的多个工作流,并基于该多个阶段之间的关联标识所创建的多个工作流的依赖性。例如,存储设备120可以将父工作流的标识符与子工作流相关联。在这样的实施例中,可以简单地描述配置文件以找出具有父阶段而没有指定的调度时间的阶段,然后基于父阶段和子阶段来创建相关工作流并标识依赖性。
下面将参考图4和图5来描述一个示例。图4示出了根据本公开的一些实施例的配置文件400的示意图。示例配置文件400定义了两个阶段410和420。在该示例中,“TYPE”属性对于阶段410的属性值为“PROTECTION”,对于阶段420的属性值为“REPLICATION”。阶段410可以用于创建主备份工作流,而阶段420可以用于创建副本复制工作流。
对于阶段410,“sourceStageId”属性411的属性值为null,这指示基于阶段410而创建的工作流不依赖于任何其他工作流。“id”属性412的属性值指示阶段410的标识符,在此示例中为32字节的UUID。对于阶段420,“sourceStageId”属性421的属性值为阶段410的标识符,这指示基于阶段420创建的工作流依赖于基于阶段410创建的工作流。
另外,与阶段410相比,对于阶段420,“schedule”属性的属性值为null,这指示不需要为基于阶段420创建的工作流指定调度时间。存储设备120可以基于所标识的依赖性来调度所创建的工作流,如下文将参考框330而描述的。因此,在这样的实施例中,可以不指定子工作流的调度时间。
现在参考图5,其示出了根据本公开的一些实施例的所创建的工作流的示意图500。图5示出了根据阶段410而创建的工作流510和根据阶段420而创建的工作流520。在该示例中,工作流510用于在存储设备120处生成数据源110的副本,为主备份工作流;工作流520用于将数据源110的副本复制到远程的存储设备130,为副本复制工作流。
“_id”属性511和521的属性值是相应的工作流的标识符,在此示例中为32字节的UUID。“dependencies”属性512和522分别用于标识相应的工作流的依赖性。“stageId”属性513和523分别为创建相应的工作流所基于的阶段的标识符。
由于阶段410的“sourceStageId”属性411为null,因此工作流510的“dependencies”属性512的属性值也为null,这指示工作流510不依赖于其他工作流。同时,由于阶段420的“sourceStageId”属性421的属性值为阶段410的标识符,因此工作流520的“dependencies”属性522的属性值为工作流510的标识符,如图5中所示的。
以此方式,基于配置文件创建了工作流510和520,并且标识了工作流510和520的依赖性。在此示例中,工作流520可以被认为是工作流510的子工作流。应当理解,图5仅是示例性的而无意限制。一个工作流可以依赖于多个父工作流,多个工作流也可以依赖于同一个工作流。在这样的实施例中,利用配置文件中所定义的关联,可以自动确定不同工作流之间的依赖性,而无需任何用户介入。
现在参考图6,其示出了根据本公开的一些实施例的数据源、配置文件和工作流间的关系的示意图600。如前文所提及的,存储设备120可以用于保护不同类型的资产(asset)或数据源,诸如数据库、虚拟机VM、文件系统等。要被保护的数据源将被分配给或者关联于某个配置文件,并且基于该配置文件而创建的工作流将被应用于该数据源。
在图6的示例中,数据源611-614被分配给配置文件601,换言之数据源611-614将基于配置文件指示的策略被保护。存储设备120可以基于配置文件601,创建工作流模板602,其包括两个工作流。存储设备120可以将工作流模板602应用于到被分配给配置文件601的所有数据源611-614。
继续参考图3,在框330,存储设备120至少基于标识的依赖性来调度所创建的工作流。如果存储设备120确定所创建的工作流不依赖于其他工作流,例如“dependencies”属性的属性值为null,则可以执行该工作流。如果该工作流中指定了开始时间,则存储设备120可以根据所指定的开始时间来执行该工作流。例如,存储设备120可以直接调度并执行用于进行主备份的工作流510,因为其不依赖于任何其他工作流。
如果存储设备120确定所创建的工作流依赖于父工作流,例如“dependencies”属性的属性值指示其他工作流的标识符,存储设备120可以使得该工作流直到父工作流终止才能被调度。例如,在工作流510终止前,工作流520都不能被调度。
在一些实施例中,在某个工作流终止后,存储设备120可以确定依赖于该工作流的子工作流,并且确定子工作流不再依赖于该工作流,以允许该子工作流被调度。例如,在父工作流终止后,存储设备120可以将父工作流的标识符从子工作流的“dependencies”属性中移除。参考图5中的示例,在主备份工作流510终止后,主备份工作流510的标识符将从副本复制工作流520的“dependencies”属性中移除。相应地,副本复制工作流520的“dependencies”属性将变为null,使得副本复制工作流520能够被调度。
如前文所提及的,针对同一数据源可以存在多个相关联的工作流,例如基于配置文件创建的主备份工作流、副本复制工作流、云层叠工作流等。同时,还存在与不同数据源有关的工作流。为此,存储设备120可以通过维护待调度队列来管理这些工作流的调度。图7示出了根据本公开的一些实施例的工作流的调度的示意图700。
在图7的示例中,在时刻701,待调度队列至少包括工作流710、720、730和740。工作流710是基于配置文件1创建的与VM1有关的主备份工作流。工作流710的ID为UUID1,“dependencies”属性为null。
工作流720、730和740均是基于配置文件2创建的与VM2有关的工作流,其中工作流720是主备份工作流、工作流730是副本复制工作流、工作流740是云层叠工作流。工作流730和740的执行涉及由工作流720生成的针对VM2的副本,从而依赖于工作流720。相应地,工作流730和740的“dependencies”属性的属性值均包括工作流720的ID,即,UUID2。
在该示例中,存储设备120将首先调度工作流710和720,因为这两个工作流不依赖于其他工作流。例如,可以利用线程721和722分别执行工作流710和720。在工作流720终止后,存储设备120可以确定待调度队列中依赖于工作流720的子工作流,在此示例中为工作流730和740。进而,存储设备120可以标识工作流730和740不再依赖于工作流720,以允许工作流730和740被调度。例如,可以将工作流720的ID(即,UUID2)从工作流730和740的“dependencies”属性的属性值中移除。
在时刻702,工作流730和740依然位于待调度队列中,但“dependencies”属性已变为null,这指示工作流730和740被允许调度。存储设备120可以调度工作流730和740。例如,可以利用线程723和724分别执行工作流730和740。在时刻703,工作流730和740也已经终止。
在一些实施例中,在父工作流终止后,存储设备120可以确定父工作流对副本的操作结果,并且进一步基于父工作流对副本的操作结果来调度子工作流。如果父工作流成功生成了副本,则存储设备120可以执行相应的一个或多个子工作流,以将该副本复制到远程设备,例如远程的存储设备130或云140。例如,如果图7中的工作流720成功生成了副本,则存储设备120可以利用线程723来执行工作流730,以将该副本复制到存储设备130,并利用线程724执行工作流740,以将该副本复制到云140。
如果父工作流的终止是由于复制失败或其他错误,即,父工作流未成功生成副本,则相应的一个或多个子工作流将被取消。例如,如果图7中的工作流720未能成功生成副本,则存储设备120可以调度以取消工作流730和740。
在一些实施例中,可以对工作流进行跟踪,以记录与该工作流的执行有关的信息。例如,可以针对每个工作流或每个具有子工作流的工作流创建任务活动(job activity)来记录副本的状态和信息等。图8示出了根据本公开的一些实施例的对工作流的跟踪的示意图800。在该示例中,作为主备份工作流的工作流510由任务活动830跟踪。任务活动830中的“status”属性可以用于标识副本是否被成功生成,在该示例中,“OK”指示成功生成副本。属性832和833可以利用所保护的数据源(例如,数据源110)的标识符来标识工作流510与该数据源相关。属性834和835可以指示工作流510所生成的副本的标识符,使得作为子工作流的工作流520能够获得其要操作的副本。
在工作流510终止后,存储设备120可以基于工作流510的执行来确定任务活动830中的各个属性的属性值。如果工作流510未能成功生成副本,例如“status”属性指示失败或被取消,则工作流520可以被取消。如果工作流510成功生成副本,则所生成的副本的ID将被记录在“protectionCopyId”域中。工作流520将被执行,并且仅处理“protectionCopyId”域所指示的副本,而无需对所有副本进行扫描。
以上描述了本公开的一些实施例中,通过标识工作流的依赖性并基于依赖性来调度工作流,依赖于其他工作流的子工作流仅在存在主副本的情况下才被执行。与之相比,在常规方案中,周期性调度的子工作流很可能由于缺少主副本而中止。以此方式,用户体验得以提高。
与常规方案相比,根据本公开的实施例可以减少所占用的存储空间。在常规解决方案中,使用32字节的UUID来记录副本是否已经被复制到其他目的地,如参考图2所描述的过程。参考存储系统一种常见的情况,即两地三中心,需要在2个不同的地点对副本进行保护,其中每个地点具有3个不同的数据中心。也就是说,除了副本之外,需要6个冗余副本。需要对4种类型的数据源或资产进行保护,例如虚拟机、文件系统、数据库1和数据库2,并且每种类型的数据源具有1000个受保护的数据源,而每个数据源又具有1000个副本。每个副本又需要32字节的UUID来记录该副本是否被复制到目的地。对于这种情况,需要额外消耗的存储空间大小为6*4*32*1k*1K=768M。在根据本公开的一些实施例中,副本在生成后立即被复制到不同目的地,而无需对所有副本进行扫描。因此,也不再需要记录该副本是否被复制到目的地。
与常规方案相比,根据本公开的实施例可以使用较少的存储器资源。在常规解决方案中,当搜索以确定哪些副本需要被复制到目的地时,针对给定类型的所有数据源的所有副本都将被缓存在存储器中。假设受保护的每种类型的数据源具有1000个受保护的数据源,而每个数据源又具有1000个主副本,每个副本平均约512字节大小。在这种情况下,在针对一种类型的数据源进行搜索时,需要消耗的存储器资源为512*1k*1K=512M。与之相比,在根据本公开的实施例中,仅针对给定数据源的最新生成的副本需要被处理。因此,仅消耗512字节的存储器资源。
在常规解决方案中,为了找出那些副本需要被复制到目的地,针对给定类型的数据源的所有副本都需要被扫描和检查。本申请的发明人通过测试发现,在复制大小为2.5K的虚拟机数据源时,复制一个新的副本耗时4s,但扫描135个副本要耗时256ms,则扫描100万个副本(1000个数据源,每个数据源1000个副本)将耗时约32分钟,即约1k*1k/135*256ms。与之相比,在根据本公开的实施例中,仅针对给定数据源的最新生成的副本需要被处理,因而耗时约4s即可完成2.5K虚拟机数据源的复制。因此,本公开的实施例提高了存储系统的性能。
另外,本公开的实施例也可以提高存储系统的可靠性。最新生成的副本可以及时复制到其他目的地。在主数据中心发生故障或因其他问题而意外关机的情况下,数据可以被恢复到自上次备份的最新状态。
图9示出了可以用来实现本公开的实施例的示例设备900的示意性框图。如图所示,设备900包括中央处理单元(CPU)901,其可以根据存储在只读存储器(ROM)902中的计算机程序指令或者从存储单元908加载到随机访问存储器(RAM)903中的计算机程序指令,来执行各种适当的动作和处理。在RAM 903中,还可存储设备900操作所需的各种程序和数据。CPU 901、ROM 902以及RAM 903通过总线904彼此相连。输入/输出(I/O)接口905也连接至总线904。
设备900中的多个部件连接至I/O接口905,包括:输入单元906,例如键盘、鼠标等;输出单元907,例如各种类型的显示器、扬声器等;存储单元908,例如磁盘、光盘等;以及通信单元909,例如网卡、调制解调器、无线通信收发机等。通信单元909允许设备900通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
处理单元901执行上文所描述的各个方法和处理,例如过程300。例如,在一些实施例中,过程300可以被实现为计算机软件程序或计算机程序产品,其被有形地包含于机器可读介质,例如存储单元908。在一些实施例中,计算机程序的部分或者全部可以经由ROM 902和/或通信单元909而被载入和/或安装到设备900上。当计算机程序加载到RAM 903并由CPU901执行时,可以执行上文描述的过程300的一个或多个步骤。备选地,在其他实施例中,CPU901可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行过程300。
根据本公开的一些实施例,提供了一种计算机可读介质,其上存储有计算机程序,该程序被处理器执行时实现根据本公开的方法。
本领域的技术人员应当理解,上述本公开的方法的各个步骤可以通过通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而可以将它们存储在存储装置中由计算装置来执行,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本公开不限制于任何特定的硬件和软件结合。
应当理解,尽管在上文的详细描述中提及了设备的若干装置或子装置,但是这种划分仅仅是示例性而非强制性的。实际上,根据本公开的实施例,上文描述的两个或更多装置的特征和功能可以在一个装置中具体化。反之,上文描述的一个装置的特征和功能可以进一步划分为由多个装置来具体化。
以上所述仅为本公开的可选实施例,并不用于限制本公开,对于本领域的技术人员来说,本公开可以有各种更改和变化。凡在本公开的精神和原则之内,所作的任何修改、等效替换、改进等,均应包含在本公开的保护范围之内。

Claims (13)

1.一种备份数据的方法,包括:
创建与数据源有关的工作流,所述工作流用于生成所述数据源的副本或用于将所述数据源的副本复制到远程设备;
标识所述工作流的依赖性,所述依赖性指示所述工作流是否依赖于与所述数据源有关的至少一个另外的工作流;以及
至少基于标识的所述依赖性,调度所述工作流,其中调度所述工作流包括:
响应于所述工作流所依赖的父工作流的终止,将所述工作流标识为被允许调度;
根据确定所述工作流被允许调度,确定所述父工作流对所述副本的操作结果;以及
进一步基于所述操作结果来调度所述工作流。
2.根据权利要求1所述的方法,其中调度所述工作流包括:
根据确定所述工作流不依赖于与所述数据源有关的另外的工作流,执行所述工作流。
3.根据权利要求2所述的方法,还包括:
响应于所述工作流的终止,确定依赖于所述工作流的子工作流;以及
确定所述子工作流不再依赖于所述工作流,以允许所述子工作流被调度。
4.根据权利要求1所述的方法,其中进一步基于所述操作结果来调度所述工作流包括:
根据确定所述父工作流成功生成所述副本,执行所述工作流,以将所述副本复制到所述远程设备;以及
根据确定所述父工作流未成功生成所述副本,取消所述工作流。
5.根据权利要求1所述的方法,其中标识所述工作流的依赖性包括:
获取用于所述数据源的配置文件,所述配置文件指示与所述数据源有关的不同工作流之间的关联;
基于所述配置文件,确定所述工作流是否依赖于所述至少一个另外的工作流;以及
根据确定所述工作流依赖于所述至少一个另外的工作流,将所述至少一个另外的工作流的标识符与所述工作流相关联。
6.根据权利要求1所述的方法,其中所述数据源包括以下至少一项:虚拟机,数据库,或文件系统。
7.一种电子设备,包括:
处理器;以及
与所述处理器耦合的存储器,所述存储器具有存储于其中的指令,所述指令在被处理器执行时使所述设备执行动作,所述动作包括:
创建与数据源有关的工作流,所述工作流用于生成所述数据源的副本或用于将所述数据源的副本复制到远程设备;
标识所述工作流的依赖性,所述依赖性指示所述工作流是否依赖于与所述数据源有关的至少一个另外的工作流;以及
至少基于标识的所述依赖性,调度所述工作流,其中调度所述工作流包括:
响应于所述工作流所依赖的父工作流的终止,将所述工作流标识为被允许调度;
根据确定所述工作流被允许调度,确定所述父工作流对所述副本的操作结果;以及
进一步基于所述操作结果来调度所述工作流。
8.根据权利要求7所述的设备,其中调度所述工作流包括:
根据确定所述工作流不依赖于与所述数据源有关的另外的工作流,执行所述工作流。
9.根据权利要求8所述的设备,其中所述动作还包括:
响应于所述工作流的终止,确定依赖于所述工作流的子工作流;以及
确定所述子工作流不再依赖于所述工作流,以允许所述子工作流被调度。
10.根据权利要求7所述的设备,其中进一步基于所述操作结果来调度所述工作流包括:
根据确定所述父工作流成功生成所述副本,执行所述工作流,以将所述副本复制到所述远程设备;以及
根据确定所述父工作流未成功生成所述副本,取消所述工作流。
11.根据权利要求7所述的设备,其中标识所述工作流的依赖性包括:
获取用于所述数据源的配置文件,所述配置文件指示与所述数据源有关的不同工作流之间的关联;
基于所述配置文件,确定所述工作流是否依赖于所述至少一个另外的工作流;以及
根据确定所述工作流依赖于所述至少一个另外的工作流,将所述至少一个另外的工作流的标识符与所述工作流相关联。
12.根据权利要求7所述的设备,其中所述数据源包括以下至少一项:虚拟机,数据库,或文件系统。
13.一种计算机可读介质,其上存储有机器可执行指令,所述机器可执行指令在被执行时使机器执行根据权利要求1至6中任一项所述的方法。
CN202010229730.4A 2020-03-27 2020-03-27 用于备份数据的方法、电子设备和计算机可读介质 Active CN113448493B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN202010229730.4A CN113448493B (zh) 2020-03-27 2020-03-27 用于备份数据的方法、电子设备和计算机可读介质
US15/931,207 US11321120B2 (en) 2020-03-27 2020-05-13 Data backup method, electronic device and computer program product

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010229730.4A CN113448493B (zh) 2020-03-27 2020-03-27 用于备份数据的方法、电子设备和计算机可读介质

Publications (2)

Publication Number Publication Date
CN113448493A CN113448493A (zh) 2021-09-28
CN113448493B true CN113448493B (zh) 2024-04-26

Family

ID=77807807

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010229730.4A Active CN113448493B (zh) 2020-03-27 2020-03-27 用于备份数据的方法、电子设备和计算机可读介质

Country Status (2)

Country Link
US (1) US11321120B2 (zh)
CN (1) CN113448493B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11543930B2 (en) * 2020-11-10 2023-01-03 RealFar Ltd Augmenting web applications with optimized workflows supporting user interaction

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106294533A (zh) * 2015-06-24 2017-01-04 伊姆西公司 使用数据库复制的分布式工作流
CN107810509A (zh) * 2015-06-23 2018-03-16 微软技术许可有限责任公司 工作流生成和编辑
CN108108372A (zh) * 2016-11-25 2018-06-01 中兴通讯股份有限公司 一种数据冲突自动校正处理方法及装置
CN109313595A (zh) * 2016-04-29 2019-02-05 Netapp股份有限公司 跨平台复制
CN110603524A (zh) * 2017-02-05 2019-12-20 华睿泰科技有限责任公司 用于编排的工作负载的依赖性分析的方法和系统
CN110795479A (zh) * 2019-10-08 2020-02-14 中国建设银行股份有限公司 基于数据的分布式etl调度的方法和装置

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9417918B2 (en) * 2013-11-20 2016-08-16 International Business Machines Corporation Computing session workload scheduling and management of parent-child tasks
US9430290B1 (en) * 2015-03-31 2016-08-30 International Business Machines Corporation Determining storage tiers for placement of data sets during execution of tasks in a workflow
US10698631B2 (en) * 2018-02-13 2020-06-30 International Business Machines Corporation Point-in-time copy with target write optimization

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107810509A (zh) * 2015-06-23 2018-03-16 微软技术许可有限责任公司 工作流生成和编辑
CN106294533A (zh) * 2015-06-24 2017-01-04 伊姆西公司 使用数据库复制的分布式工作流
CN109313595A (zh) * 2016-04-29 2019-02-05 Netapp股份有限公司 跨平台复制
CN108108372A (zh) * 2016-11-25 2018-06-01 中兴通讯股份有限公司 一种数据冲突自动校正处理方法及装置
CN110603524A (zh) * 2017-02-05 2019-12-20 华睿泰科技有限责任公司 用于编排的工作负载的依赖性分析的方法和系统
CN110795479A (zh) * 2019-10-08 2020-02-14 中国建设银行股份有限公司 基于数据的分布式etl调度的方法和装置

Also Published As

Publication number Publication date
US11321120B2 (en) 2022-05-03
CN113448493A (zh) 2021-09-28
US20210303339A1 (en) 2021-09-30

Similar Documents

Publication Publication Date Title
EP3387528B1 (en) Updating dependent services
JP5970617B2 (ja) 開発支援システム
US8938421B2 (en) Method and a system for synchronizing data
US10621211B2 (en) Language tag management on international data storage
US7992148B2 (en) Issuing syncpoints during execution of a batch application to minimize or eliminate periods of record unavailability due to batch related record locking
US20120130906A1 (en) Deployment mechanism for non-versioning business process artifacts
EP2959387B1 (en) Method and system for providing high availability for state-aware applications
JP5705871B2 (ja) 分散された永続性インスタンスに対するロックの解決
WO2012054192A2 (en) Web service patterns for globally distributed service fabric
GB2513528A (en) Method and system for backup management of software environments in a distributed network environment
CN109522043B (zh) 一种配置数据的管理方法、装置及存储介质
CN112445519B (zh) 文件变更控制方法、装置、设备及存储介质
CN113448493B (zh) 用于备份数据的方法、电子设备和计算机可读介质
CN110609731B (zh) 用于管理虚拟机的方法、设备和计算机程序产品
JP2013534347A (ja) 高性能コンピューティングアプリケーションの実行のためのシステムおよび方法
CN110045983B (zh) 版本库管理方法、装置及服务器
US10140155B2 (en) Dynamically provisioning, managing, and executing tasks
CN111078669B (zh) 基于名字解析树的处理方法、装置、设备及存储介质
US8656410B1 (en) Conversion of lightweight object to a heavyweight object
CN113553264A (zh) 测试数据生成方法、装置、电子设备及介质
US20240256397A1 (en) Service/Workload Recovery And Restoration In Container Orchestration Systems
CN116893834B (zh) 负载更新方法、装置、系统、电子设备及可读存储介质
US11281494B2 (en) Business operation method, apparatus, and system for determining and executing operation tasks in cloud computing
CN111221552A (zh) 一种基于分布式资源管理组件drm的实例更新方法
CN115481156A (zh) 一种数据处理方法、装置、设备及介质

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