Method for establishing route for cluster type storage system[ technical field ] A method for producing a semiconductor device
The present invention relates to a routing method, and more particularly, to a method for establishing a route in a clustered storage system.
[ background of the invention ]
The conventional clustered storage system includes a host and a plurality of storage devices that form a network topology together with the host. Each storage device is, for example, a just a bunch of disks (JBOD) disk server on which a plurality of hard disks can be installed, and includes a plurality of Input/Output modules (IOMs), a storage Module for storing data, and a processor electrically connected to the storage Module and the Input/Output modules. The host is connected to the I/O modules of at least one storage device via Serial Attached SCSI (SAS). The route of data transmission between the host and the storage devices is established by: the host uses dynamic route to transmit a query frame to each I/O module of each storage device in broadcast (broadcast) mode, then the processor of each storage device transmits a return frame containing the connection information between the I/O module and other I/O modules connected with the I/O module back to the host by each I/O module of each storage device according to the query frame, so that the host can establish the route of data transmission according to the return frame.
The conventional clustered storage system is in a larger network, and because of the mechanism of dynamic routing, it is easy to generate loop (loop) for data transmission. As the host transfers data, the data may be repeatedly forwarded on a loop, occupying network bandwidth and storage device resources, causing performance degradation.
For example, referring to fig. 1, the clustered storage system includes ahost 11, astorage device 12A, astorage device 12B, and astorage device 12C. Thestorage apparatus 12A includes an io module 121a1 and an io module 121a2 connected to the io module 121a 1. Thestorage apparatus 12B includes an I/O module 121B1 and an I/O module 121B2 connected to the I/O module 121B 1. Thestorage device 12C includes an io module 121C1 and an io module 121C2 connected to the io module 121C 1. After thehost 11 establishes the routing of data transmission according to the return frames returned by all the io modules, if thehost 11 wants to send data to the io module 121C2 of thestorage device 12C, because the io module 121a2 is connected to the io module 121a1 of thestorage device 12A, thehost 11 sends data to the io module 121a2, and then the sent data may be sent to the io module 121a1 by the io module 121a2 of thestorage device 12A, and then sent back to thehost 11 by the io module 121a1, thereby generating a cycle of data transmission.
Several techniques have been tried to solve the cyclic problem of data transmission. For example, when a loop exists, some data transfer connections (links) on the loop are cut off to make the loop disappear. However, this approach may cause the data transmission to be concentrated on a few paths, which may result in data transmission congestion, or the data cannot be transmitted to some io modules after the paths are deleted.
Therefore, how to develop a routing method capable of avoiding the occurrence of data transmission cycle is the direction of the related industry's research.
[ summary of the invention ]
Therefore, an object of the present invention is to provide a method for establishing a route in a clustered storage system.
Therefore, the invention is used for the method of establishing the route of the cluster storage system, the cluster storage system includes a host computer and several storage equipments which form a network topology together with the host computer and respectively include several I/O modules, in the network topology, the host is connected with each input/output module of at least one of the storage devices, each input/output module of each storage device is connected with each other input/output module of the storage device to which the input/output module belongs, one of the input/output modules of at least one other storage device is connected, and only one path from the host to any input/output module is formed by the host and one or a plurality of input/output modules belonging to different storage devices, the method for establishing a route for a clustered storage system includes a step (A), a step (B), and a step (C).
In step (a), the host sends a query frame to the io modules of the storage devices via the network topology.
In step (B), after receiving the query frame, each io module of each storage device returns a return frame to the host, where the return frame includes external connection information between the io module and the io module of each other storage device connected thereto, and does not include internal connection information between the io module and any other io module of the storage device to which the io module belongs.
In step (C), the host generates the route of data transmission between the host and the I/O modules according to the returned frames returned by the I/O modules.
The invention has the following effects: the return frames returned by the I/O modules do not contain internal connection information between the I/O modules and any other I/O module of the storage equipment to which the I/O modules belong, so that the circulation of data transmission is avoided when a data transmission route is established.
[ description of the drawings ]
FIG. 1 is a block diagram illustrating a conventional clustered storage system;
FIG. 2 is a block diagram illustrating a clustered storage system implementing one embodiment of the method for routing in a clustered storage system of the present invention;
FIG. 3 is a flowchart illustrating an embodiment of a method for establishing a route in a clustered storage system according to the present invention;
FIG. 4 is a diagram illustrating the transmission of an inquiry frame in the embodiment of the method for establishing a route in a clustered storage system according to the present invention;
FIG. 5 is a diagram illustrating the transmission of return frames for the embodiment of the method for routing in a clustered storage system;
FIG. 6 is a diagram illustrating the routing of data transmission between a host and each IO module of a plurality of storage devices in the clustered storage system according to the embodiment of the method for routing in a clustered storage system of the present invention;
fig. 7 is a schematic diagram illustrating that the host and the storage devices of the clustered storage system of the embodiment of the method for establishing a route for a clustered storage system form a tree network topology together according to the present invention; and
fig. 8 is a schematic diagram illustrating the host and the storage devices of the clustered storage system forming a star network topology together according to the embodiment of the method for establishing a route in a clustered storage system of the present invention.
[ detailed description ] embodiments
Referring to fig. 2, an embodiment of the method for establishing a route in a clustered storage system according to the present invention is executed by a clustered storage system. The clustered storage system comprises ahost 2 and a plurality ofstorage devices 3 which form a network topology together with thehost 2. Eachstorage device 3 includes a plurality of I/O modules 31, a storage module (not shown) for storing data, and a processor (not shown) electrically connected to the storage module and the I/O modules. Wherein thehost 2 is connected to eachIO module 31 of at least one of thestorage devices 3. Eachio module 31 of eachstorage device 3 has an SAS address, is connected to each of theother io modules 31 of thestorage device 3 to which theio module 31 belongs, and is connected to one of theio modules 31 of at least one of theother storage devices 3, and thehost 2 has only one path to anyio module 31, which is composed of thehost 2 and one ormore io modules 31 belonging todifferent storage devices 3. For example, the path from thehost 2 to the io module 31C2 is composed of thehost 2 and the io modules 31a2, 31B2 and 31C2 belonging todifferent storage devices 3; for another example, the path from thehost 2 to the io module 31B1 is composed of thehost 2 and the io modules 31a1 and 31B1 belonging todifferent storage devices 3. In the embodiment, the clustered storage system includes threestorage devices 3, and eachstorage device 3 includes twoio modules 31, but not limited thereto. In the embodiment, thestorage device 3 is, for example, a JBOD disk server, thehost 2 is, for example, a server host, and thehost 2 and thestorage devices 3 have two ports (ports) respectively and are connected through a Host Bus Adapter (HBA) to form an SAS network topology, but not limited thereto.
Referring to fig. 2 and 3, the steps of the embodiment are described below.
Instep 401, thehost 2 sends a query frame to the iomodules 31 of thestorage devices 3 through the network topology, wherein the query frame is a SAS frame (SAS frame). In detail, as shown in fig. 4, the inquiry frame is transmitted to an io module 31a1 of astorage device 3A; then, the io module 31a1 sends the inquiry frame to an io module 31B1 ofanother storage device 3B connected thereto; finally, the io module 31B1 sends the inquiry frame to an io module 31C1 of anotherstorage device 3C to which it is connected. Similarly, the inquiry frame is also sent to an io module 31a2 of thestorage device 3A; then, the io module 31a2 sends the inquiry frame to an io module 31B2 of thestorage device 3B connected thereto; finally, the io module 31B2 sends the inquiry frame to an io module 31C2 of thestorage device 3C to which it is connected.
Instep 402, after eachio module 31 of eachstorage device 3 receives the query frame, the processor of eachstorage device 3 transmits a return frame to thehost 2 through eachio module 31 of thestorage device 3 according to the query frame, where the return frame includes external connection information between theio module 31 and theio module 31 of eachother storage device 3 connected thereto, that is, includes the SAS address of theio module 31 and the SAS address of theio module 31 of eachother storage device 3 connected thereto, and does not include internal connection information between theio module 31 and anyother io module 31 of thestorage device 3 to which theio module 31 belongs, that is, does not include the SAS address of anyother io module 31 of thestorage device 3 to which the iomodule 31 belongs.
In practice, for eachio module 31 of thestorage device 3, the processor of eachstorage device 3 first generates the well-known return frame including the SAS addresses of allio modules 31 in thestorage device 3 and the SAS addresses of theio modules 31 of eachother storage device 3 connected to theio module 31 by the prior art, then, a program code is executed to identify whether the returned frame contains the SAS address of the other I/O module 31 of thestorage device 3 in addition to the SAS address of the I/O module 31, and then the SAS address of the other I/O module 31 of thestorage device 3 is deleted from the returned frame, so that the return frame only includes the SAS address of theIO module 31 and the SAS address of theIO module 31 of eachother storage device 3 connected thereto, but does not include the SAS address of anyother io module 31 of thestorage apparatus 3 to which theio module 31 belongs.
Referring to fig. 5, in the present embodiment, the return frame returned by the io module 31C1 includes a table data shown in the following list, which includes its SAS address and the SAS address of the io module 31B1, so that thehost 2 can determine that the io module 31C1 is connected to the io module 31B 1. The return frame returned by the io module 31B1 includes a table data shown in the following two tables, which includes its SAS address, the SAS address of the io module 31C1, and the SAS address of the io module 31a1, so that thehost 2 can determine that the io module 31B1 is connected to the io module 31C1 and the io module 31a 1. The return frame returned by the io module 31a1 includes a table data shown in the following table three, which includes its SAS address and the SAS address of the io module 31B1, so that thehost 2 can determine that the io module 31a1 is connected to the io module 31B 1. Similarly, the I/O module 31A2, the I/O module 31B2, and the I/O module 31C2 are also returned in the same manner.
Watch 1
| SAS address of I/O module itself | SAS address of connected I/O module |
| SAS address of I/O module 31C1 | SAS address of I/O module 31B1 |
Watch two
| SAS address of I/O module itself | SAS address of connected I/O module |
| Input/output moduleSAS address of 31B1 | SAS address of I/O module 31C1 |
| SAS address of I/O module 31A1 |
Watch III
| SAS address of I/O module itself | SAS address of connected I/O module |
| SAS address of I/O module 31A1 | SAS address of I/O module 31B1 |
Instep 403, thehost 2 generates a route for data transmission between thehost 2 and theio modules 31 of thestorage devices 3 according to the return frames transmitted by theio modules 31.
In particular, as shown in fig. 6, since the return frames instep 403 do not include internal connection information between theio modules 31 belonging to thesame storage device 3, thehost 2 determines that there is no path connection between theio modules 31 belonging to thesame storage device 3. Thus, the route between thehost 2 and the io module 31C1 is a path to the io module 31C1 via the io module 31a1 and the io module 31B 1; the route between thehost 2 and the io module 31B1 is a path through the io module 31a1 to the io module 31B 1; the routing between thehost 2 and the io module 31a1 is directly routed from thehost 2 to the io module 31a 1. Similarly, the routing established between thehost 2 and the IO module 31A2, the IO module 31B2, and the IO module 31C2 is similar to that described above. As described above, since thehost 2 determines that there is no path connection between theio modules 31 belonging to thesame storage apparatus 3, the routing of data transmission between thehost 2 and theio module 31 by thehost 2 through dynamic routing does not cause a loop. In contrast, in the conventional dynamic routing method of the clustered storage system, since the return frame includes the internal connection information between the io modules belonging to the same storage device, the routing of data transmission between the host and the io modules is easy to cause a loop. In addition, in the present embodiment, the routing between theio modules 31 of thesame storage device 3 is established in a static routing manner, so as to achieve data transmission between theio modules 31 of thesame storage device 3.
In addition, although the network topology is a linear topology as shown in fig. 2 in the embodiment, the network topology may have other implementation manners, such as a tree topology as shown in fig. 7, a star topology as shown in fig. 8, and the like, wherein there is only one path from thehost 2 to anyio module 31, which is composed of thehost 2 and one ormore io modules 31 belonging todifferent storage devices 3.
In summary, the method for establishing a route for a clustered storage system according to the present invention does not include the internal connection information between theio module 31 and anyother io module 31 of thestorage device 3 to which theio module 31 belongs, so as to prevent the data transmitted by thehost 2 from being transmitted to theother io modules 31 of thesame storage device 3 to generate a cycle when the data is routed through one of theio modules 31 by the dynamic route, thereby achieving the object of the present invention.
The embodiments and examples of the present invention are described in detail with reference to the accompanying drawings, but the scope of the invention is not limited thereto, and modifications and variations made within the scope of the invention should be construed as being included in the scope of the invention.