Virtual disk storage techniques

US11614873B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-11614873-B2
Application numberUS-201615221797-A
CountryUS
Kind codeB2
Filing dateJul 28, 2016
Priority dateMar 11, 2011
Publication dateMar 28, 2023
Grant dateMar 28, 2023

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

Official abstract text for this publication.

This document describes techniques for storing virtual disk payload data. In an exemplary configuration, each virtual disk extent can be associated with state information that indicates whether the virtual disk extent is described by a virtual disk file. Under certain conditions the space used to describe a virtual disk extent can be reclaimed and state information can be used to determine how read and/or write operations directed to the virtual disk extent are handled. In addition to the foregoing, other techniques are described in the claims, figures, and detailed description of this document.

First claim

Opening claim text (preview).

What is claimed: 1. A storage device comprising computer executable instructions that upon execution by a processor cause the processor to: allocate, based on state information associated with a virtual disk extent that is disassociated from a virtual disk file, a section of the virtual disk file for describing the virtual disk extent without overwriting a preexisting bit pattern within the section of the virtual disk file, wherein the virtual disk extent includes non-zero data; and modify the state information associated with the virtual disk extent, such that the state information comprises an indication of a mapped state associated with the virtual disk extent, the mapped state indicating that the virtual disk extent is described by the virtual disk file. 2. The storage device of claim 1 , further comprising instructions that upon execution cause the processor to: respond to an offset query command with information that identifies at least one of: sectors that are non-zero, sectors that are in a non-transparent state, sectors that are in the mapped state, or sectors that are in an initialized state. 3. The storage device of claim 1 , further comprising instructions that upon execution cause the processor to: send a request to a file system controlling the virtual disk file to issue at least one command selected from a group of commands comprising: a trim command, an unmap command, a write same of zero command, and an offload write of a zero token command. 4. The storage device of claim 1 , further comprising instructions that upon execution cause the processor to: determine a portion of the virtual disk file that corresponds to a portion of a second virtual disk extent; and send a trim command for the determined portion of the virtual disk file to a file system configured to store the virtual disk file on a storage device. 5. The storage device of claim 1 , further comprising instructions that upon execution cause the processor to: dissociate the virtual disk extent from the section of the virtual disk file and modify the state information associated with the virtual disk extent, such that the state information indicates that the virtual disk extent has no associated space in the virtual disk file, in response to receipt of a request to trim a range of sectors that includes the virtual disk extent. 6. The storage device of claim 5 , further comprising instructions that upon execution cause the processor to: receive a request to write data to the virtual disk extent; zero an unused section of the virtual disk file based on the state information associated with the virtual disk extent, the state information indicating that the virtual disk extent was zeroed; and allocate the unused section of the virtual disk file for describing the virtual disk extent. 7. The storage device of claim 5 , further comprising instructions that upon execution cause the processor to: receive a request to write to the virtual disk extent; and allocate an unused section of the virtual disk file for describing the virtual disk extent without modifying contents of the unused section of the virtual disk file. 8. The storage device of claim 5 , further comprising instructions that upon execution cause the processor to: receive a request to write to the virtual disk extent; overwrite an unused section of the virtual disk file with a non-information-disclosing bit pattern based on the state information associated with the virtual disk extent, the state information indicating that the file system is not securing access to the virtual disk extent; and allocate the overwritten section of the virtual disk file for describing the virtual disk extent. 9. The storage device of claim 5 , further comprising instructions that upon execution cause the processor to: send, based on state information indicating that the virtual disk extent was zeroed, a zero token to a requestor in response to receipt of an offload read request associated with the virtual disk extent. 10. A computer system, comprising: a processor; a memory coupled to the processor, the memory including instructions that upon execution by the processor cause the computer system to: receive a signal indicating that a portion of a virtual disk extent is no longer in use; identify a portion of a virtual disk file that describes the portion of the virtual disk extent; send a trim request to a file system storing the virtual disk file, the trim request instructing trimming the identified portion of the virtual disk file; and dissociate the virtual disk extent from the virtual disk file and modify state information associated with the virtual disk extent, such that the state information indicates that the virtual disk extent comprises free space when the virtual disk extent is considered free space by the file system. 11. The computer system of claim 10 , wherein identifying the portion of the virtual disk file comprises: receiving a virtual disk byte offset value; and determining, based on checking an allocation table, a portion of the virtual disk file that corresponds to the virtual disk byte offset value. 12. The computer system of claim 10 , wherein: the instructions further cause the computer system to remove information that links the virtual disk extent to a section of the virtual disk file; and the section of the virtual disk file is reused for storing data of other virtual disk extents. 13. The computer system of claim 10 , wherein: the virtual disk file is a member of a group of virtual disk files that together form a virtual disk that comprises the virtual disk extent; and the instructions further cause the computer system to: select a sub-group from the group of virtual disk files; and generate information that identifies sectors of the sub-group that comprise data and sectors of the sub-group that are transparent. 14. The computer system of claim 10 , wherein the instructions further cause the computer system to associate the virtual disk extent with information that indicates that the virtual disk extent includes arbitrary data. 15. The computer system of claim 14 , wherein arbitrary data comprises at least one of: data stored in any part of the virtual disk; data representing all zeros; or data representing all ones. 16. A computer implemented method for storing data for a virtual machine, comprising: exposing a virtual storage device to a guest operating system, the virtual storage device comprising a virtual disk extent that is dissociated from a virtual disk file; receiving a request to write data to the virtual disk extent; allocating a section of the virtual disk file for describing the virtual disk extent without overwriting a preexisting bit pattern within the section of the virtual disk file, wherein the virtual disk extent comprises free space and the virtual disk extent includes non-zero data; modifying state information associated with a virtual disk comprising the virtual disk extent, such that the state information comprises an indication of a mapped state associated with the virtual disk extent, the mapped state indicating that the virtual disk extent is mapped to the allocated section of the virtual disk file; and storing the data to the allocated section of the virtual disk file. 17. The method of claim 16 , further comprising dissociating the virtual disk extent from the virtual disk file and modifying the state information associated with the virtual disk extent, such that the state information indicates that the virtual disk extent has been zeroe

Assignees

Inventors

Classifications

  • at device level, e.g. emulation of a storage device or system · CPC title

  • I/O management, e.g. providing access to device drivers or storage · CPC title

  • Management of space entities, e.g. partitions, extents, pools · CPC title

  • G06F3/061Primary

    Improving I/O performance · CPC title

  • Reducing size or complexity of storage systems · CPC title

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US11614873B2 cover?
This document describes techniques for storing virtual disk payload data. In an exemplary configuration, each virtual disk extent can be associated with state information that indicates whether the virtual disk extent is described by a virtual disk file. Under certain conditions the space used to describe a virtual disk extent can be reclaimed and state information can be used to determine how …
Who is the assignee on this patent?
Microsoft Technology Licensing Llc
What technology area does this patent fall under?
Primary CPC classification G06F3/061. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Mar 28 2023 00:00:00 GMT+0000 (Coordinated Universal Time) (B2). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 5 related publications on this page (citations in our corpus or others sharing the same primary CPC).