Remote Shared Virtual Disk Snapshot Creation
First Claim
1. A system for creating a snapshot of a virtual hard disk, comprising:
- at least one processor; and
memory, operatively connected to the at least one processor and containing instructions that, when executed by the at least one processor, perform a method, the method comprising;
opening a handle to a virtual hard disk set file;
accessing the virtual hard disk using the handle, wherein the virtual hard disk comprises a first virtual hard disk file, and wherein accessing the virtual hard disk comprises writing at least a first sector of data to the virtual hard disk;
requesting creation of a snapshot of the virtual hard disk file, wherein the snapshot comprises the first sector of data;
after the snapshot of the virtual hard disk is created, accessing the virtual hard disk using the handle, wherein accessing the virtual hard disk comprises writing at least a second sector of data to the virtual hard disk.
1 Assignment
0 Petitions
Accused Products
Abstract
A storage system creates a snapshot of a virtual hard disk by switching an I/O request target for the virtual hard disk. A requestor may issue requests to the storage system requesting that specific operations of the process should be performed. A request may specify that more than one operation should be performed in one operation. After initializing a new virtual hard disk file, I/O requests directed to a target virtual hard disk file are held for later deliver. The I/O request target is switched from the target to the new virtual hard disk file. I/O requests are unblocked and the stored requests are delivered to the new virtual hard disk file. Additional I/O requests sent to the target virtual hard disk file may be redirected to the new virtual hard disk file.
50 Citations
20 Claims
-
1. A system for creating a snapshot of a virtual hard disk, comprising:
-
at least one processor; and memory, operatively connected to the at least one processor and containing instructions that, when executed by the at least one processor, perform a method, the method comprising; opening a handle to a virtual hard disk set file; accessing the virtual hard disk using the handle, wherein the virtual hard disk comprises a first virtual hard disk file, and wherein accessing the virtual hard disk comprises writing at least a first sector of data to the virtual hard disk; requesting creation of a snapshot of the virtual hard disk file, wherein the snapshot comprises the first sector of data; after the snapshot of the virtual hard disk is created, accessing the virtual hard disk using the handle, wherein accessing the virtual hard disk comprises writing at least a second sector of data to the virtual hard disk. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
-
-
10. A method for creating a snapshot of a virtual hard disk, the method comprising:
-
initializing a second virtual hard disk, wherein initializing comprises creating an empty virtual hard disk file, initializing file headers, and receiving an indication that periodic snapshots should be created; blocking I/O requests, wherein blocking I/O requests comprises holding I/O requests directed to the first virtual hard disk and instead storing the I/O requests in a data store for later delivery; switching the target of I/O requests from the first virtual hard disk to the second virtual hard disk; unblocking I/O requests, wherein unblocking I/O requests comprises delivering I/O requests from the data store to the second virtual hard disk and allowing subsequent I/O requests directed to the second virtual hard disk; and finalizing the second virtual hard disk, wherein finalizing comprises cleaning up temporary data that was stored while creating the snapshot. - View Dependent Claims (11, 12, 13, 14, 15, 16, 17, 18, 19)
-
-
20. A system comprising:
-
initialization means for initializing a snapshot of a first virtual hard disk; blocking means for blocking I/O requests directed to the first virtual hard disk; target switching means for switching a target of an I/O request from the first virtual hard disk to a second virtual hard disk; unblocking means for unblocking subsequent I/O requests; and finalization means for finalizing the second virtual hard disk.
-
Specification