Critical resource management
First Claim
Patent Images
1. A method of managing critical resource usage in a storage network comprising:
- monitoring a queue depth for a critical resource having a maximum queue depth;
receiving an I/O (input/output) operation from a host for the critical resource;
executing the I/O operation when the queue depth is below a threshold;
calculating a new maximum queue depth for the critical resource when the queue depth for the critical resource exceeds the threshold;
receiving a subsequent I/O operation from the host for the critical resource;
placing the subsequent I/O operation in a waiting queue;
blocking the subsequent I/O operation when the waiting queue has a queue depth that exceeds the new maximum queue depth;
transmitting the new maximum queue depth to a peer storage controller;
receiving, in the peer storage controller, an I/O operation from the host that identifies a storage unit; and
processing the I/O operation using the new maximum queue depth, wherein the new maximum queue depth is calculated by dividing a number of available resources by a number of initiators waiting for the resources.
2 Assignments
0 Petitions
Accused Products
Abstract
In one embodiment, a method of managing critical resource usage in a storage network comprises receiving, in a storage controller, an input/output operation from a host, wherein the input/output operation identifies a storage unit, placing the input/output operation in a waiting queue, determining a maximum queue depth for at least one critical resource in the storage network required to execute the input/output command against the storage unit, and blocking one or more subsequent input/output commands from the host for the storage unit when the wait queue for the critical resource exceeds the maximum queue depth.
-
Citations
11 Claims
-
1. A method of managing critical resource usage in a storage network comprising:
-
monitoring a queue depth for a critical resource having a maximum queue depth; receiving an I/O (input/output) operation from a host for the critical resource; executing the I/O operation when the queue depth is below a threshold; calculating a new maximum queue depth for the critical resource when the queue depth for the critical resource exceeds the threshold; receiving a subsequent I/O operation from the host for the critical resource; placing the subsequent I/O operation in a waiting queue; blocking the subsequent I/O operation when the waiting queue has a queue depth that exceeds the new maximum queue depth; transmitting the new maximum queue depth to a peer storage controller; receiving, in the peer storage controller, an I/O operation from the host that identifies a storage unit; and processing the I/O operation using the new maximum queue depth, wherein the new maximum queue depth is calculated by dividing a number of available resources by a number of initiators waiting for the resources. - View Dependent Claims (2, 3, 4)
-
-
5. A storage controller, comprising:
-
a processor; a memory module comprising logic instructions stored in a computer-readable medium which, when executed by the processor, configure the controller to; receive, in the storage controller, an input/output operation from a host, wherein the input/output operation identifies a storage unit in a storage network and a critical resource in the storage network has a maximum queue depth; place the input/output operation in a waiting queue; determine a new maximum queue depth for the critical resource required to execute the input/output operation against the storage unit; block one or more subsequent input/output (I/O) operations from the host for the storage unit when the waiting queue for the critical resource exceeds the new maximum queue depth; transmit the new maximum queue depth to a peer storage controller; receive, in the peer storage controller, an I/O operation from the host that identifies a storage unit; and process the I/O operation using the new maximum queue depth, wherein the new maximum queue depth is calculated by dividing a number of available resources by a number of initiators waiting for the resources. - View Dependent Claims (6, 7, 8)
-
-
9. A computer program product comprising logic instructions stored in a computer-readable storage medium which, when executed by a processor in a storage controller, configure the controller to:
-
receive, in the storage controller, an input/output operation from a host, wherein the input/output operation identifies a storage unit in a storage network and a critical resource in the storage network has a maximum queue depth; place the input/output operation in a waiting queue; determine a new maximum queue depth for the critical resource required to execute the input/output operation against the storage unit; block one or more subsequent input/output operations from the host for the storage unit when the waiting queue for the critical resource exceeds the new maximum queue depth; transmit the new maximum queue depth to a peer storage controller; receive, in a peer storage controller, an input/output operation that from the host that identifies the storage unit; and process the input/output operation using the new maximum queue depth, wherein the new maximum queue depth is determined by dividing a number of available resources by a number of initiators waiting for the resources. - View Dependent Claims (10, 11)
-
Specification