The present disclosure relates in general to networking and communication, and more particularly to hierarchical link aggregation in a network.
As the value and use of information continues to increase, individuals and businesses seek additional ways to process and store information. One option available to users is information handling systems. An information handling system generally processes, compiles, stores, and/or communicates information or data for business, personal, or other purposes thereby allowing users to take advantage of the value of the information. Because technology and information handling needs and requirements vary between different users or applications, information handling systems may also vary regarding what information is handled, how the information is handled, how much information is processed, stored, or communicated, and how quickly and efficiently the information may be processed, stored, or communicated. The variations in information handling systems allow for information handling systems to be general or configured for a specific user or specific use such as financial transaction processing, airline reservations, enterprise data storage, or global communications. In addition, information handling systems may include a variety of hardware and software components that may be configured to process, store, and communicate information and may include one or more computer systems, data storage systems, and networking systems.
Information handling systems are often disposed in networking systems which communicatively couple numerous information handling systems together, sometimes over vast distances. To facilitate communication, information handling systems often include network interface cards or similar hardware. Such network interface cards may include communication ports through which data may be transmitted to or received from other networked information handling systems. Such ports may be coupled by cables, fibers, and/or other media.
Many network architectures employ link aggregation. Link aggregation (e.g., IEEE 802.1AX-2008) may generally describe the practice of using multiple network cables and/or ports in parallel to increase the link speed beyond the limits of any one single cable or port, and to increase redundancy for higher availability. In link aggregation, a group or set of ports may be combined and represented as a single logical port to other components of the network system. Various switching elements of the network system may “see” the aggregated ports (known as a “link aggregation group” or “LAG”) as a single logical communication port in the routing tables or databases of networking components external to the LAG. Network traffic may be distributed through the various member ports of a LAG in accordance with a hashing algorithm.
Due to hardware complexity incumbent in determining which member port of a LAG is to distribute a particular portion of network traffic, traditional link aggregation approaches are often limited in the number of member ports that may make up a LAG. Accordingly, the total aggregate bandwidth of traditional LAGs is also limited.
In addition, many traditional approaches to link aggregation require that member ports be identical or similar (e.g., requirement that all ports be of the same speed), in order to keep hashing algorithms simple. Such requirements limit network architecture flexibility.
In accordance with the teachings of the present disclosure, the disadvantages and problems associated with traditional approaches to link aggregation have been substantially reduced or eliminated.
In accordance with one embodiment of the present disclosure, a system for hierarchical link aggregation may include a network interface having a plurality of physical ports. A first plurality of the physical ports may be configured as member ports of a first link aggregation group (LAG). A second plurality of the physical ports may be configured as member ports of a second LAG. The first LAG and second LAG may be configured as member logical ports of a third LAG.
In accordance with another embodiment of the present disclosure, an information handling system may include a processor and a network interface communicatively coupled to the processor, the network interface having a plurality of physical ports. A first plurality of the physical ports may be configured as member ports of a first link aggregation group (LAG). A second plurality of the physical ports may be configured as member ports of a second LAG. The first LAG and second LAG may be configured as member logical ports of a third LAG.
In accordance with a further embodiment of the present disclosure, a method for hierarchical link aggregation is provided. The method may include receiving a packet of information at an information handling system. The method may further include determining that a first link aggregation group (LAG) is a first outgoing logical port of the packet based on a destination address of the packet. The method may also include determining that a second LAG is a second outgoing logical port of the packet based on information contained in the packet, wherein the second LAG is configured as a member logical port of the first LAG. The method may additionally include determining that a physical port is a third outgoing logical port of the packet based on information contained in the packet, wherein the physical port is configured as a member port of the second LAG. Moreover, the method may include transmitting the packet to the physical port.
Other technical advantages will be apparent to those of ordinary skill in the art in view of the following specification, claims, and drawings.
A more complete understanding of the present embodiments and advantages thereof may be acquired by referring to the following description taken in conjunction with the accompanying drawings, in which like reference numbers indicate like features, and wherein:
Preferred embodiments and their advantages are best understood by reference to
For the purposes of this disclosure, an information handling system may include any instrumentality or aggregate of instrumentalities operable to compute, classify, process, transmit, receive, retrieve, originate, switch, store, display, manifest, detect, record, reproduce, handle, or utilize any form of information, intelligence, or data for business, scientific, control, entertainment, or other purposes. For example, an information handling system may be a personal computer, a PDA, a consumer electronic device, a network storage device, or any other suitable device and may vary in size, shape, performance, functionality, and price. The information handling system may include memory, one or more processing resources such as a central processing unit (CPU) or hardware or software control logic. Additional components or the information handling system may include one or more storage devices, one or more communications ports for communicating with external devices as well as various input and output (I/O) devices, such as a keyboard, a mouse, and a video display. The information handling system may also include one or more buses operable to transmit communication between the various hardware components.
For the purposes of this disclosure, computer-readable media may include any instrumentality or aggregation of instrumentalities that may retain data and/or instructions for a period of time. Computer-readable media may include, without limitation, storage media such as a direct access storage device (e.g., a hard disk drive or floppy disk), a sequential access storage device (e.g., a tape disk drive), compact disk, CD-ROM, DVD, random access memory (RAM), read-only memory (ROM), electrically erasable programmable read-only memory (EEPROM), and/or flash memory; as well as communications media such wires, optical fibers, microwaves, radio waves, and other electromagnetic and/or optical carriers; and/or any combination of the foregoing.
As depicted in
Processor 103 may include any system, device, or apparatus configured to interpret and/or execute program instructions and/or process data, and may include, without limitation a microprocessor, microcontroller, digital signal processor (DSP), application specific integrated circuit (ASIC), or any other digital or analog circuitry configured to interpret and/or execute program instructions and/or process data. In some embodiments, processor 103 may interpret and/or execute program instructions and/or process data stored in memory 104, storage media 106 and/or another component of information handling system 102.
Memory 104 may be communicatively coupled to processor 103 and may include any system, device, or apparatus configured to retain program instructions and/or data for a period of time (e.g., computer-readable media). Memory 104 may include random access memory (RAM), electrically erasable programmable read-only memory (EEPROM), a PCMCIA card, flash memory, magnetic storage, opto-magnetic storage, or any suitable selection and/or array of volatile or non-volatile memory that retains data after power to information handling system 102 is turned off.
Network interface 108 may include any suitable system, apparatus, or device operable to serve as an interface between information handling system 102 and network 110. Network interface 108 may enable information handling system 102 to communicate over network 110 using any suitable transmission protocol and/or standard, including without limitation all transmission protocols and/or standards enumerated below with respect to the discussion of network 110. Network interface 108 and its various components may be implemented using hardware, software, or any combination thereof.
As depicted in
Network 110 may be a network and/or fabric configured to communicatively couple information handling system 102 to one or more information handling systems and/or other devices. In certain embodiments, network 110 may include a communication infrastructure, which provides physical connections, and a management layer, which organizes the physical connections of information handling system 102 and other devices coupled to network 110. Network 110 may be implemented as, or may be a part of, a storage area network (SAN), personal area network (PAN), local area network (LAN), a metropolitan area network (MAN), a wide area network (WAN), a wireless local area network (WLAN), a virtual private network (VPN), an intranet, the Internet or any other appropriate architecture or system that facilitates the communication of signals, data and/or messages (generally referred to as data). Network 110 may transmit data using any storage and/or communication protocol, including without limitation, Fibre Channel, Frame Relay, Ethernet Asynchronous Transfer Mode (ATM), Internet protocol (IP), or other packet-based protocol, and/or any combination thereof. Network 110 and its various components may be implemented using hardware, software, or any combination thereof.
Each transmission medium 114 may include any system, device, or apparatus configured to couple a corresponding port 112 to network 110 and communicate information between the corresponding port 112 to network 110. For example, a transmission medium 114 may include an Ethernet cable, a T1 cable, a WiFi signal, a Bluetooth signal, or other suitable medium.
As shown in
Also as shown in
Each LAG of system 100 (regardless of whether a first-level LAG 116, second-level LAG 118, or other-level LAG) may combine its member ports or member LAGs using link aggregation such that the member ports or member LAGS are represented as a single logical port to components of system 100 external to the LAG. For example, in the embodiment shown in
As is described in greater detail below, when a message is communicated to a particular second-level LAG 118, a hashing algorithm or other suitable method may be used to determine the member first-level LAG 116 to which the message is communicated. In addition, when a message is communicated to a particular first-level LAG 116, a hashing algorithm (which may be different, identical, or similar hashing algorithm than that used at second-level LAG 118) may be used to determine the member physical port 112 to which the message is communicated.
The hashing algorithm used by a LAG of a particular level may be different, identical, or similar to the hashing algorithm used at another level. For example, the hashing algorithm used by a first-level LAG 116 may be different, identical, or similar to the hashing algorithm used at second-level LAG 118 (or any other-level LAG). In addition, the hashing algorithm used by a particular LAG of a particular level may be different, identical, or similar to the hashing algorithm used by a different LAG at the same level in a hierarchy. For example, the hashing algorithm used by first-level LAG 116a may be different, identical, or similar hashing algorithm than that used at first-level LAG 116b.
At step 202, an information handling system (e.g., information handling system 102) may receive a packet.
At step 204, the information handling system may examine the destination address of the packet to determine the outgoing logical port for the packet. The outgoing logical port may be a LAG (e.g., first-level LAG 116 or second-level LAG 118) or a physical port (e.g., physical port 112).
At step 206, the information handling system may determine if the outgoing logical port for the packet is a LAG. If it is determined that the outgoing logical port is a LAG, method 200 may proceed to step 210. Otherwise, if it is determined that the outgoing logical port is not a LAG (and thus is a physical port, such as a physical port 112, for example), method 200 may proceed to step 208.
At step 208, in response to a determination that the outgoing logical port is not a LAG, information handling system may transmit to the physical port indicated by the determined output logical port. After completion of step 208, method 200 may end.
At step 210, in response to a determination that the outgoing logical port is a LAG, the information handling system may determine hashing keys and a hashing algorithm for the LAG. In some embodiments, the hashing keys and/or hashing algorithm may be predetermined and/or preset.
At step 212, the information handling system may retrieve context information from the packet based on the hashing keys.
At step 214, based on the hashing algorithm and context information, the information handling system may determine the outgoing logical port within the link aggregation group. After completion of step 214, method 200 may proceed again to step 206, wherein steps 206, 210, 212, and 214 may repeat for each level of the LAG hierarchy of the information handling system.
Although
Method 200 may be implemented using system 100 or any other system operable to implement method 200. In certain embodiments, method 200 may be implemented partially or fully in software and/or firmware embodied in computer-readable media.
Each switch 302 may generally be configured to communicatively couple storage arrays 320 to network 310, and may further be operable to inspect packets as they are received, determine the source and destination of each packet (e.g., by reference to a routing table), and forward each packet appropriately. One or more of switches 302 may include a plurality of physical ports 312 which may be identical to similar to ports 112 of
Network 310 may be configured to couple switches 302 to one or more information handling systems. Network 310 may be identical or similar to network 110 of
To improve bandwidth and/or availability of communications between each of switch 302, each of switch 302 may be configured such that it uses hierarchical LAGs similar to that depicted in
As shown in
To improve bandwidth and/or availability of communications between information handling system 402 and network 410, fabrics 430 may be configured such that they use hierarchical LAGs similar to that depicted in
In traditional systems (e.g., with hierarchical LAGs), the two fabrics 430 would be treated as two separate network interfaces and may require special hardware or software to block one of the interfaces in order to avoid potential network loops. However, by using a system similar to that of system 400, such disadvantages may be reduced or eliminated. To illustrate, because second-level LAG 418 is represented as one logical port, no looping issue exists. One of the first-level LAGs (e.g. LAG 416b comprising fabric 430b) may have its aggregate bandwidth advertised as zero, such that another first-level LAG (e.g., LAG 416a comprising fabric 430a), may carry traffic between information handling system 402 and network 410. In the case of a failure of fabric 430a (or its capacity dropping below a threshold bandwidth), the aggregate bandwidth of first-level LAG 416b may be re-advertised as non-zero, and traffic may be distributed between information handling system 402 and network 410 via first-level LAG 416b, thus providing redundancy and availability without suffering the disadvantages of existing approaches.
Although the present disclosure has been described in detail, it should be understood that various changes, substitutions, and alterations can be made hereto without departing from the spirit and the scope of the disclosure as defined by the appended claims.
The present application is a continuation of U.S. patent application Ser. No. 12/577,468 filed Oct. 12, 2009; which is hereby incorporated by reference.
Number | Name | Date | Kind |
---|---|---|---|
6553029 | Alexander | Apr 2003 | B1 |
6961342 | Uzun | Nov 2005 | B1 |
6993026 | Baum | Jan 2006 | B1 |
7324447 | Morford | Jan 2008 | B1 |
7643418 | Varier | Jan 2010 | B1 |
20020114276 | Basturk | Aug 2002 | A1 |
20050198371 | Smith et al. | Sep 2005 | A1 |
20050286537 | Shimada | Dec 2005 | A1 |
20060072593 | Grippo | Apr 2006 | A1 |
20060209688 | Tsuge et al. | Sep 2006 | A1 |
20070098006 | Parry | May 2007 | A1 |
20080016402 | Harel | Jan 2008 | A1 |
20080037544 | Yano | Feb 2008 | A1 |
20090003205 | Tomie et al. | Jan 2009 | A1 |
20090135838 | Rouyer | May 2009 | A1 |
20090154337 | Kim et al. | Jun 2009 | A1 |
20090193105 | Charny et al. | Jul 2009 | A1 |
20090225752 | Mitsumori | Sep 2009 | A1 |
20100023726 | Aviles | Jan 2010 | A1 |
20100115174 | Akyol et al. | May 2010 | A1 |
20100303092 | Chinnaswamy | Dec 2010 | A1 |
Number | Date | Country | |
---|---|---|---|
20150110128 A1 | Apr 2015 | US |
Number | Date | Country | |
---|---|---|---|
Parent | 12577468 | Oct 2009 | US |
Child | 14590157 | US |