IP Library › Granted Patent US 12,135,905
Granted Patent B2
US 12,135,905 · App. 18/474,988 · Granted Nov 5, 2024

Scalable solid-state storage system and methods thereof

Inventors: Abhijeet Prakash Gole (Cupertino, CA); Timothy K. Emami (San Jose, CA)
Assignee: NETAPP, INC.
G06F3/0659G06F3/0604G06F3/0617G06F3/0631G06F3/067G06F3/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 12,135,905
App. No.
18/474,988
Filed
Sep 26, 2023
Granted
Nov 5, 2024
Kind
B2
Examiner
LANE, JOHN A
Art Unit
2139
USPC
711/154
Abstract

Methods and systems for solid state drives are provided, including assigning a first namespace to a first instance of a storage operating system and a second instance of the storage operating system for enabling read access to a first portion of a flash storage system by the first instance, and read and write access to the second instance; allocating a second namespace to the first instance for exclusive read and write access within a second portion of the flash storage system; generating, by the first instance, a request for the second instance to transfer a data object from the second portion owned by the first instance to the first portion; storing, by the second instance, the data object at the first portion; and updating metadata of the data object at the second portion, the metadata indicating a storage location at the second portion where the data object is stored.

Claims (54)

1. A method executed by one or more processors, comprising:

logically configuring a storage system into a first portion, a second portion and a third portion, each portion having a different storage device type;

assigning a first exclusive namespace to a first instance of a storage operating system, a second exclusive namespace to a second instance of the storage operating system and a shared namespace to the first instance and the second instance;

utilizing the first exclusive namespace by the first instance to read from and write to the first portion and the second portion;

utilizing the second exclusive namespace by the second instance to read from and write to the first portion and the second portion; and

utilizing the shared namespace by the first instance and the second instance to directly read from the third portion.

2. The method of claim 1 , further comprising:

storing, by the first instance, in the second portion, metadata associated with data stored at the third portion; and

utilizing, by the first instance, the metadata to read data from the third portion.

3. The method of claim 1 , further comprising:

storing, by the first instance, in the first portion, metadata associated with data stored at the third portion; and

utilizing, by the first instance, the metadata to read data from the third portion.

4. The method of claim 2 , wherein storing, by the first instance, in the second portion, metadata associated with data stored at the third portion, comprising:

storing a pointer at the second portion, the pointer pointing to a storage location of data stored at the third portion.

5. The method of claim 3 , wherein storing, by the first instance, in the first portion, metadata associated with data stored at the third portion, comprising:

storing a pointer at the first portion, the pointer pointing to a storage location of data stored at the third portion.

6. The method of claim 5 , wherein the first portion comprises of a first type of solid-state drive and the second portion comprises a second type of solid-state drive, the second type is a capacity storage tier with storage performance lower than the first type.

7. The method of claim 1 , wherein the second portion comprises a non-volatile, random-access memory (NVRAM).

8. A non-transitory, machine-readable storage medium having stored thereon instructions comprising machine executable code, which when executed by a machine, causes the machine to:

logically configure a storage system into a first portion, a second portion and a third portion, each portion having a different storage device type;

assign a first exclusive namespace to a first instance of a storage operating system, a second exclusive namespace to a second instance of the storage operating system and a shared namespace to the first instance and the second instance;

utilize the first exclusive namespace by the first instance to read from and write to the first portion and the second portion;

utilize the second exclusive namespace by the second instance to read from and write to the first portion and the second portion; and

utilize the shared namespace by the first instance and the second instance to directly read from the third portion.

9. The non-transitory, machine-readable storage medium of claim 8 , wherein the machine executable code further causes the machine to:

store, by the first instance, in the second portion, metadata associated with data stored at the third portion; and

utilize, by the first instance, the metadata to read data from the third portion.

10. The non-transitory, machine-readable storage medium of claim 8 , wherein the machine executable code further causes the machine to:

store, by the first instance, in the first portion, metadata associated with data stored at the third portion; and

utilize, by the first instance, the metadata to read data from the third portion.

11. The non-transitory, machine-readable storage medium of claim 9 , wherein the machine executable code further causes the machine to:

store a pointer at the second portion, the pointer pointing to a storage location of data stored at the third portion.

12. The non-transitory, machine-readable storage medium of claim 10 , wherein the machine executable code further causes the machine to:

store a pointer at the first portion, the pointer pointing to a storage location of data stored at the third portion.

13. The non-transitory, machine-readable storage medium of claim 8 , wherein the first portion comprises of a first type of solid-state drive and the second portion comprises a second type of solid-state drive, the second type is a capacity storage tier with storage performance lower than the first type.

14. The non-transitory, machine readable storage medium of claim 8 , wherein the second portion comprises a non-volatile, random access memory (NVRAM).

15. A system, comprising:

a memory containing machine readable medium comprising machine executable code having stored thereon instructions, and a processor coupled to the memory to execute the machine executable code to:

logically configure a storage system into a first portion, a second portion and a third portion, each portion having a different storage device type;

assign a first exclusive namespace to a first instance of a storage operating system, a second exclusive namespace to a second instance of the storage operating system and a shared namespace to the first instance and the second instance;

utilize the first exclusive namespace by the first instance to read from and write to the first portion and the second portion;

utilize the second exclusive namespace by the second instance to read from and write to the first portion and the second portion; and

utilize the shared namespace by the first instance and the second instance to directly read from the third portion.

16. The system of claim 15 , wherein the machine executable code further causes to:

store, by the first instance, in the second portion, metadata associated with data stored at the third portion; and

utilize, by the first instance, the metadata to read data from the third portion.

17. The system of claim 15 , wherein the machine executable code further causes to:

store, by the first instance, in the first portion, metadata associated with data stored at the third portion; and

utilize, by the first instance, the metadata to read data from the third portion.

18. The system of claim 16 , wherein the machine executable code further causes to:

store a pointer at the second portion, the pointer pointing to a storage location of data stored at the third portion.

19. The system of claim 17 , wherein the machine executable code further causes to:

store a pointer at the first portion, the pointer pointing to a storage location of data stored at the third portion.

20. The system of claim 15 , wherein the first portion comprises of a first type of solid-state drive and the second portion comprises a second type of solid-state drive, the second type is a capacity storage tier with storage performance lower than the first type wherein the second portion comprises a non-volatile, random access memory (NVRAM).

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 26, 2023
From: GOLE, ABHIJEET PRAKASH; EMAMI, TIMOTHY K.
To: NETAPP, INC.
Reel/Frame 065036/0203 →
Continuity (3)
Continuation 17650936 · Feb 14, 2022
Provisional Application 63290549 · Dec 16, 2021
Related Publication 20240028262A1 · Jan 25, 2024