WO2015085313A1 - Système et procédé de répartition dynamique de charge entre dispositifs à supports de stockage sur la base d'un niveau médian de performance - Google Patents

Système et procédé de répartition dynamique de charge entre dispositifs à supports de stockage sur la base d'un niveau médian de performance Download PDF

Info

Publication number
WO2015085313A1
WO2015085313A1 PCT/US2014/069143 US2014069143W WO2015085313A1 WO 2015085313 A1 WO2015085313 A1 WO 2015085313A1 US 2014069143 W US2014069143 W US 2014069143W WO 2015085313 A1 WO2015085313 A1 WO 2015085313A1
Authority
WO
WIPO (PCT)
Prior art keywords
storage media
storage
commands
media device
load
Prior art date
Application number
PCT/US2014/069143
Other languages
English (en)
Inventor
Jesse D BEESON
Jesse B YATES
Original Assignee
Concurrent Ventures, LLC
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from US14/099,723 external-priority patent/US8954614B1/en
Priority claimed from US14/099,820 external-priority patent/US20150160891A1/en
Priority claimed from US14/099,740 external-priority patent/US8954615B1/en
Priority claimed from US14/099,752 external-priority patent/US8984172B1/en
Priority claimed from US14/099,845 external-priority patent/US10048895B2/en
Priority claimed from US14/099,713 external-priority patent/US9274722B2/en
Priority claimed from US14/099,767 external-priority patent/US8954616B1/en
Priority claimed from US14/099,848 external-priority patent/US9436404B2/en
Priority claimed from US14/099,811 external-priority patent/US8943243B1/en
Priority claimed from US14/099,807 external-priority patent/US8954617B1/en
Priority claimed from US14/099,846 external-priority patent/US10235096B2/en
Application filed by Concurrent Ventures, LLC filed Critical Concurrent Ventures, LLC
Priority to CN201480074951.1A priority Critical patent/CN105981351B/zh
Priority to EP14867506.9A priority patent/EP3078184A4/fr
Publication of WO2015085313A1 publication Critical patent/WO2015085313A1/fr

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1097Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0685Hybrid storage combining heterogeneous device types, e.g. hierarchical storage, hybrid arrays
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing
    • H04L67/1008Server selection for load balancing based on parameters of servers, e.g. available memory or workload
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1029Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers using data related to the state of servers by a load balancer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services

Definitions

  • the present invention relates generally to the field of storage. More specifically, the present invention is related to system and method for dynamically load balancing storage media devices based on a mid-range performance level.
  • NCQ Native Command Queuing
  • NCQ Native Command Queuing
  • storage systems having such NCQ supported drives do not view the storage system holistically as existing techniques, such as Native Command Queuing (NCQ) or storage media device head movement time minimization, look at a single host - slave in a vacuum (i.e., a single storage media device).
  • NCQ Native Command Queuing
  • FIG. 1 What is absent in the prior art is a system and method that brings load balancing methodologies typically applied at a macro level (to networks outside of the storage systems or compute systems) down to the micro level within the storage system itself and applied across the storage media devices within that system using criteria specific to storage media devices.
  • Embodiments of the present invention are an improvement over prior art systems and methods.
  • the present invention provides a storage system comprising: a plurality of storage media devices, each storage media device comprising one or more addressable storage regions, each region assigned a different weight based on at least a fast access rate, a mid-range access rate or a slow access rate, respectively; a storage controller controlling the plurality of storage media devices, the storage controller: receives one or more commands from a queue representing a load; identifies a set of weighted storage regions having the mid-range access rate to target a mid-range performance level that is enough to service the load; and distributes the load based on the mid-range performance level by utilizing only the set of weighted storage regions having the mid-range access rate thereby targeting the mid-range performance level that is enough to service the load.
  • the present invention provides a storage system comprising: a plurality of storage media devices, each storage media device comprising one or more addressable storage regions, each region assigned a different weight based on at least a fast access rate or a slow access rate, respectively; a storage controller controlling the plurality of storage media devices, the storage controller: receives one or more commands from a queue representing a load; derives a mid-range access rate that is a function of the fast access rate and the slow access rate, where the mid-range access rate is achieved by alternating the fast access rate and the slow access rate; and distributes the load based on the mid-range performance level that is enough to service the load.
  • the present invention provides a method as implemented in a storage system comprising a plurality of storage media devices, each storage media device comprising one or more addressable storage regions, each region assigned a different weight based on at least a fast access rate, a mid-range access rate or a slow access rate, respectively, a storage controller controlling the plurality of storage media devices, the method comprising: receiving one or more commands from a queue representing a load; identifying a set of weighted storage regions having the mid-range access rate to target a mid-range performance level that is enough to service the load; and distributing the load based on the mid-range performance level by utilizing only the set of weighted storage regions having the mid-range access rate thereby targeting the mid-range performance level that is enough to service the load.
  • the present invention provides a method as implemented in storage system comprising: a plurality of storage media devices, each storage media device comprising one or more addressable storage regions, each region assigned a different weight based on at least a fast access rate or a slow access rate, respectively; a storage controller controlling the plurality of storage media devices, the method comprising: receiving one or more commands from a queue representing a load; deriving a mid-range access rate that is a function of the fast access rate and the slow access rate, where the mid-range access rate is achieved by alternating the fast access rate and the slow access rate; and distributing the load based on the mid-range performance level that is enough to service the load.
  • the present invention provides a non-transitory, computer accessible memory medium storing program instructions for performing a method as implemented in a storage system comprising a plurality of storage media devices, each storage media device comprising one or more addressable storage regions, each region assigned a different weight based on at least a fast access rate, a mid-range access rate or a slow access rate, respectively, a storage controller controlling the plurality of storage media devices, wherein the program instructions are executable by a processor to: receive one or more commands from a queue representing a load; identify a set of weighted storage regions having the mid-range access rate to target a mid-range performance level that is enough to service the load; and distribute the load based on the mid-range performance level by utilizing only the set of weighted storage regions having the mid-range access rate thereby targeting the mid-range performance level that is enough to service the load.
  • the present invention provides a non-transitory, computer accessible memory medium storing program instructions for performing a method as implemented in a storage system comprising a plurality of storage media devices, each storage media device comprising one or more addressable storage regions, each region assigned a different weight based on at least a fast access rate or a slow access rate, respectively; a storage controller controlling the plurality of storage media devices, wherein the program instructions are executable by a processor to: receive one or more commands from a queue representing a load; derive a mid-range access rate that is a function of the fast access rate and the slow access rate, where the mid-range access rate is achieved by alternating the fast access rate and the slow access rate; and distribute the load based on the mid-range performance level that is enough to service the load.
  • the present invention provides a storage system comprising: a plurality of storage media devices; at least one storage controller controlling the plurality of storage media devices; a load balancer in communication with the storage controller to balance storage load across the storage media devices; an optional memory shared between the load balancer and the storage controller; and the load balancer receiving a set of commands for execution in at least one storage media device among the plurality of storage media devices, optionally storing the set of commands in the shared memory, assigning either a positive or negative bias to each of the commands; and distributing load amongst the storage media devices as a function of the assigned positive or negative bias.
  • the present invention provides a storage system comprising: a plurality of storage media devices comprising at least a first storage media device and a second storage media device; at least one storage controller controlling the first and second storage media devices; a queue storing a set of commands to be executed in the first or second storage media devices; wherein the storage controller: computes a first apparent load associated with the first storage media device as a function of the set of commands, a first bias associated with execution of the set of commands in the first storage media device, and at least one time factor associated with execution of the set of commands in the first storage media device; computes a second apparent load associated with the second storage media device as a function of the set of commands, a second bias associated with execution of the set of commands in the second storage media device, and at least one time factor associated with execution of the set of commands in the second storage media device; the first apparent load less than the second apparent load when the first bias and the second bias are set to a neutral, unbiased value indicating potential execution of said set of commands in the first storage media device; negatively biase
  • the present invention provides a method as implemented in a storage system comprising a plurality of storage media devices comprising at least a first storage media device and a second storage media device, at least one storage controller controlling the first and second storage media devices, a queue storing a set of commands to be executed in the first or second storage media devices, the method comprising: computing a first apparent load associated with the first storage media device as a function of the set of commands, a first bias associated with execution of the set of commands in the first storage media device, and at least one time factor associated with execution of the set of commands in the first storage media device; computing a second apparent load associated with the second storage media device as a function of the set of commands, a second bias associated with execution of the set of commands in the second storage media device, and at least one time factor associated with execution of the set of commands in the second storage media device; the first apparent load less than the second apparent load when the first bias and the second bias are set to a neutral, unbiased value indicating potential execution of said set of commands in the first storage media device; negatively
  • the present invention provides for a non-transitory, computer accessible memory medium storing program instructions for performing a method as implemented in a storage system comprising a plurality of storage media devices comprising at least a first storage media device and a second storage media device, at least one storage controller controlling the first and second storage media devices, a queue storing a set of commands to be executed in the first or second storage media devices, wherein the program instructions are executable by a processing element to: compute a first apparent load associated with the first storage media device as a function of the set of commands, a first bias associated with execution of the set of commands in the first storage media device, and at least one time factor associated with execution of the set of commands in the first storage media device; compute a second apparent load associated with the second storage media device as a function of the set of commands, a second bias associated with execution of the set of commands in the second storage media device, and at least one time factor associated with execution of the set of commands in the second storage media device; the first apparent load less than the second apparent load when the first bias and the
  • the present invention provides a storage system comprising: a plurality of storage media devices comprising at least a first storage media device and a second storage media device; at least one storage controller controlling the first and second storage media devices; a queue storing a set of commands to be executed in the first or second storage media devices; wherein the storage controller: computes a first apparent load associated with the first storage media device as a function of the set of commands, a first bias associated with execution of the set of commands in the first storage media device, and at least one time factor associated with execution of the set of commands in the first storage media device; computes a second apparent load associated with the second storage media device as a function of the set of commands, a second bias associated with execution of the set of commands in the second storage media device, and at least one time factor associated with execution of the set of commands in the second storage media device; the first apparent load less than the second apparent load when the first bias and the second bias are set to a neutral, unbiased value indicating potential execution of said set of commands in the first storage media device; positively biase
  • the present invention provides a method as implemented in a storage system comprising a plurality of storage media devices comprising at least a first storage media device and a second storage media device, at least one storage controller controlling the first and second storage media devices, a queue storing a set of commands to be executed in the first or second storage media devices, the method comprising: computing a first apparent load associated with the first storage media device as a function of the set of commands, a first bias associated with execution of the set of commands in the first storage media device, and at least one time factor associated with execution of the set of commands in the first storage media device; computing a second apparent load associated with the second storage media device as a function of the set of commands, a second bias associated with execution of the set of commands in the second storage media device, and at least one time factor associated with execution of the set of commands in the second storage media device; the first apparent load less than the second apparent load when the first bias and the second bias are set to a neutral, unbiased value indicating potential execution of said set of commands in the first storage media device; positively
  • the present invention provides for a non-transitory, computer accessible memory medium storing program instructions for performing a method as implemented in a storage system comprising a plurality of storage media devices comprising at least a first storage media device and a second storage media device, at least one storage controller controlling the first and second storage media devices, a queue storing a set of commands to be executed in the first or second storage media devices, wherein the program instructions are executable by a processing element to: compute a first apparent load associated with the first storage media device as a function of the set of commands, a first bias associated with execution of the set of commands in the first storage media device, and at least one time factor associated with execution of the set of commands in the first storage media device; compute a second apparent load associated with the second storage media device as a function of the set of commands, a second bias associated with execution of the set of commands in the second storage media device, and at least one time factor associated with execution of the set of commands in the second storage media device; the first apparent load less than the second apparent load when the first bias and the
  • the present invention provides a storage system comprising: a plurality of storage media devices comprising at least a first storage media device and a second storage media device; at least one storage controller controlling the first and second storage media devices; a queue storing a set of commands to be executed in the first or second storage media devices; wherein the storage controller: computes a first apparent load associated with the first storage media device as a function of the set of commands, a first bias associated with execution of the set of commands in the first storage media device, and at least one time factor associated with execution of the set of commands in the first storage media device; computes a second apparent load associated with the second storage media device as a function of the set of commands, a second bias associated with execution of the set of commands in the second storage media device, and at least one time factor associated with execution of the set of commands in the second storage media device; the first apparent load greater than the second apparent load when the first bias and the second bias are set to a neutral, unbiased value indicating potential execution of said set of commands in the second storage media device; negatively biase
  • the present invention provides a method as implemented in a storage system comprising a plurality of storage media devices comprising at least a first storage media device and a second storage media device, at least one storage controller controlling the first and second storage media devices, a queue storing a set of commands to be executed in the first or second storage media devices, the method comprising: computing a first apparent load associated with the first storage media device as a function of the set of commands, a first bias associated with execution of the set of commands in the first storage media device, and at least one time factor associated with execution of the set of commands in the first storage media device; computing a second apparent load associated with the second storage media device as a function of the set of commands, a second bias associated with execution of the set of commands in the second storage media device, and at least one time factor associated with execution of the set of commands in the second storage media device; the first apparent load greater than the second apparent load when the first bias and the second bias are set to a neutral, unbiased value indicating potential execution of said set of commands in the second storage media device; negatively
  • the present invention provides for a non-transitory, computer accessible memory medium storing program instructions for performing a method as implemented in a storage system comprising a plurality of storage media devices comprising at least a first storage media device and a second storage media device, at least one storage controller controlling the first and second storage media devices, a queue storing a set of commands to be executed in the first or second storage media devices, wherein the program instructions are executable by a processing element to: compute a first apparent load associated with the first storage media device as a function of the set of commands, a first bias associated with execution of the set of commands in the first storage media device, and at least one time factor associated with execution of the set of commands in the first storage media device; compute a second apparent load associated with the second storage media device as a function of the set of commands, a second bias associated with execution of the set of commands in the second storage media device, and at least one time factor associated with execution of the set of commands in the second storage media device; the first apparent load greater than the second apparent load when the first bias and the
  • the present invention provides a storage system comprising: a plurality of storage media devices comprising at least a first storage media device and a second storage media device; at least one storage controller controlling the first and second storage media devices; a queue storing a set of commands to be executed in the first or second storage media devices; wherein the storage controller: computes a first apparent load associated with the first storage media device as a function of the set of commands, a first bias associated with execution of the set of commands in the first storage media device, and at least one time factor associated with execution of the set of commands in the first storage media device; computes a second apparent load associated with the second storage media device as a function of the set of commands, a second bias associated with execution of the set of commands in the second storage media device, and at least one time factor associated with execution of the set of commands in the second storage media device; the first apparent load greater than the second apparent load when the first bias and the second bias are set to a neutral, unbiased value indicating potential execution of said set of commands in the second storage media device; positively biase
  • the present invention provides a method as implemented in a storage system comprising a plurality of storage media devices comprising at least a first storage media device and a second storage media device, at least one storage controller controlling the first and second storage media devices, a queue storing a set of commands to be executed in the first or second storage media devices, the method comprising: computing a first apparent load associated with the first storage media device as a function of the set of commands, a first bias associated with execution of the set of commands in the first storage media device, and at least one time factor associated with execution of the set of commands in the first storage media device; computing a second apparent load associated with the second storage media device as a function of the set of commands, a second bias associated with execution of the set of commands in the second storage media device, and at least one time factor associated with execution of the set of commands in the second storage media device; the first apparent load greater than the second apparent load when the first bias and the second bias are set to a neutral, unbiased value indicating potential execution of said set of commands in the second storage media device; positively
  • the present invention provides for a non-transitory, computer accessible memory medium storing program instructions for performing a method as implemented in a storage system comprising a plurality of storage media devices comprising at least a first storage media device and a second storage media device, at least one storage controller controlling the first and second storage media devices, a queue storing a set of commands to be executed in the first or second storage media devices, wherein the program instructions are executable by a processing element to: compute a first apparent load associated with the first storage media device as a function of the set of commands, a first bias associated with execution of the set of commands in the first storage media device, and at least one time factor associated with execution of the set of commands in the first storage media device; compute a second apparent load associated with the second storage media device as a function of the set of commands, a second bias associated with execution of the set of commands in the second storage media device, and at least one time factor associated with execution of the set of commands in the second storage media device; the first apparent load greater than the second apparent load when the first bias and the
  • the teachings of the present invention equally apply to a plurality of storage controllers, including multiple, distributed, storage controllers.
  • the system is described as being within a chassis, it should be noted that the entire system need not be co-located within one chassis or physical location, as one or more individual elements may be located as part of a different chassis/location.
  • the system may also have parent and child storage controllers, where a parent storage controller makes decisions to balance across child storage controllers, who may then make decisions to balance across their child storage controllers, etc. (eventually reaching storage media devices connected to last storage controller(s) in the chain).
  • FIG. 1 depicts a storage controller controlling storage media devices having regions of varying access rates.
  • FIG. 2A-B and FIG. 3 illustrates examples of the present invention's method to distribute load based on mid-range performance level.
  • FIG. 4A, FIG. 5A, FIG. 6A, and FIG. 7A illustrate various embodiments of the system of the present invention for either positively or negatively biasing the apparent load.
  • FIG. 4B, FIG. 5B, FIG. 6B, and FIG. 7B illustrate methods associated with the various embodiments of the present invention for either positively or negatively biasing the apparent load.
  • references to “one embodiment” or “an embodiment” mean that the feature being referred to is included in at least one embodiment of the invention. Further, separate references to “one embodiment” in this description do not necessarily refer to the same embodiment; however, neither are such embodiments mutually exclusive, unless so stated and except as will be readily apparent to those of ordinary skill in the art. Thus, the present invention can include any variety of combinations and/or integrations of the embodiments described herein.
  • the present invention views the storage system holistically. Whereas existing techniques, such as Native Command Queuing (NCQ) or storage media device head movement time minimization, look at a single host - slave in a vacuum (i.e., a single storage media device).
  • NCQ Native Command Queuing
  • This invention brings load balancing methodologies typically applied at a macro level (to networks outside of the storage systems or compute systems) down to the micro level within the storage system itself and applied across the storage media devices within that system using criteria specific to storage media devices.
  • the present invention's system and method maintains a balance of storage media devices accessing fast regions of their media and storage media devices accessing slow regions of their media to produce a sustained throughput higher than that of randomly accessing the storage media devices, thus targeting the average throughput of a storage media device (e.g., between fast access location and slow access location).
  • DR Storage Media Device and a Region within
  • DRs are computed by assigning weights for all storage media devices and their sub regions within a storage system based physical characteristics. These regions may be a series of sequential sectors. Other components of the weights are based on recorded historical performance trends and real time actual performance. Then, based on the DRs calculated, one may distribute load across the storage system based upon these DR weights.
  • One distribution scheme would be to target a minimum performance level, in which lower value (lower performance) DRs may be used before higher value DRs to hold high value DRs in reserve, to be used as needed to meet that minimum performance level.
  • Another scheme would be to maximize performance and distribute load across the highest available DRs at all times.
  • An example region-weighting scheme would be to start with a reference region and assigning that a weight of 1.0, typically the lowest performing region would be selected as the reference. Every other regions' weight is assigned as a ratio of its performance to that of the reference. If a region were 50% higher performance than that of the reference its weight would be assigned 1.5. If a region were 10% lower performance than that of the reference its weight would be assigned 0.9.
  • a DR applies to non-rotational storage media devices as well, simply different weights and regions are defined based on the technology.
  • a DR may include regions based on access type (e.g., access type may be based on read or write, such as the case of a solid-state storage media device where fast and slow access rates may correspond to read or write rates and the solid-state storage media device may have overlapping read and write regions), to account for differing performance levels of each.
  • access type may be based on read or write, such as the case of a solid-state storage media device where fast and slow access rates may correspond to read or write rates and the solid-state storage media device may have overlapping read and write regions
  • some such devices may also be considered a hybrid of differing technologies, such as solid-state and rotational, whereas the performance of each technology differs and in some instances differs further within each technology.
  • rotational hard drives must mechanically move an arm and heads across spinning platters to locate a data block (seek time) and the supported data rates vary with the data's location on the spinning platter such that data closer to the outer diameter of the platter flows faster to and from such spinning platter. In this scenario it is often desirable to minimize the movement of the heads as well as locate data on the outer circumference of the platters.
  • This invention assigns weightings to commands based on many factors, including but not limited to the limitations of the underlying storage media device. It then views the command queue fullness / load from that perspective rather than simply the number of commands outstanding, to determine the "apparent load" of a storage media device.
  • the invention also discloses the use of a positive bias and a negative bias to artificially influence the apparent load. This bias may be based on what is expected or about to be destined for the storage media device (such as load reservation and load predictions), what is already committed / pending, or what is desired. The difference between a reservation and a commitment is that a reservation can be changed or reallocated based upon new information. Predictions may be based on historical trends or knowledge base of specific types of traffic. Non-limiting prediction examples include:
  • Bias is useful to distribute the data volume across storage media devices of varying capacities to insure any given storage media device does not prematurely fill, be subsequently unavailable for further writes, and thus reduce the number of storage media devices that a given write load may be distributed across. It is also useful to maintain a certain sustainable data rate for a storage system by holding some bandwidth or load capability in reserve, to be used when needed to increase instantaneous data rate in order to maintain that sustainable data rate average (much like a regulator). Without bias, faster storage media devices would naturally get more load by default since they would appear to be less heavily loaded (i.e. they are capable of handling more data faster), but this is not always desired and can be corrected with bias.
  • Bias allows for "traffic shaping" of the data flow, which can intentionally shape the load on the storage media devices as well as the load seen on the attached network to match a desired profile.
  • the Bias may also vary based upon the type of data (i.e. type of data traffic) or to follow a given Quality of Service (QoS) scheme.
  • QoS Quality of Service
  • the apparent load may be used solely for monitoring purposes, meaning that it could be used as an indicator of system performance without being used to modify the load in any way.
  • apparent load may include the "whole path" from the point where a command is issued all the way to the point at which the response is received.
  • Prior art looks at a storage media device itself, alone, assuming negligible time for transport and movement to/from memory/memories.
  • the transport layer may be important (such as when through a network or distributed system where the storage controller and storage media devices have physical separation) as well as the movement of data to/from a storage media device and memory/memories.
  • the performance of a storage media device will be impacted if data cannot flow to or be carried away from the storage media device fast enough, a condition not typically under the direct control of the storage media device, which will cause data pushback or starvation.
  • the impact of one or more caches in the path would then be included within the apparent load.
  • Tmin minimal time possible for any single command for the storage media device, from issuance to completion.
  • Tcmd time for the specific command to issue, from issuance to completion. This is dependent upon the actual command. For example, in some storage media devices, a write may require a different period of time to complete than a read. Also, if the path contains one or more caches, the time to complete the command may vary at different times.
  • QueueCapacity the maximum number of commands that the queue can hold.
  • Bias the desired artificial influence applied to each command. A number ranging from 0.0 -> 10.0; for example, neutral bias would be 1.0, positive bias would be a value below 1.0 (to artificially lower the apparent load), while negative bias would be a value greater than 1.0 (to artificially increase the apparent load).
  • RequiredSeekTime The estimated or actual storage media device seek time, based upon lookup or historical performance or calculation, for this command from the previous command.
  • Both T min and T cmd are system values. These values may vary based on the class of storage media device (such as rotational, solid state, or hybrid). They may be treated as static or dynamic based on measured system characteristics in real-time and / or historical values. Such measurements may include temperature monitoring (when the completion times vary with temperature) or current cache contents.
  • each specific storage media device to be used in the system may be "qualified” and the values of Tmin and T cm d determined and used for accesses to that specific storage media device. As an alternative, a sampling of similar storage media devices may be "qualified” and averaged to produce values for that class of storage media device.
  • time factor refers to the required seek time, Tmin, Tcmd, combinations thereof, or functions based on various combinations thereof.
  • Some non-limiting example usages of the apparent load include, but are not limited to
  • the described storage media device is not a separate physical device, as it may be memory used for storage, embedded within another device.
  • the present invention provides a storage system comprising: a plurality of storage media devices; at least one storage controller controlling the plurality of storage media devices; a load balancer in communication with the storage controller to balance storage load across the storage media devices; an optional memory shared between the load balancer and the storage controller; and the load balancer receiving a plurality of commands for execution in at least one storage media device among the plurality of storage media devices, optionally storing the commands in the shared memory, assigning either a positive or negative bias to each of the commands; and distributing load amongst the storage media devices as a function of the assigned positive or negative bias.
  • FIG. 1 provides a system-level diagram to understand the principles of the present invention.
  • the present invention's system comprises a storage controller 102 that controls a plurality of storage media devices represented by 104 and 106.
  • Storage media device 104 comprises regions of varying access rates. For example, if storage media device 104 were a rotational disk drive, the outermost region of storage media device 104 is the fast access region as this refers to a region that provides fastest read/write access rates.
  • the inner-most region of storage media device 104 is a slow access region as this refers to a region that provides slowest read/write access rates. There also may be regions between the fast access rate regions and the slow access rate regions, which we refer to as the mid-range access rate region.
  • FIG. 1 two storage media devices are shown in FIG. 1 only for the sake of simplicity, and that the present invention covers instances where there are more than two storage media devices, as is the case with most network attached storage (NAS) devices or storage devices that are part of a storage area network (SAN).
  • NAS network attached storage
  • SAN storage area network
  • the storage media device 104 has three access rate regions shown, a fast access region 108, a mid-range access region 110, and a slow access region 112. It should also be noted that while a three-tier access region (i.e., fast access region 108, mid-range access region 110, and slow access region 112) is disclosed in FIG. 1, the same teachings can be expanded to a multi-tier region where there are a plurality of access rate regions between the fast access rate region 108 and the slow access rate region 112 shown in FIG. 1. In FIG. 1, fast access region 108 of storage media device 104 is further subdivided into a plurality of fast access regions shown as D ⁇ R° , D y R , etc.
  • mid- range access region 110 of storage media device 104 is further subdivided into a plurality of regions shown as , D y R 2 , etc. and slow access region 112 of storage media device 104 is further subdivided into a plurality of regions shown as , D y R 2 c , etc.
  • fast access region 108 of storage media device 106 is further subdivided into a plurality of fast access regions shown as D 2 R , D 2 R 2 , etc.
  • mid- range access region 110 of storage media device 106 is further subdivided into a plurality of regions shown as D 2 R( , D 2 R ⁇ , etc.
  • slow access region 112 of storage media device 106 is further subdivided into a plurality of regions shown as D 2 R , D 2 R 2 , etc.
  • the present invention provides a storage system comprising: a plurality of storage media devices, each storage media device comprising one or more addressable storage regions, each region assigned a different weight based on at least a fast access rate, a mid-range access rate or a slow access rate, respectively; a storage controller controlling the plurality of storage media devices, the storage controller: receives one or more commands from a queue representing a load; identifies a set of weighted storage regions having the mid-range access rate to target a mid-range performance level that is enough to service the load; and distributes the load based on the mid-range performance level by utilizing only the set of weighted storage regions having the mid-range access rate thereby targeting the mid-range performance level that is enough to service the load.
  • the present invention provides a storage system comprising: a plurality of storage media devices, each storage media device comprising one or more addressable storage regions, each region assigned a different weight based on at least a fast access rate or a slow access rate, respectively; a storage controller controlling the plurality of storage media devices, the storage controller: receives one or more commands from a queue representing a load; derives a mid-range access rate that is a function of the fast access rate and the slow access rate, where the mid-range access rate is achieved by alternating the fast access rate and the slow access rate; and distributes the load based on the mid-range performance level that is enough to service the load.
  • Non-limiting examples of storage media devices are any of, or a combination of, the following: solid-state drive, rotational hard disk drive, hybrid disk drive, or PCI-Express slot disk drive.
  • the storage media devices may be part of a storage area network (SAN) or may be part of a network attached storage (NAS) device.
  • SAN storage area network
  • NAS network attached storage
  • the present invention provides a method as implemented in a storage system comprising a plurality of storage media devices, each storage media device comprising one or more addressable storage regions, each region assigned a weight based on at least a fast or slow access rate, where regions having fast access rate are weighted differently than regions having slow access rate (e.g., regions having fast access rate having higher weights than regions having slow access rate or regions having slow access rate having higher weights than regions having fast access rate), a storage controller controlling the plurality of storage media devices, the method comprising: receiving one or more commands from a queue representing a load - step 201; identifying a minimum performance level required for the load - step 203; identifying a first set of weighted storage regions having a slow access rate across the plurality of storage media devices and a second set of weighted storage regions having a fast access rate in the plurality of storage media devices - step 205; identifying a subset of storage regions within the first set of weighted
  • the present invention provides a method as implemented in a storage system comprising a storage system comprising a plurality of storage media devices, each storage media device comprising one or more addressable storage regions, each region assigned a different weight based on at least a fast access rate, a mid-range access rate or a slow access rate, respectively, a storage controller controlling the plurality of storage media devices, the method comprising: receiving one or more commands from a queue representing a load - step 202; identifying a set of weighted storage regions having the mid-range access rate to target a mid-range performance level that is enough to service the load - step 204; and distributing the load based on the mid-range performance level by utilizing only the set of weighted storage regions having the mid-range access rate thereby targeting the mid-range performance level that is enough to service the load - step 206.
  • Figs. 2 A and 2B are not meant to be limiting as the embodiments may be extended to computing an optimal sustained performance level as function of the first set of weighted storage regions having the slow access rate and the second set of weighted storage regions having the fast access rate; and distributing load based on the computed optimal sustained performance level.
  • One example sustained performance level determined would be to examine the sets of weighted storage regions presented and take the average, this average being used to distribute the load by alternating weighted storage regions as necessary to maintain that average over time.
  • Another example sustained performance level determined would be to examine the sets of weighted storage regions presented and take the average then apply a discount to that average to allow for operational margin, this discounted average being used to distribute the load by alternating weighted storage regions as necessary to maintain that discounted average over time.
  • the embodiments may be further extended to identifying one or more weighted fast access storage regions within the addressable storage regions across the plurality of storage media devices having the fast access rate and distributing load by utilizing only the weighted fast access storage regions within the addressable storage regions across the plurality of storage media devices having the fast access rate.
  • the present invention provides a method as implemented in storage system comprising: a plurality of storage media devices, each storage media device comprising one or more addressable storage regions, each region assigned a different weight based on at least a fast access rate or a slow access rate, respectively; a storage controller controlling the plurality of storage media devices, the method comprising: receiving one or more commands from a queue representing a load - step 302; deriving a mid-range access rate that is a function of the fast access rate and the slow access rate - step 304, where the mid-range access rate is achieved by alternating the fast access rate and the slow access rate; and distributing the load based on the mid-range performance level that is enough to service the load - step 306.
  • the present invention provides a storage system comprising: a plurality of storage media devices comprising at least a first storage media device 402 and a second storage media device 404; at least one storage controller 406 controlling the first and second storage media devices 402 and 404, respectively; a queue 408 storing a set of commands 409 to be executed in the first or second storage media devices; wherein the storage controller 406: computes a first apparent load 410 associated with the first storage media device 402 as a function of the set of commands 409, a first bias associated with execution of the set of commands in the first storage media device, and at least one time factor (e.g., seek time) associated with execution of the set of commands 409 in the first storage media device 402; computes a second apparent load 412 associated with the second storage media device 404 as a function of the set of commands 409, a second bias associated with execution of the set of commands in the second storage media device, and at least one time factor (e.g.
  • the present invention provides a method as implemented in a storage system comprising a plurality of storage media devices comprising at least a first storage media device and a second storage media device, at least one storage controller controlling the first and second storage media devices, a queue storing a set of commands to be executed in the first or second storage media devices, the method comprising: computing a first apparent load associated with the first storage media device as a function of the set of commands, a first bias associated with execution of the set of commands in the first storage media device, and at least one time factor associated with execution of the set of commands in the first storage media device - step 416; computing a second apparent load associated with the second storage media device as a function of the set of commands, a second bias associated with execution of the set of commands in the second storage media device, and at least one time factor associated with execution of the set of commands in the second storage media device - step 418; the first apparent load less than the second apparent load when the first bias and the second bias are set to
  • the present invention also provides for a non-transitory, computer accessible memory medium storing program instructions for performing a method as implemented in a storage system comprising a plurality of storage media devices comprising at least a first storage media device and a second storage media device, at least one storage controller controlling the first and second storage media devices, a queue storing a set of commands to be executed in the first or second storage media devices, wherein the program instructions are executable by a processing element to: compute a first apparent load associated with the first storage media device as a function of the set of commands, a first bias associated with execution of the set of commands in the first storage media device, and at least one time factor associated with execution of the set of commands in the first storage media device; compute a second apparent load associated with the second storage media device as a function of the set of commands, a second bias associated with execution of the set of commands in the second storage media device, and at least one time factor associated with execution of the set of commands in the second storage media device; the first apparent load less than the second apparent load when the
  • the present invention provides a storage system comprising: a plurality of storage media devices comprising at least a first storage media device 502 and a second storage media device 504; at least one storage controller 206 controlling the first and second storage media devices 502 and 504, respectively; a queue 508 storing a set of commands 509 to be executed in the first or second storage media devices; wherein the storage controller 506: computes a first apparent load 510 associated with the first storage media device as a function of the set of commands 509, a first bias associated with execution of the set of commands 509 in the first storage media device 502, and at least one time factor (e.g., seek time) associated with execution of the set of commands 509 in the first storage media device 502; computes a second apparent load 512 associated with the second storage media device 504 as a function of the set of commands 509, a second bias associated with execution of the set of commands 509 in the second storage media device 504, and at least one time factor (e
  • the present invention provides a method as implemented in a storage system comprising a plurality of storage media devices comprising at least a first storage media device and a second storage media device, at least one storage controller controlling the first and second storage media devices, a queue storing a set of commands to be executed in the first or second storage media devices, the method comprising: computing a first apparent load associated with the first storage media device as a function of the set of commands, a first bias associated with execution of the set of commands in the first storage media device, and at least one time factor associated with execution of the set of commands in the first storage media device - step 516; computing a second apparent load associated with the second storage media device as a function of the set of commands, a second bias associated with execution of the set of commands in the second storage media device, and at least one time factor associated with execution of the set of commands in the second storage media device - step 518; the first apparent load less than the second apparent load when the first bias and the second bias are set to
  • the present invention also provides for a non-transitory, computer accessible memory medium storing program instructions for performing a method as implemented in a storage system comprising a plurality of storage media devices comprising at least a first storage media device and a second storage media device, at least one storage controller controlling the first and second storage media devices, a queue storing a set of commands to be executed in the first or second storage media devices, wherein the program instructions are executable by a processing element to: compute a first apparent load associated with the first storage media device as a function of the set of commands, a first bias associated with execution of the set of commands in the first storage media device, and at least one time factor associated with execution of the set of commands in the first storage media device; compute a second apparent load associated with the second storage media device as a function of the set of commands, a second bias associated with execution of the set of commands in the second storage media device, and at least one time factor associated with execution of the set of commands in the second storage media device; the first apparent load less than the second apparent load when the
  • the present invention provides a storage system comprising: a plurality of storage media devices comprising at least a first storage media device 602 and a second storage media device 604; at least one storage controller 306 controlling the first and second storage media devices 602 and 604, respectively; a queue 608 storing a set of commands 609 to be executed in the first or second storage media devices; wherein the storage controller 606: computes a first apparent load 610 associated with the first storage media device 602 as a function of the set of commands 609, a first bias associated with execution of the set of commands 309 in the first storage media device 602, and at least one time factor (e.g., seek time) associated with execution of the set of commands 609 in the first storage media device 602; computes a second apparent load 612 associated with the second storage media device 604 as a function of the set of commands 609, a second bias associated with execution of the set of commands 609 in the second storage media device 604, and at least one time factor
  • the present invention provides a method as implemented in a storage system comprising a plurality of storage media devices comprising at least a first storage media device and a second storage media device, at least one storage controller controlling the first and second storage media devices, a queue storing a set of commands to be executed in the first or second storage media devices, the method comprising: computing a first apparent load associated with the first storage media device as a function of the set of commands, a first bias associated with execution of the set of commands in the first storage media device, and at least one time factor associated with execution of the set of commands in the first storage media device - step 616; computing a second apparent load associated with the second storage media device as a function of the set of commands, a second bias associated with execution of the set of commands in the second storage media device, and at least one time factor associated with execution of the set of commands in the second storage media device - step 618; the first apparent load greater than the second apparent load when the first bias and the second bias are set to
  • the present invention also provides for a non-transitory, computer accessible memory medium storing program instructions for performing a method as implemented in a storage system comprising a plurality of storage media devices comprising at least a first storage media device and a second storage media device, at least one storage controller controlling the first and second storage media devices, a queue storing a set of commands to be executed in the first or second storage media devices, wherein the program instructions are executable by a processing element to: compute a first apparent load associated with the first storage media device as a function of the set of commands, a first bias associated with execution of the set of commands in the first storage media device, and at least one time factor associated with execution of the set of commands in the first storage media device; compute a second apparent load associated with the second storage media device as a function of the set of commands, a second bias associated with execution of the set of commands in the second storage media device, and at least one time factor associated with execution of the set of commands in the second storage media device; the first apparent load greater than the second apparent load when the
  • the present invention provides a storage system comprising: a plurality of storage media devices comprising at least a first storage media device 702 and a second storage media device 704; at least one storage controller 706 controlling the first and second storage media devices 702 and 704, respectively; a queue 708 storing a set of commands 709 to be executed in the first or second storage media devices; wherein the storage controller 706: computes a first apparent load 710 associated with the first storage media device 702 as a function of the set of commands 709, a first bias associated with execution of the set of commands 709 in the first storage media device 702, and at least one time factor (e.g., seek time) associated with execution of the set of commands 709 in the first storage media device 702; computes a second apparent load 712 associated with the second storage media device 704 as a function of the set of commands 709, a second bias associated with execution of the set of commands 709 in the second storage media device 704, and at least one time factor
  • the present invention also provides a method as implemented in a storage system comprising a plurality of storage media devices comprising at least a first storage media device and a second storage media device, at least one storage controller controlling the first and second storage media devices, a queue storing a set of commands to be executed in the first or second storage media devices, the method comprising: computing a first apparent load associated with the first storage media device as a function of the set of commands, a first bias associated with execution of the set of commands in the first storage media device, and at least one time factor associated with execution of the set of commands in the first storage media device - step 716; computing a second apparent load associated with the second storage media device as a function of the set of commands, a second bias associated with execution of the set of commands in the second storage media device, and at least one time factor associated with execution of the set of commands in the second storage media device - step 718; the first apparent load greater than the second apparent load when the first bias and the second bias are set to
  • the embodiments may integrate specific use cases where the load balancing is achieved based on temperatures, temperature ranges, fill percentages, write rate, read rate, and data type in conjunction with the biasing.
  • the temperatures, temperature ranges, fill percentages, write rate, read rate, and data type for the corresponding media devices may be monitored, measured or tracked through known means in some embodiments.
  • the present invention provides a method as a non-transitory, computer accessible memory medium storing program instructions for performing a method as implemented in a storage system comprising a storage system comprising a plurality of storage media devices, each storage media device comprising one or more addressable storage regions, each region assigned a different weight based on at least a fast access rate, a mid- range access rate or a slow access rate, respectively, a storage controller controlling the plurality of storage media devices, wherein the program instructions are executable by a processor to: receive one or more commands from a queue representing a load; identify a set of weighted storage regions having the mid-range access rate to target a mid-range performance level that is enough to service the load; and distribute the load based on the mid- range performance level by utilizing only the set of weighted storage regions having the mid- range access rate thereby targeting the mid-range performance level that is enough to service the load.
  • the present invention provides a non-transitory, computer accessible memory medium storing program instructions for performing a method as implemented in a storage system comprising a plurality of storage media devices, each storage media device comprising one or more addressable storage regions, each region assigned a different weight based on at least a fast access rate or a slow access rate, respectively; a storage controller controlling the plurality of storage media devices, wherein the program instructions are executable by a processor to: receive one or more commands from a queue representing a load; derive a mid-range access rate that is a function of the fast access rate and the slow access rate, where the mid-range access rate is achieved by alternating the fast access rate and the slow access rate; and distribute the load based on the mid-range performance level that is enough to service the load.
  • the teachings of the present invention equally applies to a plurality of storage controllers, including multiple, distributed, storage controllers.
  • the system is described as being within a chassis, it should be noted that the entire system need not be co-located within one chassis or physical location, as one or more individual elements may be located as part of a different chassis/location.
  • the system may also have parent and child storage controllers, where a parent storage controller makes decisions to balance across child storage controllers, who may then make decisions to balance across their child storage controllers, etc. (eventually hitting storage media devices connected to last storage controller(s) in the chain.
  • a storage controller may balance load across a chassis having a plurality of storage media devices, where a master storage controller may be connected to a plurality of such storage controllers to perform load balancing across a plurality of such chassis, each having a plurality of storage media devices.
  • the above-described features and applications can be implemented as software processes that are specified as a set of instructions recorded on a computer readable storage medium (also referred to as computer readable medium).
  • a computer readable storage medium also referred to as computer readable medium.
  • processing element(s) e.g., one or more processors, cores of processors, or other processing elements
  • Embodiments within the scope of the present disclosure may also include tangible and/or non-transitory computer-readable storage media for carrying or having computer-executable instructions or data structures stored thereon.
  • Such non- transitory computer-readable storage media can be any available media that can be accessed by a general purpose or special purpose computer, including the functional design of any special purpose processor.
  • non-transitory computer-readable media can include flash memory, RAM, ROM, EEPROM, CD-ROM or other optical disk storage, magnetic disk storage or other magnetic storage devices, or any other medium which can be used to carry or store desired program code means in the form of computer-executable instructions, data structures, or processor chip design.
  • the computer readable media does not include carrier waves and electronic signals passing wirelessly or over wired connections.
  • Computer-executable instructions include, for example, instructions and data which cause a general purpose computer, special purpose computer, or special purpose processing device to perform a certain function or group of functions.
  • Computer-executable instructions also include program modules that are executed by computers in stand-alone or network environments.
  • program modules include routines, programs, components, data structures, objects, and the functions inherent in the design of special-purpose processors, etc. that perform particular tasks or implement particular abstract data types.
  • Computer- executable instructions, associated data structures, and program modules represent examples of the program code means for executing steps of the methods disclosed herein. The particular sequence of such executable instructions or associated data structures represents examples of corresponding acts for implementing the functions described in such steps.
  • a computer program (also known as a program, software, software application, script, or code) can be written in any form of programming language, including compiled or interpreted languages, declarative or procedural languages, and it can be deployed in any form, including as a stand-alone program or as a module, component, subroutine, object, or other unit suitable for use in a computing environment.
  • a computer program may, but need not, correspond to a file in a file system.
  • a program can be stored in a portion of a file that holds other programs or data (e.g., one or more scripts stored in a markup language document), in a single file dedicated to the program in question, or in multiple coordinated files (e.g., files that store one or more modules, sub programs, or portions of code).
  • a computer program can be deployed to be executed on one computer or on multiple computers that are located at one site or distributed across multiple sites and interconnected by a communication network.
  • Some implementations include electronic components, for example microprocessors, storage and memory that store computer program instructions in a machine-readable or computer-readable medium (alternatively referred to as computer-readable storage media, machine-readable media, or machine-readable storage media).
  • computer-readable media include RAM, ROM, read-only compact discs (CD-ROM), recordable compact discs (CD-R), rewritable compact discs (CD-RW), read-only digital versatile discs (e.g., DVD-ROM, dual-layer DVD-ROM), a variety of recordable/rewritable DVDs (e.g., DVD-RAM, DVD-RW, DVD+RW, etc.), flash memory (e.g., SD cards, mini-SD cards, micro-SD cards, etc.), magnetic or solid state hard drives, read-only and recordable Blu-Ray ® discs, ultra density optical discs, any other optical or magnetic media, and floppy disks.
  • CD-ROM compact discs
  • CD-R recordable compact discs
  • the computer-readable media can store a computer program that is executable by at least one processing element and includes sets of instructions for performing various operations.
  • Examples of computer programs or computer code include machine code, for example is produced by a compiler, and files including higher-level code that are executed by a computer, an electronic component, or a microprocessor using an interpreter.
  • the terms "computer”, “server”, “processor”, and “memory” all refer to electronic or other technological devices. These terms exclude people or groups of people.
  • display or displaying means displaying on an electronic device.
  • computer readable medium and “computer readable media” are entirely restricted to tangible, physical objects that store information in a form that is readable by a computer. These terms exclude any wireless signals, wired download signals, and any other ephemeral signals.
  • Embodiments may be practiced in network computing environments with many types of computer system configurations, including personal computers, hand-held devices, multi-processor systems, ASIC -based systems, FPGA-based systems, microprocessor-based or programmable consumer electronics, network PCs, minicomputers, mainframe computers, and the like.
  • Embodiments may also be practiced in distributed computing environments where tasks are performed by local and remote processing devices that are linked (either by hardwired links, wireless links, or by a combination thereof) through a communications network.
  • program modules may be located in both local and remote memory storage devices.
  • any specific order or hierarchy of steps in the processes disclosed is an illustration of example approaches. Based upon design preferences, it is understood that the specific order or hierarchy of steps in the processes may be rearranged, or that all illustrated steps be performed. Some of the steps may be performed simultaneously. For example, in certain circumstances, multitasking and parallel processing may be advantageous. Moreover, the separation of various system components illustrated above should not be understood as requiring such separation, and it should be understood that the described program components and systems can generally be integrated together in a single software product or packaged into multiple software products. Various modifications to these aspects will be readily apparent, and the generic principles defined herein may be applied to other aspects.
  • a phrase, for example, an "aspect” does not imply that the aspect is essential to the subject technology or that the aspect applies to all configurations of the subject technology.
  • a disclosure relating to an aspect may apply to all configurations, or one or more configurations.
  • a phrase, for example, an aspect may refer to one or more aspects and vice versa.
  • a phrase, for example, a “configuration” does not imply that such configuration is essential to the subject technology or that such configuration applies to all configurations of the subject technology.
  • a disclosure relating to a configuration may apply to all configurations, or one or more configurations.
  • a phrase, for example, a configuration may refer to one or more configurations and vice versa.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Automatic Disk Changers (AREA)

Abstract

L'invention est caractérisée en ce qu'un contrôleur de stockage commandant une pluralité de dispositifs à supports de stockage reçoit une ou plusieurs consignes provenant d'une file d'attente représentant une charge, identifie un ensemble de régions de stockage pondérées présentant un débit d'accès médian pour viser un niveau médian de performance suffisant pour traiter la charge; et répartit la charge en se basant sur le niveau médian de performance en employant uniquement l'ensemble de régions de stockage pondérées présentant le débit d'accès médian, visant ainsi le niveau médian de performance suffisant pour traiter la charge.
PCT/US2014/069143 2013-12-06 2014-12-08 Système et procédé de répartition dynamique de charge entre dispositifs à supports de stockage sur la base d'un niveau médian de performance WO2015085313A1 (fr)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201480074951.1A CN105981351B (zh) 2013-12-06 2014-12-08 动态负荷平衡存储介质装置的系统和方法
EP14867506.9A EP3078184A4 (fr) 2013-12-06 2014-12-08 Système et procédé de répartition dynamique de charge entre dispositifs à supports de stockage sur la base d'un niveau médian de performance

Applications Claiming Priority (22)

Application Number Priority Date Filing Date Title
US14/099,767 2013-12-06
US14/099,846 2013-12-06
US14/099,723 2013-12-06
US14/099,740 2013-12-06
US14/099,845 US10048895B2 (en) 2013-12-06 2013-12-06 System and method for dynamically load balancing storage media devices based on a mid-range performance level
US14/099,820 2013-12-06
US14/099,807 2013-12-06
US14/099,752 2013-12-06
US14/099,713 US9274722B2 (en) 2013-12-06 2013-12-06 System, method and article of manufacture for monitoring, controlling and improving storage media system performance
US14/099,811 US8943243B1 (en) 2013-12-06 2013-12-06 System, method and article of manufacture for monitoring, controlling and improving storage media system performance based on storage media device read rate
US14/099,848 US9436404B2 (en) 2013-12-06 2013-12-06 System and method for dynamically load balancing across storage media devices having fast access rates
US14/099,848 2013-12-06
US14/099,811 2013-12-06
US14/099,820 US20150160891A1 (en) 2013-12-06 2013-12-06 System and method for dynamically load balancing storage media devices based on a minimum performance level
US14/099,723 US8954614B1 (en) 2013-12-06 2013-12-06 System, method and article of manufacture for monitoring, controlling and improving storage media system performance based on temperature
US14/099,846 US10235096B2 (en) 2013-12-06 2013-12-06 System and method for dynamically load balancing storage media devices based on an average or discounted average sustained performance level
US14/099,845 2013-12-06
US14/099,713 2013-12-06
US14/099,807 US8954617B1 (en) 2013-12-06 2013-12-06 System, method and article of manufacture for monitoring, controlling and improving storage media system performance based on data type
US14/099,767 US8954616B1 (en) 2013-12-06 2013-12-06 System, method and article of manufacture for monitoring, controlling and improving storage media system performance based on storage media device write rate
US14/099,752 US8984172B1 (en) 2013-12-06 2013-12-06 System, method and article of manufacture for monitoring, controlling and improving storage media system performance based on storage media device fill percentage
US14/099,740 US8954615B1 (en) 2013-12-06 2013-12-06 System, method and article of manufacture for monitoring, controlling and improving storage media system performance based on temperature ranges

Publications (1)

Publication Number Publication Date
WO2015085313A1 true WO2015085313A1 (fr) 2015-06-11

Family

ID=53274214

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US2014/069143 WO2015085313A1 (fr) 2013-12-06 2014-12-08 Système et procédé de répartition dynamique de charge entre dispositifs à supports de stockage sur la base d'un niveau médian de performance

Country Status (3)

Country Link
EP (1) EP3078184A4 (fr)
CN (1) CN105981351B (fr)
WO (1) WO2015085313A1 (fr)

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0834878A2 (fr) 1996-10-04 1998-04-08 Sony Corporation Méthode et dispositif pour contrÔler l'accès à un dispositif de stockage à disque
US6327638B1 (en) 1998-06-30 2001-12-04 Lsi Logic Corporation Disk striping method and storage subsystem using same
US20110231458A1 (en) * 2010-03-01 2011-09-22 Hitachi, Ltd. File level hierarchical storage management system, method, and apparatus
US20110246705A1 (en) * 2010-04-01 2011-10-06 Mudama Eric D Method and system for wear leveling in a solid state drive
US20120079318A1 (en) * 2010-09-28 2012-03-29 John Colgrove Adaptive raid for an ssd environment
US8209515B2 (en) * 2003-01-21 2012-06-26 Dell Products Lp Storage systems having differentiated storage pools
US20120297155A1 (en) * 2008-07-23 2012-11-22 Hitachi, Ltd. Storage system and method of executing commands by controller
US8443153B1 (en) 2010-01-06 2013-05-14 Netapp, Inc. Dynamic balancing of performance with block sharing in a storage system

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102067064B (zh) * 2008-02-25 2014-02-19 意法爱立信有限公司 具有可调节的性能水平的数据处理装置及其操作方法
CN101706805B (zh) * 2009-10-30 2011-11-09 中国科学院计算技术研究所 对象存储方法及其系统

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0834878A2 (fr) 1996-10-04 1998-04-08 Sony Corporation Méthode et dispositif pour contrÔler l'accès à un dispositif de stockage à disque
US6327638B1 (en) 1998-06-30 2001-12-04 Lsi Logic Corporation Disk striping method and storage subsystem using same
US8209515B2 (en) * 2003-01-21 2012-06-26 Dell Products Lp Storage systems having differentiated storage pools
US20120297155A1 (en) * 2008-07-23 2012-11-22 Hitachi, Ltd. Storage system and method of executing commands by controller
US8443153B1 (en) 2010-01-06 2013-05-14 Netapp, Inc. Dynamic balancing of performance with block sharing in a storage system
US20110231458A1 (en) * 2010-03-01 2011-09-22 Hitachi, Ltd. File level hierarchical storage management system, method, and apparatus
US20110246705A1 (en) * 2010-04-01 2011-10-06 Mudama Eric D Method and system for wear leveling in a solid state drive
US20120079318A1 (en) * 2010-09-28 2012-03-29 John Colgrove Adaptive raid for an ssd environment

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
See also references of EP3078184A4

Also Published As

Publication number Publication date
CN105981351B (zh) 2019-08-02
EP3078184A4 (fr) 2017-07-26
EP3078184A1 (fr) 2016-10-12
CN105981351A (zh) 2016-09-28

Similar Documents

Publication Publication Date Title
US10216440B2 (en) Disk management in distributed storage system including grouping disks into cold and hot data disk rings and reducing a spinning rate of disks storing cold data
US10168946B2 (en) Extent migration in multi-tier storage systems
US20170364292A1 (en) System and method for dividing and synchronizing a processing task across multiple processing elements/processors in hardware
US11334398B2 (en) Learning-based thermal estimation in multicore architecture
US9747139B1 (en) Performance-based multi-mode task dispatching in a multi-processor core system for high temperature avoidance
KR20150043102A (ko) 하이브리드 메모리의 데이터 관리 장치 및 방법
CN104424106B (zh) 为存储优化操作分配存储设备的资源的方法和系统
US20170177045A1 (en) Thermal management apparatus and method using dynamic thermal margin, and semiconductor processor device, non-volatile data storage device and access control method using the same
US10048895B2 (en) System and method for dynamically load balancing storage media devices based on a mid-range performance level
US9436404B2 (en) System and method for dynamically load balancing across storage media devices having fast access rates
US10482033B2 (en) Method and device for controlling memory
US20200104065A1 (en) Storage capacity usage management
US10120575B2 (en) Dynamic storage tiering
US10235096B2 (en) System and method for dynamically load balancing storage media devices based on an average or discounted average sustained performance level
US9983908B1 (en) Adjusting allocation of selected resources for capped and uncapped virtual machines
US9274722B2 (en) System, method and article of manufacture for monitoring, controlling and improving storage media system performance
US8954614B1 (en) System, method and article of manufacture for monitoring, controlling and improving storage media system performance based on temperature
US10585707B2 (en) Database resource scaling
US20150160891A1 (en) System and method for dynamically load balancing storage media devices based on a minimum performance level
CN105224475B (zh) 用于调整存储装置的分配的方法和装置
EP3078184A1 (fr) Système et procédé de répartition dynamique de charge entre dispositifs à supports de stockage sur la base d'un niveau médian de performance
US8954617B1 (en) System, method and article of manufacture for monitoring, controlling and improving storage media system performance based on data type
WO2016139175A1 (fr) Connectivité de réseau entre homologues dans un environnement mobile
US8954615B1 (en) System, method and article of manufacture for monitoring, controlling and improving storage media system performance based on temperature ranges
US8943243B1 (en) System, method and article of manufacture for monitoring, controlling and improving storage media system performance based on storage media device read rate

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 14867506

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

REEP Request for entry into the european phase

Ref document number: 2014867506

Country of ref document: EP

WWE Wipo information: entry into national phase

Ref document number: 2014867506

Country of ref document: EP