As network traffic increases, providing adequate bandwidth continues to be resource-intensive and inefficient. For example, more network switching devices (e.g., switches and routers) may be provided as a network grows to accommodate increasing network traffic. The switching capacity is typically based on peak hours of usage or anticipated network usage growth. However, using this approach there may be provided more network switching devices than are needed to effectively provide the required bandwidth during off-peak hours.
In addition, each of these network devices consumes electricity whether the network device is actively providing network services or simply waiting to provide network services. For example, when a computer or other device on the network goes into a hibernation mode or is logged off, the physical link is still established between the computer or other device and the network device, but little or no traffic is flowing to/from the device.
Fewer network switching devices may be provided than are necessary during peak hours of usage (e.g., based on average bandwidth requirements). However, this approach may result in bottlenecks during peak hours. Network switching devices may also be manually turned on/off on an as-needed basis. For example, some or all network switching devices may be powered off overnight and on weekends and holidays. However, this approach may result in some users being denied access to the network durum these times.
Adaptive bandwidth management systems and methods are disclosed. In exemplary embodiments, a network switching device may adaptively configure its bandwidth on an on-going basis in response to actual or expected demand for network resources (e.g., based on predicted network traffic conditions, network topology, time of day, and/or other factors). Although not limited in scope, such embodiments of adaptive bandwidth management are especially desirable to achieve better power efficiency in a network switch hardware architecture without manual intervention by reducing power consumption based on the network traffic.
The term “network switching devices” 120 as used herein refers to a device for establishing, maintaining, and/or handling data communications in the computer network 100. Exemplary network switching devices may include, but are not limited to, Ethernet and Fibre Channel switches, routers, hubs, and any other device capable of enabling/disabling ports based on the contents of packets and limits exchanges to the links where such exchanges are needed (e.g., another server computer in a peer-to-peer network). It is noted that the network switching devices 120 include at least some form of computer-readable storage and at least some degree of processing capability to execute the program code described herein.
The term “host computing device” or “host” 130 as used herein refers to one or more computing systems, such as, e.g., server computers (or blade servers), personal computers (PCs), or other device with network access privileges. In an exemplary embodiment, the host 130 may include one or more network; interface cards (NICs) 140 (e.g., NIC 1, NIC 2, NIC 3, referred to collectively as NICs 140). Optionally, the host 130 may apply virtual NIC configurations by grouping Ethernet ports together and defining virtual interfaces to the grouping. This is achieved in an operating system (OS)-specific manner by each host OS. For example, the system administrator may load the configuration onto the host. Standard protocols for this purpose include SMASH/CLP and SMTP. Web-based management or a proprietary management interface would be equally appropriate.
During operation, there may be more network switching devices and/or available ports than are needed to effectively provide the required bandwidth. Accordingly, one or more of the network switching devices 120 may adaptively configure its bandwidth on an on-going basis in response to actual or expected demand for network resources, e.g., based on predicted network traffic conditions, network topology, time of day, and/or other factors.
The network devices 220a-c may be linked via physical link 215a-c to the physical ports 210a-e. Fabric 230 may be implemented to establish one or more logical connections to the network via high-speed serdes interfaces or “uplinks” 235a-b. For example, network device 220a may be connected to physical port 210a via physical link 215a, and then connected to the network via fabric 230 via either of the uplinks 235a or 235b. In an exemplary embodiment, a management processor 240 may execute program code 250 stored on computer-readable storage to adaptively manage bandwidth at the network switching device 200. Alternatively, this logic may exist as circuits in an Application Specific Integrated Circuit (ASIC) or Application Specific Standard Product (ASSP).
For purposes of illustration, all of the uplinks 235a-b may be implemented to satisfy bandwidth requirements when many of the network devices 220a-c are accessing the network (e.g., during peak hours). However, the management processor 240 may execute program code 250 to de-allocate one or more of the uplinks (e.g., uplink 235b indicated in
It is noted that, the bandwidth requirements may be determined based on any of a number of factors. For example, the management processor 240 may execute program code 250 to monitor network traffic (e.g., counting packets) and determine bandwidth requirements. Or for example, bandwidth requirements may be based on user/administrator input values (e.g., peak hours of operation, physical location, etc.), or a combination of all these factors. Additionally, the program code or logic may use a hysterisis function to enable links quickly when bandwidth demand grows, but de-allocate them much more slowly, in case another bandwidth spike were to occur shortly after a lapse. For example, a de-allocated link may be powered up immediately when demand exceeds 80% of the currently active links, but links may be de-allocated only when demand has fallen below 40% for a user-configured time, perhaps 5 minutes.
According to such an embodiment, redundant links may be shut down or powered off when not needed, but powered on again when needed or “on-demand.” As the overall number of uplinks in a given network is usually very high, such an embodiment results in substantial power savings and an environmentally friendly or so-called “green” network.
Again, the network devices 320a-c may be linked via physical link 315a-c to the physical ports 310a-c. Fabric 330 may be implemented to establish one or more logical connections to the network via uplinks 335a-b. For example, network device 310a may be connected to physical port 310a via physical link 315a, and then connected to the network via fabric 330 via either of the uplinks 335a or 335b, In an exemplary embodiment, a management processor 340 may execute program code 350 stored on computer-readable storage to adaptively manage bandwidth at the network switching device 300.
For purposes of illustration, physical links 315a-c may be implemented to satisfy bandwidth requirements when all of the network devices 320a-c are accessing the network. However, the management processor 340 may execute program code 350 to de-allocate one or more of the physical links 315a-c when the corresponding network device 320a-c is no longer actively accessing the network. For example, physical links 315b and 315c may be de-allocated or shut off when network devices 320a and 320c, respectively, go offline or are otherwise no longer actively accessing the network (e.g., in hibernation or sleep mode), as indicated in
It is noted that the bandwidth requirements may be monitored by a “watchdog” (e.g., program code executable by the management processor). In operation, the watchdog may “listen” to ports and determine a level of traffic activity. When a network device connected to the network switch 300 goes into hibernation mode or gets logged off, the traffic activity for that port drops to zero. The watchdog senses this drop, and a timer may be started (e.g., implemented in the program code). When a predetermined time is reached, the management processor sets the port from normal mode to low-power mode (or turns it off completely). The watchdog continues to monitor the port 310 for activity, and re-allocates the port 310 when activity is detected.
It is noted that the exemplary network switching devices described above with reference to
Other embodiments are also contemplated and are not limited to the operations and/or ordering of the operations illustrated by
The exemplary embodiments shown and described are provided for purposes of illustration and are not intended to be limiting. Still other embodiments are also contemplated.