1. Technical Field
The present disclosure is related to information handling systems. In particular, embodiments disclosed herein are related to data center implementation and management including load-balancing within the data center.
2. Discussion of Related Art
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.
Currently, there is increasing demand and use of data centers to provide businesses and consumers with access to vast amounts of data and services. Some data centers include large numbers of servers networked together by a layer of top-of-rack switches, which in turn are coupled to a layer of leaf switches, which are further coupled to a layer of spine switches. Large amounts of network traffic may pass through these tiers of network devices as information is exchanged between servers within the data center and between other devices outside the data center. A number of techniques for load-balancing have been developed such as equal-cost multi-path (ECMP) routing. However, such techniques have not been entirely satisfactory.
Therefore, there is a need for better load balancing techniques.
Consistent with some embodiments, there is provided an information handling system. The information handling system includes one or more processors in communication with a memory and one or more network device interfaces configured to communicate with at least some of the plurality of tiers of network devices. The one or more processors provides a plurality of modules that includes a topology processing module configured to identify a topology that includes plurality of tiers of network devices coupled to the information handling system and a forwarding information base module configured to create and modify multipath group entries in a forwarding information table stored in the memory.
Consistent with some embodiments, there is further provided a method for load-balancing in a network or data center. The method includes steps of identifying a plurality of directly connected network devices coupled to a first network device and of identifying a plurality of subsequent network devices. The subsequent network devices are configured in one or more tiers and coupled to the first network device through the directly connected network devices and to a prefixed destination. The method includes a step of configuring a plurality of multipath groups in a multipath group table present in a memory of the first network device, wherein the multipath group table includes one multipath group table entry for each subsequent network device in one of the one or more tiers. Additional the method includes a step of computing a load-share value based on a number of available subsequent network devices in the one of the one or more tiers.
Consistent with some embodiments, there is further provided another method for load-balancing in a network or data center. The method includes steps of receiving network traffic at a network device the network traffic having a destination address and of performing a look-up in a multipath group table using the destination address. The multipath group table includes entries for recursive next-hops, each recursive next hop being associated with a connected next hop in the multipath group table. The method also includes a step of hashing the network traffic according to a number of recursive next-hops associated with the destination address in the multipath group table.
These and other embodiments will be described in further detail below with respect to the following figures.
For clarity of discussion, elements having the same designation in the drawings may have the same or similar functions. The drawings may be better understood by referring to the following Detailed Description.
In the following description specific details are set forth describing certain embodiments. It will be apparent, however, to one skilled in the art that the disclosed embodiments may be practiced without some or all of these specific details. The specific embodiments presented are meant to be illustrative, but not limiting. One skilled in the art may realize other material that, although not specifically described herein, is within the scope and spirit of this disclosure.
For 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, or other purposes. For example, an information handling system may be a personal computer, 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 random access memory (RAM), one or more processing resources such as a central processing unit (CPU) or hardware or software control logic, ROM, and/or other types of nonvolatile memory. Additional components of the information handling system may include one or more disk drives, one or more network 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 communications between the various hardware components.
Additionally, some embodiments of information handling systems include non-transient, tangible machine-readable media that include executable code that when run by a processor, may cause the processor to perform the steps of methods described herein. Some common forms of machine-readable media include, for example, floppy disk, flexible disk, hard disk, magnetic tape, any other magnetic medium, CD-ROM, any other optical medium, punch cards, paper tape, any other physical medium with patterns of holes, RAM, PROM, EPROM, FLASH-EPROM, any other memory chip or cartridge, and/or any other medium from which a processor or computer is adapted to read.
As illustrated in
In turn, the network devices 112 and 114 are each connected to another tier of devices that includes network devices 122, 124, 126, and 128 the network devices 122, 124, 126, and 128 are coupled to the network device 102 through the network devices 112 and 114. Additionally, each of the network devices 122-128 is coupled to a network device 132. Network devices 122-128 may be referred to herein as recursive next-hops or as subsequent network devices. The network devices in the information handling system 100 are coupled by a plurality of bidirectional communication links by which network traffic is routed and/or forwarded through the information handling system 100. Some embodiments of the information handling system 100 include many more network devices in each of the tiers present. For example, some embodiments may include four directly connected next-hops and eight re-cursive next-hops. As illustrated, the information handling system 100 facilitates a simplified Description of certain features. Additionally, while the information handling system 100 is symmetric as illustrated, other embodiments of the information handling system 100 may be asymmetric.
As illustrated, the network device 132 provides access to a plurality of other devices, such as a plurality of servers (not shown), that are addressed by a prefix. As an example, the plurality of devices addressed by prefix 10.1.1.0/24 may be accessible through the network device 132. In operation, the network device 102 includes a forwarding information base or forwarding table stored in a memory. The table associates addresses of networked devices in the information handling system 100 with interfaces on the network device 102 to direct the flow of traffic received by the network device 102. An exemplary table 140 is provided in
Referring now to
Referring now to
However, as illustrated in
The information handling system 500 further includes a memory 512. The memory 512 may include multiple types and/or levels of memory. Thus, embodiments of the information handling system 500 may include RAM, ROM, a hard disk drive, a solid-state drive, and/or other types of memory. The memory 512 store computer programs or software such as an operating system and software program providing management of an extended bridge. For example, the memory 512 may store one or more programs that provide additional functionality of the information handling system 500 when executed by one or more of the processors thereof.
The central processor 502 is illustrated as providing a plurality of modules. In some embodiments, these modules may be provided by discrete circuitry, by software being executed by the one or more processors, or by a combination thereof. As illustrated, the central processor 502 includes a topology processing module 514. The topology processing module 514 may be configured to receive information from other devices coupled to the information handling system 500 in a network or data center and process the information to create a topology. In some embodiments, the topology processing module 514 is configured to receive a topology or topological information from a network controller. The topology indicates links present between coupled network devices and may be updated to reflect changes in the topology (such as changes due to network failures) periodically or on an event-driven basis.
Some embodiments of the information handling systems 100 and 400 use a border gateway protocol (BGP) as an interior gateway protocol (IGP). In such instances, the BGP link-state information may be used to create the topology. Additionally, in some embodiments BGP strands are used to compute the topology. An example of the use of BGP strands to create a topology is found in U.S. patent application Ser. No. 13/750,507, entitled “System and Method for Topology Discovery and Application in a Border Gateway Protocol Based Data Center,” filed on Dec. 20, 2012, which is incorporated herein in its entirety.
A forwarding information base module 516 is provided by the information handling system 500 to create the tables as described, herein, such as the table 340 with the entry 342. The forwarding information base module 516 is configured to use topological information to form multipath groups and to determine load-sharing values as described herein.
In step 606, a plurality of multipath groups is configured in a multipath group table present in a memory of the first network device. The multipath group table includes one multipath group table entry for each subsequent network device in one of the one or more tiers. An example of such a table is found in the table 340 of
Some embodiments of information handling systems 100, 400, and 500 include non-transient, tangible, machine-readable media that include executable code that when run by a processor, such as central processor 502 of information handling system 500 of
The examples provided above are exemplary only and are not intended to be limiting. One skilled in the art may readily devise other systems consistent with the disclosed embodiments which are intended to be within the scope of this disclosure. As such, the application is limited only by the following claims.
The present application is a continuation of U.S. patent application Ser. No. 14/260,103 filed on Apr. 23, 2014, which is incorporated by reference in its entirety.
Number | Name | Date | Kind |
---|---|---|---|
6603765 | Wilford | Aug 2003 | B1 |
7362708 | Cristallo | Apr 2008 | B2 |
7512702 | Srivastava | Mar 2009 | B1 |
7609619 | Naseh | Oct 2009 | B2 |
8014278 | Subramanian | Sep 2011 | B1 |
8072952 | Aragon | Dec 2011 | B2 |
8194546 | Vasseur | Jun 2012 | B2 |
8213298 | Yamaguchi | Jul 2012 | B2 |
8307415 | Khan | Nov 2012 | B2 |
8355328 | Matthews | Jan 2013 | B2 |
8553562 | Allan | Oct 2013 | B2 |
8614950 | Roitshtein | Dec 2013 | B2 |
8855082 | Grayson | Oct 2014 | B2 |
8879397 | Xi | Nov 2014 | B2 |
8938469 | Keen | Jan 2015 | B1 |
8953623 | Eyada | Feb 2015 | B1 |
8972502 | Mithyantha | Mar 2015 | B2 |
9036476 | Grandhi | May 2015 | B2 |
9166817 | Schlansker | Oct 2015 | B2 |
9270566 | Wang | Feb 2016 | B2 |
20010052016 | Skene | Dec 2001 | A1 |
20060067503 | Caugherty | Mar 2006 | A1 |
20060193252 | Naseh | Aug 2006 | A1 |
20070177506 | Singer | Aug 2007 | A1 |
20080114892 | Bruno | May 2008 | A1 |
20090303880 | Maltz | Dec 2009 | A1 |
20110026403 | Shao | Feb 2011 | A1 |
20110273987 | Schlansker | Nov 2011 | A1 |
20120029720 | Cherian | Feb 2012 | A1 |
20130077490 | Sela | Mar 2013 | A1 |
20140269268 | Rao | Sep 2014 | A1 |
20140293786 | Lin | Oct 2014 | A1 |
20140362705 | Pan | Dec 2014 | A1 |
20150036493 | Cj | Feb 2015 | A1 |
20150103659 | Lles | Apr 2015 | A1 |
20150127797 | Attar | May 2015 | A1 |
20170353544 | Lala | Dec 2017 | A1 |
Number | Date | Country | |
---|---|---|---|
20160308772 A1 | Oct 2016 | US |
Number | Date | Country | |
---|---|---|---|
Parent | 14260103 | Apr 2014 | US |
Child | 15192294 | US |