This application is based upon and claims the benefits of priority from the prior Japanese Patent Application No. 2004-236279, filed on Aug. 16, 2004, the entire contents of which are incorporated herein by reference.
1. Field of the Invention
The present invention relates to a fault tolerant network system and a method for controlling a supervisory server therefor. More particularly, the present invention relates to a network system, as well as a supervisory server control method therefor, which detects a problem with a switch port and disables functions of one or more other ports.
2. Description of the Related Art
Redundancy has been widely used to realize fault tolerant networks.
The redundant network of
Conventional servers, however, are unable to detect some class of problems with their network.
There are two kinds of failure detection functions implemented in the servers 921 to 928. One method is that each individual server watches its network links. Another method is that one server issues a ping command to another server, where the “ping” means “Packet Internet Grouper,” a command for verifying connectivity between two computers on a network. The former method can be implemented as part of network driver software and works faster than the latter method, because the latter method has to wait for a response from a remote server each time a ping command is issued.
Switches are sometimes organized in a multi-layer hierarchical structure, as in the example network of switches 911 to 916 shown in FIGS. 18 to 20. In that case, servers take the ping-based approach to avoid the problem discussed in
The above-described two methods, however, leave the decision of whether to switch the networks entirely to each individual server. Some servers still continue to use a switch having a faulty port as long as the port failure does not affect other ports that they are using. To replace the faulty switch with a new one, service engineers have to force those servers to change their network setups. From a maintenance standpoint, it is therefore desirable that all servers automatically switch the networks at a time.
Further, ping-based methods are not a preferable option for several reasons. First, it is necessary to set up each server to specify to which servers ping commands should be sent. Second, ping commands impose some amounts of extra traffic load and processing burden on the network and server processors, since many ping commands would be transmitted back and forth between a plurality of servers, depending on the network configuration. To make matters more complicated, the receiving servers are subject to failover; that is, they are designed as a dual redundant system which automatically switches to a protection subsystem when a failure occurs in the working subsystem.
In view of the foregoing, it is an object of the present invention to provide a network system which facilitates the task of replacing switches pertaining to a detected link failure. It is another object of the present invention to provide a method for controlling a supervisory server for use in that network system.
To accomplish the first object stated above, the present invention provides a network system having multiple redundant communications paths. This network system involves a plurality of switches divided into a plurality of switch groups. Each switch has a plurality of ports for connection with other switches in a switch group, and a multi-layer network is formed from those switches. A link-down detector monitors link condition of each port on the switches to identify an inoperative port that has entered a link-down state from a link-up state. When such an inoperative port is found, a function disabler disables the link functions of specified ports of the switches in a switch group to which the switch having the inoperative port belongs.
To accomplish the second object, the present invention provides a method for controlling a supervisory server supervising multi-port switches that constitute a multi-layered network. According to this method, the link condition of each port of the switches is monitored to identify an inoperative port that has entered a link-down state from a link-up state. The switch ports are previously divided into a plurality of port groups. When such an inoperative port is found, a command is issued to the switches to disable link functions of all ports of a particular port group to which the identified inoperative port belongs.
The above and other objects, features and advantages of the present invention will become apparent from the following description when taken in conjunction with the accompanying drawings which illustrate preferred embodiments of the present invention by way of example.
Preferred embodiments of the present invention will be described below with reference to the accompanying drawings, wherein like reference numerals refer to like elements throughout. The description begins with an overview of the present invention and then proceeds to more specific embodiments of the invention.
More specifically, the network 3 accommodates two switch groups 3a and 3b and six servers 3c, 3d, 3e, 3f, 3g, and 3h. The switch groups 3a and 3b are collections of individual switches 3aa, 3ab, 3ac, 3ba, 3bb, and 3bc. The servers 3c to 3h respond to various service requests. The switch groups 3a and 3b communicate with those servers 3c to 3h.
The first switch group 3a consists of three switches 3aa, 3ab, and 3ac. Those switches 3aa to 3ac transport data traffic over the network 3, while interacting with each other. Likewise, the second switch group 3b consists of three switches 3ba, 3bb, and 3bc. Those switches 33ba to 3bc transport data traffic over the network 3, while interacting with each other.
Suppose, for example, that there is a problem with a communication path between two switches 3aa and 3ac in the first switch group 3a. This problem is detected by the link-down detector 1, thus causing the function disabler 2 to shut down the first switch group 3a. All servers 3c to 3h then find the disruption of communication paths involving the first switch group 3a and automatically select the second switch group 3b as new communication paths. Since the servers 3c to 3h make this change all at once, service engineers can readily begin troubleshooting in the first switch group 3a (e.g., replacing a faulty switch with a new unit). The following sections will present three specific embodiments of the present invention.
This section describes a first embodiment of the invention, in which a switch that has detected a link-down event in its own port forcibly disables other port links so as to propagate the link-down state to other switches belonging to the same switch group.
The ports 100a to 100f are interface points where the switch 100 receives incoming electronic signals and transmit outgoing electronic signals under prescribed conditions. The communication controllers 100g to 100l control data flow inside the switch 100. Specifically, they inform the CPU 100m of a link-down event that has occurred at their corresponding ports in active use. They also disable a port link when so requested by the CPU 100m.
The CPU 100m manages the state of each individual port. Specifically, a port state of “1” means that the port is operating correctly, while a port state of “0” denotes that the port is inoperative. The ports are divided into groups, and the CPU 100m has a predetermined rule for disabling all ports belonging to a group when one of its member ports becomes inoperative. When applying this rule, the CPU 100m also records that event.
The LED indicators 100o to 100t are disposed next to the corresponding ports 100a to 100f to indicate their status with different lighting patterns (e.g., lit, unlit, flickering). As will be discussed later, FIGS. 4 to 6 show some specific examples of how the ports are controlled, where the state of each port is represented by a black dot (link-down detected), white dot (propagating link-down), or hatched dot (not affected). The ports 100a to 100f, communication controller 100g to 1001, CPU 100m, and LED indicators 100o to 100t interact with each other. The memory 100u stores programs and data that the CPU 100m executes and manipulates. All switches in the present description, including those that will be discussed in a later section, have a similar structure to this illustrated switch 100 of
Recall that the conventional network system explained in FIGS. 18 to 20 can only reconfigure a particular switch 911 to 916 corresponding to the server that has detected a link-down state. According to the present embodiment, however, all servers 200 on the network perform switchover from the current group of switches 101 to 103 to another group of switches 104 to 106, thus allowing service engineers to replace the faulty switch immediately.
The present embodiment further provides an LED indicator for each port on a switch 100 to indicate whether it is where the link down was originally detected, or it has propagated the detected link-down event, or it is not affected by that link-down event. Service engineers would be able to locate an inoperative switch 100 by tracing the propagation paths from the original port. As mentioned earlier,
In the way described above, the servers 200 can recognize a failure that has occurred in a remote switch, although their NICs are not directly connected to that switch. This is accomplished by propagating the original link-down event to other ports and links and thus permitting all involved servers to sense the presence of a problem as its local network link failure, without the need for using ping commands. Since the servers 200 involved in the network problem change their network setups all at once, the faulty switch is completely isolated from the network operation, and service engineers can readily replace it with a new unit.
If port #i is really in an “ON” state in agreement with A(i)=1, the process advances to step S16 to check the next port. If port #i is actually in an “OFF” state as opposed to A(i)=1, the process proceeds to step S20 to shut down all ports.
As can be seen from the above, all ports of a switch go down upon detection of a problem at one port. Since every switches in the network is configured as such, the link-down event propagates from the original inoperative switch to every other switch through port-to-port connections. As a result, every server is forced to change its network setup from the present network to an alternative network, so that all servers can communicate through new network connection paths. Now that the switches on the previously working network have all been stopped, service engineers can replace the inoperative switch at any time. Further, their LED indicators show how the link-down event has propagated, which aids service engineers to locate the origin of the problem.
This section describes a second embodiment of the present invention, in which switches 100 are configured to disable a limited number of ports, rather than all ports, when they detects a link-down event. Specifically, ports on each switch 100 is divided into a plurality of groups. When one port goes down, the link-down state propagates to other ports that belong to the same group as the failed port. The membership of each port group is defined previously in a port group management table on the memory 100u.
The illustrated port group management table 500 has the following data fields: “Group Number,” “Member Port Number,” “Group State,” and “Member Port State.” The group number field contains a group number representing a particular port group. The member port number field contains all port IDs representing the ports that belong to the group specified in the group number field. The group state field shows the state (ON or OFF) that the specified port group is supposed to be, and the member port state field shows the state (ON or OFF) of individual ports belonging to that group. Based on this port group management table 500, the switch 100 executes a process described in FIGS. 9 to 11.
The process of
If port #j is really in an “ON” state, in agreement with Ak(j), the process advances to step S24e to check the next port. If, on the other hand, the port #j is actually in an “OFF” state as opposed to Ak(j)=1, the process proceeds to step S24i to shut down all ports belonging to group #k.
As can be seen from the above, all member ports of a group will go down upon detection of a problem with one port. Since all switches 100 constituting a network operate in this way, every server is forced to change its link setup from the present network to another network, so that all servers can communicate through new network connection paths. Now that the previously selected switches are all stopped, service engineers can readily replace the faulty switch with a new unit.
This section describes a third embodiment which employs a supervisory server. Switches 100 have the functions of notifying the supervisory server of a link-down event that they have detected. In response to the problem notification, the supervisory server commands the switches 100 to disable a predetermined set of ports.
The use of a separate supervisory server to control switch ports enables the port groups to be defined across a plurality of switches 100. The following example assumes three port groups defined across three switches 100 each having twelve ports.
The supervisory LAN 404 is a network environment providing communications services using the Simple Network Management Protocol (SNMP) or the like. The supervisory server 405 collects information about network problems, and based on that information, it determines whether to enable or disable each port of the switches 401 to 403. The monitor 406 is used to display the processing result of the supervisory server 405. The multiple switch port group database 700 stores definitions of how to group the switch ports. The intra-group position database 800 gives an intra-group port number to each port, with which the ports are uniquely identified in their respective groups.
The multiple switch port group database 700 has the following data fields: “Group Number,” “Member Port Number,” “Group State,” and “Member Port State.” The group number field contains a particular group number. The member port number field shows a collection of port numbers representing the group membership, where the port numbers are separated by braces for each switch. More specifically, in the example of
The group state field indicates the ON/OFF condition of ports belonging to each group. That is, the “ON” (or “1”) state of a specific group means that the ports in that group are supposed to be in a link-up state. The “OFF” (or “0”) state, on the other hand, means that the ports in that group are supposed to be disabled.
The member port state field indicates the ON/OFF condition of each individual port belonging to a specific group, The port state is expressed as Ak(m), where k is a group number, and m is an intra-group position number used to uniquely identify each member port within a group. Intra-group position number m is an integer ranging from zero to (nk−1), where nk is the total number of ports that constitute group #k.
The intra-group position database 800 is employed to manage the intra-group position numbers mentioned above. By consulting this database 800, the supervisory server 405 can identify where each port is positioned in its group.
The supervisory server 405 receives from switches a message that reports an event related to the condition of their ports, including port numbers of a specific switch 100, as well as a switch number representing the switch itself. Upon receipt of this event report message, the supervisory server 405 consults the intra-group position database 800 in an attempt to obtain a group number and an intra-group position number associated with the received switch number and port number.
As can be seen from the above, a port group can be defined across a plurality of switches constituting a network, and all member ports of a group will go down upon detection of a fault event occurred at one port of a switch. No mater how complex the network may be, the present network setup can be switched to another network automatically and flexibly. Since the previously selected switches are all stopped, service engineers can replace a faulty switch at any time. Also, the locations of ports that have detected a link-down event are displayed on a monitor 406, which enables the engineers to identify the faulty switch quickly.
While
The supervisory server 405 described in the preceding section can be implemented on a hardware platform described below.
The CPU 405a controls the entire computer system of the supervisory server 405, interacting with other elements via a common bus 405g. The RAM 405b serves as temporary storage for the whole or part of operating system (OS) programs and application programs that the CPU 405a executes, in addition to other various data objects manipulated at runtime. The HDD 405c stores program and data files of the operating system and various applications.
The graphics processor 405d produces video images in accordance with drawing commands from the CPU 405a and displays them on the screen of an external monitor unit 21 coupled thereto. The input device interface 405e is used to receive signals from external input devices, such as a keyboard 22 and a mouse 23. Those input signals are supplied to the CPU 405a via the bus 405g. The communication interface 405f is connected to a network 24, allowing the CPU 405a to exchange data with other computers (not shown) on the network 24.
A computer with the above-described hardware configuration serves as a platform for realizing the processing functions of the embodiments of present invention. The instructions that the supervisory server 405 is supposed to execute are encoded and provided in the form of computer programs. Various processing services are realized by executing those server programs on the supervisory server 405.
The server programs are stored in a computer-readable medium for use in the supervisory server 405. Suitable computer-readable storage media include magnetic storage media, optical discs, magneto-optical storage media, and solid state memory devices. Magnetic storage media include, among others, hard disk drives (HDD), flexible disks (FD), and magnetic tapes. Optical discs include, among others, digital versatile discs (DVD), DVD-RAM, compact disc read-only memory (CD-ROM), CD-Recordable (CD-R), and CD-Rewritable (CD-RW). Magneto-optical storage media include, among others, magneto-optical discs (MO).
Portable storage media, such as DVD and CD-ROM, are suitable for circulation of the server programs. The server computer stores server programs in its local storage unit, which have been previously installed from a portable storage media. By executing those server programs read out of the local storage unit, the server computer provides its intended services. Alternatively, the server computer may execute those programs directly from the portable storage media.
According to the present invention, a link-down event at a particular port causes shutdown of other specified ports in the same switch group. This feature enables a dual redundant server network to perform automatic failover from the failed switch group to an alternative switch group. Since the faulty switch is immediately isolated from the network operation, service engineers can readily replace it with a new unit.
The foregoing is considered as illustrative only of the principles of the present invention. Further, since numerous modifications and changes will readily occur to those skilled in the art, it is not desired to limit the invention to the exact construction and applications shown and described, and accordingly, all suitable modifications and equivalents may be regarded as falling within the scope of the invention in the appended claims and their equivalents.
Number | Date | Country | Kind |
---|---|---|---|
2004-236279 | Aug 2004 | JP | national |