Virtual server cloud file system for virtual machine restore to cloud operations
First Claim
1. A method for restoring a secondary copy of a virtual-disk file associated with a virtual machine to a cloud-based account, the method comprising:
- executing on a first computing device a pseudo-disk driver that presents a file system comprising a cache storage area on the first computing device as a local mass-data storage device;
storing to a first page in the cache storage area, by a data agent that executes on the first computing device, a first set of data blocks restored from a secondary copy of a second virtual-disk file associated with a second virtual machine hosted by another computing device,wherein the cache storage area comprises a plurality of pages, including the first page, wherein each page in the plurality of pages is sized to match a page-size configured in the cloud-based account,wherein the cloud-based account is configured to store a first virtual-disk file restored in its entirety from the secondary copy of the second virtual-disk file, andwherein the cache storage area on the first computing device is insufficient in storage capacity to store the first virtual-disk file restored in its entirety from the secondary copy of the second virtual-disk file;
from a second page in the plurality of pages in the cache storage area, wherein the second page is filled based on its page-size by data blocks restored from the secondary copy of the second virtual-disk file,uploading the restored data blocks in the filled second page from the cache storage area to a page in the first virtual-disk file in the cloud-based account;
wherein the first virtual-disk file is restored in its entirety to the cloud-based account based on uploading, page-by-page, all restored data blocks from the cache storage area on the first computing device to the first virtual-disk file in the cloud-based account without first restoring the secondary copy of the second virtual-disk file in its entirety to the first computing device; and
if (i) no more of the secondary copy of the second virtual-disk file remains to be restored and (ii) a given page in the plurality of pages in the cache storage area is not filled by data blocks restored from the secondary copy of the second virtual-disk file,uploading the restored data blocks in the given page from the cache storage area to a page in the first virtual-disk file in the cloud-based account.
2 Assignments
0 Petitions
Accused Products
Abstract
Uploads of restored virtual machine (“VM”) data to cloud storage, e.g., VM restore-to-cloud operations, are performed without having to write whole restored virtual disk files to a proxy server before the virtual disk data begins uploading to cloud. Restored data blocks from a backup source are locally cached, staged for efficiency, and asynchronously uploaded to the cloud page-by-page without tapping mass storage resources on the proxy. Downloads of VM data from cloud storage, e.g., VM backup-from-cloud, are performed without having to download a virtual disk file in its entirety to the proxy server before the backup operation begins generating a backup copy. This speeds up “pulling” VM data from the cloud by pre-fetching and locally caching downloaded data blocks. The cached data blocks are processed for backup and stored page-by-page directly into a secondary copy of the cloud VM virtual-disk file without tapping mass storage resource at the proxy.
-
Citations
15 Claims
-
1. A method for restoring a secondary copy of a virtual-disk file associated with a virtual machine to a cloud-based account, the method comprising:
-
executing on a first computing device a pseudo-disk driver that presents a file system comprising a cache storage area on the first computing device as a local mass-data storage device; storing to a first page in the cache storage area, by a data agent that executes on the first computing device, a first set of data blocks restored from a secondary copy of a second virtual-disk file associated with a second virtual machine hosted by another computing device, wherein the cache storage area comprises a plurality of pages, including the first page, wherein each page in the plurality of pages is sized to match a page-size configured in the cloud-based account, wherein the cloud-based account is configured to store a first virtual-disk file restored in its entirety from the secondary copy of the second virtual-disk file, and wherein the cache storage area on the first computing device is insufficient in storage capacity to store the first virtual-disk file restored in its entirety from the secondary copy of the second virtual-disk file; from a second page in the plurality of pages in the cache storage area, wherein the second page is filled based on its page-size by data blocks restored from the secondary copy of the second virtual-disk file, uploading the restored data blocks in the filled second page from the cache storage area to a page in the first virtual-disk file in the cloud-based account; wherein the first virtual-disk file is restored in its entirety to the cloud-based account based on uploading, page-by-page, all restored data blocks from the cache storage area on the first computing device to the first virtual-disk file in the cloud-based account without first restoring the secondary copy of the second virtual-disk file in its entirety to the first computing device; and if (i) no more of the secondary copy of the second virtual-disk file remains to be restored and (ii) a given page in the plurality of pages in the cache storage area is not filled by data blocks restored from the secondary copy of the second virtual-disk file, uploading the restored data blocks in the given page from the cache storage area to a page in the first virtual-disk file in the cloud-based account. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11)
-
-
12. A computer-readable medium, excluding transitory propagating signals, storing instructions that, when executed by a first computing device comprising one or more processors and computer memory, cause the first computing device to perform operations comprising:
-
executing a pseudo-disk driver that presents a cache storage area on the first computing device as a local mass-data storage device; storing to a first page in the cache storage area a first set of data blocks restored from a secondary copy of a second virtual-disk file associated with a second virtual machine hosted by another computing device, wherein the cache storage area comprises a plurality of pages, including the first page, wherein each page in the plurality of pages is sized to match a page-size configured in a cloud-based account, wherein the cloud-based account is configured to store a first virtual-disk file restored in its entirety from the secondary copy of the second virtual-disk file, and wherein the cache storage area on the first computing device is insufficient in storage capacity to store the first virtual-disk file restored in its entirety from the secondary copy of the second virtual-disk file; from a second page in the plurality of pages in the cache storage area, wherein the second page is filled based on its page-size by data blocks restored from the secondary copy of the second virtual-disk file, uploading the restored data blocks in the filled second page from the cache storage area to a page in the first virtual-disk file in the cloud-based account; and wherein the first virtual-disk file is restored in its entirety to the cloud-based account (a) based on uploading, page-by-page, all restored data blocks from the cache storage area on the first computing device to the first virtual-disk file in the cloud-based account without first restoring the secondary copy of the second virtual-disk file in its entirety to the first computing device, and (b) without using physical mass-data storage in or of the first computing device, and instead using the cache storage area for staging pages to be uploaded to the first virtual-disk file in the cloud-based account; and if (A) no more of the secondary copy of the second virtual-disk file remains to be restored and (B) a given page in the plurality of pages in the cache storage area is not filled by data blocks restored from the secondary copy of the second virtual-disk file, uploading the restored data blocks in the given page from the cache storage area to a page in the first virtual-disk file in the cloud-based account. - View Dependent Claims (13, 14, 15)
-
Specification