WO2014114119A1 - Redundant server operation by a software defined network controller - Google Patents
Redundant server operation by a software defined network controller Download PDFInfo
- Publication number
- WO2014114119A1 WO2014114119A1 PCT/CN2013/086066 CN2013086066W WO2014114119A1 WO 2014114119 A1 WO2014114119 A1 WO 2014114119A1 CN 2013086066 W CN2013086066 W CN 2013086066W WO 2014114119 A1 WO2014114119 A1 WO 2014114119A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- servers
- network
- server
- active server
- cluster
- Prior art date
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/06—Management of faults, events, alarms or notifications
- H04L41/0654—Management of faults, events, alarms or notifications using network fault recovery
- H04L41/0663—Performing the actions predefined by failover planning, e.g. switching to standby network elements
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/40—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks using virtualisation of network functions or resources, e.g. SDN or NFV entities
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/08—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
- H04L43/0805—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters by checking availability
- H04L43/0817—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters by checking availability by checking functioning
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/20—Arrangements for monitoring or testing data switching networks the monitoring system or the monitored elements being virtualised, abstracted or software-defined entities, e.g. SDN or NFV
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/40—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass for recovering from a failure of a protocol instance or entity, e.g. service redundancy protocols, protocol state redundancy or protocol service redirection
Definitions
- Servers particularly servers that perform operations requiring high availability, are known to be implemented in a redundant manner. That is, a plurality of servers that are to perform similar server operations with respect to each other are implemented in a network, in which one of the servers is a currently active server and another server is a backup server.
- the backup server takes over the functionalities of failed currently active server and becomes the currently active server.
- the switchover from the failed active server to the backup server occurs as quickly as possible to substantially minimize disruptions in the performance of the server operations.
- FIG. 1 is a simplified diagram of a network, according to an example of the present disclosure
- FIG. 2 is a simplified block diagram of a computing device containing the SDN controller depicted in FIG. 1 , according to an example of the present disclosure
- FIGS. 3 and 4 are flow diagrams of methods for redundant server operation by a SDN controller, according to two examples of the present disclosure
- FIG. 5 is a flow diagram of a method for controlling an operational status of a server, according to an example of the present disclosure.
- FIG. 6 is schematic representation of a computing device, which may be employed to perform various functions of the computing device depicted in FIG. 2, according to an example of the present disclosure.
- the SDN controller may determine whether a current active server in a cluster of servers is communicating over a network properly, in which the servers in the cluster of servers are to provide redundant server operations with respect to each other on the network.
- the SDN controller may select another server in the cluster of servers to be a next active server.
- the SDN controller may also close a connection of the current active server to the network and may open the connection of the selected another server to the network.
- the SDN controller may maintain the current active server.
- the methods and apparatuses disclosed herein enable for redundant operation of the servers in the cluster of servers by the SDN controller.
- the methods and apparatuses disclosed herein may not rely upon the redundant servers themselves to correctly determine whether the current active server is communicating properly over a network and to switchover to a backup server if the current active server is not communicating properly over the network. That is, for instance, if there is a problem in a component other than the currently active server that prevents or disrupts communications to and/or from the current active server, the current active server may not be aware that a problem exists.
- the SDN controller which is separate from the servers in the cluster of servers and operates under the software-defined networking approach, may make a determination as to whether communications with the current active server are not functioning properly and may thus determine that a problem exists in the communications network of the active server, even in instances where the problem lies outside of the current active server.
- the methods and apparatuses disclosed herein allow for redundant server operations to be provided in a manner that may generally be more stable than conventional techniques for providing redundant server operations, which rely upon the current active server itself to determine whether to switch to a backup server.
- the SDN controller may operate under SDN, the SDN controller may deploy network services relatively quickly and more efficiently than techniques that require hardware deployment of services.
- FIG. 1 With reference first to FIG. 1 , there is shown a simplified diagram of a network 100, according to an example. It should be understood that the network 100 depicted in FIG. 1 may include additional elements and that some of the elements depicted therein may be removed and/or modified without departing from a scope of the network 100.
- the network 100 in FIG. 1 is depicted as including a SDN controller 1 10, a network switch 120, a plurality of SDN switches 130a-130n, and a plurality of servers 140a-140m.
- the SDN switches 130a-130n are also depicted as each including a respective port 132a-132n to which a respective server 140a-140m is connected.
- the variables "n” and "m” may each represent an integer greater than 1 and need not be equal to each other.
- the SDN controller 1 10 may communicate with each of the servers 140a-140m through the switch 120 and at least one of the SDN switches 130a-130n. In addition, the SDN controller 1 10 may communicate with a server 140a through multiple SDN switches 130a-130n.
- multiple ones of the SDN switches 130a-130n may be in communication with each other, i.e., some or all of the SDN switches 130a-130n may have forwarding links among each other.
- the network switch 120 may be connected to the servers 140a-140m through respective connections, as indicated by the dashed lines.
- the SDN controller 1 10 may communicate with the servers 140a-140m through any of a number of connections.
- the SDN controller 1 10 supports the OpenFlow protocol, which gives access to the forwarding plane of a network switch or router over a network, and is managed by the Open Networking Foundation, and may thus be construed as being an OpenFlow controller.
- the SDN switches 130a-130n may also support the OpenFlow protocol and communications between the SDN controller 1 10 and the SDN switches 130a-130n may comply with OpenFlow standards.
- SDN allows network services to be managed through abstraction of lower level functionality, for instance, by decoupling the system that makes decisions about where traffic is sent, i.e., the control plane, from the underlying systems that forward the traffic, i.e., the data plane.
- the OpenFlow protocol provides a method for the control plane to communicate with the data plane.
- the SDN controller 1 10 may communicate with the SDN switches 130a-130n through implementation of the OpenFlow protocol. It should, however, be clearly understood that the SDN controller disclosed herein need not be limited to implementation of the OpenFlow protocol and may thus communicate with the SDN switches 130a-130n through implementation of other suitable protocols that enable communications between the SDN controller 1 10 and the SDN switches 130a-130n.
- Each of the SDN switches 130a-130n may be connected to the SDN controller 1 10 through an independent channel, e.g., an OpenFlow management channel.
- the SDN switches 130a-130n may, upon receiving messages, report the messages to the SDN controller 1 10 and the SDN controller 1 10 may communicate instructions to the SDN switches 130a-130n as to how the SDN switches 130a-130n are to process the messages.
- the SDN controller 1 10 may perform computations on the messages to determine how the SDN switches 130a-130n are to handle the messages.
- the SDN controller 1 10 may perform the computations to determine whether the SDN switches 130a-130n are to discard a message, limit the communication of a message, send a message via a particular port, etc.
- the network switch 120 may be a computer networking device that links different devices in a network together and may process and route data in the network 100. According to an example, the network switch 120 operates under Ethernet standards.
- the SDN switches 130a-130n may also be computer networking devices that operate under Ethernet standards.
- the servers 140a-140m may each be machine readable instructions stored on a computer readable storage medium and/or a hardware device storing the machine readable instructions.
- each of the servers 140a-140m, or the devices on which the servers 140a-140m are stored may be connected to a respective SDN switch 130a-130n through a respective port 132a-132n of the SDN switches 130a-130n.
- multiple ones of the servers 140a-140m may be connected to respective ports on a common SDN switch 130a.
- each of the servers 140a-140m may be implemented by a respective hardware processor.
- the servers 140a-140m may be part of a cluster of servers 150 that are to provide redundant server operations on the network 100 with respect to each other. That is, each of the servers 140a-140m may include the same or similar sets of instructions to provide the same or similar computing services to client devices. In addition, at any given time, one of the servers 140a-140m in the cluster of servers 150 may be selected to perform the server operations for the client devices. The selected server 140a may be considered to be a current active server and the remaining servers 140b-140m may be considered to be backup servers.
- the current active server 140a may be removed from operating as the current active server and another one of the servers 140b-140m may be promoted to perform the server operations in the network 100.
- the SDN controller 1 10 may select one of the servers 140a-140m to operate as the current active server.
- the SDN controller 1 10 may also determine whether the server 140a-140m selected to operate as the current active server is operating properly.
- the SDN controller 1 10 may further select another server to operate as the current active server in response to a determination by the SDN controller 1 10 that the currently active server is not communicating over the network properly.
- the SDN controller 1 10 may also control the connections to the servers 140a-140m to control which of the servers 140a-140m is the current active server.
- FIG. 2 there is shown a simplified block diagram 200 of a computing device 202 containing the SDN controller 1 10 depicted in FIG. 1 , according to an example. It should be understood that the computing device 202 depicted in FIG. 2 may include additional elements and that some of the elements depicted therein may be removed and/or modified without departing from a scope of the computing device 202 containing the SDN controller 1 10.
- the computing device 202 is depicted as including the SDN controller 1 10, a processor 210, an input/output interface 212, and a data store 214.
- the SDN controller 1 10 is also depicted as including a server cluster establishing module 220, an access port position tracking module 222, an active server selecting module 224, a connection opening/closing module 226, a message sending/receiving module 228, and a server status determining module 230.
- the processor 210 which may be a microprocessor, a micro-controller, an application specific integrated circuit (ASIC), or the like, is to perform various processing functions in the computing device 202.
- One of the processing functions may include invoking or implementing the modules 220-230 of the SDN controller 1 10 as discussed in greater detail herein below.
- the SDN controller 1 10 is a hardware device, such as, a circuit or multiple circuits arranged on a board.
- the modules 220-230 may be circuit components or individual circuits.
- the SDN controller 1 10 is a hardware device, for instance, a volatile or non-volatile memory, such as dynamic random access memory (DRAM), electrically erasable programmable read-only memory (EEPROM), magnetoresistive random access memory (MRAM), memristor, flash memory, floppy disk, a compact disc read only memory (CD-ROM), a digital video disc read only memory (DVD-ROM), or other optical or magnetic media, and the like, on which software may be stored.
- the modules 220-230 may be software modules, e.g., sets of machine readable instructions, stored in the SDN controller 1 10.
- the modules 220-230 may be a combination of hardware and software modules.
- the processor 210 may store data in the data store 214 and may use the data in implementing the modules 220-230.
- the data store 214 may be volatile and/or non-volatile memory, such as DRAM, EEPROM, MRAM, phase change RAM (PCRAM), memristor, flash memory, and the like.
- the data store 214 may be a device that may read from and write to a removable media, such as, a floppy disk, a CD-ROM, a DVD-ROM, or other optical or magnetic media.
- the input/output interface 212 may include hardware and/or software to enable the processor 210 to communicate with devices in the network 100 (FIG. 1 ), such as the network switch 120, through a wired and/or wireless connection.
- the input/output interface 212 may also include hardware and/or software to enable the processor 210 to communicate with various input and/or output devices (not shown), such as a keyboard, a mouse, a display, etc., through which a user may input instructions into the computing device 202 and may view outputs from the computing device 202.
- FIGS. 3 and 4 depict flow diagrams of methods 300 and 400 for redundant server operation by a SDN controller 1 10, according to two examples. It should be apparent to those of ordinary skill in the art that the methods 300 and 400 represent generalized illustrations and that other operations may be added or existing operations may be removed, modified or rearranged without departing from the scopes of the methods 300 and 400.
- the SDN controller 1 10 may implement the methods 300 and 400 in the network 100 depicted in FIG. 1 .
- the processor 210 which may implement or execute the modules 220-230 of the SDN controller 1 10 may implement or execute the methods 300 and 400.
- the SDN controller 1 10 may start the method 300.
- the SDN controller 1 10 may start the method 300 in response to receipt of a manual instruction from a user or may automatically start the method 300 at a predetermined time.
- the SDN controller 1 10 may perform additional operations as discussed in greater detail herein below with respect to the method 400 depicted in FIG. 4.
- the SDN controller 1 10, and more particularly, the server status determining module 230 may determine whether a current active server 140a in a cluster of servers 150 is communicating over the network 100 properly. That is, the server status determining module 230 may determine whether the current active server is properly sending and receiving data over the network 100. In one regard, the current active server 140a may be unable to properly send and receive data over the network 100 if there is a failure in the current active server 140a, if there is a failure in the SDN switch 130a or access port 132a to which the current active server 140a is connected, if there is a failure in a connection between the SDN controller 1 10 and the current active server 140a, etc.
- the server status determining module 230 may make this determination are discussed in greater detail herein below with respect to the method 400.
- the SDN controller 1 10 may select another server 140b in the cluster of servers 150 to be a next active server, may close a connection of the current active server 140a to the network 100, and may open a connection of the selected another server 140b to the network 100.
- the active server selecting module 224 of the SDN controller 1 10 may select one of the servers 140b-140m other than the current active server 140a to be the next active server.
- the active server selecting module 224 may select the another server to be the next active server through any suitable selection technique. For instance, the active server selecting module 224 may select the another server in a round robin fashion, randomly, based upon a unique identification of the servers, etc.
- connection opening/closing module 226 may close the connection of the current active server 140a to the network 100. That is, for instance, the connection opening/closing module 226 may instruct the SDN switch 130a to close the access port 132a to which the current active server 140a is connected. Moreover, the connection opening/closing module 226 may open the connection of the next active server 140b to the network 100. That is, for instance, the connection opening/closing module 226 may instruct the SDN switch 130b to which the next active server 140b is connected to open the connection through the access port 132b.
- the SDN controller 1 10 may determine whether the next active server 140b, which is now the current active server, is communicating over the network 100 properly at block 304. In response to a determination that the current active server 140b is not communicating over the network 100 properly, the SDN controller 1 10 may select another server 140c to be the next active server as indicated at block 306. The SDN controller 1 10 may also close the connection of the current active server 140b to the network 100 and may open the connection of the selected another server 140c to the network 100, as also indicated at block 306.
- the SDN controller 1 10 may maintain the connection of the current active server 140a to the network 100, as indicated at block 308.
- the SDN controller 1 10 may iterate through blocks 304-308 in a continuous and/or periodic manner to change the active server if the SDN controller 1 10 determines that a currently selected active server is not communicating properly over the network 100. That is, the SDN controller 1 10 may cause a backup server to become active in response to a determination that the currently active server is not communicating properly over the network to thus prevent or reduce disruptions due to the failure in the communication of the active server.
- the server cluster establishing module 220 of the SDN controller 1 10 may establish a cluster of servers 150 in a network 100, in which the servers 140a-140m in the cluster of servers 150 are to provide redundant server operations with respect to each other in the network 100.
- the server cluster establishing module 220 may establish the cluster of servers 150 in any of a variety of ways. For instance, the server cluster establishing module 220 may access previously stored information pertaining to the identification of the servers 140a-140m that are to be included in the cluster of servers 150.
- the server cluster establishing module 220 may identify a feature, such as an identification, of each of the servers 140a-140m and may determine that the servers 140a-140m either belong or do not belong in the cluster of servers 150 based upon the identified feature. That is, for instance, the server cluster establishing module 220 may compare the features of the servers 140a-140m with previously stored information that indicates which of the servers 140a-140m are to be included in the cluster of servers 150.
- the server cluster establishing module 220 may also store the identifications of each of the servers 140a-140m in the cluster of servers 150, for instance, in the data store 214. In addition, the server cluster establishing module 220 may select a virtual Internet Protocol (IP) address for the cluster of servers 150, which may be used as the IP address for each of the servers 140a-140m in the cluster of servers 150.
- IP Internet Protocol
- the access port position tracking module 222 of the SDN controller 1 10 may track the access ports 132a-132n to which each of the servers 140a-140m in the cluster of servers 150 is connected. That is, the access port position tracking module 222 may determine which of the access ports 132a-132n in which of the SDN switches 130a-130n each of the servers 140a-140m in the cluster of servers 150 is connected.
- the access port position tracking module 222 may determine which SDN switch 130a-130n each of the servers 140a-140m accesses by broadcasting a ping message to the servers 140a-140m in the cluster of servers 150, receiving ping messages from the servers 140a-140m, and analyzing the access port information contained in the received ping messages.
- the access port position tracking module 222 may store that access port positions in the data store 214.
- the active server selecting module 224 of the SDN controller 1 10 may select one of the servers 140a in the cluster of servers 150 to be a current active server. As discussed above, the active server selecting module 224 may select the server 140a through implementation of any suitable selection technique.
- the servers 140a-140m in the cluster of servers 150 may provide redundant server operations with respect to each other on the network 100. That is, for instance, the servers 140a-140m in the cluster of servers 150 may perform the same or similar functions with respect to each other such that, in the event one of the servers malfunctions or operates improperly, another one of the servers may take over the functions of the improperly functioning server.
- the server 140a of the cluster of servers 150 selected to be the current active server may operate as a master or principal server and the other servers 140b-140m may operate as backup servers to the current active server. That is, the current active server 140a may provide services to client devices while the other servers 140b-140m provide a backup function to the current active server 140a.
- the connection opening/closing module 226 of the SDN controller 1 10 may disconnect from a network 100, the servers 140b-140m in the cluster of servers 150 other than the current active server 140a.
- the connection opening/closing module 226 may disconnect the servers 140b-140m in the cluster of servers 150 other than the current active server 140a through a communication of instructions to the SDN switches 130a-130m to which the servers 140b-140m are connected to close the access ports 132b-132n to which those servers 140b-140m are connected.
- the SDN controller 1 10 may maintain the connection of the current active server 140a to the network 100 through the access port 132a in the SDN switch 130a.
- the message sending/receiving module 228 of the SDN controller 1 10 may send a status checking message to the current active server 140a.
- the status checking message may be a heartbeat message to test whether the current active server 140a is communicating over the network 100 properly. That is, the status checking message, if properly received by the current active server 140a, may cause the current active server 140a to send a response message back to the SDN controller 1 10.
- the server status determining module 230 of the SDN controller 1 10 may determine whether the current active server 140a is communicating over the network 100 properly. That is, the server status determining module 230 may determine that the current active server 140a is communicating over the network 100 properly if the SDN controller 1 10 receives a responding message back from the current active server 140a within a predetermined amount of time, e.g., a few miliseconds or seconds. Alternatively, the server status determining module 230 may determine that the current active server 140a is not communicating over the network 100 properly if the SDN controller 1 10 does not receive a responding message back from the current active server 140a within the predetermined amount of time.
- a predetermined amount of time e.g., a few miliseconds or seconds.
- the SDN controller 1 10 may select another server 140b in the cluster of servers 150 to be a next active server, may close a connection of the current active server 140a to the network 100, and may open a connection of the selected another server 140b to the network 100, as indicated at block 414.
- the active server selecting module 224 of the SDN controller 1 10 may select one of the servers 140b-140m other than the current active server 140a to be the next active server as discussed above.
- connection opening/closing module 226 may close the connection of the current active server 140a to the network 100. That is, for instance, the connection opening/closing module 226 may instruct the SDN switch 130a to close the access port 132a to which the current active server 140a is connected. Moreover, the connection opening/closing module 226 may open the connection of the next active server 140b to the network 100. That is, for instance, the connection opening/closing module 226 may instruct the SDN switch 130b to which the next active server 140b is connected to open the connection through the access port 132b.
- Each of the servers 140a-140m may be connected to the SDN controller 1 10 through a data forwarding channel and a management channel.
- the current active server 140a may be unable to communicate data properly over the data forwarding channel but may be able to communicate data properly over the management channel.
- the current active server 140a may continue to receive the status checking messages over the management channel.
- the SDN controller 1 10 may still determine that the current active server 140a is not communicating properly by sensing an abnormality of the data channel of the current active server through polling or receiving interface Down events.
- the access interface of the current active server 140a may be closed and a backup server may be selected from the cluster of servers 150.
- an access interface of the selected backup server may be opened and the SDN controller 1 10 may send a status checking message to the selected backup server. In response to receipt of the status checking message, the selected backup server may begin operating as the current active server.
- the current active server 140a may be unable to communicate data properly over the management channel and thus, communication of the status checking messages may be interrupted.
- the SDN controller 1 10 may detect the abnormal state of the management channel between the SDN controller 1 10 and the current active server 140a through any of the following techniques. In a first technique, the SDN controller 1 10 may determine that the management channel between the SDN controller 1 10 and the current active server 140a is abnormal if the SDN controller 1 10 does not receive a status checking message (e.g., heartbeat message) from the current active server 140a.
- a status checking message e.g., heartbeat message
- the SDN controller 1 10 may be directly connected to an interface DOWN TRAP of a common switch via a SDN switch 130a and, if the SDN controller 1 10 receives the DOWN TRAP of a port, the SDN controller 1 10 may determine that the management channel between the SDN switch 130a that is directly connected to the port and the SDN controller 1 10 is abnormal.
- the SDN controller 1 10 may periodically read the UP/DOWN state of the interface of the common switch that is directly connected to the SDN switch 130a and if the SDN controller 1 10 that the state of a port is DOWN, the SDN controller 1 10 may determine that the management channel between the SDN controller 1 10 and the SDN switch 130a that is directly connected to the port and the SDN controller 1 10 is abnormal.
- the message sending/receiving module 228 may send a status checking message to the next active server 140b, which is now the current active server, as indicated at block 410.
- the server status determining module 230 may determine whether the current active server 140b is communicating over the network 100 properly.
- the SDN controller 1 10 may select another server 140c to be the next active server as indicated at block 414.
- the SDN controller 1 10 may also close the connection of the current active server 140b to the network 100 and may open the connection of the selected another server 140c to the network 100, as also indicated at block 414 [0046] However, at block 412, in response to a determination that a current active server 140a or 140b is communicating properly over the network 100, the SDN controller 1 10 may maintain the connection of the current active server 140a or 140b to the network 100, as indicated at block 416. In addition, the SDN controller 1 10 may iterate through blocks 410-416 in a continuous and/or periodic manner to change the active server if the SDN controller 1 10 determines that a currently selected active server is not communicating properly over the network 100.
- the SDN controller 1 10 may cause a backup server to become active in response to a determination that the current active server is not communicating properly over the network to thus prevent or reduce disruptions due to the failure in the communication of the active server.
- the SDN controller 1 10 may iterate through blocks 410-416 every few milliseconds or seconds.
- FIG. 5 there is shown a flow diagram of a method 500 for controlling an operational status of a server 140a, according to an example.
- the method 500 represents a generalized illustration and that other operations may be added or existing operations may be removed, modified or rearranged without departing from the scope of the method 500.
- Any of the servers 140a-140m in a cluster of servers 150 may implement the method 500.
- the remaining servers 140b-140m may implement the method 500.
- a server 140a in the cluster of servers 150 may implement the method 500 to determine whether the server 140a is operating as an active server or as a backup server.
- a processor such as a microprocessor, a micro-controller, an ASIC, or the like, that implements the server 140a, may implement or execute the method 500.
- a server 140a may start the method 300.
- the server 140a may start the method 500 in response to receipt of a manual instruction from a user, may automatically start the method 500 at a predetermined time, or in response to receipt of a signal, for instance, from the SDN controller 1 10.
- the server 140a may determine whether the server 140a received a status checking message from the SDN controller 1 10. In response to a determination that the server 140a has not received a status checking message, the server 140a may operate as a backup server in the cluster of servers 150, as indicated at block 506. That is, the server 140a may be disconnected from the network 100 and may stay in a fully operational mode. Alternatively, the server 140a may enter into a lower power mode, such as a sleep or a standby mode.
- the server 140a may operate as a current active server, as indicated at block 508.
- the server 140a when operating as the current active server, may provide services to clients for the cluster of servers 150.
- blocks 504-508 may be repeated by the server 140a to continually determine whether the server 140a is to operate as the current active server or as a backup server and to continually update the operational status of the server 140a.
- Some or all of the operations set forth in the methods 300, 400, and 500 may be contained as utilities, programs, or subprograms, in any desired computer accessible medium.
- the methods 300, 400, and 500 may be embodied by computer programs, which may exist in a variety of forms both active and inactive. For example, they may exist as machine readable instructions, including source code, object code, executable code or other formats. Any of the above may be embodied on a non-transitory computer readable storage medium.
- non-transitory computer readable storage media include conventional computer system RAM, ROM, EPROM, EEPROM, and magnetic or optical disks or tapes. It is therefore to be understood that any electronic device capable of executing the above-described functions may perform those functions enumerated above.
- the device 600 may include a processor 602, a display 604, such as a monitor; a network interface 608, such as a Local Area Network LAN, a wireless 802.1 1 x LAN, a 3G mobile WAN or a WiMax WAN; and a computer-readable medium 610.
- a bus 612 may be an EISA, a PCI, a USB, a FireWire, a NuBus, or a PDS.
- the computer readable medium 610 may be any suitable medium that participates in providing instructions to the processor 602 for execution.
- the computer readable medium 610 may be non-volatile media, such as an optical or a magnetic disk; volatile media, such as memory.
- the computer-readable medium 610 may also store a redundant server operation application 614, which may perform the methods 300 and/or 400 and may include the modules 220-230 of the SDN controller 1 10 depicted in FIGS. 1 and 2.
- the redundant server operation application 614 may include a server cluster establishing module 220, an access port position tracking module 222, an active server selecting module 224, a connection opening/closing module 226, a message sending/receiving module 228, and a server status determining module 230.
Abstract
According to an example, in a method for redundant server operation by a software defined network (SDN) controller, a processor implementing the SDN controller may determine whether a current active server in a cluster of servers is communicating over a network properly, in which the servers in the cluster of servers are to provide redundant server operations with respect to each other on the network. In addition, in response to a determination that the current active server is not communicating over the network properly, selecting, by the processor, another server in the cluster of servers to be a next active server, closing a connection of the current active server to the network, and opening the connection of the selected another server to the network.
Description
REDUNDANT SERVER OPERATION BY A SOFTWARE DEFINED NETWORK
CONTROLLER
BACKGROUND
[0001] Servers, particularly servers that perform operations requiring high availability, are known to be implemented in a redundant manner. That is, a plurality of servers that are to perform similar server operations with respect to each other are implemented in a network, in which one of the servers is a currently active server and another server is a backup server. In addition, if the currently active server fails or is otherwise unable to perform the server operations, the backup server takes over the functionalities of failed currently active server and becomes the currently active server. Typically, the switchover from the failed active server to the backup server occurs as quickly as possible to substantially minimize disruptions in the performance of the server operations.
BRIEF DESCRIPTION OF THE DRAWINGS
[0002] Features of the present disclosure are illustrated by way of example and not limited in the following figure(s), in which like numerals indicate like elements, in which:
[0003] FIG. 1 is a simplified diagram of a network, according to an example of the present disclosure;
[0004] FIG. 2 is a simplified block diagram of a computing device containing the SDN controller depicted in FIG. 1 , according to an example of the present disclosure;
[0005] FIGS. 3 and 4, respectively, are flow diagrams of methods for redundant server operation by a SDN controller, according to two examples of the present disclosure;
[0006] FIG. 5 is a flow diagram of a method for controlling an operational status of a server, according to an example of the present disclosure; and
[0007] FIG. 6 is schematic representation of a computing device, which may be employed to perform various functions of the computing device depicted in FIG. 2, according to an example of the present disclosure.
DETAILED DESCRIPTION
[0008] For simplicity and illustrative purposes, the present disclosure is described by referring mainly to an example thereof. In the following description, numerous specific details are set forth in order to provide a thorough understanding of the present disclosure. It will be readily apparent however, that the present disclosure may be practiced without limitation to these specific details. In other instances, some methods and structures have not been described in detail so as not to unnecessarily obscure the present disclosure. As used herein, the term "includes" means includes but not limited to, the term "including" means including but not limited to. The term "based on" means based at least in part on.
[0009] Disclosed herein are methods and apparatuses for redundant server operation by a software defined network (SDN) controller. In the methods and apparatuses disclosed herein, the SDN controller may determine whether a current active server in a cluster of servers is communicating over a network properly, in which the servers in the cluster of servers are to provide redundant server operations with respect to each other on the network. In addition, in response to a determination that the current active server is not communicating over the network properly, the SDN controller may select another server in the cluster of servers to be a next active server. The SDN controller may also close a connection of the current active server to the network and may open the connection of the selected another server to the network. In response to a determination that the current active server is communicating over the network properly, the SDN controller may maintain the current active server.
[0010] According to an example, the methods and apparatuses disclosed herein enable for redundant operation of the servers in the cluster of servers by the SDN controller. In one regard, the methods and apparatuses disclosed herein may not rely upon the redundant servers themselves to correctly determine whether the current active server is communicating properly over a network and to switchover to a backup server if the current active server is not communicating properly over the network. That is, for instance, if there is a problem in a component other than the currently active server that prevents or disrupts communications to and/or from the current active server, the current active server may not be aware that a problem exists. As discussed herein, however, the SDN controller, which is separate from the servers
in the cluster of servers and operates under the software-defined networking approach, may make a determination as to whether communications with the current active server are not functioning properly and may thus determine that a problem exists in the communications network of the active server, even in instances where the problem lies outside of the current active server. As such, for instance, the methods and apparatuses disclosed herein allow for redundant server operations to be provided in a manner that may generally be more stable than conventional techniques for providing redundant server operations, which rely upon the current active server itself to determine whether to switch to a backup server.
[0011] Through implementation of the SDN controller disclosed herein, therefore, disruptions in the performance of services provided by the servers in a cluster of servers caused by network connection and/or other errors may substantially be minimized. In addition, because the SDN controller may operate under SDN, the SDN controller may deploy network services relatively quickly and more efficiently than techniques that require hardware deployment of services.
[0012] With reference first to FIG. 1 , there is shown a simplified diagram of a network 100, according to an example. It should be understood that the network 100 depicted in FIG. 1 may include additional elements and that some of the elements depicted therein may be removed and/or modified without departing from a scope of the network 100.
[0013] The network 100 in FIG. 1 is depicted as including a SDN controller 1 10, a network switch 120, a plurality of SDN switches 130a-130n, and a plurality of servers 140a-140m. The SDN switches 130a-130n are also depicted as each including a respective port 132a-132n to which a respective server 140a-140m is connected. The variables "n" and "m" may each represent an integer greater than 1 and need not be equal to each other. The SDN controller 1 10 may communicate with each of the servers 140a-140m through the switch 120 and at least one of the SDN switches 130a-130n. In addition, the SDN controller 1 10 may communicate with a server 140a through multiple SDN switches 130a-130n. In this regard, multiple ones of the SDN switches 130a-130n may be in communication with each other, i.e., some or all of the SDN switches 130a-130n may have forwarding links among each other. Moreover, the network switch 120 may be connected to the servers 140a-140m through
respective connections, as indicated by the dashed lines. Thus, for instance, the SDN controller 1 10 may communicate with the servers 140a-140m through any of a number of connections.
[0014] According to an example, the SDN controller 1 10 supports the OpenFlow protocol, which gives access to the forwarding plane of a network switch or router over a network, and is managed by the Open Networking Foundation, and may thus be construed as being an OpenFlow controller. The SDN switches 130a-130n may also support the OpenFlow protocol and communications between the SDN controller 1 10 and the SDN switches 130a-130n may comply with OpenFlow standards. Generally speaking, SDN allows network services to be managed through abstraction of lower level functionality, for instance, by decoupling the system that makes decisions about where traffic is sent, i.e., the control plane, from the underlying systems that forward the traffic, i.e., the data plane. In one regard, the OpenFlow protocol provides a method for the control plane to communicate with the data plane. In the present disclosure, the SDN controller 1 10 may communicate with the SDN switches 130a-130n through implementation of the OpenFlow protocol. It should, however, be clearly understood that the SDN controller disclosed herein need not be limited to implementation of the OpenFlow protocol and may thus communicate with the SDN switches 130a-130n through implementation of other suitable protocols that enable communications between the SDN controller 1 10 and the SDN switches 130a-130n.
[0015] Each of the SDN switches 130a-130n may be connected to the SDN controller 1 10 through an independent channel, e.g., an OpenFlow management channel. In addition, the SDN switches 130a-130n may, upon receiving messages, report the messages to the SDN controller 1 10 and the SDN controller 1 10 may communicate instructions to the SDN switches 130a-130n as to how the SDN switches 130a-130n are to process the messages. Particularly, the SDN controller 1 10 may perform computations on the messages to determine how the SDN switches 130a-130n are to handle the messages. For instance, the SDN controller 1 10 may perform the computations to determine whether the SDN switches 130a-130n are to discard a message, limit the communication of a message, send a message via a particular port, etc.
[0016] The network switch 120 may be a computer networking device that links different devices in a network together and may process and route data in the network 100. According to an example, the network switch 120 operates under Ethernet standards. The SDN switches 130a-130n may also be computer networking devices that operate under Ethernet standards.
[0017] The servers 140a-140m may each be machine readable instructions stored on a computer readable storage medium and/or a hardware device storing the machine readable instructions. In addition, each of the servers 140a-140m, or the devices on which the servers 140a-140m are stored, may be connected to a respective SDN switch 130a-130n through a respective port 132a-132n of the SDN switches 130a-130n. In addition or alternatively, multiple ones of the servers 140a-140m may be connected to respective ports on a common SDN switch 130a. Although not shown, each of the servers 140a-140m may be implemented by a respective hardware processor.
[0018] As discussed in greater detail herein below, the servers 140a-140m may be part of a cluster of servers 150 that are to provide redundant server operations on the network 100 with respect to each other. That is, each of the servers 140a-140m may include the same or similar sets of instructions to provide the same or similar computing services to client devices. In addition, at any given time, one of the servers 140a-140m in the cluster of servers 150 may be selected to perform the server operations for the client devices. The selected server 140a may be considered to be a current active server and the remaining servers 140b-140m may be considered to be backup servers. Thus, for instance, if the current active server 140a fails or is otherwise unable to perform the server operations in the network 100, the current active server 140a may be removed from operating as the current active server and another one of the servers 140b-140m may be promoted to perform the server operations in the network 100.
[0019] According to an example, the SDN controller 1 10 may select one of the servers 140a-140m to operate as the current active server. The SDN controller 1 10 may also determine whether the server 140a-140m selected to operate as the current active server is operating properly. The SDN controller 1 10 may further select another server to operate as the current active server in response to a determination by the
SDN controller 1 10 that the currently active server is not communicating over the network properly. As discussed in greater detail below, the SDN controller 1 10 may also control the connections to the servers 140a-140m to control which of the servers 140a-140m is the current active server.
[0020] Turning now to FIG. 2, there is shown a simplified block diagram 200 of a computing device 202 containing the SDN controller 1 10 depicted in FIG. 1 , according to an example. It should be understood that the computing device 202 depicted in FIG. 2 may include additional elements and that some of the elements depicted therein may be removed and/or modified without departing from a scope of the computing device 202 containing the SDN controller 1 10.
[0021] As shown in FIG. 2, the computing device 202 is depicted as including the SDN controller 1 10, a processor 210, an input/output interface 212, and a data store 214. The SDN controller 1 10 is also depicted as including a server cluster establishing module 220, an access port position tracking module 222, an active server selecting module 224, a connection opening/closing module 226, a message sending/receiving module 228, and a server status determining module 230.
[0022] The processor 210, which may be a microprocessor, a micro-controller, an application specific integrated circuit (ASIC), or the like, is to perform various processing functions in the computing device 202. One of the processing functions may include invoking or implementing the modules 220-230 of the SDN controller 1 10 as discussed in greater detail herein below. According to an example, the SDN controller 1 10 is a hardware device, such as, a circuit or multiple circuits arranged on a board. In this example, the modules 220-230 may be circuit components or individual circuits.
[0023] According to another example, the SDN controller 1 10 is a hardware device, for instance, a volatile or non-volatile memory, such as dynamic random access memory (DRAM), electrically erasable programmable read-only memory (EEPROM), magnetoresistive random access memory (MRAM), memristor, flash memory, floppy disk, a compact disc read only memory (CD-ROM), a digital video disc read only memory (DVD-ROM), or other optical or magnetic media, and the like, on which software may be stored. In this example, the modules 220-230 may be software modules, e.g., sets of machine readable instructions, stored in the SDN controller 1 10.
According to a further example, the modules 220-230 may be a combination of hardware and software modules.
[0024] The processor 210 may store data in the data store 214 and may use the data in implementing the modules 220-230. The data store 214 may be volatile and/or non-volatile memory, such as DRAM, EEPROM, MRAM, phase change RAM (PCRAM), memristor, flash memory, and the like. In addition, or alternatively, the data store 214 may be a device that may read from and write to a removable media, such as, a floppy disk, a CD-ROM, a DVD-ROM, or other optical or magnetic media.
[0025] The input/output interface 212 may include hardware and/or software to enable the processor 210 to communicate with devices in the network 100 (FIG. 1 ), such as the network switch 120, through a wired and/or wireless connection. The input/output interface 212 may also include hardware and/or software to enable the processor 210 to communicate with various input and/or output devices (not shown), such as a keyboard, a mouse, a display, etc., through which a user may input instructions into the computing device 202 and may view outputs from the computing device 202.
[0026] Various manners in which the SDN controller 1 10 in general, and the modules 220-230 in particular, may be implemented are discussed in greater detail with respect to the methods 300 and 400 depicted in FIGS. 3 and 4 respectively. Particularly, FIGS. 3 and 4, respectively, depict flow diagrams of methods 300 and 400 for redundant server operation by a SDN controller 1 10, according to two examples. It should be apparent to those of ordinary skill in the art that the methods 300 and 400 represent generalized illustrations and that other operations may be added or existing operations may be removed, modified or rearranged without departing from the scopes of the methods 300 and 400. Generally speaking, the SDN controller 1 10 may implement the methods 300 and 400 in the network 100 depicted in FIG. 1 . Particularly, for instance, the processor 210, which may implement or execute the modules 220-230 of the SDN controller 1 10 may implement or execute the methods 300 and 400.
[0027] With reference first to FIG. 3, at block 302, the SDN controller 1 10 may start the method 300. The SDN controller 1 10 may start the method 300 in response to receipt of a manual instruction from a user or may automatically start the method
300 at a predetermined time. In addition, prior to implementing the method 300, the SDN controller 1 10 may perform additional operations as discussed in greater detail herein below with respect to the method 400 depicted in FIG. 4.
[0028] At block 304, the SDN controller 1 10, and more particularly, the server status determining module 230, may determine whether a current active server 140a in a cluster of servers 150 is communicating over the network 100 properly. That is, the server status determining module 230 may determine whether the current active server is properly sending and receiving data over the network 100. In one regard, the current active server 140a may be unable to properly send and receive data over the network 100 if there is a failure in the current active server 140a, if there is a failure in the SDN switch 130a or access port 132a to which the current active server 140a is connected, if there is a failure in a connection between the SDN controller 1 10 and the current active server 140a, etc. Various manners in which the server status determining module 230 may make this determination are discussed in greater detail herein below with respect to the method 400.
[0029] At block 306, in response to a determination that the current active server 140a is not communicating over the network 100 properly, the SDN controller 1 10 may select another server 140b in the cluster of servers 150 to be a next active server, may close a connection of the current active server 140a to the network 100, and may open a connection of the selected another server 140b to the network 100. Particularly, for instance, the active server selecting module 224 of the SDN controller 1 10 may select one of the servers 140b-140m other than the current active server 140a to be the next active server. The active server selecting module 224 may select the another server to be the next active server through any suitable selection technique. For instance, the active server selecting module 224 may select the another server in a round robin fashion, randomly, based upon a unique identification of the servers, etc.
[0030] In addition, the connection opening/closing module 226 may close the connection of the current active server 140a to the network 100. That is, for instance, the connection opening/closing module 226 may instruct the SDN switch 130a to close the access port 132a to which the current active server 140a is connected. Moreover, the connection opening/closing module 226 may open the connection of the next
active server 140b to the network 100. That is, for instance, the connection opening/closing module 226 may instruct the SDN switch 130b to which the next active server 140b is connected to open the connection through the access port 132b.
[0031] Following block 306, the SDN controller 1 10 may determine whether the next active server 140b, which is now the current active server, is communicating over the network 100 properly at block 304. In response to a determination that the current active server 140b is not communicating over the network 100 properly, the SDN controller 1 10 may select another server 140c to be the next active server as indicated at block 306. The SDN controller 1 10 may also close the connection of the current active server 140b to the network 100 and may open the connection of the selected another server 140c to the network 100, as also indicated at block 306.
[0032] However, at block 304, in response to a determination that a current active server is communicating properly over the network 100, the SDN controller 1 10 may maintain the connection of the current active server 140a to the network 100, as indicated at block 308. In addition, the SDN controller 1 10 may iterate through blocks 304-308 in a continuous and/or periodic manner to change the active server if the SDN controller 1 10 determines that a currently selected active server is not communicating properly over the network 100. That is, the SDN controller 1 10 may cause a backup server to become active in response to a determination that the currently active server is not communicating properly over the network to thus prevent or reduce disruptions due to the failure in the communication of the active server.
[0033] Turning now to FIG. 4, at block 402, the server cluster establishing module 220 of the SDN controller 1 10 may establish a cluster of servers 150 in a network 100, in which the servers 140a-140m in the cluster of servers 150 are to provide redundant server operations with respect to each other in the network 100. The server cluster establishing module 220 may establish the cluster of servers 150 in any of a variety of ways. For instance, the server cluster establishing module 220 may access previously stored information pertaining to the identification of the servers 140a-140m that are to be included in the cluster of servers 150. As another example, the server cluster establishing module 220 may identify a feature, such as an identification, of each of the servers 140a-140m and may determine that the servers 140a-140m either belong or do not belong in the cluster of servers 150 based upon the
identified feature. That is, for instance, the server cluster establishing module 220 may compare the features of the servers 140a-140m with previously stored information that indicates which of the servers 140a-140m are to be included in the cluster of servers 150.
[0034] The server cluster establishing module 220 may also store the identifications of each of the servers 140a-140m in the cluster of servers 150, for instance, in the data store 214. In addition, the server cluster establishing module 220 may select a virtual Internet Protocol (IP) address for the cluster of servers 150, which may be used as the IP address for each of the servers 140a-140m in the cluster of servers 150.
[0035] At block 404, the access port position tracking module 222 of the SDN controller 1 10 may track the access ports 132a-132n to which each of the servers 140a-140m in the cluster of servers 150 is connected. That is, the access port position tracking module 222 may determine which of the access ports 132a-132n in which of the SDN switches 130a-130n each of the servers 140a-140m in the cluster of servers 150 is connected. According to an example, the access port position tracking module 222 may determine which SDN switch 130a-130n each of the servers 140a-140m accesses by broadcasting a ping message to the servers 140a-140m in the cluster of servers 150, receiving ping messages from the servers 140a-140m, and analyzing the access port information contained in the received ping messages. In addition, the access port position tracking module 222 may store that access port positions in the data store 214.
[0036] At block 406, the active server selecting module 224 of the SDN controller 1 10 may select one of the servers 140a in the cluster of servers 150 to be a current active server. As discussed above, the active server selecting module 224 may select the server 140a through implementation of any suitable selection technique.
[0037] As discussed above, the servers 140a-140m in the cluster of servers 150 may provide redundant server operations with respect to each other on the network 100. That is, for instance, the servers 140a-140m in the cluster of servers 150 may perform the same or similar functions with respect to each other such that, in the event one of the servers malfunctions or operates improperly, another one of the
servers may take over the functions of the improperly functioning server. Generally speaking, the server 140a of the cluster of servers 150 selected to be the current active server may operate as a master or principal server and the other servers 140b-140m may operate as backup servers to the current active server. That is, the current active server 140a may provide services to client devices while the other servers 140b-140m provide a backup function to the current active server 140a.
[0038] At bock 408, the connection opening/closing module 226 of the SDN controller 1 10 may disconnect from a network 100, the servers 140b-140m in the cluster of servers 150 other than the current active server 140a. The connection opening/closing module 226 may disconnect the servers 140b-140m in the cluster of servers 150 other than the current active server 140a through a communication of instructions to the SDN switches 130a-130m to which the servers 140b-140m are connected to close the access ports 132b-132n to which those servers 140b-140m are connected. As such, the SDN controller 1 10 may maintain the connection of the current active server 140a to the network 100 through the access port 132a in the SDN switch 130a.
[0039] At block 410, the message sending/receiving module 228 of the SDN controller 1 10 may send a status checking message to the current active server 140a. The status checking message may be a heartbeat message to test whether the current active server 140a is communicating over the network 100 properly. That is, the status checking message, if properly received by the current active server 140a, may cause the current active server 140a to send a response message back to the SDN controller 1 10.
[0040] At block 412, the server status determining module 230 of the SDN controller 1 10 may determine whether the current active server 140a is communicating over the network 100 properly. That is, the server status determining module 230 may determine that the current active server 140a is communicating over the network 100 properly if the SDN controller 1 10 receives a responding message back from the current active server 140a within a predetermined amount of time, e.g., a few miliseconds or seconds. Alternatively, the server status determining module 230 may determine that the current active server 140a is not communicating over the network 100 properly if the SDN controller 1 10 does not receive a responding
message back from the current active server 140a within the predetermined amount of time.
[0041] In response to a determination that the current active server 140a is not communicating over the network 100 properly, the SDN controller 1 10 may select another server 140b in the cluster of servers 150 to be a next active server, may close a connection of the current active server 140a to the network 100, and may open a connection of the selected another server 140b to the network 100, as indicated at block 414. Particularly, for instance, the active server selecting module 224 of the SDN controller 1 10 may select one of the servers 140b-140m other than the current active server 140a to be the next active server as discussed above.
[0042] The connection opening/closing module 226 may close the connection of the current active server 140a to the network 100. That is, for instance, the connection opening/closing module 226 may instruct the SDN switch 130a to close the access port 132a to which the current active server 140a is connected. Moreover, the connection opening/closing module 226 may open the connection of the next active server 140b to the network 100. That is, for instance, the connection opening/closing module 226 may instruct the SDN switch 130b to which the next active server 140b is connected to open the connection through the access port 132b.
[0043] Each of the servers 140a-140m may be connected to the SDN controller 1 10 through a data forwarding channel and a management channel. In one example, the current active server 140a may be unable to communicate data properly over the data forwarding channel but may be able to communicate data properly over the management channel. In this example, the current active server 140a may continue to receive the status checking messages over the management channel. The SDN controller 1 10 may still determine that the current active server 140a is not communicating properly by sensing an abnormality of the data channel of the current active server through polling or receiving interface Down events. In this case, if the current active server 140a does not have other data forwarding channels, the access interface of the current active server 140a may be closed and a backup server may be selected from the cluster of servers 150. In addition, an access interface of the selected backup server may be opened and the SDN controller 1 10 may send a status checking message to the selected backup server. In response to receipt of the status
checking message, the selected backup server may begin operating as the current active server.
[0044] In another example, the current active server 140a may be unable to communicate data properly over the management channel and thus, communication of the status checking messages may be interrupted. In this example, the SDN controller 1 10 may detect the abnormal state of the management channel between the SDN controller 1 10 and the current active server 140a through any of the following techniques. In a first technique, the SDN controller 1 10 may determine that the management channel between the SDN controller 1 10 and the current active server 140a is abnormal if the SDN controller 1 10 does not receive a status checking message (e.g., heartbeat message) from the current active server 140a. In a second technique, the SDN controller 1 10 may be directly connected to an interface DOWN TRAP of a common switch via a SDN switch 130a and, if the SDN controller 1 10 receives the DOWN TRAP of a port, the SDN controller 1 10 may determine that the management channel between the SDN switch 130a that is directly connected to the port and the SDN controller 1 10 is abnormal. In a third technique, the SDN controller 1 10 may periodically read the UP/DOWN state of the interface of the common switch that is directly connected to the SDN switch 130a and if the SDN controller 1 10 that the state of a port is DOWN, the SDN controller 1 10 may determine that the management channel between the SDN controller 1 10 and the SDN switch 130a that is directly connected to the port and the SDN controller 1 10 is abnormal.
[0045] Following block 414, the message sending/receiving module 228 may send a status checking message to the next active server 140b, which is now the current active server, as indicated at block 410. In addition, the server status determining module 230 may determine whether the current active server 140b is communicating over the network 100 properly. In response to a determination that the current active server 140b is not communicating over the network 100 properly, the SDN controller 1 10 may select another server 140c to be the next active server as indicated at block 414. The SDN controller 1 10 may also close the connection of the current active server 140b to the network 100 and may open the connection of the selected another server 140c to the network 100, as also indicated at block 414
[0046] However, at block 412, in response to a determination that a current active server 140a or 140b is communicating properly over the network 100, the SDN controller 1 10 may maintain the connection of the current active server 140a or 140b to the network 100, as indicated at block 416. In addition, the SDN controller 1 10 may iterate through blocks 410-416 in a continuous and/or periodic manner to change the active server if the SDN controller 1 10 determines that a currently selected active server is not communicating properly over the network 100. That is, the SDN controller 1 10 may cause a backup server to become active in response to a determination that the current active server is not communicating properly over the network to thus prevent or reduce disruptions due to the failure in the communication of the active server. To substantially reduce or limit the amount of down time caused by an improperly communicating active server, the SDN controller 1 10 may iterate through blocks 410-416 every few milliseconds or seconds.
[0047] Turning now to FIG. 5, there is shown a flow diagram of a method 500 for controlling an operational status of a server 140a, according to an example. It should be apparent to those of ordinary skill in the art that the method 500 represents a generalized illustration and that other operations may be added or existing operations may be removed, modified or rearranged without departing from the scope of the method 500. Any of the servers 140a-140m in a cluster of servers 150 may implement the method 500. Thus, although particular reference is made to the server 140a, it should be clearly understood that the remaining servers 140b-140m may implement the method 500.
[0048] Generally speaking, a server 140a in the cluster of servers 150 may implement the method 500 to determine whether the server 140a is operating as an active server or as a backup server. Particularly, for instance, a processor, such as a microprocessor, a micro-controller, an ASIC, or the like, that implements the server 140a, may implement or execute the method 500. At block 502, a server 140a may start the method 300. The server 140a may start the method 500 in response to receipt of a manual instruction from a user, may automatically start the method 500 at a predetermined time, or in response to receipt of a signal, for instance, from the SDN controller 1 10.
[0049] At block 504, the server 140a may determine whether the server 140a received a status checking message from the SDN controller 1 10. In response to a determination that the server 140a has not received a status checking message, the server 140a may operate as a backup server in the cluster of servers 150, as indicated at block 506. That is, the server 140a may be disconnected from the network 100 and may stay in a fully operational mode. Alternatively, the server 140a may enter into a lower power mode, such as a sleep or a standby mode.
[0050] In response to a determination that the server 140a has received a status checking message from the SDN controller 1 10, the server 140a may operate as a current active server, as indicated at block 508. In one regard, the server 140a, when operating as the current active server, may provide services to clients for the cluster of servers 150.
[0051] As depicted in FIG. 5, blocks 504-508 may be repeated by the server 140a to continually determine whether the server 140a is to operate as the current active server or as a backup server and to continually update the operational status of the server 140a.
[0052] Some or all of the operations set forth in the methods 300, 400, and 500 may be contained as utilities, programs, or subprograms, in any desired computer accessible medium. In addition, the methods 300, 400, and 500 may be embodied by computer programs, which may exist in a variety of forms both active and inactive. For example, they may exist as machine readable instructions, including source code, object code, executable code or other formats. Any of the above may be embodied on a non-transitory computer readable storage medium.
[0053] Examples of non-transitory computer readable storage media include conventional computer system RAM, ROM, EPROM, EEPROM, and magnetic or optical disks or tapes. It is therefore to be understood that any electronic device capable of executing the above-described functions may perform those functions enumerated above.
[0054] Turning now to FIG. 6, there is shown a schematic representation of a computing device 600, which may be employed to perform various functions of the computing device 202 depicted in FIG. 2, according to an example. The device 600
may include a processor 602, a display 604, such as a monitor; a network interface 608, such as a Local Area Network LAN, a wireless 802.1 1 x LAN, a 3G mobile WAN or a WiMax WAN; and a computer-readable medium 610. Each of these components may be operatively coupled to a bus 612. For example, the bus 612 may be an EISA, a PCI, a USB, a FireWire, a NuBus, or a PDS.
[0055] The computer readable medium 610 may be any suitable medium that participates in providing instructions to the processor 602 for execution. For example, the computer readable medium 610 may be non-volatile media, such as an optical or a magnetic disk; volatile media, such as memory. The computer-readable medium 610 may also store a redundant server operation application 614, which may perform the methods 300 and/or 400 and may include the modules 220-230 of the SDN controller 1 10 depicted in FIGS. 1 and 2. In this regard, the redundant server operation application 614 may include a server cluster establishing module 220, an access port position tracking module 222, an active server selecting module 224, a connection opening/closing module 226, a message sending/receiving module 228, and a server status determining module 230.
[0056] Although described specifically throughout the entirety of the instant disclosure, representative examples of the present disclosure have utility over a wide range of applications, and the above discussion is not intended and should not be construed to be limiting, but is offered as an illustrative discussion of aspects of the disclosure.
[0057] What has been described and illustrated herein is an example of the disclosure along with some of its variations. The terms, descriptions and figures used herein are set forth by way of illustration only and are not meant as limitations. Many variations are possible within the spirit and scope of the disclosure, which is intended to be defined by the following claims - and their equivalents - in which all terms are meant in their broadest reasonable sense unless otherwise indicated.
Claims
1 . A method for redundant server operation by a software defined network (SDN) controller, said method comprising:
determining, by a processor implementing the SDN controller, whether a current active server in a cluster of servers is communicating over a network properly, wherein the servers in the cluster of servers are to provide redundant server operations with respect to each other on the network; and
in response to a determination that the current active server is not communicating over the network properly, selecting, by the processor, another server in the cluster of servers to be a next active server, closing a connection of the current active server to the network, and opening the connection of the selected another server to the network.
2. The method according to claim 1 , further comprising:
selecting a server in the cluster of servers to be the current active server; and disconnecting from the network, the servers in the cluster of servers other than the current active server.
3. The method according to claim 2, further comprising, in response to the determination that the current active server is not communicating over the network properly:
sending a status checking message to the next active server;
determining whether the next active server is communicating properly over the network;
in response to a determination that the next active server is communicating properly over the network, maintaining the connection of the next active server to the network; and
in response to a determination that the next active server is not communicating properly over the network, closing the connection of the next active server to the network, selecting a further server in the cluster of servers to be a further active server, closing a connection of the next active server to the network, and opening the
connection of the selected further server to the network.
4. The method according to claim 2, wherein disconnecting, from the network, the servers in the cluster of servers other than the current active server further comprises disconnecting the servers in the cluster of servers other than the current active server by closing the access ports to which the servers in the cluster of servers other than the current active server are connected.
5. The method according to claim 1 , further comprising:
sending a status checking message to the current active server;
determining whether a response message is received from the current active server; and
wherein determining whether the current active server is communicating properly over the network further comprises determining that the current active server is communicating properly over the network in response to a determination that the response message is received from the current active server.
6. The method according to claim 5, wherein determining whether the current active server is communicating properly over the network further comprises determining that the current active server is not communicating properly over the network in response to a determination that the response message is not received from the current active server within a predetermined amount of time from when the status checking message was sent.
7. The method according to claim 1 , further comprising:
storing information pertaining to the servers in the cluster of servers; and assigning the servers in the cluster of servers with a same virtual internet protocol (IP) address.
8. The method according to claim 1 , further comprising:
establishing the cluster of servers; and
tracking locations of access ports in a plurality of network switches to which the servers in the cluster of servers are connected.
9. A non-transitory computer readable storage medium on which is stored machine readable instructions that when executed by a processor cause the processor to:
send a status checking message to a current active server in a cluster of servers, wherein the servers in the cluster of servers are to provide redundant server operations with respect to each other on the network;
determine whether a response message is received from the current active server within a predetermined amount of time;
determine that the current active server is communicating properly over the network in response to a determination that the response message is received within the predetermined amount of time; and
determine that the current active server is not communicating properly over the network in response to a determination that the response message is not received within the predetermined amount of time.
10. The non-transitory computer readable storage medium according to claim 9, wherein the machine readable instructions are further to cause the processor to: in response to a determination that the current active server is not communicating properly over the network, select another server in the cluster of servers to be a next active server, close a connection of the current active server to the network, and open the connection of the selected another server to the network.
1 1 . The non-transitory computer readable storage medium according to claim 9, wherein the machine readable instructions are further to cause the processor to: select a server in a cluster of servers to be the current active server; and disconnect from the network, the servers in the cluster of servers other than the current active server.
12. The non-transitory computer readable storage medium according to claim 9, wherein, to disconnect the servers from the network, the machine readable instructions are further to cause the processor to communicate instructions to a plurality of network switches to close access ports on the plurality of network switches
to which the servers other than the current active server are connected.
13. The non-transitory computer readable storage medium according to claim 9, wherein the machine readable instructions are further to cause the processor to: store information pertaining to the servers in the cluster of servers; and assign the servers in the cluster of servers with a same virtual internet protocol (IP) address.
14. The non-transitory computer readable storage medium according to claim 9, wherein the machine readable instructions are further to cause the processor to: establish the cluster of servers; and
track locations of access ports in a plurality of network switches to which the servers in the cluster of servers are connected.
15. An apparatus comprising:
a processor; and
a memory storing machine readable instructions that when executed by the processor cause the processor to:
determine whether a status checking message was received;
in response to a determination that the status checking message was received, operating the apparatus as a current active server of cluster of servers, wherein the servers in the cluster of servers are to provide redundant server operations with respect to each other; and
in response to a determination that the status checking message was not received, operating the apparatus as a backup server in the cluster of servers.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310028074.1A CN103944746B (en) | 2013-01-23 | 2013-01-23 | A kind of method and device of two-node cluster hot backup |
CN201310028074.1 | 2013-01-23 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2014114119A1 true WO2014114119A1 (en) | 2014-07-31 |
Family
ID=51192245
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/CN2013/086066 WO2014114119A1 (en) | 2013-01-23 | 2013-10-28 | Redundant server operation by a software defined network controller |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN103944746B (en) |
WO (1) | WO2014114119A1 (en) |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104270260A (en) * | 2014-09-19 | 2015-01-07 | 杭州华三通信技术有限公司 | Method and device for elastic expansion of scale of SDN controller cluster |
CN105812161A (en) * | 2014-12-31 | 2016-07-27 | 中国电信股份有限公司 | Controller fault backup method and system |
CN107342911A (en) * | 2016-04-28 | 2017-11-10 | 横河电机株式会社 | Processing unit, instead of processing unit, relay, processing system and processing method |
EP3242212A4 (en) * | 2014-12-29 | 2018-07-04 | Nuctech Company Limited | Automatic switching method and system |
US10135670B2 (en) | 2014-12-22 | 2018-11-20 | Hewlett Packard Enterprise Development Lp | Response to an inoperative network device managed by a controller |
CN110753055A (en) * | 2019-10-25 | 2020-02-04 | 电子科技大学 | Source address authentication method based on SDN |
US20210243250A1 (en) * | 2020-02-04 | 2021-08-05 | Nutanix, Inc. | Efficient virtual ip address management for service clusters |
CN114189454A (en) * | 2021-12-02 | 2022-03-15 | 深圳前海微众银行股份有限公司 | Network scheduling policy evaluation method, framework, device and electronic equipment |
US11722570B1 (en) * | 2022-05-13 | 2023-08-08 | Microsoft Technology Licensing, Llc | Sharing SDN policy state information between SDN appliances |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104158758A (en) * | 2014-08-26 | 2014-11-19 | 上海斐讯数据通信技术有限公司 | Load balancing processing method and system based on user message time feedback in SDN network |
CN104537460A (en) * | 2014-12-08 | 2015-04-22 | 张君 | RFID signal parallel transmitting system for bottled liquid food production |
CN104639367B (en) * | 2015-01-04 | 2018-04-03 | 中国联合网络通信集团有限公司 | A kind of method and system for realizing active/standby server switching |
CN105867204B (en) * | 2015-01-20 | 2019-03-19 | 谢海春 | A kind of operation method of general purpose controller |
CN105207902A (en) * | 2015-10-13 | 2015-12-30 | 广州西麦科技股份有限公司 | Main-standby virtual gateway system and method based on SDN |
CN108390781A (en) * | 2018-02-12 | 2018-08-10 | 王磊 | A kind of method and system of the automatic Hot Spare of host |
CN110635928B (en) * | 2018-06-21 | 2022-09-30 | 中兴通讯股份有限公司 | Control method, control device and computer storage medium |
CN109347743B (en) * | 2018-08-02 | 2022-04-12 | 平安科技(深圳)有限公司 | Special line communication method, computer readable storage medium and terminal equipment |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1614936A (en) * | 2003-11-06 | 2005-05-11 | 西门子医疗健康服务公司 | Management system of treating apparatus |
US6941366B2 (en) * | 2001-01-17 | 2005-09-06 | International Business Machines Corporation | Methods, systems and computer program products for transferring security processing between processors in a cluster computing environment |
CN101309167A (en) * | 2008-06-27 | 2008-11-19 | 华中科技大学 | Disaster allowable system and method based on cluster backup |
-
2013
- 2013-01-23 CN CN201310028074.1A patent/CN103944746B/en active Active
- 2013-10-28 WO PCT/CN2013/086066 patent/WO2014114119A1/en active Application Filing
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6941366B2 (en) * | 2001-01-17 | 2005-09-06 | International Business Machines Corporation | Methods, systems and computer program products for transferring security processing between processors in a cluster computing environment |
CN1614936A (en) * | 2003-11-06 | 2005-05-11 | 西门子医疗健康服务公司 | Management system of treating apparatus |
CN101309167A (en) * | 2008-06-27 | 2008-11-19 | 华中科技大学 | Disaster allowable system and method based on cluster backup |
Cited By (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104270260A (en) * | 2014-09-19 | 2015-01-07 | 杭州华三通信技术有限公司 | Method and device for elastic expansion of scale of SDN controller cluster |
CN104270260B (en) * | 2014-09-19 | 2017-12-08 | 新华三技术有限公司 | A kind of method and device of the resilient expansion of SDN controllers cluster scale |
US10135670B2 (en) | 2014-12-22 | 2018-11-20 | Hewlett Packard Enterprise Development Lp | Response to an inoperative network device managed by a controller |
US10379976B2 (en) | 2014-12-29 | 2019-08-13 | Nuctech Company Limited | Automatic switching method and automatic switching system |
EP3242212A4 (en) * | 2014-12-29 | 2018-07-04 | Nuctech Company Limited | Automatic switching method and system |
CN105812161B (en) * | 2014-12-31 | 2019-08-06 | 中国电信股份有限公司 | A kind of controller failure backup method and system |
CN105812161A (en) * | 2014-12-31 | 2016-07-27 | 中国电信股份有限公司 | Controller fault backup method and system |
CN107342911A (en) * | 2016-04-28 | 2017-11-10 | 横河电机株式会社 | Processing unit, instead of processing unit, relay, processing system and processing method |
CN107342911B (en) * | 2016-04-28 | 2021-12-21 | 横河电机株式会社 | Processing device, substitute processing device, relay device, processing system, and processing method |
CN110753055A (en) * | 2019-10-25 | 2020-02-04 | 电子科技大学 | Source address authentication method based on SDN |
US20210243250A1 (en) * | 2020-02-04 | 2021-08-05 | Nutanix, Inc. | Efficient virtual ip address management for service clusters |
US11917001B2 (en) * | 2020-02-04 | 2024-02-27 | Nutanix, Inc. | Efficient virtual IP address management for service clusters |
CN114189454A (en) * | 2021-12-02 | 2022-03-15 | 深圳前海微众银行股份有限公司 | Network scheduling policy evaluation method, framework, device and electronic equipment |
CN114189454B (en) * | 2021-12-02 | 2024-04-09 | 深圳前海微众银行股份有限公司 | Evaluation method, framework, device and electronic equipment of network scheduling strategy |
US11722570B1 (en) * | 2022-05-13 | 2023-08-08 | Microsoft Technology Licensing, Llc | Sharing SDN policy state information between SDN appliances |
Also Published As
Publication number | Publication date |
---|---|
CN103944746A (en) | 2014-07-23 |
CN103944746B (en) | 2018-10-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2014114119A1 (en) | Redundant server operation by a software defined network controller | |
US10715411B1 (en) | Altering networking switch priority responsive to compute node fitness | |
EP3337097B1 (en) | Network element upgrading method and device | |
US20190335005A1 (en) | Service management modes of operation in distributed node service management | |
US7225356B2 (en) | System for managing operational failure occurrences in processing devices | |
CN105607590B (en) | Method and apparatus to provide redundancy in a process control system | |
US20170331676A1 (en) | Handling Failure Of Stacking System | |
CN101557315A (en) | Method, device and system for active-standby switch | |
US10340981B2 (en) | Data center management using device identification over power-line | |
US10567195B2 (en) | Network nodes in a ring network | |
US9535479B2 (en) | Method of performing power management in rack-mount system | |
CN103856357A (en) | Stack system fault processing method and stack system | |
US8478900B2 (en) | Determining misconnection of an electronic device to a network device using zone information | |
JP2009212798A (en) | Network system, control method thereof, and program | |
CN111030877A (en) | Main/standby equipment switching method and device | |
US20170222931A1 (en) | Dynamic allocation of flow table capacity | |
EP3525400B1 (en) | Network service management method and system | |
US9722694B2 (en) | Backup communications scheme in computer networks | |
WO2016122934A1 (en) | Multi-chassis link aggregation (lag) switches | |
US10659251B2 (en) | Ring protection network division | |
US10516625B2 (en) | Network entities on ring networks | |
WO2015147860A1 (en) | Rescheduling a service on a node | |
US20180139113A1 (en) | Efficiently Calculating Per Service Impact Of Ethernet Ring Status Changes | |
US10122588B2 (en) | Ring network uplink designation | |
CN109462639B (en) | Port expansion equipment management method and device |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 13872991 Country of ref document: EP Kind code of ref document: A1 |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
122 | Ep: pct application non-entry in european phase |
Ref document number: 13872991 Country of ref document: EP Kind code of ref document: A1 |