1. Field of the Invention
The present invention relates generally to communications networks and more particularly to a method and system for fast link failover.
2. Description of the Related Art
Companies today depend increasingly on the ability to quickly and reliably access data via communications networks. As the accessibility, reliability, and availability of such communications networks has become more important, a number of techniques to increase these factors have been developed. Redundancy is one such technique frequently used to minimize network downtime and increase the speed at which data may be accessed via a communications network. For example, redundant network links or connections are frequently used to couple a single network element or node, (e.g., a client, server, or other host data processing system, a communications network appliance, or a switch, router, hub, gateway or other redistribution point) to one or more communications networks or portions thereof (e.g., network segments). Such use of redundant network links with respect to network elements residing at the edge or terminating point of a communications network is known as “multi-homing” and such redundantly-linked network elements are said to be “multi-homed”.
In operation, data is transmitted between multi-homed endstations 106 and upstream communications network portion 102 using primary links 110a-110n, primary switch 104a, and primary link 108a. Following a failure of any of primary links 110a-110n, (e.g., due to failure of the physical link hardware, a primary network interface card, or primary switch 104a) one or more associated multi-homed endstations may failover to a corresponding secondary link 112a-112n by activating a network interface associated with the secondary link and deactivating a network interface associated with the failed primary link. Data is then transmitted between the multi-homed endstation which has failed over and upstream communications network portion 102 via an associated secondary link 112, a secondary switch 104b, and a secondary link 108b.
In a conventional communications network however, a failure of a link not directly attached to a network element (e.g., a failure of primary link 108a considered from the perspective of one or more of endstations 106a-106n) cannot be quickly detected. Traditionally, high-level system components (e.g., protocols, applications) have been utilized to detect the occurrence of such failures. For example, a high-level system component resident on an endstation 106 may use a timer to track a time period between data transfers associated with an upstream communications network portion or may use periodic link or connection status messages or “data units” to determine whether or not an upstream link failure has occurred.
The described techniques suffer from a number of significant shortcomings however. To account for ordinary communications network congestion and to avoid falsely declaring a link failure, the threshold time periods (and resultant latency) associated with the described techniques are typically multiple seconds or more. Additionally, such high-level system components frequently operate at an individual application or network element level. Consequently, failure of a link coupling an aggregating network element to an upstream communications network portion may not be simultaneously detected by all downstream network elements to which the aggregating network element is coupled.
Disclosed is a method and system for fast link failover. Using one or more embodiments of the present invention, network connectivity (e.g., data link layer connectivity) information is propagated, thereby enabling downstream network elements not immediately adjacent to the site of a link failure or directly coupled to a network element experiencing link failure to failover to alternate, redundant links such that the state of one or more connections or communications channels with the upstream portion(s) of a communications network may be preserved and the connection(s)/channel(s) may be maintained. According to one embodiment, a method is provided in which a failure of a first link between a network element and an upstream portion of a communications network is detected, and a second link between the network element and a downstream portion of the communications network is responsively disabled to maintain a communications channel between the downstream and upstream portions of the communications network using one or more alternate links.
The foregoing is a summary and thus contains, by necessity, simplifications, generalizations and omissions of detail; consequently, those skilled in the art will appreciate that the summary is illustrative only and is not intended to be in any way limiting. Other aspects, inventive features, and advantages of the present invention, as defined solely by the claims, will become apparent in the non-limiting detailed description set forth below.
The present invention may be better understood, and its numerous features and advantages made apparent to those skilled in the art by referencing the accompanying drawings in which:
The use of the same reference symbols in different drawings indicates similar or identical items.
Although the present invention has been described in connection with one or more specific embodiments, the invention is not intended to be limited to the specific forms set forth herein. On the contrary, it is intended to cover such alternatives, modifications, and equivalents as can be reasonably included within the scope of the invention as defined by the appended claims.
In the following detailed description, numerous specific details such as specific orders, structures, elements, and connections have been set forth. It is to be understood however that these and other specific details need not be utilized to practice embodiments of the present invention. In other circumstances, well-known structures, elements, or connections have been omitted, or have not been described in particular detail in order to avoid unnecessarily obscuring this description.
References within the specification to “one embodiment” or “an embodiment” are intended to indicate that a particular feature, structure, or characteristic described in connection with the embodiment is included in at least one embodiment of the present invention. The appearance of the phrase “in one embodiment” in various places within the specification are not necessarily all referring to the same embodiment, nor are separate or alternative embodiments mutually exclusive of other embodiments. Moreover, various features are described which may be exhibited by some embodiments and not by others. Similarly, various requirements are described which may be requirements for some embodiments but not other embodiments.
According to one embodiment of the present invention, a method is provided in which a failure of a first link between a network element and an upstream portion of a communications network is detected and a second link (e.g., a group of links which are logically related to the first link) between the network element and a downstream portion of the communications network is responsively disabled to maintain a communications channel between the downstream and upstream portions of the communications network. While the second link is indicated as “down” or “disabled” to one or more network elements of the downstream portion of the communications network, in actuality the link is active and capable of transferring data between the downstream portion of the network and the network element. Disabling the second link however, serves to quickly notify network elements of the downstream portion of the communications network that a failure has occurred on an upstream link.
Using embodiments of the present invention, a link failure may be propagated within a bounded or predetermined period of time. For example, where embodiments of the present invention are implemented using predominantly special-purpose hardware (e.g., application specific integrated circuits, special-purpose processors, programmable logic devices, or the like) or specific (e.g., vectored) interrupts, a link between a network element and a downstream portion of a communications network may be disabled within a period of time substantially less than or equal to 50 milliseconds of detecting a failure of another link between the network element and an upstream portion of the communications network.
Using alternative embodiments of the present invention however a greater period of time for link failure propagation may be necessary. For example, where embodiments of the present invention are implemented using predominantly general-purpose hardware (e.g., one or more general-purpose processors) coupled with machine-executable instructions (e.g., data processing system software, firmware, or the like) or generic (e.g., polled) interrupts, a link between a network element and a downstream portion of a communications network may be disabled within a period of time substantially less than or equal to 2 seconds of detecting a failure of another link between the network element and an upstream portion of the communications network.
As the link state or link failure information is propagated downstream, downstream network elements with the capability to switch to alternate (e.g., redundant) links may do so, preserving higher-level communication channels between the downstream and upstream portions of the communications networks and providing seamless failover. Within the present description, the term “downstream” is intended to indicate in a direction from a network's core to a network's edge or towards a network's edge, the term “upstream” by contrast is intended to indicate in a direction from a network's edge to a network's core or towards a network's core. Further within the present description, the term “endstation” is intended to indicate a network element (e.g., a file/data server, personal computer, or other data processing system) residing at the edge of a communications network, the term “switch” is intended to indicate a data link layer network element (e.g., an Ethernet switch), the term “link” is intended to indicate a data link layer connection and may include one or more logical sub-links (e.g., an “Ether-Channel” or “Port-Channel), and the term “failure” is intended to indicate the loss of a data link layer link.
Multi-homed endstations 106a, 106b . . . 106n are each similarly coupled to primary switch 104a via one of a plurality of primary downstream links 110a-110n (e.g., via a primary network interface card or host bus adapter) and to secondary switch 104b via one of a plurality of secondary downstream links 112a-112n (e.g., via a secondary network interface card or host bus adapter) as shown. While links 108, 110, and 112 have been illustrated as direct connections between network elements (e.g., upstream communications network portion 102, primary and secondary switches 104, and endstations 106) in alternative embodiments, any of links 108, 110, and 112 may be wireless (e.g., using electro-magnetic, optical, infrared and/or acoustic signals or transmission media). For example, one or more of primary downstream links 110 and secondary downstream links are implemented in one embodiment of the present invention using a wireless local area network (e.g., IEEE 802.11x standard) communication protocol.
It will be appreciated that the use of the terms “upstream” and “downstream” within the present description is relative based upon the particular network element considered. For example, a link between primary switch 104a and endstation 106a is considered a “downstream” link from the perspective of primary switch 104a and an “upstream” link from the perspective of endstation 106a. Similarly, primary switch 104a may be considered an “upstream” network element from the perspective of endstation 106a and a “downstream” network element from the perspective of upstream communications network portion 102.
Moreover, a direct physical or virtual link or path need not exist between two network elements for an upstream/downstream relationship to exist and no network element need be coupled to a link for it to be considered “upstream” or “downstream”. Consequently, even after primary downstream links 110 are disabled, an endstation 106 is still considered a downstream network element with respect to primary switch 104a.
In the illustrated embodiment of
According to one embodiment, configuration interface 202 is configured to receive data from a user specifying various configuration parameters such as whether or not link failure propagation is to be enabled or not, and if enabled, how link failure propagation is to be performed (e.g., automatically or on demand, for one or more individually specified ports, for all ports associated with one or more specified virtual networks (e.g., virtual local area or storage area networks), or for all ports of a switch). In another embodiment of the present invention, configuration parameters additionally include data specifying what action is to be taken when a previously failed link (or a new link) becomes operational. For example, one or more associated endstations may alternatively “fail back” to a previous primary link which becomes operational again following a failure or the endstation(s) may continue to use a “failed over” secondary link or set of links.
In operation, data is transmitted between one or more of multi-homed endstations 106a-106n and upstream communications network portion 102 using primary downstream links 110a-110n, primary switch 104a, and primary upstream link 108a. Following a failure of primary upstream link 108a (e.g., due to failure of the physical link hardware, a network interface card, or primary switch 104a) link failure propagation module 204 of primary switch 104a is used to detect the failure and responsively disable one or more of primary downstream links 110a-110n.
According to the illustrated embodiment of
While the illustrated embodiment of
Once a port and/or link (e.g., one or more of downstream links 110) is disabled, an associated multi-homed endstation may failover to a corresponding secondary downstream link 112 by activating a network interface associated with the secondary downstream link and deactivating a network interface associated with the failed primary downstream link. Data is then transmitted between the multi-homed endstation which has failed-over and upstream communications network portion 102 via an associated secondary downstream link 112, a secondary switch 104b, and a secondary upstream link 108b.
Using one embodiment of the present invention, a network element (e.g., a datalink layer-capable Ethernet switch) is configured to track the state of a virtual network (e.g., a VLAN or VSAN) on all identified upstream interfaces (e.g., links, ports, interface cards, or the like). In the described embodiment, a virtual network can be available on multiple (but not necessarily all) upstream interfaces and can be associated with one or more downstream link(s). Consequently, downstream link(s) can be disabled when all upstream interfaces associated with a virtual network are disabled or failed (i.e., when there are no more upstream links that are members of a downstream port's virtual network). Any disabled downstream links are then re-enabled when an associated virtual network becomes available on any upstream interface.
If a determination is made that link failure propagation is enabled on a system associated with the illustrated process embodiment, a loop is entered in which a failure of any upstream link of the associated network element is detected (process block 306). Once an upstream link failure has been detected, a determination is made whether link failure propagation is to be performed on-demand or automatically (process block 308). Where link failure propagation is to be performed on-demand, a determination is made whether or not the current link failure is to be propagated (process block 310) (e.g., in response to a response to a user prompt or lack thereof, or based upon additional processing or analysis of system or environmental attributes).
According to one embodiment of the present invention, a determination of whether or not a particular link failure is to be propagated on-demand is made by determining (e.g., using a timer) whether any user intervention has occurred within a predetermined amount of time from the occurrence of the link failure. If no user input or intervention is received within the predetermined amount of time in the described embodiment, a default behavior or action (e.g., propagation of the link failure) is performed. Otherwise, a behavior or action specified by the user input or intervention is performed. Where link failure propagation is to be performed automatically (or on-demand in a particular instance) one or more downstream links of a network element associated with the illustrated process embodiment are disabled (process block 312). Thereafter, or following a determination that a particular link failure instance is not to be propagated on-demand, the aforementioned loop is re-entered in which a failure of any upstream link s detected (process block 306)
The foregoing detailed description has set forth various embodiments of the present invention via the use of block diagrams, flowcharts, and examples. It will be understood by those within the art that each block diagram component, operation and/or component illustrated by the use of examples can be implemented, individually and/or collectively, by a wide range of hardware, software, firmware, or any combination thereof.
The above description is intended to be illustrative of the invention and should not be taken to be limiting. Other embodiments within the scope of the present invention are possible. Those skilled in the art will readily implement the steps necessary to provide the structures and the methods disclosed herein, and will understand that the process parameters and sequence of steps are given by way of example only and can be varied to achieve the desired structure as well as modifications that are within the scope of the invention. Variations and modifications of the embodiments disclosed herein can be made based on the description set forth herein, without departing from the scope of the invention.
Consequently, the invention is intended to be limited only by the scope of the appended claims, giving full cognizance to equivalents in all respects.
Number | Name | Date | Kind |
---|---|---|---|
4387371 | Beker et al. | Jun 1983 | A |
5058110 | Beach et al. | Oct 1991 | A |
5371852 | Attanasio et al. | Dec 1994 | A |
5473599 | Li et al. | Dec 1995 | A |
5680589 | Klingman | Oct 1997 | A |
5822512 | Goodrum et al. | Oct 1998 | A |
5825772 | Dobbins et al. | Oct 1998 | A |
5872783 | Chin | Feb 1999 | A |
5959968 | Chin et al. | Sep 1999 | A |
5959972 | Hamami | Sep 1999 | A |
5959989 | Gleeson et al. | Sep 1999 | A |
5978852 | Myrick | Nov 1999 | A |
6032194 | Gai et al. | Feb 2000 | A |
6058238 | Yuasa | May 2000 | A |
6064671 | Killian | May 2000 | A |
6108300 | Coile et al. | Aug 2000 | A |
6163543 | Chin et al. | Dec 2000 | A |
6181681 | Hiscock et al. | Jan 2001 | B1 |
6181699 | Crinion et al. | Jan 2001 | B1 |
6195351 | Hiscock et al. | Feb 2001 | B1 |
6202114 | Dutt et al. | Mar 2001 | B1 |
6222820 | Hamami | Apr 2001 | B1 |
6229787 | Byrne | May 2001 | B1 |
6236659 | Pascoe | May 2001 | B1 |
6243360 | Basilico | Jun 2001 | B1 |
6275953 | Vahalia et al. | Aug 2001 | B1 |
6285656 | Chaganty et al. | Sep 2001 | B1 |
6298061 | Chin et al. | Oct 2001 | B1 |
6377992 | Fernández et al. | Apr 2002 | B1 |
6388995 | Gai et al. | May 2002 | B1 |
6421787 | Slaughter et al. | Jul 2002 | B1 |
6460088 | Merchant | Oct 2002 | B1 |
6487591 | Budhraja et al. | Nov 2002 | B1 |
6519231 | Ding | Feb 2003 | B1 |
6535490 | Jain | Mar 2003 | B1 |
6535491 | Dutt et al. | Mar 2003 | B2 |
6567403 | Congdon et al. | May 2003 | B1 |
6570845 | Blanc et al. | May 2003 | B1 |
6657973 | Arima | Dec 2003 | B1 |
6658016 | Dai et al. | Dec 2003 | B1 |
6674713 | Berg et al. | Jan 2004 | B1 |
6678241 | Gai et al. | Jan 2004 | B1 |
6687758 | Craft et al. | Feb 2004 | B2 |
6690668 | Szczepanek et al. | Feb 2004 | B1 |
6697339 | Jain | Feb 2004 | B1 |
6728780 | Hebert | Apr 2004 | B1 |
6735198 | Edsall et al. | May 2004 | B1 |
6735205 | Mankude et al. | May 2004 | B1 |
6738345 | Williamson | May 2004 | B1 |
6760776 | Gallo et al. | Jul 2004 | B1 |
6804721 | Wils et al. | Oct 2004 | B2 |
6810421 | Ishizaki et al. | Oct 2004 | B1 |
6816467 | Muller et al. | Nov 2004 | B1 |
6856591 | Ma et al. | Feb 2005 | B1 |
6915340 | Tanaka | Jul 2005 | B2 |
6938095 | Basturk et al. | Aug 2005 | B2 |
6941487 | Balakrishnan | Sep 2005 | B1 |
6980534 | Nee et al. | Dec 2005 | B1 |
6981174 | Hanning | Dec 2005 | B1 |
7042855 | Gilchrist et al. | May 2006 | B1 |
7061858 | Di Benedetto et al. | Jun 2006 | B1 |
7061875 | Portolani et al. | Jun 2006 | B1 |
7126923 | Yang et al. | Oct 2006 | B1 |
7127633 | Olson et al. | Oct 2006 | B1 |
7130305 | Kuukankorpiu | Oct 2006 | B2 |
7152178 | Vook et al. | Dec 2006 | B1 |
7178052 | Hebbar et al. | Feb 2007 | B2 |
7188189 | Karol et al. | Mar 2007 | B2 |
7251217 | Wong et al. | Jul 2007 | B2 |
7286853 | Meier | Oct 2007 | B2 |
7502865 | Seto | Mar 2009 | B2 |
7639605 | Narayanan et al. | Dec 2009 | B2 |
7672228 | Senevirathne et al. | Mar 2010 | B1 |
7818628 | Bishara | Oct 2010 | B1 |
20010014097 | Beck | Aug 2001 | A1 |
20020016874 | Watanuki et al. | Feb 2002 | A1 |
20020018489 | Ambe et al. | Feb 2002 | A1 |
20020073338 | Burrows et al. | Jun 2002 | A1 |
20020080720 | Pegrum et al. | Jun 2002 | A1 |
20020087716 | Mustafa | Jul 2002 | A1 |
20020089978 | Wang et al. | Jul 2002 | A1 |
20020091755 | Narin | Jul 2002 | A1 |
20020103921 | Nair | Aug 2002 | A1 |
20020110148 | Hickman | Aug 2002 | A1 |
20020126671 | Ellis | Sep 2002 | A1 |
20020146008 | Kaplan | Oct 2002 | A1 |
20020152320 | Lau | Oct 2002 | A1 |
20020156612 | Schulter et al. | Oct 2002 | A1 |
20020165981 | Basturk et al. | Nov 2002 | A1 |
20020176450 | Kong et al. | Nov 2002 | A1 |
20020184387 | Yamaya et al. | Dec 2002 | A1 |
20020186654 | Tornar | Dec 2002 | A1 |
20020188711 | Meyer et al. | Dec 2002 | A1 |
20020196802 | Sakov et al. | Dec 2002 | A1 |
20030007489 | Krishnan et al. | Jan 2003 | A1 |
20030026248 | Hiroki | Feb 2003 | A1 |
20030037165 | Shinomiya | Feb 2003 | A1 |
20030051061 | Hank et al. | Mar 2003 | A1 |
20030061533 | Perloff et al. | Mar 2003 | A1 |
20030093557 | Giraud et al. | May 2003 | A1 |
20030097470 | Lapuh et al. | May 2003 | A1 |
20030110344 | Szczepanek et al. | Jun 2003 | A1 |
20030142680 | Oguchi | Jul 2003 | A1 |
20030152101 | Feng | Aug 2003 | A1 |
20030169734 | Lu et al. | Sep 2003 | A1 |
20030172147 | Chang et al. | Sep 2003 | A1 |
20030198231 | Kalkunte et al. | Oct 2003 | A1 |
20040057469 | Nuss et al. | Mar 2004 | A1 |
20040066781 | Shankar | Apr 2004 | A1 |
20040078621 | Talaugon et al. | Apr 2004 | A1 |
20040098501 | Finn | May 2004 | A1 |
20040105390 | Saksio | Jun 2004 | A1 |
20040156390 | Prasad et al. | Aug 2004 | A1 |
20040179507 | Batra et al. | Sep 2004 | A1 |
20040208116 | Etienne et al. | Oct 2004 | A1 |
20050036488 | Kalkunte et al. | Feb 2005 | A1 |
20050041665 | Weyman | Feb 2005 | A1 |
20050044186 | Petrisor | Feb 2005 | A1 |
20050058063 | Masuyama et al. | Mar 2005 | A1 |
20050063395 | Smith et al. | Mar 2005 | A1 |
20050083933 | Fine et al. | Apr 2005 | A1 |
20050089014 | Levin et al. | Apr 2005 | A1 |
20050111483 | Cripe et al. | May 2005 | A1 |
20050169311 | Millet et al. | Aug 2005 | A1 |
20050193114 | Colby et al. | Sep 2005 | A1 |
20050198371 | Smith et al. | Sep 2005 | A1 |
20050243826 | Smith et al. | Nov 2005 | A1 |
20050259646 | Smith et al. | Nov 2005 | A1 |
20050265346 | Ho et al. | Dec 2005 | A1 |
20060015643 | Orava et al. | Jan 2006 | A1 |
20060215679 | Musoll et al. | Sep 2006 | A1 |
20070154219 | Feinberg | Jul 2007 | A1 |
20070159971 | Zhang et al. | Jul 2007 | A1 |
20070180266 | Kang et al. | Aug 2007 | A1 |
20090080431 | Rekhter et al. | Mar 2009 | A1 |
20090134996 | White et al. | May 2009 | A1 |
Number | Date | Country |
---|---|---|
1407762 | Apr 2003 | CN |
1 035 685 | Sep 2000 | EP |
1 309 135 | May 2003 | EP |
1 401 147 | Mar 2004 | EP |
2 362 538 | May 2000 | GB |
WO 0072531 | Nov 2000 | WO |
WO 0078004 | Dec 2000 | WO |
WO 0201413 | May 2001 | WO |
WO 0218965 | Mar 2002 | WO |
WO03081451 | Oct 2003 | WO |