IP Library › Granted Patent US 11,816,359
Granted Patent B2
US 11,816,359 · App. 17/650,936 · Granted Nov 14, 2023

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/067G06F3/0617G06F3/0631G06F3/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,816,359
App. No.
17/650,936
Granted
Nov 14, 2023
Kind
B2
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 (45)

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

assigning a first namespace to a second instance of a storage operating system for enabling read and write access to a first portion of a flash storage system by the second instance, wherein the first namespace is used by a first instance of the storage operating system for direct read-only access to the first portion via a direct read path;

assigning 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 that is owned by the first instance to the first portion;

in response to the request, storing, by the second instance, the data object at the first portion; and

updating, by the first instance using the second namespace metadata associated with the data object, the updated metadata stored at the second portion, the updated metadata indicating a storage location at the first portion where the data object is stored, after the transfer.

2. The method of claim 1 , further comprising:

utilizing, by the first instance, the updated metadata stored at the second portion to retrieve the data object from the first portion, in response to a read request for the data object received by the first instance.

3. The method of claim 1 , further comprising:

identifying, by the first instance, that the data object has become cold and in response, transmitting the request to the second instance.

4. The method of claim 1 , wherein updating the metadata of the data object at the second portion comprising:

storing a pointer at the second portion, the pointer pointing to the storage location of the data object at the first portion.

5. The method of claim 1 , 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.

6. The method of claim 5 , wherein the first type is a capacity tier with storage performance lower than the second type.

7. The method of claim 1 , wherein the first namespace is a zoned namespace for providing shared read-only access to the first instance to the first portion while providing both read and write access to the first portion by the second instance.

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:

assign a first namespace to a second instance of a storage operating system for enabling read and write access to a first portion of a flash storage system by the second instance, wherein the first namespace is used by a first instance of the storage operating system for direct read-only access to the first portion via a direct read path;

assign a second namespace to the first instance for exclusive read and write access within a second portion of the flash storage system;

generate, by the first instance, a request for the second instance to transfer a data object from the second portion that is owned by the first instance to the first portion;

in response to the request, store, by the second instance, the data object at the first portion; and

update, by the first instance using the second namespace metadata associated with the data object, the updated metadata stored at the second portion, the updated metadata indicating a storage location at the first portion where the data object is stored, after the transfer.

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

utilize, by the first instance, the updated metadata stored at the second portion to retrieve the data object from the first portion, in response to a read request for the data object received by the first instance.

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

identify, by the first instance, that the data object has become cold and in response, transmitting the request to the second instance.

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

store a pointer at the second portion, the pointer pointing to the storage location of the data object at the first portion.

12. 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.

13. The non-transitory, machine readable storage medium of claim 12 , wherein the first type is a capacity tier with storage performance lower than the second type.

14. The non-transitory, machine readable storage medium of claim 8 , the first namespace is a zoned namespace for providing shared read-only access to the first instance to the first portion while providing both read and write access to the first portion by the second instance.

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:

assign a first namespace to a second instance of a storage operating system for enabling read and write access to a first portion of a flash storage system by the second instance, wherein the first namespace is used by a first instance of the storage operating system for direct read-only access to the first portion via a direct read path;

assign a second namespace to the first instance for exclusive read and write access within a second portion of the flash storage system;

generate, by the first instance, a request for the second instance to transfer a data object from the second portion that is owned by the first instance to the first portion;

in response to the request, store, by the second instance, the data object at the first portion; and

update, by the first instance using the second namespace metadata associated with the data object, the updated metadata stored at the second portion, the updated metadata indicating a storage location at the first portion where the data object is stored, after the transfer.

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

utilize, by the first instance, the updated metadata stored at the second portion to retrieve the data object from the first portion, in response to a read request for the data object received by the first instance.

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

identify, by the first instance, that the data object has become cold and in response, transmitting the request to the second instance.

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

store a pointer at the second portion, the pointer pointing to the storage location of the data object at the first portion.

19. 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 first type is a capacity tier with storage performance lower than the second type.

20. The system of claim 15 , wherein the first namespace is a zoned namespace for providing shared read-only access to the first instance to the first portion while providing both read and write access to the first portion by the second instance.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 14, 2022
From: GOLE, ABHIJEET PRAKASH; EMAMI, TIMOTHY K.
To: NETAPP, INC.
Reel/Frame 059002/0676 →
Continuity (2)
Provisional Application 63290549 · Dec 16, 2021
Related Publication 20230195382A1 · Jun 22, 2023
Cited By (4)
US 12,204,403 US 12,242,337 US 12,346,561 US 12,405,857