Expected and detected air mover configurations

An information handling system may include a processor; a memory communicatively coupled to the processor; and a cooling system that includes a plurality of air movers and a cooling system controller. The cooling system controller may be configured to: store a data structure that includes information indicative of an expected number of air movers for the information handling system, wherein the expected number of air movers is based on configuration data for the information handling system; determine a detected number of air movers in the plurality of air movers of the cooling system; and in response to a determination that the expected number of air movers is not equal to the detected number of air movers, cause an alert to be sent to a user regarding an incorrect number of air movers.

TECHNICAL FIELD

The present disclosure relates in general to information handling systems, and more particularly to systems and methods for cooling of information handling systems.

BACKGROUND

As processors, graphics cards, random access memory (RAM) and other components in information handling systems have increased in clock speed and power consumption, the amount of heat produced by such components as a side-effect of normal operation has also increased. Often, the temperatures of these components need to be kept within a reasonable range to prevent overheating, instability, malfunction, and damage leading to a shortened component lifespan. Accordingly, heatsinks and/or air movers (e.g., cooling fans and blowers) have often been used in information handling systems to cool information handling systems and their components.

In some instances, a baseline configuration (e.g., number, type, location, etc.) of air movers may be specified for an information handling system. If a purchaser orders some other configuration of such an information handling system, then the additional cooling needs of added information handling resources may require the inclusion of additional air movers.

Various challenges may arise based on misconfigurations in which an expected number of air movers is different from a detected number of air movers (i.e., those that are actually present) in an information handling system. For example, during the building or assembly of an information handling system, it would be desirable to have an automated way of detecting such a misconfiguration before delivery to a purchaser. Further, if a purchaser changes the configuration of an information handling system after delivery, it would be desirable to have an automated way of preventing unsafe configurations from being operated and causing damage via overheating or the like.

Further, even if such a post-delivery reconfiguration by a purchaser is not inherently unsafe (e.g., the configuration includes more air movers instead of fewer), it may not always be straightforward to determine how the additional air movers should be operated. For example, existing automated cooling control strategies might deem the additional air movers unnecessary and turn them off (or run them at some inappropriate speed such as a minimum speed). This may cause cooling degradation from unwanted air recirculation based on the unexpected airflow paths at the unused (or underused) air movers.

Even setting aside the possibility of configuration changes that occur after delivery, there is the possibility that a purchaser may specify additional air movers with an order as a way of future-proofing an information handling system (referred to herein as a cooling “upsell”). This situation may create similar challenges in detecting the validity of the configuration, and determining the correct way to utilize the additional air movers. Thus it would be desirable to be able to automatically detect the presence of an upsell configuration, and to automatically utilize the additional air movers in a productive way.

It should be noted that the discussion of a technique in the Background section of this disclosure does not constitute an admission of prior-art status. No such admissions are made herein, unless clearly and unambiguously identified as such.

SUMMARY

In accordance with the teachings of the present disclosure, the disadvantages and problems associated with cooling control may be reduced or eliminated.

In accordance with embodiments of the present disclosure, an information handling system may include a processor, a memory communicatively coupled to the processor, and a cooling system that includes a plurality of air movers and a cooling system controller. The cooling system controller may be configured to: store a data structure that includes information indicative of an expected number of air movers for the information handling system, wherein the expected number of air movers is based on configuration data for the information handling system; determine a detected number of air movers in the plurality of air movers of the cooling system; and in response to a determination that the expected number of air movers is not equal to the detected number of air movers, cause an alert to be sent to a user regarding an incorrect number of air movers.

In accordance with these and other embodiments of the present disclosure, a method may include storing, at a cooling system controller, a data structure that includes information indicative of an expected number of air movers for an information handling system comprising the cooling system controller, wherein the expected number of air movers is based on configuration data for the information handling system. The method may further include determining a detected number of air movers in the information handling system; and in response to a determination that the expected number of air movers is not equal to the detected number of air movers, causing an alert to be sent to a user regarding an incorrect number of air movers.

In accordance with these and other embodiments of the present disclosure, an article of manufacture may include a non-transitory, computer-readable medium having instructions thereon that are executable by a processor of a cooling system controller of an information handling system. The instructions may be executed for: storing a data structure that includes information indicative of an expected number of air movers for the information handling system, wherein the expected number of air movers is based on configuration data for the information handling system; determining a detected number of air movers in the information handling system; and in response to a determination that the expected number of air movers is not equal to the detected number of air movers, causing an alert to be sent to a user regarding an incorrect number of air movers.

DETAILED DESCRIPTION

Preferred embodiments and their advantages are best understood by reference toFIGS. 1 through 2, wherein like numbers are used to indicate like and corresponding parts.

For purposes of this disclosure, when two or more elements are referred to as “coupled” to one another, such term indicates that such two or more elements are in electronic communication or mechanical communication, as applicable, whether connected indirectly or directly, with or without intervening elements.

When two or more elements are referred to as “coupleable” to one another, such term indicates that they are capable of being coupled together.

FIG. 1illustrates a block diagram of an example information handling system102, in accordance with the present disclosure. In some embodiments, information handling system102may comprise a server chassis configured to house a plurality of servers or “blades.” In other embodiments, information handling system102may comprise a personal computer (e.g., a desktop computer, laptop computer, mobile computer, and/or notebook computer). In yet other embodiments, information handling system102may comprise a storage enclosure configured to house a plurality of physical disk drives and/or other computer-readable media for storing data (which may generally be referred to as “physical storage resources” herein). As shown inFIG. 1, information handling system102may comprise a processor103, a memory104, one or more air movers108, one or more devices114, and a management controller116.

Memory104may have stored thereon an operating system. Such an operating system may comprise any program of executable instructions, or aggregation of programs of executable instructions, configured to manage and/or control the allocation and usage of hardware resources such as memory, processor time, disk space, and input and output devices, and provide an interface between such hardware resources and application programs hosted by the operating system. In addition, the operating system may include all or a portion of a network stack for network communication via a network interface (e.g., one of devices114may be a network interface for communication over a data network). Although the operating system may be stored in memory104, in some embodiments it may be stored in storage media accessible to processor103, and active portions of the operating system may be transferred from such storage media to memory104for execution by processor103.

Air mover108may be communicatively coupled to air mover control system106of management controller116, and may include any mechanical or electro-mechanical system, apparatus, or device operable to move air and/or other gases. In some embodiments, air mover108may comprise a fan (e.g., a rotating arrangement of vanes or blades which act on the air). In other embodiments, air mover108may comprise a blower (e.g., centrifugal fan that employs rotating impellers to accelerate air received at its intake and change the direction of the airflow). In these and other embodiments, rotating and other moving components of air mover108may be driven by a motor110. The rotational speed of motor110may be controlled by the air mover control signal communicated from air mover control system106. In operation, air mover108may cool information handling resources of information handling system102by drawing cool air into an enclosure housing the information handling resources from outside the chassis, expelling warm air from inside the enclosure to the outside of such enclosure, and/or moving air across one or more heatsinks (not explicitly shown) internal to the enclosure to cool one or more information handling resources.

Device114may be communicatively coupled to processor103and may generally include any information handling resource. In some embodiments, device114may include a temperature sensor112. Temperature sensor112may be any system, device, or apparatus (e.g., a thermometer, thermistor, etc.) configured to generate an electrical signal indicative of a sensed temperature within or proximate to device114. Signals may be received from temperature sensors112(e.g., via an Intelligent Platform Management Interface connection) at management controller116and may be used to implement various types of cooling strategies by air mover control system106. Some examples of such cooling strategies are disclosed in U.S. Patent Publication No. 2017/0329651, which is incorporated by reference herein in its entirety.

Management controller116may be configured to provide out-of-band management facilities for management of information handling system102. Such management may be made by management controller116even if information handling system102is powered off or powered to a standby state. Management controller116may include a processor, memory, an out-of-band network interface separate from and physically isolated from an in-band network interface of information handling system102, and/or other embedded information handling resources. In certain embodiments, management controller116may include or may be an integral part of a baseboard management controller (BMC) or a remote access controller (e.g., a Dell Remote Access Controller or Integrated Dell Remote Access Controller). In other embodiments, management controller116may include or may be an integral part of a chassis management controller (CMC).

As shown inFIG. 1, management controller116may include firmware118. Firmware118may include a program of executable instructions configured to be read and executed by management controller116in order to carry out the functionality of management controller116, including that functionality described herein. For example, firmware118may embody an air mover control system106(which may also be referred to herein as a cooling controller). Firmware118may also include data (e.g., data that need not be executable) such as data records124. In other embodiments, air mover control system106and/or data records124may reside on storage media of management controller116other than firmware118(not shown explicitly).

Air mover control system106may include any system, device, or apparatus configured to detect available air movers within information handling system102, receive one or more signals indicative of one or more temperatures within information handling system102(e.g., one or more signals from one or more temperature sensors112), receive information regarding thermal parameters of information handling resources (e.g., information from power and/or thermal tables of management controller116and/or data records124) and based on such signals and thermal parameters, calculate an air mover driving signal to maintain an appropriate level of cooling, increase cooling, or decrease cooling, as appropriate, and communicate such air mover driving signal to air mover108.

In various embodiments, air mover control system106may operate air movers108in an open-loop or a closed-loop fashion.

Firmware118may also include information regarding cooling strategies in a data structure. A data structure such as a map, list, array, table, or other suitable data structure may include one or more data records124, each such data record124setting forth information regarding a particular cooling strategy and one or more “scaling factors.” A data record may be any suitable data type that includes such information (e.g., a row of a table, etc.).

The information in data records124may be stored in a data structure that is incorporated into a firmware118of management controller116. In other embodiments, the data structure may also be stored elsewhere (e.g., in a computer-readable medium accessible to management controller116). In these and other embodiments, the data structure may be organized internally as a plurality of separate data structures.

A scaling factor may be used to specify a desired fan speed or a desired volume of airflow, relative to some baseline amount. For example, a scaling factor of 1.00 would indicate that an air mover should be operated at its nominal baseline speed. A scaling factor of 2.00 would indicate that an air mover should be operated at twice its nominal baseline speed (or in other embodiments, operated to produce twice its nominal baseline amount of airflow in cubic feet per minute).

Scaling factors may be applied to individual air movers, to zones of air movers, to particular modules associated with one or more air movers, or to entire information handling systems in various embodiments.

In particular, some embodiments of this disclosure allow for air mover control system106to detect a configuration of information handling system102and match that configuration against one or more data records124of a thermal table that specify known configurations and their cooling strategies. Air mover control system106may then determine whether or not the system is safe to operate, and if so, how the various air movers should be controlled.

In addition to processor103, memory104, air mover control system106, air mover108, temperature sensor112, device114, and management controller116, information handling system102may include one or more other information handling resources.

FIG. 2illustrates a flow chart of an example method200for controlling air movers, in accordance with embodiments of the present disclosure. According to certain embodiments, method200may begin at step202. As noted above, teachings of the present disclosure may be implemented in a variety of configurations of information handling system102. As such, the preferred initialization point for method200and the order of the steps comprising method200may depend on the implementation chosen. In these and other embodiments, method200may be implemented as hardware, firmware, software, applications, functions, libraries, or other instructions.

Method200may be carried out by a controller of a cooling system of an information handling system, which may in some embodiments be (or be a part of) a management controller. Such a cooling controller 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.

At step202, the cooling controller gathers a system inventory of the information handling system. This step may include polling the various devices and buses of the information handling system to determine what types and quantities of information handling resources are present.

Further, at step204, the cooling controller may detect the air movers that are present in the information handling system. Such detection may include detecting the air movers via an identification pin, a tachometer signal, or any other suitable method. In some embodiments, it may also include detecting the various types of air movers that are present (e.g., fans vs. blowers, standard air movers vs. high-performance air movers, etc.).

At step206, the system inventory may be compared against various known configurations to determine one or more matching configurations. For example, the cooling controller may include a data structure comprising a thermal table having data records with information regarding a set of known factory configurations, one or more of which may be matched by the system inventory that has been gathered.

In some embodiments, multiple such data records may be matched by the configuration of information handling system102. As one example, this may be true for data records having varying levels of specificity. That is, a particularly detailed data record may exactly match every component present in information handling system102, while a less detailed data record may simply not specify certain of the configuration choices that went into information handling system102. For example, the cooling strategy may not depend upon what brand of network interface card is present in information handling system102, and so a data record may not specify that configuration choice at that level of detail.

Once one or more matching configurations have been determined, the air movers that are both present and expected may be driven with scaling factors selected according to the matched configuration(s) to provide cooling to the various air mover zones at steps210and212.

At step214, the detected air movers that were determined at step204may be compared to the expected air movers from the matched configuration(s). If the numbers of air movers are equal, the cooling controller may determine at step216that the air mover configuration is valid.

If there are fewer detected air movers than expected, the cooling controller may determine at step218that an invalid air mover configuration is present. The cooling controller may then take appropriate actions, such as alerting a user or administrator, preventing the system from operating, etc.

If there are more detected air movers than expected, it is possible that an upsell configuration has been installed. Thus the cooling controller determines whether this is the case at step220(e.g., by reference to configuration data from the factory, etc.).

If no upsell configuration of air movers has been installed, then the cooling controller may determine that the configuration is invalid at step218. As above, the cooling controller may then take appropriate actions, such as alerting a user or administrator, preventing the system from operating, etc.

If, instead, an upsell configuration is present, the cooling controller may conclude that the configuration of air movers is valid at step216. For example, in making this determination, the cooling controller may determine the exact nature of the upsell and compare that to the detected air movers.

In some embodiments, the cooling controller may also be operable to compare at step222the types of air movers present to those expected. For example, certain types of high-performance air movers may be treated as providing additional cooling when compared to the standard air movers.

At step228, if the air mover type(s) are the same as what is expected based on the matched configuration(s), then the controller may determine at step216that the configuration is valid.

If, instead, the air mover types are less effective than those expected at step230, the controller may determine at step218that an invalid configuration is present.

If, on the other hand, the air mover types are more effective than those expected at step224, then the controller may conclude that a valid upsell configuration is present at steps226and216.

In the cases in which a valid configuration exists but includes additional (or more powerful types of) air movers compared to the expected configuration, the cooling controller may determine the best way to utilize such additional, unexpected air movers. In some embodiments, such air movers may be assigned to air mover zones based, for example, on their placement within a chassis.

In some embodiments, the cooling controller may allow other additionally listed configurations to drive those air movers that correspond to the expected air mover configuration, without having the need for these configurations to define exactly which air movers should be driven (with the assumption that at least one configuration has been defined that requires a specific fan zone to be driven). This may significantly simplify thermal table implementation, in that only certain key configurations for each fan (or collection of fan zones) may need to be defined.

Thus, for example, an extra air mover located near a group of hard drives may be operated in coordination with the other air movers that are configured to cool those hard drives. This may include simply matching the scaling factor of those other air movers, or it may include intelligently treating the fans as a unified, cooperative group.

For example, if the cooling strategy in effect demands more cooling than is available from the expected air movers (e.g., a cooling calculation determines that they should be driven at more than 100% of their maximum rated speed), then the strategy may instead operate the additional air mover at a higher speed instead of attempting to drive the expected air movers at unreasonable speeds. Thus the additional air movers may be used to supplement the expected air movers in an intelligent manner.

AlthoughFIG. 2discloses a particular number of steps to be taken with respect to method200, method200may be executed with greater or fewer steps than those depicted inFIG. 2. In addition, althoughFIG. 2discloses a certain order of steps to be taken with respect to method200, the steps comprising method200may be completed in any suitable order.

Method200may be implemented using any of the various components disclosed herein (such as the components ofFIG. 1), and/or any other system operable to implement method200. In certain embodiments, method200may be implemented partially or fully in software and/or firmware embodied in computer-readable media.