IP Library › Granted Patent US 12,046,292
Granted Patent B2
US 12,046,292 · App. 17/318,534 · Granted Jul 23, 2024

Erase blocks having differing sizes

Inventors: Radek Aster (Campbell, CA); Andrew R. Bernat (Mountain View, CA); Boris Feigin (San Francisco, CA); Ronald Karr (Palo Alto, CA); Robert Lee (San Carlos, CA)
Assignee: PURE STORAGE, INC.
G11C16/16G06F3/064G06F3/065G06F3/067G06F3/0689G06F11/1076G06F12/0246G06F12/0253G06F16/1752
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 12,046,292
App. No.
17/318,534
Granted
Jul 23, 2024
Kind
B2
Abstract

A method of using boot-time metadata in a storage system is provided. The method includes writing a fragmentation stride to a solid-state storage device of the storage system, the fragmentation stride defining a granularity on which fragmentation of erase blocks of the solid-state storage device occurs. The method includes allocating portions of erase blocks for at least one process in the storage system, in accordance with the fragmentation stride and writing boot up metadata at offsets that are based on the fragmentation stride, in the solid-state storage device.

Claims (39)

1. A method, comprising:

forming a plurality of data segments through an erasure coding process; and

writing the plurality of data segments across a plurality of erase blocks of storage memory, with at least one of the plurality of erase blocks storing portions of two or more of the plurality of data segments, wherein at least two of the plurality of erase blocks have differing erase block sizes, and wherein the writing is based on a granularity of fragmentation of the plurality of erase blocks.

2. The method of claim 1 , wherein the plurality of data segments includes at least two data segments from differing RAID groups.

3. The method of claim 1 , wherein the plurality of data segments includes at least two data segments having differing data chunk sizes.

4. The method of claim 1 , further comprising:

relocating, in the storage memory, one of a plurality of data chunks that has live data, wherein at least two of the plurality of data chunks have differing data chunk sizes to reclaim at least one of the plurality of erase blocks, responsive to the at least one of the plurality of erase blocks being empty of live data and having obsoleted data, via garbage collection.

5. The method of claim 1 , wherein the writing the plurality of data segments comprises:

writing data from a first one of the plurality of data segments starting at one end of one of the plurality of erase blocks and writing data from a second one of the plurality of data segments starting where the writing the data from the first one of the plurality of data segments finishes and proceeding into a remainder of memory space in the one of the plurality of erase blocks.

6. The method of claim 1 , further comprising:

obsoleting a first data chunk in one of the plurality of erase blocks, wherein a second data chunk from the plurality of data segments remains live in the one of the plurality of erase blocks.

7. The method of claim 1 , wherein the writing the plurality of data segments across the plurality of erase blocks comprises:

filling two or more of the erase blocks having differing erase block sizes, with data chunks from the plurality of data segments.

8. A tangible, non-transitory, computer-readable media having instructions thereupon which, when executed by a processor, cause the processor to perform a method comprising:

forming a plurality of data segments through an erasure coding process; and

writing the plurality of data segments across a plurality of erase blocks of storage memory, with at least one of the plurality of erase blocks storing portions of two or more of the plurality of data segments, wherein at least two of the plurality of erase blocks have differing erase block sizes, and wherein the writing is based on a granularity of fragmentation of the plurality of erase blocks.

9. The computer-readable media of claim 8 , wherein the plurality of data segments includes at least two data segments from differing RAID groups.

10. The computer-readable media of claim 8 , wherein the plurality of data segments includes at least two data segments having differing data chunk sizes.

11. The computer-readable media of claim 8 , wherein the method further comprises:

relocating, in the storage memory, one of a plurality of data chunks that has live data, wherein at least two of the plurality of data chunks have differing data chunk sizes to reclaim at least one of the plurality of erase blocks, responsive to the at least one of the plurality of erase blocks being empty of live data and having obsoleted data, via garbage collection.

12. The computer-readable media of claim 8 , wherein the writing the plurality of data segments comprises:

writing data from a first one of the plurality of data segments starting at one end of one of the plurality of erase blocks and writing data from a second one of the plurality of data segments starting where the writing the data from the first one of the plurality of data segments finishes and proceeding into a remainder of memory space in the one of the plurality of erase blocks.

13. The computer-readable media of claim 8 , wherein the writing the plurality of data segments across the plurality of erase blocks comprises:

filling two or more of the erase blocks having differing erase block sizes, with data chunks from the plurality of data segments.

14. A storage system, comprising:

solid-state storage memory having a plurality of erase blocks with heterogeneous erase block sizes; and

one or more processors, configurable to:

form a plurality of data segments through an erasure coding process; and

write the plurality of data segments across a plurality of erase blocks of storage memory, with at least one of the plurality of erase blocks storing portions of two or more of the plurality of data segments, wherein at least two of the plurality of erase blocks have differing erase block sizes, wherein the writing is based on a granularity of fragmentation of the plurality of erase blocks.

15. The storage system of claim 14 , wherein the plurality of data segments comprises a first data segment from a first RAID group and a second data segment from a second RAID group.

16. The storage system of claim 14 , wherein the plurality of data segments comprises a first data segment having a first data chunk size and a second data segment having a second, differing data chunk size.

17. The storage system of claim 14 , wherein, to perform garbage collection, the one or more processors are further configurable to:

relocate, in the storage memory, one of a plurality of data chunks that has live data, wherein at least two of the plurality of data chunks have differing data chunk sizes to reclaim at least one of the plurality of erase blocks, responsive to the at least one of the plurality of erase blocks being empty of live data and having obsoleted data, via garbage collection.

18. The storage system of claim 14 , wherein the one or more processors are further configurable to:

write data from a first one of the plurality of data segments starting at one end of one of the plurality of erase blocks and write data from a second one of the plurality of data segments starting where the writing the data from the first one of the plurality of data segments finishes and proceeding into a remainder of memory space in the one of the plurality of erase blocks.

19. The storage system of claim 14 , wherein the one or more processors are further configurable to:

obsolete a first data chunk in one of the plurality of erase blocks, wherein a second data chunk from the plurality of data segments remains live in the one of the plurality of erase blocks.

20. The storage system of claim 14 , wherein the one or more processors are further configurable to:

fill two or more of the erase blocks having differing erase block sizes, with data chunks from the plurality of data segments.

Continuity (3)
Continuation 15799938 · Oct 31, 2017
Continuation 15799979 · Oct 31, 2017
Related Publication 20210264987A1 · Aug 26, 2021