IP Library Granted Patent US 10,452,298
Granted Patent B2
US 10,452,298 · App. 15/640,195 · Granted Oct 22, 2019

Portable file-backed virtual storage class memory

Inventors: Matthew David Kurjanowicz (North Bend, WA); Attilio Mainetti (Bellevue, WA); Scott Chao-Chueh Lee (Bellevue, WA)
Assignee: Microsoft Technology Licensing, LLC
G06F3/0643G06F3/0604G06F3/0664G06F3/0683G06F9/45558G06F9/45545G06F12/1009G06F2009/45579G06F2009/45583
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 10,452,298
App. No.
15/640,195
Granted
Oct 22, 2019
Kind
B2
Abstract

Reading and copying data as file data in a persistent memory storage device. A method may be practiced in a virtual machine environment. The virtual machine environment includes a persistent memory storage device. The persistent memory storage device has the ability to appear as a memory device having available memory to a virtual machine on a host and as a file to the host. The method includes acts for copying data stored in the persistent memory storage device for a first virtual machine. The method includes the host reading data from the persistent memory storage device as file data. The method further includes the host writing the data from the persistent memory storage device as file data.

Claims (37)

1. A computer system comprising:

one or more processors; and

one or more computer-readable media having stored thereon instructions that are executable by the one or more processors to configure the computer system to present data backing a virtual persistent memory storage device to a virtual machine as block-based data to a host, including instructions that are executable to configure the computer system to perform at least the following:

access file data from a first file, the file data being in a byte-addressable format that backs a virtual persistent memory storage device at a virtual machine; and

convert the file data in the byte-addressable format used by the virtual persistent memory storage devices to a block-based format used by block-based storage and write the converted file data to a second file; and

present the converted file data from the second file as a block-based storage device at the virtual machine.

2. The system of claim 1 , further comprising instructions that are executable to configure the computer system to map at least one of a block offset or a virtual byte offset to a file offset as a result of the computer system converting the data from the byte-addressable format to the block-based format.

3. The system of claim 1 , wherein the computer system converting the data from the byte-addressable format to the block-based format comprises the host writing disk data to a tree for a differencing disk, the method further comprising adding one or more memory intercept triggers on the disk data such that guest virtual machine requests to write to the data will be intercepted by a hypervisor such that the writes are written to a leaf of the tree rather than to an existing parent node.

4. The system of claim 1 , further comprising instructions that are executable to configure the computer system to implement a loopback mount by using a filter to translate at least one of a block offset or a virtual byte offset to a file offset to enable a miniport driver coupled to the filter to access the one or more persistent memory storage devices.

5. The system of claim 1 , wherein the computer system converting the file data from the byte-addressable format to the block-based format is performed as part of a thin provisioning process and wherein the method further includes processing a memory intercept and mapping a byte addressable persistent memory location to a guest virtual machine physical address.

6. The system of claim 1 , wherein the host accessing file data and the computer system converting the file data from the byte-addressable format to the block-based format is performed as part of an error handling operation and wherein the method further includes adding a memory intercept trigger for a file and subsequently performing the acts of the host accessing file data and the host writing the file data to one or more persistent memory storage devices as file data to move file data to a new location on the one or more persistent memory storage devices.

7. In a virtual machine environment, the virtual machine environment comprising a persistent memory storage device, configured to present data backing the persistent memory storage device as a memory storage device to a virtual machine and as a block-based data to the host, a method of copying data stored in the virtual persistent memory storage device for a virtual machine:

accessing file data from a first file, the file data being in a byte-addressable format that backs the virtual persistent memory storage device;

converting the file data from the byte-addressable format used by the persistent memory storage device to a block-based format used by block-based storage and write the converted file data to a second file; and

storing the converted file data from the second file into a block-based storage device.

8. The system of claim 7 , further comprising a virtual machine reading data in the presented file data as data stored in a block-based storage device.

9. The system of claim 7 , further comprising:

accessing file data from the second file, the file data being in the block-based format;

converting the file data from the block-based format to the byte-addressable format used by the virtual persistent memory storage device; and

writing the converted file data into the virtual persistent memory storage device.

10. The system of claim 7 , wherein the accessing the data from the persistent memory storage device as file data as a result of translating at least one of a block offset or a virtual byte offset to a file offset.

11. The system of claim 7 , wherein the accessing data from the persistent memory storage device as file data and the converting the data from byte-addressable format to the block-based format is performed by a locked down usermode process.

12. In a virtual machine environment, the virtual machine environment comprising a persistent memory storage device, configured to present data backing the persistent memory storage device as a memory storage device to a first virtual machine and block-based data to the host, a method of distributing common data across one or more virtual machines, the method comprising:

accessing file data from a first file, the file data being in a byte-addressable format that backs the virtual persistent memory storage device; and

converting the file data from the byte-addressable format used by the persistent memory storage devices to a block-based format used by block-based storage and write the converted file data to a second file; and

presenting the converted file data from the second file as a block-based storage device to a second virtual machine.

13. The system of claim 12 , further comprising reading data in the presented file data as data a stored in a block-based storage device.

14. The system of claim 12 , further comprising:

accessing file data from the second file, the file data being in the block-based format;

converting the file data from the block-based format to the byte-addressable format used by the virtual persistent memory storage device; and

writing the converted file data into the virtual persistent memory storage device.

15. The system of claim 12 , further comprising mapping at least one of a block offset or a virtual byte offset to a file offset as a result of the converting the data from the byte-addressable format to the block-based format.

16. The system of claim 12 , wherein the converting the data from the byte-addressable format to the block-based format comprises the host writing disk data to a tree for a differencing disk, the method further comprising adding one or more memory intercept triggers on the disk data such that guest virtual machine requests to write to the data will be intercepted by a hypervisor such that the writes are written to a leaf of the tree rather than to an existing parent node.

17. The system of claim 12 , wherein the accessing file data and the host converting the file data from the byte-addressable format to the block-based format is performed by a locked down usermode process.

18. The system of claim 12 , further comprising implementing a loopback mount by using a filter to translate at least one of a block offset or a virtual byte offset to a file offset to enable a miniport driver coupled to the filter to access the one or more persistent memory storage devices.

19. The system of claim 12 , wherein the converting the file data from the byte-addressable format to the block-based format is performed as part of a thin provisioning process and wherein the method further includes processing a memory intercept and mapping a byte addressable persistent memory location to a guest virtual machine physical address.

20. The system of claim 14 , wherein the accessing file data and the host converting the file data from the byte-addressable format to the block-based format is performed as part of an error handling operation and wherein the method further includes adding a memory intercept trigger for a file and subsequently performing the acts of the host accessing file data and the host converting the file data between the byte-addressable format to the block-based format to move file data to a new location on another persistent memory storage devices.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 30, 2017
From: KURJANOWICZ, MATTHEW DAVID; MAINETTI, ATTILIO; LEE, SCOTT CHAO-CHUEH
To: MICROSOFT TECHNOLOGY LICENSING, LLC
Reel/Frame 042879/0831 →
Continuity (2)
Provisional Application 62503709 · May 9, 2017
Related Publication 20180329643A1 · Nov 15, 2018
Cited By (1)
US 12,242,428