IP Library Granted Patent US 10,528,516
Granted Patent B2
US 10,528,516 · App. 15/923,446 · Granted Jan 7, 2020

Selection of a location for installation of a hardware component in a compute node using historical performance scores

Inventors: Luke David Remis (Raleigh, CA); Milton Cobo (Raleigh, NC); Matthew Nicholas Poppino (Morrisville, NC); Eric E. Pettersen (Raleigh, NC)
Assignee: Lenovo Enterprise Solutions (Singapore) Pte. Ltd.
G06F13/4081G06F9/44505G06F13/4282G06F2213/0026
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 10,528,516
App. No.
15/923,446
Granted
Jan 7, 2020
Kind
B2
Abstract

An apparatus and a computer program product includes non-transitory computer readable storage media embodying program instructions. The program instructions are executable by a baseboard management controller (BMC) to receive a request to install a hardware component in a compute node, identify a current hardware configuration of the compute node, and identify a plurality of available locations within the compute node for installation of the requested component. Still further, the BMC may identify, for each available location, a historical performance database record that includes a performance score for a component installed in the same location as the available location, has the same component type as the requested component, and was collected from a compute node having the same hardware configuration as the current compute node. The BMC may select an available location that has the greatest performance score for the component, and generate output indicating the selected location for installation.

Claims (45)

1. A computer program product comprising non-transitory computer readable storage media having program instructions embodied therewith, the program instructions executable by a baseboard management controller to:

receive a request to install a hardware component in connection with an identified compute node, wherein the hardware component is identified by a component type;

identify a current hardware configuration of the compute node, wherein the current hardware configuration identifies a plurality of hardware components already installed in the identified compute node;

identify a plurality of available locations within the compute node that are compatible with installation of the identified hardware component;

identify, for each of the identified plurality of available locations, a record within a historical performance database that includes a performance score for a component installed in the same location as the available location and having the same component type as the requested hardware component, wherein the identified record further includes data identifying that the performance score was measured in a hardware configuration that is the same as the identified current hardware configuration of the compute node;

select a location from among the plurality of available locations that is associated with the greatest performance score for the identified component; and

generate user output indicating the selected location where the component should be installed.

2. The computer program product of claim 1 , wherein the request to install a component is received as input from a button or switch manually activated by a user, wherein the button or switch is a component of the compute node and is located proximate to the plurality of available locations within the compute node.

3. The computer program product of claim 1 , wherein the request to install a component is received as input into a baseboard management controller webpage.

4. The computer program product of claim 1 , wherein the program instructions executable by the baseboard management controller to identify the plurality of available locations within the compute node compatible with installation of the identified component includes program instructions executable by the baseboard management controller to:

access stored hardware configuration data for the compute node;

identify a plurality of locations described by the hardware configuration data as compatible with the component type of the identified component and as being supported by installed components upon which the identified component is dependent; and

poll each of the identified locations to determine if a component is already installed in the location.

5. The computer program product of claim 4 , wherein the identified component is a PCIe expansion card to be installed in the identified compute node, and wherein a PCIe slot described by the hardware configuration data is determined to be compatible with the PCIe expansion card if the PCIe expansion card has a physical size that is less than or equal to the physical slot size of the PCIe slot set out in the hardware configuration data.

6. The computer program product of claim 4 , wherein the identified component is a PCIe expansion card to be installed in the identified compute node, and wherein a PCIe slot described by the hardware configuration data is determined to be compatible with the PCIe expansion card if the PCIe expansion card has a physical size that is less than or equal to the physical slot size of the PCIe slot set out in the hardware configuration data and if the PCIe expansion card has a device bus width that is less than or equal to the bus width of the PCIe slot.

7. The computer program product of claim 1 , wherein the performance score is a ratio of a measured value of a performance parameter for the component divided by a rated maximum value of the performance parameter for the component.

8. The computer program product of claim 1 , wherein the identified component is a PCIe expansion card to be installed in the identified compute node, wherein the PCIe expansion card is identified by a model number or a performance parameter.

9. The computer program product of claim 8 , wherein the PCIe expansion card is an Ethernet card, and wherein the available locations are PCIe expansion slots.

10. The computer program product of claim 1 , wherein the identified component is an Ethernet cable, wherein the available locations are Ethernet ports, and wherein the selected location is the Ethernet port that will give the compute node the best input/output performance with another device over the Ethernet cable.

11. The computer program product of claim 1 , wherein the program instructions are further executable by the baseboard management controller to:

obtain one or more of the records from a management node that is in communication with baseboard management controllers in each of a plurality of compute nodes.

12. The computer program product of claim 1 , wherein the program instructions executable by the baseboard management controller to generate user output indicating the selected location where the component should be installed includes program instructions executable by the baseboard management controller to:

activate an indicator light that is located on the compute node directly physically adjacent the selected location where the component should be installed.

13. The computer program product of claim 1 , wherein the program instructions executable by the baseboard management controller to generate user output indicating the selected location where the component should be installed includes program instructions executable by the baseboard management controller to:

generate output to a graphical user interface describing the selected location wherein the component should be installed, wherein the graphical user interface is displayed by a device selected from a front panel diagnostic display on the compute node, a remote management computer, and a wireless mobile communication device.

14. The computer program product of claim 1 , wherein the hardware component is further identified by at least one parameter characterizing the component, and wherein the at least one parameter characterizing the component is selected from the group consisting of a capacity and a rate of execution.

15. The computer program product of claim 1 , wherein the program instructions are further executable by the baseboard management controller to identify an application load currently running on the compute node, and wherein the identified record further includes data identifying an application load that is the same as the identified current application load running on the compute node.

16. The computer program product of claim 4 , wherein the program instructions are further executable by the baseboard management controller to:

detect that a CPU installed in the compute node has failed;

determine a hardware component that is dependent upon the failed CPU; and

automatically generate a request to install the hardware component in another location within the compute node that is available, compatible and supported.

17. The computer program product of claim 1 , wherein the program instructions are further executable by the baseboard management controller to:

monitor performance of one or more of hardware components in the current hardware configuration;

calculate, in response to a performance degradation of a given one of the hardware components, a performance score for the given hardware component; and

automatically generate a request to install the hardware component in another available location within the compute node; and

generate user output indicating the current location of the given hardware component that should be installed in the selected location.

18. An apparatus, comprising:

at least one storage device for storing program instructions; and

at least one processor for processing the program instructions to:

receive a request to install a hardware component in connection with an identified compute node, wherein the component is identified by a component type;

identify a plurality of available locations within the compute node compatible with installation of the identified component;

identify a current hardware configuration of the compute node;

for each of the identified plurality of available locations, identify a record within a historical performance database that includes a performance score for a component having the same component type in the available location, wherein the identified record further includes data identifying a hardware configuration that is the same as the identified current hardware configuration of the compute node;

select a location from among the plurality of available locations that is associated with the greatest performance score for the identified component; and

generate user output indicating the selected location where the component should be installed.

Assignments (3)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 10, 2025
From: LENOVO GLOBAL TECHNOLOGIES INTERNATIONAL LIMITED
To: LENOVO GLOBAL TECHNOLOGIES SWITZERLAND INTERNATIONAL GMBH
Reel/Frame 069869/0614 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 16, 2021
From: LENOVO ENTERPRISE SOLUTIONS (SINGAPORE) PTE LTD
To: LENOVO GLOBAL TECHNOLOGIES INTERNATIONAL LTD
Reel/Frame 055939/0264 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 16, 2018
From: REMIS, LUKE DAVID; COBO, MILTON; POPPINO, MATTHEW NICHOLAS; PETTERSEN, ERIC E.
To: LENOVO ENTERPRISE SOLUTIONS (SINGAPORE) PTE. LTD.
Reel/Frame 045255/0315 →