US 9,813,485 B2
Communication of virtual machine data
Mark Blackburn, London (GB); Mick Saxton, London (GB); and Sumir Karayi, London (GB)
Assigned to 1E LIMITED, London (GB)
Filed by 1E Limited, London (GB)
Filed on Jun. 14, 2013, as Appl. No. 13/918,036.
Prior Publication US 2014/0372553 A1, Dec. 18, 2014
Int. Cl. H04L 29/08 (2006.01); G06F 9/455 (2006.01); G06F 17/30 (2006.01); G06F 15/16 (2006.01)
CPC H04L 67/10 (2013.01) [G06F 9/45558 (2013.01); G06F 17/30233 (2013.01); H04L 67/34 (2013.01); G06F 2009/45579 (2013.01)] 13 Claims
OG exemplary drawing
 
1. A method for preparing and communicating data representative of a virtual machine disk image to a client computing device on a network, comprising:
communicating executable data to the client computing device over the network, the executable data configuring a skeleton virtual machine disk image for a virtual disk on the client computing device, wherein the skeleton virtual machine disk image comprises a sparse file populated with at least metadata comprising a file system index for the virtual disk, wherein the file system index indicates at least one of a location and file characteristics associated with data of the virtual disk;
determining a first set of data representative of at least a portion of a virtual machine disk image accessible by the client computing device over the network, the first set of data comprising data arranged in a first sequence; and
determining, from the first set of data, a second set of data for communication to the client computing device over the network, the second set of data comprising at least a portion of the first set of data arranged in a second sequence, the second sequence being different from the first sequence,
wherein the client computing device implements a host operating system by way of one or more system files stored locally on the client computing device, and
wherein a virtual machine manager operating within an environment provided by the host operating system implements a virtual operating system by way of the skeleton virtual machine disk image;
wherein determining the second set of data comprises:
obtaining, from a scan of said one or more system files that implement the host operating system that are stored locally on the client computing device, an indication of data stored locally on the client computing device, within the one or more system files, that is present in the first set of data; and
excluding said data stored locally on the client computing device from the second set of data; and
wherein the method further comprises:
responsive to the virtual machine manager performing a boot sequence for the virtual operating system, communicating the second set of data to the client computing device, the client computing device receiving the second set of data as a background process; and
responsive to a request from the client computing device for data indicated by the sparse file as part of the boot sequence, the request being for data that does not form part of:
said data stored locally on the client computing device, or
data from the second set of data that has been communicated to the client computing device,
communicating the data indicated by the sparse file as part of the boot sequence to the client computing device.