Method and System for Determining Computer Fan Usage and Maintenance

A system, method, and computer-readable medium are disclosed for attesting determining computer system fan usage and maintenance. A determination is made as to the architectural diagram or layout of a computer system. The diagram or layout shows components and fans that support the components. The architectural diagram or layout, where each virtual section shows a fan and the components. Operational load is determined for each virtual section over a period of time. A threshold value for particular periods to time, where the threshold value either is to low load periods or as to periods to increase or decrease speed of the fan to address operational load of the components.

BACKGROUND OF THE INVENTION

Field of the Invention

The present invention relates to maintenance of computer systems. More specifically, embodiments of the invention relate to determining the usage, maintenance, and replacement of fans in computer systems.

Description of the Related Art

Computer systems, such as server computers, typically include cooling fans that regulate the temperature of various components on the computer system. In certain implementations cooling fans can be hot swappable, meaning that cooling fans can be replaced while the computer system is operating. Therefore, the removal of a hot swappable cooling fan can affect the temperature and operation of components while the computer is operating.

Current implementations may provide for managed nodes of which a server computer can be part of. An alert can be provided as to cooling fan failure from the managed node. Implementations may provide for such an alert to be forwarded to administrative support. In the event the determination is made that a new cooling fan is needed, a new replacement cooling fan may be dispatched for replacement in the server computer.

Administrators or technicians responsible for the server computer and cooling fan replacement are tasked to determine an appropriate time to replace the cooling fan in the server computer. For example, certain operational times may be at critical load use of the server computer. The removal of a hot swappable cooling fan from an operating server computer can drastically increase the temperature of the server computer and can impact components such as hard disk drives (HDDs), controllers/processors, memories, etc. Therefore, if administrators or technicians are not aware of an optimal time period to replace a faulty cooling fan, issues can result that can affect components of an operating server computer. Typically, alerts as to cooling fan replacement are addressed at the server computer level, meaning that temperature consideration is made as to the totality of how all of the components of the server computer are affected. For example, a background job that is running on the server computer may increase the temperature of processing units but might not impact the temperature of other components. A decrease of speed of one cooling fan in the server computer may increase the temperature of components in the trajectory of that particular cooling fan; however, such a decrease is not applicable to other components that are not in the trajectory.

SUMMARY OF THE INVENTION

A system, method, and computer-readable medium are disclosed for attesting determining computer system fan usage and maintenance. A determination is made as to the architectural diagram or layout of a computer system, such as server computer. The diagram or layout shows components and fans that support the components. The architectural diagram or layout, where each virtual section shows a fan and the components supported by the fan. Operational load is determined for each virtual section over a period of time. A threshold value for particular periods to time, where the threshold value either is to low load periods in which a fan can be replaced or as to periods to increase or decrease speed of the fan to address operational load of the components.

DETAILED DESCRIPTION

A system, method, and computer readable medium are disclosed determining the usage, maintenance, and replacement of cooling fans in computer systems, such as server computers.

Implementations provide for a determination as to optimal times to replace cooling fans in a server computer with minimal impact of temperature at the component level, including replacement during operation of a server computer.

In various implementations, an architectural diagram or layout of components and cooling fans of a particular model server computer is retrieved. The particular model of server computer can be based on model number, generation, and/or type. Using the architectural diagram or layout, a virtual division is made as to multiple and distinct sections with boundaries that are supported by respective cooling fans.

Implementations can be implemented using a machine learning/artificial intelligence (ML/AI) framework and algorithms that are ran on each virtual section. The ML/AI framework and algorithms predict work load of each virtual section by summing the load of each component of the respective virtual section based on a period of time. Based on the determined load, scores can be determined as to each virtual section. Such scores can be used to determine optimal times for cooling fan replacements.

In certain implementations, load and scores that are determined can be used to adjust speed of particular cooling fans and can proactively address temperature changes (e.g., adverse temperature increases) due to load of components on the server computer.

FIG. 1illustrates an information handling system100that can be used to implement the system and method of the present invention. The information handling system100includes a processor (e.g., central processor unit or “CPU”)102, input/output (PO) devices104, such as a display, a keyboard, a mouse, and associated controllers, a hard drive or disk storage106, and various other subsystems108. In various embodiments, the information handling system100also includes network port110operable to connect to a network140, which is likewise accessible by a service provider server142. The network140may be a public network, such as the Internet, a physical private network, a wireless network, a virtual private network (VPN), or any combination thereof. Skilled practitioners of the art will recognize that many such embodiments are possible, and the foregoing is not intended to limit the spirit, scope or intent of the invention.

The information handling system100likewise includes system memory112, which is interconnected to the foregoing via one or more buses114. System memory112further includes an operating system (OS)116and applications118. In certain embodiments, applications118are provided as a service from the service provider server142.

Certain embodiments provide for applications118to include a distributed a data management system120, and a machine learning/artificial intelligence (ML/AI) platform122that includes ML/AI algorithms. The data management system120and ML/AI platform122are further described herein.

FIG. 2is a simplified block diagram of a system for determining the usage, maintenance, and replacement of cooling fans in computer systems, such as server computers. In particular, the system200provides information handling system100to be accessed by administrators or technicians, as represented by administrator(s)202. For various implementations, the information handling system100can be configured as a laptop computer accessibly by administrator(s)202, and as described connected to network140.

Implementations provide for the information handling to monitor and be connected by network140to one or more server computers, as represented by server computer1204-1, server computer2204-2to server computer N204-N. The server computers204may be considered as group or node that supports a larger computing system.

As discussed, a service provider server142can be connected to network140and in various implementations is part of the system200. Embodiments can further provide for the system200to include a server diagram repository206. The server diagram repository206can store architectural diagrams or layouts of server computers (i.e., computer systems/devices) illustrating configurations of server computer components and cooling fans. Particular models of server computers can be based on model number, generation, and/or type. Using the architectural diagram or layout, as further described herein a virtual division is made as to multiple and distinct sections with boundaries that are supported by respective cooling fans. Implementations provide for the server provider server142or the information handling system100(i.e., ML/AI framework122) to determine virtual division based on the architectural diagram or layout of server computer.

Various embodiments can provide for the system200to include a data lake208. Implementations provide for the data lake208to be formed or to include (i.e., collect) historical and current telemetry information of components of servers204, as to load over a period of time. Data lake208can further include cases or tickets (e.g., scores) as to information or data of component loads as to particular sections and cooling fans that support such sections of particular server computers204. Such information or data can be provided to the ML/AI framework122to create recommendations as to optimal times to replace hot swappable cooling fans in particular server computers204.

FIG. 3is a generalized flowchart300for collecting component load information for virtual sections of server computers. The order in which the method is described is not intended to be construed as a limitation, and any number of the described method blocks may be combined in any order to implement the method, or alternate method. Additionally, individual blocks may be deleted from the method without departing from the spirit and scope of the subject matter described herein. Furthermore, the method may be implemented in any suitable hardware, software, firmware, or a combination thereof, without departing from the scope of the invention.

At step302, the process300starts. At step304, fetching an architectural diagram or layout of a server computer is performed. A determination can be made as to a particular server computer (e.g., server computers204) and can be based on model number, generation, and/or type. Such architectural diagram or layout illustrates how components are integrated (i.e. laid out) on a server computer, and how cooling fans are laid out per the computer server. Implementations provide for the architectural diagram or layout to be fetched from server diagram repository206.

At step306, dividing the architectural diagram or layout into virtual sections is performed. The dividing is based on sections or areas for which cooling fans support. This is further described herein. Implementations provide for service provider server142or information handling system100(i.e., ML/AI framework122) to perform step304step306.

At step308, collecting historical and current load of components per virtual sections is performed. The collection can be performed over a certain time period as further described herein. As described collection can be made at the data lake208.

At step310, creating historical and current cases/tickets as to components of the server computer is performed. The cases/tickets identify the components and virtual sections they are part of. As discussed, determination is over a certain time period. The cases/tickets can be stored or kept at the data lake208.

At step312, providing the data of the historical and current cases/tickets as described in step310is performed. Implementations provide for the data to be consumed by the ML/AI platform122. The ML/AI platform122can use this data to determine optimal times to replace faulty cooling fans and/or adjust speed of cooling fans to preempt possible overheating of components in server computers. At step314, the process300ends.

FIG. 4illustrates a diagram that divides a server architecture into virtual sections. The diagram or layout400is an example of the placement of components on a particular server computer. The diagram or layout400is divided into multiple virtual sections. In this example there are four virtual sections, section1402-1, section2402-2, section3402-3and section4404-4.

Each virtual section402corresponds to a cooling fan that supports or regulates cooling for the particular section402. In this example, fan1404-1regulates cooling for section1402-1, fan2404-2regulates cooling for section2402-2, fan3404-3regulates cooling for section3402-3, and fan4404-4regulates cooling for section4402-4. Therefore, server computer space is divided into multiple virtual sections, where the division is based on cooling fans204, and specifically slots of the computer server of cooling fans204.

The diagram or layout400identifies the placement of components as to virtual sections. In this example, the identified components of the server computer are component406(LAN connector), component408(network (LAN) connector), component410(serial connector), component412(serial port sharing), component414(motherboard serial controller), component416(baseboard management controller), component420(non-volatile storage), and component422(sensors and control circuitry).

The components of diagram or layout400are in at least one virtual section402, providing an input load as to each virtual section402. In the case of component416and component418, there is an overlap between section402-3and402-4. If a component is shared by multiple sections (e.g., components416and418by sections402-3and404-4), then load of that shared component is considered in all the sections. Therefore, if the value “x” is the load of component416, then the value “x” is considered (e.g., added) in the load value for both section3404-3and section404-3.

In various implementations, the load values of each section402can be calculated using the ML/AI framework122. Additional calculation can be performed by the ML/AI framework122for determining optimal replacement times and adjusting of the speed of specific fans404.

FIG. 5illustrates a load graph as to virtual sections results for a low operational load of components supported by a cooling fan of a virtual section. A load graph500is plotted for a particular virtual section (e.g., virtual section402). The load is for a cumulative operational load of all the components in that virtual section. Load value is plotted on the x-axis502of the load graph500, and time (e.g. dates) is plotted on the y-axis504of the load graph500.

Load graph500can be historical or predictive load for a virtual section. For example, a predictive load can be for “n” weeks from the day a dispatch for a replacement cooling fan was provided by a vendor. In the load graph500, the area506illustrates a minimal load. Therefore, the time represented by the area506can be an optimal time to replace a faulty time for the particular cooling fan (e.g., fan404) that supports the virtual section of load graph500.

The value of “n” can be determined by the following factors, a service level agreement of a vendor for fan dispatch or the number of days left for fan failure. The value of “n” can be the higher of the factors.

Based on the load graphs, optimal times as to replacement can be identified, as represented by508. In this example,508shows times for possible replacement for a “fan1” and a time for possible replacement for a “fan4.”

In certain implementations, the load graph500can be used to identify when operational speed of cooling fans can be lowered or increased. A higher component load for a virtual section, at a particular time can indicate a higher temperature at that virtual section and necessitating an increased speed of the cooling fan that supports that virtual section. Therefore, a preemptive increase in cooling fan speed can be performed before reaching a critical operating temperature of components in that virtual section. Likewise, the speed of the cooling fan can be decreased during time of low operational load.

FIG. 6shows an example graphical user interface of virtual section operational loads. The user interface600provides views as to virtual sections where aggregate component load in a virtual section corresponds to particular load levels, such as certain threshold levels. For example, a virtual section may be highlighted by a color, shading, hatching, etc. indicating a “heavy” load is reached. This is represented by602. In certain implementations, a user (e.g., administrator202) at information handling system through the data management system120can view the user interface600. Implementations provide for the user interface600to allow for the user to choose a particular fan and respective time slot to change the fan. Furthermore, implementations through user interface600and the data management system120allow displaying of status of the virtual section as highlighted. The highlighting of the virtual section can be for a selected time interval, and in certain implementations can be for real time operation.

FIG. 7is a generalized flowchart700for determining computer fan usage and maintenance. Implementations provide for the information handling system100(i.e., ML/AI framework122) or service provider server142or to perform process700. The order in which the method is described is not intended to be construed as a limitation, and any number of the described method blocks may be combined in any order to implement the method, or alternate method. Additionally, individual blocks may be deleted from the method without departing from the spirit and scope of the subject matter described herein. Furthermore, the method may be implemented in any suitable hardware, software, firmware, or a combination thereof, without departing from the scope of the invention.

At step702, the process700starts. At step704, determining architectural diagram or layout is performed. As discussed, the determining architectural diagram or layout is specific as to a computer system such as a server computer under evaluation.

At step706, dividing the architectural diagram or layout is performed into virtual sections is performed. As discussed, the virtual sections including a cooling fan and the components of the computer system which the cooling fan supports.

At step708, determining operational load of the components of the virtual sections is determined. The operational load is an aggregate load of the components for each virtual section. The operational load can be determined per historic periods of operation and/or current periods of operation when the computer server is running. As discussed, a load graph (e.g., load graph500) can be created based on the determining.

At step710, calculating periods of threshold operational loads are calculated based are performed. The threshold operational loads can be based on low operational load periods, high operational load periods, and/or other threshold values. The periods of threshold operational load can be derived from the load graph of step708.

At step712, providing low load periods of operation load for fan replacement is performed. The low load periods of load graph can indicate that components of a virtual section at such periods are either not running or running at reduced capacity. Therefore, at such low load periods, a cooling fan that supports such component of the virtual section operates at a reduced capacity/speed or does not need to operate.

At step714, providing periods of operational load as to threshold values to adjust fan speed is performed. To preemptive increase speed of a cooling fan to address higher operating temperatures before an alert is generated, a threshold value can be set for an operational load of components in a virtual section. Therefore, when the threshold value is reached, the speed of the cooling fan can be increased before an alert temperature is reached. The alert temperature due to an increased in operational load of the components in the virtual section. At step716, the process700ends.

As will be appreciated by one skilled in the art, the present invention can be embodied as a method, system, or computer program product. Accordingly, embodiments of the invention can be implemented entirely in hardware, entirely in software (including firmware, resident software, micro-code, etc.) or in an embodiment combining software and hardware. These various embodiments can all generally be referred to herein as a “circuit,” “module,” or “system.” Furthermore, the present invention can take the form of a computer program product on a computer-usable storage medium having computer-usable program code embodied in the medium.

Any suitable computer usable or computer readable medium can be utilized. The computer-usable or computer-readable medium can be, for example, but not limited to, an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system, apparatus, or device. More specific examples (a non-exhaustive list) of the computer-readable medium would include the following: a portable computer diskette, a hard disk, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or Flash memory), a portable compact disc read-only memory (CD-ROM), an optical storage device, or a magnetic storage device. In the context of this document, a computer-usable or computer-readable medium can be any medium that can contain, store, communicate, or transport the program for use by or in connection with the instruction execution system, apparatus, or device.

Computer program code for carrying out operations of the present invention can be written in an object oriented programming language such as Java, Smalltalk, C++ or the like. However, the computer program code for carrying out operations of the present invention can also be written in conventional procedural programming languages, such as the “C” programming language or similar programming languages. The program code can execute entirely on the user's computer, partly on the user's computer, as a stand-alone software package, partly on the user's computer and partly on a remote computer or entirely on the remote computer or server. In the latter scenario, the remote computer can be connected to the user's computer through a local area network (LAN) or a wide area network (WAN), or the connection can be made to an external computer (for example, through the Internet using an Internet Service Provider).