IP Library Granted Patent US 10,289,687
Granted Patent B2
US 10,289,687 · App. 15/092,913 · Granted May 14, 2019

Space optimized snapshot for network backup

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 10,289,687
App. No.
15/092,913
Granted
May 14, 2019
Kind
B2
Abstract

A system is described for backing-up a client device to a server using space-optimized snapshots. A snapshot is captured on the client device. The system determines which files of the snapshot are required to be uploaded to perform a backup. Thereafter, the system monitors the required files (and not other files) for write commands and directs write operations for the required files to be performed copy-on-write. After a required file is uploaded, the system stops monitoring the file and any copy-on-write data that may have been generated for the file is removed from the snapshot to conserve space. The process continues until all required files are uploaded.

Claims (55)

1. A method, comprising:

capturing a snapshot of a client computing device, the snapshot including files that are stored on the client computing device;

determining a set of required files in the snapshot to be uploaded from the client device to a backup server for performing a backup of the client device comprising determining which files in the snapshot are not present on the backup server, the backup server implementing a single instance store for storing client backup files, wherein determining the set of required files further comprises:

calculating a file manifest, the file manifest comprising file signatures of files in the snapshot;

conveying the file manifest to the backup server;

based on the file manifest, determining which of the files on the computing device are already present on the server and which files are required; and

conveying a list of the required files to the client device;

via a process taking place on the computing device, for each required file in the snapshot,

performing write operations using a copy-on-write mechanism by writing changes to a copy of the required file data;

detecting that an upload of the required file to the server is complete; and

in response to detecting that the upload of the required file to the server is complete, performing subsequent write operations directly on the required file without using the copy-on-write mechanism, while continuing to perform write operations using the copy-on-write mechanism on required files that have not finished uploading.

2. The method of claim 1 , further comprising:

in response to detecting that the upload of the required file to the server is complete, determining whether the required file has been written to using the copy-on-write mechanism; and

if the required file has been written to using the copy-on-write mechanism, then deleting any corresponding data produced by the writing to the required file using the copy-on-write mechanism.

3. The method of claim 2 , further comprising, prior to the deleting any corresponding data produced by the writing to the required file using the copy-on-write mechanism, incorporating the data into the required file on the computing device.

4. The method of claim 1 , further comprising receiving a write command for a file other than a required file on the computing device and performing the write command directly on the non-required file on the computing device.

5. The method of claim 1 , wherein the determining the set of required files comprises receiving a list of the required files from the backup server.

6. A computing device, comprising:

at least one processor; and

memory including instructions that, when executed by the at least one processor, cause the computing device to perform the steps of:

capturing a snapshot of a client computing device, the snapshot including files that are stored on the client computing device;

determining a set of required files in the snapshot to be uploaded from the client device to a backup server for performing a backup of the client device comprising determining which files in the snapshot are not present on the backup server, the backup server implementing a single instance store for storing client backup files, wherein determining the set of required files further comprises:

calculating a file manifest, the file manifest comprising file signatures of files in the snapshot;

conveying the file manifest to the backup server;

based on the file manifest, determining which of the files on the computing device are already present on the server and which files are required; and

conveying a list of the required files to the client device;

via a process taking place on the computing device, for each required file in the snapshot,

performing write operations using a copy-on-write mechanism by writing changes to a copy of the required file data;

detecting that an upload of the required file to the server is complete; and

in response to detecting that the upload of the required file to the server is complete, performing subsequent write operations directly on the required file without using the copy-on-write mechanism, while continuing to perform write operations using the copy-on-write mechanism on required files that have not finished uploading.

7. The computing device of claim 6 , wherein the memory further includes instructions that when executed by the at least one processor, cause the computing device to perform the steps of:

in response to detecting that the upload of the required file to the server is complete, determining whether the required file has been written to using the copy-on-write mechanism; and

if the required file has been written to using the copy-on-write mechanism, then deleting any corresponding data produced by the writing to the required file using the copy-on-write mechanism.

8. The computing device of claim 7 , wherein the memory further includes instructions that when executed by the at least one processor, cause the computing device to perform the steps of:

prior to the deleting any corresponding data produced by the writing to the required file using the copy-on-write mechanism, incorporating the data into the required file on the computing device.

9. The computing device of claim 6 , wherein the memory further includes instructions that when executed by the at least one processor, cause the computing device to perform the steps of:

receiving a write command for a file other than a required file on the computing device and performing the write command directly on the non-required file on the computing device.

10. The computing device of claim 6 , wherein the determining the set of required files comprises receiving a list of the required files from the backup server.

11. A non-transitory computer readable storage medium comprising one or more sequences of instructions, the instructions when executed by one or more processors causing the one or more processors to execute the operations of:

capturing a snapshot of a client computing device, the snapshot including files that are stored on the client computing device;

determining a set of required files in the snapshot to be uploaded from the client device to a backup server for performing a backup of the client device comprising determining which files in the snapshot are not present on the backup server, the backup server implementing a single instance store for storing client backup files, wherein determining the set of required files further comprises:

calculating a file manifest, the file manifest comprising file signatures of files in the snapshot;

conveying the file manifest to the backup server;

based on the file manifest, determining which of the files on the computing device are already present on the server and which files are required; and

conveying a list of the required files to the client device;

via a process taking place on the computing device, for each required file in the snapshot,

performing write operations using a copy-on-write mechanism by writing changes to a copy of the required file data;

detecting that an upload of the required file to the server is complete; and

in response to detecting that the upload of the required file to the server is complete, performing subsequent write operations directly on the required file without using the copy-on-write mechanism, while continuing to perform write operations using the copy-on-write mechanism on required files that have not finished uploading.

12. The non-transitory computer readable storage medium of claim 11 , further comprising instructions that when executed by the one or more processors cause the one or more processors to execute the operations of:

in response to detecting that the upload of the required file to the server is complete, determining whether the required file has been written to using the copy-on-write mechanism; and

if the required file has been written to using the copy-on-write mechanism, then deleting any corresponding data produced by the writing to the required file using the copy-on-write mechanism.

13. The non-transitory computer readable storage medium of claim 11 , further comprising instructions that when executed by the one or more processors cause the one or more processors to execute the operations of:

receiving a write command for a file other than a required file on the computing device and performing the write command directly on the non-required file on the computing device.

14. The non-transitory computer readable storage medium of claim 11 , wherein the determining the set of required files comprises receiving a list of the required files from the backup server.

Assignments (4)
PATENT ASSIGNMENT Recorded Aug 5, 2024
From: VMWARE LLC
To: OMNISSA, LLC
Reel/Frame 068327/0365 →
SECURITY INTEREST Recorded Jul 3, 2024
From: OMNISSA, LLC
To: UBS AG, STAMFORD BRANCH
Reel/Frame 068118/0004 →
CHANGE OF NAME Recorded Apr 15, 2024
From: VMWARE, INC.
To: VMWARE LLC
Reel/Frame 067102/0395 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 7, 2016
From: ADLER, NIR; HAREL, BOAZ
To: VMWARE, INC.
Reel/Frame 038218/0498 →