This application is based upon and claims the benefit of priority of the prior Japanese Patent Application No. 2009-55818, filed on Mar. 10, 2009, the entire contents of which are incorporated herein by reference.
Various embodiments described herein relate to storage apparatuses, relay devices, and methods for controlling issue of commands.
Connection methods for connecting targets (disks) and initiators (disk controllers) in storage apparatuses include a loop (arbitrated loop) protocol and a fabric protocol.
The loop protocol refers to a connection method in which initiators and targets are connected in sequence in a loop. Since the loop protocol allows multiple nodes to be connected to each other without using fibre channel switches, which are relatively expensive, storage area networks (SANs) can be configured at low cost. However, an increase in the number of nodes degrades performance since all of the nodes share one loop in the loop protocol.
On the other hand, the fabric protocol refers to a network using a fibre channel switch or that in which fibre channel switches are connected to each other. Since ports of initiators and those of targets are not directly connected, the fabric protocol has an excellent extensibility. Moreover, high command-processing performance can be expected compared with that of the loop protocol in which each of a plurality of targets are connected in a loop since commands are sent via only a fabric device.
Aside from these, a switching system including host devices having a function of sending frames for requesting statistical information and a plurality of fabric devices each having a function of returning the statistical information thereof in the form of frames back to the host devices in response to the frame requests and a function of switching frame transfer.
A storage apparatus includes a disk controller that issues commands to disks connected in loops and a relay device that relays the commands issued from the disk controller to the disks. The relay device includes a supervisory control unit that monitors the number of commands to be issued to each of the loops including the disks and controls the number of commands to be issued by the disk controller on the basis of the monitored results.
The object and advantages of the various embodiments will be realized and attained by means of the elements and combinations particularly pointed out in the claims.
It is to be understood that both the foregoing general description and the following detailed description are exemplary and explanatory and are not restrictive of the various embodiments, as claimed.
On the other hand, each of the disk controllers 101 is connected to the disk loops using the fabric protocol, and can easily issue commands to the disk loops.
Although the fabric protocol is a connection method with excellent extensibility and performance as described above, response to the commands may be degraded when the configuration of the storage apparatus grows in size and a large quantity of commands are issued from the plurality of disk controllers even when the fabric protocol is used. In the worst case, the response delay causes time-out of the commands, and it may be determined that a disk abnormality has occurred.
For example, when a large quantity of commands in excess of the performance of the disk d1 shown in
In order to prevent the command processing from being blocked in the fabric device 100 due to the issue of the large quantity of commands, the number of commands each of the disk controllers 101 can issue at one time can be restricted in units of disks in accordance with the performance of the disks (restriction method compatible with the disk performance). When the number of commands each of the disk controllers 101 issues at one time exceeds the limit in the restriction method, the disk controllers put the commands in queues so that a large quantity of commands are not sent to the fabric device 100. The commands are put in queues in units of disks since the performance of the disks 102 connected to the fabric device 100 vary from each other. When a large number of commands are issued to the disks 102 with low performance, response delay occurs while the commands are processed in the disks 102. Therefore, in order to control the number of commands to be issued to each disk in accordance with the performance of the disk, an upper limit is set for the number of commands to be issued to each disk 102 in accordance with the performance of the disk 102, and the number of commands to be issued is controlled so as not to exceed the upper limit in the restriction method.
However, for example, as shown in
Furthermore, the method in which each of the disk controllers controls the number of commands to be issued has the following problem. For example, it is hypothesized that each of the disk controllers included in the storage apparatus issues commands up to a predetermined threshold for issue of commands. Herein, a value obtained by dividing the number of commands a fabric device can accept by the number of the disk controllers is set to the command-issue threshold. When the number of the disk controllers is four, for example, the command-issue threshold is set to a quarter of the number of commands the fabric device can accept. When a disk controller on which loads are concentrated issues commands up to the command-issue threshold, which is a quarter of the number of commands the fabric device can accept, while the three disk controllers other than that on which the loads are concentrated do not issue any commands, the fabric device processes only a quarter of commands the device can process. As a result, the issue of commands cannot be optimally controlled in the entire system.
Therefore, in order to optimally control the issue of commands in the entire system, the number of commands a relay device typified by the fabric device processes needs to be balanced and the relay device needs to process the commands in accordance with its processing capability even when loads are concentrated on a specific disk controller. To this end, the relay device controls the issue of commands issued from each of the disk controllers instead of each of the disk controllers controlling the number of commands to be issued using a predetermined threshold (for example, a value obtained by dividing the number of commands a fabric device can accept by the number of the disk controllers).
The disk controllers 1 each include an input/output (10) control unit 11 and a management table 12 for issue of commands. The IO control units 11 issue commands to the disks. Moreover, the IO control units 11 restrict (for example, suspend) the issue of commands to the disks included in specified loops in accordance with instructions issued from a flow management unit included in the fabric device 2. The number of commands issued to each of the loops connected to the corresponding port included in the fabric device 2 is set in the management tables 12 for each port.
The fabric device 2 receives commands issued by the IO control units 11 of the disk controllers 1, and relays the commands to the loops in which the disks serving as the targets for the commands are included. The fabric device 2 includes an IO control unit 21, the flow management unit 22, and a management table 23 for issue of commands.
The IO control unit 21 receives commands from each of the IO control units 11 of the corresponding disk controller.
Moreover, the IO control unit 21 makes an inquiry to the flow management unit 22 as to whether or not the commands can be sent to the port corresponding to (connected to) the target for the commands (hereinafter referred to as the target port). The flow management unit 22 receives the inquiry from the IO control unit 21, and determines whether or not the number of commands to be issued to the target port, that is, the number of commands to be issued to the loop including the target disk exceeds a predetermined threshold by referring to the management table 23. When the flow management unit 22 determines that the number of commands to be issued to the target port exceeds the predetermined threshold, the flow management unit 22 issues instructions to the IO control unit 11 of the disk controller 1 that has issued the commands to restrict the issue of commands to the loop including the target disk. That is, the IO control unit 21 and the flow management unit 22 have a function of being supervisory control unit that monitors the number of commands to be issued by each of the disk controllers 1 to the loop including the target disk and controls the number of commands to be issued by the disk controller 1 on the basis of the monitored results.
Moreover, the flow management unit 22 determines whether or not the number of commands to be issued to the loop to which the issue of commands is restricted is lower than or equal to the threshold by referring to the management table 23. When the flow management unit 22 determines that the number of commands to be issued to the loop to which the issue of commands is restricted is lower than or equal to the threshold, the flow management unit 22 issues instructions to the IO control unit 11 of the disk controller 1 that has issued the commands to remove the restriction on the issue of commands to the loop. The management table 23 includes the number of commands to be issued for each of the target ports.
In the storage apparatus according to this embodiment shown in
First, the IO control unit 11 of a disk controller 1 issues a command to be sent to the disk P1 to the IO control unit 21 of the fabric device 2 (see Step S1 in
Next, the IO control unit 21 of the fabric device 2 adds one to the number of commands to be issued for the port A set in the management table 23 (see Step S2 in
When the flow management unit 22 determines that the number of commands to be issued for the port A exceeds the predetermined threshold, the flow management unit 22 notifies the IO control unit 21 that the command cannot be sent, and issues instructions to the IO control unit 11 of the disk controller 1 to restrict the issue of commands to the loop P (see Step S5 in
First, the IO control unit 21 of the fabric device 2 receives a response of the disk included in the loop P to the command through the port A (see Step S11 in
The flow management unit 22 refers to the management table 23, and determines whether or not the number of commands to be issued to the loop P (the number of commands to be issued for the port A) is lower than or equal to the predetermined threshold (see Step S14 in
The embodiments can be implemented in computing hardware (computing apparatus) and/or software, such as (in a non-limiting example) any computer that can store, retrieve, process and/or output data and/or communicate with other computers. The results produced can be displayed on a display of the computing hardware. A program/software implementing the embodiments may be recorded on computer-readable media comprising computer-readable recording media. The program/software implementing the embodiments may also be transmitted over transmission communication media. Examples of the computer-readable recording media include a magnetic recording apparatus, an optical disk, a magneto-optical disk, and/or a semiconductor memory (for example, RAM, ROM, etc.). Examples of the magnetic recording apparatus include a hard disk device (HDD), a flexible disk (FD), and a magnetic tape (MT). Examples of the optical disk include a DVD (Digital Versatile Disc), a DVD-RAM, a CD-ROM (Compact Disc-Read Only Memory), and a CD-R (Recordable)/RW. An example of communication media includes a carrier-wave signal. The media described above are non-transitory media.
The many features and advantages of the embodiments are apparent from the detailed specification and, thus, it is intended by the appended claims to cover all such features and advantages of the embodiments that fall within the true spirit and scope thereof. Further, since numerous modifications and changes will readily occur to those skilled in the art, it is not desired to limit the inventive embodiments to the exact construction and operation illustrated and described, and accordingly all suitable modifications and equivalents may be resorted to, falling within the scope thereof.
Number | Date | Country | Kind |
---|---|---|---|
2009-55818 | Mar 2009 | JP | national |