NVRAM caching and logging in a storage system

US9720822B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-9720822-B2
Application numberUS-201514856268-A
CountryUS
Kind codeB2
Filing dateSep 16, 2015
Priority dateJan 8, 2014
Publication dateAug 1, 2017
Grant dateAug 1, 2017

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.

In one embodiment, a node coupled to solid state drives (SSDs) of a plurality of storage arrays executes a storage input/output (I/O) stack having a plurality of layers. The node includes a non-volatile random access memory (NVRAM). A first portion of the NVRAM is configured as a write-back cache to store write data associated with a write request and a second portion of the NVRAM is configured as one or more non-volatile logs (NVLogs) to record metadata associated with the write request. The write data is passed from the write-back cache over a first path of the storage I/O stack for storage on a first storage array and the metadata is passed from the one or more NVLogs over a second path of the storage I/O stack for storage on a second storage array, wherein the first path is different from the second path.

First claim

Opening claim text (preview).

What is claimed is: 1. A system comprising: a central processing unit (CPU) of a node of a cluster coupled to solid state drives (SSDs) of a plurality of storage arrays; a memory coupled to the CPU and configured to store a storage input/output (I/O) stack having a plurality of layers executable by the CPU; and a non-volatile random access memory (NVRAM) coupled to the CPU, a first portion of the NVRAM configured as a write-back cache to store write data associated with a write request from a client and a second portion of the NVRAM configured as one or more non-volatile logs (NVLogs) to record metadata associated with a block address included in the write request, the write data passed from the write-back cache over a first path of the storage I/O stack for storage on a first storage array and the metadata passed from the one or more NVLogs over a second path of the storage I/O stack for storage on a second storage array, wherein the first path is different from the second path. 2. The system of claim 1 wherein the write data is preserved in the write-back cache until successfully stored on the first storage array and the metadata is preserved in the one or more NVLogs until successfully stored on the second storage array. 3. The system of claim 2 wherein the preserved write data and the preserved metadata are replayed to recover failure of one of the first storage array and the second storage array. 4. The system of claim 2 wherein the layers of the storage I/O stack include an extent store layer implemented as a plurality of extent store layer instances executable by the CPU and wherein the first path of the storage I/O stack includes a first extent store layer instance and the second path of the storage I/O stack includes a second extent store layer instance different from the first extent store layer instance. 5. The system of claim 4 wherein the layers of the storage I/O stack further include a persistence layer implemented as a persistence layer instance executable by the CPU and configured to: store the write data in the write-back cache; pass the write data as an extent to the first extent store layer instance for storage on the first storage array; and receive a first callback from the first extent store layer instance acknowledging storage of the extent on the first storage array. 6. The system of claim 5 wherein the layers of the storage I/O stack further include a volume layer implemented as a volume layer instance executable by the CPU and configured to: insert the metadata into a data structure managed by the volume layer instance; record the metadata in a volume layer log of the one or more NVLogs; and issue a second callback to the persistence layer instance indicating that the write request is complete. 7. The system of claim 6 wherein the data structure is a dense tree and wherein the metadata includes parameters of the write request as well as an extent key associated with the extent. 8. A method comprising: executing, by a processor of a node of a cluster coupled to storage devices, a storage input/output (I/O) stack having a plurality of layers; configuring a first portion of a non-volatile random access memory (NVRAM) of the node as a write-back cache to store write data associated with a write request received at the node from a client; configuring a second portion of the NVRAM as one or more non-volatile logs (NVLogs) to record metadata associated with a block address included in the write request; passing the write data from the write-back cache over a first path of the storage I/O stack for storage on a first storage device; and passing the metadata from the one or more NVLogs over a second path of the storage I/O stack for storage on a second storage device, wherein the first path is different from the second path. 9. The method of claim 8 , further comprising: preserving the write data in the write-back cache until successfully stored on the first storage device; and preserving the metadata in the one or more NVLogs until successfully stored on the second storage device. 10. The method of claim 9 , further comprising: replaying the preserved write data and the preserved metadata to recover failure of one of the first storage device and the second storage device. 11. The method of claim 9 , further comprising: implementing an extent store layer of the storage I/O stack as a plurality of extent store layer instances, wherein the first path of the storage I/O stack includes a first extent store layer instance and the second path of the storage I/O stack includes a second extent store layer instance different from the first extent store layer instance. 12. The method of claim 11 , further comprising: implementing a persistence layer of the storage I/O stack as a persistence layer instance to organize the write data as an extent for storage on the first storage device; and receiving a first callback at the persistence layer instance from the first extent store layer instance acknowledging storage of the extent on the first storage device. 13. The method of claim 12 , further comprising: implementing a volume layer of the storage I/O stack as a volume layer instance to insert the metadata of the write request into a data structure managed by the volume layer instance and record the metadata in a volume layer log of the one or more NVLogs; and issuing a second callback from the volume layer instance to the persistence layer instance indicating that the write request is complete. 14. A non-transitory computer readable medium including program instructions for execution on one or more processors, the program instructions configured to: provide a storage input/output (I/O) stack having a plurality of layers in a node of a cluster coupled to storage arrays; configure a first portion of a non-volatile random access memory (NVRAM) of the node as a write-back cache to store write data associated with a write request received at the node from a client; configure a second portion of the NVRAM as one or more non-volatile logs (NVLogs) to record metadata associated with a block address included in the write request; pass the write data from the write-back cache over a first path of the storage I/O stack for storage on a first storage array; and pass the metadata from the one or more NVLogs over a second path of the storage I/O stack for storage on a second storage array, wherein the first path is different from the second path. 15. The non-transitory computer readable medium of claim 14 wherein the program instructions are further configured to: preserve the write data in the write-back cache until successfully stored on the first storage array; and preserve the metadata in the one or more NVLogs until successfully stored on the second storage array. 16. The non-transitory computer readable medium of claim 15 wherein the program instructions are further configured to: replay the preserved write data and the preserved metadata to recover failure of one of the first storage array and the second storage array. 17. The non-transitory computer readable medium of claim 15 wherein the program instructions are further configured to: implement an extent store layer of the storage I/O stack as a plurality of extent store layer instances, wherein the first path of the storage I/O stack includes a first extent store layer instance and the second path of the storage I/O stack includes a second extent store layer instance different from the first extent store layer instance. 18. The non-transitory computer r

Assignees

Inventors

Classifications

  • for peripheral storage systems, e.g. disk cache · CPC title

  • using clearing, invalidating or resetting means · CPC title

  • Cache consistency protocols · CPC title

  • Static RAM · CPC title

  • Caches characterised by their organisation or structure · 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 US9720822B2 cover?
In one embodiment, a node coupled to solid state drives (SSDs) of a plurality of storage arrays executes a storage input/output (I/O) stack having a plurality of layers. The node includes a non-volatile random access memory (NVRAM). A first portion of the NVRAM is configured as a write-back cache to store write data associated with a write request and a second portion of the NVRAM is configured…
Who is the assignee on this patent?
Netapp Inc
What technology area does this patent fall under?
Primary CPC classification G06F12/0866. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Aug 01 2017 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 1 related publication on this page (citations in our corpus or others sharing the same primary CPC).