Initiate diagnostic operations to collect host information from the baseboard management controller

By introducing BMC into the cloud computing system, enabling the communication interface with the host processor, performing diagnostic operations and collecting information, the problem of the fabric controller having difficulty monitoring the health of the host is solved, more efficient anomaly detection and mitigation is achieved, and system availability is improved.

CN114586013BActive Publication Date: 2025-09-05MICROSOFT TECHNOLOGY LICENSING LLC
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
CN202080071138.4
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Priority Date
2019-10-09
Filing Date
2020-09-18
Publication Date
2025-09-05
Estimated Expiration
2040-09-18

AI Technical Summary

Technical Problem

In cloud computing systems, it is difficult for fabric controllers to effectively determine the health status of host computing devices, especially when network connectivity is unavailable or host agent failures occur, leading to availability issues.

Method used

The baseboard management controller (BMC) is introduced to enable the communication interface with the host processor, perform diagnostic operations, collect host information, and determine anomalies based on anomaly rules and take mitigation measures. It communicates with the fabric controller using data and control plane communication channels.

Benefits of technology

Improves the availability and accuracy of health monitoring of host computing devices, ensures timely diagnosis and mitigation of problems in abnormal situations, and reduces the impact of system failures.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN114586013B_ABST
    Figure CN114586013B_ABST
Patent Text Reader

Abstract

A baseboard management controller (BMC) may be configured to enable a communication interface from the BMC to a host processor on a host computing device and provide input to the host processor via the communication interface. The input causes at least one diagnostic operation to be performed on the host computing device. The BMC may collect host information in response to (multiple) diagnostic operations being performed. The BMC may report the host information to another entity and / or store the host information in a persistent memory within the BMC. In some embodiments, input may be provided to the host processor in response to receiving a signal from a fabric controller. In some embodiments, input may be provided to the host processor in response to detecting an anomaly associated with the host computing device. The BMC may take at least one action to mitigate the anomaly.
Need to check novelty before this filing date? Find Prior Art

Description

Background Art

[0001] Cloud computing is the delivery of computing services (e.g., servers, storage, databases, networking, software, analytics) over the internet. Broadly speaking, a cloud computing system consists of two components: a front-end and a back-end, which communicate with each other via the internet. The front-end comprises the interface that users encounter through client devices. The back-end comprises the resources that deliver cloud computing services, including processors, memory, storage, and networking hardware.

[0002] The backend of a cloud computing system typically includes one or more data centers, which can be located in different geographic regions. Each data center typically includes a large number (e.g., hundreds or thousands) of host computing devices. Each host computing device runs a hypervisor that hosts virtual machines. In this context, the term "host computing device" refers to a physical computer system, while the term "virtual machine" refers to a simulation of a computer system on a host computing device. In other words, a virtual machine is a program running on a host computing device that acts like a virtual computer. Like a physical computer, a virtual machine runs an operating system and one or more applications.

[0003] The backend of a cloud computing system typically includes a fabric controller that monitors, among other things, the health of host computing devices. For example, the operating system on the host computing device may include a host agent that is responsible for determining information related to the health of the host computing device and reporting the information to the fabric controller.

[0004] In cloud computing environments, the availability of host computing devices can be extremely important. However, using current methods, the fabric controller may not always be able to determine information related to the health of the host computing devices. For example, the network connection between the fabric controller and the host computing devices may become unavailable. As another example, the host agent may fail. Therefore, benefits could be realized through improved techniques for determining information related to the health of host computing devices. Summary of the Invention

[0005] According to one aspect of the present disclosure, a baseboard management controller (BMC) is disclosed. The BMC includes a processor and a memory in electronic communication with the processor. The BMC also includes instructions stored in the memory and executable by the processor to: enable a communication interface from the BMC to a host processor on a host computing device, and provide input to the host processor via the communication interface. The input causes at least one diagnostic operation to be performed on the host computing device. The instructions are also executable to collect host information in response to the at least one diagnostic operation.

[0006] In some embodiments, the input may be provided to the host processor in response to receiving a signal from the fabric controller. In some embodiments, the input may be provided to the host processor in response to determining that a heartbeat signal has not been received from a host agent on the host computing device within a predefined time period. In some embodiments, the input may be provided to the host processor in response to detecting an anomaly associated with the host computing device.

[0007] The BMC may also include additional instructions executable by the processor to determine, based on the host information and further based on at least one exception rule, that an anomaly associated with the host computing device has occurred. The instructions may additionally be executable to take at least one action to mitigate the anomaly.

[0008] The input may cause a diagnostic agent on the host computing device to be executed by the host processor.At least one diagnostic operation may be performed via execution of the diagnostic agent.

[0009] The host computing device may communicate with the fabric controller via a data plane communication channel.The BMC may also include additional instructions executable to send host information to the fabric controller via a control plane communication channel separate from the data plane communication channel.

[0010] The BMC may also include persistent memory and additional instructions executable to store host information in the persistent memory.

[0011] The communication interface may include a universal serial bus (USB) interface. Enabling the communication interface may include causing the host processor to enumerate the USB input device.

[0012] The communication interface may include a Peripheral Component Interconnect Express (PCI-e) interface. Enabling the communication interface may include causing the host processor to enumerate a PCI-e endpoint.

[0013] According to another aspect of the present disclosure, a host computing device is disclosed, comprising a host processor and a memory in electronic communication with the host processor. The host computing device also includes a diagnostic agent stored in the memory and executable by the host processor to perform at least one diagnostic operation on the host computing device. The host computing device also includes a baseboard management controller (BMC) configured to enable a communication interface from the BMC to the host processor and provide input to the host processor via the communication interface. The input is configured to cause the diagnostic agent to perform at least one diagnostic operation. The BMC is further configured to collect host information in response to the at least one diagnostic operation.

[0014] In some embodiments, the input may be provided to the host processor in response to receiving a signal from the fabric controller. In some embodiments, the input may be provided to the host processor in response to detecting an anomaly associated with the host computing device.

[0015] The host computing device may further include a host agent stored in the memory and executable by the host processor to send a heartbeat signal to the BMC. In response to determining that a heartbeat signal has not been received from the host agent within a predefined time period, input may be provided to the host processor.

[0016] Additionally, the BMC may be configured to determine, based on the host information and further based on the at least one anomaly rule, that an anomaly associated with the host computing device has occurred. Additionally, the BMC may be configured to take at least one action to mitigate the anomaly.

[0017] The input may cause the diagnostic agent to be executed by the host processor.At least one diagnostic operation may be performed via execution of the diagnostic agent.

[0018] The host computing device may communicate with the fabric controller via a data plane communication channel. Additionally, the BMC may be configured to send host information to the fabric controller via a control plane communication channel that is separate from the data plane communication channel.

[0019] The BMC may also include persistent memory. Additionally, the BMC may be configured to store host information in the persistent memory.

[0020] According to another aspect of the present disclosure, a fabric controller is disclosed, comprising a data plane interface that facilitates communication with a host computing device via a data plane communication channel, a control plane interface that facilitates communication with a baseboard management controller (BMC) via a control plane communication channel, a processor, a memory in electronic communication with the processor, and instructions stored in the memory. The instructions are executable by the processor to send a signal to the BMC via the control plane interface. The signal causes the BMC to initiate at least one diagnostic operation on the host computing device. The instructions are also executable by the processor to receive host information from the BMC via the control plane interface.

[0021] In some embodiments, the signal may be sent in response to detecting that the host computing device is inaccessible via the data plane interface.

[0022] This summary is provided to introduce a selection of concepts in a simplified form that are further described below in the detailed description. This summary is not intended to identify key features or essential features of the claimed subject matter, nor is it intended to be used as an aid in determining the scope of the claimed subject matter.

[0023] Additional features and advantages will be set forth in the following description. The features and advantages of the present disclosure may be realized and obtained by the systems and methods particularly pointed out in the appended claims. The features of the present disclosure will become more apparent from the following description and the appended claims, or may be learned by practice of the disclosed subject matter as set forth below. BRIEF DESCRIPTION OF THE DRAWINGS

[0024] In order to describe the manner in which the above-mentioned and other features of the present disclosure can be obtained, a more detailed description will be presented with reference to specific embodiments illustrated in the accompanying drawings. For better understanding, like elements are represented by like reference numerals throughout the various drawings. It is to be understood that the drawings depict some example embodiments, and the embodiments will be described and explained with additional specificity and detail through the use of the accompanying drawings, in which:

[0025] Figure 1 Illustrated is an example of a BMC on a host computing device configured to initiate one or more diagnostic operations according to the present disclosure.

[0026] Figure 2 An example of a method that may be performed by a BMC according to the present disclosure is illustrated.

[0027] Figure 3 An example of a system is illustrated in which a BMC initiates a diagnostic operation for a host computing device in response to receiving a signal from a fabric controller.

[0028] Figure 4 The diagram shows that Figure 3 An example of a method performed by a BMC in the system shown in FIG.

[0029] Figure 5 The diagram shows that Figure 3 An example of a method performed by a structure controller in the system shown in FIG.

[0030] Figure 6 An example of a system is illustrated in which a BMC initiates diagnostic operations for a host computing device in response to detecting an anomaly associated with the host computing device.

[0031] Figure 7 An example of a method in which a BMC initiates a diagnostic operation with respect to a host computing device in response to detecting an anomaly associated with the host computing device is illustrated.

[0032] Figure 8 An example of a method in which a BMC proactively initiates diagnostic operations for a host computing device is illustrated.

[0033] Figure 9 An example of a system is illustrated in which a host agent is configured to provide at least two different heartbeat signals.

[0034] Figure 10 The diagram shows that Figure 9 An example of a method performed by a BMC in the system shown in FIG.

[0035] Figure 11 The diagram shows that Figure 9 An example of a method performed by a structure controller in the system shown in FIG.

[0036] Figure 12 An example of a system is illustrated in which BMCs on multiple host computing devices report host information to a fabric controller. DETAILED DESCRIPTION

[0037] As described above, the present disclosure generally relates to improved techniques for determining information related to the health of host computing devices in cloud computing systems. The techniques disclosed herein relate to a baseboard management controller (BMC), which is a specialized microcontroller embedded on the motherboard of a host computing device.

[0038] According to one aspect of the present disclosure, a BMC on a host computing device may initiate one or more diagnostic operations that may be performed on the host computing device. For example, the BMC may enable a communication interface from the BMC to a host processor on the host computing device. In some embodiments, enabling the communication interface may include causing the host processor to enumerate a specific type of device (e.g., a USB input device, a PCI-e endpoint device). The BMC may then provide input to the host processor via the communication interface. The input may cause one or more diagnostic operations to be performed on the host computing device. The BMC may then collect information about the host computing device in response to the diagnostic operation(s) being performed, and the information may be reported to another entity (e.g., a fabric controller) and / or stored on the BMC itself.

[0039] There are many reasons why the BMC may initiate a diagnostic operation for a host computing device. For example, the BMC may initiate a diagnostic operation for the host computing device in response to receiving a signal from another entity, such as a fabric controller. In some embodiments, if the network connection between the fabric controller and the host computing device is lost, the fabric controller may send a signal to the BMC via an out-of-band communication channel (e.g., a control plane communication channel).

[0040] As another example, the BMC can initiate diagnostic operations for the host computing device in response to detecting an anomaly associated with the host computing device. In this context, the term "anomaly" can refer to a deviation from normal or typical operation of the host computing device. Some examples of anomalies include the operating system (OS) on the host computing device becoming unresponsive (e.g., "hanging"), and a malicious agent or bug causing OS instability or performance impact. Specific rules can be defined to indicate when an anomaly has occurred on the host computing device.

[0041] In some embodiments, the BMC can proactively initiate diagnostic operations on the host computing device in an effort to identify and repair issues with the host computing device before they become serious problems. In such embodiments, the BMC can initiate diagnostic operations on the host computing device without being instructed to do so by another entity and without first detecting an anomaly associated with the host computing device. For example, the BMC can be configured to periodically initiate diagnostic operations on the host computing device to determine whether an anomaly associated with the host computing device has occurred. If the BMC determines that an anomaly associated with the host computing device has occurred, the BMC can take one or more mitigation actions in an effort to resolve the anomaly.

[0042] As described above, in some embodiments, the host computing device may include a host agent that is responsible for determining information related to the health status of the host computing device and reporting the information to another entity (e.g., a fabric controller). The host agent may be configured to provide at least two different heartbeat signals. For example, the host agent may be configured to provide a heartbeat signal to the fabric controller. The host agent may also be configured to provide a heartbeat signal to the BMC on the host computing device. In this context, the term "heartbeat signal" may refer to a signal that is sent periodically. Both the fabric controller and the BMC may expect to receive heartbeat signals from the host agent at regular intervals. If the fabric controller does not receive a heartbeat signal from the host agent when expected, the fabric controller may instruct the BMC (e.g., via a control plane communication channel) to initiate a diagnostic operation. If the BMC does not receive a heartbeat signal from the host agent when expected, the BMC may initiate a diagnostic operation.

[0043] The techniques disclosed herein can be used in cloud computing systems in which a fabric controller is responsible for managing a large number of host computing devices. Sometimes, baseboard management (BMCs) on various host computing devices can determine host information and report it to the fabric controller. Thus, the fabric controller can collect host information from multiple host computing devices. Machine learning techniques can be used to analyze the host information and determine information that can improve the performance of the cloud computing system.

[0044] Figure 11 illustrates an example of a BMC 104 configured to initiate one or more diagnostic operations on a host computing device 102 according to the present disclosure. The host computing device 102 includes a processor 106, which will be referred to herein as the host processor 106. The BMC 104 can enable a communication interface 108 from the BMC 104 to the host processor 106. In other words, the BMC 104 can activate the communication interface 108 or make the communication interface 108 operational.

[0045] In this context, the term "communication interface" can generally refer to an interaction point between separate components of a computer system. In other words, a communication interface facilitates communication between separate components of a computer system. A communication interface can include hardware and / or software components.

[0046] Figure 1 The communication interface 108 shown in FIG. 1 is a point of interaction between the BMC 104 and the host processor 106. In other words, the communication interface 108 facilitates communication between the BMC 104 and the host processor 106. In some embodiments, enabling the communication interface 108 involves creating a logical connection between the BMC 104 and the host processor 106 so that the BMC 104 can provide input 110 to the host processor 106 via the communication interface 108. The communication interface 108 from the BMC 104 to the host processor 106 can be considered a virtual communication interface 108.

[0047] In some embodiments, enabling the communication interface 108 may include causing the host processor 106 to enumerate a particular type of device. In other words, enabling the communication interface 108 may include causing the host processor 106 to recognize the BMC 104 as a particular type of device. For example, the BMC 104 may cause the host processor 106 to enumerate USB input devices (e.g., keyboard, mouse) so that the host processor 106 interacts with the BMC 104 as if the BMC 104 were a USB input device. In this scenario, the communication interface 108 would be a USB interface. Alternatively, the BMC 104 may cause the host processor 106 to enumerate a Peripheral Component Interconnect Express (PCI-e) endpoint device so that the host processor 106 interacts with the BMC 104 as if the BMC 104 were a PCI-e endpoint device. In this scenario, the communication interface 108 would be a PCI-e interface.

[0048] In this context, the term "enumeration" (and grammatical variations thereof) may refer to the process by which the host processor 106 detects the presence of a device and performs the necessary operations to ensure that the device is added to the list of endpoints serviced by the host processor 106. To cause the host processor 106 to enumerate a particular type of device, the BMC 104 may send a signal to the host processor 106 that causes the host processor 106 to request additional information from the BMC 104. The BMC 104 may respond to the request for additional information as if the BMC 104 were a device of the desired type (e.g., a USB device, a PCI-e device).

[0049] Once the communication interface 108 from the BMC 104 to the host processor 106 has been enabled, the BMC 104 may provide input 110 to the host processor 106 via the communication interface 108. The type of input 110 that the BMC 104 provides to the host processor 106 may depend on the type of device that the BMC 104 has caused the host processor 106 to enumerate and the type of enabled interface 108. For example, if the BMC 104 has caused the host processor 106 to enumerate a USB keyboard, the input 110 may include a keystroke sequence.

[0050] Input 110 may cause one or more diagnostic operations to be performed on host computing device 102. In this context, the term "diagnostic operation" may generally refer to any action that determines information related to an operational characteristic of host computing device 102. Some examples of diagnostic operations that may be performed include determining whether host processor 106 is accessible via communication interface 108, determining a utilization level of host processor 106, determining information related to memory 114 within host computing device 102 (e.g., usage information), determining whether other devices (e.g., storage devices, peripheral devices) are connected to host computing device 102 and accessible to host processor 106, determining which processes and / or threads are currently running on host computing device 102, determining the contents of registers on host computing device 102, determining the current temperature of host processor 106, determining network throughput / bandwidth for host computing device 102, determining statistics related to a hypervisor running on host computing device 102, and determining an amount of free space in host computing device 102 (e.g., in memory 114 of host computing device 102 and / or in storage devices within host computing device 102).

[0051] In the depicted example, the diagnostic agent 112 is stored in the memory 114 of the host computing device 102. The diagnostic agent 112 can be configured to perform one or more diagnostic operations. In some embodiments, input 110 from the BMC 104 via the communication interface 108 can cause the diagnostic agent 112 to be initiated and executed by the host processor 106, thereby causing the diagnostic operation(s) to be performed.

[0052] In some embodiments, diagnostic agent 112 may be a command line interface program. In such embodiments, input 110 may include (i) a first portion that causes the command line interface program to be launched, and (ii) a second portion that includes one or more commands for the command line interface program. The command(s) may cause diagnostic operation(s) to be performed.

[0053] Alternatively, in other embodiments, the diagnostic agent 112 may be a program configured to perform a predefined diagnostic sequence when the diagnostic agent 112 is activated. In such embodiments, the input 110 may simply cause the diagnostic agent 112 to be activated.

[0054] The BMC 104 may collect information 116 about the host computing device 102 in response to the diagnostic operation(s) being performed. This information 116 may be referred to herein as host information 116. In this context, the term "host information" generally refers to any information related to operational characteristics of the host computing device 102 that is determined in response to one or more diagnostic operations. Some examples of host information that may be determined from the diagnostic operations include information indicating whether the host processor 106 is accessible via the communication interface 108, information related to the utilization level of the host processor 106, information indicating whether other devices (e.g., storage devices, peripheral devices) are connected to the host computing device 102 and accessible to the host processor 106, information related to which processes are currently running on the host computing device 102, and information related to the current temperature of the host processor 106.

[0055] BMC 104 may receive host information 116 from diagnostic agent 112 via communication interface 108. In some embodiments, BMC 104 may cause host processor 106 to enumerate virtual storage devices (e.g., virtual hard drives). This may occur, for example, when using a USB interface. Host information 116 may then be provided to BMC 104 as one or more files.

[0056] The BMC 104 can use the host information 116 in a variety of different ways. For example, the BMC 104 can report the host information 116 to another entity (e.g., a fabric controller). As another example, the BMC 104 can store the host information 116 in persistent memory within the BMC 104 itself. In some embodiments, the BMC 104 can store the host information 116 in one or more entries in a system event log (SEL).

[0057] Figure 2 An example of a method 200 that may be performed by the BMC 104 according to the present disclosure is illustrated. Figure 1 The method 200 is described with reference to the BMC 104 in the host computing device 102 shown in FIG.

[0058] The method 200 includes enabling 202 a communication interface 108 from the BMC 104 to the host processor 106 on the host computing device 102. As described above, this may involve causing the host processor 106 to enumerate a particular type of device (e.g., a USB input device, a PCI-e endpoint device) and interact with the BMC 104 as if the BMC 104 were the enumerated device.

[0059] The method 200 also includes providing 204 input 110 to the host processor 106 via the communication interface 108. The input 110 causes one or more diagnostic operations to be performed on the host computing device 102. For example, the input 110 can cause the diagnostic agent 112 on the host computing device 102 to be executed by the host processor 106. In some embodiments, the diagnostic agent 112 can be a command line interface program, and the input 110 can include commands for the command line interface program that cause the diagnostic operation(s) to be performed. In other embodiments, the diagnostic agent 112 can be a program configured to execute a predefined diagnostic sequence when the diagnostic agent 112 is started.

[0060] The method 200 also includes collecting 206 host information 116 in response to the diagnostic operation(s) being performed. The BMC 104 may receive the host information 116 from the diagnostic agent 112 via the communication interface 108. The BMC 104 may report 208 the host information 116 to another entity (e.g., a fabric controller). The BMC 104 may also store 210 the host information 116 in persistent storage within the BMC 104 itself. Of course, the BMC 104 need not both report 208 the host information 116 to another entity and store 210 the host information 116 in the BMC 104. In some embodiments, the BMC 104 may report 208 the host information 116 to another entity or store 210 the host information 116 in the BMC 104.

[0061] Figure 3 An example of a system 300 is illustrated in which a BMC 304 initiates a diagnostic operation for a host computing device 302 in response to receiving a signal 318 from a fabric controller 320. In the depicted system 300, there are two distinct communication channels 322, 324 between the fabric controller 320 and the host computing device 302. The first communication channel 322 is established via a data plane and may be referred to herein as a data plane communication channel 322. The second communication channel 324 is established via a control plane and may be referred to herein as a control plane communication channel 324. The control plane communication channel 324 facilitates communication between the fabric controller 320 and the BMC 304 on the host computing device 302.

[0062] The fabric controller 320 includes two distinct communication interfaces that facilitate communication with the host computing device 302 via communication channels 322, 324. In particular, the fabric controller 320 includes a communication interface 326 that facilitates communication with the host computing device 302 via a data plane communication channel 322. The communication interface 326 may be referred to herein as a data plane interface 326. The fabric controller 320 also includes a communication interface 328 that facilitates communication with the BMC 304 on the host computing device 302 via a control plane communication channel 324. The communication interface 328 may be referred to herein as a control plane interface 328.

[0063] In some cases, fabric controller 320 may send signal 318 to BMC 304 to cause BMC 304 to initiate one or more diagnostic operations on host computing device 302. Signal 318 may be sent to BMC 304 via control plane interface 328 and control plane communication channel 324.

[0064] In some embodiments, when the BMC 304 receives the signal 318 from the fabric controller 320, the communication interface 308 from the BMC 304 to the host processor 306 may have been previously enabled. In this case, in response to receiving the signal 318, the BMC 304 may provide input 310 to the host processor 306 via the communication interface 308. The input 310 may cause one or more diagnostic operations to be performed on the host computing device 302 in the manner described above.

[0065] Alternatively, in other embodiments, the communication interface 308 from the BMC 304 to the host processor 306 may not have been previously enabled when the BMC 304 receives the signal 318 from the fabric controller 320. In this case, in response to receiving the signal 318, the BMC 304 may enable the communication interface 308 from the BMC 304 to the host processor 306 and then provide the input 310 to the host processor 306 via the communication interface 308.

[0066] Once the diagnostic operation(s) have been performed on the host computing device 302, the BMC 304 may then collect host information 316. The host information 316 may be received, for example, from a diagnostic agent 312 stored in a memory 314 of the host computing device 302 and executed by the host processor 306. Once the host information 316 has been collected, the BMC 304 may then send the host information 316 to another entity (e.g., the fabric controller 320). Figure 3 Fabric controller 320 is shown receiving host information 316 from BMC 304 via control plane communication channel 324 and control plane interface 328. Host information 316 may also be stored in persistent memory 336 within BMC 304 or elsewhere.

[0067] There are a variety of reasons why the fabric controller 320 may send a signal 318 to the BMC 304 to cause the BMC 304 to initiate diagnostic operation(s) on the host computing device 302. For example, the fabric controller 320 may send such a signal 318 to the BMC 304 in response to detecting that the host computing device 302 is inaccessible via the data plane interface 326.

[0068] Figure 4 An example of a method 400 is illustrated in which the BMC 304 initiates a diagnostic operation for the host computing device 302 in response to receiving a signal 318 from the fabric controller 320. Figure 3 The method 400 is described with reference to the system 300 shown in FIG. The method 400 may be performed by the BMC 304 .

[0069] According to method 400, BMC 304 enables 402 a communication interface 308 from BMC 304 to host processor 306 on host computing device 302. As described above, enabling 402 communication interface 308 may include causing host processor 306 to enumerate a particular type of device (e.g., USB input device, PCI-e endpoint device).

[0070] The fabric controller 320 can determine whether the host computing device 302 is accessible via the data plane communication channel 322. The fabric controller 320 can make this determination in a variety of different ways. For example, the fabric controller 320 can periodically attempt to send signals to the host computing device 302 via the data plane interface 326 and the data plane communication channel 322. As long as the host computing device 302 responds to these signals via the data plane communication channel 322, the fabric controller 320 can determine that the host computing device 302 is accessible. However, if the host computing device 302 does not respond to a particular signal within a specific time period, the fabric controller 320 can determine that the host computing device 302 is not accessible via the data plane communication channel 322.

[0071] As another example, the host computing device 302 can periodically send signals to the fabric controller 320 via the data plane communication channel 322 (without first receiving signals from the fabric controller 320). As long as the fabric controller 320 continues to receive these signals from the host computing device 302, the fabric controller 320 can determine that the host computing device 302 is accessible via the data plane communication channel 322. However, if the fabric controller 320 does not receive a signal from the host computing device 302 within a specific time period, the fabric controller 320 can determine that the host computing device 302 is not accessible via the data plane communication channel 322. Alternatively, if the fabric controller 320 does not receive a signal from the host computing device 302 within a specific time period, the fabric controller 320 can attempt to send a signal to the host computing device 302 via the data plane interface 326 and the data plane communication channel 322. If the fabric controller 320 does not receive a response to the signal, the fabric controller 320 can determine that the host computing device 302 is not accessible via the data plane communication channel 322.

[0072] If the fabric controller 320 determines that the host computing device 302 is inaccessible via the data plane communication channel 322, the fabric controller 320 may send a signal 318 to the BMC 304 via the control plane interface 328 and the control plane communication channel 324. Thus, the method 400 includes receiving 404 the signal 318 from the BMC 304 via the control plane interface 328 and the control plane communication channel 324. The signal 318 may instruct the BMC 304 to initiate one or more diagnostic operations to attempt to determine why the host computing device 302 is inaccessible via the data plane communication channel 322. In response to receiving 404 the signal 318 from the fabric controller 320, the BMC 304 may provide 406 the input 310 to the host processor 306 via the communication interface 308. As described above, the input 310 may cause one or more diagnostic operations to be performed on the host computing device 302. The diagnostic operation(s) may be performed by the diagnostic agent 312 on the host computing device 302.

[0073] The BMC 304 may then collect 408 host information 316 in response to the diagnostic operation(s) being performed. The BMC 304 may receive the host information 316 from the diagnostic agent 312 via the communication interface 308. The BMC 304 may report 410 the host information 316 to another entity, such as the fabric controller 320. The BMC 304 may send the host information 316 to the fabric controller 320 via the control plane communication channel 324. The BMC 304 may also store 412 the host information 316 in persistent memory 336 within the BMC 304 itself.

[0074] exist Figure 4 In the method 400 shown in FIG, the BMC 304 enables 402 the communication interface 308 from the BMC 304 to the host processor 306 before the BMC 304 receives 404 the signal 318 from the fabric controller 320 causing the BMC 304 to initiate one or more diagnostic operations on the host computing device 302. In an alternative embodiment, the BMC 304 may enable 402 the communication interface 308 after receiving 404 the signal 318 from the fabric controller 320.

[0075] Figure 5 The diagram shows that Figure 3 , an example of a method 500 performed by the fabric controller 320 in the system 300 is shown in FIG. According to the method 500, the fabric controller 320 can detect 502 that the host computing device 302 is not accessible via the data plane communication channel 322. Several different techniques for determining whether the host computing device 302 is accessible via the data plane communication channel 322 are described above.

[0076] In response to detecting 502 that the host computing device 302 is inaccessible via the data plane communication channel 322, the fabric controller 320 can send 504 a signal 318 to the BMC 304 via the control plane communication channel 324. As described above, the signal 318 can instruct the BMC 304 to initiate one or more diagnostic operations to attempt to find out why the host computing device 302 is inaccessible via the data plane communication channel 322. In response to receiving the signal 318 from the fabric controller 320, the BMC 304 can initiate the one or more diagnostic operations. The BMC 304 can then collect host information 316 in response to the diagnostic operation(s) being performed and report the host information 316 to the fabric controller 320. Thus, the method 500 can include receiving 506 the host information 316 from the BMC 304 in response to the diagnostic operation(s) being performed.

[0077] Figure 6 FIG. 1 illustrates an example of a system 600 in which a BMC 604 initiates a diagnostic operation for a host computing device 602 in response to detecting an anomaly associated with the host computing device 602 .

[0078] In the depicted system 600, one or more rules 632 have been defined that indicate when an anomaly has occurred associated with the host computing device 602. Such rules 632 may be referred to herein as anomaly rules 632. The anomaly rules 632 may be included in the BMC 604 itself. Figure 6 Exception rules 632 are shown included in memory 636 within BMC 604. Alternatively, exception rules 632 may be stored in a different location separate from BMC 604 to which BMC 604 has access.

[0079] There are many different types of exception rules 632 that can be defined in accordance with the present disclosure. As an example, an exception rule 632 can be defined that identifies a maximum utilization level for the host processor 606. Whenever the BMC 604 determines that the utilization of the host processor 606 exceeds this defined maximum level, the BMC 604 can determine that an exception has occurred.

[0080] As another example, an exception rule 632 may be defined that identifies the maximum temperature of the host processor 606. Whenever the BMC 604 determines that the temperature of the host processor 606 exceeds this defined maximum level, the BMC 604 may determine that an exception has occurred.

[0081] As another example, an exception rule 632 may be defined that identifies a list of processes authorized to run on the host computing device 602. If the BMC 604 identifies a process running on the host computing device 602 that is not included in the list of authorized processes, the BMC 604 may determine that an exception has occurred.

[0082] As another example, the exception rules 632 may include a list of devices 642 (e.g., storage devices, peripheral devices) that should be active on the host computing device 602. In this context, a device 642 may be considered active on the host computing device 602 if the device 642 is accessible to the host processor 606. If the BMC 604 determines that one or more of these devices 642 are not currently active, the BMC 604 may determine that an exception has occurred.

[0083] The BMC 604 can monitor operational characteristics of the host computing device 602 based on defined exception rules 632. For example, if there is an exception rule 632 that identifies the maximum utilization of the host processor 606, the BMC 604 can monitor the actual utilization of the host processor 606. If there is an exception rule 632 that identifies the maximum temperature of the host processor 606, the BMC 604 can monitor the actual temperature of the host processor 606. If there is an exception rule 632 that includes a list of processes authorized to run on the host computing device 602, the BMC 604 can monitor the processes actually running on the BMC 604. If there is an exception rule 632 that includes a list of devices 642 that should be active on the host computing device 602, the BMC 604 can monitor those devices 642 to see if they are currently active.

[0084] In some embodiments, the BMC 604 can monitor the operational characteristics of the host computing device 602 based on the defined exception rules 632 regardless of any communications received from another entity, such as the fabric controller 620. In other words, the BMC 604 can monitor the operational characteristics of the host computing device 602 based on the defined exception rules 632 even if the fabric controller 620 or any other entity has not explicitly instructed the BMC 604 to do so. Alternatively, in other embodiments, the BMC 604 can monitor the operational characteristics of the host computing device 602 in response to receiving one or more commands from the fabric controller 620 or another management-level entity exercising control over the host computing device 602.

[0085] If the BMC 604 determines that an anomaly associated with the host computing device 602 has occurred based on the defined anomaly rules 632, the BMC 604 may initiate one or more diagnostic operations to be performed on the host computing device 602. This may be accomplished in the manner previously described. For example, the BMC 604 may enable a communication interface 608 from the BMC 604 to the host processor 606 and then provide input 610 to the host processor 606 via the communication interface 608. As described above, the input 610 may cause one or more diagnostic operations to be performed on the host computing device 602. The diagnostic operation(s) may be performed by a diagnostic agent 612 stored in a memory 614 within the host computing device 602 and executed by the host processor 606.

[0086] Once the diagnostic operation(s) have been performed on the host computing device 602, the BMC 604 may then collect host information 616. For example, the host information 616 may be received from the diagnostic agent 612 on the host computing device 602 via the communication interface 608. Once the host information 616 has been collected, the BMC 604 may then send the host information 616 to another entity (e.g., the fabric controller 620). Figure 6 The system 600 shown in FIG. 6 includes a data plane communication channel 622 and a control plane communication channel 624 between a fabric controller 620 and a host computing device 602. The fabric controller 620 includes a data plane interface 626 and a control plane interface 628. The BMC 604 can send host information 616 to the fabric controller 620 via the control plane communication channel 624. Alternatively, if the fabric controller 620 is accessible to the host computing device 602 via the data plane communication channel 622, the BMC 604 can cause the host information 616 to be sent to the fabric controller 620 via the data plane communication channel 622. The host information 616 can also be stored in a persistent memory 636 within the BMC 604 or elsewhere.

[0087] Figure 7 An example of a method 700 is illustrated in which the BMC 604 initiates a diagnostic operation for the host computing device 602 in response to detecting an anomaly associated with the host computing device 602. Figure 6 The method 700 is described with reference to the system 600 shown in FIG. The method 700 may be performed by Figure 6 Executed by the BMC 604 in the system 600 shown in FIG.

[0088] According to method 700, BMC 604 enables 702 a communication interface 608 from BMC 604 to a host processor 606 on host computing device 602. As described above, enabling 702 communication interface 608 may include causing host processor 606 to enumerate a particular type of device (e.g., USB input device, PCI-e endpoint device).

[0089] The method 700 also includes the BMC 604 monitoring 704 an operational characteristic of the host computing device 602 based on one or more defined anomaly rules 632. If the BMC 604 determines 706 that an anomaly associated with the host computing device 602 has occurred based on the defined anomaly rules 632, the BMC 604 may initiate one or more diagnostic operations on the host computing device 602 by providing 708 input 610 to the host computing device 602 via the previously enabled communication interface 608. The input 610 causes the one or more diagnostic operations to be performed on the host computing device 602. The diagnostic operation(s) may be performed by a diagnostic agent 612 on the host computing device 602.

[0090] The BMC 604 may then collect 710 host information 616 in response to the diagnostic operation(s) being performed. The BMC 604 may receive the host information 616 from the diagnostic agent 612 via the communication interface 608. The BMC 604 may report 712 the host information 616 to another entity (e.g., the fabric controller 620). The BMC 604 may send the host information 616 to the fabric controller 620 via the control plane communication channel 624. Alternatively, if the fabric controller 620 is accessible to the host computing device 602 via the data plane communication channel 622, the BMC 604 may cause the host information 616 to be sent to the fabric controller 620 via the data plane communication channel 622. The BMC 604 may also store 714 the host information 616 in persistent storage 636 within the BMC 604 itself.

[0091] Figure 8 An example of a method 800 in which the BMC 604 proactively initiates diagnostic operations for the host computing device 602 is illustrated. Figure 6 The method 800 is described with reference to the system 600 shown in FIG. The method 700 may be performed by Figure 6 The BMC 604 in the system 600 shown in FIG.

[0092] According to method 800, BMC 604 enables 802 a communication interface 608 from BMC 604 to host processor 606 on host computing device 602. Method 800 also includes BMC 604 initiating one or more diagnostic operations on host computing device 602 by providing 804 input 610 to host processor 606 via communication interface 608. In some embodiments, BMC 604 may periodically initiate diagnostic operation(s) on host computing device 602 by periodically providing 804 input 610 to host processor 606 via communication interface 608. Input 610 causes one or more diagnostic operations to be performed on host computing device 602. The diagnostic operation(s) may be performed by diagnostic agent 612 on host computing device 602. BMC 604 may then collect 806 host information 616 in response to the diagnostic operation(s) being performed. BMC 604 may receive host information 616 from diagnostic agent 612 via communication interface 608.

[0093] The BMC 604 then determines 808 whether an anomaly associated with the host computing device 602 has occurred based at least in part on the host information 616 collected by the BMC 604 and the defined anomaly rules 632. If the BMC 604 determines 808 that an anomaly associated with the host computing device 602 has not occurred, the BMC 604 may wait for a specific period of time before initiating additional diagnostic operations on the host computing device 602. The amount of time that the BMC 604 waits before initiating additional diagnostic operations on the host computing device 602 may be predefined and stored in the persistent memory 636 of the BMC 604.

[0094] However, if the BMC 604 determines 808 that an anomaly associated with the host computing device 602 has occurred, the BMC 604 can perform 810 one or more actions to mitigate the anomaly. Depending on the type of anomaly detected, many different types of actions can be taken according to the present disclosure. As an example, assume that the anomaly rules 632 include a list of processes authorized to run on the host computing device 602, and the host information 616 indicates that at least one unauthorized process is running on the host computing device 602. In response to detecting such an anomaly, the BMC 604 can provide an input 610 to the host computing device 602 to cause the unauthorized process to be terminated.

[0095] As another example, assume that anomaly rule 632 identifies a maximum utilization level for host processor 606, and host information 616 indicates that the actual utilization of host processor 606 exceeds the defined maximum level. In response to detecting such anomaly, BMC 604 may provide input 610 to host computing device 602 to cause a reduction in utilization of host processor 606. For example, BMC 604 may provide input 610 to host computing device 602 to cause one or more processes running on host computing device 602 to be terminated.

[0096] As another example, assume that anomaly rule 632 identifies a maximum temperature of host processor 606, and host information 616 indicates that the actual utilization of host processor 606 exceeds the defined maximum level. In response to detecting such anomaly, BMC 604 can provide input 610 to host computing device 602 to cause the temperature of host processor 606 to be reduced. For example, BMC 604 can provide input 610 to host computing device 602 to cause one or more processes running on host computing device 602 to be terminated and / or cause one or more cooling fans within host computing device 602 to be activated.

[0097] As another example, assume that the exception rule 632 includes a list of devices 642 (e.g., storage devices, peripheral devices) that should be active on the host computing device 602, and the host information 616 indicates that one or more of these devices 642 are not currently active. In response to detecting such an anomaly, the BMC 604 can provide an input 610 to the host computing device 602 causing the inactive device(s) 642 to be reset.

[0098] If the exception is that the operating system on the host computing device 602 is not responding, the BMC 604 can attempt to recover via the communication interface 608. The BMC 604 can also attempt to collect as much host information 616 as possible for debugging. The BMC 604 can also trigger one or more non-maskable interrupts (NMIs) and read one or more machine status registers (MSRs) on the host computing device 602.

[0099] Figure 9An example of a system 900 is shown in which a host agent 944 is configured to provide at least two different heartbeat signals 946a-946b. System 900 is similar in some respects to systems 300 and 600 described previously. For example, system 900 includes a host computing device 902 that is in electronic communication with a fabric controller 920 via a data plane communication channel 922. Host computing device 902 includes a BMC 904 that is in electronic communication with fabric controller 920 via a control plane communication channel 924. Fabric controller 920 includes a data plane interface 926 for communicating with host computing device 902 via data plane communication channel 922, and a control plane interface 928 for communicating with BMC 904 via control plane communication channel 924.

[0100] In the depicted system 900, a host agent 944 is shown in the memory 914 of the host computing device 902. The host agent 944 is executable by the host processor 906 to perform the functions described herein in conjunction with the host agent 944.

[0101] The host agent 944 is configured to send a heartbeat signal 946a to the fabric controller 920 via the data plane communication channel 922. The host agent 944 is also configured to send a heartbeat signal 946b to the BMC 904 on the host computing device 902.

[0102] The heartbeat signals 946a-946b may be sent periodically. If the heartbeat signals 946a-946b are not received when expected, the BMC 904 may initiate one or more diagnostic operations, either on its own or at the request of the fabric controller 920.

[0103] For example, assume that the fabric controller 920 desires to send data at regular intervals (which may be represented by T heartbeat ) receives a heartbeat signal 946a from the host agent 944. If the fabric controller 920 heartbeat , which may indicate that there are some problems with the host computing device 902 and / or the data plane communication channel 922. Therefore, if the fabric controller 920 fails to receive a heartbeat signal 946a from the host agent 944 for a period of time exceeding T heartbeat If no heartbeat signal 946a is received from the host agent 944 for a period of time, the fabric controller 920 may instruct the BMC 904 (via the control plane communication channel 924) to initiate one or more diagnostic operations. Figure 9 The fabric controller 920 is shown sending a signal 918 to the BMC 904 via a control plane communication channel 924 causing the BMC 904 to initiate one or more diagnostic operations.

[0104] As another example, assume that the BMC 904 desires to send a message at regular intervals (which may be represented by T heartbeat (indicates) receives a heartbeat signal 946b from the host agent 944. If the BMC 904 exceeds T heartbeat If the BMC 904 does not receive the heartbeat signal 946b from the host agent 944 for a period of time exceeding , this may indicate that there is some problem with the host agent 944 and / or another aspect of the host computing device 902. Therefore, if the BMC 904 does not receive the heartbeat signal 946b from the host agent 944 for a period of time exceeding , the BMC 904 may initiate one or more diagnostic operations on the host computing device 902.

[0105] The BMC 904 may initiate diagnostic operations in the manner described above. For example, the BMC 904 may enable a communication interface 908 from the BMC 904 to the host processor 906 and provide input 910 to the host processor 906 via the communication interface 908. The input 910 may cause one or more diagnostic operations to be performed on the host computing device 902. The diagnostic operation(s) may be performed by a diagnostic agent 912 stored in a memory 914 of the host computing device 902. The BMC 904 may receive host information 916 from the diagnostic agent 912 in response to the diagnostic operation(s) being performed. The BMC 904 may report the host information 916 to another entity (e.g., a fabric controller 920) (e.g., via a control plane communication channel 924) and / or store the host information 916 in a persistent memory 936 within the BMC 904 itself.

[0106] As described above, the host computing device 902 includes a host agent 944 and a diagnostic agent 912. The host agent 944 can be distinct from the diagnostic agent 912. In addition to sending heartbeat signals 946a-946b, the host agent 944 can be configured to monitor the host computing device 902 and send information related to the health of the host computing device 902 to the fabric controller 920. Conversely, as described above, the diagnostic agent 912 can be configured to perform diagnostic operation(s) on the host computing device 902 in response to input 910 from the BMC 904.

[0107] Figure 9The host agent 944 is shown sending a heartbeat signal 946b to the BMC 904 via an interface 948 that is distinct from the communication interface 908 through which the BMC 904 provides input 910 to cause the diagnostic operation(s) to be performed. Thus, the communication interface 908 through which the BMC 904 provides input 910 to cause the diagnostic operation(s) to be performed is not necessarily the only interface between the BMC 904 and the host processor 906. In other words, the BMC 904 may be capable of communicating with the host processor 906 using mechanisms other than the communication interface 908. However, the communication interface 908 allows for certain types of input 910 to be provided that are recognized as instructions for the diagnostic agent 912 to perform the diagnostic operation(s).

[0108] Figure 10 The diagram shows that Figure 9 900. The method 1000 includes enabling 1002 a communication interface 908 from the BMC 904 to a host processor 906 on a host computing device 902. As described above, this may involve causing the host processor 906 to enumerate a particular type of device (e.g., a USB input device, a PCI-e endpoint device) and interact with the BMC 904 as if the BMC 904 were the enumerated device.

[0109] The method 1000 also includes monitoring 1004 another interface 948 through which the BMC 904 receives a heartbeat signal 946b from the host computing device 902 (e.g., from a host agent 944 on the host computing device 902). As described above, this interface 948 can be separate from the communication interface 908 previously enabled 1002 according to the method 1000.

[0110] The method 1000 also includes determining 1006 whether the amount of time since the BMC 904 received the heartbeat signal 946b from the host computing device 902 exceeds a predefined duration (which may be represented as T heartbeat If not, then method 1000 may include continuing to monitor 1004 interface 948 through which BMC 904 receives heartbeat signal 946b.

[0111] However, if the BMC 904 determines 1006 that the amount of time since the BMC 904 received the heartbeat signal 946b from the host computing device 902 exceeds T heartbeat, then BMC 904 can provide 1008 input 910 to host processor 906 via communication interface 908. As described above, input 910 can cause one or more diagnostic operations to be performed on host computing device 902. The diagnostic operation(s) can be performed by diagnostic agent 912 on host computing device 902.

[0112] The BMC 904 may then collect 1010 host information 916 in response to the diagnostic operation(s) being performed. The BMC 904 may receive the host information 916 from the diagnostic agent 912 via the communication interface 908. The BMC 904 may report 1012 the host information 916 to another entity, such as the fabric controller 920. The BMC 904 may send the host information 916 to the fabric controller 920 via a control plane communication channel 924. The BMC 904 may also store 1014 the host information 916 in persistent memory 936 within the BMC 904 itself.

[0113] Figure 11 The diagram shows that Figure 9 An example of a method 1100 performed by the fabric controller 920 in the system 900 is shown in . The method 1100 includes monitoring 1102 an interface (eg, the data plane interface 926 ) over which the fabric controller 920 receives a heartbeat signal 946 a from a host agent 944 on a host computing device 902 .

[0114] The method 1100 also includes determining 1104 whether the amount of time since the fabric controller 920 received the heartbeat signal 946a from the host agent 944 exceeds a predefined duration (which may be represented as T heartbeat If not, then the method 1100 can include continuing to monitor 1102 the interface through which the fabric controller 904 receives the heartbeat signal 946a.

[0115] However, if the fabric controller 920 determines 1104 that the amount of time since the fabric controller 920 received the heartbeat signal 946a from the host agent 944 exceeds T heartbeat, the fabric controller 920 may send 1106 a signal 918 to the BMC 904 via the control plane communication channel 924. As described above, the signal 918 may instruct the BMC 904 to initiate one or more diagnostic operations to attempt to determine why the heartbeat signal 946a was not received. In response to receiving the signal 918 from the fabric controller 920, the BMC 904 may initiate one or more diagnostic operations. The BMC 904 may then collect host information 916 in response to the diagnostic operation(s) being performed and report the host information 916 to the fabric controller 920. Thus, the method 1100 may include receiving 1108 the host information 916 from the BMC 904 in response to the diagnostic operation(s) being performed.

[0116] As indicated above, the techniques disclosed herein may be used in cloud computing systems in which a fabric controller is responsible for managing a large number of host computing devices. Figure 12 An example of a system 1200 is shown that includes multiple host computing devices 1202a through 1202c. For simplicity, only three host computing devices 1202a through 1202c are shown in the depicted system 1200. However, a fabric controller may be responsible for managing a large number (e.g., hundreds or thousands) of host computing devices.

[0117] The host computing devices 1202a-1202c in the illustrated system 1200 include BMCs 1204a-1204c that are configured to collect host information 1216a-1216c according to the techniques disclosed herein. The BMCs 1204a-1204c on the various host computing devices 1202a-1202c can report the host information 1216a-1216c to a fabric controller 1220. Thus, the fabric controller 1220 can collect the host information 1216a-1216c from the plurality of host computing devices 1202a-1202c.

[0118] The host computing devices 1202a-1202c each communicate with the fabric controller 1220 via a data plane communication channel 1222. Additionally, the BMCs 1204a-1204c on the host computing devices 1202a-1202c each communicate with the fabric controller 1220 via a control plane communication channel 1224. In some embodiments, the BMCs 1204a-1204c on the host computing devices 1202a-1202c can report host information 1216a-1216c to the fabric controller 1220 via the control plane communication channel 1224, as described above.

[0119] In some embodiments, machine learning techniques may be used to analyze the host information 1216a-1216c and determine information that may improve the performance of the overall cloud computing system.

[0120] The techniques described herein may be implemented in hardware, software, firmware, or any combination thereof, unless specifically described as being implemented in a particular manner. Any features described as modules, components, and the like may also be implemented together in an integrated logic device, or separately as discrete but interoperable logic devices. If implemented in software, the techniques may be implemented at least in part by a non-transitory computer-readable medium having computer-executable instructions stored thereon that, when executed by at least one processor, perform some or all of the steps, operations, actions, or other functions disclosed herein. Instructions may be organized into routines, programs, objects, components, data structures, and the like that may perform specific tasks and / or implement specific data types, and may be combined or distributed as desired in various embodiments.

[0121] As used herein, the term "processor" may refer to a general-purpose single-chip or multi-chip microprocessor (e.g., Advanced RISC (Reduced Instruction Set Computer) Machine (ARM)), a dedicated microprocessor (e.g., a digital signal processor (DSP)), a microcontroller, a programmable gate array, etc. The processor may be a central processing unit (CPU). In some embodiments, a combination of processors (e.g., ARM and DSP) may be used to implement some or all of the techniques disclosed herein.

[0122] As used herein, the term "memory" may be any electronic component capable of storing electronic information. For example, the memory may be embodied as random access memory (RAM), read-only memory (ROM), magnetic disk storage media, optical storage media, flash memory devices in RAM, on-board memory associated with a processor, erasable programmable read-only memory (EPROM), electrically erasable programmable read-only memory (EEPROM) memory, registers, and the like (including combinations thereof).

[0123] The steps, operations, and / or actions of the methods described herein may be interchanged with one another without departing from the scope of the claims. In other words, unless a specific order of steps, operations, and / or actions is required for proper operation of the method being described, the order and / or use of specific steps, operations, and / or actions may be modified without departing from the scope of the claims.

[0124] In the examples, the term "determining" (and its grammatical variations) encompasses a variety of actions, and thus, "determining" may include calculating, computing, processing, deriving, investigating, looking up (e.g., looking up in a table, a database, or another data structure), ascertaining, etc. Furthermore, "determining" may include receiving (e.g., receiving information), accessing (e.g., accessing data in a memory), etc. Furthermore, "determining" may include resolving, selecting, choosing, establishing, etc.

[0125] The terms "comprising," "including," and "having" are intended to be inclusive and mean that additional elements may be present in addition to the listed elements. Furthermore, it should be understood that references to "one embodiment" or "an embodiment" of the present disclosure are not intended to be interpreted as excluding the existence of additional embodiments that also incorporate the recited features. For example, any element or feature described with respect to an embodiment herein may be combined with any element or feature of any other embodiment described herein, where compatible.

[0126] The present disclosure may be embodied in other specific forms without departing from the spirit or features of the present disclosure. The described embodiments are to be considered illustrative rather than restrictive. Therefore, the scope of the present disclosure is indicated by the appended claims rather than by the foregoing description. Changes within the meaning and scope of the equivalents of the claims are to be encompassed within their scope.

Claims

1. A baseboard management controller (BMC), comprising: processor; a memory in electronic communication with the processor; as well as instructions, stored in the memory and executable by the processor to: enabling a communication interface from the BMC to a host processor on a host computing device; providing input to the host processor via the communication interface, wherein the input is provided to the host processor in response to at least one of: receiving a signal from a fabric controller or determining that a heartbeat signal has not been received from a host agent on the host computing device within a predefined time period, and wherein the input causes at least one diagnostic operation to be performed on the host computing device; as well as In response to the at least one diagnostic operation, host information is collected. 2 . The BMC of claim 1 , wherein the input is provided to the host processor in response to detecting an anomaly associated with the host computing device.

3. The BMC of claim 1 , further comprising additional instructions stored in the memory and executable by the processor to: determining, based on the host information and further based on at least one anomaly rule, that an anomaly associated with the host computing device has occurred; and At least one action is taken to mitigate the anomaly.

4. The BMC according to claim 1, wherein: The input causes a diagnostic agent on the host computing device to be executed by the host processor; and The at least one diagnostic operation is performed via execution of the diagnostic agent.

5. The BMC according to claim 1, wherein: the host computing device communicating with the fabric controller via a data plane communication channel; and The BMC also includes additional instructions stored in the memory and executable by the processor to send the host information to the fabric controller via a control plane communication channel separate from the data plane communication channel.

6. The BMC according to claim 1, wherein the BMC further comprises: persistent storage; as well as Additional instructions are stored in the memory and executable by the processor to store the host information in the persistent memory.

7. The BMC according to claim 1, wherein: The communication interface includes a universal serial bus (USB) interface; and Enabling the communication interface includes causing the host processor to enumerate a USB input device.

8. The BMC according to claim 1, wherein: The communication interface includes a Peripheral Component Interconnect Express (PCI-e) interface; and Enabling the communication interface includes causing the host processor to enumerate a PCI-e endpoint.

9. A host computing device comprising: Host processor; a host memory in electronic communication with the host processor; a diagnostic agent stored in the host memory and executable by the host processor to perform at least one diagnostic operation on the host computing device; as well as A baseboard management controller (BMC), the BMC comprising a BMC processor and a memory accessible to the BMC processor; a host agent stored in the memory and executable by the host processor to send a heartbeat signal to the BMC; an anomaly rule stored in the memory, wherein the anomaly rule indicates when an anomaly associated with the host computing device has occurred; as well as Instructions stored in the memory and executable by the BMC processor to: enabling a communication interface from the BMC to the host processor; detecting an operational characteristic of the host computing device based at least in part on the anomaly rule; determining, as a result of monitoring the operational characteristic of the host computing device, that an anomaly associated with the host computing device has occurred; providing an input to the host processor via the communication interface in response to determining that the anomaly has occurred, wherein the input is provided to the host processor in response to determining that the heartbeat signal has not been received from the host agent within a predefined time period, the input being configured to cause the diagnostic agent to perform the at least one diagnostic operation; as well as In response to the at least one diagnostic operation, host information is collected.

10. The host computing device of claim 9, wherein the input is provided to the host processor in response to receiving a signal from a fabric controller.

11. The host computing device of claim 9, wherein the input is provided to the host processor in response to detecting the anomaly associated with the host computing device.

12. The host computing device of claim 9, wherein the BMC is additionally configured to: determining, based on the host information and further based on at least one anomaly rule, that the anomaly associated with the host computing device has occurred; and At least one action is taken to mitigate the anomaly.

13. The host computing device of claim 9, wherein: The input causes the diagnostic agent to be executed by the host processor; and The at least one diagnostic operation is performed via execution of the diagnostic agent.

14. The host computing device of claim 9, wherein: the host computing device communicating with the fabric controller via a data plane communication channel; and The BMC is additionally configured to send the host information to the fabric controller via a control plane communication channel separate from the data plane communication channel.

15. The host computing device of claim 9, wherein: Wherein the BMC further includes a persistent memory; and The processor is additionally configured to store the host information in the persistent memory.

16. A structure controller comprising: a data plane interface that facilitates communications with a host computing device via a data plane communication channel; a control plane interface that facilitates communication with a baseboard management controller (BMC) on the host computing device via a control plane communication channel; processor; a memory in electronic communication with the processor; as well as instructions stored in the memory, the instructions being executable by the processor to: sending a signal to the BMC via the control plane interface, wherein the signal causes the BMC to initiate at least one diagnostic operation on the host computing device; as well as Host information is received from the BMC via the control plane interface.

17. The fabric controller of claim 16, wherein the signal is sent in response to detecting that the host computing device is inaccessible via the data plane interface.

Citation Information

Patent Citations

  • Systems, apparatuses and methods for a host software presence check from an isolated partition

    US20070006307A1

  • Large scale fabric attached architecture

    US20190238484A1