Patent ID: 8745351

Claim:
A method of postponing initialization of blocks of a virtual disk for a virtual machine that is running in a host system, the virtual disk being stored as a virtual disk file in a storage system connected to the host system, the method comprising: creating a file descriptor for the virtual disk file, wherein the file descriptor comprises entries for data blocks that have been allocated to the virtual disk file, each entry including an indicator as to whether a corresponding data block has been previously initialized; receiving a virtual write operation for the virtual disk from the virtual machine; upon receiving the virtual write operation for the virtual disk, consulting indicators in the file descriptor for the virtual disk file for a data block corresponding to the virtual write operation to assess whether the data block should be initialized prior to executing the virtual write operation; writing data into portions of the data block that are specified by the write operation; initializing any uninitialized portions of the data block that precede the portions of the data block that are specified by the write operation; and upon completion of the write operation, maintaining a reference that indicates a position in the data block after which portions of the data block have not been initialized or written to.