Devices may generate information based on existing information. For example, devices may obtain information and derive information based on the obtained information. To obtain information, devices may be able to communicate with other devices. The communications between the devices may be through any means.
In one aspect, a manager for managing generation of backups for clients in accordance with one or more embodiments of the invention includes persistent storage and a backup manager. The persistent storage stored protection policies associated with the clients and native backup functionality information associated with the clients. The backup manager programmed obtains a portion of the native backup functionality information from a client of the clients; obtains at least one protection policy of the protection policies that is associated with the client; makes a determination that the at least one protection policy and the portion of the native backup functionality information are unique; in response to the determination: generates modifier data based on: the portion of the native backup functionality information and the at least one protection policy; and generates a backup for the client using a modifier associated with the modifier data.
In one aspect, a method for operating a manager for managing generation of backups for clients in accordance with one or more embodiments of the invention includes obtaining a portion of native backup functionality information, stored in a persistent storage, from a client of clients; obtaining at least one protection policy of protection policies that is associated with the client; making a determination that the at least one protection policy and the portion of the native backup functionality information are unique; in response to the determination: generating modifier data based on: the portion of the native backup functionality information and the at least one protection policy; and generating a backup for the client using a modifier associated with the modifier data.
In one aspect, a non-transitory computer readable medium in accordance with one or more embodiments of the invention includes computer readable program code, which when executed by a computer processor enables the computer processor to perform a method for operating a manager for managing generation of backups for clients. The method includes obtaining a portion of native backup functionality information, stored in a persistent storage, from a client of clients; obtaining at least one protection policy of protection policies that is associated with the client; making a determination that the at least one protection policy and the portion of the native backup functionality information are unique; in response to the determination: generating modifier data based on: the portion of the native backup functionality information and the at least one protection policy; and generating a backup for the client using a modifier associated with the modifier data.
Certain embodiments of the invention will be described with reference to the accompanying drawings. However, the accompanying drawings illustrate only certain aspects or implementations of the invention by way of example and are not meant to limit the scope of the claims.
Specific embodiments will now be described with reference to the accompanying figures. In the following description, numerous details are set forth as examples of the invention. It will be understood by those skilled in the art that one or more embodiments of the present invention may be practiced without these specific details and that numerous variations or modifications may be possible without departing from the scope of the invention. Certain details known to those of ordinary skill in the art are omitted to avoid obscuring the description.
In the following description of the figures, any component described with regard to a figure, in various embodiments of the invention, may be equivalent to one or more like-named components described with regard to any other figure. For brevity, descriptions of these components will not be repeated with regard to each figure. Thus, each and every embodiment of the components of each figure is incorporated by reference and assumed to be optionally present within every other figure having one or more like-named components. Additionally, in accordance with various embodiments of the invention, any description of the components of a figure is to be interpreted as an optional embodiment, which may be implemented in addition to, in conjunction with, or in place of the embodiments described with regard to a corresponding like-named component in any other figure.
Throughout this application, elements of figures may be labeled as A to N. As used herein, the aforementioned labeling means that the element may include any number of items and does not require that the element include the same number of elements as any other item labeled as A to N. For example, a data structure may include a first element labeled as A and a second element labeled as N. This labeling convention means that the data structure may include any number of the elements. A second data structure, also labeled as A to N, may also include any number of elements. The number of elements of the first data structure and the number of elements of the second data structure may be the same or different.
In general, embodiments of the invention relates to methods and systems for providing backup services in a distributed environment. More specifically, embodiments of the invention relate to dynamically modifying the manner in which backups are generated in order to use native backup functionality.
For example, in a distributed environment, any number of entities may include functionality to generate backups. However, the entities may generate backups in different manners resulting in the scopes of protection provided by the generated backups to depend on how the backup generation functionality of the entities was invoked.
Embodiments of the invention may provide a method of orchestrating invocation of native backup generation functionality of any number of entities in a manner that results in a scope of protection provided to an entity that meets requirements of a protection policy that defines the scope of protection to be provided to the entity. To do so, embodiments of the invention may modify the manner in which native backup functionality is invoked dynamically to meet the requirements of the corresponding data protection policies. By doing so, the scope of protection provided to backed up entities may reduce the likelihood of data loss due to, for example, a hardware failure of one or more entities of the distributed system.
In one embodiment of the invention, the backup storages (140) provide data storage services to the clients (130). The data storage services may include storing of data provided by the clients (130) and providing previously stored data to the clients (130) and the manager (100). The data stored in backup storages (140) may be used for restoration purposes. The data stored in the backup storages (140) may be used for other purposes without departing from the invention.
The clients (130) may generate different types of backups. The clients (130) may generate application specific backups. The application specific backups may require modifiers that invoke unique and application specific native backup functionality to generate the application specific backups. The manager (100) may generate and send modifier data to clients (130) to generate the aforementioned application specific backups, which may then be stored in the backup storages (140).
The components of the system illustrated in
In one embodiment of the invention, the manager (100) may be implemented using computing devices. The computing devices may be, for example, mobile phones, tablet computers, laptop computers, desktop computers, servers, or cloud resources. The computing devices may include one or more processors, memory (e.g., random access memory), and persistent storage (e.g., disk drives, solid state drives, etc.). The persistent storage may store computer instructions, e.g., computer code, that (when executed by the processor(s) of the computing device) cause the computing device to perform the functions described in this application and/or all, or a portion, of the methods illustrated in
The manager (100) may be implemented using logical devices without departing from the invention. For example, the manager (100) may include virtual machines that utilize computing resources of any number of physical computing devices to provide the functionality of the manager (100). The manager (100) may be implemented using other types of logical devices without departing from the invention.
As discussed above, the manager (100) may provide data backup storage services to the clients (130). The data backup storage services may include functionality for: (i) generating modifier data based on a unique combination of protection policies (122) and native backup functionality information (124), and (ii) initiating generation of a backup of client data by agents hosted by clients (130) using the generated modifier data. Further, the data backup storage services may include functionality to store generated modifier data and then subsequently obtain previously stored modifier data from a modifier repository (126) based on a non-unique combination of protection policies (122) and native backup functionality information (124). Additional detail about various embodiments of the invention related to the functionality of the manager is provided in
The manager (100) may include a backup manager (110) and persistent storage (120). Each of these components is discussed below.
The backup manager (110) may be implemented using a physical device. The physical device may include circuitry. The physical device may be, for example, a field-programmable gate array, application specific integrated circuit, programmable processor, microcontroller, digital signal processor, or other hardware processor. The physical device may be adapted to provide the functionality of the backup manager (110) described throughout this application and/or all or a portion of the methods illustrated in
The backup manager (110) may be implemented using computer instructions (e.g., computing code) stored on a persistent storage (e.g., 120) that when executed by a processor of the manager (100) causes the manager (100) to perform the functionality of the backup manager (110) described throughout this application and/or all or a portion of the methods illustrated in
The backup manager (110) may utilize data structures stored in a persistent storage (120) of the manager (100). The persistent storage (120) may be implemented using a physical storage device. The physical storage device may include any combination of hard disk drives, solid state disk drives, tape drives, and/or any other physical storage mediums for the storage of data. The persistent storage (120) may be another type of physical storage without departing from the invention. In another embodiment of the invention, the persistent storage (120) may be implemented using a logical storage device (e.g., virtualized storage) that utilizes any quantity of hardware storage resources of any number of computing devices for storing data. For example, the persistent storage (120) may utilize portions of any combination of hard disk drives, solid state disk drives, tape drives, and/or any other physical storage medium of any number of computing devices. The persistent storage (120) may be another type of logical storage device without departing from the invention.
In one or more embodiments of the invention, the persistent storage (120) provides data storage services to clients (130), the backup manager (110), and/or other entities. The data storage services may include storing of data and providing of previous stored data. The persistent storage (120) may provide other and/or additional services without departing from the invention.
The persistent storage (120) may store data structures utilized by the backup manager (110) including protection policies (122), native backup functionality information (124), and a modifier repository (126). Each of these data structures are discussed below.
The protection policies may be data structures that include various requirements for storing backups for client applications. For example, the protection policies may include location, type, and a schedule for the backups to be generated. There may be any number of protection policies (122) stored in the persistent storage (120). The protection policies (122) may be utilized by the backup manager (110) to generate and/or select modifiers to invoke the native backup functionality of the clients. For additional information regarding protection policies (122), refer to
The native backup functionality information (124) may be a data structure that includes information regarding applications executing on a client (see e.g.,
The modifier repository (126) may store data structures that include the previously generated modifier data (236,
The clients (130) may be implemented using computing devices. The computing devices may be, for example, mobile phones, tablet computers, laptop computers, desktop computers, servers, or cloud resources. The computing devices may include one or more processors, memory (e.g., random access memory), and persistent storage (e.g., disk drives, solid state drives, etc.). The persistent storage may store computer instructions, e.g., computer code, that (when executed by the processor(s) of the computing device) cause the computing device to perform the functions described in this application and/or all, or a portion, of the methods illustrated in
The clients (130) may be implemented using logical devices without departing from the invention. For example, the clients (130) may include virtual machines that utilize computing resources of any number of physical computing devices to provide the functionality of the clients (130). The clients (130) may be implemented using other types of logical devices without departing from the invention.
The clients (130) may generate and store data. The clients (130) may utilize persistent storages (e.g., 230,
In one or more embodiments of the invention, the clients (130) may utilize data backup storage services provided by the manager (100). Using the data backup storage services may enable clients (130) to avoid data loss due to persistent storage failure or any other failures that may result in data loss by generating and storing backups in backup storages (140). The clients (130) may utilize other and/or additional services without departing from the invention.
To use the data backup storage services, the clients (130) may perform actions under the directions of the backup manager (110). By doing so, the backup manager (110) may orchestrate the transmission of data and actions between the clients (130) and the manager (100).
For example, a client (e.g., 130A) may send native backup functionality information to the backup manager (110) of the manager (100). The backup manager (110) may send modifier data (236,
In one or more embodiments of the invention, the backup storages (140) are implemented using storage devices. The storage devices may be implemented using physical storage devices and/or logical storage devices. There may be any number of storage devices in the backup storages (140). The backup storages (140) may be implemented using other types of devices that provide data storage services without departing from the invention.
A logical storage device may be an entity that utilizes the physical storage devices of one or more computing devices to provide data storage services. For example, a logical storage may be a virtualized storage that utilizes any quantity of storage resources (e.g., physical storage devices) of any number of computing devices.
A physical storage device may be a physical device that provides data storage services. For example, a physical storage device may include any number of physical devices such as, for example, hard disk drives, solid state drives, tape drives, and/or other types of hardware devices that store data. The physical storage device may include any number of other types of hardware devices for providing data storage services. For example, the physical storage device may include storage controllers that balance and/or allocate storage resources of hardware devices, load balancers that distribute storage workloads across any number of hardware devices, memory for providing cache services for the hardware devices, etc.
In one or more embodiments of the invention, the backup storages (140) provide data storage services to the clients (130). The data storage services may include storing data provided by clients (130) and providing of previously stored data to clients (130). Such provided data may be backups (e.g., 234
While the system of
As discussed above, the clients (130) may generate backups and store backups in a storage of backup storages (140).
The client (130A) may have components that utilize the services provided by the manager (100). These components may include applications (200), a backup agent (210), modifiers (220), and persistent storage (230). Each component of the client (130A) is discussed below.
The applications (200) may generate application data (232), which is then stored in persistent storage (230). The applications (200) may provide application services to a user of the client (130A) or other entities. The application services may be any type of computer implemented service. When a user or other entity utilizes the application services provided by the applications (200), information that is relevant to the users and/or other entities may be stored in the application data (232).
For example, an application of the applications (200) may be a database application. A user of the client (130A) may enter information into a database stored as part of the application data (232) when utilizing the services provided by the database application. By doing so, the information included in the application data (232) may be of importance to the user. Consequently, the user may desire to access the information at future points in time. However, the information may be lost if for any reason the application data (232) stored in the persistent storage (230) becomes unreachable.
To address this and other potential issues, the client (130A) may include the backup agent (210). The backup agent (210) may provide data protection services for application data (232) and/or other data hosted by the client (130A). The backup agent (210) may provide data protection services for the client (130A) under the direction of the backup manager (110,
For example, the backup manager (110,
In one or more embodiments of the invention, all, or a portion, of the applications (200) and/or the backup agent (210) are hardware devices including circuitry. All, or a portion, of the applications (200) and/or the backup agent (210) may be, for example, digital signal processors, field programmable gate arrays, or application specific integrated circuits. All, or a portion, of the applications (200) and/or the backup agent (210) may be other types of hardware devices without departing from the invention.
In one or more embodiments of the invention, all, or a portion, of the applications (200) and/or the backup agent (210) are implemented using computing code stored on a persistent storage that when executed by a processor performs the respective functionalities of the applications (200) and the backup agent (210). The processor may be a hardware processor including circuitry such as, for example, a central processing unit or a microcontroller. The processor may be other types of hardware devices for processing digital information without departing from the invention.
The modifiers (220) may modify the backup generation behavior to invoke the native backup functionality of the applications (200) of the clients. Depending on the implementation of the invention, the modifiers (220) may be: (i) generated using the modifier data or (ii) the result of executing modifier data (when the modifier data is an executable). Additional detail about the modifier and modifier data is provided below. In invoking the native backup functionality, the modifiers (220) may generate application specific backups of client data and/or application data (232) based on the set of protection policies (122) and native backup functionality information (124) used to generate the modifier (220).
In one or more embodiments of the invention, the persistent storage (230) provides data storage services to the applications (200), the backup agent (210), the modifiers (220) and/or other entities. The data storage services may include storing of data and providing of previous stored data. The persistent storage (230) may be implemented using a physical storage device or a logical storage device.
A logical storage device may be an entity that utilizes the physical storage devices of one or more computing devices to provide data storage services. For example, a logical storage may be a virtualized storage that utilizes any quantity of storage resources (e.g., physical storage devices) of any number of computing devices.
A physical storage device may be a physical device that provides data storage services. For example, a physical storage device may include any number of physical devices such as, for example, hard disk drives, solid state drives, tape drives, and/or other types of hardware devices that store data. The physical storage device may include any number of other types of hardware devices for providing data storage services. For example, the physical storage device may include storage controllers that balance and/or allocate storage resources of hardware devices, load balancers that distribute storage workloads across any number of hardware devices, memory for providing cache services for the hardware devices, etc.
The persistent storage (230) may store data structures including the application data (232), backups (234), modifier data (236) and/or other data. Each of these structures is discussed below.
As noted above, the application data (232) may be one or more data structures that include data generated, maintained by, and/or utilized by the applications (200) of clients (e.g., 130A). The application data (232) may include any quantity and/or type of data.
The backups (234) may be data structures that include information that may be used to restore data of the client (130A). The backups (234) may include any type of backups (e.g., full backups, synthetic backups, incremental backups, etc.). The backups may be application specific backups or non-application specific backups. Application specific backups may require the modifiers (220) to modify the backup generation behavior to invoke the native application specific backup functionality in order to be generated. The backups may be non-application specific backups that do not require the modifiers (220) to modify the backup generation behavior to invoke the native application specific backup functionality to be generated. The backups (234) may include data from any number of applications (200). The backups (234) may include client data. The backups (234) may include any quantity of data without departing from the invention.
The modifier data (236) may be data structures that include information that may be used to generate modifiers (220). The modifier data (236) may be generated by the backup manager (110) and obtained by the backup agent (210). The backup agent (210) may execute the modifier data (236), and the execution of the modifier data (236) may produce the modifiers (220).
The modifier data (236) may be data structures that include sets of input variables or parameters generated by the backup manager (110,
The modifier data (236) may be data structures that include sets of computer instructions (e.g., computer code) that are generated by the backup manager (110,
In another embodiment of the invention, the modifier data corresponds to an executable file(s), which becomes a modifier when executed by the client. In this scenario, the modifier is not generated by the client; rather, the modifier (which is transfer to the client as a modifier data) is directly executed by the client.
While the client (130A) of
As discussed above, the backup manager (110,
There may be any number of protection policies (e.g., 122A, 122B, 122N) stored in the persistent storage (120) of the manager (100). The aforementioned requirements act as guidelines for generating backups of client data for clients (130). These guidelines may include information regarding the to-be generated backup associated with a particular protection policy. This information may include, but is not limited to, storage location (e.g., 300A, 300B, 300N), backup type (e.g., 302A, 302B, 302N), and schedule (e.g., 304A, 304B, 304N). Each of the types of information is discussed below. There may be any amount of information included in the protection policies (122) that relate to any number of different backup requirements included in the protection policies (122). There may be other and/or additional requirements included in the protection policies (122) without departing from the invention.
As discussed above, protection policies (122) may include information regarding storage locations (e.g., 300A). Storage locations (e.g., 300A) may specify the location a generated backup relate toing to a particular protection policy (e.g., 122A) will be stored in the backup storages (140,
Protection policies (122) may also include information regarding the type of backup (e.g., 302A) to be generated. The backup type (e.g., 302A) may specify the generated backup to be, for example, a full backup, an incremental backup, or a synthetic backup. A full backup may be a backup of some client data that includes sufficient data required to independently recover the client or client application (i.e., no other backups are required) to a predetermined point in time. An incremental backup is a backup of some client data that includes changes to the client data since a last backup of the client data was performed. The last backup prior to the increment backup could be any type of backup. A synthetic backup is a backup that is generated by merging an incremental backup with a previous full or synthetic backup. The backup type (e.g., 302A) may also specify whether a backup is an application specific backup or a non-application specific backup. The generated backup may be any type of backup without departing from the invention.
As discussed above, protection policies (122) may also include information regarding the backup schedule (e.g., 304A) for a generated backup associated with a particular protection policy (e.g., 122A). The backup schedule (e.g., 304A) may specify when a particular backup is to be generated. For example, the backup schedule (e.g., 304A) may specify the month, the day of the week, and/or the hour of the day a backup is to be generated. The backup schedule (e.g., 304A) may also specify whether a backup is to be repeated and how often the backup should be repeated. For example, a backup may be repeated hourly, daily, weekly, monthly, yearly, etc. without departing from the invention. The backup schedule (e.g., 304A) may include other and/or additional information without departing from the invention.
As discussed above, a manager in accordance with embodiments of the invention may generate modifier data adapted to invoke the native backup functionality of client applications and generate backups according to native backup functionality information from clients and all, or portions of, protection policies.
While
In step 400, native backup functionality information is obtained from a client of clients.
In one or more embodiments of the invention, the backup manager obtains the native backup functionality information from the backup agent of a client of clients.
For example, the backup manager may send a request for the native backup functionality information to the backup agent hosted by a client of clients. The backup agent may obtain the native backup functionality information from an application of the client and send back a message including the native backup functionality information to the backup manager. The backup agent may maintain a repository of native backup functionality information in the application data or another data structure of the persistent storage of the client. The backup manager may obtain the native backup functionality information from a client of clients via other and/or additional methods without departing from the invention.
In step 402, at least one protection policy is obtained.
In one or more embodiments of the invention, the backup manager may obtain at least one protection policy from the persistent storage of the manager. For example, the manager may maintain a repository of protection policies in a persistent storage. Each client may be associated with certain protection policies. The backup manager may obtain all, or a portion, of the protection policies associated with a client from the persistent storage of the manager. The backup manager may obtain at least one protection policy via other and/or additional method without departing from the invention.
In step 404, it is determined whether the combination of the obtained protection policies and native backup functionality information is unique.
In one or more embodiments of the invention, the backup manager uses the modifier repository to determine whether the obtained protection policies and native backup functionality information is unique. As discussed above, the modifier repository may store previously generated modifier data and associated combinations of protection policies and native backup functionality information used to generate the modifier data. The backup manager may obtain the existing sets of protection policies and native backup functionality information and compare them to the newly obtained set of protection policies and native backup functionality information.
For example, the backup manager may obtain all of the existing sets of protection policies and native backup functionality information from the modifier repository of the persistent storage individually and compare them with the newly obtained set of protection policies and native backup functionality information. The backup manager may repeat this comparison process until (i) the backup manager finds a match between an existing set of protection policies and native backup functionality information, and the newly obtained set of protection policies and native backup functionality information, or (ii) the backup manager has compared all of the existing sets of protection policies and native backup functionality information with the newly obtained set of protection policies and native backup functionality information and determines that there is no match between any of the existing sets of protection policies and native backup functionality information and the newly obtain set of protection policies and native backup functionality information.
If the backup manager finds a match between an existing set of protection policies and native backup functionality information stored in the modifier repository and the newly obtained set of protection policies and native backup functionality information, the backup manager may determine that the newly obtained set of protection policies and native backup functionality information is not unique. If the backup manager does not find a match between an existing set of protection policies and native backup functionality information stored in the modifier repository and the newly obtained set of protection policies and native backup functionality information, the backup manager may determine that the newly obtained set of protection policies and native backup functionality information is unique. The newly obtained set of protection policies and the native backup functionality information may be determined to be unique via other and/or additional methods without departing from the invention.
If it is determined the newly obtained set of protection policies and native backup functionality information is unique, the method may proceed to step 406. If it is determined the newly obtained set of protection policies and native backup functionality information is not unique, the method may proceed to step 408.
In step 406, modifier data is generated based on the native backup functionality information and at least one protection policy associated with the client.
In one or more embodiments of the invention, the backup manager generates the modifier data by generating a data structure that includes the set of protection policies and native backup functionality information. The backup manager may generate the modifier data by generating a list that includes all of the protection policies and the native backup functionality. The backup manager may generate the modifier data by generating an array that includes all of the protection policies and native backup functionality information. The backup manager may generate other types of data structures that include the set of protection policies and native backup functionality information that act as inputs to a program or script of the backup agent without departing from the invention. The modifier data may be generated via other and/or additional methods without departing from the invention.
In one or more embodiments of the invention, the backup manager generates the modifier by generating a data structure that includes a script or computer program that is adapted based on the set of protection policies and native backup functionality information.
In step 408, modifier data is obtained from a modifier repository.
In one or more embodiments of the invention, the backup manager obtains the modifier data associated with a modifier from the modifier repository of the persistent storage of the manager. As discussed above, the manager may include persistent storage that includes a modifier repository. The backup manager may store all previously generated modifier data and the sets of protection policies and native backup functionality information used to generate said modifier data. After finding a match between an existing set of protection policies and native backup functionality information and a newly obtained set of protection policies and native backup functionality information, the backup manager may then obtain the modifier data that is associated with the existing set of protection policies and native backup functionality information from the modifier repository of the persistent storage of the manager. The modifier may be obtained via other and/or additional methods without departing from the invention.
In step 410, a backup is generated for the client using the modifier. See
The method may end following step 410.
In one or more embodiments of the invention, the backup is generated via the method illustrated in
As discussed above, a backup may be generated using the method illustrated in
While
In step 412, modifier data is sent to a client of clients.
In one or more embodiments of the invention, the backup manager sends modifier data to a backup agent of a client of clients. The backup manager may send a message including the modifier data. As discussed above, the modifier data may be a data structure that includes input variables, a data structure that includes a script adapted based on a set of protection policies and native backup functionality information, or an executable file(s). The message may include the data structures that include the modifier data. The modifier data may be sent to a client of clients via other and/or additional methods without departing from the invention.
In step 414, a backup generation using the modifier is initiated.
In one or more embodiments of the invention, the backup manager sends a message to the client requesting initiation of a backup generation. The message may request a backup agent hosted by the client to execute the modifier data to generate the modifier executing entity. The message may further request the backup agent generate a modifier using the modifier data, which is then used to invoke the native backup functionality of the applications of the client which would result in the generation of an application specific backup. The backup generation using the modifier may be initiated via other and/or additional information without departing from the invention. The backup generated in step 414 may be stored in backup storage (140).
The method may end following step 414.
As discussed above, a backup may be generated using the method illustrated in
In step 500, it is determined whether modifier data exists.
In one or more embodiments of the invention, the backup agent has a flag that notifies the backup agent of newly obtained modifier data from the backup manager to be executed in order to generate a modifier to generate an application specific backup. The flag may be triggered by the backup manager after sending the modifier data to the backup agent. If the flag is triggered, the backup agent may determine that there exists modifier data to be executed to generate an application specific backup. If the flag is not triggered, the backup agent may determine that there does not exist modifier data to be executed and may proceed to not modify backup generation behavior. The backup agent may determine whether modifier data exists via other and/or additional methods without departing from the invention.
If it is determined that there exists modifier data, the method may proceed to step 502. If it is determined that there does not exist modifier data, the method may end after step 500.
In step 502, the backup generation behavior is modified based on the modifier to invoke native backup functionality.
In one or more embodiments of the invention, the backup agent modifies the backup generation behavior by executing the modifier data and producing the modifier, which generate application specific backups. The modifier invokes the native backup functionality of applications of clients to generate application specific backups. Each application of a client may have its own unique backup functionality, and therefore requires the backup agent to execute a set of modifier data to generate a modifier that modifies the backup generation behavior to invoke the unique native backup functionality of the application. The backup generation behavior may be modified via other and/or additional methods without departing from the invention.
To further clarify aspects of embodiments of the invention, a non-limiting example is provided in
Consider a scenario as illustrated in
To provide such data backup storage services, the clients (130A, 130B) (or other entities such as a backup agent of the clients) may request initiation of a backup generation.
At a first point in time, the manager (100) sends a message to client A (130A) for native information (600). In response to the request for native information (600), client A (130A) sends the native information (602) to the manager (100). After the manager (100) obtains the native information (602), the manager (100) generates modifier data (604) based on the native information and protection policies (which were previously stored on the manager).
Once the manager (100) generates the modifier data (604), the manager (100) sends the modifier data (606) to client A (130A). After the modifier data (606) is sent to client A (130A), the manager sends a message to client A (130A) to initiates a backup generation (608) on client A (130A). The manager (100) may send the message initiating the backup generation (608) to client A (130A) prior to the manager (100) sending the modifier data (606) to client A (130A) without departing from the invention. After client A (130A) obtains both the modifier data (606) and the message initiating a backup generation (608), client A (130A) executes the modifier to generate a backup (610), where the modifier is generated by processing and/or executing the modifier data. Once the backup (610) is generated, client A (130A) sends the backup (612) to the backup storages (140). After the backup storages (140) receive the backup (612) from client A (130A), the backup is stored (614) in the backup storages (140).
After generating a backup for client A (130A), client B (130B) may request backup generation initialization from the manager (100).
Referring to
Once the manager (100) generates the modifier data (620), the manager (100) sends the modifier data (622) to client B (130B). After the modifier data (622) is sent to client B (130B), the manager sends a message to client B (130B) that initiates a backup generation (624) on client B (130B). The manager (100) may send the message initiating the backup generation (624) to client B (130B) prior to the manager (100) sending the modifier data (622) to client B (130B) without departing from the invention. After client B (130B) obtains both the modifier data (620) and the message initiating a backup generation (624), client B (130B) executes the modifier to generate a backup (626), where the modifier is generated by processing and/or executing the modifier data. Once the backup (626) is generated, client B (130B) sends the backup (628) to the backup storages (140). After the backup storages (140) receive the backup (628) from client B (130B), the backup (630) is stored in the backup storages (140).
End of Example
As discussed above, embodiments of the invention may be implemented using computing devices.
In one embodiment of the invention, the computer processor(s) (702) may be an integrated circuit for processing instructions. For example, the computer processor(s) may be one or more cores or micro-cores of a processor. The computing device (700) may also include one or more input devices (710), such as a touchscreen, keyboard, mouse, microphone, touchpad, electronic pen, or any other type of input device. Further, the communication interface (712) may include an integrated circuit for connecting the computing device (700) to a network (not shown) (e.g., a local area network (LAN), a wide area network (WAN) such as the Internet, mobile network, or any other type of network) and/or to another device, such as another computing device.
In one embodiment of the invention, the computing device (700) may include one or more output devices (708), such as a screen (e.g., a liquid crystal display (LCD), a plasma display, touchscreen, cathode ray tube (CRT) monitor, projector, or other display device), a printer, external storage, or any other output device. One or more of the output devices may be the same or different from the input device(s). The input and output device(s) may be locally or remotely connected to the computer processor(s) (702), non-persistent storage (704), and persistent storage (706). Many different types of computing devices exist, and the aforementioned input and output device(s) may take other forms.
Embodiments of the invention may provide a method for generating backups in an environment in which the native backup generation functionality of applications and/or other entities hosted by a to-be-backed up entity is invoked for backup generation purposes. Specifically, embodiments of the invention may provide a method for invoking the native backup functionality in a manner that enables protection policies that define the scope of protection to be provided to various entities of the system to be met by the generated backups. By doing so, embodiments of the invention may enable backup functionality of a myriad number of entities to be utilized while complying with protection policy requirements. By doing so, the likelihood of data of backed up entities that may otherwise be lost due to, for example, hardware failures of devices hosting the entities may be reduced.
Thus, embodiments of the invention may address the problem of the complexity of generating backups in a distributed environment in which the functionality of a multitude of entities may be invoked to generate such backups. By doing so, the cognitive burden on a user for architecting the generation and storage of backups to meet data protection policy requirements may be reduced.
The problems discussed above should be understood as being examples of problems solved by embodiments of the invention of the invention and the invention should not be limited to solving the same/similar problems. The disclosed invention is broadly applicable to address a range of problems beyond those discussed herein.
One or more embodiments of the invention may be implemented using instructions executed by one or more processors of the data management device. Further, such instructions may correspond to computer readable instructions that are stored on one or more non-transitory computer readable mediums.
While the invention has been described above with respect to a limited number of embodiments, those skilled in the art, having the benefit of this disclosure, will appreciate that other embodiments can be devised which do not depart from the scope of the invention as disclosed herein. Accordingly, the scope of the invention should be limited only by the attached claims.