The present invention relates to a technique for reducing a process when a trouble is generated, with regard to a switching apparatus for establishing a network. This patent application is based on Japanese Patent Application No. 2007-066415. The disclosure of the Japanese Patent Application is incorporated herein by reference.
In a storage area network (SAN) environment in which a switching apparatus is used, typically, there are a plurality of routes from a server to a data storage position in a disc apparatus. This is because a switching apparatus connects routes in a net. Thus, even if any one route cannot be used because of a fault, a different route can be used, and since loads are distributed, traffics are prevented from being concentrated to a particular route. Thus, a response time can be prevented from being long.
Japanese Patent Application Publication (JP-P2005-210166A) describes a technique that a data is sent between the port control sections, and a continuous operation of a network is attained in order to automatically avoid a fault of a fiber channel switch, when the fault is generated in a port control section and a switch circuit in the fiber channel switch.
In a switching apparatus in related arts, from the viewpoint of the preparation for the increase in a transfer performance, the attainment of a load distribution, and reservation of a spare path in the generation of a fault, the server and the disc apparatus are connected by a plurality of paths. Specifically, a server contains a plurality of HBAs (Host Bus Adapters), which are connected to a switching apparatus in a redundant configuration. Also, a disc apparatus has a plurality of redundant ports, which are also connected to the switching apparatus. In such a configuration, even if one of the HBA or the ports of disc apparatus is failed, communication can be continued by using the remaining HBAs and ports of the disc apparatus. Thus, it is possible to attain the operation having a high reliability.
However, in this case, the number of routes (paths) from the server to any recording disc in the disc apparatus is equal to a product of the number of paths between the server and the switching apparatus and the number of paths between the disc apparatus and the switching apparatus. For this reason, when the paths between the server and the disc apparatus should be increased, the number of paths increases in proportional to the product. As a result, the number of paths to be managed by the server increases dramatically, and also the resource for managing the paths greatly increases in the server. For example, when a fault is generated in one port in the disc apparatus, the server needs to carry out an error process to inhibit all the paths from being used, since errors are generated in all the paths connected to this port. Therefore, the resource of the server is wastefully spent.
An object of the present invention is to provide a switching apparatus in which a plurality of ports having one or more routes from the switching apparatus to a particular node are virtually integrated into a single section.
In an exemplary embodiment of the present invention, a switching apparatus is provided which performs switching of a frame sent from a node, in a system of the switching apparatus and the node having redundant ports. The switching apparatus generates a virtual port based on an external setting signal, relates the redundant ports to the virtual port, and sends the frame to one of the ports of the node related to the virtual port when the frame is destined to the virtual port.
In another exemplary embodiment of the present invention, a frame exchanging method is provided in a system of a switching apparatus and a node having redundant ports. The frame exchanging method includes generating a virtual port based on an external setting signal; relating one or more of the redundant ports of the node to a virtual port; and sending the frame to one of the ports related to the virtual port when a destination of the frame is the virtual port.
In another exemplary embodiment of the present invention, a computer-readable software product is provided in which a program of codes is written to execute a frame exchanging process. The frame exchanging process is in a system of a switching apparatus and a node having redundant ports. The frame exchanging process includes generating a virtual port based on an external setting signal; relating one or more of the redundant ports of the node to a virtual port; and sending the frame to one of the ports related to the virtual port when a destination of the frame is the virtual port.
The above and other objects, advantages and features of the present invention will be more apparent from the following description of certain exemplary embodiments taken in conjunction with the accompanying drawings, in which:
Hereinafter, a switching apparatus according to exemplary embodiments of the present invention will be described in detail with reference to the attached drawings.
With reference to
The ports 20 are connected to HBAs (Host Bus Adapter) of a server and a plurality of ports of a disc apparatus, although they are not shown. In addition to the above configuration in which the server and the disc apparatus are directly connected to the switching apparatus 2, a configuration may be employed in which the server and the disc apparatus are connected through one or more switching apparatuses. In this case, a different switching apparatus is connected to the ports 20 of the switching apparatus 2, and a frame is sent from the server to the disc apparatus through the plurality of switching apparatuses.
It should be noted that in the first exemplary embodiment, a fiber channel frame is assumed as a frame to be transferred. However, the configuration of the frame is not limited to the foregoing structure, and it is sufficient that the source and destination of the frame are determined from the destination ID and the source ID at least.
Next, each of the components shown in
When the server sends a frame, the destination ID and the source ID are set in the frame. The ID of a port of the disc apparatus as a target accessed by the server is set as the destination ID, and the ID of a port of the HBA of the server sending the frame is set as the source ID. The frame is received from the port 20 and is transferred to the switch section 21. When the frame is received from the port, the switch section 21 uses the destination ID set in the frame and searches the route data storage section 23. When a port to which the frame should be sent is determined in accordance with a route data stored in the route data storage section 23, the switch section 21 outputs the frame from the port to which the frame should be sent.
The route data storage section 23 stores the route data in relation to the port. The route data indicates that the frame can be sent to a node with a destination ID of the frame if the switch section 21 sends the frame to which of ports. When a HBA of the server and a port of the disc apparatus are directly connected to the ports 20 of the switching apparatus 2, the control section 22 sets the route data on the basis of the ID of the node connected to the port. In this case, the route data is set such that the frame having the node ID as the destination ID is sent to the above port.
Also, when another switching apparatus is connected to the ports 20, the route data possessed by each of the switching apparatuses is exchanged between the switching apparatuses. Thus, in the network constituted by the plurality of switching apparatuses, the route data stored in the route data storage section 23 is set such that a frame sent from a port of a node in the network can arrive at a port of a particular node indicated by the destination ID of the frame.
A port 20 to which the frame is to be transferred is set in the route data in relation to the destination ID of the frame. The control section 22 can always update the route data stored in the route data storage section 23 by exchanging a special frame representing the route data between the switching apparatuses. As a routing protocol to exchange the route data between the switching apparatuses, an FSPF (Fibrechannel Shortest Path First) protocol is known in a fiber channel. Also, in the first exemplary embodiment, when the switching apparatus 2 transfers the fiber channel frame, the FSPF protocol may be used. It should be noted that the routing protocol is not limited to the FSPF protocol. Any protocol may be used if the route data can be exchanged between the switching apparatuses by using the protocol to determine the route data.
The virtual port managing section 24 generates a virtual port, registers the virtual port in the route data storage section 23 and sets the virtual port. The virtual port managing section 24 generates the virtual port in response to a setting signal from the server or a managing section of the switching apparatus (not shown). The setting signal from the server or the managing section can be attained such that a destination of the frame supplied from the port 20 is defined as the virtual port and further a data indicating configuration of the virtual port is set in the data of the frame. Also, an input for the setting signal may be provided in the switching apparatus, separated from the ports 20. Moreover, the virtual port managing section 24 registers the generated virtual port in the route data storage section 23, too. Also, the virtual port managing section 24 manages ports related to the virtual ports and attribute data related to those ports as the configuration data of the virtual port, and this data is stored in the virtual port storage section 25.
The virtual port storage section 25 stores the configuration data of the virtual port set by the virtual port managing section 24. The configuration data is stored in such a manner that it is possible to search both of the ID of the port related to the virtual port from the ID of the virtual port and the ID of the virtual port from the ID of the port related to the virtual port. The virtual port searching section 26 searches the virtual port storage section in accordance with the ID of the virtual port transferred from the frame rewriting section 27 and selects one of the port IDs related to the virtual ports based on the virtual port ID and then returns the selected port ID to the frame rewriting section.
The destination ID of the frame destined to the virtual port is sent from the switch section 21 to the virtual port searching section 26 through the frame rewriting section 27, and one of the IDs of the ports related to the virtual port is acquired. Next, this ID is set in the destination ID of the frame and sent to the switch section 21.
Next, the outline of the configuration and operation of the network using the switching apparatus in accordance with the first exemplary embodiment of the present invention will be described below.
The server 1 contains three host bus adapters HBA 11, HBA 12 and HBA 13. The respective host bus adapters are connected to a port 201, a port 202 and a port 203 of the switching apparatus 2, respectively. Also, the disc apparatus 3 has three ports 31, 32 and 33. The respective ports are connected to respective disc arrays (a disc array 1, a disc array 2 and a disc array 3) built in the disc apparatus 3. It is possible to access all of the built-in disc arrays from each port. The respective ports of the disc apparatus 3 are connected to a port 211, a port 212 and a port 213 of the switching apparatus 2, respectively.
It should be noted that
The frame sent from the server 1 is supplied to the switching apparatus 2 through one of the ports, and is sent out to one of the ports connected to the disc apparatus 3. The port connected to the disc apparatus 3 is selected based on the route data of the switching apparatus 2. The disc apparatus 3 also contains the plurality of ports which allow access to the inner disc arrays, like the server 1. Thus, the connection route between the switching apparatus 2 and the disc apparatus 3 can be made redundant.
In such a configuration, the server 1 and the disc apparatus 3 are connected through the plurality of redundant connection routes. Thus, even if a part of the routes cannot be used due to a fault of the host bus adapters of the server and the ports or cables of each equipment, the access through any of the remaining routes can be carried out. Thus, an effect can be attained that the availability of the system can be made high. On the other hand, since the routes to be monitored by the server increase in proportion to the number of combinations, the monitor cost of the server is high.
The port of the disc apparatus 3 is apparently only the virtual port. Thus, the routes to the disc apparatus that must be managed by the server 1 are only redundant routes between the switching apparatus 2 and the host bus adapters of the server 1. Thus, the apparent number of the routes is represented by n×m when the connection number between the host bus adapters and the switching apparatus 2 is assumed to be n and the connection number between the switching apparatus 2 and the disc apparatus 3 is assumed to be m. When the virtual port is not generated in
Next, the operation of this exemplary embodiment will be described below. The generation of the virtual port and the registration of the route data are carried out at the time of an initial setting of the switching apparatus 2 or at the time of configuration change. The server 1 sends a frame for configuration data setting as a setting signal to the virtual port managing section 24, in order to generate a virtual port in the switching apparatus 2. A special ID for management is given to the virtual port managing section 24, and the frame in which this ID is used as a destination ID is sent to the virtual port managing section 24 by the switch section 21. The virtual port managing section 24 sets a connection data of the virtual port to the virtual port storage section 25 in accordance with the content of this frame.
If the frame for configuration data setting can indicate a command for generation of a new virtual port to the virtual port managing section 24, an ID of the virtual port to be newly generated, and a port of the disc apparatus 3, the specific configuration is not especially limited. Also, the ID of the virtual port to be newly generated may be set by use of the frame for the configuration data setting or the virtual port managing section 24 may automatically assign a new ID in which is not used.
It should be noted that in this exemplary embodiment, the configuration data setting is carried out by use of the frame. However, otherwise, it is possible to employ an exemplary embodiment of using a management interface for IP communication provided in the switching apparatus. A communication method between the switching apparatus 2 and the server 1 may be of an optional type by which the configuration data can be sent.
Also, in this exemplary embodiment, the server 1 which accesses the disc apparatus 3 carries out the configuration data setting. However, an apparatus dedicated to manage the disc configuration 3 may be used to set the configuration data. If a system configuration is employed in which a predetermined data can be set to the switching apparatus 2, it is not especially limited to the configuration of this exemplary embodiment.
The virtual port managing section 24 uses the configuration data setting to set the data shown in
When the frame sent to the virtual port is transferred to one of the ports constituting the virtual port, the port may be randomly selected so as to load distribution. Also, a processing possible frame amount may be managed as a communicable capacity by each port, in addition to the port data constituting the virtual port, and one of the ports having a large communicable capacity may be selected at the time of the transfer. Thus, it is possible to carry out the load distribution.
For example, in the fiber channel, the communicable capacity can be set to the credit number proportional to a capacity of a reception buffer assigned to each port or the number of exchanges that can be processed by each port. When the frame is transferred to a port of the disc apparatus 3, the frame is required to be transferred within the range of the reception buffer possessed by the port. If a frame transfer amount exceeds the capacity of the reception buffer, the frame transfer is temporally paused. When the reception buffer gets a margin after the completion of the process in the disc apparatus 3, the paused frame transfer is restarted.
Also, as the communicable capacity of the virtual port, it is possible to set the communicable capacity of each of the ports constituting the virtual port. The virtual port is constituted from the plurality of ports in the disc apparatus 3. Thus, the traffics from or to the server 1 are distributed to the respective ports. Thus, as the actually communicable capacity, it is possible to set a summation of the communicable capacities of the ports constituting the virtual port.
When the communicable capacity is set to the virtual port, it is possible to recognize the communicable capacity that can be currently used by the corresponding port, by increasing a communication amount of the port used when the frame is actually transferred to one of the ports constituting the virtual port, and decreasing the communication amount of the port when the frame for notifying the completion of the process in the port arrives. For example, when the credit number of the port is used as the communicable capacity, the summation of the credit numbers of the ports constituting the virtual port is set as the credit number of the virtual port. Thus, the virtual port virtually contains the buffers equivalent to the credit numbers constituting the virtual port.
The frame sent to the virtual port is sent to one of the ports constituting the virtual port which is suitably selected. However, the port having a margin in the credit number that can be used in the port is selected when the port is selected. Thus, even if there is no credit number that can be used in one port, namely, even when the frame cannot be sent because of no existence of the buffer of the port, the communication can be continued through a different port.
Also, when the frame sent to the port belonging to a certain node is processed, an ACK frame is returned from the node. Thus, the frame is identified in the switching apparatus 2 for managing the virtual port, and it is possible to recognize the credit number that can be currently used in the port.
Also, a value that is smaller than a summation of the communicable capacities of the ports may be set as a communicable capacity of this virtual port. By setting the value smaller than the summation, the summation of the traffics through the virtual port can be suppresses. Consequently, when a fault is not generated, it is possible to carry out the communication while having margins in the communicable capacities of the ports constituting the virtual port.
In this way, even if the fault is generated in any of the ports constituting the virtual port or on a route to the port so that the communication cannot be carried out, the operation can be continued without any fault notice to the server 1 when the communication is possible within the range of the communicable capacity set to the virtual port.
When the ID of the virtual port is determined, an ID unique in the network is selected, and the server for setting the configuration data as mentioned above sets it. Next, a port address of the disc apparatus 3 constituting the virtual port is set as the configuration data of the virtual port.
In an example shown in
Also, in the example of
Next, the operations of the respective sections of the switching apparatus 2 in case of the generation of the virtual port will be described below.
The frame is sent from the server 1 to the switch section 21 (Step S1).
Next, the switch section 21 searches a route data storage section 23 and determines which of ports a destination address set in the frame is assigned to. If the destination ID of the frame indicates a virtual port ID, the frame is sent to the frame rewriting section 27 (Yes at Step S2).
Also, the switch section 21 sends the frame to the frame rewriting section 27 even if a transmission source ID of the frame is a port of the disc apparatus constituting the virtual port (Yes at Step S10).
In case other than the above cases (NO at Step S10), this indicates that the frame is not destined to the virtual port or the frame is not sent from the port constituting the virtual port. In this case, an output port 20 is selected in accordance with the route data stored in the route data storage section 23 and the frame is outputted, like a usual switching operation in which the virtual port is not set by the switch section 21.
If the frame is sent to the virtual port (YES at Step S2), the frame rewriting section 27 sends the destination ID of the frame to the virtual port searching section 26 and searches a port of the disc apparatus constituting the virtual port (Step S3).
The virtual port searching section 26 searches the virtual port storage unit 25 for the port of the disc apparatus 3 corresponding to the ID of the virtual port and determines whether or not the disc apparatus has usable ports (Step S4).
If all of the ports in the disc apparatus 3 cannot be used because of a fault (YES at Step S4), the port for the frame to be sent does not exist, resulting in a search error. The frame rewriting section 27 sends a frame indicating the error to the server 1 having the source ID for a fault notice (Step S9).
If any ports for the frame to be sent exists in the disc apparatus 3, the virtual port searching section 26 selects a port having the smallest use amount from the usable ports (Step S5).
Next, the virtual port searching section 26 increases the use amount of the selected port by “1” (Step S6).
The frame rewriting section 27 rewrites the destination ID of the frame to a new ID of the port selected at the step S5 and sends it to the switch section 21 (Step S7).
The switch section 21 searches the route data storage section 23 for the route data for the frame on the basis of the new destination ID, and determines the port 20 to which the frame is sent, and then sends the frame to the port 20 (Step S8).
Next, in case of YES at the step S10, the frame is sent from a port of the disc apparatus constituting the virtual port. The frame rewriting section 27 searches the virtual port searching section 26 related to the virtual port including the port, on the basis of the port ID of the disc apparatus 3 set as the source ID of the frame.
The virtual port searching section 26 returns the ID of the virtual port to the frame rewriting section 27, and the frame rewriting section 27 replaces the source ID of the frame with the ID of the virtual port (Step S12).
Next, if the frame is determined to be an ACK frame to the frame sent to the port of the disc apparatus 3 (YES at Step S13), the frame rewriting section 27 instructs the virtual port searching section 26 corresponding to the port to decrease the use amount of the searched port by “1”. The virtual port searching section 26 decreases the use amount of the corresponding port in the virtual port storage section 25 by “1” (Step S14).
In the frame rewriting section 27, if the frame is determined not to be the ACK frame and after it is determined to be the ACK frame and then the port use amount is decreased at the step S14, the frame is sent to the switch section 21.
Next, the switch section 21 searches the route data storage section 23 for the port 20 for the frame to be sent on the basis of the destination ID of the frame, and then sends the frame to the port 20 (Step S28).
The second exemplary embodiment of the present invention will be described below. Even in the second exemplary embodiment, the configuration of the switching apparatus 2 is similar to that of the first exemplary embodiment shown in
The second exemplary embodiment differs from the first exemplary embodiment in that an error level is set for every virtual port, as the storage data of the virtual port which is set in the virtual port storage section 25 by the virtual port managing section 24, as shown in
When the virtual port is generated, the virtual port managing section 24 sets a maximum allowable number of faults in the port as the error level among the ports constituting the virtual port, when the communication to the port can be continued without notifying a fault notice to a node connected to the virtual port.
Moreover, the virtual port managing section 24 monitors states of the ports constituting the virtual port, and if an error is generated, sets the port to an unusable state.
In the example shown in
Also, in the example of
If the error is notified (YES of Step S41), the frame rewriting section 27 notifies the error to the transmission source having the source ID of the frame to notify the fault generation in the virtual port.
Since a plurality of ports having one or more routes from the switching apparatus to a particular node are virtually integrated into a single section, the number of routes to be managed by the server decreases, and a process amount can be reduced when the fault is generated in the port.
While the present invention has been particularly shown and described with reference to the exemplary embodiments thereof, the present invention is not limited to these exemplary embodiments. It will be understood by those of ordinary skill in the art that various changes in form and details may be made therein without departing from the spirit and scope of the present invention as defined by the claims.
Number | Date | Country | Kind |
---|---|---|---|
JP2007-066415 | Mar 2007 | JP | national |