US2012059976A1PendingUtilityA1
Storage array controller for solid-state storage devices
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-modifiedWhat 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.