Managing snapshots in cache-based storage systems
US-8943282-B1 · Jan 27, 2015 · US
US9720822B2 · US · B2
| Field | Value |
|---|---|
| Publication number | US-9720822-B2 |
| Application number | US-201514856268-A |
| Country | US |
| Kind code | B2 |
| Filing date | Sep 16, 2015 |
| Priority date | Jan 8, 2014 |
| Publication date | Aug 1, 2017 |
| Grant date | Aug 1, 2017 |
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 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.
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
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
Related publications grouped by family.
Answers are generated from the same data shown on this page.