Dense tree volume metadata update logging and checkpointing
US-8996797-B1 · Mar 31, 2015 · US
US9720601B2 · US · B2
| Field | Value |
|---|---|
| Publication number | US-9720601-B2 |
| Application number | US-201514619934-A |
| Country | US |
| Kind code | B2 |
| Filing date | Feb 11, 2015 |
| Priority date | Feb 11, 2015 |
| Publication date | Aug 1, 2017 |
| Grant date | Aug 1, 2017 |
A practical reading order for non-experts. Skip the full description unless you need deep technical detail.
What the patent document calls the invention.
A short plain-language summary of the technical disclosure.
Who owns or filed the patent and who is credited as inventor.
Filing, priority, publication, and grant dates set the timeline.
The legal scope of protection — read this for what is actually claimed.
Technology tags used to group this patent with similar filings.
Prior art links and similar publications in this corpus.
Official abstract text for this publication.
A technique for load balancing uses heuristic-based algorithms with respect to input/output (I/O) latency of workloads destined to storage devices, e.g., solid state drives (SSDs), of a storage array attached to a storage system. Illustratively, “front-end” requests received from a host result in a back-end workload as those requests are processed by a storage I/O stack of the storage system and stored on the storage array. Accordingly, the technique maintains a consistent latency for the host requests (front-end) to control latency for the back-end workload. The load balancing technique illustratively load balances fixed (back-end) workloads having similar I/O sizes and I/O patterns. Illustratively, the technique balances the workloads across a plurality of storage ports over one or more I/O paths to the SSDs. Access to the SSDs may then be distributed among the storage ports.
Opening claim text (preview).
What is claimed is: 1. A method comprising: receiving from a host, a plurality of write requests directed towards a logical unit (LUN), each write request having data, the write request processed at a storage system having a memory coupled to a processor via a memory bus, the processor coupled to at least one storage controller attached to at least one shelf of solid state drives (SSDs); generating an input/output (I/O) workload from the plurality of write requests, the I/O workload including a de-duplication operation; looking ahead into an I/O queue having the I/O workload to predict an expected load on each I/O channel of a plurality of I/O channels included in the at least one storage controller; and controlling a back-end latency of the I/O workload to the SSDs by load balancing the I/O workload among the plurality of I/O channels based on the expected work load on each I/O channel, thereby for the plurality of write requests maintaining a predictable front-end latency to the host. 2. The method of claim 1 wherein predicting an expected load on each I/O channel of a plurality of I/O channels further comprises: using a read/write workload ratio, wherein a first latency associated with a read operation and a second latency associated with a write operation are known, and wherein the I/O workload includes the read operation and the write operation. 3. The method of claim 1 , wherein each SSD is associated with a primary I/O path and a secondary I/O path to the at least one storage controller, and wherein the load balancing of the I/O workload includes sending data across the primary I/O path and the secondary I/O path for each SSD. 4. The method of claim 1 wherein the I/O workload includes an unexpected read operation in response to the de-duplication operation. 5. The method of claim 1 , wherein each SSD is associated with a primary I/O path and a secondary I/O path to the at least one storage controller, wherein the load balancing of the I/O workload includes sending data across the primary I/O path for each SSD, and wherein the secondary I/O path is a failover I/O path for each SSD. 6. The method of claim 1 further comprising: reading a temperature of each respective SSD; and in response to the temperature of the respective SSD being outside of an operating temperature range, issuing a warmup I/O request to the respective SSD. 7. The method of claim 1 wherein load balancing the I/O workload includes calculating a number of I/O operations per second of the workload for each I/O channel. 8. The method of claim 1 wherein load balancing the I/O workload includes calculating an I/O latency histogram of the I/O workload for a plurality of durations. 9. The method of claim 1 wherein load balancing the I/O workload includes examining a reads pending count and a writes pending count indicating a respective number of read and write requests associated with the I/O queue. 10. The method of claim 5 further comprising: monitoring stream-open durations for a first SSD and a second SSD, wherein the first and second SSDs are multi-streaming; and in response to the first SSD having stream-open durations greater than an average stream-open duration and the second SSD having stream-open durations less than the average stream-open duration, exchanging a first primary I/O path associated with the first SSD with a second primary I/O path associated with the second SSD. 11. A method comprising: receiving from a host, a plurality of write request directed towards a logical unit (LUN), each write request having data, the write request processed at a storage system having a memory coupled to a processor via a memory bus, the processor coupled to at least one storage controller attached to at least one shelf of multi-stream solid state drives (SSDs); generating an input/output (I/O) workload from the plurality of write requests, the workload including the data and metadata associated with the data; and controlling a back-end latency of the I/O workload to the SSDs by load balancing the I/O workload among a plurality of I/O channels included in the at least one storage controller such that the plurality of write requests maintain a predictable front-end latency to the host, wherein a first stream for each SSD is used for the data and a second stream different from the first stream for each SSD is used for the metadata. 12. A system comprising: a storage system having a memory connected to a processor via a bus; at least one storage shelf coupled to the processor via at least one storage controller, each storage shelf having a plurality of solid state drives (SSDs); a storage I/O stack executing on the processor of the storage system, the storage I/O stack configured to: receive from a host, a plurality of write requests directed towards a logical unit (LUN), each write request having data; generate an input/output (I/O) workload from the plurality of write requests, the I/O workload including a de-duplication operation; look ahead into an I/O queue having the I/O workload to predict an expected load on each I/O channel of a plurality of I/O channels included in the at least one storage controller; and control a back-end latency of the I/O workload to the SSDs by load balancing the I/O workload among the plurality of I/O channels based on the expected work load on each I/O channel, thereby for the plurality of write requests maintaining a predictable front-end latency to the host. 13. The system of claim 12 wherein the storage I/O stack configured to predict an expected load on each I/O channel of a plurality of I/O channels is further configured to: use a read/write workload ratio, wherein a first latency associated with a read operation and a second latency associated with a write operation are known, and wherein the I/O workload includes the read operation and the write operation. 14. The system of claim 12 , wherein each SSD is associated with a primary I/O path and a secondary I/O path to the at least one storage controller, and wherein the load balancing of the I/O workload includes sending data across the primary I/O path and the secondary I/O path for each SSD. 15. The system of claim 12 the I/O workload includes an unexpected read operation in response to the de-duplication operation. 16. The system of claim 12 , wherein each SSD is associated with a primary I/O path and a secondary I/O path to the at least one storage controller, and wherein the load balancing of the I/O workload includes sending data across the primary I/O path for each SSD, and wherein the secondary I/O path is a failover I/O path for each SSD. 17. The system of claim 12 wherein the storage I/O stack is further configured to: read a temperature of each respective SSD; and in response to the temperature of the respective SSD being outside of an operating temperature range, issue a warmup I/O request to the respective SSD. 18. The system of claim 12 wherein load balancing the I/O workload includes calculating a number of I/O operations per second of the workload for each I/O channel. 19. The system of claim 12 wherein load balancing the I/O workload includes calculating a I/O latency histogram of the I/O workload for a plurality of durations. 20. The system of claim 12 wherein the load balancing the I/O workload includes examining a reads pending counter and a writes pending counter indicating a respective number of read and write requests associated with the I/O queue.
Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS] · CPC title
in relation to response time · CPC title
Command handling arrangements, e.g. command buffers, queues, command scheduling · CPC title
Monitoring storage devices or systems · CPC title
Non-volatile semiconductor memory arrays · CPC title
Related publications grouped by family.
Answers are generated from the same data shown on this page.