Controlling fluid coolant flow in cooling systems of computing devices

Methods and systems for controlling fluid coolant flow in cooling systems of computing devices are disclosed. According to an aspect, a method may include determining a temperature of a fluid coolant in a cooling system of a computing device. For example, a temperature of water exiting a cooling system of a server may be determined. The method may also include determining an operational condition of the computing device. For example, a temperature of a processor, memory, or input/output (I/O) component may be determined. Further, the method may include controlling a flow of the fluid coolant through the cooling system based on the temperature of the fluid coolant and/or the operational condition.

BACKGROUND

1. Field of the Invention

The present invention relates to cooling systems of computing devices, and more specifically, to systems and methods for controlling fluid coolant flow in cooling systems of computing devices.

2. Description of Related Art

A rack server, also referred to as a rack-mounted server, is a computer dedicated for use as a server and designed to be installed in a framework called a rack. The rack contains multiple mounting slots called bays, each designed to hold a hardware unit. A single rack may contain multiple servers stacked one above the other, consolidating network resources and minimizing required floor space. The rack server configuration also simplifies cabling among network components.

In a rack containing several servers, a special cooling system may be needed to prevent excessive heat buildup that would otherwise occur when many power-dissipating components are confined in a small space. Air is commonly used for cooling rack servers. Increasingly, water cooling is being used to deal with the special cooling requirements of rack servers in data centers, because data centers are often assigned the most convenient available space as opposed to a space that is adequately ventilated. Further, air in data centers is usually cooled using a refrigeration system that can consume as much as 30% of the data center power. For at least these reasons, it is desired to provide improved techniques for utilizing water for cooling rack servers while optimizing server performance.

BRIEF SUMMARY

One or more embodiments of the present invention provide methods and systems for controlling fluid coolant flow in cooling systems of computing devices. According to an aspect, a method may include determining a temperature of a fluid coolant in a cooling system of a computing device. For example, a server may use a temperature sensor to determine a temperature of water exiting a cooling system of the server. The method may also include determining an operational condition of the computing device. For example, a temperature of a processor, memory, or input/output (I/O) component of the server may be determined. Further, the method may include controlling a flow of the fluid coolant through the cooling system based on the temperature of the fluid coolant and/or the operational condition. For example, the server may control a valve for increasing or decreasing a flow of water through its cooling system based on the temperature of the water or an operational condition of the server.

DETAILED DESCRIPTION

Exemplary systems and methods for efficiently cooling servers using fluid coolant in accordance with embodiments of the present invention are described herein. Using the systems and methods described herein, water or other suitable fluid coolant can be efficiently utilized for cooling servers while maintaining the servers at optimal functional temperatures. In accordance with embodiments of the present invention, a fluid coolant flowing through the cooling system of each server in the rack may be controlled to achieve efficient use of the fluid coolant while maintaining the server and its components within their functional temperature limits. Further, the fluid coolant flow through the cooling system of each server may be controlled such that the temperature of the fluid coolant exiting the cooling system is maximized while the server and its components are maintained within their functional temperature limits. It will be recognized by those skilled in the art that the systems and methods described herein may also be similarly applied for cooling not only servers but also for cooling any suitable type of computing device.

In accordance with embodiments of the present invention, the techniques described herein may be applied to rack servers. Particularly, any rack server may individually apply the systems and methods described herein for efficiently using fluid coolant. In an example, water may be individually supplied to each server in a rack of servers. Each rack server may individually control the flow of water through its respective cooling system such that only the water needed for maintaining the server within its functional temperature limits is provided. Thereby, through use of the techniques described herein, high efficiency may be achieved because only the minimal water and power needed for pumping water through the server will be utilized.

FIG. 1sets forth a diagram of a rack of servers100each including a cooling system in accordance with embodiments of the present invention. Referring toFIG. 1, each of the servers100may be suitably mounted in bays attached to a rack framework102. Water may be supplied from a fluid coolant source104positioned outside of the rack of servers100to a fluid input manifold106for distribution in parallel to each server100. The source104may connected in fluid communication with the manifold106and may be configured to deliver the water into the manifold106in a direction indicated by arrow108. The manifold106may be in fluid communication with a cooling system of each server100. Each cooling system may be configured to route the water to locations in proximity to one or more components, generally designated as server components109, of a respective server for absorbing waste heat. For example, the water may be directed to flow in proximity to server components109, which may include, but are not limited to, a processor, memory, input/output (I/O) components, and the like. Cooling systems having high flow impedance may receive less water than those with low impedance. The servers100may emit differing amounts of thermal energy depending on work load, efficiency, and characteristics of the server components109.

During their operation, server components109may produce excess thermal energy, the removal of which can improve their efficiencies. Input fluid lines110may fluidly connect each server cooling system to the manifold106for allowing the water to flow from the manifold106to the cooling systems. A pump111may be configured to move the water from the source104, through the manifold106and input fluid lines110, and to the cooling systems of the servers100.

The cooling systems of the servers100may be fluidly connected to output fluid lines112for removal of the water from the cooling systems. The water exiting the cooling systems may be delivered by the fluid lines112to a fluid output manifold114for exiting the rack framework102in the direction indicated by arrow116. Each output fluid line112may be connected to a valve118configured to control the flow of water through a respective cooling system. Particularly, each valve118may receive control communications from one or more server components109of a respective server100for adjusting a rate of the flow of water through a cooling system of the server. For example, a flow controller of a server100may generate and communicate to a respective valve118a signal including instructions for the valve to control a flow of the water through a respective cooling system. The valve118may be contained within its respective server100as shown inFIG. 1. Alternatively, the valve118may be located outside of its respective server100.

The valve118may regulate the flow of water by opening, closing, or partially obstructing a passageway in a respective fluid line112based on the control signal from its respective server100. When open or partially obstructing the passageway, the water flows from from the manifold106, through a respective line110, through a cooling system of a respective server100, through the respective line112, and into the manifold114due to water being at a higher pressure at manifold106than at the manifold114. In this example, each valve118is an electromechanical valves configured to be controlled by electrical signals received from its respective server100. Alternatively, the valves118may be any suitable type of valve configured to be controlled by electrical signals. The valves may each include an actuator, such an electromechanical actuator (e.g., an electric motor or solenoid).

Control of the flow of water through a cooling system may be based on system parameters and/or environmental conditions. A server may be configured to use monitored system parameters and/or environmental conditions for determining input controls for a valve to control coolant fluid flow through its cooling system. For example,FIG. 2illustrates a block diagram of a server100configured to control a flow of fluid coolant through its cooling system in accordance with embodiments of the present invention. In this example, the fluid coolant is water, although any other suitable coolant may be used. Referring toFIG. 2, the water may move in a direction indicated by arrows200through a coolant line202of a cooling system, generally designated204. The water may enter the cooling system204generally at a location206where the coolant line202is connected to the input fluid line110. The water may exit the cooling system204generally at a location208where the coolant line202fluidly connects to the output fluid line112. The coolant line202is represented as a single line inFIG. 2; however, it should be appreciated that the coolant line may be one or more lines or other components configured to provide a fluid passageway for coolant between the input fluid line110and the output fluid line112.

The server100may include a processor210, memory212, and one or more I/O components214for managing various components and for implementing processes of the server100as will be appreciated by those of skill in the art. The processor210and memory212may be part of a systems manager. The coolant line202may be routed within the server100to locations in proximity to the processor210, memory212, I/O components214, and/or other components of the server100such that thermal energy may be transferred from these server components to the water contained within the coolant line202for cooling the server components. Accordingly, the water entering the server100at location206is cooler than the water exiting the server100at location208due to the transfer of thermal energy from the server components to the water. In this example, the water entering the server100is about 45° Celsius (C.), and the water exiting the server100is about 65° C., although the water entering and exiting the server may be any suitable temperature.

The server100may also include a flow controller206configured to control the flow of water through the coolant line202of the cooling system204for cooling server components. The flow controller206may include hardware, software, and/or firmware configured to control the water flow based on a temperature of the water in the cooling system204and/or an operational condition of the server100. For example,FIG. 3depicts a flowchart of an exemplary method by which the flow controller206may control the flow of water through the cooling system204for cooling server components according to embodiments of the present invention. In this exemplary method, reference is made to the server100shown inFIGS. 1and2for purposes of illustration; however, reference to the server100should not be construed as limiting as the method may be applied for cooling components of any suitable computing device, such as a standalone computer.

Referring toFIG. 3, the method includes determining300a temperature of a coolant fluid in a cooling system of a computing device. For example, referring toFIG. 2, the server100may include a temperature sensor216suitably attached to the coolant line202or output fluid line112downstream from where thermal energy is transferred from one or more server components (e.g., the processor210, memory212, and I/O components214). The temperature sensor216may be positioned at or near the location208where the water exits the cooling system204. The flow controller206may be communicatively connected to the temperature sensor216for receiving signals including data indicating the temperature of the water at or near the location of the temperature sensor216. The temperature data may be suitably stored in the memory212.

The method ofFIG. 3includes determining302an operational condition of the computing device. For example, the server components (e.g., the processor210, memory212, and I/O components214) may be suitably configured, such as with temperature sensors, to provide temperature data to the flow controller206. Such temperature data may be stored in the memory212. In another example, the processor210may provide one or both of a current work load mode and a planned work load mode to the flow controller206. The work load mode information may indicate, for example, that the work load is high, or that the processor is in an idle or sleep state. The work load mode information may be stored in the memory212.

The method ofFIG. 3includes controlling304a flow of the fluid coolant through the cooling system based on the temperature of the coolant and/or the operational condition. For example, the flow controller206may access the memory212to retrieve, from the memory212, the temperature data of the water, the temperature data of server components, and/or the work load mode information. Using this data and information as set forth in more detail herein, the flow controller206may determine control signals for adjusting a respective valve118to control the flow of water through the cooling system204. The flow controller206may generate the control signals and may communicate the control signals to the valve118via a suitable communication line218. The valve118may receive the control signals and, in accordance with the control signals, open more, close more, or remain the same for increasing, decreasing, or maintaining, respectively, the flow rate of water through the coolant line202. The greater the flow rate, the greater the transfer rate of thermal energy from the server components to the water. Conversely, the lower the flow rate, the lower the transfer rate of thermal energy from the server components to the water.

FIG. 4depicts a flowchart of another exemplary method by which a flow controller may control the flow of water through a cooling system for cooling server components according to embodiments of the present invention. In this exemplary method, reference is made to the server100shown inFIGS. 1 and 2for purposes of illustration; however, reference to the server100should not be construed as limiting as the method may be applied for cooling components of any suitable computing device, such as a standalone computer.

Referring toFIG. 4, the method includes turning400on or off the cooling system. If the cooling system is turned off, the method includes closing402a valve configured to control a flow of fluid coolant through the cooling system. For example, the flow controller206shown inFIG. 2may be configured to determine that the cooling system204is turned off. The processor210or any other suitable component of the server100may communicate information to the flow controller206for indicating that the cooling system204is turned on or off. In response to determining that the cooling system204is turned off, the flow controller206may control the valve118to close the valve118. After closing the valve, the method may return to step400.

If the cooling system is turned on, the method includes determining404a temperature of fluid coolant at a location where the coolant exits the cooling system. For example, the temperature of the water flowing through the cooling system204may be measured at any location downstream from the server components cooled by the cooling system204. In an example, the temperature sensor216may measure a temperature of the water and may communicate a signal indicating the temperature to the flow controller206. The temperature may be measured at the water exit location208, or downstream from the location208and upstream from the valve118.

The method ofFIG. 4includes comparing the exit temperature of the fluid coolant to a constant value and determining406whether the temperature is greater than or less than the constant value. For example, the flow controller206may use the measured temperature indicated by the temperature sensor216for comparing the measured temperature to a predetermined temperature value. The flow controller206may access the memory212to retrieve the constant value and may determine whether the measured temperature is greater than or less than the constant value. A high efficiency water cooling system may be achieved when the water exiting the cooling system is at its highest while the server components are each operating below their functional temperature.

In response to determining that the exit temperature of fluid coolant is greater than the constant value, the method includes controlling408a valve to decrease a rate of flow of the fluid coolant through the cooling system. For example, the flow controller206may communicate a control signal to the valve118to close a predetermined number of increments for decreasing a rate of flow of water through the cooling system204. After step408, the method may return to step400.

In response to determining that the exit temperature of fluid coolant is less than the constant value, the method includes controlling410the valve to increase a rate of flow of the fluid coolant through the cooling system. For example, the flow controller206may communicate a control signal to the valve118to open a predetermined number of increments for increasing a rate of flow of water through the cooling system204. After step408, the method may return to step400.

In response to determining that the exit temperature of fluid coolant is neither less then nor greater than the constant value, the method includes determining412whether the exit temperature is equal to the constant value. In response to determining that the exit temperature is equal to the constant value, the method includes controlling414the valve to either stop the flow of fluid coolant through the cooling system, or set the flow of fluid coolant through the cooling system to a predetermined low-flow setting. The low-flow setting may be a valve setting in which the flow of fluid coolant through the valve is minimal. For example, the flow controller206may communicate a control signal to the valve118to stop the flow of water through the cooling system204, or close to a minimal opening such that only a small flow of water can pass through the valve. After step414, the method may return to step400. Further, in response to determining that the exit temperature is not equal to the constant value, the method may return to step400.

Referring again to step400, in addition to proceeding to step404in response to determining that the cooling system is turned on, the method may include receiving416a system management alert trigger. The system management alert trigger may alert the flow controller206of system management alerts to which the flow controller206is subscribed. For example, the flow controller206may be alerted to a current work load mode or a planned work load mode of system component such as, for example, but not limited to, the processor210. A system management processor of the server100may be aware of the state of various system components, and may notify the flow controller206of the states.

The method ofFIG. 4may include determining418whether one or more component temperatures are greater than or less than a constant value. The constant value may represent a maximum or near maximum functional temperature for the respective server component. The constant value for each component may be different or the same as others. In an example, a system component (e.g., the processor210, memory212, or I/O components214) may be connected to a temperature sensor for detecting a temperature of the respective component and for communicating a signal indicating the temperature to the flow controller206. The flow controller206may monitor the temperature of each component and may determine whether the temperature is greater than or less than a constant value. In response to determining that the temperature of one or more of the monitored components is greater than the respective constant values, the method includes controlling420the valve to increase a rate of flow of the fluid coolant through the cooling system. For example, the flow controller206may communicate a control signal to the valve118to open a predetermined number of increments for increasing a rate of flow of water through the cooling system204. After step420, the method may return to step400.

At step418, in response to determining422that the temperature of each monitored component is less than the respective constant values, the method may include determining whether a processor is in a mode with turbo on, or in a state with a high current or planned work load. A turbo mode of a processor is a mode in which the processor is overclocked, and the turbo mode can be initiated on the fly when increased processing performance is needed. For example, the processor210may notify the flow controller206of such modes or states. In an example, the work load may be known based on events, such as power failure to the server. In response to determining that the processor is in a mode with turbo on, or in a state with a high current or planned work load, the method includes proceeding to step420. In response to determining that the processor is not in a mode with turbo on and not in a state with a high current or planned work load, the method includes proceeding to step424. In this way, water usage may be adjusted based on a planned or current work load of a server component.

At step424, the method includes determining whether a processor is in an idle or sleep state. For example, the processor210may notify the flow controller206of its state, particularly, whether the processor210is in an idle or sleep state. The flow controller206may monitor the state of the processor210. In response to determining that the processor is in an idle or sleep state, the method may proceed to step408for decreasing the rate of flow of fluid coolant. In response to determining that the processor is not in an idle or sleep state, the method may proceed to step426.

At step426, the method includes determining whether a user command has been received for opening or closing the valve. For example, a user may use a suitable user interface of the server100for inputting a command to increase or decrease the rate of flow of the fluid coolant. The command may be communicated to the flow controller206. In response to receiving a command to open the valve, the method may proceed to step420for controlling the valve to increase the rate of flow of fluid coolant. Alternatively, in response to receiving a command to close the valve, the process may proceed to step408for controlling the valve to decrease the rate of flow of fluid coolant. In response to determining that no user command has been received, the process may proceed to step400. The user may enter such commands, for example, for testing purposes such as, but not limited to, determining an optimal fluid coolant exit temperature that balances energy efficiency and system component temperatures.

In accordance with embodiments of the present invention, an environmental condition to which a server is exposed may be detected and the resultant data used for controlling flow of fluid coolant through a cooling system of the server. For example, referring toFIG. 2, a temperature of air surrounding the server100may be detected by a suitable temperature sensor. The temperature sensor may communicate a signal to the flow controller206that indicates a temperature of the air surrounding the server100. Based on the temperature of the air surrounding the server100, the flow controller may open the valve118or close the valve118a predetermined number of increments to increase or described, respectively, the rate of flow of water through the cooling system204. For example, in response to determining that the air temperature is greater than a predetermined value, the valve118may be controlled to open the valve the predetermined number of increments. Conversely, in response to determining that the air temperature is less than a predetermined value, the valve118may be controlled to close the valve the predetermined number of increments. In this way, embodiments of the present invention may anticipate the effects of environmental conditions on system operations, and may accordingly adjust fluid coolant flow for cooling system components.

In accordance with embodiments of the present invention, the flow rate of fluid coolant through a server cooling system may be adjusted for optimizing system performance. For example, a flow controller may control a valve to increase the flow rate of water through a server cooling system for causing a server component to exit a throttled state.

In accordance with embodiments of the present invention, the flow rate of fluid coolant through a server cooling system may be adjusted based on measurements of leakage current of server processors or other server components. Leakage current may be relative to a temperature of a server component. When high amounts of leakage current is detected, a flow controller may control a valve to increase the flow rate of water through a server cooling system for minimizing the leakage current.

As mentioned above, efficient use of fluid coolant can be maintained when the temperature of the fluid coolant exiting a server cooling system is at a maximum or near maximum while system components are within their functional temperatures. Water exiting a server cooling system at such high temperatures may be used, for example, for heating buildings and for other suitable uses of hot water.

Aspects of the present invention are described below with reference to flowchart illustrations and/or diagrams of methods, apparatus (systems) and computer program products according to embodiments of the invention. For example, aspects of the present invention are described with reference to the diagrams ofFIGS. 1 and 2and the flowcharts ofFIGS. 3 and 4. It will be understood that each block of the flowchart illustrations and/or diagrams, and combinations of blocks in the flowchart illustrations and/or diagrams, can be implemented by computer program instructions. These computer program instructions may be provided to a processor of a general purpose computer, special purpose computer, or other programmable data processing apparatus to produce a machine, such that the instructions, which execute via the processor of the computer or other programmable data processing apparatus, create means for implementing the functions/acts specified in the flowchart and/or diagram block or blocks.