IP Library Granted Patent US 8,954,658
Granted Patent B1
US 8,954,658 · App. 14/090,910 · Granted Feb 10, 2015

Method of LUN management in a solid state disk array

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 8,954,658
App. No.
14/090,910
Granted
Feb 10, 2015
Kind
B1
Abstract

A method of managing logical unit numbers (LUNs) in a storage system includes identifying one or more LUN logical block address (LBA)-groups being affected. The one or more LUN LBA-groups defining a LUN. The method further determining the existence of an association of each of the affected LUN LBA-groups to a portion of a storage pool and maintaining a mapping table to track the association of the LUN LBA-groups to the storage pool.

Claims (32)

1. A method of managing logical unit numbers (LUNs) in a storage system, the storage system including a storage pool made of solid state storages (SSDs) comprising:

receiving a write command with an associated starting logical block address (LBA), a number of sectors, and a LUN and associated data to be stored in the storage pool, from a host;

maintaining a mapping table, by a storage processor, into which is saved and tracked the relationship between portions of the storage pool and LUN LBA-groups, portions of the storage pool defined by storage pool LBA-groups, one of a plurality of pointers being used to identify a starting location of the mapping table in a memory located in the storage processor and externally to the SSDs, the mapping table being indexed by the LUN LBA-groups and each entry of the mapping table identifying the storage pool LBA-group that is assigned to the corresponding LUN LBA-group used to index the entry;

identifying one or more LUN LBA-groups being affected;

using the relationships saved in the mapping table, storing the host data in various portions of the storage pool, each of the various portions identified by storage pool LBA-groups identifying non-continuous portions in the storage pool that appear to the host to be continuous; and

maintaining table pointers for each existing LUN, a table pointer identifying a range of addresses in the mapping table associated with a distinct and existing LUN.

2. The method of managing LUNs, as recited in claim 1 , wherein the storage pool LBA-groups are the same size as the LUN LBA-groups.

3. The method of managing LUNs, as recited in claim 1 , further including allocating a portion of the storage pool to the affected LUN LBA-groups.

4. The method of managing LUNs, as recited in claim 3 , further including identifying storage pool LBA-groups from a storage pool free list.

5. The method of managing LUNs, as recited in claim 4 , wherein upon writing to a previously-assigned LUN, forming a relationship between the previously-assigned LUN and a different storage pool LBA-group.

6. The method of managing LUNs, as recited in claim 3 , further including tracking the relationship between the storage pool and the LUNs.

7. The method of managing LUNs, as recited in claim 1 , further including resizing the storage pool LBA-groups by adding storage pool LBA-groups to the mapping table.

8. The method of managing LUNs, as recited in claim 7 wherein the resizing includes removing one or more storage pool LBA-groups from a storage pool free list.

9. The method of managing LUNs, as recited in claim 8 , wherein when the storage pool LBA-groups are being removed, adding the removed storage pool LBA-groups to the storage pool free list.

10. The method of managing LUNs, as recited in claim 9 , wherein upon removing a LUN adding the allocated portions of the storage pool to the storage pool free list.

11. The method of managing LUNs, as recited in claim 9 , further including upon removing a LUN, removing the relationship from the mapping tables.

12. The method of managing LUNs, as recited in claim 1 , further including creating a LUN and generating a mapping table when the LUN is created.

13. The method of managing LUNs, as recited in claim 1 , further including removing a mapping table when a LUN is deleted.

14. The method of managing LUNs, as recited in claim 1 , wherein the storage pool comprises one or more solid storage disks (SSDs) and further including maintaining a SSD free list comprising of free SSD LBA-groups for each of the one or more SSDs.

15. The method of managing LUNs, as recited in claim 1 , further including allocating portions of a storage pool to a LUN only when the LUNs are being accessed for the first time.

16. A method of managing logical unit numbers (LUNs) in a storage system comprising:

during a write operation, initiated by a host to write data to a plurality of solid state storages (SSDs), receiving one or more LUNs, a LUN having a size determinate by the host;

allocating portions of a storage pool to a received LUN, the allocating defining a relationship between the storage pool and the received one or more LUNs;

maintaining the relationship in a mapping table, by a storage processor, into which is saved

and tracked the relationship between portions of the storage pool and LUN LBA-groups, portions of the storage pool defined by storage pool LBA-groups, one of a plurality of pointers being used to identify a starting location of the mapping table in a memory located in the storage processor and externally to the SSDs, the mapping table being indexed by the LUN LBA-groups and each entry of the mapping table identifying the storage pool LBA-group that is assigned to the corresponding LUN LBA-group used to index the entry; identifying one or more LUN LBA-groups being affected;

using the relationships saved in the mapping table, storing the host data in various portions of the storage pool, each of the various portions identified by storage pool LBA-groups identifying non-continuous portions in the storage pool that appear to the host to be continuous; and

maintaining table pointers for each existing LUN, a table pointer identifying a range of addresses in the mapping table associated with a distinct and existing LUN.

17. The method of managing LUNs, as recited in claim 1 , further including a resizing step including using the pointers in addition to using the mapping tables to resize the storage pool LBA-groups.

18. The method of managing LUNs, as recited in claim 1 , wherein the size of the mapping table changing based upon the LUNs and the size of the number of table pointers remaining the same.

19. The method of managing LUNs, as recited in claim 1 , wherein resizing the storage pool LBA-groups including adding, removing or migrating the LUNs.

20. The method of claim 19 , further including only creating a mapping table when a LUN is being added.

21. The method of claim 19 , further including resizing at a granularity.

Assignments (7)
SECURITY INTEREST Recorded Mar 18, 2022
From: AVALANCHE TECHNOLOGY, INC.
To: STRUCTURED ALPHA LP
Reel/Frame 059436/0203 →
SECURITY INTEREST Recorded Apr 19, 2021
From: AVALANCHE TECHNOLOGY, INC.
To: STRUCTURED ALPHA LP
Reel/Frame 057213/0050 →
SECURITY INTEREST Recorded Apr 19, 2021
From: AVALANCHE TECHNOLOGY, INC.
To: STRUCTURED ALPHA LP
Reel/Frame 057217/0674 →
SECURITY INTEREST Recorded Jul 8, 2020
From: AVALANCHE TECHNOLOGY, INC.
To: SILICON VALLEY BANK
Reel/Frame 053156/0223 →
SECURITY INTEREST Recorded Feb 13, 2020
From: AVALANCHE TECHNOLOGY, INC.
To: STRUCTURED ALPHA LP
Reel/Frame 051930/0396 →
SECURITY INTEREST Recorded Apr 18, 2017
From: AVALANCHE TECHNOLOGY, INC.
To: STRUCTURED ALPHA LP
Reel/Frame 042273/0813 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 26, 2013
From: ASNAASHARI, MEHDI; NEMAZIE, SIAMACK; SHAH, RUCHIRKUMAR D.
To: AVALANCHE TECHNOLOGY, INC.
Reel/Frame 031681/0546 →