Method and system for controlling power consumption in network nodes

Method and system a first network node communicating with a second network node using a plurality of network links grouped as a trunk is provided. The method includes determining a peak data transfer rate for the trunk during a monitoring duration; comparing the peak data transfer rate to a threshold data transfer rate for the trunk; determining if one or more of the plurality of network links can be deactivated or activated; and based on the determination, activating or deactivating one or more of the plurality of network links.

BACKGROUND

The present disclosure relates to networks and network links.

RELATED ART

Network systems are commonly used to move network information (may also be referred to interchangeably, as frames, packets or commands) between computing systems (for example, servers) or between computing systems and network devices (for example, storage systems). Various hardware and software components are used to implement network communication, jointly referred to as a network node. The term network node as referred to herein includes a network switch element, an adapter having a port supporting network communication and others.

Typically, for network communication, a plurality of network nodes are operationally coupled to each other using physical links. A plurality of physical links may be grouped together to provide a logical network link or data pipe, referred to herein as a transmission trunk. A transmission trunk may be used in network communication for redundancy and load balancing.

Transmission trunks experience a wide variety of usage. For example, during data backups the trunk is used at maximum capacity i.e., all physical links may operate at a high data rate. Similarly, during non-peak hours most of the links are unused or operate at a low data rate. Undersubscribed or under used network links consume power and also generate heat which requires additional cooling. Continuous efforts are being made to reduce and optimize power consumption in network nodes.

SUMMARY

In one embodiment, a machine implemented method for a network system having at least a first network node communicating with a second network node using a plurality of network links, the plurality of network links being grouped as a trunk is provided. The method includes: (a) monitoring a data transfer rate for the trunk for a duration; (b) determining a peak data transfer rate for the trunk during the monitoring duration; and (c) comparing the peak data transfer rate to a threshold data transfer rate for the trunk. The threshold data transfer rate establishes a minimum number of network links needed for communication between the first network node and the second network node.

The method further includes: (d) determining if one or more of the plurality of network links can be deactivated, based on the comparison in step (c); (e) the one or more of the plurality of network links can be de-activated, then automatically de-activating one or more of the plurality of network links; and (f) establishing a first new threshold data transfer rate based on the deactivated network links in step (e).

The method also includes determining if one or more of the plurality of network links can be activated if the peak data transfer rate is equal to or greater than the threshold data transfer rate. This step includes comparing a hypothetical threshold value which is based on a greater number of links than the number of links used for determining the peak transfer rate and then comparing the hypothetical threshold value to the peak data transfer rate.

In another embodiment, a network system is provided. The network system includes a first network node operationally coupled to a second network node using a plurality of links, the plurality of links being grouped into a trunk; and a computing system having a processor for setting a monitoring duration for monitoring a data transfer rate for the trunk and a peak data transfer rate for the trunk.

The first network node (i) monitors the data transfer rate and determines the peak data transfer rate for the trunk during the monitoring duration; (ii) compares the peak data transfer rate to a threshold data transfer rate for the trunk; and (iii) determines if one or more of the plurality of links can be deactivated or activated. If one or more links can be activated or deactivated, then the network node deactivates or activates one or more of the plurality of links.

One or more of the network links are de-activated if the peak data transfer rate is less than a first hypothetical threshold data transfer rate based on a fewer number of network links than a number of links used when the peak data transfer rate is determined. One or more of the network links are activated if the peak data transfer rate is equal to or greater than a second hypothetical threshold data transfer rate based on a greater number of network links than a number of links used when the peak data transfer rate is determined.

This brief summary has been provided so that the nature of the disclosure may be understood quickly. A more complete understanding of the disclosure can be obtained by reference to the following detailed description of the preferred embodiments thereof concerning the attached drawings.

DETAILED DESCRIPTION

The following definitions are provided as they are typically (but not exclusively) used in a networking environment, implementing the various adaptive aspects of the present disclosure.

“Data rate” means an amount of data received by a network link or transmitted by a network link within a duration (for example, per second).

“Dpeak” means a peak data rate detected during a monitoring period that may be referred to as Tmon.

“Dthresh” means a threshold value for trunk capacity used for determining trunk reduction or expansion. The threshold value may be calculated and is designed such the trunk is able to support a current data rate for network nodes communicating with each. The threshold value ensures that communication is not disrupted after link reduction or expansion. The threshold value establishes a minimum number of links needed for communication between network nodes.

“Latency” means a delay between received and transmitted data.

“Lactive” means a current number of active network links in a trunk at any give time.

“Lmax” means a maximum number of physical network links connected between nodes that are grouped together in a trunk.

“Ln” means a specific physical link number n a trunk.

“Network Node” means a physical component, a logical component, or a combination thereof that can support communication with another device or system. A network node may be a switch element with a plurality of ports, an adapter with at least one port and other similar devices that can facilitate network communication.

“Port” means a general reference to receive and transmit segments in a network node. A port includes physical and logical elements to receive and transmit network information, for example, packets and frames. The structure of a port depends on a protocol standard which the network node is configured to operate in. Examples of some commonly used standards are, Fibre Channel (FC), Ethernet, Fibre Channel over Ethernet (FCo), Infiniband (IB) and others.

“Trunk” (or transmission trunk) means a grouping of physical network links to provide a logical network link or data pipe.

“Tmon” means a time period for data rate monitoring and a trunk optimization cycle.

FIG. 1Ais a block diagram of a network system100implementing the methods and systems in accordance with the adaptive embodiments of the present disclosure. Network system100may be based on Fibre Channel, Ethernet, FCoE, Infiniband, a combination thereof, or any other protocol.

System100includes a plurality of network nodes, for example,101and102that communicate with each other and other nodes. The network nodes101and102may be configured by using a computing system115.

Network node101may include one or more ports103A-103N, registers104, a processor105, memory106and a management port108. Processor105executes firmware instructions out of memory106to control the overall node101operations. Processor105may be general purpose embedded microprocessor. In one embodiment, processor105performs instructions out of memory (for example “ROM”)106to activate or deactivate links automatically, according to one embodiment of the present disclosure.

Ports103A-103N in network node101are operationally coupled via “links” or “paths” to ports109A-109N of network node102. For example, link107A may be used to establish communication between port103A and port109A. Similarly, links107B,107N may be used between ports103B and109B, and103N and109N, respectively. The links107A-107N may be optical, copper or any other type.

Physical links107A-107N may be grouped as a trunk107. Data is received and transmitted between the networking node101and the network node102via transmission trunk107.

Network node101and102may be configured by a user using a computing system (also referred to as host system)115. Computing system115is able to communicate with nodes101and103via a port122that is a part of an adapter123. Port122communicates with management ports108and114, respectively.

Host system115may also include a processor116that executes instructions out of memory117for performing certain operations, for example, reading/writing data to storage devices (not shown) and sending commands and data to network devices as well as executing a management application117A for configuring the network nodes101and102. Processor116interfaces with memory117via bus124.

Computing system115may have access to storage device120that may be used to store programmable instructions which are executed by processor116out of memory117. Storage device120may be a CD-ROM, non-volatile memory device, a hard disk or any other storage media that can store information.

Adapter123may be a converged network adapter (CNA)123. CNA adapter123is configured to handle both network and storage traffic using a converged network and storage protocol, for example, FCoE. As an example, QLogic Corporation provides a CNA that may be used in system100.

Computing system115is coupled to a display device119that displays a user interface to configure nodes101and102. The user interface may be provided by management application117A. The display device119may be a monitor, a television, a portable device, a cell phone or any other device that can display the user interface. The user interface may be a graphical user interface (“GUI”) or a command line interface.

A user using management application117A may program registers104/111through industry standard interface for example, I2C (not shown) to customize network system100. For example, a user might activate or power down a link by programming a register in registers104and/or111.

System100may use various network, storage or converged network/storage protocols for communication. The following provided a brief introduction to some of the commonly used protocols and standards.

One common network protocol used for network communication is Ethernet. Ethernet is a family of frame-based computer networking technologies for local area networks (LANs). The Ethernet protocol defines a number of wiring and signaling standards for the Physical Layer of the OSI networking model, through means of network access at the Media Access Control (MAC)/Data Link layer, and a common addressing format.

The original Ethernet bus or star topology was developed for local area networks (LAN) to transfer data at 10 Mbps (mega bits per second). Newer Ethernet standards (for example, Fast Ethernet (100 Base-T) and Gigabit Ethernet) support data transfer rates between 100 Mbps and 10 Gb (gigabit). The description of the various embodiments described herein are based on using Ethernet (which includes 100 Base-T and/or Gigabit Ethernet) as the network protocol, however, the adaptive embodiments disclosed herein are not limited to any particular protocol, as long as the functional goals are met by an existing or a new network protocol.

Converged Network and Storage Protocols are being developed to handle both network and storage traffic. One such developing standard is the FCoE standard. The FCoE standard is being developed so that network adapters and network switches are able handle both network and storage traffic using network and storage protocols.

One common storage protocol used in storage area networks is Fibre Channel (also referred to as “FC”). Fibre Channel supports three different topologies, point-to-point, arbitrated loop and Fabric. The point-to-point topology attaches two devices directly. The arbitrated loop topology attaches devices in a loop.

The Fibre Channel Fabric topology attaches host systems directly to a Fabric, which are then connected to multiple devices. The Fibre Channel Fabric topology allows several media types to be interconnected.

A Fibre Channel switch is a multi-port device where each port manages a point-to-point connection between itself and its attached system. Each port can be attached to a server, peripheral, I/O subsystem, bridge, hub, router, or even another switch. A switch receives messages from one port and routes it to another port.

Fibre Channel switches use memory buffers hold frames received and sent across a network. Associated with these buffers are credits, which are the number of frames that a buffer can hold per Fabric port.

FIG. 1Bshows an example of trunking between multiple ports of nodes101and102, according to one embodiment of the present disclosure. In this example, links between ports103A-103N and109A-109N are grouped as trunk107(also shown inFIG. 1A).

In this example, data traffic between the network node101and network node102is balanced across all available links in transmission trunk107.

Typically, network communication between a port pair has an associated cost that is based on a plurality of factors, which includes maximum data rate supported by the ports, configured/negotiated maximum data rate, actual data rate and Latency. These costs are used to evaluate and choose links as paths for transmitting data across transmission trunk107.

Individual link usage within a trunk varies based on the plurality of factors and whether the network is busy or idle. In some instances, a network may need all the active links and in other instances fewer links may be sufficient. Power consumption in the network system is high if all the links are kept active all the time, regardless of whether the links are being used or not. The adaptive embodiments described herein provide an efficient way to activate and de-activate links within a trunk so that trunk utilitization and power consumption are optimal.

Before describing the various processes of the present disclosure, the following describes certain factors/parameters that are used to power up or power down links in trunk107.FIG. 2shows a graph201with data rate206on the Y-axis as a function of time203on the X-axis. Data rate206is the amount of data transmitted and received per second and may be measured in Gigabits per second (G). Graph201also shows a peak data rate205, which is the maximum data rate during a monitoring period, Tmon.

The monitoring period Tmon is the duration between a start time T0202and a monitoring time204. During the monitoring period, data rate206is measured across all links in a transmission trunk. Tmon204may be specified by a user in accordance with the requirement of the network system.

Graph208illustrates trunk capacity for multiple links. Graph208shows Lmax207, i.e. the maximum number of physical links capable of transmitting and receiving data in a transmission trunk. Lactive209is the number of physical links that are active at a given time. The Dthresh210is based on a maximum data rate capacity of the trunk operating with Lactive209number of physical links.

As described below with respect to the process flow diagrams, in one embodiment, the peak data rate205and Dthresh210are compared to determine if additional links should activated to accommodate network traffic or active links should be deactivated from a transmission trunk because they are being underutilized.

FIG. 3shows an example of active links and inactive (powered down) links between two network nodes in network system100, according to one embodiment of the present disclosure. In this example, transmission trunk107has 5 active links (shown as301) and powered down links (shown as302). The total number of links in transmission trunk107is 8, i.e., Lmax is 8.

In theFIG. 3example, at any given time, only 3 additional links may be activated in trunk107since there are a total of 8 links available. Likewise, only 4 links may be deactivated at any given time, since a minimum of one link is need for enabling communication between network node101and102.

FIG. 4shows a flow chart for initialization in a self optimizing transmission trunk (“SOTT”), according to one embodiment of the present disclosure. A SOTT is a trunk that optimizes itself automatically by activating and deactivating links.

The process begins in block S401, when network node101sends a request to network102to initiate optimization of transmission trunk107. Optimization may be enabled or disabled by a user by programming a register104.

In block S402, network node102acknowledges the optimization request made by network node101. The format and nature of the acknowledgement depends on the type of protocol that is used for network communication, for example, Ethernet, Fibre Channel, FCoE and others.

In block S403, network node101initiates data rate monitoring on the transmission trunk107.

In block S404, the peak data rate Dpeak205is measured and updated. Processor105may be used to update Dpeak205at a specified time interval. The time interval may be fixed for example, 1 second or configured by a user interface (not shown) provided by management application117A. At each time interval, the current data rate of the trunk is measured (e.g. Gbits per second) and compared to a current stored Dpeak value. If the current measurement is greater than the stored value then the Dpeak value is updated to the measured value.

FIG. 5shows a process flow chart for optimizing link usage and reducing power consumption in a network system, according to one embodiment of the present disclosure.

The process starts in block S501where network node101, checks for expiration of monitoring time (Tmon204,FIG. 2). In one embodiment, processor105checks for expiration of the monitoring time.

In block S502, the process determines if Dpeak205is less than Dthresh210. The process moves to block S503, if Dpeak205is less than Dthresh210. The process moves to block S509, if Dpeak205is greater than or equal to Dthresh210.

In block S503, network node101determines if peak data rate can be sustained and supported with fewer links. In one embodiment this determination is made by a network node processor (for example,105) that calculates a new threshold value with a hypothetical reduced number of links. The processor compares the Dpeak value with a calculated new threshold value to determine if fewer links can be supported. For example, as shown inFIG. 3, network node101determines if it can support Dpeak205with fewer than 5 links. If the peak data rate can be sustained with fewer links, then, the process moves to block S504. If peak data rate cannot be supported with fewer links, then the process reverts back to step S501.

In block S504, network node101sends a request may also be referred to as a “sleep request”) network node102to power down one or more links.

In block S505, network node102powers down one or more links on receipt of the sleep request from network node101.

According to one embodiment of the present disclosure, undersubscribed or unused links are powered down. This results in reducing overall power usage and cooling requirements for network infrastructure components, for example server nodes and data switches. This is of particular benefit in environments that experience a wide range of capacity usage over time due to working hours, peak use for data backups etc.

In another embodiment of the present disclosure, by monitoring trunk usage over a longer duration of Tmon204, the performance and capacity of a switched network can be optimized by re-deploying undersubscribed or unused links. For example, inter-switch or node-switch trunk ports may be re-tasked for use in other parts of the network or to support additional nodes such as servers or storage.

In block S506, network node101detects deactivation of one or more links. The deactivation operation is carried out in manner that does not cause network disruption, frame loss, transmission errors or reporting of any fault conditions.

In block S507, network node101, updates the current number of active links Lactive209and the threshold data rate Dthresh210based on the new trunk size due to the deactivation in block S506.

In block S508, data rate monitoring is initiated and the process moves to step S501.

Now referring to block S509, network node101determines if additional links are available in the trunk, if Dpeak is less than Dthresh. If yes, the process moves on to step S510. If additional links are not available then the process reverts back to step S501. For example, inFIG. 3, additional links are only available up to a maximum of 8.

In block S510, network node101sends a request (may also be referred to as “wake request”) to network node102to power up or activate one or more links in trunk107.

In block S511, network node102powers up one or more links in the trunk107.

In block S512, network node101detects activation of one or more links. The activation operation is carried out in a manner that does not cause network disruption, frame loss, transmission errors or reporting of any fault conditions.

In block S513, network node101, updates the current number of active links Lactive209and threshold data rate Dthresh210based on the new trunk size after the activation in block S512. Thereafter, the process moves on to step S508for monitoring data.

As described above, link optimization resulting in power reduction within a trunk is a function of Dpeak, Dthresh, Lactive and Lmax. The foregoing process uses these factors to support network traffic while reducing power consumption.

In another embodiment, instead of deactivating the links in block S504or activating links in block S510, the network node101via management port108sends a notification to a user after the possibility of deactivating or activating links has been made in blocks S503and S509, respectively. The notification may be sent to management application117A (FIG. 1A) that is used by the user to accept or reject the option of deactivating or activating one or more links. If the user selects either option, then depending on the selected option (i.e. to deactivate and/or activate links), the process steps S504-S508and S509-S513are executed, as described above with respect toFIG. 5.

Although the present disclosure has been described with reference to specific embodiments, these embodiments are illustrative only and not limiting. Many other applications and embodiments of the present disclosure will be apparent in light of this disclosure and the following claims.