IP Library Granted Patent US 11,550,481
Granted Patent B2
US 11,550,481 · App. 17/356,870 · Granted Jan 10, 2023

Efficiently writing data in a zoned drive storage system

Inventor: Ronald Karr (Palo Alto, CA)
Assignee: Pure Storage, Inc.
G06F3/0619G06F3/061G06F3/064G06F3/0608G06F3/0613G06F3/0655G06F3/0659G06F3/0683G06F3/0688
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,550,481
App. No.
17/356,870
Granted
Jan 10, 2023
Kind
B2
Abstract

A list of a available zones across respective SSD storage portions of a plurality of zoned storage devices of a storage system is maintained. Data is received from multiple sources, wherein the data is associated with processing a dataset, the dataset including multiple volumes and associated metadata. Shards of the data are determined such that each shard is capable of being written in parallel with the remaining shards. The shards are mapped to a subset of the available zones, respectively. The shards are written to the subset of the available zones in parallel.

Claims (43)

1. A storage system comprising:

a plurality of zoned storage devices, wherein each zoned storage device of the plurality of zoned storage devices comprises a solid-state drive (SSD) storage portion; and

a storage controller, operatively coupled to the plurality of zoned storage devices, the storage controller comprising a processing device, the processing device to:

maintain a list of a plurality of available zones across the respective SSD storage portions of the plurality of zoned storage devices;

receive data from a plurality of sources, wherein the data is associated with processing a dataset, the dataset comprising multiple volumes and associated metadata;

determine a plurality of shards of the data such that each shard of the plurality of shards is capable of being written in parallel with remaining shards of the plurality of shards;

map the plurality of shards to a subset of the plurality of available zones, respectively; and

write the plurality of shards to the subset of the plurality of available zones in parallel.

2. The storage system of claim 1 , wherein the processing device is further to:

write an erasure code that corresponds to the data to the subset of the plurality of available zones.

3. The storage system of claim 2 , wherein the erasure code comprises a first portion and a second portion, and wherein to write the erasure code the processing device further to:

write the first portion to a first zone of the subset of the plurality of available zones and the second portion to a second zone of the subset of the plurality of available zones in parallel with the first portion.

4. The storage system of claim 1 , wherein the available zones of the plurality of zoned storage devices are categorized as being in an open state.

5. The storage system of claim 1 , wherein the available zones of the plurality of zoned storage devices are categorized as being in an empty state.

6. The storage system of claim 1 , further comprising a non-volatile random-access memory (NVRAM) portion to journal the data, wherein the SSD portion and the NVRAM portion are separately addressable, and wherein the NVRAM portion is smaller than the SSD portion.

7. The storage system of claim 6 , wherein the NVRAM portion comprises a random access memory (RAM) device, a stored energy device, and a processing device.

8. A method comprising:

maintaining, by a processing device of a storage controller, a list of a plurality of available zones across respective solid-state drive (SSD) storage portions of a plurality of zoned storage devices of a storage system;

receiving data from a plurality of sources, wherein the data is associated with processing a dataset, the dataset comprising multiple volumes and associated metadata;

determining a plurality of shards of the data such that each shard of the plurality of shards is capable of being written in parallel with remaining shards of the plurality of shards;

mapping the plurality of shards to a subset of the plurality of available zones, respectively; and

writing the plurality of shards to the subset of the plurality of available zones in parallel.

9. The method of claim 8 , further comprising:

writing an erasure code that corresponds to the data to the subset of the plurality of available zones.

10. The method of claim 9 , wherein the erasure code comprises a first portion and a second portion, and wherein writing the erasure code further comprises:

writing the first portion to a first zone of the subset of the plurality of available zones and the second portion to a second zone of the subset of the plurality of available zones in parallel with the first portion.

11. The method of claim 8 , wherein the available zones of the plurality of zoned storage devices are categorized as being in an open state.

12. The method of claim 8 , wherein the available zones of the plurality of zoned storage devices are categorized as being in an empty state.

13. The method of claim 8 , wherein the plurality of zoned storage devices further comprise a non-volatile random-access memory (NVRAM) portion to journal the data, wherein the SSD portion and the NVRAM portion are separately addressable, and wherein the NVRAM portion is smaller than the SSD portion.

14. The method of claim 13 , wherein the NVRAM portion comprises a random access memory (RAM) device, a stored energy device, and a processing device.

15. A non-transitory computer-readable storage medium including instructions which, when executed by a processing device of a storage controller, cause the processing device to:

maintain, by the processing device of the storage controller, a list of a plurality of available zones across respective solid-state drive (SSD) storage portions of a plurality of zoned storage devices of a storage system;

receive data from a plurality of sources, wherein the data is associated with processing a dataset, the dataset comprising multiple volumes and associated metadata;

determine a plurality of shards of the data such that each shard of the plurality of shards is capable of being written in parallel with remaining shards of the plurality of shards;

map the plurality of shards to a subset of the plurality of available zones, respectively; and

write the plurality of shards to the subset of the plurality of available zones in parallel.

16. The non-transitory computer-readable storage medium of claim 15 , wherein the processing device is further to:

write an erasure code that corresponds to the data to the subset of the plurality of available zones.

17. The non-transitory computer-readable storage medium of claim 16 , wherein the erasure code comprises a first portion and a second portion, and wherein to write the erasure code the processing device further to:

write the first portion to a first zone of the subset of the plurality of available zones and the second portion to a second zone of the subset of the plurality of available zones in parallel with the first portion.

18. The non-transitory computer-readable storage medium of claim 15 , wherein the available zones of the plurality of zoned storage devices are categorized as being in an open state.

19. The non-transitory computer-readable storage medium of claim 15 , wherein the available zones of the plurality of zoned storage devices are categorized as being in an empty state.

20. The non-transitory computer-readable storage medium of claim 15 , further comprising a non-volatile random-access memory (NVRAM) portion to journal the data, wherein the SSD portion and the NVRAM portion are separately addressable, and wherein the NVRAM portion is smaller than the SSD portion.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 24, 2021
From: KARR, RONALD
To: PURE STORAGE, INC.
Reel/Frame 056654/0822 →
Continuity (4)
Continuation In Part 16566674 · Sep 10, 2019
Continuation 15665134 · Jul 31, 2017
Provisional Application 62436344 · Dec 19, 2016
Related Publication 20210326048A1 · Oct 21, 2021
Cited By (1)
US 12,493,425