Systems and method for continuous data protection and recovery by implementing a set of algorithms based on the length of I/O data streams
Example embodiments relate generally to systems and methods for continuous data protection (CDP) and more specifically to an input and output (I/O) filtering framework and log management system to seek a near-zero recovery point objective (RPO).
1. A method for data protection for a virtual machine (VM) having a virtual disk, the method comprising at least the following operations:
obtaining or identifying recoverable ranges of the VM; and
recovering the VM from a point-in-time version of the virtual disk by implementing a set of algorithms, the set of algorithms to determine if a log chain in a series of log chains stored at a recovery site is valid for recovery of the VM, wherein the log chains of the series of log chains comprise respective streams of input/output data for the VM since a respective base snapshot for the log chain was obtained, and wherein a first algorithm of the set of algorithms includes determining a shortest log chain having a first valid base snapshot and comprising a shortest stream of input/output data for the VM since a first time at which the first valid base snapshot was obtained, a second algorithm in the set of algorithms includes determining a longest log chain having a second valid base snapshot and comprising a longest stream of input/output data for the VM since a second time at which the second valid base snapshot was obtained, and each valid base snapshot is a non-incremental snapshot.
2. The method of claim 1 , wherein the operations further comprise using the set of algorithms to calculate the recoverable ranges of the VM.
3. The method of claim 2 , wherein the operations further comprise pinning the log chain to calculate the recoverable ranges of the VM.
4. The method of claim 3 , wherein the operations further comprise pinning the log chain using references.
5. The method of claim 4 , wherein the references include one or more of a first reference indicating the log chain is alive and not expired, a second reference indicating the log chain is a base of other chain logs, and a third reference indicating the log chain is in use for a recovery.
6. The method of claim 1 , wherein recovering the VM from the point-in-time version of the virtual disk is a partial flow in a replication operation.
7. A system for data protection, the system comprising:
at least one processor for executing machine-readable instructions; and
a memory storing instructions configured to cause the at least one processor to perform operations comprising, at least:
obtaining or identifying recoverable ranges of a virtual machine (VM) having a virtual disk; and
recovering the VM from a point-in-time version of the virtual disk by implementing a set of algorithms, the set of algorithms to determine if a log chain in a series of log chains stored at a recovery site is valid for recovery of the VM, wherein the log chains of the series of log chains comprise respective streams of input/output data for the VM since a respective base snapshot for the log chain was obtained, and wherein a first algorithm of the set of algorithms includes determining a shortest log chain having a first valid base snapshot and comprising a shortest stream of input/output data for the VM since a first time at which the first valid base snapshot was obtained, a second algorithm in the set of algorithms includes determining a longest log chain having a second valid base snapshot and comprising a longest stream of input/output data for the VM since a second time at which the second valid base snapshot was obtained, and each valid base snapshot is a non-incremental snapshot.
8. The system of claim 7 , wherein the operations further comprise using the set of algorithms to calculate the recoverable ranges of the VM.
9. The system of claim 8 , wherein the operations further comprise pinning the log chain to calculate the recoverable ranges of the VM.
10. The system of claim 9 , wherein the operations further comprise pinning the log chain using references.
11. The system of claim 10 , wherein the references include one or more of a first reference indicating the log chain is alive and not expired, a second reference indicating the log chain is a base of other log chains, and a third reference indicating the log chain is in use for a recovery.
12. The system of claim 7 , wherein recovering the VM from the point-in-time version of the virtual disk is a partial flow in a replication operation.
13. A non-transitory, machine-readable medium storing instructions which, when read by a machine, cause the machine to perform operations in a method for data protection for a virtual machine (VM) having a virtual disk, the operations comprising, at least:
obtaining or identifying recoverable ranges of the VM; and
recovering the VM from a point-in-time version of the virtual disk by implementing a set of algorithms, the set of algorithms to determine if a log chain in a series of log chains stored at a recovery site is valid for recovery of the VM, wherein the log chains of the series of log chains comprise respective streams of input/output data for the VM since a respective base snapshot for the log chain was obtained, and wherein a first algorithm of the set of algorithms includes determining a shortest log chain having a first valid base snapshot and comprising a shortest stream of input/output data for the VM since a first time at which the first valid base snapshot was obtained, a second algorithm in the set of algorithms includes determining a longest log chain having a second valid base snapshot and comprising a longest stream of input/output data for the VM since a second time at which the second valid base snapshot was obtained, and each valid base snapshot is a non-incremental snapshot.
14. The non-transitory, machine-readable medium of claim 13 , wherein the operations further comprise using the set of algorithms to calculate the recoverable ranges of the VM.
15. The non-transitory, machine-readable medium of claim 14 , wherein the operations further comprise pinning the log chain to calculate the recoverable ranges of the VM.
16. The non-transitory, machine-readable medium of claim 15 , wherein the operations further comprise pinning the log chain using references.
17. The non-transitory, machine-readable medium of claim 16 , wherein the references include one or more of a first reference indicating the log chain is alive and not expired, a second reference indicating the log chain is a base of other log chains, and a third reference indicating the log chain is in use for a recovery.
18. The non-transitory, machine-readable medium of claim 13 , wherein recovering the VM from the point-in-time version of the virtual disk is a partial flow in a replication operation.