×

Optimized copy of virtual machine storage files

  • US 9,778,946 B2
  • Filed: 08/07/2009
  • Issued: 10/03/2017
  • Est. Priority Date: 08/07/2009
  • Status: Active Grant
First Claim
Patent Images

1. A method performed by a host computer system for performing an optimized copy of virtual machine storage files, the method comprising:

  • under control of a physical host computer system configured to execute virtual machines associated with virtual machine storage files, the physical host computer system having executing thereon a physical host operating system that provides one or more application programming interfaces (APIs);

    mounting, as a volume, on the physical host computer system, a virtual machine storage file associated with one of the virtual machines;

    determining a handle of the mounted volume via the one or more APIs of the physical host operating system;

    wherein the virtual machine storage file comprises guest system metadata and a guest file system;

    wherein the guest file system comprises a plurality of logical clusters having a file system cluster size expressible in bytes;

    wherein the guest system metadata comprises a cluster bitmap, the cluster bitmap comprising information on whether each logical cluster of the guest file system is in use by the guest file system;

    identifying the guest file system included in the virtual machine storage file via the handle and the one or more APIs of the physical host operating system;

    obtaining, via the one or more APIs of the physical host operating system, the file system cluster size of the guest file system and a number of logical clusters in the plurality of logical clusters of the guest file system;

    identifying, via the one or more APIs of the physical host operating system, a location within the virtual machine storage file of the first logical cluster of the guest file system;

    copying, to a destination file, the virtual machine storage file from a beginning of the virtual machine storage file to the identified location of the first logical cluster of the guest file system;

    accessing the cluster bitmap for information on whether each logical cluster in the guest file system is in use by the guest file system;

    for each logical cluster of the plurality of logical clusters, determining, from the cluster bitmap, whether the logical cluster is in use by the guest file system;

    for each logical cluster of the plurality of logical clusters, responsive to a determination that the logical cluster is not in use by the guest file system, advancing file pointer of the destination file by the file system cluster size without copying the logical cluster to the destination file; and

    for each logical cluster of the plurality of logical clusters, responsive to a determination that the logical cluster is in use by the guest file system, copying the logical cluster to the destination file.

View all claims
  • 24 Assignments
Timeline View
Assignment View
    ×
    ×