IP Library Granted Patent US 11,334,496
Granted Patent B2
US 11,334,496 · App. 16/705,307 · Granted May 17, 2022

Method and system for providing processor-addressable persistent memory to guest operating systems in a storage system

Inventors: Matthew H. Fredette (Belmont, MA); Jonathan I. Krasner (Coventry, RI); Jean-Pierre Bono (Westboro, MA); Chakib Ouarraoui (Watertown, MA); Adnan Sahin (Needham, MA)
Assignee: EMC IP Holding Company LLC
G06F12/10G06F2212/151
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 11,334,496
App. No.
16/705,307
Granted
May 17, 2022
Kind
B2
Abstract

A method for managing data includes obtaining, by a hypervisor on a host computing device, a write request for storing first data, and in response to the write request: identifying a first set of memory segments associated with the first data using a memory mapper, wherein the first set of memory segments is associated with a memory device, making a first determination that the memory device is local to the host computing device, and in response to the first determination: storing the first data in the first set of memory segments.

Claims (69)

1. A method for managing data, the method comprising:

sending, by a hypervisor, memory mapping information to a client virtual machine (VM), wherein the hypervisor and the client VM are executing on a host computing device, and wherein the memory mapping information specifies:

a first guest OS virtual memory segment mapped to a first memory device segment in a remote memory device within a remote host computing device;

a type of memory of the first memory device;

a second guest OS virtual memory segment mapped to a second memory device segment in a local memory device;

and a second type of memory of the second memory device;

obtaining, by the client VM, the memory mapping information;

in response to the obtaining:

based on determination, by the client VM, to store data in the remote memory device and the local memory device, the client VM utilizes the memory mapping information to select i) the first guest OS virtual memory segment and ii) the second guest OS virtual memory segment;

issuing, by the client VM to the hypervisor, a write request to the first guest OS virtual memory segment;

after the sending, receiving, by the hypervisor, the write request;

and in response to receiving the write request:

identifying, using a memory mapper in the hypervisor, the first memory device segment mapped to the first guest OS virtual memory segment;

in response to identifying the first memory device segment, issuing, by the hypervisor, request to the remote host computing device specifying storing of the data in the first memory device segment;

issuing, by the client VM to the hypervisor, a second write request to the second guest OS virtual memory segment;

after the sending, receiving, by the hypervisor, the second write request;

and in response to receiving the second write request:

identifying, using the memory mapper in the hypervisor, the second memory device segment mapped to the second guest OS virtual memory segment;

in response to identifying the second memory device segment, storing, by the hypervisor, the data in the second memory device segment.

2. The method of claim 1 , wherein the first memory device is a persistent memory (PMem) device.

3. The method of claim 1 , further comprising:

sending, by the hypervisor, second memory mapping information to a second client VM, wherein the second client VM is executing on the host computing device and wherein the second memory mapping information specifies that a second memory device segment of the first memory device is mapped to a third guest OS virtual memory segment.

4. A non-transitory computer readable medium comprising computer readable program code, which when executed by a computer processor enables the computer processor to perform a method for managing data, the method comprising:

sending, by a hypervisor on a host computing device, memory mapping information to a client virtual machine (VM),

wherein the hypervisor and the client VM are executing on the host computing device,

and wherein the memory mapping information specifies:

a first guest OS virtual memory segment mapped to a first memory device segment in a remote memory device within a remote host computing device;

a type of memory of the first memory device;

a second guest OS virtual memory segment mapped to a second memory device segment in a local memory device;

and a second type of memory of the second memory device;

obtaining, by the client VM, the memory mapping information;

in response to the obtaining:

based on determination, by the client VM, to store data in the remote memory device and the local memory device, the client VM utilizes the memory mapping information to select i) the first guest OS virtual memory segment and ii) the second guest OS virtual memory segment;

issuing, by the client VM to the hypervisor, a write request to the first guest OS virtual memory segment;

after the sending, receiving, by the hypervisor, the write request;

and in response to receiving the write request:

identifying, using a memory mapper in the hypervisor, the first memory device segment mapped to the first guest OS virtual memory segment;

in response to identifying the first memory device segment, issuing, by the hypervisor, request to the remote host computing device specifying storing of the data in the first memory device segment;

issuing, by the client VM to the hypervisor, a second write request to the second guest OS virtual memory segment;

after the sending, receiving, by the hypervisor, the second write request;

and in response to receiving the second write request:

identifying, using the memory mapper in the hypervisor, the second memory device segment mapped to the second guest OS virtual memory segment;

in response to identifying the second memory device segment, storing, by the hypervisor, the data in the second memory device segment.

5. A system, comprising:

a processor;

a hypervisor executing on the processor;

a memory device;

and wherein the hypervisor is programmed to:

send memory mapping information to a client virtual machine (VM),

wherein the hypervisor and the client VM are executing on a host computing device,

and wherein the memory mapping information specifies:

a first guest OS virtual memory segment mapped to a first memory device segment in a remote memory device within a remote host computing device;

a type of memory of the first memory device;

a second guest OS virtual memory segment mapped to a second memory device segment in a local memory device;

and a second type of memory of the second memory device;

after the send, obtain a write request;

and in response to obtaining the write request:

identify, using a memory mapper in the hypervisor, the first memory device segment mapped to the first guest OS virtual memory segment;

in response to identifying the first memory device segment, issue request to the remote host computing device specifying storing of data in the first memory device segment;

after the send, receive a second write request;

and in response to receiving the second write request:

identify, using the memory mapper in the hypervisor, the second memory device segment mapped to the second guest OS virtual memory segment;

in response to identifying the second memory device segment, store the data in the second memory device segment;

wherein the client VM is programmed to:

obtain the memory mapping information;

in response to obtaining the memory mapping information,

based on determination to store the data in the remote memory device and the local memory device, utilize the memory mapping information to select i) the first guest OS virtual memory segment and ii) the second guest OS virtual memory segment;

issue, to the hypervisor, the write request to the first guest OS virtual memory segment;

and issue, to the hypervisor, the second write request to the second guest OS virtual memory segment.

Assignments (9)
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (053311/0169) Recorded Jun 23, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC
Reel/Frame 060438/0742 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (053546/0001) Recorded Jun 23, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL MARKETING L.P. (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO CREDANT TECHNOLOGIES, INC.); DELL INTERNATIONAL L.L.C.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO FORCE10 NETWORKS, INC. AND WYSE TECHNOLOGY L.L.C.); EMC IP HOLDING COMPANY LLC
Reel/Frame 071642/0001 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (052216/0758) Recorded Jun 23, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
Reel/Frame 060438/0680 →
RELEASE OF SECURITY INTEREST AF REEL 052243 FRAME 0773 Recorded Nov 2, 2021
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
Reel/Frame 058001/0152 →
SECURITY INTEREST Recorded Jun 5, 2020
From: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
Reel/Frame 053311/0169 →
SECURITY AGREEMENT Recorded Apr 22, 2020
From: CREDANT TECHNOLOGIES INC.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; FORCE10 NETWORKS, INC.; WYSE TECHNOLOGY L.L.C.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A.
Reel/Frame 053546/0001 →
SECURITY AGREEMENT Recorded Mar 26, 2020
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
Reel/Frame 052243/0773 →
PATENT SECURITY AGREEMENT (NOTES) Recorded Mar 24, 2020
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
Reel/Frame 052216/0758 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 6, 2019
From: FREDETTE, MATTHEW H.; KRASNER, JONATHAN I.; BONO, JEAN-PIERRE; OUARRAOUI, CHAKIB; SAHIN, ADNAN
To: EMC IP HOLDING COMPANY LLC
Reel/Frame 051203/0945 →