IP Library › Granted Patent US 11,748,208
Granted Patent B2
US 11,748,208 · App. 17/576,981 · Granted Sep 5, 2023

Persistent memory architecture

Inventors: Ananthan Subramanian (San Ramon, CA); Ram Kesavan (Los Altos, CA); Matthew Fontaine Curtis-Maury (Apex, NC); Mark Smith (Cupertino, CA)
Assignee: NetApp, Inc.
G06F11/1464G06F3/067G06F3/0619G06F3/0641G06F3/0659G06F11/1451G06F11/1453G06F11/1469G06F11/2056G06F2201/84
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,748,208
App. No.
17/576,981
Granted
Sep 5, 2023
Kind
B2
Abstract

Techniques are provided for implementing a persistent memory storage tier to manage persistent memory of a node. The persistent memory is managed by the persistent memory storage tier at a higher level within a storage operating system storage stack than a level at which a storage file system of the node is managed. The persistent memory storage tier intercepts an operation targeting the storage file system. The persistent memory storage tier retargets the operation from targeting the storage file system to targeting the persistent memory. The operation is transmitted to the persistent memory.

Claims (59)

1. A method comprising:

hosting a persistent memory storage tier and a storage file system tier within a storage operating system storage stack of a node, and

wherein the persistent memory storage tier is configured to manage a persistent memory file system that stores data within persistent memory according to byte-addressable access,

wherein the persistent memory storage tier supports a first atomicity size for operations retargeted to the persistent memory, wherein the first atomicity size is larger than a second atomicity size natively supported by the persistent memory; and

wherein the storage file system tier is configured to manage a storage file system that stores data within a storage device according to block-addressable access; and

generating a snapshot to comprise at least some data within the persistent memory and at least some data within the storage device.

2. The method of claim 1 , comprising:

mirroring data within the persistent memory of the node to a partner persistent memory of a partner node that is a partner of the node, wherein subsequent operations are rerouted from the node to the partner node for access to the partner persistent memory.

3. The method of claim 1 , comprising:

managing, by the persistent memory storage tier the persistent memory at a higher level within the storage operating system storage stack than a level at which the storage file system is managed by the storage file system tier such that operations targeting the storage file system are intercepted by the persistent memory storage tier before reaching the storage file system tier.

4. The method of claim 1 , comprising:

evaluating an operation utilizing a policy to determine whether the operation is to be executed through the storage file system or the persistent memory file system, wherein the policy specifies that operations targeting files that are randomly written to are to be retargeted to the persistent memory; and

retargeting the operation for execution through the persistent memory file system based upon the operation targeting a file that was randomly accessed.

5. The method of claim 1 , comprising:

evaluating an operation utilizing a policy to determine whether the operation is to be executed through the storage file system or the persistent memory file system, wherein the policy specifies that operations targeting data that is access within a threshold timespan or accessed above a threshold frequency are to be retargeted to the persistent memory; and

retargeting the operation for execution through the persistent memory file system based upon the operation targeting data accessed within the threshold timespan or accessed above the threshold frequency.

6. The method of claim 1 , comprising:

maintaining a data structure within the persistent memory storage tier to track data that is resident within the persistent memory; and

in response to an operation targeting data not tracked within the data structure, invoking the storage file system to execute the operation upon the storage device according to the block-addressable access.

7. The method of claim 1 , comprising:

restoring data captured within the snapshot to the persistent memory and to the storage device.

8. The method of claim 1 , comprising:

implementing volume level data replication of data stored across the persistent memory and a storage tier different than the persistent memory.

9. The method of claim 1 , comprising:

determining whether to transmit a read operation, targeting the storage file system, to the storage file system or the persistent memory based upon a determination of whether data to be read by the read operation is stored within the persistent memory.

10. The method of claim 1 , comprising:

determining whether to transmit a write operation, targeting the storage file system, to the storage file system or the persistent memory based upon a policy.

11. A computing device comprising:

a memory comprising machine executable code for performing a method; and

a processor coupled to the memory, the processor configured to execute the machine executable code to cause the processor to:

maintain a persistent memory storage tier and a storage file system tier within a storage operating system storage stack of a node,

wherein the persistent memory storage tier is configured to manage a persistent memory file system that stores data within persistent memory according to byte-addressable access,

wherein the persistent memory storage tier supports a first atomicity size for operations retargeted to the persistent memory, wherein the first atomicity size is larger than a second atomicity size natively supported by the persistent memory; and

wherein the storage file system tier is configured to manage a storage file system that stores data within a storage device according to block-addressable access; and

mirror data within the persistent memory of the node to a partner persistent memory of a partner node that is a partner of the node, wherein subsequent operations are rerouted from the node to the partner node for access to the partner persistent memory.

12. The computing device of claim 11 , wherein the machine executable code causes the processor to:

generate a snapshot to comprise at least some data within the persistent memory and at least some data within the storage device.

13. The computing device of claim 12 , wherein the machine executable code causes the processor to:

restore data captured within the snapshot to the persistent memory and to the storage device.

14. The computing device of claim 11 , wherein the machine executable code causes the processor to:

manage, by the persistent memory storage tier the persistent memory at a higher level within the storage operating system storage stack than a level at which the storage file system is managed by the storage file system tier such that operations targeting the storage file system are intercepted by the persistent memory storage tier before reaching the storage file system tier.

15. The computing device of claim 11 , wherein the machine executable code causes the processor to:

evaluate the operation utilizing a policy to determine whether the operation is to be executed through the storage file system or the persistent memory file system, wherein the policy specifies that operations targeting files that are randomly written to are to be retargeted to the persistent memory; and

retarget the operation for execution through the persistent memory file system based upon the operation targeting a file that was randomly accessed.

16. The computing device of claim 11 , wherein the machine executable code causes the processor to:

evaluate the operation utilizing a policy to determine whether the operation is to be executed through the storage file system or the persistent memory file system, wherein the policy specifies that operations targeting data that is access within a threshold timespan or accessed above a threshold frequency are to be retargeted to the persistent memory; and

retarget the operation for execution through the persistent memory file system based upon the operation targeting data accessed within the threshold timespan or accessed above the threshold frequency.

17. The computing device of claim 11 , wherein the machine executable code causes the processor to:

maintain a data structure within the persistent memory storage tier to track data that is resident within the persistent memory; and

in response to the operation targeting data not tracked within the data structure, invoke the storage file system to execute the operation upon the storage device according to the block-addressable access.

18. The computing device of claim 11 , wherein the machine executable code causes the processor to:

implement volume level data replication of data stored across the persistent memory and a storage tier different than the persistent memory.

19. The computing device of claim 11 , wherein the machine executable code causes the processor to:

determine whether to transmit a read operation, targeting the storage file system, to the storage file system or the persistent memory based upon a determination of whether data to be read by the read operation is stored within the persistent memory.

20. A non-transitory machine readable medium comprising instructions for performing a method, which when executed by a machine, causes the machine

hosting a persistent memory storage tier and a storage file system tier within a storage operating system storage stack of a node, and

wherein the persistent memory storage tier is configured to manage a persistent memory file system that stores data within persistent memory according to byte-addressable access, and

wherein the storage file system tier is configured to manage a storage file system that stores data within a storage device according to block-addressable access; and

supporting, by the persistent memory storage tier, a first atomicity size for operations retargeted to the persistent memory, wherein the first atomicity size is larger than a second atomicity size natively supported by the persistent memory.

Continuity (2)
Continuation 16852593 · Apr 20, 2020
Related Publication 20220138052A1 · May 5, 2022