Firmware interface with durable memory storage
US-2015370302-A1 · Dec 24, 2015 · US
US11188253B2 · US · B2
| Field | Value |
|---|---|
| Publication number | US-11188253-B2 |
| Application number | US-201615263202-A |
| Country | US |
| Kind code | B2 |
| Filing date | Sep 12, 2016 |
| Priority date | Jan 21, 2009 |
| Publication date | Nov 30, 2021 |
| Grant date | Nov 30, 2021 |
A practical reading order for non-experts. Skip the full description unless you need deep technical detail.
What the patent document calls the invention.
A short plain-language summary of the technical disclosure.
Who owns or filed the patent and who is credited as inventor.
Filing, priority, publication, and grant dates set the timeline.
The legal scope of protection — read this for what is actually claimed.
Technology tags used to group this patent with similar filings.
Prior art links and similar publications in this corpus.
Official abstract text for this publication.
In a computer system with a disk array that has physical storage devices arranged as logical storage units and is capable of carrying out hardware storage operations on a per logical storage unit basis, data movement operations can be carried out on a per-file basis. A data mover software component for use in a computer or storage system enables cloning and initialization of data to provide high data throughput without moving the data between the kernel and application levels.
Opening claim text (preview).
What is claimed is: 1. A method comprising: receiving a zeroing request, initiated by an application running on a virtual machine, to zero out a file located on a virtual file system of a virtual machine operating system, the file corresponding to a virtual disk associated with the virtual machine; resolving the file into file segments of the virtual disk, each file segment represented by an identifier, an offset, and a length, and wherein each file segment represents a contiguous region on the virtual disk; resolving each of the segments of the virtual disk to a corresponding list of blocks, wherein each segment comprises one or more blocks, and consolidating the respective lists of blocks into a blocklist, wherein the blocklist is an ordered list of logical unit number (LUN) blocks of a storage system representing the virtual disk in LUN block form, wherein the storage system is represented as a contiguous logical storage space of LUN blocks, and wherein each LUN block is associated with an extent map that associates the LUN block with one or more spindle-extent pairs of a disk array of the storage system; generating, by a hypervisor, a zero blocklist primitive; after the generating of the zero blocklist primitive by the hypervisor, determining whether the zero blocklist primitive is supported by the disk array, and in response to a determination that the zero blocklist primitive is supported by the disk array, using the zero blocklist primitive to implement a write command to the disk array that includes the blocklist for the file; and providing the write command to the disk array, wherein the disk array uses the blocklist to identify corresponding spindle-extent pairs to write zeros into the extents representing the file. 2. The method of claim 1 , wherein the zero blocklist primitive takes a context identifier and the blocklist as parameters that can be embedded into a write command issued to the storage system. 3. The method of claim 1 , further comprising, in response to a determination that the zero blocklist primitive is not supported: generating a move data command with a null source identifier for each block in the blocklist; and for each block in the blocklist, using the corresponding move data command to translate that block into a corresponding spindle-extent and writing a zero into the corresponding spindle-extent representing that block. 4. The method of claim 1 , wherein each LUN block is mapped to a particular spindle-extent of the disk array. 5. A computing system comprising: one or more computers including one or more processors and one or more computer-readable storage devices, the one or more computers configured to perform operations comprising: receiving a zeroing request to zero out a file located on a virtual file system of a virtual machine operating system, the file corresponding to a virtual disk associated with a virtual machine; resolving the file into file segments of the virtual disk, each file segment represented by an identifier, an offset, and a length, and wherein each file segment represents a contiguous region on the virtual disk; resolving each of the segments of the virtual disk to a corresponding list of blocks, wherein each segment comprises one or more blocks, and consolidating the respective lists of blocks into a blocklist, wherein the blocklist is an ordered list of logical unit number (LUN) blocks of a storage system representing the virtual disk in LUN block form, wherein the storage system is represented as a contiguous logical storage space of LUN blocks, and wherein each LUN block is associated with an extent map that associates the LUN block with one or more spindle-extent pairs of a disk array of the storage system; generating, by a hypervisor, a zero blocklist primitive; after the generating of the zero blocklist primitive by the hypervisor, determining whether the zero blocklist primitive is supported by the disk array, and in response to a determination that the zero blocklist primitive is supported by the disk array, using the zero blocklist primitive to implement a write command to the disk array that includes the blocklist for the file; and providing the write command to the disk array, wherein the disk array uses the blocklist to identify corresponding spindle-extent pairs to write zeros into the extents representing the file. 6. The computing system of claim 5 , wherein the zero blocklist primitive takes a context identifier and the blocklist as parameters that can be embedded into a write command issued to the storage system. 7. The computing system of claim 5 , wherein in response to a determination that the zero blocklist primitive is not supported, the one or more computers further perform operations comprising: generating a move data command with a null source identifier for each block in the blocklist; and for each block in the blocklist, using the corresponding move data command to translate that block into a corresponding spindle-extent and writing a zero into the corresponding spindle-extent representing that block. 8. The computing system of claim 5 , wherein each LUN block is mapped to a particular spindle-extent of the disk array. 9. A non-transitory computer readable medium having computer readable program code means embodied therein that when executed by a computer system performs operations comprising: receiving a zeroing request, initiated by an application running on a virtual machine, to zero out a file located on a virtual file system of a virtual machine operating system, the file corresponding to a virtual disk associated with the virtual machine; resolving the file into file segments of the virtual disk, each file segment represented by an identifier, an offset, and a length, and wherein each file segment represents a contiguous region on the virtual disk; resolving each of the segments of the virtual disk to a corresponding list of blocks, wherein each segment comprises one or more blocks, and consolidating the respective lists of blocks into a blocklist, wherein the blocklist is an ordered list of logical unit number (LUN) blocks of a storage system representing the virtual disk in LUN block form, wherein the storage system is represented as a contiguous logical storage space of LUN blocks, and wherein each LUN block is associated with an extent map that associates the LUN block with one or more spindle-extent pairs of a disk array of the storage system; generating, by a hypervisor, a zero blocklist primitive; after the generating of the zero blocklist primitive by the hypervisor, determining whether the zero blocklist primitive is supported by the disk array, and in response to a determination that the zero blocklist primitive is supported by the disk array, using the zero blocklist primitive to implement a write command to the disk array that includes the blocklist for the file as; and providing the write command to the disk array, wherein the disk array uses the blocklist to identify corresponding spindle-extent pairs to write zeros into the extents representing the file. 10. The non-transitory computer readable medium of claim 9 , wherein the zero blocklist primitive takes a context identifier and the blocklist as parameters that can be embedded into a write command issued to the storage system. 11. The non-transitory computer readable medium of claim 9 , wherein in response to a determination that the zero blocklist primitive is not supported, the computer readable program code means further performs operations comprising: generating a move data command with a null source identifier for each block in the blocklist; and for each block in the blocklist, using the corresponding move data co
for peripheral storage systems, e.g. disk cache · CPC title
Plurality of storage devices · CPC title
Management of files · CPC title
Techniques for file synchronisation in file systems · CPC title
Storage comprising a plurality of storage devices · CPC title
Related publications grouped by family.
Answers are generated from the same data shown on this page.