Dynamic allocation of segments in a flash storage system
First Claim
Patent Images
1. A method comprising:
- adjusting, by a host controller of a storage system during run-time, storage bandwidth for a storage system process responsive to an input output (I/O) write request to write data to the storage system that comprises a plurality of solid-state storage drives by;
calculating an allocation share for the storage system process requesting to write the data using a target ratio of open segments assigned to the storage system process, a target ratio of open segments assigned to other storage system processes having open segments, and a target number of open segments for the storage system; and
responsive to determining an open segment usage by the storage system process is under the allocation share for the storage system process, opening a new segment for the storage system process.
1 Assignment
0 Petitions
Accused Products
Abstract
Apparatus and methods of operating solid-state drives in a storage system are described. A method includes adjusting, by a host controller of a storage system during run-time, storage bandwidth for a storage system process responsive to an input output (I/O) write request to write data to the storage system that includes multiple solid-state storage drives by determining an allocation share for the storage system process requesting to write the data, and responsive to determining an open segment usage by the storage system process is under the allocation share for the storage system process, opening a new segment for the storage system process.
-
Citations
17 Claims
-
1. A method comprising:
adjusting, by a host controller of a storage system during run-time, storage bandwidth for a storage system process responsive to an input output (I/O) write request to write data to the storage system that comprises a plurality of solid-state storage drives by; calculating an allocation share for the storage system process requesting to write the data using a target ratio of open segments assigned to the storage system process, a target ratio of open segments assigned to other storage system processes having open segments, and a target number of open segments for the storage system; and responsive to determining an open segment usage by the storage system process is under the allocation share for the storage system process, opening a new segment for the storage system process. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
8. A method comprising:
adjusting, by a host controller of a storage system during run-time, storage bandwidth for a storage system process responsive to an input output (I/O) write request to write data to the storage system that comprises a plurality of solid-state storage drives by; determining an allocation share for the storage system process requesting to write the data; responsive to determining an open segment usage by the storage system process is under the allocation share for the storage system process, opening a new segment for the storage system process; determining whether the open segment usage by the storage system process is under the allocation share for the storage system process; responsive to determining the open segment usage by the storage system process is not under the allocation share for the storage system process; determining other allocation shares for other storage system process having open segments; determining open segment usage for the other storage system processes; identifying a pool of open segments unused by the other storage system processes by determining a difference between the other allocation shares and open segment usage for the other storage system processes; and distributing a new segment from the pool of segments to the storage system process.
-
9. A storage system comprising:
-
a memory; and a host controller, operatively coupled to the memory, to; adjust, during run-time, storage bandwidth for a storage system process responsive to an input output (I/O) write request to write data to the storage system that comprises a plurality of solid-state storage drives, the host controller to; determine an allocation share for the storage system process requesting to write the data; responsive to determining an open segment usage by the storage system process is under the allocation share for the storage system process, open a new segment for the storage system process determine whether the open segment usage by the storage system process is under the allocation share for the storage system process; responsive to determining the open segment usage by the storage system process is not under the allocation share for the storage system process, the host controller to; determine other allocation shares for other storage system process having open segments; determine open segment usage for the other storage system processes; identify a pool of open segments unused by the other storage system processes by determining a difference between the other allocation shares and open segment usage for the other storage system processes; and distribute a new segment from the pool of segments to the storage system process. - View Dependent Claims (10, 11, 12, 13)
-
-
14. A non-transitory computer-readable medium that, when executed by a processing device, causes the processing device to:
adjust, by the processing device during run-time, storage bandwidth for a storage system process responsive to an input output (I/O) write request to write data to the storage system that comprises a plurality of solid-state storage drives, the processing device to; determine an allocation share for the storage system process requesting to write the data; responsive to determining an open segment usage by the storage system process is under the allocation share for the storage system process, open a new segment for the storage system process determine whether the open segment usage by the storage system process is under the allocation share for the storage system process; responsive to determining the open segment usage by the storage system process is not under the allocation share for the storage system process, the processing device to; determine other allocation shares for other storage system process having open segments; determine open segment usage for the other storage system processes; identify a pool of open segments unused by the other storage system processes by determining a difference between the other allocation shares and open segment usage for the other storage system processes; and distribute a new segment from the pool of segments to the storage system process. - View Dependent Claims (15, 16, 17)
Specification