IP Library Granted Patent US 9,235,474
Granted Patent B1
US 9,235,474 · App. 13/030,073 · Granted Jan 12, 2016

Systems and methods for maintaining a virtual failover volume of a target computing system

Inventors: Robert Petri (Santa Clara, CA); Eric Lalonde (Santa Clara, CA); Vito Caputo (San Mateo, CA)
Assignee: Axcient, Inc.
G06F11/1448
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 9,235,474
App. No.
13/030,073
Granted
Jan 12, 2016
Kind
B1
Abstract

Some of the methods provided herein may include periodically revising a mirror of the target computing system, according to a predetermined backup schedule, the mirror being stored on the virtual failover volume resident on an appliance that is operatively associated with the target computing system, by periodically comparing the mirror to a configuration of the target computing system to determine changed data blocks relative to the mirror, storing the changed data blocks as one or more differential files in the virtual failover volume, and incorporating the changed data blocks into the mirror. In some embodiments, the systems and methods may be utilized to resparsify the virtual failover volume.

Claims (61)

1. A method for maintaining a virtual failover volume of a target computing system, the method comprising:

periodically revising a mirror of the target computing system, according to a predetermined backup schedule, the mirror being stored on the virtual failover volume resident on an appliance that is operatively associated with the target computing system, by:

periodically comparing the mirror to a configuration of the target computing system to determine changed data blocks relative to the mirror;

storing the changed data blocks as one or more differential files in the virtual failover volume using a copy-on-write functionality, the one or more differential files being stored separately from the mirror; and

incorporating the changed data blocks into the mirror;

upon the occurrence of a failover event, creating a bootable image file from at least one of the mirror and one or more differential files using a copy-on-write functionality to prevent modification of the one or more differential files; and

booting the bootable image file via a virtual machine on the appliance to create a virtual failover computing system that substantially corresponds to the target computing system at an arbitrary point in time.

2. The method according to claim 1 , further comprising creating the virtual failover volume on the appliance.

3. The method according to claim 2 , further comprising formatting the virtual failover volume as a two terabyte sparse file, utilizing a new technology file system (NTFS) file system.

4. The method according to claim 2 , wherein if the target computing system includes two or more storage mediums, the step of creating includes creating a virtual failover volume for each of the two or more storage mediums, each of the two or more storage mediums being formatted as a two terabyte sparse file, utilizing a new technology file system (NTFS).

5. The method according to claim 3 , further comprising resparsifying the virtual failover volume by determining data blocks marked for deletion on the virtual failover volume and freeing the data blocks marked for deletion by informing the virtual machine that the data blocks marked for deletion are available for reuse.

6. The method according to claim 1 , wherein periodically revising the mirror of the target computing system includes moving data blocks from the target computing system into a backing store, the backing store including a root file system utilizable by an operating system of a virtual machine.

7. The method according to claim 1 , wherein creating the bootable image file includes:

inheriting copy data blocks from the mirror into the bootable image file; and

inheriting changed data blocks from the differential file into the bootable image file.

8. The method according to claim 1 , further comprising periodically updating a revisable differential file by:

comparing the revisable differential file to the target computing system to determine changed data blocks relative to the revisable differential file; and

combining the determined changed data blocks into the revisable differential file.

9. The method according to claim 8 , wherein the revisable differential file is stored in a differential file archive on the virtual failover volume each time the step of periodically updating the revisable differential file is executed.

10. The method according to claim 1 , further comprising rendering a previous mirror of the target computing system at an arbitrary point in time by utilizing one or more mirrors and one or more differential files.

11. The method according to claim 1 , further comprising executing the virtual machine to boot the bootable image file upon receiving information indicative of an occurrence of a failover event.

12. The method according to claim 11 , wherein the virtual machine is adapted to access files from the virtual failover volume by utilizing a copy-on-write functionality to gather at least one of the data blocks corresponding to the file from the mirror and changed data blocks corresponding to one or more of the files from the one or more differential files.

13. The method according to claim 12 , further comprising utilizing a copy-on-write functionality to store data blocks created by the virtual machine on the virtual failover volume.

14. A system for maintaining a virtual failover volume of a file structure of a target computing system, the system comprising:

a memory for storing computer readable instructions for maintaining the virtual failover volume of the file structure of a target computing system; and

a processor configured to execute the instructions stored in the memory to:

periodically revise a mirror of the target computing system, according to a predetermined backup schedule, the mirror being stored on the virtual failover volume resident on an appliance that is operatively associated with the target computing system, by:

periodically comparing the mirror to a configuration of the target computing system to determine changed data blocks relative to the mirror;

storing the changed data blocks as one or more differential files in the virtual failover volume using a copy-on-write functionality, the one or more differential files being stored separately from the mirror; and

incorporating the changed data blocks into the mirror;

upon the occurrence of a failover event, create a bootable image file from at least one of the mirror and one or more differential files using a copy-on-write functionality to prevent modification of the one or more differential files; and

boot the bootable image file via a virtual machine on the appliance to create a virtual failover computing system that substantially corresponds to the target computing system at an arbitrary point in time.

15. The system according to claim 14 , wherein the processor is further configured to execute the instructions stored in the memory to create the virtual failover volume on the appliance.

16. The system according to claim 15 , wherein the processor is further configured to execute the instructions stored in the memory to format the virtual failover volume as a two terabyte sparse file, utilizing a new technology file system (NTFS) file system.

17. The system according to claim 15 , wherein if the file structure includes two or more file structures, the processor is further configured to execute the instructions stored in the memory to create a virtual failover volume for each of the two or more storage mediums, each of the two or more storage mediums being formatted as a two terabyte sparse file, utilizing a new technology file system (NTFS).

18. The system according to claim 16 , wherein the processor is further configured to execute the instructions stored in the memory to resparsify the virtual failover volume by determining data blocks marked for deletion on the virtual failover volume and freeing the data blocks marked for deletion by informing the virtual machine that the data blocks marked for deletion are available for reuse.

19. The system according to claim 14 , wherein periodically revise includes moving data blocks from the target computing system into a backing store, the backing store including a root file system utilizable by an operating system of a virtual machine.

20. The system according to claim 14 , wherein creating the bootable image file includes:

inheriting copy data blocks from the mirror into the bootable image file; and

inheriting changed data blocks from the differential file into the bootable image file.

21. The system according to claim 14 , wherein the processor is further configured to execute the instructions stored in the memory to periodically update a revisable differential file by:

comparing the revisable differential file to the target computing system to determine changed data blocks relative to the revisable differential file; and

combining the determined changed data blocks into the revisable differential file.

22. The system according to claim 21 , wherein the revisable differential file is stored in a differential file archive on the virtual failover volume each time the computer readable instructions periodically update the revisable differential file.

23. The system according to claim 14 , wherein the processor is further configured to execute the instructions stored in the memory to render a previous mirror of the target computing system at an arbitrary point in time by utilizing one or more mirrors and one or more differential files.

24. The system according to claim 14 , wherein the processor is further configured to execute the instructions stored in the memory to execute the virtual machine to boot the bootable image file upon an occurrence of a failover event.

25. The system according to claim 24 , wherein the virtual machine is adapted to access files from the virtual failover volume by utilizing a copy-on-write functionality to gather at least one of data blocks corresponding to the file from the mirror and changed data blocks corresponding to one or more of the files from the one or more differential files.

26. A non-transitory computer readable storage medium having a computer program embodied thereon, the computer program executable by a processor in a computing system to perform a method for maintaining a virtual failover volume of a target computing system, the method comprising:

periodically revising a mirror of the target computing system, according to a predetermined backup schedule, the mirror being stored on the virtual failover volume resident on an appliance that is operatively associated with the target computing system, by:

periodically comparing the mirror to a configuration of the target computing system to determine changed data blocks relative to the mirror;

storing the changed data blocks as one or more differential files in the virtual failover volume using a copy-on-write functionality, the one or more differential files being stored separately from the mirror; and

incorporating the changed data blocks into the mirror;

upon the occurrence of a failover event, creating a bootable image file from at least one of the mirror and one or more differential files using a copy-on-write functionality to prevent modification of the one or more differential files; and

booting the bootable image file via a virtual machine on the appliance to create a virtual failover computing system that substantially corresponds to the target computing system at an arbitrary point in time.

27. A method for maintaining a virtual failover volume of a target computing system, the method comprising:

periodically revising a mirror of the target computing system according to a predetermined backup schedule, the mirror being stored on the virtual failover volume resident on an appliance that is operatively associated with the target computing system;

periodically updating a revisable differential file by:

comparing a configuration of the target computing system to at least one of the mirror and the revisable differential file to determine changed data blocks relative to at least one of the mirror and the revisable differential file; and

incorporating the changed data blocks into the revisable differential file using a copy-on-write functionality, the revisable differential file being stored separately from the mirror;

creating a bootable image file that substantially corresponds to the configuration of the target computing system upon the occurrence of a failover event by combining data blocks of the revisable differential file with a current mirror using a copy-on-write functionality to prevent modification of the one or more differential files; and

booting the bootable image file via a virtual machine on the appliance to create a virtual failover computing system that substantially corresponds to the configuration of the target computing system at a point in time immediately before the failover event.

Assignments (14)
INTELLECTUAL PROPERTY SECURITY AGREEMENT Recorded Feb 19, 2025
From: SKYKICK, LLC; EFOLDER, INC.
To: BANK OF AMERICA, N.A.
Reel/Frame 070268/0489 →
RELEASE OF SECURITY INTEREST Recorded Sep 24, 2024
From: U.S. BANK NATIONAL ASSOCIATION FORMERLY MUFG UNION BANK, N.A.
To: EFOLDER, INC.
Reel/Frame 068680/0802 →
RELEASE OF SECURITY INTEREST Recorded Nov 2, 2022
From: WELLS FARGO BANK, NATIONAL ASSOCIATION
To: EFOLDER, INC.
Reel/Frame 061634/0623 →
SECURITY INTEREST Recorded Oct 27, 2022
From: EFOLDER, INC.
To: MUFG UNION BANK, N.A.
Reel/Frame 061559/0703 →
SECURITY INTEREST Recorded Jan 8, 2018
From: EFOLDER, INC.
To: WELLS FARGO BANK, NATIONAL ASSOCIATION, AS AGENT
Reel/Frame 044563/0633 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 12, 2017
From: AXCIENT HOLDINGS, LLC
To: EFOLDER, INC.
Reel/Frame 044370/0412 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 12, 2017
From: AXCIENT, INC.
To: AXCI (AN ABC) LLC
Reel/Frame 044367/0507 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 12, 2017
From: AXCI (AN ABC) LLC
To: AXCIENT HOLDINGS, LLC
Reel/Frame 044368/0556 →
RELEASE OF SECURITY INTEREST Recorded Oct 11, 2017
From: STRUCTURED ALPHA LP
To: AXCIENT, INC.
Reel/Frame 043840/0227 →
RELEASE OF SECURITY INTEREST Recorded Jul 26, 2017
From: SILVER LAKE WATERMAN FUND, L.P.
To: AXCIENT, INC.
Reel/Frame 043106/0389 →
SECURITY INTEREST Recorded Jun 2, 2017
From: AXCIENT, INC.
To: SILVER LAKE WATERMAN FUND, L.P.
Reel/Frame 042577/0901 →
SECURITY INTEREST Recorded May 31, 2017
From: AXCIENT, INC.
To: STRUCTURED ALPHA LP
Reel/Frame 042542/0364 →
CHANGE OF ADDRESS Recorded Nov 19, 2015
From: AXCIENT, INC.
To: AXCIENT, INC.
Reel/Frame 037148/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 18, 2011
From: PETRI, ROBERT; LALONDE, ERIC; CAPUTO, VITO
To: AXCIENT, INC.
Reel/Frame 025831/0886 →