Systems, methods, and computer program products for low impact backup
Embodiments include methods, systems, and computer program products for low impact image level backup and replication of data between a production data storage and a backup data storage. In an embodiment system, the system starts processing of a task to backup or recover data between the production data storage and the backup data storage. The system measures a latency to access the production data storage. The system then determines whether the latency is above a throttling threshold. When the system determines that the latency exceeds the throttling threshold, the system calculates a throttling value, determines an amount of the delay based on the calculated throttling value, and delays, by the determined amount, the processing of the next data block.
1. A computer implemented method for low impact backup, comprising:
starting processing of a task to backup or recover data to or from a production data storage;
measuring a latency to access the production data storage;
determining the latency is above a throttling threshold;
calculating a throttling value that defines an amount to throttle the processing of the task to backup or recover data to or from the production data storage;
determining an amount of delay based on the throttling value;
inserting sleep time within the task, wherein the sleep time is based at least in part on the determined amount of delay; and
processing the modified task.
2. The method of claim 1 , wherein the determining the amount of delay comprises determining the amount of delay such that the amount of delay allows the processing of the task to be throttled back by a percentage value indicated by the throttling value.
3. The method of claim 1 , wherein the calculating comprises:
subtracting the throttling threshold from the latency to determine a delta value; and
multiplying the delta value by a predefined fine tuning coefficient to determine the throttling value.
4. The method of claim 1 , wherein the measuring comprises communicating with a hypervisor in a host system connected to the production data storage to access a latency value.
5. The method of claim 1 , further comprising:
until the latency exceeds a task adding threshold, repeatedly:
waiting for a defined amount of time;
starting processing of additional tasks to backup or recover data between the production data storage and a backup data storage; and
re-measuring the latency.
6. The method of claim 5 , further comprising:
receiving the task adding threshold and the throttling threshold from a user configuration.
7. The method of claim 1 , the delaying inserting further comprising:
inserting the sleep time between data mover processes within the task.
8. The method of claim 1 , further comprising:
setting the throttling threshold based on environmental conditions of a backup data storage.
9. The method of claim 1 , wherein the calculating comprises:
calculating the throttling value based at least in part on the measured latency and the throttling threshold.
10. The method of claim 1 , further comprising:
in response to the calculating the throttling value, determining the throttling value is above a predefined maximum value; and
setting the throttling value to the predefined maximum value.
11. The method of claim 1 , further comprising:
in response to the calculating the throttling value, determining the throttling value is less than or equal to 0%; and
resetting the throttling value.
12. The method of claim 1 , further comprising:
determining the latency is above a second threshold value, wherein the second threshold value controls an active task assignment process.
13. The method of claim 1 , wherein the sleep time within the task causes processing of the task to be throttled back by the throttling value.
14. A system, comprising:
a memory;
at least one processor coupled to the memory and configured to:
start processing of a task to backup or recover data to or from a production data storage;
measure a latency to access the production data storage;
determine the latency is above a throttling threshold;
calculate a throttling value that defines an amount to throttle the processing of the task to backup or recover data to or from the production data storage;
determine an amount of delay based on the throttling value;
insert sleep time within the task, wherein the sleep time is based at least in part on the determined amount of delay; and
process the modified task.
15. The system of claim 14 , wherein to determine the amount of delay, the at least one processor is further configured to:
determine the amount of delay such that the amount of delay allows the processing of the task to be throttled back by a percentage value indicated by the throttling value.
16. The system of claim 14 , wherein to calculate the throttling value, the at least one processor is further configured to:
subtract the throttling threshold from the latency to determine a delta value; and
multiply the delta value by a predefined fine tuning coefficient to determine the throttling value.
17. The system of claim 14 , wherein to measure the latency, the at least one processor is further configured to:
communicate with a hypervisor in a host system connected to the production data storage to access a latency value.
18. The system of claim 14 , wherein the at least one processor is further configured to:
until the latency exceeds a task adding threshold, repeatedly:
wait for a defined amount of time;
start processing of additional tasks to backup or recover data between the production data storage and a backup data storage; and
re-measure the latency.
19. The system of claim 18 , wherein the at least one processor is further configured to:
receive the task adding threshold and the throttling threshold from a user configuration.
20. A non-transitory tangible computer-readable medium having instructions stored thereon that, when executed by at least one computing device, cause the at least one computing device to perform operations comprising:
starting processing of a task to backup or recover data to or from a production data storage;
measuring a latency to access the production data storage;
determining the latency is above a throttling threshold;
calculating a throttling value that defines a percentage to throttle the processing of the task to backup or recover data to or from the production data storage;
determining an amount of delay based on the throttling value;
inserting sleep time within the task, wherein the sleep time is based at least in part on the determined amount of delay; and
processing the modified task.
21. The non-transitory computer-readable medium of claim 20 , wherein the determining the amount of delay comprises determining the amount of delay such that the amount of delay allows the processing of the task to be throttled back by a percentage value indicated by the throttling value.
22. The non-transitory computer-readable medium of claim 20 , wherein the calculating comprises:
subtracting the throttling threshold from the latency to determine a delta value; and
multiplying the delta value by a predefined fine tuning coefficient to determine the throttling value.
23. The non-transitory computer-readable medium of claim 20 , wherein the measuring comprises communicating with a hypervisor in a host system connected to the production data storage to access a latency value.
24. The non-transitory computer-readable medium of claim 20 , the operations further comprising:
until the latency exceeds a task adding threshold, repeatedly:
waiting for a defined amount of time;
starting processing of additional tasks to backup or recover data between the production data storage and a backup data storage; and
re-measuring the latency.
25. The non-transitory computer-readable medium of claim 24 , the operations further comprising:
receiving the task adding threshold and the throttling threshold from a user configuration.