Method and system for data backup and recovery
By using a backup agent in the host device to detect and generate data backup instructions, and combining it with an operation algorithm to perform delayed backup, the problem of low data backup efficiency in the existing technology is solved, and efficient data storage and recovery is achieved.
Patent Information
- Application Number
- CN202080017970.6
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2020-05-08
- Publication Date
- 2025-09-19
- Estimated Expiration
- 2040-05-08
Smart Images

Figure CN113939808B_ABST
Abstract
Description
Technical Field
[0001] The present disclosure relates generally to the field of data protection and backup, and more particularly, to methods and systems for data backup and recovery. Background Art
[0002] Generally, data backup and recovery refers to the process of creating and storing copies of data that can be used to protect and recover data in the event of data loss in a primary storage system (e.g., a conventional host device). Examples of data loss events include, but are not limited to, data corruption, hardware or software failures in the primary storage system, accidental deletion of data, hacker attacks, or malicious attacks. Therefore, for security reasons, secondary independent storage systems (such as backup systems) are widely used to store backups of data in primary storage systems.
[0003] Currently, conventional backup systems typically use a backup server to read data changes from the storage system storing the data (such as the primary storage system), or directly retrieve data from the host device's storage device. Some conventional backup systems store the entire changed data. As a result, over time, the changed data occupies a large amount of the conventional backup system's storage space, thereby increasing the backup system's storage capacity. This is undesirable as it degrades backup system performance. Furthermore, the cost of file storage and all associated costs, including storage hardware, remain a burden. Therefore, reducing the amount of data in backup systems remains a technical challenge.
[0004] Currently, many technologies are available for data reduction, such as data compression, data deduplication, and incremental differencing. However, these conventional technologies are inefficient and typically involve reducing the amount of data to be stored by eliminating redundant data. For example, data deduplication is widely used and involves storing data in the backup system as data blocks. After receiving a new data block, a conventional backup server compares the new data block with pre-stored data blocks. If the new data block is already stored on the backup server (or backup repository), a reference to the already stored data block is stored. In this way, data deduplication overcomes the problem of duplicated data in the backup storage space. However, conventional technologies do not substantially reduce the amount of data to be stored in conventional backup systems. Furthermore, such technologies cannot track or detect any significant changes to the data content. For example, if a user decides to archive a set of files into a compressed file, the compressed data is completely different from the pre-compression data, so deduplication does not reduce any data. In another example, if a user encrypts a file or an entire storage disk, conventional systems often treat the output file as new (or changed) data to be backed up, resulting in inefficiencies in the data backup and recovery process and system.
[0005] Therefore, in light of the above discussion, a need exists to overcome the aforementioned shortcomings associated with conventional data backup and recovery processes and systems. Summary of the Invention
[0006] This disclosure seeks to provide methods and systems for data backup and recovery. This disclosure seeks to address the existing problem of inefficient data storage, specifically, how to further reduce the amount of data in backup systems compared to conventional methods and systems. The present disclosure aims to provide a solution that at least partially overcomes the problems encountered in the prior art and provides improved methods and systems for achieving efficient data storage (i.e., efficient data backup and recovery).
[0007] The objects of the present disclosure are achieved by the solutions provided in the appended independent claims. Advantageous embodiments of the present disclosure are further defined in the dependent claims.
[0008] In a first aspect, the present disclosure provides a method for backing up data items stored in a host device. The method includes activating at least one backup agent in a host file system of the host device, the host file system including one or more data items to be backed up. The method also includes using at least one activated backup agent to: detect one or more first operations that perform one or more first changes in the host file system; detect the one or more first changes in the host file system performed by the one or more first operations; and generate a first data backup instruction based on the detected one or more first operations and the detected one or more first changes. The method also includes providing one or more operation algorithms to a backup system; and providing the generated first data backup instruction to the backup system, the backup system being used for delayed backup calculation of the one or more data items to be backed up.
[0009] The method of the first aspect significantly reduces the size of backup data, thereby enabling efficient data storage, for example, in a backup system. In conventional methods, a conventional backup system backs up one or more data items on a conventional host device, or backs up changes to the one or more data items, for example, as new data blocks. In contrast to conventional methods, advantageously, the backup system (which performs delayed backup calculations for the one or more data items to be backed up) only backs up instructions (e.g., generated first data backup instructions), rather than storing the one or more data items in which one or more changes were detected. This significantly reduces the amount of data that needs to be stored in the backup system.
[0010] In an embodiment of the first aspect, the method further includes: detecting one or more second operations, wherein the one or more second operations perform one or more second changes in the host file system after the one or more first operations; detecting the one or more second changes, wherein the one or more second changes are performed by the one or more second operations after the one or more first changes in the host file system; generating a second data backup instruction based on the detected one or more second operations and the detected one or more second changes; and storing the generated second data backup instruction in a backup system.
[0011] Using the backup agent, any changes in the host file system (e.g., the one or more second operations following the first operation) can be accurately and consistently detected. Furthermore, storing the generated second data backup instructions (rather than the actual data items or changes themselves) in the backup system can effectively utilize storage space in the backup system.
[0012] In another embodiment of the first aspect, detecting the one or more first changes in the host file system includes detecting at least one of the following: a change to the one or more data items, one or more new data items in the host file system, a change in the location of one or more data items in the host file system, or a deletion of one or more data items.
[0013] Due to detecting the one or more changes in the host file system, the backup system stores one or more data backup instructions instead of storing the one or more data items (with the one or more changes) as in a conventional backup system. Therefore, the storage space of the backup system can be efficiently utilized.
[0014] In another embodiment of the first aspect, one or more of the first data backup instruction and the second data backup instruction include a recovery point and at least one of the following: information about the data item and information related to the change to the data item, information about creating the new data item, the type and software version of the software related to the change to the data item or the creation of the new data item for performing the operation in the host file system, information related to which operation algorithms are used in the host file system to perform the operation, one or more parameters of the operation algorithm used, the type of change made in the host file system, an encryption key, one or more patch files, and instructions for installing the patch files.
[0015] By using the restore point and other information, such as software type and version, backup computations can be delayed until the restore point. Therefore, rather than storing the one or more data items with the one or more changes, the one or more data backup instructions enable the backup system to restore the one or more data items with the changes at the time of restoration (i.e., the restore point). This can significantly reduce storage space in the backup system.
[0016] In another implementation of the first aspect, the information of the data item includes at least one of the following: the fact that the data item has been changed, the type of the data item, the location of the data item, the name of the data item, and the format of the data item.
[0017] The information about the data item (e.g., the fact that the data item has been changed, the location and name of the data item, etc.) provides the backup system with information for identifying the data item with the one or more changes. This allows the backup system to accurately and efficiently perform delayed backup calculations.
[0018] In another implementation of the first aspect, the information about creating the new data item includes at least one of the following: the fact that the new data item has been created, the type of the new data item, the location of the new data item, the name of the new data item, and the format of the new data item.
[0019] The information about the new data item (e.g., the fact that the new data item was created, the location and name of the new data item) provides the backup system with information to further identify the created new data item. Thus, using the information about the new data item, the backup system can accurately and efficiently perform delayed backup calculations.
[0020] In another embodiment of the first aspect, the detection is performed by generating a snapshot of the host file system, and the one or more data backup instructions are generated by obtaining one or more of the first data backup instructions and the second data backup instructions from the snapshot.
[0021] The snapshot of the host file system can detect changes and further facilitate accurate generation of the one or more data backup instructions for performing delayed backup calculations to restore the data items, thereby significantly saving computing resources and storage space during the backup process.
[0022] In another embodiment of the first aspect, providing the one or more operation algorithms includes providing an algorithm for performing the change of the one or more data items; an algorithm for creating the one or more new data items in the host file system; an algorithm for performing the change of the location of one or more data items in the host file system; or an algorithm for deleting one or more data items.
[0023] Different operation algorithms enable the backup system to use a specific algorithm at a restore point to accurately restore a specific data item using one or more data backup instructions.
[0024] In another embodiment of the first aspect, providing one or more operation algorithms includes providing a compression algorithm, an encryption algorithm, an editing algorithm, or an installation algorithm.
[0025] Knowledge of the usage of the particular computing algorithms used to create the changes to the data items in the host device is then used to accurately restore the corresponding data items using the one or more computing algorithms.
[0026] In a second aspect, the present disclosure provides a method for backing up data items in a host device, the method comprising: receiving one or more data backup instructions related to a host file system of the host device, the host file system including at least one data item to be backed up; storing the received one or more data backup instructions in a backup system; obtaining one or more operation algorithms of the host device, and storing the obtained one or more operation algorithms as one or more recovery algorithms; and performing delayed backup calculations of the data items to be backed up using at least one data backup instruction of the stored one or more data backup instructions and the one or more recovery algorithms.
[0027] The method of the second aspect significantly reduces the size of backup data to be stored in the backup system, thereby achieving efficient and cost-effective data storage. Advantageously, compared to conventional methods, this method can back up one or more data backup instructions rather than storing search data items with one or more changes. This method significantly reduces the storage space occupied by the backup system compared to storing the search data items. Consequently, the amount of data required to be stored in the backup system is significantly reduced.
[0028] In an embodiment of the second aspect, the method further includes preparing a backup database, wherein the prepared backup database includes a list of data items stored in the host file system, and a pointer to the location of each data item in the host file system, or a data backup instruction for each data item in the list of data items stored in the file system.
[0029] The backup database only stores information related to implementing (or restoring) one or more changes in the data item, rather than storing the data item itself. Therefore, a large amount of storage space is saved in the backup database.
[0030] In a third aspect, the present disclosure provides a method for restoring data items, the method comprising: receiving a recovery request including a recovery point from a host device at a recovery time to restore one or more data items being backed up; identifying a data backup instruction corresponding to the received recovery request from a backup database; starting at least one recovery algorithm based on the recovery request; performing a delayed backup calculation by using the identified data backup instruction and the at least one started recovery algorithm to restore the one or more backed up data items; and providing the restored one or more data items to the host device.
[0031] Upon receiving a restore request, the method is configured to initiate a restore algorithm using the data backup instructions to restore the one or more data items. This restore is accomplished without requiring prior storage of the one or more data items having the one or more changes. This saves significant storage space in the backup system due to the delayed backup computation.
[0032] In a fourth aspect, the present disclosure provides a system for data backup and recovery, the system comprising a backup database and a backup server, wherein the backup server is used to: obtain one or more operation algorithms from a host device and store the obtained one or more operation algorithms as recovery algorithms; receive one or more data backup instructions from a host file system to be backed up; and initiate a delayed backup calculation of the one or more data items to be backed up.
[0033] The backup server (i.e., the backup system) is configured to store only the one or more computing algorithms and the one or more data backup instructions, rather than storing one or more changes to one or more data items or the data items themselves. Therefore, compared to conventional backup servers, the memory space used in the backup server is significantly reduced.
[0034] In one embodiment of the fourth aspect, the backup server is further used to: receive a recovery request including a recovery point at a recovery time; restore the one or more data items of the host file system being backed up at the recovery time based on the received recovery point by using a delayed backup calculation of the one or more data items to be backed up; and provide the one or more created data items of the host file system being backed up as the one or more restored data items to the host file system.
[0035] The backup server accurately restores the one or more data items at the restoration time by using the one or more computing algorithms and the one or more data backup instructions to create the one or more data items requested in the restoration request. Furthermore, by storing the one or more data backup instructions, a large amount of storage space is saved.
[0036] In another embodiment of the fourth aspect, the backup database includes a list of data items stored in the host file system, and a pointer indicating the location of the data items in the list of data items in the host file system, or a data backup instruction for each data item in the list of data items stored in the host file system.
[0037] The backup database stores information such as the data item list and pointers to accurately create the one or more data items and provide the restored one or more data items to the host device.
[0038] In another embodiment of the fourth aspect, the system further includes one or more backup agents in the host device.
[0039] The one or more backup agents are configured to detect one or more changes and execute algorithms to calculate the one or more changes in the one or more data items, thereby enabling accurate and efficient recovery of the one or more data items.
[0040] In another embodiment of the fourth aspect, the one or more backup agents are used to: detect one or more operations that perform one or more changes in the host file system; detect the one or more changes in the host file system performed by the one or more operations; and generate the data backup instructions based on the detected one or more operations and the detected one or more changes.
[0041] The data backup instructions generated by the one or more backup agents may enable the memory to efficiently and accurately restore one or more data items when needed by using only the one or more data backup instructions and one or more operation algorithms.
[0042] In a fifth aspect, the present disclosure provides a computer program, which, when executed on a host file system, is adapted to perform the method described in the first aspect.
[0043] The fifth aspect achieves all the advantages and effects of the first aspect.
[0044] In a sixth aspect, the present disclosure provides a computer program, which, when executed on a backup system, is adapted to perform the method described in the second aspect.
[0045] The sixth aspect achieves all the advantages and effects of the second aspect.
[0046] In a seventh aspect, the present disclosure provides a computer program, which, when executed on a host file system, is suitable for performing the method described in the third aspect.
[0047] The seventh aspect achieves all the advantages and effects of the third aspect.
[0048] It must be noted that all devices, elements, circuits, units and means described in this application can be implemented in software or hardware elements or any combination thereof. All steps performed by the various entities described in this application and functions described as being performed by the various entities are intended to indicate that the corresponding entities are suitable for or used to perform the corresponding steps and functions. Even if in the description of the following specific embodiments, a specific function or step performed by an external entity is not reflected in the description of the specific detailed elements of the entity performing the specific step or function, it should be clear to the skilled person that these methods and functions can be implemented in the respective software or hardware elements or any combination thereof. It will be understood that the features of the present disclosure can be combined in any way without departing from the scope of the present disclosure as defined in the appended claims.
[0049] Additional aspects, advantages, features and objects of the present disclosure will become apparent from the accompanying drawings and detailed description of illustrative embodiments, which is interpreted in conjunction with the appended claims. BRIEF DESCRIPTION OF THE DRAWINGS
[0050] The above summary and the following detailed description of the illustrative embodiments may be better understood when read in conjunction with the accompanying drawings. To illustrate the present disclosure, exemplary configurations of the present disclosure are shown in the accompanying drawings. However, the present disclosure is not limited to the specific methods and means disclosed herein. Furthermore, those skilled in the art will appreciate that the drawings are not drawn to scale. Whenever possible, identical elements are represented by identical numerals.
[0051] Embodiments of the present disclosure will now be described, by way of example only, with reference to the following drawings, in which:
[0052] Figure 1 is a schematic diagram of an exemplary architecture of a system according to one embodiment of the present disclosure;
[0053] Figure 2 is a flowchart of a method for backing up data items stored in a host device according to one embodiment of the present disclosure;
[0054] Figure 3 is a flowchart of a method for backing up data items of a host device according to one embodiment of the present disclosure;
[0055] Figure 4is a flowchart of a method for restoring a data item according to one embodiment of the present invention;
[0056] Figure 5A is a network environment diagram of a system for data backup and recovery according to an embodiment of the present disclosure;
[0057] Figure 5B is a block diagram illustrating various exemplary components of a host device according to one embodiment of the present disclosure; and
[0058] Figure 5C is a block diagram illustrating various exemplary components of a backup server according to one embodiment of the present disclosure.
[0059] In the accompanying drawings, underlined numbers are used to identify the item in which the underlined number appears, or to identify an item adjacent to the underlined number. Non-underlined numbers are associated with the identified item by linking the non-underlined number to the row of that item. When a number is not underlined and has an associated arrow, the non-underlined number identifies the general item to which the arrow points. DETAILED DESCRIPTION
[0060] The following detailed description illustrates embodiments of the present disclosure and methods for implementing the embodiments of the present disclosure. Although some modes of implementing the present disclosure have been disclosed, those skilled in the art will recognize that other embodiments for implementing or practicing the present disclosure are also possible.
[0061] Figure 1 An example architecture of system 01 according to one embodiment of the present disclosure is shown. In the illustrated example, the example architecture of system 01 includes a backup system 03 and a backup agent 18 provided to a host file system 16 of a host device 02. Backup system 03 is configured to communicate with backup agent 18 in host file system 16 of host device 02 via a communication network 08. Host file system 16 includes at least one data item to be backed up in backup system 03. Backup system 03 includes a backup server 04 and a backup database 06.
[0062] Figure 2 A method 100 for backing up data items stored in a host device according to an embodiment of the present disclosure is shown. The method 100 is performed on a host device (e.g., Figure 5B According to one embodiment of the present disclosure, a method 100 for backing up data items stored in a host device 02 includes:
[0063] activating at least one backup agent 18 in a host file system 16 of a host device 02, the host file system 16 including at least one data item to be backed up;
[0064] Using at least one active backup agent 18 for:
[0065] detecting one or more first operations that perform one or more first changes in the host file system 16;
[0066] detecting one or more first changes in host file system 16 performed by one or more first operations; and
[0067] generating a first data backup instruction based on the detected one or more first operations and the detected one or more first changes;
[0068] providing one or more operation algorithms to the backup system;
[0069] The generated first data backup instruction is provided to a backup system, which is used for delayed backup calculation of one or more data items to be backed up.
[0070] Figure 2 An embodiment of method 100 is shown. Referring to the figure, the method includes: Step 102: activating at least one backup agent in a host file system of a host device. The host file system includes at least one data item to be backed up. Activating the backup agent refers to operating the backup agent in the host device. In one example, at least one backup agent is first installed on the host device and then activated (i.e., operated) to enable the at least one backup agent to perform its functions. A backup agent refers to software implemented on the host device that accesses data items (i.e., data files, data folders, etc.) and performs functions related to backup and restore. Furthermore, the backup agent acts as a communication agent or interface between the host device and the backup system. The activated backup agent provides information to the backup system, enabling the backup system to perform backup and restore functions when needed. When the backup agent is installed, it is integrated with several software algorithms in the host device, enabling the backup agent to perform its functions, such as accurately detecting changes caused by such software algorithms. Examples of software algorithms include, but are not limited to, compression algorithms, encryption algorithms, and video editing algorithms. Furthermore, a host file system refers to the file system of the host device, which is associated with the processes for managing data items in the host device. For example, the process of managing data items may include, but is not limited to, naming data items in the host device, storing data items in the host device, associating locations with data items in the host device, etc. Typically, a host file system includes one or more data items. Examples of one or more data items include, but are not limited to, audio, video, images, folders, text documents, or other files (e.g., compressed files).
[0071] In step 104, the method includes executing several sub-steps 104A, 104B, and 104C of step 104 on the host device using at least one activated backup agent. In sub-step 104A, the method also includes detecting, using the at least one activated backup agent, one or more first operations that perform one or more first changes in the host file system. Typically, the one or more first operations are operations that result in large-scale changes to the host file system (e.g., changes to one or more data items or storage space of the host file system). The detected one or more first operations are performed by at least one computing algorithm to produce the one or more first changes in data items present in the host file system of the host device. In one example, the one or more first changes may include: a change in the size of the data item caused by the computing algorithm (e.g., a change caused by compression); a change in the appearance of the data item (e.g., a change caused by filtering or other visual algorithms); a change in the security associated with the data item (e.g., a change caused by encryption or compression); a change in the format of the data item, etc.
[0072] exist Figure 2 In step 104B, the method further includes: using at least one activated backup agent to detect one or more first changes in the host file system performed by one or more first operations. The at least one backup agent is configured to detect the one or more first changes by identifying changes performed by, for example, compression, encryption, filtering, and other operations. In one example, a data item compressed and archived as a compressed data item is different from the data item before compression. The size of the compressed data item is reduced compared to the data item before compression. Therefore, in this example, the one or more first changes relate to the size of the data item in the host file system of the host device performed by the operation of the compression algorithm. In another example, a data item encrypted as an encrypted data item is different from the data item before encryption. The encrypted data item is more secure than the data item before encryption. Therefore, the one or more first changes relate to the security of the data item in the host file system of the host device. In yet another example, a data item, such as an image, is modified by applying a filter into a filtered image, the filtered image differing in appearance from the image before the filter was applied. Therefore, the one or more first changes relate to the appearance of the data item in the host file system of the host device.
[0073] exist Figure 2In step 104C, the method further includes: using at least one activated backup agent to generate a first data backup instruction based on the detected one or more first operations and the detected one or more first changes. The first data backup instruction represents a series of steps that need to be performed to reproduce one or more first changes in one or more data items present in the host file system. In one example, the sequence of steps may be an ordered sequence of steps. For example, the first data backup instruction includes steps that need to be performed to reproduce a compressed folder based on a detected compression operation (e.g., by a compression operation) performed together to compress the one or more data items, and based on the detected changes caused by the compression of the one or more data items. In another example, the first data backup instruction includes steps that need to be performed to reproduce an encrypted data item based on a detected encryption operation performed on the data item and a change detected when the data item was encrypted.
[0074] In step 106, the method includes providing one or more operation algorithms to a backup system. The backup system is used to store a backup of data present in the host device. In the backup system, instead of storing actual data items during the backup, one or more operation algorithms and backup instructions (e.g., first data backup instructions) are stored and subsequently used to reproduce the corresponding data items of the host device. As an example, the backup system includes a backup server 04, which is configured to store data in a manner similar to that of a server 04. Figure 5C , which is described in detail in [1]. Examples of the one or more algorithms include, but are not limited to, compression algorithms, encryption algorithms, video editing algorithms, patch files, installation software files, other software algorithms, or software components residing on the host device. These algorithms are generally used to perform operations on one or more data items, causing changes to the one or more data items. In one example, a data item may be compressed and archived as a compressed data item using a compression algorithm. In another example, one data item may be encrypted into another data item using an encryption algorithm. In yet another example, at least one image may be altered into another image using a filter of a video editing algorithm. In yet another example, a patch (i.e., a software patch) may be installed in a virtual machine on the host device using a patch file. Such algorithms cause one or more first changes to the host file system. In one example, providing (i.e., storing) the one or more algorithms to the backup system may be a one-time activity, for example, performed upon detection of the one or more first changes. In another example, providing the one or more algorithms may be a periodic activity, performed periodically upon detection of any new updates to an existing list of algorithms or any new algorithms on the host device using at least one backup agent.
[0075] In step 108, the method includes providing the generated first data backup instruction to a backup system for performing delayed backup calculations for one or more data items to be backed up. The generated first data backup instruction (rather than the actual data items to be backed up, i.e., the one or more data items) is provided to the backup system. The backup system uses the generated first data backup instruction to perform calculations to reproduce the one or more data items with the one or more changes at a delayed time (i.e., within a recovery time). In other words, the delayed backup calculations are performed at the recovery time. In one example, the recovery time can be a user-selected recovery time set based on user input. Therefore, there is no need to back up one or more data items that underwent one or more changes during the backup period. This allows for efficient storage and reduces the storage space occupied by the backup system compared to conventional methods.
[0076] According to one embodiment, method 100 further includes: detecting one or more second operations that perform one or more second changes in the host file system after the first operation; detecting the one or more second changes that are performed by the one or more second operations after the first change in the host file system; generating second data backup instructions based on the detected one or more second operations and the detected one or more second changes; and storing the generated second data backup instructions in the backup system. Detecting the one or more second operations and generating the second data backup instructions is similar to detecting the one or more first changes and generating the first data backup instructions. In one example, because the one or more operation algorithms have already been provided to the backup system (e.g., in step 106), providing the one or more operation algorithms again may not be necessary. It should be understood that method 100 may further include detecting one or more third operations that perform one or more third changes in the host file system after the second operation. Furthermore, method 100 may further include detecting one or more fourth operations, fifth operations, sixth operations, and so on. Using a backup agent, any changes in the host file system, such as one or more second operations that occur after a first operation, can be accurately and consistently detected. Furthermore, storing the generated second data backup instruction in the backup system instead of storing the actual data item or the change itself can effectively utilize the storage space in the backup system.
[0077] According to one embodiment, method 100 further includes detecting one or more changes in the host file system, including detecting at least one of the following: a change in one or more data items, one or more new data items in the host file system, a change in the location of one or more data items in the host file system, or a deletion of one or more data items. The change in the one or more data items may be internal, i.e., any change associated with the file itself. For example, such a change may be caused by encryption of the data items, compression of the data items by a compression operation, and so on. In one example, the one or more new data items are newly generated by an algorithm. The one or more new data items are different from one or more data items previously stored and modified by the algorithm. Furthermore, the location of the one or more data items in the host file system may be changed from a first location to a second location. In one example, the location of a data item in drive C may be changed to drive D, which is a change in the location of the one or more data items. In another example, the location of a data item in drive C may be changed to drive D, which is a change in the location of the one or more data items. Furthermore, the one or more data items on the host file system may be deleted (e.g., upon completion of a task associated with the one or more data items). In another example, the data items may be accidentally deleted by a user of the host device. In one example, the aforementioned one or more changes in the host file system may result in large-scale changes in one or more data items.
[0078] According to one embodiment, one or more data backup instructions include a restore point and at least one of the following: information about a data item and information related to changes to the data item, information about the creation of a new data item, the type and version of software used to perform operations in the host file system related to the changes to the data item or the creation of the new data item, information related to the computing algorithm used to perform the operations in the host file system, one or more parameters of the computing algorithm used, the type of changes made in the host file system, an encryption key, one or more patch files, and instructions for installing the patch files. In one example, the term "restore point" herein corresponds to the time at which the restore occurs. Furthermore, a restore point refers to the state of one or more data items in the host file system that can be restored when needed, for example, using the first or second data backup instructions. In one example, a user can determine and set a restore point based on the type of data item. By using the restore point and other information (e.g., software type and version), backup computations can be delayed until the restore point. Therefore, instead of storing the one or more data items with one or more changes, the one or more data backup instructions enable the backup system to restore the one or more data items with the changes at the time of restore (i.e., the restore point). This can significantly reduce storage space in the backup system.
[0079] According to one embodiment, the data item information includes at least one of the following: the fact that the data item has been modified, the type of the data item, the location of the data item, the name of the data item, and the format of the data item. If necessary, the data item information enables the data item to be reconstructed by understanding the changes to the data item. The type of the data item indicates, for example, a file type (e.g., audio, video, document, image, patch file, etc.). The location of the data item indicates the storage location of the data item in the host device (e.g., a path to the data item may indicate this location), and the location of the data item enables determination of whether the location of the data item has been modified by one or more first or second operations. The name of the data item indicates the file name, thereby identifying the data item and further determining whether the name of the data item has been modified by one or more first or second operations. The format of the data item enables determination of whether the format of the data item has been modified by one or more first or second operations. Therefore, the data item information, such as the fact that the data item has been modified, the location and name of the data item, etc., provides the backup system with information for identifying data items with one or more changes. This allows the backup system to accurately and efficiently perform delayed backup calculations.
[0080] According to one embodiment, the information about the new data item includes at least one of the following: the fact that a new data item has been created, the type of the new data item, the location of the new data item, the name of the new data item, and the format of the new data item. If necessary, the information about the new data item enables the new data item to be reproduced by understanding the fact that the new data item has been created in the host file system. The type of the new data item indicates the file type, such as image, audio, video, document, text, software, etc. The location of the new data item indicates the storage location of the new data item (e.g., a new file) in the host device (e.g., the path to the new data item may indicate this location). When restoring such a new data item, the name and format of the new data item are used. Therefore, the information about the data item, such as the fact that the data item has been created, the location and name of the new data item, etc., provides the backup system with information for identifying the created new data item. Thus, using information about the new data item, the backup system accurately and efficiently performs delayed backup calculations.
[0081] Optionally, the backup agent detects the type and version of software performing operations in the host file system. The software type can be based on its functionality. In one example, photo editing software performs operations to edit the appearance of data items. Because software is regularly updated, it is necessary to determine the software version. Data backup instructions require this information to reproduce changes to data items or reproduce new data items when requested by the user.
[0082] Optionally, the backup agent detects from the algorithm information which algorithm was used to perform the operation in the host file system, as well as information related to one or more parameters of the algorithm used. Optionally, based on the parameters or settings used in the algorithm to perform the operation, the backup agent identifies the type of change made to the host file system. Furthermore, encryption typically requires a key. Such a key is required to perform the same operation on the source file. Therefore, the encryption key is provided by the backup agent and stored in the backup database as part of the instructions (e.g., in one or more data backup instructions). For example, File B may be encrypted daily using a different key on the host device. However, File B may only be restored once a month. If encryption has been performed approximately 30 times on the host device (e.g., in a production environment), encryption is only performed once a month on the backup system (i.e., secondary storage). This significantly conserves computing resources and storage space in the backup system.
[0083] According to one embodiment, the method further includes a step in which detection is performed by generating a snapshot of the host file system, and one or more data backup instructions are generated by obtaining the one or more data backup instructions from the snapshot. The snapshot of the host file system provides the backup agent with information about data items in the host file system, as well as further information about the data items on which one or more operations are performed. Thus, the backup agent generates the one or more data backup instructions based on the snapshot. Advantageously, the snapshot of the host file system enables detection of changes that have occurred and further facilitates accurate generation of the one or more data backup instructions.
[0084] According to one embodiment, the method further includes a step wherein providing one or more operation algorithms includes providing an algorithm for performing a change to one or more data items; an algorithm for creating one or more new data items in the host file system; an algorithm for performing a change to the location of one or more data items in the host file system; or an algorithm for deleting one or more data items. In one example, performing a change to one or more data items may be a change caused by compression, archiving to a compressed folder, editing of the data items, and the like. The one or more operation algorithms enable the reproduction of the one or more changes performed by the operation algorithms on the one or more data items. Similarly, different algorithms that perform specific functions are provided to the backup system. Advantageously, the different operation algorithms enable the backup system to use a specific algorithm at a recovery point to accurately restore a specific data item using one or more data backup instructions.
[0085] According to one embodiment, the method further includes a step wherein providing one or more computational algorithms includes providing a compression algorithm, an encryption algorithm, an editing algorithm, or an installation algorithm. It should be understood that the one or more computational algorithms may include other algorithms, software, or software components used to perform specific operations in the host file system. Advantageously, knowledge of the specific computational algorithms used to create the changes in the data item on the host device is then used to accurately restore the corresponding data item using the one or more computational algorithms.
[0086] Thus, method 100 significantly reduces the size of backup data, enabling efficient data storage, for example, in a backup system. Advantageously, in contrast to conventional methods, only instructions (e.g., the generated first or second data backup instructions) are backed up in the backup system, rather than storing one or more data items in which one or more changes have been detected. The backup system described above provides for delayed backup calculation of one or more data items to be backed up. This significantly reduces the amount of data required to be stored in the backup system, thereby reducing hardware costs associated with the backup system's storage system.
[0087] Steps 102 to 108 are merely exemplary, and other alternatives may be provided, wherein steps may be performed in a different order, one or more steps may be added, one or more steps may be deleted, or one or more steps may be provided without departing from the scope of the claims herein.
[0088] In one aspect, a computer program is provided, wherein when executed in a host file system 16 of a host device 02, the computer program is adapted to perform method 100. In one example, the computer program may be stored in a non-transitory computer-readable storage medium having computer program code stored therein, wherein the computer program code is executable by processor 10 to perform method 100. Examples of implementations of non-transitory computer-readable storage media include, but are not limited to, electrically erasable programmable read-only memory (EEPROM), random access memory (RAM), read-only memory (ROM), hard disk drives (HDD), flash memory, secure digital (SD) cards, solid-state drives (SSD), computer-readable storage media, and / or CPU cache. Computer-readable storage media for providing non-transitory memory may include, but are not limited to, electronic storage devices, magnetic storage devices, optical storage devices, electromagnetic storage devices, semiconductor storage devices, or any suitable combination thereof.
[0089] Figure 3 A method 200 for backing up data items of a host device according to an embodiment of the present disclosure is shown. The method 200 is performed in a backup system (e.g., Figure 5C According to one embodiment of the present disclosure, a method 200 for backing up data items of a host device 02 includes:
[0090] receiving one or more data backup instructions associated with a host file system 16 of a host device 02, the host file system 16 including at least one data item to be backed up;
[0091] storing the received one or more data backup instructions in a backup system;
[0092] Acquire one or more operation algorithms of the host device 02, and store the acquired one or more operation algorithms as one or more recovery algorithms; and
[0093] A delayed backup computation of the data item to be backed up is performed using at least one of the stored one or more data backup instructions and one or more recovery algorithms.
[0094] Figure 3An embodiment of a method 200 is shown. Referring to the figure, the method includes step 202 of receiving one or more data backup instructions associated with a host file system 16 of a host device 02. The host file system 16 includes at least one data item to be backed up. A backup system (e.g., a backup server) receives the one or more data backup instructions from the host device via a communication network. Receiving the one or more data backup instructions, rather than the actual data items to be backed up (i.e., the one or more data items), reduces storage space and improves storage efficiency of the backup system.
[0095] According to one embodiment, the received one or more data backup instructions include a recovery point and at least one of the following: information about a data item and information about changes to the data item, information about creating a new data item, the type and version of software that performs operations in the host file system related to changes to the data item or creation of the new data item, information about which operation algorithms are used in the host file system to perform the operations, one or more parameters of the operation algorithms used, the type of changes made in the host file system, an encryption key, one or more patch files, and instructions for installing the patch files. For example, in Figure 2 In
[0014] , one or more data backup instructions (e.g., a first data backup instruction and a second data backup instruction) have been described in detail. Advantageously, recovery can be achieved without requiring the prior storage of one or more data items with one or more changes. Thus, due to the delayed backup computation, a significant amount of storage space is saved in the backup system.
[0096] exist Figure 3 In step 204, the method includes storing the received one or more data backup instructions in a backup system. The one or more data backup instructions are stored in the backup system to enable recovery or reproduction of the at least one data item. In one example, the one or more data backup instructions may be stored in a backup database of the backup system.
[0097] exist Figure 3 In step 206, method 200 includes obtaining one or more computing algorithms from the host device 02 and storing the obtained one or more computing algorithms as one or more recovery algorithms. In a backup system, rather than storing actual data items during a backup, one or more computing algorithms and one or more backup instructions are stored and subsequently used (e.g., at a restore time) to reproduce the corresponding data items on the host device. The one or more computing algorithms are stored as recovery algorithms because they are used to restore the corresponding data items during a restore. Examples of recovery algorithms are the same as the one or more computing algorithms, such as compression algorithms, encryption algorithms, video editing algorithms, patch files, installation software files, software, or software components, which are typically used to perform a recovery operation.
[0098] exist Figure 3 In step 208, method 200 includes performing a delayed backup calculation for the data items to be backed up using at least one of the one or more stored data backup instructions and one or more recovery algorithms. The delayed backup calculation is performed using the at least one data backup instruction and one or more recovery algorithms based on the recovery point. In other words, the at least one data backup instruction is used by the backup system to perform calculations to reproduce the one or more data items with one or more changes at a delayed time (i.e., at a recovery time). Therefore, a delayed backup calculation refers to the delay of any backup calculation from the backup time to the recovery time. In one example, a user operating a host device can request the restoration of compressed data items. In this case, the delayed backup calculation is performed on the one or more data items in the folder to generate the compressed one or more data items for the user.
[0099] According to one embodiment, the method further includes preparing a backup database. The prepared backup database includes a list of data items stored in the host file system, and a pointer to the location of each data item in the host file system, or data backup instructions for each data item in the list of data items stored in the host file system. Examples of backup databases include, but are not limited to, backup directories, tables, XML files for storing data within XML tags, or any other form of database for storing information on the backup system for future reference. The backup database is used to store one or more data backup instructions related to the host file system and one or more algorithms as recovery algorithms. Upon receiving a request to restore at least one data item, the backup database provides the one or more data backup instructions and one or more algorithms to the backup system. The list of data items, the location of the data items, and the data backup instructions enable the at least one data item to be restored during recovery. In one example, the list of data items may include the name of the data item, the data type of the data item, the data size of the data item, and / or the data format of the data item. A location pointer is a variable that stores a memory address that references each data item in the host file system. A location pointer is a variable that stores a memory address that references each data item in the host file system. For example, data item A on the host device may be referenced by the file path "D:\folderA\folderB\filename.xxx." Advantageously, the backup database only stores information related to implementing (or reverting) one or more changes to the data item, rather than the data item itself. This saves significant storage space in the backup database.
[0100] Thus, by using method 200, the size of the backup data to be stored in the backup system is significantly reduced, thereby achieving efficient and cost-effective data storage. Advantageously, compared to conventional methods, instead of storing data items with one or more changes, method 200 enables backing up one or more data backup instructions, which occupies significantly less storage space in the backup system than storing the data items. This significantly reduces the amount of data that needs to be stored in the backup system.
[0101] Steps 202 to 208 are merely illustrative, and other alternatives may be provided, wherein steps may be performed in a different order, one or more steps may be added, one or more steps may be deleted, or one or more steps may be provided without departing from the scope of the claims herein.
[0102] In another aspect, a computer program is provided, wherein when executed on the backup system 03, the computer program is adapted to perform the method 200. In one example, the computer program may be stored in a non-transitory computer-readable storage medium having computer program code stored therein, wherein the computer program code is executable by the processor 20 to perform the method 200. An example implementation of the non-transitory computer-readable storage medium is similar to that described in the method 100 (e.g., in Figure 2 Same as described in .
[0103] Figure 4 1 shows a method 300 for recovering a data item according to an embodiment of the present disclosure. The method 300 is used in, for example, Figure 5C According to one embodiment of the present disclosure, the method 300 for restoring a data item includes:
[0104] receiving a restore request including a restore point from the host device 02 at a restore time to restore one or more data items being backed up;
[0105] identifying a data backup instruction corresponding to the received recovery request from the backup database 06;
[0106] Initiating at least one recovery algorithm according to the recovery request;
[0107] performing a delayed backup computation to restore the backed-up one or more data items using the identified data backup instructions and the at least one enabled restore algorithm; and
[0108] The restored one or more data items are provided to the host device 02 .
[0109] Figure 4An embodiment of a method 300 is shown. Referring to the figure, the method includes step 302 of receiving a restore request including a restore point from a host device 02 at a restore time to restore one or more data items being backed up. The restore request is initiated by the host device and received by the backup system. The restore request is a request to restore one or more data items on the host device from the backup system. The backup system is configured to receive one or more data backup instructions. The restore time is the precise time at which the restore of the one or more data items is to be performed. The restore point of the one or more data items enables the one or more data items to be restored to a desired state.
[0110] exist Figure 4 In step 304, method 300 includes identifying a data backup instruction corresponding to the received restore request from the backup database 06. When a restore request is received from the host device at a restore time, a data backup instruction corresponding to the received restore request is identified from the backup database. For example, based on the restore request at the restore time, it is possible to check which restore operation is to be performed at that particular restore time, and to specify which data backup instruction in the backup database is to perform such restore operation. In another example, a list of data items stored in the backup database can also be used to identify the data backup instruction. For example, a match between the file name of a data item received in the restore request and the file name of a data item stored in the list of data items can indicate a corresponding data backup instruction associated with the data item.
[0111] In one embodiment, more than just the file name of the data item may also be included, for example, the time the backup was completed, and if there are multiple host devices, the host device ID of each host device may also be included.
[0112] exist Figure 4 In step 306, method 300 includes initiating at least one recovery algorithm based on the restore request. The at least one recovery algorithm is executed to restore the at least one data item based on the identified data backup instructions. The identified data backup instructions define a series of steps to be performed, including using the at least one recovery algorithm to reproduce one or more first changes in the at least one data item. For example, the identified data backup instructions define the use of a compression algorithm and a pointer indicating which data item the compression algorithm is to be applied to reproduce a compressed folder. In this case, the restore request may be to restore a compressed folder.
[0113] exist Figure 4In step 308, method 300 includes performing a delayed backup computation to restore the backed-up one or more data items using the identified data backup instructions and at least one enabled recovery algorithm. The identified data backup instructions provide a series of steps that are executed using the enabled recovery algorithm to reproduce the one or more first changes in the one or more data items, thereby enabling the backed-up one or more data items to be restored. In one example, the identified data return instructions may be for encryption of the one or more data items, and the enabled encryption algorithm enables the performance of a delayed backup computation to restore the one or more data items by performing encryption (e.g., an encrypted delayed backup computation) at a recovery time.
[0114] exist Figure 4 At step 310, method 300 includes providing the restored one or more data items to the host device 02. The restored one or more data items are provided to the host device based on a restore request received from the host device. In one example, the restore request is for receiving compressed one or more data items. In such an example, the backup system performs a delayed backup calculation to compress the data items for restoration and provides the compressed one or more data items to the host device.
[0115] Therefore, in method 300, recovery can be achieved without storing one or more data items with one or more changes in advance. In this way, a large amount of storage space is saved in the backup system due to the delay of backup calculation.
[0116] Steps 302 to 310 are merely exemplary, and other alternatives may be provided, wherein steps may be performed in a different order: one or more steps may be added, one or more steps may be deleted, or one or more steps may be provided without departing from the scope of the claims herein.
[0117] In another aspect, a computer program is provided, wherein when executed in a backup system, the computer program is adapted to perform the method 300. In one example, the computer program may be stored in a non-transitory computer-readable storage medium having computer program code stored therein, wherein the computer program code is executable by the processor 20 to perform the method 300. An example implementation of the non-transitory computer-readable storage medium is similar to that described in the method 100 (e.g., in Figure 2 Same as described in .
[0118] Figure 5A FIG2 shows an environment diagram of a system 01 for data backup and recovery according to an embodiment of the present disclosure. Figure 5A , shows a network environment of a system 01, which includes a host device 02, a backup server 04, and a backup database 06. A communication network 08 is also shown.
[0119] Host device 02 includes suitable logic, circuitry, one or more interfaces, and code for storing and processing information and one or more data items, and sharing the information or one or more data items with backup server 04 via communication network 08. Host device 02 includes a host file system that includes one or more data items. The host file system may have one or more computing algorithms implemented on host device 02. Host device 02 is configured to provide information, such as one or more computing algorithms and one or more data backup instructions, to backup server 04 via a backup agent within host device 02. Examples of host device 02 include, but are not limited to, a host server, a host production environment system, a thin client connected to a host server, a primary storage system, and a user device (e.g., a cellular phone, a personal digital assistant (PDA), a handheld device, a portable computer, a personal computer, an Internet of Things (IoT) device, a smartphone, a machine type communication (MTC) device, a computing device, a drone, or any other portable or non-portable electronic device).
[0120] The backup server 04 includes suitable logic, circuitry, one or more interfaces, and code that may be operable to store, process, and receive information or one or more data items (from the host device 02 via the communication network 08). Furthermore, it should be understood that the backup server 04 may be a single hardware server or multiple hardware servers operating in a parallel or distributed architecture to form a backup system. Examples of the backup server 04 include, but are not limited to, a secondary storage system, a storage server, a cloud server, a web server, an application server, or combinations thereof.
[0121] Backup database 06 refers to an organized body of information, regardless of how the information or its organized body is represented. Backup database 06 is used to store one or more data backup instructions and one or more computational algorithms received by backup server 04. Examples of backup database 06 include, but are not limited to, backup directories, tables, Extensible Markup Language (XML) files for storing data within XML tags, or any other form of database for storing information on backup server 04 for future reference.
[0122] Communication network 08 includes a medium (e.g., a communication channel) through which host device 02 communicates with backup server 04. Communication network 08 can be a wired or wireless communication network 08. Examples of communication network 08 can include, but are not limited to, a Wireless Fidelity (Wi-Fi) network, a Local Area Network (LAN), a Wireless Personal Area Network (WPAN), a Wireless Local Area Network (WLAN), a Wireless Wide Area Network (WWAN), a cloud network, a Long Term Evolution (LTE) network, a cellular network, plain old telephone service (POTS), a Metropolitan Area Network (MAN), and / or the Internet. Host device 02 and backup server 04 may be configured to connect to communication network 08 according to various wired and wireless communication protocols. Examples of such wired and wireless communication protocols may include, but are not limited to, Transmission Control Protocol and Internet Protocol (TCP / IP), User Datagram Protocol (UDP), Hypertext Transfer Protocol (HTTP), File Transfer Protocol (FTP), ZigBee, enhanced data rates for global evolution of GSM and IS-136 (EDGE), infrared (IR), IEEE 802.11, IEEE 802.16, Long Term Evolution (LTE), Light Fidelity (Li-Fi) and / or other cellular communication protocols or Bluetooth (BT) communication protocol, including variations thereof.
[0123] In one embodiment of the present disclosure, a system for data backup and recovery includes a backup database 06 and a backup server 04, wherein the backup server 04 is used to:
[0124] Acquire one or more operation algorithms from the host device 02, and store the acquired one or more operation algorithms as a recovery algorithm;
[0125] Receive one or more data backup instructions from the host file system 16 to be backed up;
[0126] Starts a delayed backup calculation for one or more data items to be backed up.
[0127] The backup server 04 is configured to retrieve one or more algorithms from the host device 02 and store the retrieved one or more algorithms as recovery algorithms. In a backup system, rather than storing actual data items during a backup, one or more algorithms are retrieved and stored. These algorithms are then used to reproduce the corresponding data items on the host device (e.g., at restore time). The one or more algorithms are stored as recovery algorithms because they are used to restore the corresponding data items during a restore. Examples of recovery algorithms are the same as the one or more algorithms, such as compression algorithms, encryption algorithms, video editing algorithms, patch files, installation software files, software, or software components, which are typically used to perform a recovery operation.
[0128] Backup server 04 is also configured to receive one or more data backup instructions from the host file system to be backed up. Host device 02 includes at least one activated backup agent, which is configured to generate one or more data backup instructions. The one or more data backup instructions are generated based on one or more operations and one or more changes detected by the at least one backup agent in the host file system. Therefore, backup server 04 obtains the one or more data backup instructions from the host device via communication network 08. Receiving the one or more data backup instructions, rather than the actual data items to be backed up (i.e., one or more data items), reduces storage space and improves storage efficiency of backup server 04. Advantageously, backup server 04 is configured to store only one or more operation algorithms and one or more data backup instructions, rather than storing changes to one or more data items or the data items themselves. Therefore, the amount of storage space used in backup server 04 is significantly reduced compared to conventional backup servers.
[0129] Backup server 04 is further configured to initiate a delayed backup calculation for one or more data items to be backed up. The delayed backup calculation is performed using one or more data backup instructions. Backup server 04 executes the one or more data backup instructions to perform a calculation for reproducing the one or more data items that had one or more changes at the delayed time (i.e., during the restore period). Therefore, delayed backup calculation refers to delaying any backup calculation from the backup time to the restore time. The one or more restore algorithms and one or more data backup instructions received by backup server 04 enable any calculation to be performed on the one or more data items to restore the one or more data items that had one or more changes.
[0130] In one embodiment of the present disclosure, the system for data backup and recovery further includes a backup server 04, wherein the backup server 04 is further configured to:
[0131] receiving a restore request at a restore time, the restore request including a restore point;
[0132] Restoring the one or more data items of the host file system 16 being backed up at a restore time based on the received restore point by using a delayed backup calculation of the one or more data items to be backed up; and
[0133] The created one or more data items of the host file system 16 being backed up are provided to the host file system 16 as the restored one or more data items.
[0134] According to this embodiment, backup server 04 is further configured to receive a restore request including a restore point at a restore time. According to this embodiment, backup server 04 receives a restore request from host device 02. In one example, the restore request includes a restore point for restoring one or more data items. The restore request is initiated by host device 02 and received by backup server 04 via communication network 08. The restore request is a request received from backup server 04 at a restore time to restore one or more data items on host device 02.
[0135] According to this embodiment, backup server 04 is further configured to restore one or more data items of the host file system 16 being backed up at a recovery time based on a received recovery point, using a delayed backup calculation of one or more data items to be backed up. Based on the received recovery point, at least one data backup instruction is identified from backup database 06. For example, based on a recovery request at a recovery time, the server can determine which recovery operations are to be performed at that particular recovery time, and which data backup instruction is specified in backup database 06 to perform such recovery operations. The server then executes the at least one data backup instruction, which also initiates at least one recovery algorithm at the recovery time to restore the one or more data items of the host file system. Advantageously, by using one or more calculation algorithms and one or more data backup instructions to create the one or more data items requested in the recovery request, the backup server accurately restores the one or more data items at the recovery time. Furthermore, by storing the one or more data backup instructions, a significant amount of storage space is conserved.
[0136] According to this embodiment, backup server 04 is further configured to provide one or more created data items of the host file system being backed up to the host file system as one or more data items to be restored. The created one or more data items are based on a restore request provided by host device 02. In one example, the restore request is for receiving encrypted data items. In such an example, backup server 04 performs a delayed backup calculation to encrypt the data items for restoration and provides the encrypted data items to host device 02. As a result, the amount of storage space used in backup server 04 is significantly reduced compared to conventional backup servers.
[0137] In one embodiment of the present disclosure, the system for data backup and recovery further includes a backup database 06, wherein the backup database 06 includes: a list of data items stored in the host file system 16 and a pointer indicating the location of the data items in the data item list in the host file system 16, or a list of data items stored in the host file system 16 and a data backup instruction for each data item in the data item list stored in the host file system 16.
[0138] According to this embodiment, backup database 06 includes a list of data items stored in the host file system. Backup database 06 also includes a pointer (indicating the location of the data item in the list of data items in the host file system) or a data backup instruction for each data item in the list of data items stored in the host file system. The list and location of the data items and data backup instructions in backup database 06 enable backup server 04 to restore one or more data items on host device 02 when a restore request is received. In one example, the list of data items may include the name of the data item, the data type of the data item, the data size of the data item, and / or the data format of the data item. The pointer at this location indicates the file path in the host file system for locating the corresponding data item.
[0139] According to one embodiment, system 01 further includes one or more backup agents in host device 02. Each of the one or more backup agents refers to software implemented on host device 02 that accesses data items and algorithms in the host file system and performs backup and recovery-related functions. Furthermore, the one or more backup agents act as a communication agent or interface between host device 02 and backup server 04.
[0140] In one embodiment of the present disclosure, a system for data backup and recovery further includes one or more backup agents, wherein the one or more backup agents are configured to: detect one or more operations that perform one or more changes in a host file system; detect one or more changes in the host file system performed by the one or more operations; and generate data backup instructions based on the detected one or more operations and the detected one or more changes. Host device 02 is configured to activate the one or more backup agents in the host file system of host device 02. Activating the one or more backup agents refers to operating the one or more backup agents in host device 02 to perform various functions, such as detecting one or more operations, detecting one or more changes, and generating data backup instructions. In one example, the one or more first operations are operations that cause large-scale changes in the host file system. The one or more backup agents are configured to detect the one or more changes by identifying changes performed by, for example, compression, encryption, filtering, and / or other operations. The generated data backup instructions indicate the steps required to be executed to reproduce the one or more detected changes in one or more data items present in the host file system.
[0141] In one example, if a user decides to archive a set of files into a compressed file on host device 02, backup server 04 stores the version of the data compression software used, the compression algorithm parameters, and the list of files compressed by the compression algorithm, but does not store the resulting compressed data. Furthermore, backup server 04 is configured to store only the fact that the compressed file was created and its components (i.e., backup instructions) in order to reproduce the compressed file.
[0142] In another example, when a user encrypts a file, assuming there is trust between the user's virtual machine and the backup system, system 01 can only store the encryption key and encryption algorithm used for encryption. This means that backup server 04 will achieve better compression rates because it can process the unencrypted data and encrypt the data using backup instructions when restoring, which instruct the use of the encryption key and encryption algorithm to reproduce the encrypted file.
[0143] In yet another example, a user may make some changes to an image, such as applying a filter, and then save a copy of the image as a compressed image on host device 02. In this case, backup server 04 may store a pointer to the location of the original image, a list of applied filters, and the software that applied the filters. Backup server 04 does not store the modified or altered image file. In some cases, such as when a user uses a video editing tool, the tool often does retain the list of filters applied by the user, but such tools also allow the user to export the resulting file to a new format on host device 02. Therefore, in this case, there is no need to store the exported file on backup server 04.
[0144] In another example, a patch may be installed in a user's virtual machine in host device 02. As is known, some installed patches may cause significant changes to the disk (i.e., the memory of host device 02). Therefore, in this case, backup server 04 stores the patch file and instructions on how to install the patch, rather than installing the patch.
[0145] Figure 5B is a block diagram illustrating various exemplary components of a host device. According to one embodiment of the present disclosure, system 01 includes host device 02, where host device 02 includes a processor 10, a transceiver 12, and a memory 14 (e.g., a primary storage system). Processor 10 may be communicatively coupled to transceiver 12 and memory 14. Memory also includes a host file system 16. A backup agent 18 within host file system 16 is also illustrated.
[0146] The processor 10 is used to provide one or more data backup instructions and one or more operation algorithms to the backup server 04. In one implementation, the processor 10 is used to execute instructions stored in the memory 14. In one example, the processor 10 can be a general-purpose processor. Other examples of the processor 10 can include, but are not limited to, a microprocessor, a microcontroller, a complex instruction set computing (CISC) processor, an application-specific integrated circuit (ASIC) processor, a reduced instruction set (RISC) processor, a very long instruction word (VLIW) processor, a central processing unit (CPU), a state machine, a data processing unit, and other processors or control circuits. In addition, the processor 10 can refer to one or more separate processors, processing devices, or a processing unit as part of a machine, such as the host device 02.
[0147] The transceiver 12 includes suitable logic, circuitry, and one or more interfaces that may be operable to communicate with one or more external devices, such as the backup server 04. Examples of the transceiver 12 may include, but are not limited to, an antenna, a telematics unit, a radio frequency (RF) transceiver, one or more amplifiers, one or more oscillators, a digital signal processor, a coder-decoder (CODEC) chipset, and / or a subscriber identity module (SIM) card.
[0148] Memory 14 refers to the primary storage system of host device 02. Memory 14 includes suitable logic, circuitry, and one or more interfaces for storing machine code and / or instructions, at least one code segment of which is executable by processor 10. Examples of implementations of memory 14 include, but are not limited to, electrically erasable programmable read-only memory (EEPROM), random access memory (RAM), read-only memory (ROM), hard disk drive (HDD), flash memory, solid-state drive (SSD), and / or CPU cache. Memory 14 may store an operating system and / or other program products (including one or more computing algorithms) to operate host device 02. Computer-readable storage media used to provide non-transitory memory may include, but are not limited to, electronic storage devices, magnetic storage devices, optical storage devices, electromagnetic storage devices, semiconductor storage devices, or any suitable combination thereof.
[0149] Memory 14 includes a host file system 16 and a backup agent 18. Host file system 16 includes one or more data items to be backed up. Host file system 16 refers to the file system of host device 02 and is associated with processes for managing data items on host device 02. For example, processes for managing data items may include, but are not limited to, naming data items on the host device, storing data items on the host device, and associating locations with data items on the host device. Backup agent 16 refers to software implemented on the host device that can access data items (i.e., data files, data folders, etc.) and perform functions associated with backup and recovery. Backup agent 18 is configured to detect one or more operations that perform one or more changes on host file system 16, detect one or more changes on host file system 16 performed by the one or more operations, and generate one or more data backup instructions based on the detected one or more operations and the detected one or more changes.
[0150] In one aspect, in operation, the processor 10 of the host device 02 is used to activate at least one backup agent 18 in the host file system 16 of the host device 02, the host file system 16 including at least one data item to be backed up. The processor 10 is also used to use the at least one activated backup agent 18 to detect one or more first operations that perform one or more changes in the host file system 16. The processor 10 is also used to use the at least one activated backup agent 18 to detect one or more first changes in the host file system 16 performed by the one or more first operations. The processor 10 is also used to use the at least one activated backup agent 18 to generate a first data backup instruction based on the detected one or more first operations and the detected one or more first changes. The processor 10 is also used to provide one or more operation algorithms to a backup system (e.g., a backup server 04). The processor 10 is also used to provide the generated first data backup instruction to the backup system, e.g., the backup server 04, for delayed backup calculation of one or more data items to be backed up. In this aspect, other operations of the processor 10 of the host device 02 correspond to, for example, Figure 2 The operations described in .
[0151] Figure 5C is a block diagram illustrating various exemplary components of a backup server. According to one embodiment of the present disclosure, system 01 includes backup server 04. Backup server 04 includes a processor 20, a transceiver 22, and a memory 24. Processor 20 can be communicatively coupled to transceiver 22 and memory 24. Memory 24 includes a backup database 06.
[0152] The processor 20 is used to obtain one or more data backup instructions and one or more operation algorithms via the transceiver 22. In one embodiment, the processor 20 is used to execute the instructions stored in the memory 24. The backup database 06 includes a file stored in the host file system 16 ( Figure 5B ), a pointer to the location of each data item in the host file system 16, or a data backup instruction for each data item in the list of data items stored in the host file system 16. The example of the processor 20 is similar to the processor 10 ( Figure 5B ). Similarly, the implementation examples of the transceiver 22 and the memory 24 are respectively Figure 5B The implementation examples of the transceiver 12 and the memory 14 are similar.
[0153] On the one hand, in operation, the processor 20 of the backup server 04 is used to receive one or more data backup instructions related to the host file system 16 of the host device 02, and the host file system 16 includes at least one data item to be backed up. The processor 20 is also used to store the received one or more data backup instructions in a backup system, for example, the backup server 04. The processor 20 of the backup server 04 is also used to obtain one or more operation algorithms of the host device 02, and store the obtained one or more operation algorithms as one or more recovery algorithms. The processor 20 is also used to perform delayed backup calculations of the data items to be backed up using at least one data backup instruction of the stored one or more data backup instructions and one or more recovery algorithms. In this regard, other operations of the processor 20 correspond to, for example, Figure 3 The operations described in .
[0154] On the other hand, in operation, the processor 20 of the backup server 04 is configured to receive a restore request including a restore point from the host device 02 at a restore time to restore one or more data items being backed up. The processor 20 is further configured to identify a data backup instruction corresponding to the received restore request from the backup database 06. The processor 20 is further configured to start at least one restore algorithm based on the restore request. The processor 20 is further configured to perform a delayed backup calculation using the identified data backup instruction and the at least one started restore algorithm to restore the one or more backed-up data items. The processor 20 is further configured to provide the restored one or more data items to the host device 02. In this regard, other operations of the processor 20 correspond to, for example, Figure 4 The operations described in .
[0155] In yet another aspect, various operations of the processor 20 correspond to, for example, Figure 5A That is, all operations (or functions) performed by the backup server 04 can be performed by the processor 20.
[0156] The embodiments of the present disclosure described above may be modified without departing from the scope of the present disclosure as defined by the appended claims. The expressions "comprising," "including," "combining," "having," "is," and "are" used to describe and claim the present disclosure are intended to be interpreted in a non-exclusive manner, that is, to allow for the presence of items, components, or elements that are not explicitly described. References to the singular should also be understood to be related to the plural. The word "exemplary" is used herein to mean "serving as an example, instance, or illustration." Any embodiment described as "exemplary" is not necessarily to be interpreted as being preferred or more advantageous than other embodiments and / or excluding a combination of features from other embodiments. Any embodiment described as "exemplary" is not necessarily to be interpreted as being superior to other embodiments or more advantageous than other embodiments and / or excluding a combination of features from other embodiments. The word "optionally" is used herein to mean "provided in some embodiments and not provided in other embodiments." It should be understood that certain features of the present disclosure described in the context of separate embodiments for clarity may also be provided in combination in a single embodiment. Conversely, various features of the invention, which are, for brevity, described in the context of a single embodiment, may also be provided separately or in any suitable combination or as suitable in any other described embodiment of the disclosure.
Claims
1. A method for backing up one or more data items stored in a host device, wherein: The method comprises: activating at least one backup agent in a host file system of the host device, the host file system including one or more data items to be backed up; Use at least one active backup proxy for: detecting one or more first operations that perform one or more first changes in the host file system; detecting the one or more first changes in the host file system performed by the one or more first operations; and generating a first data backup instruction based on the one or more first operations and the one or more first changes, the first data backup instruction comprising a series of steps to be performed to reproduce the one or more first changes, including using one or more recovery algorithms to reproduce the one or more first changes; providing one or more operation algorithms to the backup system as the one or more recovery algorithms; and The generated first data backup instruction is provided to the backup system, and the backup system is configured to use the one or more recovery algorithms to perform delayed backup calculations of the one or more data items to be backed up based on the first data backup instruction.
2. The method according to claim 1, wherein The method further comprises: detecting one or more second operations that perform one or more second changes in the host file system subsequent to the one or more first operations; detecting the one or more second changes in the host file system, the one or more second changes being performed by the one or more second operations subsequent to the one or more first changes in the host file system; generating a second data backup instruction based on the detected one or more second operations and the detected one or more second changes; and The generated second data backup instruction is provided to the backup system.
3. The method of claim 2 , wherein detecting one or more of the one or more first changes and the one or more second changes in the host file system comprises detecting at least one of: a change to the one or more data items, one or more new data items in the host file system, a change in the location of the one or more data items in the host file system, or a deletion of the one or more data items.
4. The method according to claim 3, wherein: One or more of the first data backup instruction and the second data backup instruction includes a recovery point and at least one of the following: information about said data item and information about said change to said data item, information for creating said new data item, the type and version of software performing said operation in said host file system in relation to said modification of said data item or creation of said new data item, information about which operation algorithms are used in the host file system to perform the operation, one or more parameters of the computing algorithm used, the type of changes made in the host file system, encryption keys, One or more patch files, Instructions for installing the patch file in question.
5. The method according to claim 4, wherein The information of the data item includes at least one of the following: the fact that the data item has been changed, the type of the data item, the location of the data item, the name of the data item, and the format of the data item.
6. The method according to claim 4, wherein: The information about creating the new data item includes at least one of the following: the fact that the new data item has been created, the type of the new data item, the location of the new data item, the name of the new data item, and the format of the new data item.
7. The method according to any one of claims 2 to 6, wherein The detection is performed by generating a snapshot of the host file system, and one or more of the first data backup instruction and the second data backup instruction are obtained through the snapshot.
8. The method according to any one of claims 3 to 6, wherein Providing the one or more operation algorithms includes providing an algorithm for performing the change of the one or more data items; an algorithm for creating the one or more new data items in the host file system; an algorithm for performing the change of the location of the one or more data items in the host file system; or an algorithm for deleting the one or more data items.
9. The method according to claim 8, wherein Providing the one or more operation algorithms includes providing a compression algorithm, an encryption algorithm, an editing algorithm or an installation algorithm.
10. A method for backing up one or more data items in a host device, wherein: The method comprises: receiving one or more data backup instructions associated with a host file system of the host device, wherein the host file system includes at least one data item to be backed up; the one or more data backup instructions are generated based on one or more operations to perform one or more changes in the host file system and the one or more changes, and include a series of steps to be performed to reproduce the one or more changes, including using one or more recovery algorithms to reproduce the one or more changes; storing the received one or more data backup instructions in a backup system; Obtaining the one or more operation algorithms provided by the host device, and storing the obtained one or more operation algorithms as the one or more recovery algorithms, wherein the one or more recovery algorithms are used to perform the one or more operations; and A delayed backup calculation of the data item to be backed up is performed using at least one of the stored one or more data backup instructions and the one or more recovery algorithms.
11. The method according to claim 10, wherein: The method further includes preparing a backup database, wherein the prepared backup database includes: a list of data items stored in the host file system, and A pointer to the location of each data item in the host file system, or A data backup instruction for each data item in the list of data items stored in the host file system.
12. A method for restoring one or more data items, wherein: The method comprises: receiving a restore request including a restore point from the host device at a restore time to restore the one or more data items that were backed up; identifying, from a backup database, data backup instructions corresponding to the received restore request, the one or more data backup instructions being generated based on one or more operations to perform one or more changes in a host file system and the one or more changes, and comprising a series of steps to be performed to reproduce the one or more changes, including using one or more restore algorithms to reproduce the one or more changes; Initiate at least one recovery algorithm according to the recovery request, wherein the at least one recovery algorithm is used to perform the one or more operations; performing a delayed backup calculation to restore the one or more data items that were backed up using the identified data backup instructions and the at least one initiated restore algorithm; and The restored one or more data items are provided to the host device.
13. A system for backing up and restoring one or more data items stored in a host file system of a host device, wherein: The system includes a backup database and a backup server, wherein the backup server is used to: Acquire one or more operation algorithms from the host device, and store the acquired one or more operation algorithms as one or more recovery algorithms; receiving one or more data backup instructions for one or more data items to be backed up from the host file system; wherein the one or more data backup instructions are generated based on one or more operations to perform one or more changes in the host file system and the one or more changes, and include a series of steps to be performed to reproduce the one or more changes, including using the one or more recovery algorithms to reproduce the one or more changes; and Based on the series of steps included in the one or more data backup instructions, a delayed backup calculation of the one or more data items to be backed up is initiated, and the delayed backup calculation uses the one or more recovery algorithms to perform the one or more operations.
14. The system according to claim 13, wherein: The backup server is also used for: receiving a restore request including a restore point at a restore time; restoring the one or more data items of the host file system being backed up at the restore time based on the received restore point by using a delayed backup calculation of the one or more data items to be backed up; as well as The created one or more data items of the host file system being backed up are provided to the host file system as the restored one or more data items.
15. The system according to claim 13 or 14, wherein: The backup database includes a list of data items stored in the host file system, and a pointer indicating the location of a data item in the list of data items in the host file system, or A data backup instruction for each data item in the list of data items stored in the host file system.
16. The system according to claim 13 or 14, wherein: The system also includes one or more backup agents in the host device.
17. The system according to claim 16, wherein: The one or more backup agents are used to: detecting the one or more operations; detecting the one or more changes; and The one or more data backup instructions are generated based on the one or more operations and the one or more changes.
18. A non-transitory computer readable storage medium having stored thereon computer program code, which, when executed on a host file system, is executed by a processor to perform the method according to any one of claims 1 to 9.
19. A non-transitory computer readable storage medium storing computer program code, which, when executed on a backup system, is executed by a processor to perform the method according to claim 10 or 11.
20. A non-transitory computer readable storage medium storing computer program code, which, when executed on a backup system, is executed by a processor to perform the method of claim 12.
Citation Information
Patent Citations
Backup and restore system for a computer network
EP0899662A1
Continuous backup of data in a distributed data store
US10567500B1