Computer cluster system

A computer cluster system includes a plurality of computer groups each having a plurality of computer nodes. For each of the computer groups, the computer nodes cooperatively form a first ring topology, and one of the computer nodes serves as a first-ring master node of the first ring topology. The first-ring master nodes of the first ring topologies cooperatively form a second ring topology, and one of the first-ring master nodes serves as a second-ring master node of the second ring topology.

CROSS-REFERENCE TO RELATED APPLICATION

This application claims priority of Taiwanese Patent Application No. 105133644, filed on Oct. 19, 2016.

FIELD

The disclosure relates to a computer cluster system, and more particularly to a computer cluster system of a multi-level ring topology.

BACKGROUND

A computer cluster system includes a plurality of computer nodes that are coupled to each other according to a network topology. Generally, network topologies may be classified into centralized architecture and non-centralized architecture.FIG. 1shows a conventional star topology, which is a common centralized architecture, and which has a central computer node8directly coupled to other computer nodes9for managing and monitoring the system. Although the centralized architecture may lead to higher data transmission efficiency, hardware cost is higher due to the additional central computer node8.FIG. 2shows a conventional ring topology of which one computer node9is selected to be a master node that manages and monitors the entire system, leading to lower hardware cost since an additional central computer node is not required. However, for the ring topology, a maximum length of the data transmission path between two computer nodes9is around half of a number of the computer nodes9, resulting in lower data transmission efficiency. When the number of the computer nodes9is large, the master node may spend a lot of time collecting node data such as temperature data of CPU and memory modules of each computer node, and is thus unable to instantly perform, according to the node data of all of the computer nodes, corresponding operations such as adjusting rotation speeds of external fans of the computer cluster system. Therefore, how to enhance the speed of collecting all the node data in one computer cluster system without inducing hardware cost of the additional central computer node is a goal in this field.

SUMMARY

A computer cluster system includes a plurality of computer nodes that are coupled to each other according to a network topology. Generally, network topologies may be classified into centralized architecture and non-centralized architecture.FIG. 1shows a conventional star topology, which is a common centralized architecture, and which has a central computer node8directly coupled to other computer nodes9for managing and monitoring the system. Although the centralized architecture may lead to higher data transmission efficiency, hardware cost is higher due to the additional central computer node8.FIG. 2shows a conventional ring topology of which one computer node9is selected to be a master node that manages and monitors the entire system, leading to lower hardware cost since an additional central computer node is not required. However, for the ring topology, a maximum length of the data transmission path between two computer nodes9is around half of a number of the computer nodes9, resulting in lower data transmission efficiency. When the number of the computer nodes9is large, the master node may spend a lot of time collecting node data such as temperature data of CPU and memory modules of each computer node, and is thus unable to instantly perform, according to the node data of all of the computer nodes, corresponding operations such as adjusting rotation speeds of external fans of the computer cluster system. Therefore, how to enhance the speed of collecting all the node data in one computer cluster system without inducing hardware cost of the additional central computer node is a goal in this field.

DETAILED DESCRIPTION

Referring toFIG. 3, the embodiment of a network topology of the computer cluster system according to this disclosure is shown to include sixty-four computer nodes9that are divided into sixteen computer groups each having four computer nodes9. For each computer group, the four computer nodes9cooperatively form a first ring topology1. That is, there are totally sixteen first ring topologies1in this embodiment. For each first ring topology1, one of the computer nodes9serves as a master node (first-ring master node) of the corresponding first ring topology1. The first-ring master node is responsible for managing and monitoring the computer nodes9in the corresponding first ring topology1. The sixteen first ring topologies1are divided into four first ring topology groups. For each first ring topology group, the first-ring master nodes of the four first ring topologies1cooperatively form a second ring topology2. That is to say, the first-ring master nodes of the first ring topologies1that are grouped into the same first ring topology group cooperatively form a second ring topology2. In other words, there are four second ring topologies2in total. For each second ring topology2, one of the first-ring master nodes serves as a master node (second-ring master node) of the corresponding second ring topology2. The second-ring master node is responsible for managing and monitoring the computer nodes9in the corresponding second ring topology2. The second-ring master nodes of the four second ring topologies2cooperatively form a third ring topology3, and one of the second-ring master nodes serves as a master node (third-ring master node) of the third ring topology3. The third-ring master node is responsible for managing and monitoring the entire computer cluster system.

Accordingly, the network topology of the embodiment may be deemed as a three-level ring topology architecture, where the first level corresponds to the sixteen first ring topologies1, the second level corresponds to the four second ring topologies2, and the third level corresponds to the third ring topology3.

Each computer node9includes respective node data containing monitoring information of itself, such as temperature data and/or operating states of components thereof (e.g., CPU, memory modules, etc.), fan speeds, etc.

For each first ring topology1, each computer node9periodically transmits a data request to each of the computer nodes9that are directly coupled thereto (i.e., adjacent two of the computer nodes9); and transmits, upon receipt of the data request transmitted by each of the adjacent two of the computer nodes9, all of the node data stored therein (including the node data of itself, and perhaps the node data of another one or more computer nodes9of the same corresponding first ring topology1, which was received through the adjacent computer nodes9during previous data request/transmission processes) to the computer node9from which the data request has now been received. It is noted that throughout this disclosure, when two computer nodes are described as being “adjacent”, it means that the two computer nodes are directly connected together, namely, the two computer nodes are adjacent in terms of connection relationship, such description should not be taken as imposing any limitation on the relationship of the computer nodes in terms of their physical locations. As a result, the first-ring master node of each first ring topology1may store the node data of all of the computer nodes9of the corresponding first ring topology1.

Similarly, for each second ring topology2, each first-ring master node periodically transmits a data request to each of the first-ring master nodes that are directly coupled thereto (i.e., adjacent two of the first-ring master nodes); and transmits, upon receipt of the data request transmitted by each of the adjacent two of the first-ring master nodes, all of the node data stored therein (including the node data of all of the computer nodes9of the same corresponding first ring topology1, and perhaps the node data of the computer nodes9of another one or more first ring topologies1of the same corresponding second ring topology2, which was received through the adjacent first-ring master nodes during previous data request/transmission processes) to the first-ring master node from which the data request has now been received. As a result, the second-ring master node of each second ring topology2may store the node data of each computer node9of each first ring topology1that is coupled to the corresponding second ring topology2.

Similarly, for the third ring topology3, each second-ring master node periodically transmits a data request to each of the second-ring master nodes that are directly coupled thereto (i.e., adjacent two of the second-ring master nodes); and transmits, upon receipt of the data request transmitted by each of the adjacent two of the second-ring master nodes, all of the node data stored therein (including the node data of all of the computer nodes9of the same corresponding second ring topology2, and perhaps the node data of the computer nodes9of the first ring topologies1that are coupled to another one or more second ring topologies2, which was received through the adjacent second-ring master nodes during previous data request/transmission processes) to the second-ring master node from which the data request has now been received. As a result, the third-ring master node may store the node data of all of the sixty-four computer nodes9of the computer cluster system.

For each first ring topology1, a first-ring transmission path through which the node data of each computer node9may be transmitted to the corresponding first-ring master node has a length that is defined by a number of the computer node(s)9through which the node data from the initial computer node9to the corresponding first-ring master node travels. That is, the length may be defined by a number of the computer node(s)9which receives (receive) the node data during transmission of the node data from the initial computer node9to the corresponding first-ring master node, or by a number of the computer node(s)9which transmits (transmit) the node data during transmission of the node data from the initial computer node9to the corresponding first-ring master node (the numbers acquired by the two definitions would be the same). The node data includes data associated with the length of the data transmission path through which the node data has traveled. When a computer node9receives a piece of node data from an adjacent computer node9, the computer node9updates the data by adding one to the length of the data transmission path. When the first-ring master node receives, respectively from the adjacent two computer nodes9, two pieces of the node data of one and the same computer node9, the first-ring master node determines, according to each piece of the node data that includes data associated with the length of the corresponding first-ring transmission path, one of the two pieces of the node data, of which the first-ring transmission path is shorter, to be a relatively new node data piece, and determines the other piece of the node data to be a relatively old node data piece. Then, the first-ring master node discards the relatively old node data piece. As exemplified inFIG. 3, the node data of the computer node9bmay be directly transmitted to the first-ring master node9c, wherein the length of the corresponding first-ring transmission path is one node, or through a path of the computer node9a, the computer node9pand the first-ring master node9cin sequence, wherein the length of the corresponding first-ring transmission path is three nodes. If the first-ring master node9csimultaneously receives two pieces of the node data of the computer node9b, the first-ring master node9cis configured to determine that the node data received through the path with the length of one node to be the relatively new node data piece for the computer node9b, and discards the node data of the computer node9bthat is received through the path with the length of three nodes.

Similarly, a second-ring transmission path through which the node data of each computer node9may be transmitted to the corresponding second-ring master node has a length that is defined by a number of the first-ring master node(s) through which the node data from the first-ring master node of the corresponding first ring topology1to the corresponding second-ring master node travels (i.e., a number of the first-ring master node(s) which receives (receive) the node data during transmission of the node data from the corresponding first-ring master node to the corresponding second-ring master node, or a number of the first-ring master node(s) which transmits (transmit) the node data during transmission of the node data from the corresponding first-ring master node to the corresponding second-ring master node). A length of each possible path (excluding the path taken by any discarded node data) from one computer node9to the corresponding second-ring master node is the sum of a corresponding first-ring transmission path and a corresponding second-ring transmission path, and is referred to as a total second-ring transmission path herein. As a result, a length of the total second-ring transmission path is a sum of the lengths of the corresponding first-ring and second-ring transmission paths. For each second ring topology2, when the second-ring master node receives, respectively from the adjacent two first-ring master nodes, two pieces of the node data of one and the same computer node9, the second-ring master node determines, according to each piece of the node data that includes data associated with the length of the corresponding total second-ring transmission path, one of the two pieces of the node data, of which the total second-ring transmission path is shorter, to be a relatively new node data piece, and determines the other piece of the node data to be a relatively old node data piece. Then, the second-ring master node discards the relatively old node data piece.

Similarly, a third-ring transmission path through which the node data of each computer node9may be transmitted to the third-ring master node has a length that is defined by a number of the second-ring master nodes through which the node data from the second-ring master node of the corresponding second ring topology2to the third-ring master node travels (i.e., a number of the second-ring master node(s) which receives (receive) the node data during transmission of the node data from the corresponding second-ring master node to the third-ring master node, or a number of the second-ring master node(s) which transmits (transmit) the node data during transmission of the node data from the corresponding second-ring master node to the third-ring master node). A length of each possible path (excluding the path taken by any discarded node data) from one computer node9to the third-ring master node is the sum of a corresponding total second-ring transmission path and a corresponding third-ring transmission path, and is referred to as a total third-ring transmission path herein. As a result, a length of the total third-ring transmission path is a sum of the lengths of the corresponding total second-ring transmission path and the corresponding third-ring transmission path. In this embodiment, when the third-ring master node receives, respectively from the adjacent two second-ring master nodes, two pieces of the node data of one and the same computer node9, the third-ring master node determines, according to each piece of the node data that includes data associated with the length of the corresponding total third-ring transmission path, one of the two pieces of the node data, of which the total third-ring transmission path is shorter, to be a relatively new node data piece, and determines the other piece of the node data to be a relatively old node data piece. Then, the third-ring master node discards the relatively old node data piece.

In another or the same embodiment, the node data of each computer node9may include a timestamp. In such implementation, when the third-ring master node receives, respectively from the adjacent two second-ring master nodes, two pieces of the node data of one and the same computer node9, the third-ring master node may determine the relatively new node data piece and the relatively old node data piece according to the timestamp of each of the two pieces of the node data.

Compared to the conventional ring topology, the multi-level ring topology architecture of this disclosure has a relatively short maximum length of a transmission path between two of the computer nodes9. For example, for the conventional ring topology that is formed by sixty-four computer nodes, the maximum length of the transmission path between two computer nodes is thirty-two nodes. On the other hand, the maximum length of the transmission path between two computer nodes9in the embodiment is ten nodes, e.g., a path between the computer nodes9aand9kthrough the computer nodes9b,9c,9d,9e,9f,9g,9h,9i,9j,9kin sequence. Furthermore, the maximum length of the transmission path between one computer node9and the third-ring master node taken by any non-discarded node data (i.e., the total third-ring transmission path), which manages and monitors the entire computer cluster system in the embodiment, is six nodes, e.g., a path between the computer nodes9aand9gthrough the computer nodes9b,9c,9d,9e,9f,9gin sequence.

Although the embodiment exemplifies the multi-level ring topology architecture of this disclosure using the three-level ring topology architecture, persons with ordinary skill in the art would understand that the rules described above may also apply to two-level, four-level or higher-level ring topology architecture, and the disclosure is not limited thereto. According to this disclosure, if a total number of the computer nodes in the computer cluster system is NK, where N is a number of the computer nodes that form a single ring topology, and K is a number of the levels, a maximum length of a transmission path between two computer nodes is N÷2+N×(K−1) nodes when N is an even number, and is (N−1)÷2+(N−1)×(K−1) when N is an odd number; and a maximum length of a total transmission path between one computer node and a master node (the highest-level master node) that manages and monitors the entire computer cluster system is N÷2×K nodes when N is an even number, and is (N−1)÷2×K when N is an odd number.

The multi-level ring topology architecture of this disclosure may apply to a rack server cluster system of which each computer node includes a baseboard management controller (BMC) for monitoring operations of the computer node, such as temperature data of elements thereof, such as CPU, memory module, etc. The rack server cluster system may be configured with a plurality of external fans that require node data including for example, the temperature data of the CPU and the memory modules, for controlling a rotational speed of each fan. In this disclosure, since the maximum length of the total transmission path (e.g., the total third-ring transmission path in the embodiment) between one computer node and the master node (e.g., the third-ring master node in this embodiment) that monitors the entire computer cluster system is relatively small compared to that in the conventional ring topology architecture, time required for collecting the node data (e.g., the temperature data) of all computer nodes by the master node is relatively short, resulting in higher data collection efficiency, and the master node can thus instantly perform appropriate operation such as controlling rotational speeds of the external fans according to the node data of all the computer nodes.

In summary, the computer cluster system of this disclosure employs the multi-level ring topology architecture to connect all of the computer nodes without requiring an additional computer node to manage the entire system, and whilst having the advantage of the conventional ring topology architecture, achieves higher data transmission efficiency to satisfy instantaneous data transmission requirement in comparison to the conventional ring topology architecture.