Storage system and connection control device

A second connection control device includes a processor. The processor receives a reception notification that notifies that a first connection control device has received a first connection request from a first main control device. The first connection request requests to establish a first connection with a first storage device via a first communication route through the first connection control device. The processor transmits a third connection request to the first storage device upon receiving the reception notification. The third connection request requests to establish a third connection with the first storage device. The processor transmits a success notification to the first main control device upon receiving a second connection request after the third connection is established. The success notification indicates that a second connection is established. The second connection request requests to establish the second connection with the first storage device via a second communication route.

CROSS-REFERENCE TO RELATED APPLICATION

This application is based upon and claims the benefit of priority of the prior Japanese Patent Application No. 2017-157119, filed on Aug. 16, 2017, the entire contents of which are incorporated herein by reference.

FIELD

The embodiments discussed herein are related to a storage system and a connection control device.

BACKGROUND

Currently, a storage system having a storage device and a control device for controlling an access to the storage device has been widely distributed. In such a storage system, a fault tolerance may be improved by making a communication route from the control device to the storage device to be redundant. As such a system, for example, a storage system having a communication route passing through a first relay device and a communication route passing through a second relay device has been proposed.

In the storage system, the control device may be made redundant. In such a system, for example, a storage system is proposed in which when one control device detects that an abnormality has occurred in a first route to a disk, the one control device communicates with the other control device to allow the one control device to access the disk by using a second route to the disk based on a result of the communication.

Related technologies are disclosed in, for example, International Publication Pamphlet No. WO 2012/032607 and Japanese Laid-Open Patent Publication No. 2009-157859.

SUMMARY

According to an aspect of the present invention, provided is a second connection control device including a switch, a communication interface, and a processor. The switch is configured to relay data transmitted between a first storage device and a first main control device via a second communication route. The communication interface is configured to communicate with a first connection control device that is configured to relay data transmitted between the first storage device and the first main control device via a first communication route different from the second communication route. The processor is configured to receive a reception notification via the communication interface. The reception notification notifies that the first connection control device has received a first connection request from the first main control device. The first connection request requests to establish a first connection with the first storage device via the first communication route through the first connection control device. The processor is configured to transmit a third connection request to the first storage device via the switch upon receiving the reception notification. The third connection request requests to establish a third connection with the first storage device. The processor is configured to transmit a success notification to the first main control device via the switch upon receiving a second connection request after the third connection is established. The success notification indicates that a second connection is established. The second connection request requests to establish the second connection with the first storage device via the second communication route. The processor is configured to transfer an input/output request to the first storage device via the switch upon receiving the input/output request. The input/output request is transmitted from the first main control device in response to reception of the success notification and requesting input or output of data to the first storage device.

DESCRIPTION OF EMBODIMENTS

In the storage system in which the communication route is made redundant as described above, for example, the following operation is performed. The control device requests connection with the storage device via a first communication route. Herein, when an abnormality occurs in the first communication route and the connection with the storage device is unsuccessful, the control device requests the connection with the storage device via a second communication route. When the connection is successful, the control device transmits an input/output request to the storage device through the second communication route.

However, in such an operation, since the control device fails to make a connection on the first communication route and then requests a connection again via the second communication route, it takes a long waiting time until the control device may transmit the input/output request. As a result, there is a problem that access performance is greatly degraded as compared with the case where the control device succeeds in the connection with the first communication route and thus transmits the input/output request via the first communication route.

First Embodiment

FIG. 1is a diagram illustrating a configuration example and an operation example of a storage system according to a first embodiment. The storage system illustrated inFIG. 1includes a control device1, connection control devices2aand2b, and a storage device3.

The control device1accesses the storage device3. The control device1may access the storage device3via a communication route11which passes through the connection control device2a. The control device1may also access the storage device3via a communication route12which passes through the connection control device2b.

The connection control device2arelays data transmitted and received via the communication route11. The connection control device2brelays data transmitted and received via the communication route12. Further, the connection control device2aand the connection control device2bare configured to communicate with each other. In the example ofFIG. 1, the connection control device2aand the connection control device2bare configured to communicate via a communication route13which is independent from the communication routes11and12.

The storage device3is an access target from the control device1and is implemented as, for example, a hard disk drive (HDD), a solid state drive (SSD), and the like.

Next, a processing when the control device1accesses the storage device3will be described.

When accessing the storage device3, the control device1first transmits a connection request to the storage device3. When the connection with the storage device3is established by the connection request, the control device1may transmit an input/output request to the storage device3via a communication route in which the connection is established. Hereinafter, a detailed processing example will be described.

As illustrated on a left side ofFIG. 1, the control device1first transmits a connection request21awhich requests the connection with the storage device3via the communication route11. Upon receiving the connection request21a, the connection control device2atransmits the connection request21ato the storage device3and transmits a reception notification22indicating that the connection request21ais received to the connection control device2b. Upon receiving the reception notification22, the connection control device2btransmits a connection request21bwhich requests the connection with the storage device3to the storage device3.

Herein, although not illustrated, when the connection via the communication route11using the connection request21ais successful, the control device1may transmit the input/output request to the storage device3via the communication route11. However, herein, as illustrated on a right side ofFIG. 1, it is assumed that the connection via the communication route11using the connection request21ais unsuccessful due to an abnormality of the communication route11. Meanwhile, it is assumed that the connection between the connection control device2band the storage device3using the connection request21bis successful.

Upon recognizing that the connection via the communication route11is unsuccessful, the control device1transmits a connection request21crequesting a connection with the storage device3via the communication route12. Upon receiving the connection request21cafter a successful connection with the storage device3, the connection control device2btransmits a success notification23indicating that the connection is successful to the control device1.

The control device1receives the success notification23, recognizes that the connection via the communication route12is successful, and transmits the input/output request (not illustrated) for the storage device3through the communication route12. Since the connection between the connection control device2band the storage device3has been successful, the connection control device2btransmits the input/output request received from the control device1to the storage device3. Each of the control device1and the connection control devices2aand2bhas a hardware configuration similar to a hardware configuration (described later) illustrated inFIG. 3. At least, each has a processor, a random access memory (RAM), an auxiliary storage device, and a communication interface.

According to the above processing, in parallel with the connection request processing between the control device1and the storage device3via the communication route11, the connection request processing between the connection control device2band the storage device3in the communication route12is executed. In addition, when the connection between the connection control device2band the storage device3is successful when the connection via the communication route11is unsuccessful, a response corresponding to the connection request21ctransmitted from the control device1is then returned not from the storage device3but from the connection control device2b. Therefore, it is possible to shorten a waiting time of the control device1up to the time when the response is received as compared with a case where the response is returned from the storage device3. Therefore, it is possible to enhance an access performance to the storage device3when an abnormality of one communication route occurs.

Second Embodiment

FIG. 2is a diagram illustrating a configuration example of a storage system according to a second embodiment. The storage system illustrated inFIG. 2includes a controller enclosure (CE)100and drive enclosures (DEs)200and300. Controller modules (CMs)110and120are mounted on the CE100. Multiple HDDs is mounted on each of the DEs200and300. Further, the DEs200and300are connected in series to the CMs110and120in the order. In addition, the number of DEs included in the storage system is not limited to two as in the example ofFIG. 2and may be a predetermined number of one or three or more.

A host device400is connected to the CMs110and120. The CMs110and120are storage control devices that access the HDDs mounted in the DEs200and300in response to a request from the host device400. For example, the CMs110and120set logical volumes using storage areas of the HDDs mounted on the DEs200and300and accept the access to the logical volume from the host device400.

The CMs110and120and the host device400are connected via a storage area network (SAN) using, for example, a fiber channel (FC), Internet small computer system interface (iSCSI), or the like. In addition, multiple host devices400may be connected to the CMs110and120. In this case, for example, one host device400may access the HDDs of the DEs200and300via the CM110and another host device400may access the HDDs of the DEs200and300via the CM120. Further, the storage device to be accessed from the host device400, which be included in the DEs200and300is not limited to the HDD but may be another type of non-volatile storage device such as an SSD.

FIG. 3is a diagram illustrating a hardware configuration example of a CM. Further, as one example, inFIG. 3, a hardware configuration of the CM110is illustrated, but the CM120may also be implemented by the same hardware configuration as the CM110.

The CM110includes a processor111, a RAM112, an SSD113, a platform controller hub (PCH)114, a channel adapter (CA)115, an input output controller (IOC)116, and an expander (EXP)117.

The processor111comprehensively controls the entirety of the CM110. The processor111is, for example, any one of a central processing unit (CPU), a micro processing unit (MPU), a digital signal processor (DSP), an application specific integrated circuit (ASIC), a graphics processing unit (GPU), and a programmable logic device (PLD). Further, the processor111may be, for example, a combination of two or more elements among the CPU, the MPU, the DSP, the ASIC, the GPU, and the PLD.

The RAM112is a main storage device of the CM110. The RAM112temporarily stores at least a part of a program of an operating system (OS) or an application program executed in the processor111. Further, the RAM112stores various data used for the processing by the processor111.

The SSD113is an auxiliary storage device of the CM110. The programs of the OS, the application programs, and various data are stored in the SSD113. Further, the CM110may include the HDD instead of the SSD113as the auxiliary storage device. The PCH114transmits and receives data between the processor111and the SSD113.

The CA115is an interface for communication with the host device400. The IOC116is an interface which transmits and receives data between the processor111and the HDDs in the DEs200and300. The expander117relays data transmitted and received between the IOC116and the DE200. Further, although details will be described later, the IOC116and the expander117are also connected to the other CM120.

In the embodiment, as an example, it is assumed that the IOC116is an SAS interface that operates as a serial attached small computer system interface (SCSI) (SAS) initiator. Further, it is assumed that the expander117is an SAS expander.

FIG. 4is a diagram illustrating an internal configuration example of a DE. Further, inFIG. 4, connection states between the CMs110and120and the DEs200and300are also illustrated.

The HDDs201,202,203, . . . are storage devices to be accessed from the host device400. Each of the HDDs201,202,203, . . . is connected to both the expanders210and220. The expander210relays data transmitted and received between the expander117of the CM110and the HDDs201,202,203, . . . . Further, the expander210is also connected with the expander310of the DE300to relay even data transmitted and received between the expander117and the expander310.

Meanwhile, the expander220relays data transmitted and received between the expander127of the CM120and the HDDs201,202,203, . . . Further, the expander220is also connected with the expander320of the DE300to relay even data transmitted and received between the expander127and the expander320. In addition, the expander210and the expander220may directly communicate with each other via a communication route230.

The HDDs301,302,303, . . . are the storage devices to be accessed from the host device400. Each of the HDDs301,302,303, . . . is connected to both the expanders310and320. The expander310relays data transmitted and received between the expander210of the DE200and the HDDs301,302,303, . . . . The expander320relays data transmitted and received between the expander220of the DE200and the HDDs301,302,303, . . . . In addition, the expander310and the expander320may directly communicate with each other via a communication route330.

In the embodiment, all of the expanders210,220,310, and320are SAS expanders.

Herein,FIG. 5is a diagram illustrating the internal configuration example of an expander. Further, inFIG. 5, as an example, the expanders210and220of the DE200are illustrated, but the expanders310and320of the DE300may also be implemented by the same hardware configuration.

The expander210includes a switch211, a controller212, a memory213, and an I2C interface (I/F)214. Further, the expander220includes a switch221, a controller222, a memory223, and an I2C interface (I/F)224.

Under the control by the controller212, the switch211relays data transmitted and received between the expander117of the CM110and the HDDs201,202,203, . . . in the DE200or the expander310of the DE300.

The controller212controls a data relay operation in the switch211. Further, the controller212may communicate with the controller222of the other expander220via the communication route230. In addition, the controller212may include, for example, a processor, and may read a firmware program stored in the memory213and execute various processing according to the firmware program.

The memory213stores various data used in the processing of the controller212. Further, when the controller212includes the processor, the memory213stores the firmware program executed in the controller212.

The I2C interface214is connected with the I2C interface224of the other expander220via the communication route230. Further, in the embodiment, it is assumed that the communication route230is an I2C bus. The I2C interface214controls communication between the controller212and the other expander220.

Meanwhile, the expander220has the same hardware configuration as the expander210. That is, the switch221relays data transmitted and received between the expander127of the CM120and the HDDs201,202,203, . . . in the DE200or the expander320of the DE300. The controller222controls the data relay operation in the switch221. The memory223stores various data used in the processing of the controller222. The I2C interface224controls communication between the controller222and the other expander210.

Next, an access route from the IOC to the HDD will be described with reference toFIG. 4.

Two access routes are installed between the IOC116of the CM110and the HDD in each of the DEs200and300. Specifically, the access routes from the IOC116to the HDDs201,202,203, . . . of the DE200include a route which passes through the expanders117and210and a route which passes through the expanders127and220. Further, the access routes from the IOC116to the HDDs300,301,302, . . . of the DE300include a route which passes through the expanders117,210, and310and a route which passes through the expanders127,220, and320.

Similarly, two access routes are also installed between the IOC126of the CM120and the HDD in each of the DEs200and300. Specifically, the access routes from the IOC126to the HDDs201,202,203, . . . of the DE200include a route which passes through the expanders127and220and a route which passes through the expanders117and210. Further, the access routes from the IOC126to the HDDs300,301,302, . . . of the DE300include a route which passes through the expanders127,220, and320and a route which passes through the expanders117,210, and310.

As described above, the access routes to each HDD from the IOCs116and126are made redundant. As a result, when the IOCs116and126may not access the HDD using one access route, the IOCs116and126may attempt to access the HDD by using the other access route.

In the embodiment, of the access routes to the respective HDDs from the IOC116, the route which passes through the expander117is referred to as a “normal route131a” and the route which passes through the expander127is referred to as a “detour route131b”. It is assumed that the normal route131ais an access route used in normal times and the detour route131bis an access route that is used preliminarily when the normal route131amay not be used.

Of the access routes to the respective HDDs from the IOC126, the route which passes through the expander127is referred to as a “normal route132a” and the route which passes through the expander117is referred to as a “detour route132b”. It is assumed that the normal route132ais an access route used in the normal times and the detour route132bis an access route that is used preliminarily when the normal route132amay not be used.

However, the IOC and the expander are connected and the expander and the expander are connected by multiple physical links. Specifically, the IOC116and the expander117, the IOC116and the expander127, the expander117and the expander210, the expander210and the expander310, the IOC126and the expander127, the IOC126and the expander117, the expander127and the expander220, and the expander220and the expander320are respectively connected by two or more of the same number of physical links. Herein, the physical link is a minimum unit of communication route which performs serial communication and includes a differential signal line pair for transmission and a differential signal line pair for reception.

According to the SAS standard, it is possible to perform communication by bundling multiple physical links and using the bundled physical links as one virtual communication route. Such a virtual communication route is called “wide link”. Further, when the communication is performed by individually using the physical links without using the wide link, each physical link is called “narrow link”.

In the SAS standard, a connection is established by the unit of the wide link or the narrow link between the IOC which is the initiator and the HDD which is a target device. Then, between the IOC and the HDD of which the connection is established, the communication is performed using exclusively the communication route (wide link or narrow link). Further, the communication is performed in parallel between the communication routes of which the connection is established.

In the following description, a route on which the wide link or the narrow link is formed is described as a “communication route”. For example, it is assumed that the number of communication routes between the IOC and the expander and between the expander and the expander is “4”. In this case, since four communication routes are formed in the access route to the HDD side via the expander117, a maximum of four connections are established in the normal route131aand the detour route132b. That is, the total number of HDDs that may be simultaneously accessed using the normal route131aand the detour route132bis limited to an upper limit of “4” or less. Similarly, since four communication routes are formed in the access route to the HDD side via the expander127, a maximum of four connections are established even in the normal route132aand the detour route131b. That is, the total number of HDDs that may be simultaneously accessed using the normal route132aand the detour route131bis limited to the upper limit “4” or less.

Next, a procedure of the access from the IOC to the HDD will be described. In particular, herein, a case where the access using the normal route is unsuccessful and the access using the detour route is performed will be described. In the following description, first, a comparative example of the access procedure will be described with reference toFIG. 6, the problem will be described, and thereafter, the access procedure in the second embodiment will be described with reference toFIGS. 7 and 8.

FIG. 6is a sequence diagram illustrating a comparative example of an access procedure from an IOC to an HDD. InFIG. 6, a procedure when the IOC116of the CM110accesses the HDD301of the DE300is illustrated as an example.

First, the IOC116transmits an OPEN message for requesting establishment of connection to the HDD301to the HDD301via the normal route131a(step S11a). That is, the OPEN message is transmitted from the IOC116to the expander117. The transmitted OPEN message is transmitted to the expander210of the DE200and also transmitted to the expander310of the DE300(step S11b) and received by the HDD301(step S11c). Assuming that the HDD301has a first port connected to the expander310and a second port connected to the expander320, the OPEN message is received at a first port.

In the process of transmitting the OPEN message, when each of the expanders117,210, and310receives the OPEN message, each of the expanders117,210, and310locks the communication route used for the reception. As a result, the communication route is occupied and it is impossible to transmit another OPEN message via the communication route.

Herein, it is assumed that the IOC116fails to establish the connection. For example, it is assumed that a response message indicating that a connection establishment request may not be accepted from the HDD301is transmitted because the port at the expander310side is busy or the like (step S12a). In this case, the response message is transmitted from the expander310to the expander210(step S12b) and also transmitted to the expander117and received by the IOC116(step S12c). Further, as another example, the IOC116may recognize that the establishment of the connection is unsuccessful because the response may not be received within a predetermined time-out period from the transmission of the OPEN message.

When the IOC116recognizes that the connection establishment is unsuccessful, the IOC116attempts to establish the connection with the HDD301via the detour route131b. That is, the IOC116transmits the OPEN message addressed to the HDD301via the detour route131b(step S13a). The OPEN message is transmitted from the IOC116to the expander127of the CM120, transmitted to the expander220of the DE200, transmitted to the expander320of the DE300(step S13b), and received at the second port of the HDD301(step S13c). Further, in the process of transmitting the OPEN message, when each of the expanders127,220, and320receives the OPEN message, each of the expanders127,220, and320locks the communication route used for the reception.

When accepting the connection establishment request, the HDD301returns a response message (specifically, an OPEN_ACCEPT message) indicating the purpose (step S14a). The response message is transmitted from the expander320to the expander220(step S14b) and also transmitted to the expander127and received by the IOC116(step S14c).

As a result, the connection via the detour route131bis established between the IOC116and the HDD301. The IOC116transmits an (input/output) I/O command which requests reading or writing of data from or to the HDD301(step S15a). The I/O command is transmitted to the expander127of the CM120, transmitted to the expander220of the DE200, transmitted to the expander320of the DE300(step S15b), and received by the HDD301(step S15c).

Within a predetermined time after the expanders117,210, and310lock the communication route with reception of the OPEN message or thereafter, the data is last transmitted through the communication route, the expanders117,210, and310release the lock of the communication route. Meanwhile, after the step S15a, when the I/O processing with the HDD301is completed, the IOC116transmits a message for indicating a lock release. In response to the reception of the message, the expanders127,220, and320release the lock of the communication route.

In the processing ofFIG. 6, the IOC116first transmits the OPEN message via the normal route131aand waits for reception of the response message. In the example ofFIG. 6, it takes a waiting time T1until the response message is received. Then, after recognizing that the establishment of the connection is unsuccessful, the IOC116transmits the OPEN message via the detour route131band waits for the reception of the response message. In the example ofFIG. 6, it takes a waiting time T2until the response message is received.

As described above, in the above processing, the processing of transmitting the OPEN message and receiving the response message is repeated twice. Therefore, there is a problem that it takes a long time until the I/O command may be transmitted after the connection with the HDD301is established.

For example, when the response message to the OPEN message transmitted in step S11ais not returned, the IOC116waits for the reception of the response message until a predetermined time-out period elapses. However, since the time-out period is set to be longer than the above waiting time T1, in this case, the time until the I/O command may be transmitted becomes longer.

As an example of a solution to such a problem, a method is conceivable in which the IOC116simultaneously transmits the OPEN message with respect to both the normal route131aand the detour route131b. However, in such a method, although only one communication route is used for actual communication, two communication routes are temporarily occupied. Therefore, for example, there is a possibility that the IOC126that uses the communication route passing through the expanders127and220as the normal route132awill be deprived of an opportunity to communicate via the normal route132a, resulting in deterioration in communication efficiency.

In response to such a problem, in the storage system according to the second embodiment, the operations illustrated inFIGS. 7 and 8below are performed.

FIG. 7is a sequence diagram illustrating a first example of an access procedure in a second embodiment. In the example ofFIG. 7, the operations of the expanders210and220included in the DE200directly connected to the CM110(DE at the first stage) are different from those in the comparative example ofFIG. 6.

Similarly to the comparative example ofFIG. 6, first, the IOC116transmits the OPEN message for requesting the establishment of the connection to the HDD301to the HDD301via the normal route131a(step S21a). The OPEN message is transmitted from the IOC116to the expander117and transmitted to the expander210of the DE200.

Upon receiving the OPEN message, the expander210transmits the OPEN message to the expander310of the DE300(step S21b). At the same time, the expander210notifies the other expander220of the reception of the OPEN message via the communication route230(step S22). Further, similarly to the comparative example ofFIG. 6, the OPEN message transmitted to the expander310is received at the first port of the HDD301(step S21c).

Upon receiving the reception notification of the OPEN message, the other expander220determines whether the communication route with the HDD301has an empty space (i.e., whether there is a communication route that is not locked). When it is determined that the communication route has the empty space, the expander220transmits the OPEN message addressed to the HDD301to the expander320of the DE300(step S23a). Hereinafter, the OPEN message transmitted from the expander as a starting point is described as a “dummy OPEN message”. In addition, as the dummy OPEN message is transmitted, the expander220locks the communication route used for the transmission.

The dummy OPEN message transmitted to the expander320is received at the second port of the HDD301(step S23b). As a result, the processing of steps S22, S23a, and S23bis executed in parallel with the processing of steps S21band S21c.

Herein, similarly to the comparative example ofFIG. 6, it is assumed that the HDD301returns a response message indicating that the connection establishment request may not be accepted with respect to the OPEN message received from the expander310(step S24a). The response message is transmitted from the expander310to the expander210(step S24b) and also transmitted to the expander117and received by the IOC116(step S24c).

Meanwhile, it is assumed that the HDD301returns the OPEN_ACCEPT message indicating an acceptance of the connection establishment request in response to the dummy OPEN message received from the expander320(step S25a). The OPEN_ACCEPT message is transmitted from the expander320to the expander220(step S25b). When the expander220receives the OPEN_ACCEPT message, the communication route is secured between the expander220and the HDD301. In this case, the expander220records an SAS address of the HDD301in the memory223(step S26).

When the IOC116recognizes that the connection establishment is unsuccessful from the response message received in step S24c, the IOC116attempts to establish the connection with the HDD301via the detour route131bsimilarly to the comparative example ofFIG. 6. That is, the IOC116transmits the OPEN message addressed to the HDD301via the detour route131b(step S27). The OPEN message is transmitted from the IOC116to the expander127of the CM120and received by the expander220of the DE200.

The expander220extracts the SAS address of the HDD301as a reception destination from the received OPEN message and determines whether the SAS address is recorded in the memory223. In the example ofFIG. 7, the corresponding SAS address is recorded as the processing of step S26. When it is determined that the corresponding SAS address is recorded, the expander220returns the OPEN_ACCEPT message indicating the acceptance of the connection establishment request (step S28). The OPEN_ACCEPT message is transmitted to the IOC116via the expander127.

When the IOC116receives the OPEN_ACCEPT message, the communication route is secured between the IOC116and the expander220. Since the communication route is already secured between the expander220and the HDD301, the connection between the IOC116and the HDD301is established at this time. Thereafter, the IOC116may instruct the HDD301to execute the I/O processing by transmitting the I/O command through the secured communication route (steps S29ato S29c).

In the above processing ofFIG. 7, the OPEN message transmitted from the IOC116is transmitted from the expander210to the HDD301and the response message thereto is returned to the IOC116. In parallel with such an operation, the dummy OPEN message from the expander220is transmitted to the HDD301and the response message thereto is returned to the expander220. That is, an operation for securing the communication route from the expander220to the HDD301, which is a part of the communication route on the detour route131b, is performed in parallel with the operation for securing the communication route on the normal route131afrom the IOC116to the HDD301.

When the IOC116recognizes that the connection establishment in the normal route131ais unsuccessful, the IOC116attempts to establish a connection in the detour route131b. In this case, the OPEN message transmitted from the IOC116onto the detour route131bis received by the expander220without reaching the HDD301as the reception destination and the response message is returned from the expander220. As a result, the connection on the detour route131bfrom the IOC116to the HDD301is established and the IOC116starts a transmission of the I/O command in response to the response message from the expander220.

Through such an operation, a waiting time T3until the IOC116receives the response message after transmitting the OPEN message on the detour route131bmay be shorter than the waiting time T2illustrated inFIG. 6. Therefore, it is possible to shorten the time until the I/O command may be transmitted to the HDD301.

FIG. 8is a sequence diagram illustrating a second example of the access procedure in the second embodiment. Further, inFIG. 8, the same processing asFIG. 7is denoted by the same step number.

FIG. 8illustrates a processing example in the case where the expander220receives the OPEN message via the normal route132ain a state where the communication route is secured by the dummy OPEN message in the processing ofFIG. 7. For example, it is assumed that after the expander220records the SAS address of the HDD302in the memory223in step S26, before the IOC116transmits the OPEN message in step S27, the IOC126of the CM120transmits the OPEN message (step S31). Here, it is assumed that the transmitted OPEN message is a message addressed to the HDD302of the DE300.

In this case, it is assumed that the communication route from the expander220to the HDD side has no empty space. In this case, it is determined that the communication route secured according to the OPEN message transmitted via the normal route132atakes priority over the communication route secured according to the dummy OPEN message. The reason is that the communication route secured according to the dummy OPEN message is a communication route under reservation, which is not yet used by communication by the IOC116.

Therefore, the expander220executes processing for releasing the communication route secured between the expander220and the HDD302according to the dummy OPEN message. Specifically, the expander220releases the lock of the communication route to the HDD302. At the same time, the expander220transmits a cancellation instruction message for canceling the dummy OPEN message addressed to the HDD302(specifically, a CLOSE message) to the HDD302(step S32a).

Upon receiving the cancellation instruction message, the expander320of the DE releases the lock of the communication route to the HDD301and transmits the cancellation instruction message to the HDD301(step S32b). As a result, the communication route between the expander220and the HDD301is released. Further, although not illustrated, in fact, the cancellation instruction message (CLOSE message) is also transmitted from the HDD301to the expander220.

When the communication route between the expander220and the HDD301is released, the expander220transmits the OPEN message addressed to the HDD302, which is received from the IOC126, to the expander320(step S33a). The OPEN message is also transmitted from the expander320to the HDD302(step S33b). The OPEN message is also received at the second port connected to the expander320among the ports of the HDD302.

Although not illustrated, the OPEN_ACCEPT message addressed to the IOC126is returned from the HDD302thereafter. As a result, the connection between the IOC126and the HDD302is established, so that the IOC126may transmit the I/O command addressed to the HDD302.

By the above processing, the OPEN message transmitted via the normal route, which is a regular route, may be processed with a higher priority than the dummy OPEN message for temporarily securing the communication route. Therefore, an influence of the processing for temporarily securing the communication route on the detour route on the transmission processing of the I/O command via the normal route decreases. As a result, it is possible to suppress degradation of the access performance to the HDD via the normal route due to the influence of the processing for temporarily securing the communication route.

Herein, the aforementioned processing example in which the IOC116concurrently transmits the OPEN message to both the normal route131aand the detour route131bis compared with the processing illustrated inFIG. 8. In the processing example described above, the communication route on the detour route131bbetween the IOC116and the HDD301is secured by transmitting the OPEN message via the detour route131b. This state continues at least until the IOC116determines whether the connection on the normal route131ais established.

During the continuation period, the communication route is occupied even when the I/O command is not transmitted via the communication route secured on the detour route131b. Therefore, although the communication route passing through the expander127has no empty space and furthermore, the OPEN message from the IOC126is transmitted during the continuation period, the communication route secured in the above procedure is not released and the IOC126may not thus transmit the OPEN message. Therefore, the performance of the access through the normal route132aby the IOC126deteriorates.

However, according to the processing ofFIG. 8, in the same situation as above, the temporarily secured communication route is released according to the dummy OPEN message and the OPEN message from the IOC126is transmitted via the communication route. Therefore, the deterioration of the access performance through the normal route132aby the IOC126may be suppressed.

According to the processing ofFIG. 8, as compared with the aforementioned processing example, a period during which the communication route is provisionally secured may be shortened, so that the use efficiency of the communication route is enhanced. Therefore, the access performance to the HDD as the entire storage system may be enhanced while enabling an I/O access via the detour route.

Next,FIG. 9is a diagram illustrating an example of management information stored in a DE of a first stage.FIG. 9illustrates the example of the management information stored in the memory213of the expander210of the DE200as an example, but management information having the same data structure is also stored in the memory223of the expander220.

A route management table213aand an address management table231bare stored in the memory213.

The route management table213ais a table which manages an empty state of the communication route via the expander220and information on the locked communication route. The route management table213ahas items of a communication route number and the SAS address.

In the item of communication route number, an identification number of the communication route is registered. In the SAS address item, when the communication route is locked, the SAS address of the HDD as a transmission destination of the OPEN message or the dummy OPEN message is registered. Further, when the communication route is not locked (i.e., when the communication route is empty), “NONE” indicating that there is no registration information is registered in the SAS address.

In the address management table213b, when a predetermined communication route is secured according to the transmission of the dummy OPEN message, the SAS address of the HDD as the transmission destination of the dummy OPEN message is registered. In other words, the SAS address indicating the HDD as the transmission destination of the dummy OPEN message among the SAS addresses registered in the route management table213ais registered in the address management table213b.

Next, the processing of the expanders210and220mounted on the DE200of the first stage will be described with reference to flowcharts.

FIG. 10is a flowchart illustrating a processing example in a case where an OPEN message is received via a normal route.

(Step S51) The expander receives the OPEN message transmitted from the IOC via the normal route. For example, when the expander210executes the processing ofFIG. 10, the expander210receives the OPEN message transmitted from the IOC116of the CM110. Upon detecting the reception of the OPEN message, a controller of the expander executes the processing after step S52.

(Step S52) The controller transmits a reception notification indicating that the OPEN message is received to the other expander in the same DE200via the communication route230. In this case, the SAS address indicating the HDD as the transmission destination of the received OPEN message is transmitted to the other expander together with the reception notification. Further, the reception notification indicates a requesting the transmission of the dummy OPEN message to the other expander.

(Step S53) The controller refers to the route management table stored in the memory to determine whether there is an unlocked and unused communication route. When there is a record in which the SAS address is not registered among records of the route management table, it is determined that there is an unused communication route. When there is the unused communication route, the controller executes the processing of step S56and when there is no unused communication route, the controller executes the processing of step S54.

(Step S54) The controller refers to the route management table and determines whether there is the communication route through which the dummy OPEN message is transmitted (i.e., a transmission route locked by transmission of the dummy OPEN message). When one or more SAS addresses are registered in the address management table213b, it is determined that there is the communication route through which the dummy OPEN message is transmitted. When there is the communication route through which the dummy OPEN message is transmitted, the controller executes the processing of step S55and when there is no communication route through which the dummy OPEN message is transmitted, the controller executes the processing of step S57.

(Step S55) The controller executes processing for canceling the dummy OPEN message of which transmissions is already completed. Specifically, the controller releases the lock on the communication route through which the dummy OPEN message is transmitted and transmits a cancellation instruction message of the dummy OPEN message via the communication route. The transmission destination of the cancellation instruction message is the same HDD as the transmission destination of the dummy OPEN message. The HDD as the transmission destination is determined based on the route management table and the address management table.

The controller deletes the SAS address of the HDD as the transmission destination of the cancellation instruction message from both the route management table and the address management table.

When there are multiple communication routes through which the dummy OPEN message is transmitted, that is, when multiple SAS addresses are registered in the address management table213b, the controller selects one SAS address among the SAS addresses to execute the above processing. For example, the controller selects the SAS address of the HDD as the transmission destination to which the dummy OPEN message is transmitted most recently.

(Step S56) The controller transmits the OPEN message received in step S51to the HDD as the transmission destination via a switch. Further, the controller locks the communication route through which the OPEN message is transmitted and registers the SAS address of the HDD as the transmission destination of the OPEN message in the record corresponding to the locked communication route among the records of the route management table. In addition, when step S56is executed after execution of step S55, the OPEN message is transmitted via the communication route of which lock is released in step S55.

(Step S57) The controller returns an OPEN_REJECT message to the IOC as a transmission source of the OPEN message received in step S51via the switch. The OPEN_REJECT message is a response message indicating that the connection with the HDD as the transmission destination of the received OPEN message may not be established.

FIG. 11is a flowchart illustrating a processing example in a case where a reception notification of the OPEN message is received from the other expander in the same DE.

(Step S61) The controller of the expander receives the reception notification of the OPEN message from the other expander within the same DE200via the communication route230. In this case, the controller also receives the SAS address of the HDD as the transmission destination together with the reception notification. For example, when the expander220executes the processing ofFIG. 11, the expander220receives the reception notification of the OPEN message and the SAS address from the expander210.

The reception processing is executed when the processing of step S52inFIG. 10is executed by the other expander. As described above, the reception notification indicates a requesting the transmission of the dummy OPEN message.

(Step S62) The controller refers to the route management table stored in the memory to determine whether there is the unlocked unused communication route. When there is a record in which the SAS address is not registered among records of the route management table, it is determined that there is an unused communication route. When there is the unused communication route, the controller executes the processing of step S63, and when there is no unused communication route, the controller terminates the processing.

(Step S63) The controller transmits the dummy OPEN message, in which the SAS address of the HDD as the transmission destination received in step S61is configured as the transmission destination, via the switch.

FIG. 12is a flowchart illustrating a processing example in a case where a response message to transmission of the OPEN message is received.

(Step S71) The expander receives the response message to the transmission of the OPEN message or the dummy OPEN message. Upon detecting the reception of the response message, the controller of the expander executes the processing after step S72.

(Step S72) The controller determines whether a return destination of the response message is the IOC or the expander itself. In the former case, the response message is transmitted in response to the OPEN message and in the latter case, the response message is transmitted in response to the dummy OPEN message. When the return destination is the IOC, the controller executes the processing of step S73, and when the return destination is the expander itself, the controller executes the processing of step S76.

(Step S73) Based on a reception destination of the received response message, the controller determines whether the response message is to be returned via the normal route or returned via the detour route. In the case of returning the response message via the normal route, the controller executes the processing of step S74, and in the case of returning the response message via the detour route, the controller executes the processing of step S75.

(Step S74) In this case, the request for the transmission of the dummy OPEN message to the HDD as the transmission source of the received response message is completed with respect to the other expander. In this case, the controller notifies the other expander of a response result indicated by the received response message via the communication route230. When the received response message is the OPEN_ACCEPT message indicating a normal response, it is notified that the received response message is the normal response as the response result. Meanwhile, when the received response message indicates an abnormal response, it is notified that the received response message is the abnormal response as the response result. Further, in this case, the SAS address of the HDD as the transmission source of the response message is also notified together with the response result.

(Step S75) The controller transmits the response message received in step S71to the IOC as the transmission destination via the switch.

When the response message is the OPEN_ACCEPT message, the communication route with the HDD as transmission source of the response message is secured at the time of step S75. Further, when “No” is determined in step S73, there is a possibility of receiving the I/O command from the IOC via the detour route after that. When receiving the I/O command via the detour route, the expander transmits the I/O command to the HDD by using the secured communication route (corresponding to step S29binFIG. 7).

(Step S76) The controller determines whether the received response message is the OPEN_ACCEPT message indicating the normal response. When the received response message indicates the normal response, the controller executes the processing of step S77and when the received response message indicates the abnormal response, the controller terminates the processing. Further, in the latter case, it is not possible to secure the communication route on the detour route by the dummy OPEN message.

(Step S77) When it is determined in step S76that the response message indicates the normal response, in accordance with the transmission of the dummy OPEN message, the connection is established between the expander and the HDD as the transmission source of the response message. That is, in this state, the communication route between the expander and the HDD is temporarily secured. In this case, the controller registers the SAS address of the HDD as the transmission source of the received response message in the address management table stored in the memory.

FIG. 13is a flowchart illustrating a processing example in a case where a response result from the other expander in the same DE is received. Further, the processing inFIG. 13is executed by the expander that transmits the dummy OPEN message in step S63ofFIG. 11.

(Step S81) The controller of the expander receives the response result to the OPEN message from the other expander within the same DE200via the communication route230. In this case, the controller also receives the SAS address of the HDD together with the response result. For example, when the expander220executes the processing ofFIG. 13, the expander220receives the response result to the OPEN message and the SAS address from the expander210.

The reception processing is executed when the processing of step S74inFIG. 12is executed by the other expander.

(Step S82) The controller determines whether the response result received in step S81indicates a normal response. When the response result indicates a normal response, the controller executes the processing of step S83, and when the response result indicates an abnormal response, the controller terminates the processing.

(Step S83) The controller executes processing for canceling the dummy OPEN message of which transmission is already completed. The transmission-completed dummy OPEN message described herein is a dummy OPEN message of which transmission is completed to the HDD indicated by the SAS address received in step S61.

Specifically, the controller releases the lock on the communication route through which the dummy OPEN message is transmitted and transmits a cancellation instruction message of the dummy OPEN message via the communication route. The transmission destination of the cancellation instruction message is the same HDD as the transmission destination of the dummy OPEN message, and the HDD is the HDD indicated by the SAS address received in step S61.

The controller deletes the SAS address of the HDD as the transmission destination of the cancellation instruction message from both the route management table and the address management table.

A case where the processing of step S83is executed is a case where the processing of securing the connection on the normal route via the other expander is executed and the securing of the connection is successful. In this case, by executing the processing of step S83, the communication route temporarily secured on the detour route is released. The processing of step S83is executed immediately after the other expander receives the OPEN_ACCEPT message from the HDD. Therefore, a time for temporarily securing the communication route on the detour route may be minimized, thereby enhancing the use efficiency of the communication route.

FIG. 14is a flowchart illustrating a processing example in a case where the OPEN message is received via a detour route.

(Step S91) The expander receives the OPEN message transmitted from the IOC via the detour route. For example, when the expander220executes the processing ofFIG. 14, the expander220receives the OPEN message transmitted from the IOC116of the CM110. Upon detecting the reception of the OPEN message, a controller of the expander executes the processing after step S92.

(Step S92) The controller refers to the address management table stored in the memory to determine whether the SAS address of the HDD is recorded in the address management table. When the SAS address is recorded, the controller executes the processing of step S93, and when the SAS address is not recorded, the controller executes the processing of step S98.

(Steps S93to S95) In steps S93to S95, processings similar to steps S53to S55ofFIG. 10are executed. That is, the controller determines whether there is the unused communication route (step S93) and when there is the unused communication route, the controller executes the processing of step S96. Meanwhile, when there is no unused communication route, the controller determines whether there is the communication route through which the dummy OPEN message is transmitted (step S94) and when there is the corresponding communication route, the controller executes processing for canceling one dummy OPEN message of which transmission is completed (step S95). Further, when there is no corresponding communication route in step S94, the controller executes the processing of step S97.

(Step S96) The controller returns the OPEN_ACCEPT message to the IOC as the transmission source of the OPEN message received in step S91via the switch. The OPEN_ACCEPT message is a response message indicating that the connection establishment request is accepted with respect to the received OPEN message. In addition, the controller deletes the SAS address indicating the HDD as the transmission destination of the received OPEN message from the address management table stored in the memory.

As the IOC receives the returned OPEN_ACCEPT message, the connection between the IOC and the expander is established. In this case, the connection between the expander and the HDD as the transmission destination of the OPEN message received in step S91is already established (see step S77inFIG. 12). For this reason, since the connection on the detour route between the IOC and the HDD is established, the IOC may transmit the I/O command to the HDD via the detour route.

The processing of step S96corresponds to the processing of step S28ofFIG. 7. By the processing, the IOC of the transmission source of the OPEN message may receive the response to the OPEN message in a shorter time than the time when the OPEN message reaches the HDD as the reception destination and receives the response from the HDD as the reception destination. Therefore, it is possible to shorten the time from the time when the IOC transmits the OPEN message on the detour route to the time when the IOC may start transmitting the I/O command.

(Step S97) The controller returns the OPEN_REJECT message to the IOC as the transmission source of the OPEN message received in step S91via the switch. The OPEN_REJECT message is a response message indicating that the connection with the HDD as the transmission destination of the received OPEN message may not be established.

(Step S98) The controller transmits the OPEN message received in step S91to the HDD as the transmission destination via the switch. Further, the controller locks the communication route through which the OPEN message is transmitted and registers the SAS address of the HDD as the transmission destination of the OPEN message in the record corresponding to the locked communication route among the records of the route management table.

Although not illustrated, in practice, the same processing as the steps S93to S95is executed before step S98is executed. That is, when there is an unused route at the time of starting execution of step S98, step S98is immediately executed. Meanwhile, when there is no unused route, but there is the communication route through which the dummy OPEN is transmitted, the communication route is released and the processing of step S98is executed using the released communication route.

The processing of the connection control devices2aand2baccording to the first embodiment may be implemented, for example, by causing the processors installed in the connection control devices2aand2b, respectively, to execute programs. In addition, the processing of the expanders210and220according to the second embodiment may be implemented, for example, by causing the processors installed in the expanders210and220, respectively, to execute the programs.

The programs may be recorded in a computer-readable recording medium. The computer-readable recording medium includes a magnetic memory device, an optical disk, a magneto-optical recording medium, a semiconductor memory, and the like. The magnetic memory device includes a hard disk device (HDD), a flexible disk (FD), a magnetic tape, and the like. The optical disk includes a digital versatile disc (DVD), a DVD-RAM, a compact disc read only memory (CD-ROM), a CD-recordable (R)/rewritable (RW), and the like. The magneto-optical recording medium includes a magneto optical disk (MO) and the like.

When distributing a program, for example, a portable recording medium such as the DVD or the CD-ROM in which the program is recorded is sold. Further, the program may be stored in a memory device of a server computer and the program may be transferred from the server computer to another computer via a network.

The computer that executes the program, for example, stores the program recorded in the portable recording medium or the program transferred from the server computer in the memory device thereof. In addition, the computer reads the program from the memory device thereof and executes the processing according to the program. Further, the computer may read the program directly from the portable recording medium and execute the processing according to the program. In addition, each time the program is transferred from a server computer connected via the network, the computer may sequentially execute the processing according to the received program.