US2012059976A1PendingUtilityA1

Storage array controller for solid-state storage devices

47
Assignee: ROSENBAND DANIEL LPriority: Sep 7, 2010Filed: Sep 7, 2010Published: Mar 8, 2012
Est. expirySep 7, 2030(~4.2 yrs left)· nominal 20-yr term from priority
G06F 3/061G06F 3/0659G06F 2212/7205G06F 3/0688G06F 12/0253G06F 12/0246
47
PatentIndex Score
0
Cited by
0
References
0
Claims

Abstract

A storage array controller provides a method and system for autonomously issuing trim commands to one or more solid-state storage devices in a storage array. The storage array controller is separate from any operating system running on a host system and separate from any controller in the solid-state storage device(s). The trim commands allow the solid-state storage device to operate more efficiently.

Claims

exact text as granted — not AI-modified
What we claim is: 
     
         1 . A method of managing a storage array comprising:
 a storage array controller that is operable to receive one or more host commands from an operating system;   wherein the one or more host commands are directed to one or more solid-state storage devices in the storage array;   wherein the storage array controller is operable to generate one or more disk trim commands in response to the one or more host commands;   wherein the generating one or more disk trim commands is performed in an autonomous manner; and   wherein the one or more disk trim commands are directed to at least one of the one or more solid-state storage devices.   
     
     
         2 . The method of  claim 1  wherein the operating system is not operable for generating the one or more disk trim commands. 
     
     
         3 . The method of  claim 1  wherein the generating one or more disk trim commands further comprises merging one or more host trim commands into the one or more disk trim commands. 
     
     
         4 . The method of  claim 1  wherein the receiving host commands further comprises: updating a map from a plurality of host block addresses to a plurality of array block addresses; and placing one or more old array block addresses in the one or more disk trim commands. 
     
     
         5 . The method of  claim 1  wherein the managing a storage array is performed in software. 
     
     
         6 . The method of  claim 1  wherein the managing a storage array is performed in software in a hypervisor. 
     
     
         7 . The method of  claim 1  wherein the managing a storage array further comprises:
 maintaining one or more maps and one or more freelists; 
 performing garbage collection on at least one of the one or more maps and one or more freelists as a result of the receiving of the one or more host commands; 
 generating one or more superblocks; and 
 placing one or more superblock addresses of the one or more superblocks in the one or more disk trim commands. 
 
     
     
         8 . A storage array controller operable to be coupled to a host system and a storage array; wherein the storage array includes a plurality of storage devices; wherein the plurality of storage devices includes at least one solid-state storage device; wherein the storage array controller is operable to receive host commands from the host system; and wherein the storage array controller is operable to autonomously issue a disk trim command to the at least one solid-state storage device. 
     
     
         9 . The storage array controller of  claim 8  wherein the storage array controller maintains a map and a freelist; wherein the map converts host block addresses to array block addresses; and wherein the freelist includes a plurality of free array block addresses. 
     
     
         10 . The storage array controller of  claim 9  wherein the storage array controller is operable to place one or more of the plurality of free array block addresses in the disk trim command. 
     
     
         11 . The storage array controller of  claim 9  wherein the storage array controller issues a disk trim command to array block addresses that are not in the map. 
     
     
         12 . The storage array controller of  claim 9  wherein the storage array controller creates one or more old array block addresses; and wherein the storage array controller issues disk trim commands to the one or more old array block addresses. 
     
     
         13 . The storage array controller of  claim 9  wherein the storage array controller performs garbage collection. 
     
     
         14 . The storage array controller of  claim 9  wherein the storage array controller collects write commands into one or more superblocks; and wherein the storage array controller writes to one or more of the at least one solid-state disks using the one or more superblocks. 
     
     
         15 . The storage array controller of  claim 8  wherein the disk trim command is generated in a device driver. 
     
     
         16 . The storage array controller of  claim 15  wherein the device driver is part of a host system. 
     
     
         17 . The storage array controller of  claim 15  wherein the device driver is part of a hypervisor. 
     
     
         18 . The storage array controller of  claim 8  wherein the storage capacity presented to the host system (C1) is less than the storage array capacity (C2); wherein the storage array capacity (C2) minus the storage capacity presented to the host system (C1) is a portion of storage capacity (C2−C1); and wherein the storage array controller autonomously issues a trim command to the portion of storage capacity (C2−C1). 
     
     
         19 . The storage array controller of  claim 8  wherein the storage array controller issues a disk trim command during an operation selected from the following: storage array initialization, storage array creation, storage array resizing, LUN creation, LUN removal, LUN resizing, LUN deletion. 
     
     
         20 . A computer system for storing and providing data; the computer system operable to be coupled to a storage array controller; the storage array controller operable to be coupled to a storage array; the storage array including a plurality of storage devices; the plurality of storage devices including at least one solid-state storage devices; and wherein the storage array controller is operable to autonomously issue a disk trim command to one or more of the at least one solid-state storage devices.

Cited by (0)

No later patents cite this yet.

References (0)

No backward citations on record.