AUTO-DETERMINING BACKUP LEVEL
A system for auto-determining a backup level comprises an input interface and a processor. The input interface is configured to receive backup information. The processor is configured to determine whether a backup criterion is satisfied, based at least in part on the backup information, and in the event the backup criterion is satisfied, change the backup level.
This application is a continuation of co-pending U.S. patent application Ser. No. 14/138,520 entitled AUTO-DETERMINING BACKUP LEVEL filed Dec. 23, 2013 which is incorporated herein by reference for all purposes.
BACKGROUND OF THE INVENTIONTraditional backup types are of level ‘full’ (e.g., backing up all data) or ‘incremental’ (e.g., backing up only data that has changed since a previous backup) with additional variations introduced by different backup applications. Advanced backup type ‘forever incremental’ (e.g., making a first full backup and from then on only making incremental backups) synthesizes a full backup on the server-side by combining a previous full with later incremental backups. However, large change rates since an original full backup result in storage that is very fragmented: data is spread over a large number of discontinuous areas, negatively impacting recovery performance.
Various embodiments of the invention are disclosed in the following detailed description and the accompanying drawings.
The invention can be implemented in numerous ways, including as a process; an apparatus; a system; a composition of matter; a computer program product embodied on a computer readable storage medium; and/or a processor, such as a processor configured to execute instructions stored on and/or provided by a memory coupled to the processor. In this specification, these implementations, or any other form that the invention may take, may be referred to as techniques. In general, the order of the steps of disclosed processes may be altered within the scope of the invention. Unless stated otherwise, a component such as a processor or a memory described as being configured to perform a task may be implemented as a general component that is temporarily configured to perform the task at a given time or a specific component that is manufactured to perform the task. As used herein, the term ‘processor’ refers to one or more devices, circuits, and/or processing cores configured to process data, such as computer program instructions.
A detailed description of one or more embodiments of the invention is provided below along with accompanying figures that illustrate the principles of the invention. The invention is described in connection with such embodiments, but the invention is not limited to any embodiment. The scope of the invention is limited only by the claims and the invention encompasses numerous alternatives, modifications and equivalents. Numerous specific details are set forth in the following description in order to provide a thorough understanding of the invention. These details are provided for the purpose of example and the invention may be practiced according to the claims without some or all of these specific details. For the purpose of clarity, technical material that is known in the technical fields related to the invention has not been described in detail so that the invention is not unnecessarily obscured.
A system for auto-determining a backup level is disclosed. A system for auto-determining a backup level comprises an input interface and a processor. The input interface is configured to receive backup information. The processor is configured to determine whether a backup criterion is satisfied, based at least in part on the backup information, and in the event the backup criterion is satisfied, change the backup level. The system for auto-determining a backup level additionally comprises a memory coupled to the processor and configured to provide the processor with instructions.
In some embodiments, a backup system comprises a client system (e.g., a system that requires backup up) and a backup storage system (e.g., a system for storing backup data). The system performs both full backups (e.g., copying all data from the client system to the backup storage system) and incremental backups (e.g., copying only data that has changed since the last backup from the client system to the storage system). Incremental backups consume significantly fewer resources and storage space than full backups, however, they complicate the process of disaster recovery. Each incremental backup increases the fragmentation of the data stored on the backup storage system (e.g., rather than the backup data being stored in a continuous region of the storage system as in a full backup, it is stored in many small regions scattered throughout the storage system) and lengthens the time necessary to perform a recovery. It is therefore necessary to perform a full backup periodically. The system for auto-determining a backup level determines if a particular backup operation should be a full backup or an incremental backup.
In some embodiments, the system for auto-determining a backup level determines that a backup operation should be a full backup if steady state values indicate to make a full backup or if a backup criterion indicates to make a full backup. The steady state values comprise values of system variables that are not expected to change under normal operation of the system (e.g., operating system version, version of a database, etc.). If more than a threshold number of steady state values have changed, it is taken by the system as an indication that a major modification to the system has occurred, and a full backup is then required to ease restoration due to significant number of changes leading to fragmentation of the backup. The backup criterion comprises one or more of the following: a file change rate criterion, a data change rate criterion, a fragmentation level criterion, or a criterion designed to determine when enough changes have occurred since the last full backup so that another one is required, or any other appropriate criterion.
Although the foregoing embodiments have been described in some detail for purposes of clarity of understanding, the invention is not limited to the details provided. There are many alternative ways of implementing the invention. The disclosed embodiments are illustrative and not restrictive.
Claims
1. A system for auto-determining a backup level, comprising:
- an input interface configured to receive backup information; and
- a processor configured to: compare values of a plurality of system variables with predetermined steady state values, wherein each system variable of the plurality of system variables has a corresponding predetermined steady state value, wherein a threshold number of the system variables changing from their corresponding predetermined steady state value indicating a significant modification to the system; determine whether more than the threshold number of the system variables have changed from their corresponding predetermined steady state values; and change the backup level based on the determination.
2. The system of claim 1, wherein the processor is further configured to determine whether a backup criterion is satisfied, based at least in part on the backup information.
3. The system of claim 2, wherein the backup criterion comprises a file change rate being greater than a file change rate threshold.
4. The system of claim 3, wherein the file change rate comprises a number of new files divided by a number of files in a backup.
5. The system of claim 2, wherein the backup criterion comprises a data change rate being greater than a data change rate threshold.
6. The system of claim 5, wherein the data change rate comprises a sum of modified files or blocks divided by the size of a backup.
7. The system of claim 2, wherein the backup criterion comprises a fragmentation level being greater than a fragmentation level threshold.
8. The system of claim 7, wherein the fragmentation level comprises a size of a full backup divided by a number of data discontinuities.
9. The system of claim 1, wherein the processor is further configured to determine whether a backup is a block-based backup.
10. The system of claim 9, wherein the processor is further configured to:
- in the event the backup is a block-based backup, determine that the backup criterion comprises a fragmentation level being greater than a fragmentation level threshold.
11. The system of claim 1, wherein the processor is further configured to determine whether a backup comprises a high density of files.
12. The system of claim 11, wherein the processor is further configured to:
- in the event the backup comprises a high density of files, determine that a backup criterion comprises a file change rate being greater than a file change rate threshold.
13. A method for auto-determining a backup level, comprising:
- receiving backup information;
- comparing, using a processor, values of a plurality of system variables with predetermined steady state values, wherein each system variable of the plurality of system variables has a corresponding predetermined steady state value, wherein a threshold number of the system variables changing from their corresponding predetermined steady state value indicating a significant modification to the system;
- determining whether more than the threshold number of the system variables have changed from their corresponding predetermined steady state values; and
- changing the backup level based on the determination.
14. The method of claim 13, further comprising determining whether a backup criterion is satisfied, based at least in part on the backup information.
15. The method of claim 14, wherein the backup criterion comprises a file change rate being greater than a file change rate threshold.
16. The method of claim 15, wherein the file change rate comprises a number of new files divided by a number of files in a backup.
17. The method of claim 14, wherein the backup criterion comprises a data change rate being greater than a data change rate threshold.
18. The system of claim 17, wherein the data change rate comprises a sum of modified files or blocks divided by the size of a backup.
19. A computer program product for auto-determining a backup level, the computer program product being embodied in a non-transitory computer readable storage medium and comprising computer instructions for:
- receiving backup information;
- comparing values of a plurality of system variables with predetermined steady state values, wherein each system variable of the plurality of system variables has a corresponding predetermined steady state value, wherein a threshold number of the system variables changing from their corresponding predetermined steady state value indicating a significant modification to the system;
- determining whether more than the threshold number of the system variables have changed from their corresponding predetermined steady state values; and
- changing the backup level based on the determination.
20. The computer program product of claim 19, further comprising determining whether a backup criterion is satisfied, based at least in part on the backup information.
Type: Application
Filed: Jul 12, 2017
Publication Date: Oct 26, 2017
Inventor: Vladimir Mandic (San Jose, CA)
Application Number: 15/648,376