CN116804944A - 可扩展数据保护环境中的自适应数据移动器资源分配 - Google Patents

可扩展数据保护环境中的自适应数据移动器资源分配 Download PDF

Info

Publication number
CN116804944A
CN116804944A CN202310289326.XA CN202310289326A CN116804944A CN 116804944 A CN116804944 A CN 116804944A CN 202310289326 A CN202310289326 A CN 202310289326A CN 116804944 A CN116804944 A CN 116804944A
Authority
CN
China
Prior art keywords
data
asset
backup
deduplication
proxy
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.)
Pending
Application number
CN202310289326.XA
Other languages
English (en)
Inventor
G·B·多希
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.)
Dell Products LP
Original Assignee
Dell Products LP
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 Dell Products LP filed Critical Dell Products LP
Publication of CN116804944A publication Critical patent/CN116804944A/zh
Pending legal-status Critical Current

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/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/505Allocation 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 load
    • 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/1453Management of the data involved in backup or backup restore using de-duplication of the data
    • 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
    • G06F11/1464Management of the backup or restore process for networked environments
    • 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/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • 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/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • G06F9/5016Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
    • 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/5061Partitioning or combining of resources
    • G06F9/5072Grid computing
    • 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/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/4557Distribution of virtual machine instances; Migration and load balancing
    • 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/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45595Network integration; Enabling network access in virtual machine instances
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Quality & Reliability (AREA)
  • Mathematical Physics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明涉及可扩展数据保护环境中的自适应数据移动器资源分配。一种示例性方法包括:获得关于资产组中的每个资产的相应信息;执行重复数据删除检查以识别将对所述资产的备份执行重复数据删除的实体;基于获得的关于所述资产组的信息,并基于所述重复数据删除检查的结果,对创建所述备份所需的一个或多个代理实例的大小进行调整;生成所述代理实例;以及使用所述代理实例来创建数据资产的所述备份。

Description

可扩展数据保护环境中的自适应数据移动器资源分配
技术领域
本发明的实施方式总体上涉及计算环境中的资源分配。更具体地,本发明的至少一些实施方式涉及优化用于执行数据保护操作的资源分配的系统、硬件、软件、计算机可读介质和方法。
背景技术
数据保护环境中的一个持续问题是如何优化完成数据保护软件中的数据移动作业的成本和时间,以便客户在尽可能短的时间内完成工作的同时,承担尽可能低的成本。
例如,数据保护解决方案(如DellEMC电源保护数据管理器(Power Protect dataManager,PPDM)和DellEMC云快照管理器(Cloud Snapshot Manager,CSM))具有数据移动器或计算实例,这些数据移动器或计算实例可操作以将数据从主要/生产存储器移动到辅助/目标存储器,如DellEMC数据域(data Domain,DD)平台。在某些环境中,此类数据保护解决方案在操作时会按需为每个数据拷贝作业创建数据移动器实例。根据CPU和内存,这些计算实例被分配了固定大小的资源。这种固定大小的分配要么导致资源利用不足并相应地导致资源浪费,要么导致资源分配不足并相应的导致作业所需资源的短缺。在任何一种情况下,都会产生不必要的成本,并且资源未得到最佳利用。如果作业缺少所需的资源,则该作业可能需要更多的时间才能完成。
附图说明
为了描述可以获得本发明的至少一些优点和特征的方式,将参考在附图中示出的本发明的特定实施方式来更具体地描述本发明的实施方式。应理解,这些附图仅描绘了本发明的典型实施方式,并且因此不应被认为是对其范围的限制,将通过使用附图用附加的特征和细节来描述和解释本发明的实施方式。
图1公开了根据一些实施方式的示例性架构和操作环境的各个方面。
图2示出了根据一些实施方式的用于自适应数据移动器创建的示例性方法的各个方面。
图3公开了可操作成执行任何所公开的方法、过程和操作的示例性计算实体的各个方面。
具体实施方式
本发明的实施方式总体上涉及计算环境中的资源分配。更具体地,本发明的至少一些实施方式涉及优化用于执行数据保护操作的资源分配的系统、硬件、软件、计算机可读介质和方法。
总体来讲,本发明的示例性实施方式可以提供一种自适应系统,该系统基于标准创建数据移动器实例,所述标准例如但不限于,将从中拷贝数据的数据源的数量、以及将在客户端方还是在服务器方执行重复数据删除(如果执行的话)。特别地,数据移动器实例的数量也可以参考基准测试过程的结果来确定,该基准测试过程识别支持单个数据流的拷贝所需的相应资源量,例如CPU和RAM。该资源信息与要拷贝的流的数量和重复数据删除的执行的知识相结合,可以准确确定将要创建的数据移动器实例的数量。在一些实施方式中,可以优化数据移动器的数量,使得仅创建所需数量的数据移动器,而不是更多或更少的数据移动器,以支持数据保护过程。相应地,在这样的实施方式中,仅向该数据保护过程分配所需的资源量,而不是更多或更少的资源量。
本发明的实施方式(例如本文所公开的示例)可以在各种方面是有利的。例如,并且如根据本发明而显然的是,本发明的一个或多个实施方式可以以任何组合提供一个或多个有利且意想不到的效果,其一些示例如下所述。应当注意的是,这种效果不意图也不应当解释成以任何方式限制本发明的范围。还应当注意的是,本文中的任何内容都不应当解释成构成任何发明或实施方式的必要的或必不可少的元素。而是,所公开的实施方式的各个方面可以以各种方式组合以定义其他实施方式。这些其他实施方式被认为是在本发明的范围内。此外,在本发明的范围内的任何实施方式都不应当解释成解决或限于解决任何(一个或多个)特定问题。任何这种实施方式也不应当解释成实现或限于实现任何(一个或多个)特定技术效果或(一个或多个)特定技术方案。最后,不要求任何实施方式都能实现本文所公开的任何有利且意想不到的效果。
特别地,实施方式可操作以优化资源分配和数据移动器实例化,从而仅所需的资源和数据移动器专用于数据保护过程。实施方式可操作以减少或消除由于向数据保护操作过度分配资源而产生的费用。实施方式可操作成减少或消除数据保护过程所经历的资源短缺。这种费用和资源短缺的减少可能与不采用所公开的方法的过程有关。
需要注意的是,本发明的实施方式,无论是否要求保护,都不能实际上或以其他方式在人的大脑中执行。因此,本文中的任何内容都不应当解释成教导或暗示了本发明的任何实施方式的任何方面实际上或以其他方式在人的大脑中执行。此外,并且除非本文中另外明确指出,所公开的方法、过程和操作预期由可以包括硬件和/或软件的计算系统实现。也就是说,这些方法、过程和操作被定义成计算机实现的。
A.示例性环境的各个方面
以下是本发明的各种实施方式的示例性操作环境的各个方面的讨论。该讨论不意图以任何方式限制本发明的范围或实施方式的适用性。
总体来讲,本发明的实施方式可结合系统、软件和组件来实现,这些系统、软件或组件单独和/或共同实现数据保护操作和/或导致实现数据保护操作,这些操作可以包括但不限于,数据复制操作、IO复制操作、数据读取/写入/删除操作、重复数据删除操作、数据备份操作、数据恢复操作、数据克隆操作、数据归档操作、和灾难恢复操作,其中上述复制、克隆、归档、数据写入、和备份操作中的任一个在本文中可称为“数据移动”操作。更一般地,本发明的范围包括所公开的概念可能有用的任何操作环境。
本发明的至少一些实施方式提供了在现有备份平台(其示例包括Dell-EMCNetWorker和Avamar平台以及相关备份软件)和存储环境(如Dell-EMC DataDomain存储环境)中实现所公开的功能。可以在其中实现示例性实施方式的其他示例平台可以包括但不限于,DellEMC Power Protect Data Manager(PPDM)、DellEMC Cloud Snapshot Manager(CSM)和DellEMC Data Domain(DD)平台。然而,总体来讲,本发明的范围不限于任何特定的数据保护平台或数据存储环境。
结合一些实施方式收集和/或生成的新的和/或经修改的数据可以存储在数据保护环境中,数据保护环境可以采取公共或私有云存储环境、本地存储环境、以及包括公共和私有元素的混合存储环境的形式。这些示例性存储环境中的任何一个都可以部分或完全虚拟化。存储环境可以包括数据中心或由数据中心组成,数据中心可操作成服务于由一个或多个客户端或操作环境的其他元素发起的读取、写入、删除、备份、恢复和/或克隆操作。在备份包括具有不同的相应特征的多组数据的情况下,可以将该数据分配并存储到存储环境中的不同的相应目标,其中每个目标对应于具有一个或多个特定特征的数据组。
示例性云计算环境可以是公共的,也可以不是公共的,包括可以为一个或多个客户端提供数据保护功能的存储环境。云计算环境的另一示例是其中可以代表一个或多个客户端执行处理、数据保护和其他服务的环境。可以采用本发明实施方式的一些示例性云计算环境包括但不限于Microsoft Azure、Amazon AWS、Dell EMC云存储服务和Googlecloud。然而,更一般地,本发明的范围不限于使用任何特定类型或实现方式的云计算环境。
除了云环境之外,操作环境还可以包括一个或多个能够收集、修改和创建数据的客户端。由此,特定客户端可以使用对数据执行这样的操作一个或多个应用中的每一个的一个或多个实例,或者以其他方式与这样的一个或多个实例相关联。这样的客户端可以包括物理机或虚拟机(VM)。
特别地,操作环境中的设备可以采取软件、物理机器、或VM、或这些的任何组合的形式,尽管任何实施方式都不需要特定的设备实现方式或配置。类似地,数据保护系统组件(例如,数据库、存储服务器、存储卷(LUN)、存储磁盘、复制服务、备份服务器、恢复服务器、备份客户端和恢复客户端)同样可以采取软件、物理机或虚拟机(VM)的形式,尽管任何实施方式都不需要特定的组件实现方式。在使用VM的情况下,可以使用管理程序或其他虚拟机监视器(VMM)来创建和控制VM。术语VM包括但不限于,一个或多个计算系统元件(例如计算系统硬件)的任何虚拟化、仿真或其他表示。VM可以基于一个或多个计算机架构,并提供物理计算机的功能。VM实现方式可以包括或至少涉及硬件和/或软件的使用。例如,VM的映像可以采取.VMX文件和一个或多个.VMDK文件(VM硬盘)的形式。
如本文所使用的,术语“数据”的范围很广。因此,该术语通过示例而非限制的方式包括例如可以通过数据流分割过程而产生的数据段、数据组块、数据块、原子数据、电子邮件、任何类型的对象、任何类型文件(包括媒体文件、文字处理文件、电子表格文件、和数据库文件),以及联系人、目录、子目录、卷、以及上述一者或多者的任何组。
本发明的示例性实施方式适用于能够以模拟、数字或其他形式存储和处理各种类型的对象的任何系统。虽然可以通过示例的方式使用诸如文档、文件、段、块或对象等术语,但本发明的原理不限于表示和存储数据或其他信息的任何特定形式。相反,这些原理同样适用于能够表示信息的任何对象。
最后,如本文所使用的,术语“备份”的范围很广。由此,可以与本发明的实施方式关联使用的示例性备份可以包括但不限于,完整备份、部分备份、克隆、快照、以及增量或差异备份。
B.概述
云快照管理器(CSM)是Dell EMC提供的SaaS(软件服务化),其通过利用这些云供应商提供的API(应用程序接口)获取云本地快照,保护公共云环境(如Amazon AWS和Microsoft Azure)中的工作负载。然后,可以将快照中的数据移动到云数据存储环境中,例如Dell EMC数据域虚拟版(Data Domain Virtual Edition,DDVE),以降低存储成本。
对于涉及从快照到DDVE的数据移动的给定作业,为拷贝作业按需创建具有固定CPU(中央处理单元)和RAM(随机存取存储器)大小的计算实例,并在作业完成后终止该计算实例,该计算实例在本文中可称为代理、代理实例或数据移动器。例如,该计算实例可以是VM或容器,例如Kubernetes或Docker容器。代理可以具有一个或多个会话或流,以从数据源(例如,VM磁盘)拷贝数据,每个源具有一个会话,即,在本示例中,每个VM磁盘具有一个会话或流。举例来说,对于具有3个磁盘的VM的拷贝作业,代理将有3个会话,每个磁盘一个会话以从该磁盘拷贝数据。
每个这样的会话都会消耗一些资源量,例如CPU和内存。因此,给定代理的固定大小CPU和RAM,在任何给定时间点,代理内最多可以生成“N”个会话。因此,计算实例或代理实例产生了成本,这至少部分归因于分配给代理的CPU和RAM。特别地,成本取决于:(1)代理实例的大小;(2)分配给代理实例的CPU核的数量;(3)分配给代理实例的RAM数量;以及(4)代理实例启动和运行的时间量。以类似的方式,对于PPDM,在Kubernetes平台上为拷贝作业创建vProxy的新pod实例,即数据移动器。然后在完成作业时销毁该pod,从而释放分配给该pod实例的资源。
分配给这些数据移动器的CPU和RAM大小固定。这样的分配不考虑诸如代理实例的大小或在数据移动器实例的数据移动期间执行的操作的数量和性质/强度等因素。关于代理实例的大小和数量,一些客户环境可能使用数万个工作负载,其中不同大小和数量的数据源与这些相应工作负载中的每一者相关联。例如,客户可能有数千个虚拟机,每个虚拟机都有不同数量和大小的磁盘。如这些示例所示,支持数据移动操作所需的资源量可能因情况和操作环境的性质而大不相同。
如前所述,代理实例的操作的性质和强度可能会显著影响支持这些操作所需的资源量。特别是,根据要移动的数据的性质和所述数据的关键性,对于不同类型的工作负载,客户通常在性能优化的数据拷贝或存储优化的数据拷贝方面有不同的偏好。客户选择的选项通常暗含着客户端方重复数据删除,即要由客户机器上托管的客户端执行的重复数据删除;或服务器方重复数据删除,即要由备份服务器或其他数据保护服务器执行的重复数据删除。
总体来讲,客户端方重复数据删除可包括数据分块或分段,其中在客户端方(即,在将其数据备份到存储环境(如DataDomain)的实体一方)为每个数据组块或数据段执行指纹生成。此客户端方实体是数据移动器计算实例。对客户端方进行重复数据删除的额外工作增加了用于从客户端到存储器的数据移动操作的每个会话/流的CPU和内存需求。
因此,具有固定大小的代理实例通常会导致两种次优情况之一。然而,由于固定大小的代理实例相对更易于定义、管理和使用,因此不鼓励采用可能避免一种或两种次优情况的替选方法。
如上所述,与使用固定大小的代理实例相关的第一种次优情况是资源利用不足。例如,假设使用1个CPU和1GB RAM创建代理实例,并且该代理实例最多可以并行执行三个会话或流。在这种情况下,该代理实例为只有一个或两个磁盘的VM执行的数据移动操作将导致该代理实例内的资源利用不足。也就是说,代理实例可以支持三个流,但最多只需要两个流来执行该VM的数据移动操作。如果数据移动操作涉及服务器方重复数据删除,则这种利用不足可能会进一步加剧,因为代理实例将不需要可能已经为客户端方重复数据删除操作而分配给它的资源。
使用固定大小的代理实例时出现的另一种次优情况与资源不足有关。在这种情况下,数据源(诸如具有更多磁盘数的VM,例如,磁盘数大于3的VM)一次只能支持3个磁盘的数据移动,因为固定大小的代理实例最多只能生成三个会话。之后,当其中一个VM磁盘的数据移动操作完成时,可以拾取下一个VM磁盘的数据移动操作。然而,与如果将代理实例的大小调整为更好地匹配预期的工作负载相比,这种方法需要更多的时间来完成作业。这对在给定的备份窗口内完成作业提出了挑战,考虑到当前对减少备份窗口的长度的重要性和关注,这一点尤其令人担忧。如果正在执行客户端方重复数据删除,情况可能会进一步加剧,因为这将增加固定大小代理的已紧张的资源的工作负载。
B.一些示例性实施方式的各个方面
除其他外,示例性实施方式实现了用于执行包括数据保护操作在内的操作的计算资源的自适应大小调整和创建。在一些实施方式中,这可以通过共同利用并考虑诸如但不限于以下的注意事项来实现:(a)要保护的数据源的大小/数量的知识,例如通过将数据源的数据拷贝到目标来实现;(b)来自数据源的数据的重复数据删除是在客户端方还是在服务器方执行;以及(c)灵活的代理实例大小调整能力,例如可以在云或诸如Kubernetes的其他环境中实现。因此,示例性实施方式可以通过灵活地定义和配置计算资源以满足工作负载需求,同时还减少或消除资源不足和资源浪费的问题,来为计算资源最佳地分配足够的资源。
B.1环境
现在注意图1,提供了关于其中可以实现和使用本发明的实施方式的示例性环境100的详细信息。该环境仅通过说明的方式提供,并不意图以任何方式限制本发明的范围。
环境100可以包括“n”个客户端102,其中“n”是等于或大于1的任何整数。客户端102可以与要保护的一个或多个资产104(例如,VM)相关联,并控制这些资产104。其他示例性资产104包括数据库和文件系统。如图所示,资产104不需要位于客户端102的现场,而是可以位于客户端102可访问的云计算站点106处。因此,资产104不需要位于或托管在任何(一个或多个)特定位置。总体来讲,客户端102可以与存储站点108协作,以在存储站点108处创建和存储云计算站点106的资产104的备份。
注意,在一些替选实施方式中,客户端102可能不作为图1所示的单独实体存在。而是,在这样的替选实施方式中,客户端102可以替代地包括驻留在云计算站点106处并由管理器实体管理的资产104的特定集合。
无论其形式如何,客户端102和/或存储站点108都可以包括重复数据删除能力,该能力可以使客户端102和/或存储站点108能够在将数据备份到存储站点108之前对数据(例如资产104的备份)进行重复数据删除。更详细地,存储站点108(可以是云存储站点,也可以不是云存储站点)可以包括备份服务器110,该备份服务器110运行备份应用程序,该备份应用程序可以操作以对资产104的副本进行重复数据删除,然后生成一个或多个代理实例112以创建被进行重复数据删除的数据的备份或备份存储集。备份服务器110可以进一步操作以将这些备份存储在存储器114中。在一些实施方式中,备份服务器110可以位于云计算站点106和存储站点108之间。
代理实例112可以以任何合适的形式生成。例如,代理实例112可作为虚拟机或容器(如Docker容器)在管理程序(如VMware ESX、Hyper-V或Zen、Kubernetes实体)上生成。在云环境的情况下,代理实例112的特定形式可以取决于云供应商使用的特定管理程序或容器编排技术。在至少一些实施方式中,代理实例112是诸如可以托管在备份服务器110上的数据保护软件的元素。例如,PPDM平台具有被称为VISD(VProxy基础设施服务守护程序,VProxy Infrastructure Service daemon)的组件,该组件处理代理实例112的生成。
更详细地,备份服务器108可操作成生成一个或多个代理实例112,该代理实例112可执行资产104的备份。总体来讲,并且如下面更详细地讨论的,可以基于诸如备份工作负载(即,对资产104进行备份所需的工作量)之类的注意事项,临时地灵活地确定代理实例112的大小、配置和数量。例如,备份服务器110可以确定要进行备份的资产104的大小和数量,以及每个资产104的磁盘数量,并且备份服务器110可使用这些因素以及本文公开的其他因素来确定需要多少代理实例112来支持特定的数据保护作业。代理实例112可以操作以创建资产104的备份,例如在备份服务器110的指示下创建。代理实例112可以是虚拟的,因为它们通常在作业完成后被销毁。它们的虚拟性质可以增强代理实例112可以被实例化和部署的灵活性和速度。
B.2示例性实施方式的操作
鉴于上述内容,示例性实施方式针对一种计算规模大小的自适应系统,该系统考虑各种因素来创建代理实例或数据移动器(本文中通常称为“计算实例”),这些因素例如但不限于:(1)用于从单个给定作业中拷贝数据的数据源(例如资产104)的数量;(2)重复数据删除(如果执行的话)将在客户端方还是在服务器方执行;以及(3)由适用平台(例如云平台或可能包括一个或多个需要保护的集群的Kubernetes平台)提供的灵活代理实例的大小调整能力。
总体来讲,本发明的一些实施方式可以从基准程序开始操作,该基准程序可以识别拷贝单个流所需的CPU和RAM和/或其他资源的量。然后,考虑到本文公开的各种因素中的一个或多个,这些数量可用于调整计算实例的大小。以下示例出于说明目的呈现。假设每个流/会话的基准数如下:
详情 vCPU RAM
服务器方重复数据删除 0.25 100MB
客户端方重复数据删除 0.50 200MB
此外,可以对运行代理实例的OS所需的CPU和RAM进行核算。出于说明目的,假设运行基础OS需要0.5vCPU和500MB RAM。
考虑到这些基准数据,作为作业执行的一部分,实施方式可以计算执行作业的CPU和RAM需求,并创建一个或多个代理实例,这些代理实例可以共同包括执行作业所需的最佳的资源类型和资源量。更详细地,具有需要保护的“n”(其中“n”是等于或大于1的任何整数)个数据源的作业的CPU大小和RAM大小可以这样确定:
CPU大小=(作业中的数据源的数量*针对所选重复数据删除类型的每个源的CPU需求)+运行OS所需的CPU;和
RAM大小=(作业中的数据源的数量*针对所选重复数据删除类型的每个源的RAM需求)+运行OS所需的RAM。
以下示例是说明性的:
注意,虽然该示例涉及VM备份,但实施方式不限于VM备份的执行,而是更一般地,所公开的概念可以应用于不同类型的资源,例如但不限于数据库和分布式文件系统。总体来讲,要保护的资源在本文中可以称为“数据保护目标”。
示例:具有2个磁盘的VM
计算实例的大小将是以下的总和:
因此,对于“服务器方重复数据删除”的数据移动作业,此示例将需要具有1.0vCPU和700MB RAM的计算实例。“客户端方重复数据删除”的数据移动作业将需要具有1.5vCPU和1100MB RAM的计算实例。除其它之外,本示例还说明了客户端方重复数据删除比服务器方重复数据删除更耗费资源,至少在本示例中如此。因此,可以决定实施服务器方重复数据删除以节省资源。基于以上所示的计算,实施方式然后可以向计算实例分配与这些资源的相应计算值匹配或略高于这些资源的相应计算值的CPU和RAM的量。
注意,上面所示计算中考虑的大小调整数量是通过说明的方式呈现的。要使用的实际数量可能是基准测试工作的结果。至少在一些实施方式中,基准测试可能不一定是频繁的活动,并且可能限于当计算实例执行的操作中存在可能影响CPU和/或RAM、和/或其他资源、每个流的利用率的变化时执行。
为了支持基准测试工作,可以收集与一个或多个为服务特定工作负载而创建的计算实例的性能有关的数据。例如,该数据可以指示所分配的资源是否足以执行工作负载,以及资源是否过度/不足地分配给一个或多个计算实例。然后,该数据可用于通知一个或多个计算实例的未来资源分配。在一些情况下,资源分配决策(其可以包括初始分配决策和对计划/实际分配的调整)可以由使用收集的数据作为输入的机器学习模型来做出。
C.进一步讨论
如将从本发明中显而易见的,示例性实施例方式可以具有各种有用的特征,尽管特定实施方式不需要具有任何特定特征或特征组。此外,以下示例性特征是通过说明的方式提供的,并不意图以任何方式限制本发明的范围。
例如,实施方式可以提供并实现资源的最佳利用。举例来说,用于PPDM的Kubernetes平台在给定时间点可能有一定量的CPU和RAM可用。本发明的实施方式可以实现对可用资源的最佳利用,以执行更多的工作/作业。
作为另一个示例,实施方式可以帮助降低成本。特别是,在可以实现CSM的云环境的示例性情况下,可用资源可能没有实际的界限或限制。尽管如此,由于存在与资源消耗相关联的成本,但示例性实施方式可以证明是有用的,至少因为这样的实施方式可以通过消除或最小化云计算环境中的资源浪费来帮助降低操作成本。
在最后的示例中,一些实施方式可以实现更快的作业完成。特别地,通过提供资源的最佳分配,实施方式可以同时从更多数据源执行操作,例如数据拷贝,从而比不采用示例性实施方式的方法的情况更快地完成作业。
D.示例性方法
关于所公开的方法,包括图2的示例性方法,要注意的是,这些方法中的任何方法的任何(一个或多个)操作,可以响应于任何先前的(一个或多个)操作的执行、作为任何先前的(一个或多个)操作的执行的结果、和/或基于任何先前的(一个或多个)操作的执行,而执行。因此,一个或多个操作的执行例如可以是后续一个或多个附加操作的执行的前提或触发。因此,例如,可以构成方法的各种操作可以通过诸如刚刚描述的示例的关系来联系在一起或以其他方式彼此关联。最后,并且尽管不是必须的,在一些实施方式中,构成本文所公开的各种示例性方法的各个操作以那些示例中记载的特定顺序执行。在其他实施方式中,构成所公开的方法的各个操作可以以不同于所记载的特定顺序的顺序执行。
现在关注图2,公开了一种示例性方法200。方法200可以例如由在云计算平台上操作的备份服务器执行。在其他实施方式中,该方法可以由在与云计算环境通信的存储环境中操作的备份服务器执行。无论哪种情况,云计算环境都可包含要备份的资产,例如VM。此类资产在本文中可称为“备份目标”。注意,不需要特定实体或实体组来实现方法200,并且通过示例的方式呈现上述考虑。
方法200可以从收集202关于要由数据保护过程保护的资产的数据开始。这些数据可能包括但不限于,资产数量和每个资产的磁盘数量,即要备份的磁盘数量。
接下来,可以检查204重复数据删除状态。重复数据删除状态检查204可以包括确定是将在客户端方或资产方执行通过备份资产而创建的备份数据集的重复数据删除,还是将在服务器(即备份服务器)方执行重复数据删除。在一些实施方式中,可以将重复数据删除状态设置为策略问题,使得不需要检查该状态,因为存在已知的默认重复数据删除策略,例如,针对特定资产,指定将始终在服务器方执行重复数据删除的重复数据删除策略。
给定已收集202的数据和重复数据删除状态204,可以基于该信息执行过程206,其中可以确定支持工作负载所需的代理实例的数量,并且这些代理实例中的每一个的大小都使用完成数据保护作业所需的相应CPU和RAM的量和/或其他资源来调整。因此,用于对资产进行备份的代理实例的配置和数量可以根据工作负载的特定要求和参数临时地灵活确定。在一些情况下,可以执行基准测试过程207,该过程生成也可以用作过程206的一部分的输入。
一旦确定了206代理实例的数量和配置,那么可以生成208这些代理实例。生成的代理实例然后可以被部署210以执行该作业,例如一个或多个资产的数据保护操作。
在代理实例执行作业之前、期间和/或之后,可以收集212关于代理实例的操作和性能的性能数据。在一些情况下,已经收集212的性能数据可以用作基准测试过程207的输入。
最后,代理实例可以在完成其创建的用于执行的作业后被终止214。作为代理终止过程214的结果,可以释放分配给那些代理实例的资源,例如RAM和CPU,以重新分配给已经创建或可能创建的一个或多个其他代理实例。
E.其他示例性实施方式
以下是本发明的一些其他示例性实施方式。这些实施方式仅以示例的方式呈现,而不意图以任何方式限制本发明的范围。
实施方式1、一种方法,包括:获得关于资产组中的每个资产的相应信息;执行重复数据删除检查以识别将对所述资产的备份执行重复数据删除的实体;基于获得的关于所述资产的信息,并基于所述重复数据删除检查的结果,对创建所述备份所需的一个或多个代理实例的大小进行调整;生成所述代理实例;以及使用所述代理实例来创建数据资产的所述备份。
实施方式2、如实施方式1所述的方法,其中,所述信息包括要备份的资产的总数和每个资产中包括的磁盘的数量。
实施方式3、如实施方式1-2中任一者所述的方法,其中,每个所述资产包括虚拟机、数据库、和文件系统中的任一者。
实施方式4、如实施方式1-3中任一者所述的方法,其中,在所述重复数据删除检查中识别的所述实体是包括所述资产的客户端,或者是生成所述代理实例的服务器。
实施方式5、如实施方式1-4中任一者所述的方法,其中,对所述代理实例的大小进行调整包括识别要分别分配给每个所述资产的RAM的量和CPU的量。
实施方式6、如实施方式5所述的方法,其中,对于所述资产中的一个特定资产,分配给所述特定资产的RAM的量和CPU的量部分地基于将执行所述重复数据删除的特定实体。
实施方式7、如实施方式1-6中任一者所述的方法,其中,对所述代理实例的大小进行调整还基于基准测试过程的结果。
实施方式8、如实施方式1-7中任一者所述的方法,还包括在由所述代理实例创建所述备份之后对所述备份进行重复数据删除。
实施方式9、如实施方式1-8中任一者所述的方法,其中,每个代理实例与相应的资产相对应。
实施方式10、如实施方式1-9中任一者所述的方法,其中,所述代理实例中的一个代理实例支持所述资产中的一个资产的每个磁盘的相应流。
实施方式11、一种系统,包括用于执行本文所公开的任何操作、方法、或过程、或其中任一者的任何部分的硬件和/或软件。
实施方式12、一种非暂时性存储介质,其中存储有指令,所述指令可由一个或多个硬件处理器执行,以执行包括实施方式1-10中任一者或多者的操作的操作。
F.示例性计算设备和关联介质
如下面更详细讨论的,本文所公开的实施方式可以包括使用包括各种计算机硬件或软件模块的专用或通用计算机。计算机可以包括处理器和承载指令的计算机存储介质,所述指令在被处理器执行时和/或使得所述指令被处理器执行时,执行本文所公开的方法中的任一者或多者,或所公开的任一方法的任意(一个或多个)部分。
如上所述,在本发明的范围内的实施方式还包括计算机存储介质,所述计算机存储介质是用于承载或带有其上存储的计算机可执行指令或数据结构的物理介质。这种计算机存储介质可以是可被通用或专用计算机访问的任何可用的物理介质。
以示例而不是限制的方式,这种计算机存储介质可以包括硬件存储器,所述硬件存储器诸如固态硬盘/设备(SSD)、RAM、ROM、EEPROM、CD-ROM、闪存、相变内存(“PCM”)、或者其他光盘存储器、磁盘存储器或其他磁存储设备、或者可用于以计算机可执行指令或数据结构的形式存储程序代码的任何其他硬件存储设备,所述计算机可执行指令或数据结构可以被通用或专用计算机系统访问和执行以实现本发明所公开的功能。以上的组合也应该被包括在计算机存储介质的范围内。这些介质也是非暂时性存储介质的示例,并且非暂时性存储介质也包含基于云的存储系统和结构,然而本发明的范围未被限定到非暂时性存储介质的这些示例。
计算机可执行指令包括例如在被执行时使得通用计算机、专用计算机、或专用处理设备执行某一功能或某一组功能的指令和数据。因此,本发明的一些实施方式可以例如从网站、网格拓扑、或其他来源下载到一个或多个系统或设备。此外,本发明的范围也包含任何包括应用程序的实例的硬件系统或设备,该应用程序的实例包括所公开的可执行指令。
尽管已经用特定于结构特征和/或方法动作的语言描述了主题,但是应理解的是,所附权利要求中限定的主题不必限制到上述特定特征或动作。相反,本文所公开的特定特征和动作被公开为实现权利要求的示例形式。
如本文中所使用的,术语“模块”或“组件”可以指在计算系统上执行的软件对象或程序。本文描述的不同的组件、模块、引擎、和服务可以实现为例如作为单独的线程在计算系统上执行的对象或进程。尽管本文描述的系统和方法可以以软件实现,但是以硬件或者软件和硬件的组合实现也是可以的且可预期的。在本申请中,“计算实体”可以是如本文之前所限定的任何计算系统、或者在计算系统上运行的任何模块或模块组合。
在至少一些实例中,提供硬件处理器,该硬件处理器可操作成执行用于执行方法或过程(诸如本文所公开的方法和过程)的可执行指令。该硬件处理器可以包括或可以不包括其他硬件、诸如本文所公开的计算设备和系统的元件。
在计算环境方面,本发明的实施方式可以在客户端-服务器环境、网络环境或本地环境、或任何其他合适的环境中执行。用于本发明的至少一些实施方式的合适的操作环境包括云计算环境,在云计算环境中,客户端、服务器、和其他机器中的一者或多者可以驻留并操作在云环境中。
现在简要地参照图3,由图1-图2和/或本文中其他地方所公开或暗示的实体中的任一者或多者可以采用物理计算设备的形式,或包括物理计算设备,或在物理计算设备上实现,或由物理计算设备主管,其一个示例由300表示。而且,在任何上述元件包括虚拟机(VM)或由虚拟机(VM)组成的情况下,该VM可以构成图3中公开的物理组件的任何组合的虚拟化。
在图3的示例中,物理计算设备300包括存储器302、一个或多个硬件处理器306、非暂时性存储介质308、UI(用户界面)设备310和数据存储器312,存储器302可以包括随机存取存储器(RAM)、非易失性存储器(NVM)204(例如NVRAM)、只读存储器(ROM)、和永久性存储器中的一者、一些或全部。物理计算设备300的存储器302中的一者或多者可以采用固态硬盘(SSD)存储器的形式。而且,提供了一个或多个包括指令的应用程序314,这些指令可由一个或多个硬件处理器306执行,以执行本文所公开的任何操作或其部分。
这些可执行指令可以采用各种形式,包括例如可执行以执行本文公开的任何方法或其部分、和/或可由存储站点(无论是在企业本地还是在云计算站点)、客户端、数据中心、包括云存储站点的数据保护站点、或备份服务器中的任一者执行/在存储站点(无论是在企业本地还是在云计算站点)、客户端、数据中心、包括云存储站点的数据保护站点、或备份服务器中的任一者处可执行以执行本文所公开的任何功能的指令。而且,这些指令可以是可执行的以执行本文所公开的任何其他操作和方法及其任何部分。
本发明可以以其他特定形式实现而不脱离其精神或实质特征。所描述的实施方式在各方面均被考虑仅作为说明性的而非限制性的。因此,本发明的范围由所附权利要求而不是由之前的描述来指示。落入权利要求的等同含义和等同范围内的所有改变均被包含在权利要求的范围内。

Claims (11)

1.一种方法,包括:
获得关于资产组中的每个资产的相应信息;
执行重复数据删除检查以识别将对所述资产的备份执行重复数据删除的实体;
基于获得的关于所述资产的信息,并基于所述重复数据删除检查的结果,对创建所述备份所需的一个或多个代理实例的大小进行调整;
生成所述代理实例;以及
使用所述代理实例来创建所述资产的所述备份。
2.如权利要求1所述的方法,其中,所述信息包括要备份的资产的总数和每个资产中包括的磁盘的数量。
3.如权利要求1所述的方法,其中,每个所述资产包括虚拟机、数据库、和文件系统中的任一者。
4.如权利要求1所述的方法,其中,在所述重复数据删除检查中识别的所述实体是包括所述资产的客户端,或者是生成所述代理实例的服务器。
5.如权利要求1所述的方法,其中,对所述代理实例的大小进行调整包括识别要分别分配给每个所述资产的RAM的量和CPU的量。
6.如权利要求5所述的方法,其中,对于所述资产中的一个特定资产,分配给所述特定资产的RAM的量和CPU的量部分地基于将执行所述重复数据删除的特定实体。
7.如权利要求1所述的方法,其中,对所述代理实例的大小进行调整还基于基准测试过程的结果。
8.如权利要求1所述的方法,还包括在由所述代理实例创建所述备份之后对所述备份进行重复数据删除。
9.如权利要求1所述的方法,其中,每个代理实例与相应的资产相对应。
10.如权利要求1所述的方法,其中,所述代理实例中的一个代理实例支持所述资产中的一个资产的每个磁盘的相应的流。
11.一种非暂时性存储介质,所述非暂时性存储介质中存储有指令,所述指令能够由一个或多个硬件处理器执行,以执行如权利要求1-10中任一项所述的方法中的操作。
CN202310289326.XA 2022-03-24 2023-03-23 可扩展数据保护环境中的自适应数据移动器资源分配 Pending CN116804944A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US17/656,386 2022-03-24
US17/656,386 US20230305929A1 (en) 2022-03-24 2022-03-24 Adaptive data mover resource allocation in scalable data protection environment

Publications (1)

Publication Number Publication Date
CN116804944A true CN116804944A (zh) 2023-09-26

Family

ID=87930685

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310289326.XA Pending CN116804944A (zh) 2022-03-24 2023-03-23 可扩展数据保护环境中的自适应数据移动器资源分配

Country Status (3)

Country Link
US (1) US20230305929A1 (zh)
CN (1) CN116804944A (zh)
DE (1) DE102023104220A1 (zh)

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9459894B2 (en) * 2014-06-17 2016-10-04 International Business Machines Corporation Active control of memory for java virtual machines and other application runtime environments
US9563514B2 (en) * 2015-06-19 2017-02-07 Commvault Systems, Inc. Assignment of proxies for virtual-machine secondary copy operations including streaming backup jobs
US10084873B2 (en) * 2015-06-19 2018-09-25 Commvault Systems, Inc. Assignment of data agent proxies for executing virtual-machine secondary copy operations including streaming backup jobs
US11314433B1 (en) * 2020-11-20 2022-04-26 Seagate Technology Llc Remote deduplication of data in a storage system

Also Published As

Publication number Publication date
DE102023104220A1 (de) 2023-09-28
US20230305929A1 (en) 2023-09-28

Similar Documents

Publication Publication Date Title
US10528430B2 (en) Optimized backup of clusters with multiple proxy servers
US9575991B2 (en) Enabling coarse-grained volume snapshots for virtual machine backup and restore
US10379759B2 (en) Method and system for maintaining consistency for I/O operations on metadata distributed amongst nodes in a ring structure
EP3955113B1 (en) Optimize recovery time objective and costs of cloud based recovery
US8566542B1 (en) Backup using storage array LUN level snapshot
US10929048B2 (en) Dynamic multiple proxy deployment
US10853189B2 (en) Image restore from incremental backup
US11436021B2 (en) Adaptive system for smart boot sequence formation of VMs for disaster recovery
US11822522B2 (en) Intelligent filesystem for container images
US20220253331A1 (en) Elastic cloud service with data driven cost reduction for vms in the cloud
US11436094B2 (en) Efficient method to build a backup scheduling plan for a server
US20230305929A1 (en) Adaptive data mover resource allocation in scalable data protection environment
US20230342202A1 (en) System and method of adaptative scalable microservice
CN113728313A (zh) 智能碎片整理vm内部的文件系统以在云中快速再复原并对云高效重复数据删除
US20230342201A1 (en) System and method of adaptative scalable microservice
US11675508B2 (en) Dynamic shared journal
US20230342199A1 (en) System and method of adaptative scalable microservice
US20230342213A1 (en) System and method of adaptative scalable microservice
US12045462B2 (en) System and method to create application copies for copy reuse utilizing the application backup data stored in secondary storage
EP3953817B1 (en) Dynamically selecting optimal instance type for disaster recovery in the cloud
US20240111593A1 (en) Dynamic slicing using a balanced approach based on system resources for maximum output
US20220317881A1 (en) Method and apparatus for affinity based smart data protection policy for pooled protection targets

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication