Automatic IO stream timing determination in live VM images
One example method includes capturing IOs, adding the IOs to a journal, adding undo data to the journal for one or more locations, and using the IOs and the undo data to determine when, during a timespan defined by the journal, a backup could have been taken. This determination may involve the use of undo data which indicates what the content of a particular location was prior to the first IO directed to that location during the timespan defined by the journal.
1. A method, comprising:
capturing input/output (IOs), and the capturing comprises intercepting the IOs as the IOs are directed from a first entity to a second entity;
adding the IOs to a journal;
adding undo data to the journal for one or more locations;
comparing the journal to a backup to determine whether, in the backup, a particular location in the backup included an IO ‘Y’ or undo data ‘X’; and
based on the comparing, determining when, during a timespan defined by the journal, the backup was taken, and the determining when the backup was taken comprises either:
creating a classification that indicates, for each of a plurality of locations identified in the backup, respective data that was present at those locations at each point in time within the timespan defined by the journal; or
when the comparing of the journal to the backup reveals that the particular location includes neither the IO ‘Y’ nor the undo data ‘X’, comparing IOs written subsequent to IO ‘Y’ with the backup to determine when the backup took place.
2. The method as recited in claim 1 , wherein the undo data ‘X’ was in the particular location prior to writing of the IO ‘Y’ to that particular location during the timespan defined by the journal.
3. The method as recited in claim 1 , wherein the backup is a live-vm-image that comprises a virtual machine (VM) image level backup and the journal.
4. The method as recited in claim 1 , wherein, for the particular location, the undo data ‘X’ is added to the journal a first time that an input/output (IO) is written to the particular location during the timespan defined by the journal.
5. The method as recited in claim 1 , wherein the first entity comprises an application and the second entity comprises a primary storage entity.
6. The method as recited in claim 1 , wherein the IOs are captured only during the timespan defined by the journal.
7. The method as recited in claim 1 , wherein the IOs are captured before and after the backup was taken.
8. The method as recited in claim 3 , wherein the VM image level backup, and entries of the journal, together enable spinoff of a VM that is application-consistent as of a particular point in time (PIT).
9. A non-transitory storage medium having stored therein instructions that are executable by one or more hardware processors to perform operations comprising:
capturing input/output (IOs), and the capturing comprises intercepting the IOs as the IOs are directed from a first entity to a second entity;
adding the IOs to a journal;
adding undo data to the journal for one or more locations;
comparing the journal to a backup to determine whether, in the backup, a particular location in the backup included an IO ‘Y’ or undo data ‘X’; and
based on the comparing, determining when, during a timespan defined by the journal, the backup was taken, and the determining when the backup was taken comprises either:
creating a classification that indicates, for each of a plurality of locations identified in the backup, respective data that was present at those locations at each point in time within the timespan defined by the journal; or
when the comparing of the journal to the backup reveals that the particular location includes neither the IO ‘Y’ nor the undo data ‘X’, comparing IOs written subsequent to IO ‘Y’ with the backup to determine when the backup took place.
10. The non-transitory storage medium as recited in claim 9 , wherein the undo data ‘X’ was in the particular location prior to writing of the IO ‘Y’ to that particular location during the timespan defined by the journal.
11. The non-transitory storage medium as recited in claim 9 , wherein the backup is a live-vm-image that comprises a virtual machine (VM) image level backup and the journal.
12. The non-transitory storage medium as recited in claim 9 , wherein, for the particular location, the undo data ‘X’ is added to the journal a first time that an input/output (IO) is written to the particular location during the timespan defined by the journal.
13. The non-transitory storage medium as recited in claim 9 , wherein the first entity comprises an application and the second entity comprises a primary storage entity.
14. The non-transitory storage medium as recited in claim 9 , wherein the IOs are captured only during the timespan defined by the journal.
15. The non-transitory storage medium as recited in claim 9 , wherein the IOs are captured before and after the backup was taken.
16. The non-transitory storage medium as recited in claim 11 , wherein the VM image level backup, and entries of the journal, together enable spinoff of a VM that is application-consistent as of a particular point in time (PIT).