Storage control apparatus and method for controlling number of commands executed in storage control apparatus
First Claim
1. A storage control apparatus capable of being connected to a plurality of host machines, which respectively issue commands, the storage control apparatus comprising:
- a plurality of communication ports for carrying out communications with said host machines respectively; and
a control part, which respectively processes commands received by way of said communication ports from said host machines, and which respectively transmits results of processing to said host machines,said control part;
(1) securing, from among shared port resources provided in each said communication port, command processing resources for processing said commands, and allocating the command processing resources to said host machines;
(2) respectively notifying said host machines of a receivable number, which indicates the number of commands capable of being received from said host machines, based on this amount of allocated said command processing resources; and
(3) respectively controlling the amount of said command processing resources allocated to said host machines on the basis of a communication delay time between said host machines and said communication ports.
1 Assignment
0 Petitions
Accused Products
Abstract
A storage control apparatus of the present invention controls the number of multiple commands issued from a host machine without shutting down the host machine. A communication port of the storage control apparatus carries out communications with the hosts in accordance with the iSCSI protocol. Command processing resources are managed for each communication port. A resource allocation control part calculates the number of commands capable of being received on the basis of the remaining amount of command processing resources inside shared port resources, a change in the number of commands received from a host, communication delay time, and the state of execution of a command issued from a host or the like. A MaxCmdSN is calculated by adding the results of command processing by a command execution part and the receivable number calculated by the resource allocation control part to the value of the latest CmdSN received from a host. The storage control apparatus adds the MaxCmdSN to a transmission frame and transmits it to the host.
44 Citations
20 Claims
-
1. A storage control apparatus capable of being connected to a plurality of host machines, which respectively issue commands, the storage control apparatus comprising:
-
a plurality of communication ports for carrying out communications with said host machines respectively; and a control part, which respectively processes commands received by way of said communication ports from said host machines, and which respectively transmits results of processing to said host machines, said control part; (1) securing, from among shared port resources provided in each said communication port, command processing resources for processing said commands, and allocating the command processing resources to said host machines; (2) respectively notifying said host machines of a receivable number, which indicates the number of commands capable of being received from said host machines, based on this amount of allocated said command processing resources; and (3) respectively controlling the amount of said command processing resources allocated to said host machines on the basis of a communication delay time between said host machines and said communication ports. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14)
-
-
15. A storage control apparatus, comprising:
-
a plurality of communication ports, which are respectively connected via the iSCSI protocol to a plurality of host machines, each of which issues commands; a superordinate communication part for communicating with said host machines respectively via said communication ports; a subordinate communication part for communicating with a storage device; a cache memory, which is used by said superordinate communication part and said subordinate communication part; a control memory, which stores control information for managing a command processing resource for processing said command; and a control part, which is respectively connected to said superordinate communication part, said subordinate communication part, said cache memory, and said control memory, respectively processes said commands received by said superordinate communication part by way of said communication port from said host machines, and notifies said host machines of results of the processing from said superordinate communication part via said communication port, wherein said control part; (1) respectively allocates to each of prescribed host machines a plurality of said command processing resources inside the shared port resources provided in each of said communication ports, so that the resources become approximately uniform among said prescribed host machines, which, of the host machines sharing said communication ports, are executing said commands; (2) respectively calculates a receivable number, which indicates the number of commands capable of being received from said prescribed host machines, by adding a sequence number, for showing the command issuing order notified from said prescribed host machine, to the amount of said command processing resources allocated to said prescribed host machines, and respectively notifies said prescribed host machines of this calculated receivable number; and (3) returns to said shared port resources said command processing resources to be allocated to said prescribed host machines, in accordance with the decrease in the number of said commands issued from said prescribed host machines.
-
-
16. A method for controlling the number of commands executed in a storage control apparatus, in which shared port resources for respectively managing in each communication port the command processing resources for processing a command received from a host machine are provided,
the method executing the steps of: -
allocating said command processing resources such that said host machine, which uses said communication port, is able to issue multiple said commands; receiving sequence numbers indicating commands from said host machine, and the order of the commands; storing said sequence numbers; determining whether or not any of said command processing resources allocated to said host machine has any free space; notifying said host machine that processing is not possible when free space does not exist in said command processing resources; processing, when free space exists in said command processing resource, said received command using the free space in said command processing resource; comparing the remaining amount of said shared port resources with a prescribed threshold value; increasing the amount of command processing resources to be allocated to said host machine when the remaining amount of said shared port resources exceeds said prescribed threshold value, by securing a first prescribed amount of command processing resources from the remaining amount of said shared port resource, and allocating same to said host machine; decreasing the amount of command processing resources allocated to said host machine when the remaining amount of said shared port resources is not more than said prescribed threshold value, by returning to said shared port resources a second prescribed amount of command processing resources of said command processing resources already allocating to said host machine; calculating a receivable number showing the number of commands capable of being received from said host machine, based on the amount of command processing resources allocated to said host machine and said received sequence number; and transmitting to said host machine said calculated receivable number and results of processing said received command. - View Dependent Claims (17, 18)
-
-
19. A storage control apparatus capable of being connected to a plurality of host machines, which respectively issue commands, the storage control apparatus comprising:
-
a plurality of communication ports for carrying out communications with said host machines; and a control part, which respectively processes commands received from said host machines via said communication ports, and which respectively transmits the results of processing to said host machines, wherein said control part; (1) secures, from among shared port resources provided in each of said communication ports, command processing resources for processing said commands, and respectively allocates said command processing resources to said host machines; and (2) respectively notifies said host machines of a receivable number, which indicates the number of commands capable of being received from said host machines based on the amount of said allocated command processing resources. - View Dependent Claims (20)
-
Specification