Legal claims defining the scope of protection, as filed with the USPTO.
1. A method of managing a shared IO resource that is accessed by a plurality of hosts that includes a first host and a second host, comprising: at the first host, monitoring latencies of IO requests issued by the first host to the shared IO resource, computing a first host latency value that is normalized with respect to an average IO size of the IO requests issued by the first host, and storing the first host latency value; at the second host, monitoring latencies of IO requests issued by the second host to the shared IO resource, and computing a second host latency value that is normalized with respect to an average IO size of the IO requests issued by the second host, and storing the second host latency value; and executing a storage management process for the shared IO resource using the first host latency value and the second host latency value, wherein the first and second host latency values are normalized using a factor that is computed as (1+the average IO size divided by an adjustment factor).
2. The method of claim 1 , wherein the first host latency value and the second host latency value are stored in a shared data structure that is accessible by each of the hosts.
3. The method of claim 2 , wherein the shared data structure is a file on the shared IO resource.
4. The method of claim 2 , wherein the shared data structure is communicated via a network to all of the hosts.
5. The method of claim 1 , wherein the storage management process for the shared IO resource includes: computing an average latency of the shared IO resource based on the first host latency value and the second host latency value; adjusting a window size of the first host based on the average latency of the shared IO resource; and adjusting a window size of the second host based on the average latency of the shared IO resource.
6. The method of claim 1 , wherein the storage management process for the shared IO resource includes enforcing a quality of service (QoS) policy for a group of hosts including the first host and the second host.
7. The method of claim 6 , wherein the first host is assigned a first number of shares in accordance with the QoS policy and the second host is assigned a second number of shares in accordance with the QoS policy, and said enforcing the QoS policy includes: computing an average latency of the shared IO resource based on the first host latency value and the second host latency value; adjusting a window size of the first host based on the average latency of the shared IO resource and the first number of shares; and adjusting a window size of the second host based on the average latency of the shared IO resource and the second number of shares.
8. The method of claim 1 , wherein the adjustment factor is dependent on a seek time and a peak bandwidth of the shared IO resource.
9. The method of claim 8 , wherein the adjustment factor is a product of a seek time and a peak bandwidth of the shared IO resource.
10. A method of managing a shared IO resource that is accessed by a plurality of clients that includes a first client and a second client, comprising: at the first client, monitoring latencies of IO requests issued by the first client to the shared IO resource, computing a first latency value that is normalized with respect to an average IO size of the IO requests issued by the first client, and storing the first latency value; at the second client, monitoring latencies of IO requests issued by the second client to the shared IO resource, and computing a second latency value that is normalized with respect to an average IO size of the IO requests issued by the second client, and storing the second latency value; and executing a storage management process for the shared IO resource using the first latency value and the second latency value, wherein the first and second latency values are normalized using a factor that is computed as (1+the average IO size divided by an adjustment factor).
11. The method of claim 10 , wherein the storage management process for the shared IO resource includes enforcing a quality of service (QoS) policy for a group of clients including the first client and the second client.
12. The method of claim 11 , wherein the first client is assigned a first number of shares in accordance with the QoS policy and the second client is assigned a second number of shares in accordance with the QoS policy, and said enforcing the QoS policy includes: computing an average latency of the shared IO resource based on the first latency value and the second latency value; adjusting a window size of the first client based on the average latency of the shared IO resource and the first number of shares; and adjusting a window size of the second client based on the average latency of the shared IO resource and the second number of shares.
13. The method of claim 10 , wherein the clients are virtual machines.
15. The tangible non-transitory computer-readable medium of claim 14 , wherein the adjustment factor is dependent on a seek time and a peak bandwidth of the shared IO resource.
16. The tangible non-transitory computer-readable medium of claim 14 , wherein the adjustment factor is a product of a seek time and a peak bandwidth of the shared IO resource.
18. The tangible non-transitory computer-readable medium of claim 14 further embodying program instructions for adjusting window sizes in accordance with an average latency value of the shared IO resource.
19. The tangible non-transitory computer-readable medium of claim 18 , wherein the window size is adjusted according to the following formula: w ( t + 1 ) = ( 1 - γ ) w ( t ) + γ ( LAT threshold L SYS ( t ) w ( t ) + β ) , where w(t+1) is the adjusted window size for time t+1; w(t) is the current window size; γ is a constant value selected between zero and one and determines the influence that the current window size has on the new window size; LAT threshold is a system-wide latency threshold selected to balance throughput with latency; L SYS (t) is the system-wide average latency value of the shared IO resource across all the hosts at time t; and β is a per-host value based on an assigned share representing a relative level of priority of the host relative to other hosts.
20. A method of managing distributed storage resources, including a first storage unit and a second storage unit, that are accessed by a plurality of clients, comprising: at each of the clients, monitoring latencies of IO requests issued by said each client to a respective storage unit, computing a latency value that is normalized with respect to an average IO size of the IO requests issued by said each client, and storing the computed latency value; and executing a process for migrating a workload in the first storage unit that is associated with one of the clients to the second storage unit using the computed latency values, wherein the latency value is normalized using a factor that is computed as (1+the average IO size divided by an adjustment factor).
21. The method of claim 20 , wherein the clients are virtual machines running inside a single host.
22. The method of claim 20 , wherein each client is a separate and distinct host.
23. The method of claim 20 , wherein the adjustment factor is dynamically determined while the respective storage unit is operating.
Unknown
May 6, 2014
Browse 5M+ US patents with plain-English claim translations and AI-generated analysis.